@nextblock-cms/ecom 0.13.4 → 0.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/lib/CurrencyProvider.cjs.js +1 -1
  2. package/lib/CurrencyProvider.es.js +31 -27
  3. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  4. package/lib/components/AccountNavigationMenu.es.js +53 -26
  5. package/lib/components/AddToCartButton.cjs.js +1 -1
  6. package/lib/components/AddToCartButton.es.js +49 -25
  7. package/lib/components/Cart.cjs.js +1 -1
  8. package/lib/components/Cart.es.js +367 -115
  9. package/lib/components/CartDrawer.cjs.js +1 -1
  10. package/lib/components/CartDrawer.es.js +272 -88
  11. package/lib/components/CartIcon.cjs.js +1 -1
  12. package/lib/components/CartIcon.es.js +44 -16
  13. package/lib/components/Checkout.cjs.js +1 -1
  14. package/lib/components/Checkout.es.js +1601 -694
  15. package/lib/components/CouponForm.cjs.js +1 -1
  16. package/lib/components/CouponForm.es.js +160 -96
  17. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  18. package/lib/components/CurrencySwitcher.es.js +32 -12
  19. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  20. package/lib/components/CustomerProfileForm.es.js +666 -250
  21. package/lib/components/FeaturedProduct.cjs.js +1 -1
  22. package/lib/components/FeaturedProduct.es.js +126 -42
  23. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  24. package/lib/components/FreemiusLicensePanel.es.js +125 -45
  25. package/lib/components/InvoiceDocument.cjs.js +1 -1
  26. package/lib/components/InvoiceDocument.es.js +485 -146
  27. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  28. package/lib/components/InvoiceViewerShell.es.js +142 -54
  29. package/lib/components/ProductCard.cjs.js +1 -1
  30. package/lib/components/ProductCard.es.js +224 -81
  31. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  32. package/lib/components/ProductDetailsLayout.es.js +629 -275
  33. package/lib/components/ProductGallery.cjs.js +1 -1
  34. package/lib/components/ProductGallery.es.js +64 -21
  35. package/lib/components/ProductGrid.cjs.js +1 -1
  36. package/lib/components/ProductGrid.es.js +28 -12
  37. package/lib/components/ShippingEstimator.cjs.js +1 -1
  38. package/lib/components/ShippingEstimator.es.js +226 -90
  39. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  40. package/lib/components/SimpleTiptapRenderer.es.js +286 -93
  41. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  42. package/lib/components/SubscriptionSelector.es.js +168 -92
  43. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  44. package/lib/pages/cms/coupons/CouponEditorForm.es.js +370 -110
  45. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  46. package/lib/pages/cms/coupons/CouponsPage.es.js +368 -116
  47. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  48. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +61 -25
  49. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  50. package/lib/pages/cms/coupons/EditCouponPage.es.js +71 -35
  51. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  52. package/lib/pages/cms/coupons/ProductScopePicker.es.js +167 -72
  53. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  54. package/lib/pages/cms/orders/ExportReportsDialog.es.js +247 -87
  55. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  56. package/lib/pages/cms/orders/OrderDetailPage.es.js +283 -95
  57. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  58. package/lib/pages/cms/orders/OrderPrintButton.es.js +21 -9
  59. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  60. package/lib/pages/cms/orders/OrderStatusForm.es.js +106 -46
  61. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  62. package/lib/pages/cms/orders/OrdersPage.es.js +257 -78
  63. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  64. package/lib/pages/cms/payments/PaymentsClient.es.js +551 -155
  65. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  66. package/lib/pages/cms/payments/PaymentsPage.es.js +24 -16
  67. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  68. package/lib/pages/cms/products/ProductsPage.es.js +77 -37
  69. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  70. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +176 -96
  71. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  72. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +85 -41
  73. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  74. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +455 -192
  75. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  76. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +72 -28
  77. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  78. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +490 -183
  79. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  80. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +175 -67
  81. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  82. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +211 -100
  83. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  84. package/lib/pages/cms/products/components/DeleteProductButton.es.js +45 -25
  85. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  86. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +202 -58
  87. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  88. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +234 -88
  89. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  90. package/lib/pages/cms/products/components/ProductForm.es.js +1199 -551
  91. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  92. package/lib/pages/cms/products/components/ProductMediaManager.es.js +154 -63
  93. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  94. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +391 -144
  95. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  96. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +203 -87
  97. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  98. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +30 -18
  99. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  100. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +35 -23
  101. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  102. package/lib/pages/cms/products/components/VariationsEditor.es.js +492 -261
  103. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  104. package/lib/pages/cms/products/inventory/InventoryPage.es.js +33 -13
  105. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  106. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +365 -145
  107. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  108. package/lib/pages/cms/products/new/NewProductPage.es.js +46 -34
  109. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  110. package/lib/pages/cms/shipping/ShippingPage.es.js +507 -155
  111. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  112. package/lib/pages/cms/shipping/components/RateForm.es.js +717 -334
  113. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  114. package/lib/pages/cms/shipping/components/ZoneForm.es.js +392 -158
  115. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  116. package/lib/pages/cms/taxes/TaxesPage.es.js +448 -120
  117. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  118. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +159 -55
  119. package/lib/product-context.cjs.js +1 -1
  120. package/lib/product-context.es.js +14 -10
  121. package/package.json +4 -4
@@ -1,291 +1,554 @@
1
1
  'use client';
2
- import { jsxs as a, jsx as r } from "react/jsx-runtime";
3
- import { useState as i } from "react";
4
- import { useRouter as V } from "next/navigation";
5
- import { Label as m, Input as h, Button as t, Badge as W } from "@nextblock-cms/ui";
6
- import { Plus as j, Trash2 as k, ChevronUp as X, ChevronDown as Y } from "lucide-react";
7
- function ae({
8
- attributes: o,
9
- languages: z,
10
- createAttributeAction: P,
11
- deleteAttributeAction: M,
12
- createTermAction: _,
13
- deleteTermAction: B,
14
- reorderTermsAction: L,
15
- updateTranslationsAction: R
2
+ import { jsxDEV as s } from "react/jsx-dev-runtime";
3
+ import { useState as n } from "react";
4
+ import { useRouter as O } from "next/navigation";
5
+ import { Label as m, Input as d, Button as c, Badge as Q } from "@nextblock-cms/ui";
6
+ import { Plus as T, Trash2 as $, ChevronUp as W, ChevronDown as X } from "lucide-react";
7
+ function re({
8
+ attributes: l,
9
+ languages: I,
10
+ createAttributeAction: F,
11
+ deleteAttributeAction: S,
12
+ createTermAction: z,
13
+ deleteTermAction: P,
14
+ reorderTermsAction: _,
15
+ updateTranslationsAction: B
16
16
  }) {
17
- const l = V(), [p, N] = i(""), [x, w] = i(null), [U, y] = i(null), [T, b] = i(null), [A, $] = i(null), [u, C] = i({}), [I, q] = i(
18
- () => o.reduce((e, s) => (e[s.id] = s.name_translations || {}, e), {})
19
- ), [F, E] = i(
20
- () => o.reduce((e, s) => {
21
- for (const n of s.terms)
22
- e[n.id] = n.value_translations || {};
17
+ const o = O(), [u, h] = n(""), [f, x] = n(null), [L, k] = n(null), [v, A] = n(null), [C, D] = n(null), [b, j] = n({}), [M, R] = n(
18
+ () => l.reduce((e, t) => (e[t.id] = t.name_translations || {}, e), {})
19
+ ), [U, E] = n(
20
+ () => l.reduce((e, t) => {
21
+ for (const r of t.terms)
22
+ e[r.id] = r.value_translations || {};
23
23
  return e;
24
24
  }, {})
25
- ), v = z.filter((e) => !e.is_default), G = async (e) => {
25
+ ), p = I.filter((e) => !e.is_default), V = async (e) => {
26
26
  e.preventDefault();
27
- const s = await P({ name: p });
28
- if (!s.success) {
29
- alert(s.error || "Failed to create attribute.");
27
+ const t = await F({ name: u });
28
+ if (!t.success) {
29
+ alert(t.error || "Failed to create attribute.");
30
30
  return;
31
31
  }
32
- N(""), l.refresh();
33
- }, H = async (e, s) => {
34
- e.preventDefault(), w(s);
35
- const n = await _({
36
- attributeId: s,
37
- value: u[s] || ""
32
+ h(""), o.refresh();
33
+ }, q = async (e, t) => {
34
+ e.preventDefault(), x(t);
35
+ const r = await z({
36
+ attributeId: t,
37
+ value: b[t] || ""
38
38
  });
39
- if (w(null), !n.success) {
40
- alert(n.error || "Failed to create term.");
39
+ if (x(null), !r.success) {
40
+ alert(r.error || "Failed to create term.");
41
41
  return;
42
42
  }
43
- C((d) => ({
44
- ...d,
45
- [s]: ""
46
- })), l.refresh();
47
- }, J = async (e) => {
43
+ j((i) => ({
44
+ ...i,
45
+ [t]: ""
46
+ })), o.refresh();
47
+ }, G = async (e) => {
48
48
  if (!window.confirm("Delete this attribute and all of its terms?"))
49
49
  return;
50
- const n = await M(e);
51
- if (!n.success) {
52
- alert(n.error || "Failed to delete attribute.");
50
+ const r = await S(e);
51
+ if (!r.success) {
52
+ alert(r.error || "Failed to delete attribute.");
53
53
  return;
54
54
  }
55
- l.refresh();
56
- }, K = async (e) => {
57
- y(e);
58
- const s = await B(e);
59
- if (y(null), !s.success) {
60
- alert(s.error || "Failed to delete term.");
55
+ o.refresh();
56
+ }, H = async (e) => {
57
+ k(e);
58
+ const t = await P(e);
59
+ if (k(null), !t.success) {
60
+ alert(t.error || "Failed to delete term.");
61
61
  return;
62
62
  }
63
- l.refresh();
64
- }, S = async (e, s, n) => {
65
- const d = e.terms.findIndex((g) => g.id === s), c = d + n;
66
- if (d === -1 || c < 0 || c >= e.terms.length)
63
+ o.refresh();
64
+ }, w = async (e, t, r) => {
65
+ const i = e.terms.findIndex((g) => g.id === t), a = i + r;
66
+ if (i === -1 || a < 0 || a >= e.terms.length)
67
67
  return;
68
- const f = [...e.terms], [Q] = f.splice(d, 1);
69
- f.splice(c, 0, Q), b(e.id);
70
- const D = await L({
68
+ const N = [...e.terms], [K] = N.splice(i, 1);
69
+ N.splice(a, 0, K), A(e.id);
70
+ const y = await _({
71
71
  attributeId: e.id,
72
- orderedTermIds: f.map((g) => g.id)
72
+ orderedTermIds: N.map((g) => g.id)
73
73
  });
74
- if (b(null), !D.success) {
75
- alert(D.error || "Failed to reorder terms.");
74
+ if (A(null), !y.success) {
75
+ alert(y.error || "Failed to reorder terms.");
76
76
  return;
77
77
  }
78
- l.refresh();
79
- }, O = async (e) => {
80
- $(e.id);
81
- const s = await R({
78
+ o.refresh();
79
+ }, J = async (e) => {
80
+ D(e.id);
81
+ const t = await B({
82
82
  attributeId: e.id,
83
- nameTranslations: I[e.id] || {},
84
- termTranslations: e.terms.map((n) => ({
85
- termId: n.id,
86
- valueTranslations: F[n.id] || {}
83
+ nameTranslations: M[e.id] || {},
84
+ termTranslations: e.terms.map((r) => ({
85
+ termId: r.id,
86
+ valueTranslations: U[r.id] || {}
87
87
  }))
88
88
  });
89
- if ($(null), !s.success) {
90
- alert(s.error || "Failed to save translations.");
89
+ if (D(null), !t.success) {
90
+ alert(t.error || "Failed to save translations.");
91
91
  return;
92
92
  }
93
- l.refresh();
93
+ o.refresh();
94
94
  };
95
- return /* @__PURE__ */ a("div", { className: "space-y-6", children: [
96
- /* @__PURE__ */ r("form", { onSubmit: G, className: "rounded-lg border bg-card p-6 shadow-sm", children: /* @__PURE__ */ a("div", { className: "flex flex-wrap items-end gap-4", children: [
97
- /* @__PURE__ */ a("div", { className: "flex-1 min-w-[220px] space-y-2", children: [
98
- /* @__PURE__ */ r(m, { htmlFor: "attribute-name", children: "New Attribute" }),
99
- /* @__PURE__ */ r(
100
- h,
95
+ return /* @__PURE__ */ s("div", { className: "space-y-6", children: [
96
+ /* @__PURE__ */ s("form", { onSubmit: V, className: "rounded-lg border bg-card p-6 shadow-sm", children: /* @__PURE__ */ s("div", { className: "flex flex-wrap items-end gap-4", children: [
97
+ /* @__PURE__ */ s("div", { className: "flex-1 min-w-[220px] space-y-2", children: [
98
+ /* @__PURE__ */ s(m, { htmlFor: "attribute-name", children: "New Attribute" }, void 0, !1, {
99
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
100
+ lineNumber: 186,
101
+ columnNumber: 13
102
+ }, this),
103
+ /* @__PURE__ */ s(
104
+ d,
101
105
  {
102
106
  id: "attribute-name",
103
- value: p,
104
- onChange: (e) => N(e.target.value),
107
+ value: u,
108
+ onChange: (e) => h(e.target.value),
105
109
  placeholder: "Material, Size, Color..."
106
- }
110
+ },
111
+ void 0,
112
+ !1,
113
+ {
114
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
115
+ lineNumber: 187,
116
+ columnNumber: 13
117
+ },
118
+ this
107
119
  )
108
- ] }),
109
- /* @__PURE__ */ a(t, { type: "submit", disabled: !p.trim(), children: [
110
- /* @__PURE__ */ r(j, { className: "mr-2 h-4 w-4" }),
120
+ ] }, void 0, !0, {
121
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
122
+ lineNumber: 185,
123
+ columnNumber: 11
124
+ }, this),
125
+ /* @__PURE__ */ s(c, { type: "submit", disabled: !u.trim(), children: [
126
+ /* @__PURE__ */ s(T, { className: "mr-2 h-4 w-4" }, void 0, !1, {
127
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
128
+ lineNumber: 195,
129
+ columnNumber: 13
130
+ }, this),
111
131
  "Create Attribute"
112
- ] })
113
- ] }) }),
114
- o.length === 0 ? /* @__PURE__ */ r("div", { className: "rounded-lg border border-dashed p-6 text-sm text-muted-foreground", children: "No global attributes have been created yet." }) : /* @__PURE__ */ r("div", { className: "grid gap-6", children: o.map((e) => /* @__PURE__ */ a("div", { className: "rounded-lg border bg-card p-6 shadow-sm", children: [
115
- /* @__PURE__ */ a("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [
116
- /* @__PURE__ */ a("div", { children: [
117
- /* @__PURE__ */ r("h2", { className: "text-lg font-semibold", children: e.name }),
118
- /* @__PURE__ */ r("p", { className: "text-sm text-muted-foreground", children: e.slug })
119
- ] }),
120
- /* @__PURE__ */ r(
121
- t,
132
+ ] }, void 0, !0, {
133
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
134
+ lineNumber: 194,
135
+ columnNumber: 11
136
+ }, this)
137
+ ] }, void 0, !0, {
138
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
139
+ lineNumber: 184,
140
+ columnNumber: 9
141
+ }, this) }, void 0, !1, {
142
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
143
+ lineNumber: 183,
144
+ columnNumber: 7
145
+ }, this),
146
+ l.length === 0 ? /* @__PURE__ */ s("div", { className: "rounded-lg border border-dashed p-6 text-sm text-muted-foreground", children: "No global attributes have been created yet." }, void 0, !1, {
147
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
148
+ lineNumber: 202,
149
+ columnNumber: 9
150
+ }, this) : /* @__PURE__ */ s("div", { className: "grid gap-6", children: l.map((e) => /* @__PURE__ */ s("div", { className: "rounded-lg border bg-card p-6 shadow-sm", children: [
151
+ /* @__PURE__ */ s("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [
152
+ /* @__PURE__ */ s("div", { children: [
153
+ /* @__PURE__ */ s("h2", { className: "text-lg font-semibold", children: e.name }, void 0, !1, {
154
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
155
+ lineNumber: 211,
156
+ columnNumber: 19
157
+ }, this),
158
+ /* @__PURE__ */ s("p", { className: "text-sm text-muted-foreground", children: e.slug }, void 0, !1, {
159
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
160
+ lineNumber: 212,
161
+ columnNumber: 19
162
+ }, this)
163
+ ] }, void 0, !0, {
164
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
165
+ lineNumber: 210,
166
+ columnNumber: 17
167
+ }, this),
168
+ /* @__PURE__ */ s(
169
+ c,
122
170
  {
123
171
  type: "button",
124
172
  variant: "ghost",
125
173
  size: "icon",
126
- onClick: () => J(e.id),
174
+ onClick: () => G(e.id),
127
175
  className: "text-muted-foreground hover:text-destructive",
128
- children: /* @__PURE__ */ r(k, { className: "h-4 w-4" })
129
- }
176
+ children: /* @__PURE__ */ s($, { className: "h-4 w-4" }, void 0, !1, {
177
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
178
+ lineNumber: 221,
179
+ columnNumber: 19
180
+ }, this)
181
+ },
182
+ void 0,
183
+ !1,
184
+ {
185
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
186
+ lineNumber: 214,
187
+ columnNumber: 17
188
+ },
189
+ this
130
190
  )
131
- ] }),
132
- /* @__PURE__ */ r("div", { className: "mt-4 space-y-2", children: e.terms.map((s, n) => /* @__PURE__ */ a(
191
+ ] }, void 0, !0, {
192
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
193
+ lineNumber: 209,
194
+ columnNumber: 15
195
+ }, this),
196
+ /* @__PURE__ */ s("div", { className: "mt-4 space-y-2", children: e.terms.map((t, r) => /* @__PURE__ */ s(
133
197
  "div",
134
198
  {
135
199
  className: "flex flex-wrap items-center justify-between gap-3 rounded-lg border bg-muted/20 px-3 py-2",
136
200
  children: [
137
- /* @__PURE__ */ a("div", { className: "flex items-center gap-2", children: [
138
- /* @__PURE__ */ r(W, { variant: "secondary", className: "py-1.5", children: s.value }),
139
- /* @__PURE__ */ a("span", { className: "text-xs text-muted-foreground", children: [
201
+ /* @__PURE__ */ s("div", { className: "flex items-center gap-2", children: [
202
+ /* @__PURE__ */ s(Q, { variant: "secondary", className: "py-1.5", children: t.value }, void 0, !1, {
203
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
204
+ lineNumber: 232,
205
+ columnNumber: 23
206
+ }, this),
207
+ /* @__PURE__ */ s("span", { className: "text-xs text-muted-foreground", children: [
140
208
  "Position ",
141
- n + 1
142
- ] })
143
- ] }),
144
- /* @__PURE__ */ a("div", { className: "flex items-center gap-1", children: [
145
- /* @__PURE__ */ r(
146
- t,
209
+ r + 1
210
+ ] }, void 0, !0, {
211
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
212
+ lineNumber: 235,
213
+ columnNumber: 23
214
+ }, this)
215
+ ] }, void 0, !0, {
216
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
217
+ lineNumber: 231,
218
+ columnNumber: 21
219
+ }, this),
220
+ /* @__PURE__ */ s("div", { className: "flex items-center gap-1", children: [
221
+ /* @__PURE__ */ s(
222
+ c,
147
223
  {
148
224
  type: "button",
149
225
  variant: "ghost",
150
226
  size: "icon",
151
227
  className: "h-8 w-8",
152
- onClick: () => S(e, s.id, -1),
153
- disabled: n === 0 || T === e.id,
154
- children: /* @__PURE__ */ r(X, { className: "h-4 w-4" })
155
- }
228
+ onClick: () => w(e, t.id, -1),
229
+ disabled: r === 0 || v === e.id,
230
+ children: /* @__PURE__ */ s(W, { className: "h-4 w-4" }, void 0, !1, {
231
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
232
+ lineNumber: 246,
233
+ columnNumber: 25
234
+ }, this)
235
+ },
236
+ void 0,
237
+ !1,
238
+ {
239
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
240
+ lineNumber: 238,
241
+ columnNumber: 23
242
+ },
243
+ this
156
244
  ),
157
- /* @__PURE__ */ r(
158
- t,
245
+ /* @__PURE__ */ s(
246
+ c,
159
247
  {
160
248
  type: "button",
161
249
  variant: "ghost",
162
250
  size: "icon",
163
251
  className: "h-8 w-8",
164
- onClick: () => S(e, s.id, 1),
165
- disabled: n === e.terms.length - 1 || T === e.id,
166
- children: /* @__PURE__ */ r(Y, { className: "h-4 w-4" })
167
- }
252
+ onClick: () => w(e, t.id, 1),
253
+ disabled: r === e.terms.length - 1 || v === e.id,
254
+ children: /* @__PURE__ */ s(X, { className: "h-4 w-4" }, void 0, !1, {
255
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
256
+ lineNumber: 259,
257
+ columnNumber: 25
258
+ }, this)
259
+ },
260
+ void 0,
261
+ !1,
262
+ {
263
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
264
+ lineNumber: 248,
265
+ columnNumber: 23
266
+ },
267
+ this
168
268
  ),
169
- /* @__PURE__ */ r(
170
- t,
269
+ /* @__PURE__ */ s(
270
+ c,
171
271
  {
172
272
  type: "button",
173
273
  variant: "ghost",
174
274
  size: "icon",
175
- onClick: () => K(s.id),
275
+ onClick: () => H(t.id),
176
276
  className: "h-8 w-8 text-muted-foreground hover:text-destructive",
177
- disabled: U === s.id,
178
- children: /* @__PURE__ */ r(k, { className: "h-4 w-4" })
179
- }
277
+ disabled: L === t.id,
278
+ children: /* @__PURE__ */ s($, { className: "h-4 w-4" }, void 0, !1, {
279
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
280
+ lineNumber: 269,
281
+ columnNumber: 25
282
+ }, this)
283
+ },
284
+ void 0,
285
+ !1,
286
+ {
287
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
288
+ lineNumber: 261,
289
+ columnNumber: 23
290
+ },
291
+ this
180
292
  )
181
- ] })
293
+ ] }, void 0, !0, {
294
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
295
+ lineNumber: 237,
296
+ columnNumber: 21
297
+ }, this)
182
298
  ]
183
299
  },
184
- s.id
185
- )) }),
186
- /* @__PURE__ */ a(
300
+ t.id,
301
+ !0,
302
+ {
303
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
304
+ lineNumber: 227,
305
+ columnNumber: 19
306
+ },
307
+ this
308
+ )) }, void 0, !1, {
309
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
310
+ lineNumber: 225,
311
+ columnNumber: 15
312
+ }, this),
313
+ /* @__PURE__ */ s(
187
314
  "form",
188
315
  {
189
- onSubmit: (s) => H(s, e.id),
316
+ onSubmit: (t) => q(t, e.id),
190
317
  className: "mt-6 flex flex-wrap items-end gap-3",
191
318
  children: [
192
- /* @__PURE__ */ a("div", { className: "flex-1 min-w-[220px] space-y-2", children: [
193
- /* @__PURE__ */ r(m, { htmlFor: `term-input-${e.id}`, children: "Add Term" }),
194
- /* @__PURE__ */ r(
195
- h,
319
+ /* @__PURE__ */ s("div", { className: "flex-1 min-w-[220px] space-y-2", children: [
320
+ /* @__PURE__ */ s(m, { htmlFor: `term-input-${e.id}`, children: "Add Term" }, void 0, !1, {
321
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
322
+ lineNumber: 281,
323
+ columnNumber: 19
324
+ }, this),
325
+ /* @__PURE__ */ s(
326
+ d,
196
327
  {
197
328
  id: `term-input-${e.id}`,
198
- value: u[e.id] || "",
199
- onChange: (s) => C((n) => ({
200
- ...n,
201
- [e.id]: s.target.value
329
+ value: b[e.id] || "",
330
+ onChange: (t) => j((r) => ({
331
+ ...r,
332
+ [e.id]: t.target.value
202
333
  })),
203
334
  placeholder: `Add a term for ${e.name}`
204
- }
335
+ },
336
+ void 0,
337
+ !1,
338
+ {
339
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
340
+ lineNumber: 282,
341
+ columnNumber: 19
342
+ },
343
+ this
205
344
  )
206
- ] }),
207
- /* @__PURE__ */ a(
208
- t,
345
+ ] }, void 0, !0, {
346
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
347
+ lineNumber: 280,
348
+ columnNumber: 17
349
+ }, this),
350
+ /* @__PURE__ */ s(
351
+ c,
209
352
  {
210
353
  type: "submit",
211
354
  variant: "outline",
212
- disabled: !u[e.id]?.trim() || x === e.id,
355
+ disabled: !b[e.id]?.trim() || f === e.id,
213
356
  children: [
214
- /* @__PURE__ */ r(j, { className: "mr-2 h-4 w-4" }),
215
- x === e.id ? "Saving..." : "Add Term"
357
+ /* @__PURE__ */ s(T, { className: "mr-2 h-4 w-4" }, void 0, !1, {
358
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
359
+ lineNumber: 299,
360
+ columnNumber: 19
361
+ }, this),
362
+ f === e.id ? "Saving..." : "Add Term"
216
363
  ]
217
- }
364
+ },
365
+ void 0,
366
+ !0,
367
+ {
368
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
369
+ lineNumber: 294,
370
+ columnNumber: 17
371
+ },
372
+ this
218
373
  )
219
374
  ]
220
- }
375
+ },
376
+ void 0,
377
+ !0,
378
+ {
379
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
380
+ lineNumber: 276,
381
+ columnNumber: 15
382
+ },
383
+ this
221
384
  ),
222
- v.length > 0 && /* @__PURE__ */ a("div", { className: "mt-6 border-t pt-6 space-y-4", children: [
223
- /* @__PURE__ */ a("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
224
- /* @__PURE__ */ a("div", { children: [
225
- /* @__PURE__ */ r("h3", { className: "font-medium", children: "Translations" }),
226
- /* @__PURE__ */ r("p", { className: "text-sm text-muted-foreground", children: "Translate the attribute label and each term for every active site language." })
227
- ] }),
228
- /* @__PURE__ */ r(
229
- t,
385
+ p.length > 0 && /* @__PURE__ */ s("div", { className: "mt-6 border-t pt-6 space-y-4", children: [
386
+ /* @__PURE__ */ s("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
387
+ /* @__PURE__ */ s("div", { children: [
388
+ /* @__PURE__ */ s("h3", { className: "font-medium", children: "Translations" }, void 0, !1, {
389
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
390
+ lineNumber: 308,
391
+ columnNumber: 23
392
+ }, this),
393
+ /* @__PURE__ */ s("p", { className: "text-sm text-muted-foreground", children: "Translate the attribute label and each term for every active site language." }, void 0, !1, {
394
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
395
+ lineNumber: 309,
396
+ columnNumber: 23
397
+ }, this)
398
+ ] }, void 0, !0, {
399
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
400
+ lineNumber: 307,
401
+ columnNumber: 21
402
+ }, this),
403
+ /* @__PURE__ */ s(
404
+ c,
230
405
  {
231
406
  type: "button",
232
407
  variant: "outline",
233
- onClick: () => O(e),
234
- disabled: A === e.id,
235
- children: A === e.id ? "Saving..." : "Save Translations"
236
- }
408
+ onClick: () => J(e),
409
+ disabled: C === e.id,
410
+ children: C === e.id ? "Saving..." : "Save Translations"
411
+ },
412
+ void 0,
413
+ !1,
414
+ {
415
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
416
+ lineNumber: 313,
417
+ columnNumber: 21
418
+ },
419
+ this
237
420
  )
238
- ] }),
239
- /* @__PURE__ */ r("div", { className: "grid gap-4 md:grid-cols-2", children: v.map((s) => /* @__PURE__ */ a("div", { className: "space-y-2", children: [
240
- /* @__PURE__ */ a(m, { htmlFor: `attribute-translation-${e.id}-${s.code}`, children: [
421
+ ] }, void 0, !0, {
422
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
423
+ lineNumber: 306,
424
+ columnNumber: 19
425
+ }, this),
426
+ /* @__PURE__ */ s("div", { className: "grid gap-4 md:grid-cols-2", children: p.map((t) => /* @__PURE__ */ s("div", { className: "space-y-2", children: [
427
+ /* @__PURE__ */ s(m, { htmlFor: `attribute-translation-${e.id}-${t.code}`, children: [
241
428
  "Attribute Name (",
242
- s.name,
429
+ t.name,
243
430
  ")"
244
- ] }),
245
- /* @__PURE__ */ r(
246
- h,
431
+ ] }, void 0, !0, {
432
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
433
+ lineNumber: 326,
434
+ columnNumber: 25
435
+ }, this),
436
+ /* @__PURE__ */ s(
437
+ d,
247
438
  {
248
- id: `attribute-translation-${e.id}-${s.code}`,
249
- value: I[e.id]?.[s.code] || "",
250
- onChange: (n) => q((d) => ({
251
- ...d,
439
+ id: `attribute-translation-${e.id}-${t.code}`,
440
+ value: M[e.id]?.[t.code] || "",
441
+ onChange: (r) => R((i) => ({
442
+ ...i,
252
443
  [e.id]: {
253
- ...d[e.id] || {},
254
- [s.code]: n.target.value
444
+ ...i[e.id] || {},
445
+ [t.code]: r.target.value
255
446
  }
256
447
  })),
257
448
  placeholder: e.name
258
- }
449
+ },
450
+ void 0,
451
+ !1,
452
+ {
453
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
454
+ lineNumber: 329,
455
+ columnNumber: 25
456
+ },
457
+ this
259
458
  )
260
- ] }, `${e.id}-${s.code}`)) }),
261
- /* @__PURE__ */ r("div", { className: "space-y-3", children: e.terms.map((s) => /* @__PURE__ */ a("div", { className: "rounded-lg border p-4 space-y-3", children: [
262
- /* @__PURE__ */ a("div", { children: [
263
- /* @__PURE__ */ r("p", { className: "font-medium", children: s.value }),
264
- /* @__PURE__ */ r("p", { className: "text-xs text-muted-foreground", children: "Translate this term for each language." })
265
- ] }),
266
- /* @__PURE__ */ r("div", { className: "grid gap-4 md:grid-cols-2", children: v.map((n) => /* @__PURE__ */ a("div", { className: "space-y-2", children: [
267
- /* @__PURE__ */ r(m, { htmlFor: `term-translation-${s.id}-${n.code}`, children: n.name }),
268
- /* @__PURE__ */ r(
269
- h,
459
+ ] }, `${e.id}-${t.code}`, !0, {
460
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
461
+ lineNumber: 325,
462
+ columnNumber: 23
463
+ }, this)) }, void 0, !1, {
464
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
465
+ lineNumber: 323,
466
+ columnNumber: 19
467
+ }, this),
468
+ /* @__PURE__ */ s("div", { className: "space-y-3", children: e.terms.map((t) => /* @__PURE__ */ s("div", { className: "rounded-lg border p-4 space-y-3", children: [
469
+ /* @__PURE__ */ s("div", { children: [
470
+ /* @__PURE__ */ s("p", { className: "font-medium", children: t.value }, void 0, !1, {
471
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
472
+ lineNumber: 351,
473
+ columnNumber: 27
474
+ }, this),
475
+ /* @__PURE__ */ s("p", { className: "text-xs text-muted-foreground", children: "Translate this term for each language." }, void 0, !1, {
476
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
477
+ lineNumber: 352,
478
+ columnNumber: 27
479
+ }, this)
480
+ ] }, void 0, !0, {
481
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
482
+ lineNumber: 350,
483
+ columnNumber: 25
484
+ }, this),
485
+ /* @__PURE__ */ s("div", { className: "grid gap-4 md:grid-cols-2", children: p.map((r) => /* @__PURE__ */ s("div", { className: "space-y-2", children: [
486
+ /* @__PURE__ */ s(m, { htmlFor: `term-translation-${t.id}-${r.code}`, children: r.name }, void 0, !1, {
487
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
488
+ lineNumber: 357,
489
+ columnNumber: 31
490
+ }, this),
491
+ /* @__PURE__ */ s(
492
+ d,
270
493
  {
271
- id: `term-translation-${s.id}-${n.code}`,
272
- value: F[s.id]?.[n.code] || "",
273
- onChange: (d) => E((c) => ({
274
- ...c,
275
- [s.id]: {
276
- ...c[s.id] || {},
277
- [n.code]: d.target.value
494
+ id: `term-translation-${t.id}-${r.code}`,
495
+ value: U[t.id]?.[r.code] || "",
496
+ onChange: (i) => E((a) => ({
497
+ ...a,
498
+ [t.id]: {
499
+ ...a[t.id] || {},
500
+ [r.code]: i.target.value
278
501
  }
279
502
  })),
280
- placeholder: s.value
281
- }
503
+ placeholder: t.value
504
+ },
505
+ void 0,
506
+ !1,
507
+ {
508
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
509
+ lineNumber: 360,
510
+ columnNumber: 31
511
+ },
512
+ this
282
513
  )
283
- ] }, `${s.id}-${n.code}`)) })
284
- ] }, `translations-${s.id}`)) })
285
- ] })
286
- ] }, e.id)) })
287
- ] });
514
+ ] }, `${t.id}-${r.code}`, !0, {
515
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
516
+ lineNumber: 356,
517
+ columnNumber: 29
518
+ }, this)) }, void 0, !1, {
519
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
520
+ lineNumber: 354,
521
+ columnNumber: 25
522
+ }, this)
523
+ ] }, `translations-${t.id}`, !0, {
524
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
525
+ lineNumber: 349,
526
+ columnNumber: 23
527
+ }, this)) }, void 0, !1, {
528
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
529
+ lineNumber: 347,
530
+ columnNumber: 19
531
+ }, this)
532
+ ] }, void 0, !0, {
533
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
534
+ lineNumber: 305,
535
+ columnNumber: 17
536
+ }, this)
537
+ ] }, e.id, !0, {
538
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
539
+ lineNumber: 208,
540
+ columnNumber: 13
541
+ }, this)) }, void 0, !1, {
542
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
543
+ lineNumber: 206,
544
+ columnNumber: 9
545
+ }, this)
546
+ ] }, void 0, !0, {
547
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",
548
+ lineNumber: 182,
549
+ columnNumber: 5
550
+ }, this);
288
551
  }
289
552
  export {
290
- ae as AttributeManager
553
+ re as AttributeManager
291
554
  };