@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 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("@nextblock-cms/ui"),h=require("@nextblock-cms/utils"),c=t=>String(t).padStart(2,"0");function d(t){if(!t)return"";const a=new Date(t);return Number.isNaN(a.getTime())?"":`${a.getFullYear()}-${c(a.getMonth()+1)}-${c(a.getDate())}T${c(a.getHours())}:${c(a.getMinutes())}`}function o(t){if(!t)return null;const a=new Date(t);return Number.isNaN(a.getTime())?null:a.toISOString()}function f({idPrefix:t="product",startAt:a,endAt:x,onChange:n,error:r,disabled:u,description:m,dense:i,bare:p}){const N=Intl.DateTimeFormat().resolvedOptions().timeZone,g=h.cn("h-7 text-xs",i||p?"w-[150px]":"w-[160px] sm:w-[180px]"),j=e.jsxs(e.Fragment,{children:[e.jsx(s.Label,{htmlFor:`${t}-sale-start-at`,className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:"Starts"}),e.jsx(s.Input,{id:`${t}-sale-start-at`,type:"datetime-local",value:d(a),disabled:u,onChange:l=>n("sale_start_at",o(l.target.value)),className:g}),e.jsx("span",{className:"text-xs text-muted-foreground",children:"→"}),e.jsx(s.Label,{htmlFor:`${t}-sale-end-at`,className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:"Ends"}),e.jsx(s.Input,{id:`${t}-sale-end-at`,type:"datetime-local",value:d(x),disabled:u,onChange:l=>n("sale_end_at",o(l.target.value)),className:g})]});return p?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"min-w-0 space-y-1",children:[e.jsx(s.Label,{htmlFor:`${t}-sale-start-at`,className:"block text-[10px] uppercase font-bold tracking-widest text-muted-foreground",children:"Starts"}),e.jsx(s.Input,{id:`${t}-sale-start-at`,type:"datetime-local",value:d(a),disabled:u,onChange:l=>n("sale_start_at",o(l.target.value)),className:"h-8 w-full text-xs"})]}),e.jsxs("div",{className:"min-w-0 space-y-1",children:[e.jsx(s.Label,{htmlFor:`${t}-sale-end-at`,className:"block text-[10px] uppercase font-bold tracking-widest text-muted-foreground",children:"Ends"}),e.jsx(s.Input,{id:`${t}-sale-end-at`,type:"datetime-local",value:d(x),disabled:u,onChange:l=>n("sale_end_at",o(l.target.value)),className:"h-8 w-full text-xs"}),r?e.jsx("p",{className:"mt-0.5 text-[10px] text-destructive",children:r}):null]})]}):e.jsxs("div",{className:h.cn("rounded border border-dashed bg-muted/5 space-y-1",i?"p-1.5":"p-2"),children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1.5",children:[e.jsx("span",{className:"shrink-0 text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Sale window"}),j,e.jsxs("span",{className:"ml-auto text-[10px] text-muted-foreground",children:[N||"local time"," · empty = always on"]})]}),m&&!i?e.jsx("p",{className:"text-[10px] leading-snug text-muted-foreground",children:m}):null,r?e.jsx("p",{className:"text-[11px] text-destructive",children:r}):null]})}exports.SaleScheduleFields=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),l=require("@nextblock-cms/ui"),N=require("@nextblock-cms/utils"),o=s=>String(s).padStart(2,"0");function i(s){if(!s)return"";const t=new Date(s);return Number.isNaN(t.getTime())?"":`${t.getFullYear()}-${o(t.getMonth()+1)}-${o(t.getDate())}T${o(t.getHours())}:${o(t.getMinutes())}`}function m(s){if(!s)return null;const t=new Date(s);return Number.isNaN(t.getTime())?null:t.toISOString()}function S({idPrefix:s="product",startAt:t,endAt:u,onChange:n,error:r,disabled:a,description:p,dense:d,bare:b}){const h=Intl.DateTimeFormat().resolvedOptions().timeZone,x=N.cn("h-7 text-xs",d||b?"w-[150px]":"w-[160px] sm:w-[180px]"),g=e.jsxDEV(e.Fragment,{children:[e.jsxDEV(l.Label,{htmlFor:`${s}-sale-start-at`,className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:"Starts"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:72,columnNumber:7},this),e.jsxDEV(l.Input,{id:`${s}-sale-start-at`,type:"datetime-local",value:i(t),disabled:a,onChange:c=>n("sale_start_at",m(c.target.value)),className:x},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:78,columnNumber:7},this),e.jsxDEV("span",{className:"text-xs text-muted-foreground",children:"→"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:86,columnNumber:7},this),e.jsxDEV(l.Label,{htmlFor:`${s}-sale-end-at`,className:"text-[10px] uppercase tracking-wider text-muted-foreground",children:"Ends"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:87,columnNumber:7},this),e.jsxDEV(l.Input,{id:`${s}-sale-end-at`,type:"datetime-local",value:i(u),disabled:a,onChange:c=>n("sale_end_at",m(c.target.value)),className:x},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:93,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:71,columnNumber:5},this);return b?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"min-w-0 space-y-1",children:[e.jsxDEV(l.Label,{htmlFor:`${s}-sale-start-at`,className:"block text-[10px] uppercase font-bold tracking-widest text-muted-foreground",children:"Starts"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:110,columnNumber:11},this),e.jsxDEV(l.Input,{id:`${s}-sale-start-at`,type:"datetime-local",value:i(t),disabled:a,onChange:c=>n("sale_start_at",m(c.target.value)),className:"h-8 w-full text-xs"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:116,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:109,columnNumber:9},this),e.jsxDEV("div",{className:"min-w-0 space-y-1",children:[e.jsxDEV(l.Label,{htmlFor:`${s}-sale-end-at`,className:"block text-[10px] uppercase font-bold tracking-widest text-muted-foreground",children:"Ends"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:126,columnNumber:11},this),e.jsxDEV(l.Input,{id:`${s}-sale-end-at`,type:"datetime-local",value:i(u),disabled:a,onChange:c=>n("sale_end_at",m(c.target.value)),className:"h-8 w-full text-xs"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:132,columnNumber:11},this),r?e.jsxDEV("p",{className:"mt-0.5 text-[10px] text-destructive",children:r},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:140,columnNumber:20},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:125,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:108,columnNumber:7},this):e.jsxDEV("div",{className:N.cn("rounded border border-dashed bg-muted/5 space-y-1",d?"p-1.5":"p-2"),children:[e.jsxDEV("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1.5",children:[e.jsxDEV("span",{className:"shrink-0 text-[11px] font-bold uppercase tracking-wider text-muted-foreground",children:"Sale window"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:151,columnNumber:9},this),g,e.jsxDEV("span",{className:"ml-auto text-[10px] text-muted-foreground",children:[h||"local time"," · empty = always on"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:155,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:150,columnNumber:7},this),p&&!d?e.jsxDEV("p",{className:"text-[10px] leading-snug text-muted-foreground",children:p},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:160,columnNumber:9},this):null,r?e.jsxDEV("p",{className:"text-[11px] text-destructive",children:r},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:162,columnNumber:16},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",lineNumber:147,columnNumber:5},this)}exports.SaleScheduleFields=S;
@@ -1,137 +1,253 @@
1
1
  'use client';
2
- import { jsxs as s, Fragment as f, jsx as t } from "react/jsx-runtime";
3
- import { Label as o, Input as u } from "@nextblock-cms/ui";
4
- import { cn as w } from "@nextblock-cms/utils";
5
- const d = (e) => String(e).padStart(2, "0");
6
- function m(e) {
7
- if (!e)
2
+ import { jsxDEV as e, Fragment as h } from "react/jsx-dev-runtime";
3
+ import { Label as o, Input as a } from "@nextblock-cms/ui";
4
+ import { cn as f } from "@nextblock-cms/utils";
5
+ const m = (s) => String(s).padStart(2, "0");
6
+ function i(s) {
7
+ if (!s)
8
8
  return "";
9
- const a = new Date(e);
10
- return Number.isNaN(a.getTime()) ? "" : `${a.getFullYear()}-${d(a.getMonth() + 1)}-${d(
11
- a.getDate()
12
- )}T${d(a.getHours())}:${d(a.getMinutes())}`;
9
+ const t = new Date(s);
10
+ return Number.isNaN(t.getTime()) ? "" : `${t.getFullYear()}-${m(t.getMonth() + 1)}-${m(
11
+ t.getDate()
12
+ )}T${m(t.getHours())}:${m(t.getMinutes())}`;
13
13
  }
14
- function i(e) {
15
- if (!e)
14
+ function d(s) {
15
+ if (!s)
16
16
  return null;
17
- const a = new Date(e);
18
- return Number.isNaN(a.getTime()) ? null : a.toISOString();
17
+ const t = new Date(s);
18
+ return Number.isNaN(t.getTime()) ? null : t.toISOString();
19
19
  }
20
- function k({
21
- idPrefix: e = "product",
22
- startAt: a,
23
- endAt: x,
24
- onChange: n,
20
+ function D({
21
+ idPrefix: s = "product",
22
+ startAt: t,
23
+ endAt: p,
24
+ onChange: c,
25
25
  error: r,
26
- disabled: c,
27
- description: g,
28
- dense: p,
29
- bare: h
26
+ disabled: n,
27
+ description: b,
28
+ dense: u,
29
+ bare: N
30
30
  }) {
31
- const v = Intl.DateTimeFormat().resolvedOptions().timeZone, N = w("h-7 text-xs", p || h ? "w-[150px]" : "w-[160px] sm:w-[180px]"), $ = /* @__PURE__ */ s(f, { children: [
32
- /* @__PURE__ */ t(
31
+ const g = Intl.DateTimeFormat().resolvedOptions().timeZone, x = f("h-7 text-xs", u || N ? "w-[150px]" : "w-[160px] sm:w-[180px]"), S = /* @__PURE__ */ e(h, { children: [
32
+ /* @__PURE__ */ e(
33
33
  o,
34
34
  {
35
- htmlFor: `${e}-sale-start-at`,
35
+ htmlFor: `${s}-sale-start-at`,
36
36
  className: "text-[10px] uppercase tracking-wider text-muted-foreground",
37
37
  children: "Starts"
38
- }
38
+ },
39
+ void 0,
40
+ !1,
41
+ {
42
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
43
+ lineNumber: 72,
44
+ columnNumber: 7
45
+ },
46
+ this
39
47
  ),
40
- /* @__PURE__ */ t(
41
- u,
48
+ /* @__PURE__ */ e(
49
+ a,
42
50
  {
43
- id: `${e}-sale-start-at`,
51
+ id: `${s}-sale-start-at`,
44
52
  type: "datetime-local",
45
- value: m(a),
46
- disabled: c,
47
- onChange: (l) => n("sale_start_at", i(l.target.value)),
48
- className: N
49
- }
53
+ value: i(t),
54
+ disabled: n,
55
+ onChange: (l) => c("sale_start_at", d(l.target.value)),
56
+ className: x
57
+ },
58
+ void 0,
59
+ !1,
60
+ {
61
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
62
+ lineNumber: 78,
63
+ columnNumber: 7
64
+ },
65
+ this
50
66
  ),
51
- /* @__PURE__ */ t("span", { className: "text-xs text-muted-foreground", children: "→" }),
52
- /* @__PURE__ */ t(
67
+ /* @__PURE__ */ e("span", { className: "text-xs text-muted-foreground", children: "→" }, void 0, !1, {
68
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
69
+ lineNumber: 86,
70
+ columnNumber: 7
71
+ }, this),
72
+ /* @__PURE__ */ e(
53
73
  o,
54
74
  {
55
- htmlFor: `${e}-sale-end-at`,
75
+ htmlFor: `${s}-sale-end-at`,
56
76
  className: "text-[10px] uppercase tracking-wider text-muted-foreground",
57
77
  children: "Ends"
58
- }
78
+ },
79
+ void 0,
80
+ !1,
81
+ {
82
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
83
+ lineNumber: 87,
84
+ columnNumber: 7
85
+ },
86
+ this
59
87
  ),
60
- /* @__PURE__ */ t(
61
- u,
88
+ /* @__PURE__ */ e(
89
+ a,
62
90
  {
63
- id: `${e}-sale-end-at`,
91
+ id: `${s}-sale-end-at`,
64
92
  type: "datetime-local",
65
- value: m(x),
66
- disabled: c,
67
- onChange: (l) => n("sale_end_at", i(l.target.value)),
68
- className: N
69
- }
93
+ value: i(p),
94
+ disabled: n,
95
+ onChange: (l) => c("sale_end_at", d(l.target.value)),
96
+ className: x
97
+ },
98
+ void 0,
99
+ !1,
100
+ {
101
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
102
+ lineNumber: 93,
103
+ columnNumber: 7
104
+ },
105
+ this
70
106
  )
71
- ] });
72
- return h ? /* @__PURE__ */ s(f, { children: [
73
- /* @__PURE__ */ s("div", { className: "min-w-0 space-y-1", children: [
74
- /* @__PURE__ */ t(
107
+ ] }, void 0, !0, {
108
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
109
+ lineNumber: 71,
110
+ columnNumber: 5
111
+ }, this);
112
+ return N ? /* @__PURE__ */ e(h, { children: [
113
+ /* @__PURE__ */ e("div", { className: "min-w-0 space-y-1", children: [
114
+ /* @__PURE__ */ e(
75
115
  o,
76
116
  {
77
- htmlFor: `${e}-sale-start-at`,
117
+ htmlFor: `${s}-sale-start-at`,
78
118
  className: "block text-[10px] uppercase font-bold tracking-widest text-muted-foreground",
79
119
  children: "Starts"
80
- }
120
+ },
121
+ void 0,
122
+ !1,
123
+ {
124
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
125
+ lineNumber: 110,
126
+ columnNumber: 11
127
+ },
128
+ this
81
129
  ),
82
- /* @__PURE__ */ t(
83
- u,
130
+ /* @__PURE__ */ e(
131
+ a,
84
132
  {
85
- id: `${e}-sale-start-at`,
133
+ id: `${s}-sale-start-at`,
86
134
  type: "datetime-local",
87
- value: m(a),
88
- disabled: c,
89
- onChange: (l) => n("sale_start_at", i(l.target.value)),
135
+ value: i(t),
136
+ disabled: n,
137
+ onChange: (l) => c("sale_start_at", d(l.target.value)),
90
138
  className: "h-8 w-full text-xs"
91
- }
139
+ },
140
+ void 0,
141
+ !1,
142
+ {
143
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
144
+ lineNumber: 116,
145
+ columnNumber: 11
146
+ },
147
+ this
92
148
  )
93
- ] }),
94
- /* @__PURE__ */ s("div", { className: "min-w-0 space-y-1", children: [
95
- /* @__PURE__ */ t(
149
+ ] }, void 0, !0, {
150
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
151
+ lineNumber: 109,
152
+ columnNumber: 9
153
+ }, this),
154
+ /* @__PURE__ */ e("div", { className: "min-w-0 space-y-1", children: [
155
+ /* @__PURE__ */ e(
96
156
  o,
97
157
  {
98
- htmlFor: `${e}-sale-end-at`,
158
+ htmlFor: `${s}-sale-end-at`,
99
159
  className: "block text-[10px] uppercase font-bold tracking-widest text-muted-foreground",
100
160
  children: "Ends"
101
- }
161
+ },
162
+ void 0,
163
+ !1,
164
+ {
165
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
166
+ lineNumber: 126,
167
+ columnNumber: 11
168
+ },
169
+ this
102
170
  ),
103
- /* @__PURE__ */ t(
104
- u,
171
+ /* @__PURE__ */ e(
172
+ a,
105
173
  {
106
- id: `${e}-sale-end-at`,
174
+ id: `${s}-sale-end-at`,
107
175
  type: "datetime-local",
108
- value: m(x),
109
- disabled: c,
110
- onChange: (l) => n("sale_end_at", i(l.target.value)),
176
+ value: i(p),
177
+ disabled: n,
178
+ onChange: (l) => c("sale_end_at", d(l.target.value)),
111
179
  className: "h-8 w-full text-xs"
112
- }
180
+ },
181
+ void 0,
182
+ !1,
183
+ {
184
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
185
+ lineNumber: 132,
186
+ columnNumber: 11
187
+ },
188
+ this
113
189
  ),
114
- r ? /* @__PURE__ */ t("p", { className: "mt-0.5 text-[10px] text-destructive", children: r }) : null
115
- ] })
116
- ] }) : /* @__PURE__ */ s(
190
+ r ? /* @__PURE__ */ e("p", { className: "mt-0.5 text-[10px] text-destructive", children: r }, void 0, !1, {
191
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
192
+ lineNumber: 140,
193
+ columnNumber: 20
194
+ }, this) : null
195
+ ] }, void 0, !0, {
196
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
197
+ lineNumber: 125,
198
+ columnNumber: 9
199
+ }, this)
200
+ ] }, void 0, !0, {
201
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
202
+ lineNumber: 108,
203
+ columnNumber: 7
204
+ }, this) : /* @__PURE__ */ e(
117
205
  "div",
118
206
  {
119
- className: w("rounded border border-dashed bg-muted/5 space-y-1", p ? "p-1.5" : "p-2"),
207
+ className: f("rounded border border-dashed bg-muted/5 space-y-1", u ? "p-1.5" : "p-2"),
120
208
  children: [
121
- /* @__PURE__ */ s("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1.5", children: [
122
- /* @__PURE__ */ t("span", { className: "shrink-0 text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Sale window" }),
123
- $,
124
- /* @__PURE__ */ s("span", { className: "ml-auto text-[10px] text-muted-foreground", children: [
125
- v || "local time",
209
+ /* @__PURE__ */ e("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1.5", children: [
210
+ /* @__PURE__ */ e("span", { className: "shrink-0 text-[11px] font-bold uppercase tracking-wider text-muted-foreground", children: "Sale window" }, void 0, !1, {
211
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
212
+ lineNumber: 151,
213
+ columnNumber: 9
214
+ }, this),
215
+ S,
216
+ /* @__PURE__ */ e("span", { className: "ml-auto text-[10px] text-muted-foreground", children: [
217
+ g || "local time",
126
218
  " · empty = always on"
127
- ] })
128
- ] }),
129
- g && !p ? /* @__PURE__ */ t("p", { className: "text-[10px] leading-snug text-muted-foreground", children: g }) : null,
130
- r ? /* @__PURE__ */ t("p", { className: "text-[11px] text-destructive", children: r }) : null
219
+ ] }, void 0, !0, {
220
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
221
+ lineNumber: 155,
222
+ columnNumber: 9
223
+ }, this)
224
+ ] }, void 0, !0, {
225
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
226
+ lineNumber: 150,
227
+ columnNumber: 7
228
+ }, this),
229
+ b && !u ? /* @__PURE__ */ e("p", { className: "text-[10px] leading-snug text-muted-foreground", children: b }, void 0, !1, {
230
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
231
+ lineNumber: 160,
232
+ columnNumber: 9
233
+ }, this) : null,
234
+ r ? /* @__PURE__ */ e("p", { className: "text-[11px] text-destructive", children: r }, void 0, !1, {
235
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
236
+ lineNumber: 162,
237
+ columnNumber: 16
238
+ }, this) : null
131
239
  ]
132
- }
240
+ },
241
+ void 0,
242
+ !0,
243
+ {
244
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SaleScheduleFields.tsx",
245
+ lineNumber: 147,
246
+ columnNumber: 5
247
+ },
248
+ this
133
249
  );
134
250
  }
135
251
  export {
136
- k as SaleScheduleFields
252
+ D as SaleScheduleFields
137
253
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),i=require("react"),u=require("@nextblock-cms/ui"),a=require("lucide-react"),t=require("sonner"),l=require("../actions.cjs.js");function d({title:c="Sync Full Store"}){const[r,s]=i.useState(!1),o=async()=>{s(!0);try{const e=await l.triggerFreemiusSync();e.error?t.toast.error(e.error):t.toast.success(`Full store sync complete! Found ${e.data?.count||0} products.`)}catch(e){t.toast.error(e.message||"An unexpected error occurred during sync")}finally{s(!1)}};return n.jsxs(u.Button,{variant:"secondary",onClick:o,disabled:r,className:"gap-2",children:[n.jsx(a.RefreshCw,{className:`w-4 h-4 ${r?"animate-spin":""}`}),r?"Syncing...":c]})}exports.SyncFreemiusButton=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-dev-runtime"),i=require("react"),u=require("@nextblock-cms/ui"),a=require("lucide-react"),r=require("sonner"),l=require("../actions.cjs.js");function m({title:c="Sync Full Store"}){const[s,t]=i.useState(!1),o=async()=>{t(!0);try{const e=await l.triggerFreemiusSync();e.error?r.toast.error(e.error):r.toast.success(`Full store sync complete! Found ${e.data?.count||0} products.`)}catch(e){r.toast.error(e.message||"An unexpected error occurred during sync")}finally{t(!1)}};return n.jsxDEV(u.Button,{variant:"secondary",onClick:o,disabled:s,className:"gap-2",children:[n.jsxDEV(a.RefreshCw,{className:`w-4 h-4 ${s?"animate-spin":""}`},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusButton.tsx",lineNumber:35,columnNumber:7},this),s?"Syncing...":c]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusButton.tsx",lineNumber:29,columnNumber:5},this)}exports.SyncFreemiusButton=m;
@@ -1,36 +1,48 @@
1
1
  'use client';
2
- import { jsxs as o, jsx as c } from "react/jsx-runtime";
3
- import { useState as a } from "react";
2
+ import { jsxDEV as t } from "react/jsx-dev-runtime";
3
+ import { useState as c } from "react";
4
4
  import { Button as i } from "@nextblock-cms/ui";
5
5
  import { RefreshCw as m } from "lucide-react";
6
- import { toast as n } from "sonner";
7
- import { triggerFreemiusSync as l } from "../actions.es.js";
8
- function h({ title: s = "Sync Full Store" }) {
9
- const [e, t] = a(!1);
10
- return /* @__PURE__ */ o(
6
+ import { toast as s } from "sonner";
7
+ import { triggerFreemiusSync as a } from "../actions.es.js";
8
+ function g({ title: o = "Sync Full Store" }) {
9
+ const [r, n] = c(!1);
10
+ return /* @__PURE__ */ t(
11
11
  i,
12
12
  {
13
13
  variant: "secondary",
14
14
  onClick: async () => {
15
- t(!0);
15
+ n(!0);
16
16
  try {
17
- const r = await l();
18
- r.error ? n.error(r.error) : n.success(`Full store sync complete! Found ${r.data?.count || 0} products.`);
19
- } catch (r) {
20
- n.error(r.message || "An unexpected error occurred during sync");
17
+ const e = await a();
18
+ e.error ? s.error(e.error) : s.success(`Full store sync complete! Found ${e.data?.count || 0} products.`);
19
+ } catch (e) {
20
+ s.error(e.message || "An unexpected error occurred during sync");
21
21
  } finally {
22
- t(!1);
22
+ n(!1);
23
23
  }
24
24
  },
25
- disabled: e,
25
+ disabled: r,
26
26
  className: "gap-2",
27
27
  children: [
28
- /* @__PURE__ */ c(m, { className: `w-4 h-4 ${e ? "animate-spin" : ""}` }),
29
- e ? "Syncing..." : s
28
+ /* @__PURE__ */ t(m, { className: `w-4 h-4 ${r ? "animate-spin" : ""}` }, void 0, !1, {
29
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusButton.tsx",
30
+ lineNumber: 35,
31
+ columnNumber: 7
32
+ }, this),
33
+ r ? "Syncing..." : o
30
34
  ]
31
- }
35
+ },
36
+ void 0,
37
+ !0,
38
+ {
39
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusButton.tsx",
40
+ lineNumber: 29,
41
+ columnNumber: 5
42
+ },
43
+ this
32
44
  );
33
45
  }
34
46
  export {
35
- h as SyncFreemiusButton
47
+ g as SyncFreemiusButton
36
48
  };
@@ -1,5 +1,5 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),u=require("react"),l=require("next/navigation"),d=require("@nextblock-cms/ui"),f=require("lucide-react"),r=require("sonner"),g=require("../actions.cjs.js");function y({productId:t,hasOpenDraft:c=!1}){const o=l.useRouter(),[n,i]=u.useState(!1),a=async()=>{if(!t){r.toast.error("Product ID is missing");return}if(!(c&&!window.confirm(`You have unpublished draft changes for this product.
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-dev-runtime"),a=require("react"),l=require("next/navigation"),d=require("@nextblock-cms/ui"),m=require("lucide-react"),r=require("sonner"),g=require("../actions.cjs.js");function f({productId:n,hasOpenDraft:c=!1}){const o=l.useRouter(),[s,t]=a.useState(!1),u=async()=>{if(!n){r.toast.error("Product ID is missing");return}if(!(c&&!window.confirm(`You have unpublished draft changes for this product.
2
2
 
3
3
  Syncing updates the live pricing now, but publishing your draft afterward will overwrite it with the draft’s older values. Publish or discard your draft first to keep the synced prices.
4
4
 
5
- Sync anyway?`))){i(!0);try{const e=await g.triggerSingleProductSync(t);e.error?r.toast.error(e.error):(r.toast.success("Pricing sync complete!"),o.refresh())}catch(e){r.toast.error(e.message||"An unexpected error occurred during sync")}finally{i(!1)}}};return s.jsxs(d.Button,{variant:"outline",onClick:a,disabled:n,className:"gap-2",children:[s.jsx(f.RefreshCw,{className:`w-4 h-4 ${n?"animate-spin":""}`}),n?"Syncing...":"Sync Plans & Pricing from Freemius"]})}exports.SyncFreemiusPricingButton=y;
5
+ Sync anyway?`))){t(!0);try{const e=await g.triggerSingleProductSync(n);e.error?r.toast.error(e.error):(r.toast.success("Pricing sync complete!"),o.refresh())}catch(e){r.toast.error(e.message||"An unexpected error occurred during sync")}finally{t(!1)}}};return i.jsxDEV(d.Button,{variant:"outline",onClick:u,disabled:s,className:"gap-2",children:[i.jsxDEV(m.RefreshCw,{className:`w-4 h-4 ${s?"animate-spin":""}`},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusPricingButton.tsx",lineNumber:69,columnNumber:7},this),s?"Syncing...":"Sync Plans & Pricing from Freemius"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusPricingButton.tsx",lineNumber:63,columnNumber:5},this)}exports.SyncFreemiusPricingButton=f;
@@ -1,49 +1,61 @@
1
1
  'use client';
2
- import { jsxs as c, jsx as a } from "react/jsx-runtime";
3
- import { useState as u } from "react";
4
- import { useRouter as f } from "next/navigation";
5
- import { Button as l } from "@nextblock-cms/ui";
6
- import { RefreshCw as d } from "lucide-react";
7
- import { toast as e } from "sonner";
8
- import { triggerSingleProductSync as m } from "../actions.es.js";
9
- function v({ productId: i, hasOpenDraft: s = !1 }) {
10
- const o = f(), [n, t] = u(!1);
11
- return /* @__PURE__ */ c(
12
- l,
2
+ import { jsxDEV as t } from "react/jsx-dev-runtime";
3
+ import { useState as a } from "react";
4
+ import { useRouter as u } from "next/navigation";
5
+ import { Button as m } from "@nextblock-cms/ui";
6
+ import { RefreshCw as l } from "lucide-react";
7
+ import { toast as r } from "sonner";
8
+ import { triggerSingleProductSync as d } from "../actions.es.js";
9
+ function P({ productId: s, hasOpenDraft: o = !1 }) {
10
+ const c = u(), [n, i] = a(!1);
11
+ return /* @__PURE__ */ t(
12
+ m,
13
13
  {
14
14
  variant: "outline",
15
15
  onClick: async () => {
16
- if (!i) {
17
- e.error("Product ID is missing");
16
+ if (!s) {
17
+ r.error("Product ID is missing");
18
18
  return;
19
19
  }
20
- if (!(s && !window.confirm(
20
+ if (!(o && !window.confirm(
21
21
  `You have unpublished draft changes for this product.
22
22
 
23
23
  Syncing updates the live pricing now, but publishing your draft afterward will overwrite it with the draft’s older values. Publish or discard your draft first to keep the synced prices.
24
24
 
25
25
  Sync anyway?`
26
26
  ))) {
27
- t(!0);
27
+ i(!0);
28
28
  try {
29
- const r = await m(i);
30
- r.error ? e.error(r.error) : (e.success("Pricing sync complete!"), o.refresh());
31
- } catch (r) {
32
- e.error(r.message || "An unexpected error occurred during sync");
29
+ const e = await d(s);
30
+ e.error ? r.error(e.error) : (r.success("Pricing sync complete!"), c.refresh());
31
+ } catch (e) {
32
+ r.error(e.message || "An unexpected error occurred during sync");
33
33
  } finally {
34
- t(!1);
34
+ i(!1);
35
35
  }
36
36
  }
37
37
  },
38
38
  disabled: n,
39
39
  className: "gap-2",
40
40
  children: [
41
- /* @__PURE__ */ a(d, { className: `w-4 h-4 ${n ? "animate-spin" : ""}` }),
41
+ /* @__PURE__ */ t(l, { className: `w-4 h-4 ${n ? "animate-spin" : ""}` }, void 0, !1, {
42
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusPricingButton.tsx",
43
+ lineNumber: 69,
44
+ columnNumber: 7
45
+ }, this),
42
46
  n ? "Syncing..." : "Sync Plans & Pricing from Freemius"
43
47
  ]
44
- }
48
+ },
49
+ void 0,
50
+ !0,
51
+ {
52
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/SyncFreemiusPricingButton.tsx",
53
+ lineNumber: 63,
54
+ columnNumber: 5
55
+ },
56
+ this
45
57
  );
46
58
  }
47
59
  export {
48
- v as SyncFreemiusPricingButton
60
+ P as SyncFreemiusPricingButton
49
61
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),R=require("next/link"),f=require("react"),p=require("@nextblock-cms/ui"),g=require("../../../../variation-utils.cjs.js"),Q=require("./CurrencyPriceFields.cjs.js"),W=require("./SaleScheduleFields.cjs.js"),y=require("../../../../currency.cjs.js"),j=require("../product-price-sync.cjs.js"),k=require("@nextblock-cms/utils"),E=process.env.NEXT_PUBLIC_R2_BASE_URL||"",D=process.env.NEXT_PUBLIC_SUPABASE_URL||"",H=c=>c.startsWith("http")?c:E?`${E.replace(/\/+$/,"")}/${c.replace(/^\/+/,"")}`:D?`${D.replace(/\/+$/,"")}/storage/v1/object/public/media/${c.replace(/^\/+/,"")}`:c;function L(c,a="USD"){return new Intl.NumberFormat("en-US",{style:"currency",currency:a}).format(c)}function J(c){return Object.entries(c).filter(([,a])=>a.length>0).map(([a,b])=>({attribute_id:a,term_ids:b}))}function Y({globalAttributes:c,currentLanguageCode:a,baseSku:b,basePrice:$,basePrices:w,baseSalePrice:T,baseSalePrices:B,currencies:o,availableVariantImages:N=[],initialVariationAttributes:C,initialVariants:V,onChange:q}){const[_,z]=f.useState(()=>C&&C.length>0?C.reduce((e,r)=>(e[r.attribute_id]=r.term_ids,e),{}):g.extractSelectedTermsByAttribute(V||[])),[h,x]=f.useState(j.sanitizeVariantDraftsForStoreManagedCurrencies(V||[],o)),S=f.useMemo(()=>c.map(e=>({attribute_id:e.id,attribute_name:g.resolveAttributeName(e,a),terms:e.terms.filter(r=>(_[e.id]||[]).includes(r.id)).map(r=>({...r,value:g.resolveTermValue(r,a)}))})).filter(e=>e.terms.length>0),[a,c,_]);f.useEffect(()=>{if(S.length===0){x([]);return}x(e=>j.sanitizeVariantDraftsForStoreManagedCurrencies(g.generateVariantDrafts({baseSku:b,basePrice:$,basePrices:y.normalizePriceMap(w),baseSalePrice:T,baseSalePrices:y.normalizeSalePriceMap(B),selectedAttributes:S,previousVariants:e}),o))},[$,w,T,B,b,o,S]),f.useEffect(()=>{q({variationAttributes:J(_),variants:h})},[q,_,h]);const I=h.reduce((e,r)=>e+(r.stock_quantity||0),0),P=o.find(e=>e.is_default)??o[0],U=f.useMemo(()=>j.getStoreManagedPriceCurrencyCodes(o),[o]),K=(e,r)=>{z(t=>{const n=new Set(t[e]||[]);return n.has(r)?n.delete(r):n.add(r),{...t,[e]:[...n]}})},M=(e,r,t)=>{x(n=>n.map(i=>{if(i.combination_key!==e)return i;if(r==="sku")return{...i,sku:t};if(r==="upc")return{...i,upc:t};if(r==="sale_price"&&t==="")return{...i,sale_price:null};if(r==="prices"||r==="sale_prices")return i;const d=t===""?0:Number(t);return{...i,[r]:Number.isFinite(d)?d:0}}))},O=(e,r,t)=>{x(n=>n.map(i=>i.combination_key===e?{...i,[r]:t}:i))},F=(e,r,t,n)=>{const i=o.find(d=>d.is_default)??o[0];x(d=>d.map(m=>{if(m.combination_key!==e)return m;const u={...t==="prices"?m.prices:m.sale_prices,[r]:n};return{...m,[t]:u,...r===i?.code?t==="prices"?{price:n??0}:{sale_price:n}:{}}}))},X=e=>{const r=o.find(n=>n.is_default)??o[0],t=new Set(U);r&&x(n=>n.map(i=>{if(i.combination_key!==e)return i;const d=o.reduce((u,l)=>{if(l.code!==r.code&&t.has(l.code))return u;const A=y.convertMinorUnitAmount({amount:k.majorUnitAmountToMinor(i.price,r.code),fromCurrencyCode:r.code,toCurrencyCode:l.code,currencies:o,applyRounding:!0});return u[l.code]=k.minorUnitAmountToMajor(A,l.code),u},{}),m=o.reduce((u,l)=>{if(l.code!==r.code&&t.has(l.code))return u;if(typeof i.sale_price!="number")return u[l.code]=null,u;const A=y.convertMinorUnitAmount({amount:k.majorUnitAmountToMinor(i.sale_price,r.code),fromCurrencyCode:r.code,toCurrencyCode:l.code,currencies:o,applyRounding:!0});return u[l.code]=k.minorUnitAmountToMajor(A,l.code),u},{});return{...i,prices:d,sale_prices:m}}))},G=(e,r)=>{const t=N.find(d=>d.media_id===r);if(!t)return;const n=t.file_path,i=H(n);x(d=>d.map(m=>m.combination_key===e?{...m,main_media_id:t.media_id,main_image_url:i}:m))},v=e=>{x(r=>r.map(t=>t.combination_key===e?{...t,main_media_id:null,main_image_url:null}:t))};return c.length===0?s.jsxs("div",{className:"rounded-lg border border-dashed p-6 text-sm text-muted-foreground",children:["No global attributes have been created yet. Create them first in"," ",s.jsx(R,{href:"/cms/products/attributes",className:"font-medium text-primary underline-offset-4 hover:underline",children:"Attribute Management"}),"."]}):s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"space-y-2",children:[s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Attributes"}),s.jsxs(p.Badge,{variant:"outline",className:"text-[10px] px-1.5 h-4",children:[h.length," variants"]}),s.jsxs(p.Badge,{variant:"secondary",className:"text-[10px] px-1.5 h-4",children:["Stock: ",I]})]}),s.jsx(p.Button,{asChild:!0,variant:"outline",size:"sm",className:"h-7 text-xs px-3",children:s.jsx(R,{href:"/cms/products/attributes",children:"Manage"})})]}),s.jsx("div",{className:"grid gap-2 lg:grid-cols-2",children:c.map(e=>{const r=_[e.id]||[];return s.jsxs("div",{className:"flex items-center gap-3 rounded border p-2.5",children:[s.jsxs("div",{className:"shrink-0 w-[100px]",children:[s.jsx("span",{className:"text-sm font-bold block leading-tight",children:g.resolveAttributeName(e,a)}),s.jsxs("span",{className:"text-[10px] text-muted-foreground leading-none",children:[r.length," selected"]})]}),s.jsx("div",{className:"flex flex-wrap gap-1.5 flex-1",children:e.terms.map(t=>{const n=r.includes(t.id);return s.jsx("button",{type:"button",onClick:()=>K(e.id,t.id),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"}`,children:g.resolveTermValue(t,a)},t.id)})})]},e.id)})})]}),h.length===0?s.jsx("div",{className:"rounded border border-dashed p-3 text-xs text-muted-foreground text-center",children:"Select terms above to generate variations."}):s.jsx("div",{className:"space-y-2",children:h.map(e=>{const r=j.resolveEditorCurrencyPriceMaps({currencies:o,prices:e.prices||{},salePrices:e.sale_prices||{},fallbackPrice:e.price,fallbackSalePrice:e.sale_price});return s.jsxs("div",{className:"rounded border p-3 space-y-2",children:[s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"text-sm font-bold",children:e.label}),s.jsx("span",{className:"text-xs text-muted-foreground",children:e.selected_options.map(t=>`${t.attribute_name}: ${t.term_value}`).join(" · ")})]}),s.jsxs("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[s.jsxs("span",{children:["Reg: ",L(e.price,P?.code||"USD")]}),s.jsxs("span",{children:["Sale:"," ",e.sale_price!==null&&e.sale_price!==void 0?L(e.sale_price,P?.code||"USD"):"—"]})]})]}),s.jsxs("div",{className:"grid grid-cols-3 gap-2.5",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(p.Label,{htmlFor:`variant-sku-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"SKU"}),s.jsx(p.Input,{id:`variant-sku-${e.combination_key}`,value:e.sku,onChange:t=>M(e.combination_key,"sku",t.target.value),placeholder:"SKU",className:"h-8 text-sm font-mono"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(p.Label,{htmlFor:`variant-upc-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"UPC"}),s.jsx(p.Input,{id:`variant-upc-${e.combination_key}`,value:e.upc??"",onChange:t=>M(e.combination_key,"upc",t.target.value),placeholder:"—",className:"h-8 text-sm font-mono"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(p.Label,{htmlFor:`variant-stock-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"Qty"}),s.jsx(p.Input,{id:`variant-stock-${e.combination_key}`,type:"number",min:"0",value:e.stock_quantity,onChange:t=>M(e.combination_key,"stock_quantity",t.target.value),className:"h-8 text-sm font-mono w-20"})]})]}),s.jsx(Q.CurrencyPriceFields,{idPrefix:`variant-${e.combination_key}`,currencies:o,prices:r.prices,salePrices:r.salePrices,managedCurrencyCodes:U,onPriceChange:(t,n)=>F(e.combination_key,t,"prices",n),onSalePriceChange:(t,n)=>F(e.combination_key,t,"sale_prices",n),onAutoFill:()=>X(e.combination_key),helperText:U.length>0?`Store-managed currencies derive from ${P?.code||"the base currency"}.`:void 0,trailing:s.jsx(W.SaleScheduleFields,{idPrefix:`variant-${e.combination_key}`,startAt:e.sale_start_at,endAt:e.sale_end_at,onChange:(t,n)=>O(e.combination_key,t,n),bare:!0})}),s.jsxs("div",{className:"flex items-center gap-3 pt-1.5 border-t border-muted/30",children:[e.main_image_url&&s.jsx("div",{className:"h-9 w-9 overflow-hidden rounded border bg-background shrink-0",children:s.jsx("img",{src:e.main_image_url,alt:`${e.label} image`,className:"h-full w-full object-cover"})}),s.jsx("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"Image"}),N.length>0?s.jsxs("select",{className:"flex h-8 rounded-md border border-input bg-background px-2 py-1 text-sm min-w-[180px]",value:e.main_media_id??"",onChange:t=>{if(!t.target.value){v(e.combination_key);return}G(e.combination_key,t.target.value)},children:[s.jsx("option",{value:"",children:"Use parent image"}),N.map((t,n)=>s.jsx("option",{value:t.media_id,children:t.alt?.trim()||`Gallery image ${n+1}`},t.media_id))]}):s.jsx("span",{className:"text-xs text-muted-foreground",children:"Add gallery images first."}),e.main_media_id&&s.jsx(p.Button,{type:"button",variant:"ghost",size:"sm",className:"h-7 text-xs px-2 text-muted-foreground hover:text-destructive",onClick:()=>v(e.combination_key),children:"Remove"})]})]},e.combination_key)})})]})}exports.VariationsEditor=Y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-dev-runtime"),q=require("next/link"),N=require("react"),p=require("@nextblock-cms/ui"),f=require("../../../../variation-utils.cjs.js"),Q=require("./CurrencyPriceFields.cjs.js"),W=require("./SaleScheduleFields.cjs.js"),g=require("../../../../currency.cjs.js"),V=require("../product-price-sync.cjs.js"),j=require("@nextblock-cms/utils"),F=process.env.NEXT_PUBLIC_R2_BASE_URL||"",R=process.env.NEXT_PUBLIC_SUPABASE_URL||"",H=c=>c.startsWith("http")?c:F?`${F.replace(/\/+$/,"")}/${c.replace(/^\/+/,"")}`:R?`${R.replace(/\/+$/,"")}/storage/v1/object/public/media/${c.replace(/^\/+/,"")}`:c;function L(c,a="USD"){return new Intl.NumberFormat("en-US",{style:"currency",currency:a}).format(c)}function J(c){return Object.entries(c).filter(([,a])=>a.length>0).map(([a,k])=>({attribute_id:a,term_ids:k}))}function Y({globalAttributes:c,currentLanguageCode:a,baseSku:k,basePrice:S,basePrices:P,baseSalePrice:M,baseSalePrices:A,currencies:n,availableVariantImages:E=[],initialVariationAttributes:D,initialVariants:$,onChange:w}){const[h,z]=N.useState(()=>D&&D.length>0?D.reduce((e,t)=>(e[t.attribute_id]=t.term_ids,e),{}):f.extractSelectedTermsByAttribute($||[])),[x,b]=N.useState(V.sanitizeVariantDraftsForStoreManagedCurrencies($||[],n)),_=N.useMemo(()=>c.map(e=>({attribute_id:e.id,attribute_name:f.resolveAttributeName(e,a),terms:e.terms.filter(t=>(h[e.id]||[]).includes(t.id)).map(t=>({...t,value:f.resolveTermValue(t,a)}))})).filter(e=>e.terms.length>0),[a,c,h]);N.useEffect(()=>{if(_.length===0){b([]);return}b(e=>V.sanitizeVariantDraftsForStoreManagedCurrencies(f.generateVariantDrafts({baseSku:k,basePrice:S,basePrices:g.normalizePriceMap(P),baseSalePrice:M,baseSalePrices:g.normalizeSalePriceMap(A),selectedAttributes:_,previousVariants:e}),n))},[S,P,M,A,k,n,_]),N.useEffect(()=>{w({variationAttributes:J(h),variants:x})},[w,h,x]);const I=x.reduce((e,t)=>e+(t.stock_quantity||0),0),C=n.find(e=>e.is_default)??n[0],U=N.useMemo(()=>V.getStoreManagedPriceCurrencyCodes(n),[n]),K=(e,t)=>{z(s=>{const i=new Set(s[e]||[]);return i.has(t)?i.delete(t):i.add(t),{...s,[e]:[...i]}})},y=(e,t,s)=>{b(i=>i.map(o=>{if(o.combination_key!==e)return o;if(t==="sku")return{...o,sku:s};if(t==="upc")return{...o,upc:s};if(t==="sale_price"&&s==="")return{...o,sale_price:null};if(t==="prices"||t==="sale_prices")return o;const m=s===""?0:Number(s);return{...o,[t]:Number.isFinite(m)?m:0}}))},O=(e,t,s)=>{b(i=>i.map(o=>o.combination_key===e?{...o,[t]:s}:o))},T=(e,t,s,i)=>{const o=n.find(m=>m.is_default)??n[0];b(m=>m.map(d=>{if(d.combination_key!==e)return d;const u={...s==="prices"?d.prices:d.sale_prices,[t]:i};return{...d,[s]:u,...t===o?.code?s==="prices"?{price:i??0}:{sale_price:i}:{}}}))},X=e=>{const t=n.find(i=>i.is_default)??n[0],s=new Set(U);t&&b(i=>i.map(o=>{if(o.combination_key!==e)return o;const m=n.reduce((u,l)=>{if(l.code!==t.code&&s.has(l.code))return u;const v=g.convertMinorUnitAmount({amount:j.majorUnitAmountToMinor(o.price,t.code),fromCurrencyCode:t.code,toCurrencyCode:l.code,currencies:n,applyRounding:!0});return u[l.code]=j.minorUnitAmountToMajor(v,l.code),u},{}),d=n.reduce((u,l)=>{if(l.code!==t.code&&s.has(l.code))return u;if(typeof o.sale_price!="number")return u[l.code]=null,u;const v=g.convertMinorUnitAmount({amount:j.majorUnitAmountToMinor(o.sale_price,t.code),fromCurrencyCode:t.code,toCurrencyCode:l.code,currencies:n,applyRounding:!0});return u[l.code]=j.minorUnitAmountToMajor(v,l.code),u},{});return{...o,prices:m,sale_prices:d}}))},G=(e,t)=>{const s=E.find(m=>m.media_id===t);if(!s)return;const i=s.file_path,o=H(i);b(m=>m.map(d=>d.combination_key===e?{...d,main_media_id:s.media_id,main_image_url:o}:d))},B=e=>{b(t=>t.map(s=>s.combination_key===e?{...s,main_media_id:null,main_image_url:null}:s))};return c.length===0?r.jsxDEV("div",{className:"rounded-lg border border-dashed p-6 text-sm text-muted-foreground",children:["No global attributes have been created yet. Create them first in"," ",r.jsxDEV(q,{href:"/cms/products/attributes",className:"font-medium text-primary underline-offset-4 hover:underline",children:"Attribute Management"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:402,columnNumber:9},this),"."]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:400,columnNumber:7},this):r.jsxDEV("div",{className:"space-y-3",children:[r.jsxDEV("div",{className:"space-y-2",children:[r.jsxDEV("div",{className:"flex items-center justify-between gap-3",children:[r.jsxDEV("div",{className:"flex items-center gap-3",children:[r.jsxDEV("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Attributes"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:416,columnNumber:13},this),r.jsxDEV(p.Badge,{variant:"outline",className:"text-[10px] px-1.5 h-4",children:[x.length," variants"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:417,columnNumber:13},this),r.jsxDEV(p.Badge,{variant:"secondary",className:"text-[10px] px-1.5 h-4",children:["Stock: ",I]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:418,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:415,columnNumber:11},this),r.jsxDEV(p.Button,{asChild:!0,variant:"outline",size:"sm",className:"h-7 text-xs px-3",children:r.jsxDEV(q,{href:"/cms/products/attributes",children:"Manage"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:421,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:420,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:414,columnNumber:9},this),r.jsxDEV("div",{className:"grid gap-2 lg:grid-cols-2",children:c.map(e=>{const t=h[e.id]||[];return r.jsxDEV("div",{className:"flex items-center gap-3 rounded border p-2.5",children:[r.jsxDEV("div",{className:"shrink-0 w-[100px]",children:[r.jsxDEV("span",{className:"text-sm font-bold block leading-tight",children:f.resolveAttributeName(e,a)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:432,columnNumber:19},this),r.jsxDEV("span",{className:"text-[10px] text-muted-foreground leading-none",children:[t.length," selected"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:433,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:431,columnNumber:17},this),r.jsxDEV("div",{className:"flex flex-wrap gap-1.5 flex-1",children:e.terms.map(s=>{const i=t.includes(s.id);return r.jsxDEV("button",{type:"button",onClick:()=>K(e.id,s.id),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"}`,children:f.resolveTermValue(s,a)},s.id,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:440,columnNumber:23},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:435,columnNumber:17},this)]},e.id,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:430,columnNumber:15},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:425,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:413,columnNumber:7},this),x.length===0?r.jsxDEV("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,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:463,columnNumber:9},this):r.jsxDEV("div",{className:"space-y-2",children:x.map(e=>{const t=V.resolveEditorCurrencyPriceMaps({currencies:n,prices:e.prices||{},salePrices:e.sale_prices||{},fallbackPrice:e.price,fallbackSalePrice:e.sale_price});return r.jsxDEV("div",{className:"rounded border p-3 space-y-2",children:[r.jsxDEV("div",{className:"flex items-center justify-between gap-3",children:[r.jsxDEV("div",{className:"flex items-center gap-2",children:[r.jsxDEV("span",{className:"text-sm font-bold",children:e.label},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:482,columnNumber:21},this),r.jsxDEV("span",{className:"text-xs text-muted-foreground",children:e.selected_options.map(s=>`${s.attribute_name}: ${s.term_value}`).join(" · ")},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:483,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:481,columnNumber:19},this),r.jsxDEV("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[r.jsxDEV("span",{children:["Reg: ",L(e.price,C?.code||"USD")]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:490,columnNumber:21},this),r.jsxDEV("span",{children:["Sale:"," ",e.sale_price!==null&&e.sale_price!==void 0?L(e.sale_price,C?.code||"USD"):"—"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:491,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:489,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:480,columnNumber:17},this),r.jsxDEV("div",{className:"grid grid-cols-3 gap-2.5",children:[r.jsxDEV("div",{className:"flex items-center gap-2",children:[r.jsxDEV(p.Label,{htmlFor:`variant-sku-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"SKU"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:503,columnNumber:21},this),r.jsxDEV(p.Input,{id:`variant-sku-${e.combination_key}`,value:e.sku,onChange:s=>y(e.combination_key,"sku",s.target.value),placeholder:"SKU",className:"h-8 text-sm font-mono"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:504,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:502,columnNumber:19},this),r.jsxDEV("div",{className:"flex items-center gap-2",children:[r.jsxDEV(p.Label,{htmlFor:`variant-upc-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"UPC"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:515,columnNumber:21},this),r.jsxDEV(p.Input,{id:`variant-upc-${e.combination_key}`,value:e.upc??"",onChange:s=>y(e.combination_key,"upc",s.target.value),placeholder:"—",className:"h-8 text-sm font-mono"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:516,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:514,columnNumber:19},this),r.jsxDEV("div",{className:"flex items-center gap-2",children:[r.jsxDEV(p.Label,{htmlFor:`variant-stock-${e.combination_key}`,className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"Qty"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:527,columnNumber:21},this),r.jsxDEV(p.Input,{id:`variant-stock-${e.combination_key}`,type:"number",min:"0",value:e.stock_quantity,onChange:s=>y(e.combination_key,"stock_quantity",s.target.value),className:"h-8 text-sm font-mono w-20"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:528,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:526,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:501,columnNumber:17},this),r.jsxDEV(Q.CurrencyPriceFields,{idPrefix:`variant-${e.combination_key}`,currencies:n,prices:t.prices,salePrices:t.salePrices,managedCurrencyCodes:U,onPriceChange:(s,i)=>T(e.combination_key,s,"prices",i),onSalePriceChange:(s,i)=>T(e.combination_key,s,"sale_prices",i),onAutoFill:()=>X(e.combination_key),helperText:U.length>0?`Store-managed currencies derive from ${C?.code||"the base currency"}.`:void 0,trailing:r.jsxDEV(W.SaleScheduleFields,{idPrefix:`variant-${e.combination_key}`,startAt:e.sale_start_at,endAt:e.sale_end_at,onChange:(s,i)=>O(e.combination_key,s,i),bare:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:575,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:546,columnNumber:17},this),r.jsxDEV("div",{className:"flex items-center gap-3 pt-1.5 border-t border-muted/30",children:[e.main_image_url&&r.jsxDEV("div",{className:"h-9 w-9 overflow-hidden rounded border bg-background shrink-0",children:r.jsxDEV("img",{src:e.main_image_url,alt:`${e.label} image`,className:"h-full w-full object-cover"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:591,columnNumber:23},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:590,columnNumber:21},this),r.jsxDEV("span",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider shrink-0",children:"Image"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:598,columnNumber:19},this),E.length>0?r.jsxDEV("select",{className:"flex h-8 rounded-md border border-input bg-background px-2 py-1 text-sm min-w-[180px]",value:e.main_media_id??"",onChange:s=>{if(!s.target.value){B(e.combination_key);return}G(e.combination_key,s.target.value)},children:[r.jsxDEV("option",{value:"",children:"Use parent image"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:611,columnNumber:23},this),E.map((s,i)=>r.jsxDEV("option",{value:s.media_id,children:s.alt?.trim()||`Gallery image ${i+1}`},s.media_id,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:613,columnNumber:25},this))]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:600,columnNumber:21},this):r.jsxDEV("span",{className:"text-xs text-muted-foreground",children:"Add gallery images first."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:619,columnNumber:21},this),e.main_media_id&&r.jsxDEV(p.Button,{type:"button",variant:"ghost",size:"sm",className:"h-7 text-xs px-2 text-muted-foreground hover:text-destructive",onClick:()=>B(e.combination_key),children:"Remove"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:622,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:588,columnNumber:17},this)]},e.combination_key,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:478,columnNumber:15},this)})},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:467,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/products/components/VariationsEditor.tsx",lineNumber:411,columnNumber:5},this)}exports.VariationsEditor=Y;