@nextblock-cms/ecom 0.14.0 → 0.14.2

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 +24 -24
  3. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  4. package/lib/components/AccountNavigationMenu.es.js +28 -28
  5. package/lib/components/AddToCartButton.cjs.js +1 -1
  6. package/lib/components/AddToCartButton.es.js +39 -39
  7. package/lib/components/Cart.cjs.js +1 -1
  8. package/lib/components/Cart.es.js +141 -141
  9. package/lib/components/CartDrawer.cjs.js +1 -1
  10. package/lib/components/CartDrawer.es.js +96 -96
  11. package/lib/components/CartIcon.cjs.js +1 -1
  12. package/lib/components/CartIcon.es.js +17 -17
  13. package/lib/components/Checkout.cjs.js +1 -1
  14. package/lib/components/Checkout.es.js +596 -596
  15. package/lib/components/CouponForm.cjs.js +1 -1
  16. package/lib/components/CouponForm.es.js +89 -89
  17. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  18. package/lib/components/CurrencySwitcher.es.js +16 -16
  19. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  20. package/lib/components/CustomerProfileForm.es.js +230 -230
  21. package/lib/components/FeaturedProduct.cjs.js +1 -1
  22. package/lib/components/FeaturedProduct.es.js +33 -33
  23. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  24. package/lib/components/FreemiusLicensePanel.es.js +43 -43
  25. package/lib/components/InvoiceDocument.cjs.js +1 -1
  26. package/lib/components/InvoiceDocument.es.js +161 -161
  27. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  28. package/lib/components/InvoiceViewerShell.es.js +53 -53
  29. package/lib/components/ProductCard.cjs.js +1 -1
  30. package/lib/components/ProductCard.es.js +72 -72
  31. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  32. package/lib/components/ProductDetailsLayout.es.js +263 -263
  33. package/lib/components/ProductGallery.cjs.js +1 -1
  34. package/lib/components/ProductGallery.es.js +24 -24
  35. package/lib/components/ProductGrid.cjs.js +1 -1
  36. package/lib/components/ProductGrid.es.js +11 -11
  37. package/lib/components/ShippingEstimator.cjs.js +1 -1
  38. package/lib/components/ShippingEstimator.es.js +74 -74
  39. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  40. package/lib/components/SimpleTiptapRenderer.es.js +61 -61
  41. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  42. package/lib/components/SubscriptionSelector.es.js +82 -82
  43. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  44. package/lib/pages/cms/coupons/CouponEditorForm.es.js +104 -104
  45. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  46. package/lib/pages/cms/coupons/CouponsPage.es.js +100 -100
  47. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  48. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +19 -19
  49. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  50. package/lib/pages/cms/coupons/EditCouponPage.es.js +22 -22
  51. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  52. package/lib/pages/cms/coupons/ProductScopePicker.es.js +57 -57
  53. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  54. package/lib/pages/cms/orders/ExportReportsDialog.es.js +71 -71
  55. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  56. package/lib/pages/cms/orders/OrderDetailPage.es.js +57 -57
  57. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  58. package/lib/pages/cms/orders/OrderPrintButton.es.js +4 -4
  59. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  60. package/lib/pages/cms/orders/OrderStatusForm.es.js +30 -30
  61. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  62. package/lib/pages/cms/orders/OrdersPage.es.js +50 -50
  63. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  64. package/lib/pages/cms/payments/PaymentsClient.es.js +164 -164
  65. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  66. package/lib/pages/cms/payments/PaymentsPage.es.js +11 -11
  67. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  68. package/lib/pages/cms/products/ProductsPage.es.js +31 -31
  69. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  70. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +57 -57
  71. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  72. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +18 -18
  73. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  74. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +123 -123
  75. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  76. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +18 -18
  77. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  78. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +132 -132
  79. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  80. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +75 -75
  81. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  82. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +66 -66
  83. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  84. package/lib/pages/cms/products/components/DeleteProductButton.es.js +11 -11
  85. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  86. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +59 -59
  87. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  88. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +85 -85
  89. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  90. package/lib/pages/cms/products/components/ProductForm.es.js +451 -451
  91. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  92. package/lib/pages/cms/products/components/ProductMediaManager.es.js +49 -49
  93. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  94. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +147 -147
  95. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  96. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +60 -60
  97. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  98. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +2 -2
  99. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  100. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +12 -12
  101. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  102. package/lib/pages/cms/products/components/VariationsEditor.es.js +228 -228
  103. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  104. package/lib/pages/cms/products/inventory/InventoryPage.es.js +7 -7
  105. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  106. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +125 -125
  107. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  108. package/lib/pages/cms/products/new/NewProductPage.es.js +30 -30
  109. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  110. package/lib/pages/cms/shipping/ShippingPage.es.js +168 -168
  111. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  112. package/lib/pages/cms/shipping/components/RateForm.es.js +291 -291
  113. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  114. package/lib/pages/cms/shipping/components/ZoneForm.es.js +140 -140
  115. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  116. package/lib/pages/cms/taxes/TaxesPage.es.js +132 -132
  117. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  118. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +49 -49
  119. package/lib/product-context.cjs.js +1 -1
  120. package/lib/product-context.es.js +8 -8
  121. package/package.json +4 -4
@@ -4,9 +4,9 @@ import { ArrowLeft as o } from "lucide-react";
4
4
  import { Button as n } from "@nextblock-cms/ui";
5
5
  import { getActiveLanguagesServerSide as c } from "@nextblock-cms/db/server";
6
6
  import { getGlobalProductAttributes as l } from "../actions.es.js";
7
- import { updateProductAttributeTranslationsAction as b, reorderProductAttributeTermsAction as u, deleteProductAttributeTermAction as d, createProductAttributeTermAction as g, deleteProductAttributeAction as p, createProductAttributeAction as x } from "../server-actions.es.js";
7
+ import { updateProductAttributeTranslationsAction as u, reorderProductAttributeTermsAction as d, deleteProductAttributeTermAction as b, createProductAttributeTermAction as N, deleteProductAttributeAction as p, createProductAttributeAction as g } from "../server-actions.es.js";
8
8
  import { AttributeManager as f } from "./components/AttributeManager.es.js";
9
- async function W() {
9
+ async function D() {
10
10
  const [r, i] = await Promise.all([
11
11
  l(),
12
12
  c()
@@ -23,40 +23,40 @@ async function W() {
23
23
  return /* @__PURE__ */ e("div", { className: "space-y-8 w-full max-w-[1200px] mx-auto px-6 py-8", children: [
24
24
  /* @__PURE__ */ e("div", { className: "flex flex-wrap items-center justify-between gap-4", children: /* @__PURE__ */ e("div", { className: "flex items-center gap-3", children: [
25
25
  /* @__PURE__ */ e(n, { variant: "outline", size: "icon", asChild: !0, children: /* @__PURE__ */ e(m, { href: "/cms/products", children: /* @__PURE__ */ e(o, { className: "h-4 w-4" }, void 0, !1, {
26
- fileName: "D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
26
+ fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
27
27
  lineNumber: 39,
28
28
  columnNumber: 15
29
29
  }, this) }, void 0, !1, {
30
- fileName: "D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
30
+ fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
31
31
  lineNumber: 38,
32
32
  columnNumber: 13
33
33
  }, this) }, void 0, !1, {
34
- fileName: "D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
34
+ fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
35
35
  lineNumber: 37,
36
36
  columnNumber: 11
37
37
  }, this),
38
38
  /* @__PURE__ */ e("div", { children: [
39
39
  /* @__PURE__ */ e("h1", { className: "text-2xl font-bold", children: "Global Attribute Management" }, void 0, !1, {
40
- fileName: "D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
40
+ fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
41
41
  lineNumber: 43,
42
42
  columnNumber: 13
43
43
  }, this),
44
44
  /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: "Define reusable attributes and terms for variation-based physical products." }, void 0, !1, {
45
- fileName: "D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
45
+ fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
46
46
  lineNumber: 44,
47
47
  columnNumber: 13
48
48
  }, this)
49
49
  ] }, void 0, !0, {
50
- fileName: "D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
50
+ fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
51
51
  lineNumber: 42,
52
52
  columnNumber: 11
53
53
  }, this)
54
54
  ] }, void 0, !0, {
55
- fileName: "D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
55
+ fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
56
56
  lineNumber: 36,
57
57
  columnNumber: 9
58
58
  }, this) }, void 0, !1, {
59
- fileName: "D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
59
+ fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
60
60
  lineNumber: 35,
61
61
  columnNumber: 7
62
62
  }, this),
@@ -64,29 +64,29 @@ async function W() {
64
64
  f,
65
65
  {
66
66
  attributes: a,
67
- createAttributeAction: x,
67
+ createAttributeAction: g,
68
68
  deleteAttributeAction: p,
69
- createTermAction: g,
70
- deleteTermAction: d,
71
- reorderTermsAction: u,
72
- updateTranslationsAction: b,
69
+ createTermAction: N,
70
+ deleteTermAction: b,
71
+ reorderTermsAction: d,
72
+ updateTranslationsAction: u,
73
73
  languages: i
74
74
  },
75
75
  void 0,
76
76
  !1,
77
77
  {
78
- fileName: "D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
78
+ fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
79
79
  lineNumber: 51,
80
80
  columnNumber: 7
81
81
  },
82
82
  this
83
83
  )
84
84
  ] }, void 0, !0, {
85
- fileName: "D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
85
+ fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
86
86
  lineNumber: 34,
87
87
  columnNumber: 5
88
88
  }, this);
89
89
  }
90
90
  export {
91
- W as AttributeManagementPage
91
+ D as AttributeManagementPage
92
92
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-dev-runtime"),c=require("react"),U=require("next/navigation"),i=require("@nextblock-cms/ui"),l=require("lucide-react");function G({attributes:m,languages:y,createAttributeAction:w,deleteAttributeAction:T,createTermAction:S,deleteTermAction:I,reorderTermsAction:$,updateTranslationsAction:C}){const a=U.useRouter(),[b,N]=c.useState(""),[g,h]=c.useState(null),[F,f]=c.useState(null),[v,D]=c.useState(null),[A,j]=c.useState(null),[u,k]=c.useState({}),[M,B]=c.useState(()=>m.reduce((e,t)=>(e[t.id]=t.name_translations||{},e),{})),[E,P]=c.useState(()=>m.reduce((e,t)=>{for(const r of t.terms)e[r.id]=r.value_translations||{};return e},{})),d=y.filter(e=>!e.is_default),q=async e=>{e.preventDefault();const t=await w({name:b});if(!t.success){alert(t.error||"Failed to create attribute.");return}N(""),a.refresh()},z=async(e,t)=>{e.preventDefault(),h(t);const r=await S({attributeId:t,value:u[t]||""});if(h(null),!r.success){alert(r.error||"Failed to create term.");return}k(n=>({...n,[t]:""})),a.refresh()},L=async e=>{if(!window.confirm("Delete this attribute and all of its terms?"))return;const r=await T(e);if(!r.success){alert(r.error||"Failed to delete attribute.");return}a.refresh()},R=async e=>{f(e);const t=await I(e);if(f(null),!t.success){alert(t.error||"Failed to delete term.");return}a.refresh()},V=async(e,t,r)=>{const n=e.terms.findIndex(p=>p.id===t),o=n+r;if(n===-1||o<0||o>=e.terms.length)return;const x=[...e.terms],[O]=x.splice(n,1);x.splice(o,0,O),D(e.id);const W=await $({attributeId:e.id,orderedTermIds:x.map(p=>p.id)});if(D(null),!W.success){alert(W.error||"Failed to reorder terms.");return}a.refresh()},_=async e=>{j(e.id);const t=await C({attributeId:e.id,nameTranslations:M[e.id]||{},termTranslations:e.terms.map(r=>({termId:r.id,valueTranslations:E[r.id]||{}}))});if(j(null),!t.success){alert(t.error||"Failed to save translations.");return}a.refresh()};return s.jsxDEV("div",{className:"space-y-6",children:[s.jsxDEV("form",{onSubmit:q,className:"rounded-lg border bg-card p-6 shadow-sm",children:s.jsxDEV("div",{className:"flex flex-wrap items-end gap-4",children:[s.jsxDEV("div",{className:"flex-1 min-w-[220px] space-y-2",children:[s.jsxDEV(i.Label,{htmlFor:"attribute-name",children:"New Attribute"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:186,columnNumber:13},this),s.jsxDEV(i.Input,{id:"attribute-name",value:b,onChange:e=>N(e.target.value),placeholder:"Material, Size, Color..."},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:187,columnNumber:13},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:185,columnNumber:11},this),s.jsxDEV(i.Button,{type:"submit",disabled:!b.trim(),children:[s.jsxDEV(l.Plus,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:195,columnNumber:13},this),"Create Attribute"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:194,columnNumber:11},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:184,columnNumber:9},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:183,columnNumber:7},this),m.length===0?s.jsxDEV("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,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:202,columnNumber:9},this):s.jsxDEV("div",{className:"grid gap-6",children:m.map(e=>s.jsxDEV("div",{className:"rounded-lg border bg-card p-6 shadow-sm",children:[s.jsxDEV("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[s.jsxDEV("div",{children:[s.jsxDEV("h2",{className:"text-lg font-semibold",children:e.name},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:211,columnNumber:19},this),s.jsxDEV("p",{className:"text-sm text-muted-foreground",children:e.slug},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:212,columnNumber:19},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:210,columnNumber:17},this),s.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>L(e.id),className:"text-muted-foreground hover:text-destructive",children:s.jsxDEV(l.Trash2,{className:"h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:221,columnNumber:19},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:214,columnNumber:17},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:209,columnNumber:15},this),s.jsxDEV("div",{className:"mt-4 space-y-2",children:e.terms.map((t,r)=>s.jsxDEV("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-lg border bg-muted/20 px-3 py-2",children:[s.jsxDEV("div",{className:"flex items-center gap-2",children:[s.jsxDEV(i.Badge,{variant:"secondary",className:"py-1.5",children:t.value},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:232,columnNumber:23},this),s.jsxDEV("span",{className:"text-xs text-muted-foreground",children:["Position ",r+1]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:235,columnNumber:23},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:231,columnNumber:21},this),s.jsxDEV("div",{className:"flex items-center gap-1",children:[s.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>V(e,t.id,-1),disabled:r===0||v===e.id,children:s.jsxDEV(l.ChevronUp,{className:"h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:246,columnNumber:25},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:238,columnNumber:23},this),s.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>V(e,t.id,1),disabled:r===e.terms.length-1||v===e.id,children:s.jsxDEV(l.ChevronDown,{className:"h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:259,columnNumber:25},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:248,columnNumber:23},this),s.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>R(t.id),className:"h-8 w-8 text-muted-foreground hover:text-destructive",disabled:F===t.id,children:s.jsxDEV(l.Trash2,{className:"h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:269,columnNumber:25},this)},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:261,columnNumber:23},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:237,columnNumber:21},this)]},t.id,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:227,columnNumber:19},this))},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:225,columnNumber:15},this),s.jsxDEV("form",{onSubmit:t=>z(t,e.id),className:"mt-6 flex flex-wrap items-end gap-3",children:[s.jsxDEV("div",{className:"flex-1 min-w-[220px] space-y-2",children:[s.jsxDEV(i.Label,{htmlFor:`term-input-${e.id}`,children:"Add Term"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:281,columnNumber:19},this),s.jsxDEV(i.Input,{id:`term-input-${e.id}`,value:u[e.id]||"",onChange:t=>k(r=>({...r,[e.id]:t.target.value})),placeholder:`Add a term for ${e.name}`},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:282,columnNumber:19},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:280,columnNumber:17},this),s.jsxDEV(i.Button,{type:"submit",variant:"outline",disabled:!u[e.id]?.trim()||g===e.id,children:[s.jsxDEV(l.Plus,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:299,columnNumber:19},this),g===e.id?"Saving...":"Add Term"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:294,columnNumber:17},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:276,columnNumber:15},this),d.length>0&&s.jsxDEV("div",{className:"mt-6 border-t pt-6 space-y-4",children:[s.jsxDEV("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[s.jsxDEV("div",{children:[s.jsxDEV("h3",{className:"font-medium",children:"Translations"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:308,columnNumber:23},this),s.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Translate the attribute label and each term for every active site language."},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:309,columnNumber:23},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:307,columnNumber:21},this),s.jsxDEV(i.Button,{type:"button",variant:"outline",onClick:()=>_(e),disabled:A===e.id,children:A===e.id?"Saving...":"Save Translations"},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:313,columnNumber:21},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:306,columnNumber:19},this),s.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2",children:d.map(t=>s.jsxDEV("div",{className:"space-y-2",children:[s.jsxDEV(i.Label,{htmlFor:`attribute-translation-${e.id}-${t.code}`,children:["Attribute Name (",t.name,")"]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:326,columnNumber:25},this),s.jsxDEV(i.Input,{id:`attribute-translation-${e.id}-${t.code}`,value:M[e.id]?.[t.code]||"",onChange:r=>B(n=>({...n,[e.id]:{...n[e.id]||{},[t.code]:r.target.value}})),placeholder:e.name},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:329,columnNumber:25},this)]},`${e.id}-${t.code}`,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:325,columnNumber:23},this))},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:323,columnNumber:19},this),s.jsxDEV("div",{className:"space-y-3",children:e.terms.map(t=>s.jsxDEV("div",{className:"rounded-lg border p-4 space-y-3",children:[s.jsxDEV("div",{children:[s.jsxDEV("p",{className:"font-medium",children:t.value},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:351,columnNumber:27},this),s.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Translate this term for each language."},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:352,columnNumber:27},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:350,columnNumber:25},this),s.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2",children:d.map(r=>s.jsxDEV("div",{className:"space-y-2",children:[s.jsxDEV(i.Label,{htmlFor:`term-translation-${t.id}-${r.code}`,children:r.name},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:357,columnNumber:31},this),s.jsxDEV(i.Input,{id:`term-translation-${t.id}-${r.code}`,value:E[t.id]?.[r.code]||"",onChange:n=>P(o=>({...o,[t.id]:{...o[t.id]||{},[r.code]:n.target.value}})),placeholder:t.value},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:360,columnNumber:31},this)]},`${t.id}-${r.code}`,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:356,columnNumber:29},this))},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:354,columnNumber:25},this)]},`translations-${t.id}`,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:349,columnNumber:23},this))},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:347,columnNumber:19},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:305,columnNumber:17},this)]},e.id,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:208,columnNumber:13},this))},void 0,!1,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:206,columnNumber:9},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-sandbox/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:182,columnNumber:5},this)}exports.AttributeManager=G;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-dev-runtime"),c=require("react"),O=require("next/navigation"),i=require("@nextblock-cms/ui"),l=require("lucide-react");function G({attributes:m,languages:U,createAttributeAction:E,deleteAttributeAction:H,createTermAction:V,deleteTermAction:y,reorderTermsAction:w,updateTranslationsAction:T}){const a=O.useRouter(),[d,x]=c.useState(""),[g,h]=c.useState(null),[S,f]=c.useState(null),[v,D]=c.useState(null),[j,k]=c.useState(null),[u,A]=c.useState({}),[C,I]=c.useState(()=>m.reduce((e,t)=>(e[t.id]=t.name_translations||{},e),{})),[B,$]=c.useState(()=>m.reduce((e,t)=>{for(const r of t.terms)e[r.id]=r.value_translations||{};return e},{})),b=U.filter(e=>!e.is_default),F=async e=>{e.preventDefault();const t=await E({name:d});if(!t.success){alert(t.error||"Failed to create attribute.");return}x(""),a.refresh()},P=async(e,t)=>{e.preventDefault(),h(t);const r=await V({attributeId:t,value:u[t]||""});if(h(null),!r.success){alert(r.error||"Failed to create term.");return}A(n=>({...n,[t]:""})),a.refresh()},q=async e=>{if(!window.confirm("Delete this attribute and all of its terms?"))return;const r=await H(e);if(!r.success){alert(r.error||"Failed to delete attribute.");return}a.refresh()},z=async e=>{f(e);const t=await y(e);if(f(null),!t.success){alert(t.error||"Failed to delete term.");return}a.refresh()},M=async(e,t,r)=>{const n=e.terms.findIndex(p=>p.id===t),o=n+r;if(n===-1||o<0||o>=e.terms.length)return;const N=[...e.terms],[_]=N.splice(n,1);N.splice(o,0,_),D(e.id);const R=await w({attributeId:e.id,orderedTermIds:N.map(p=>p.id)});if(D(null),!R.success){alert(R.error||"Failed to reorder terms.");return}a.refresh()},L=async e=>{k(e.id);const t=await T({attributeId:e.id,nameTranslations:C[e.id]||{},termTranslations:e.terms.map(r=>({termId:r.id,valueTranslations:B[r.id]||{}}))});if(k(null),!t.success){alert(t.error||"Failed to save translations.");return}a.refresh()};return s.jsxDEV("div",{className:"space-y-6",children:[s.jsxDEV("form",{onSubmit:F,className:"rounded-lg border bg-card p-6 shadow-sm",children:s.jsxDEV("div",{className:"flex flex-wrap items-end gap-4",children:[s.jsxDEV("div",{className:"flex-1 min-w-[220px] space-y-2",children:[s.jsxDEV(i.Label,{htmlFor:"attribute-name",children:"New Attribute"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:186,columnNumber:13},this),s.jsxDEV(i.Input,{id:"attribute-name",value:d,onChange:e=>x(e.target.value),placeholder:"Material, Size, Color..."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:187,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:185,columnNumber:11},this),s.jsxDEV(i.Button,{type:"submit",disabled:!d.trim(),children:[s.jsxDEV(l.Plus,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:195,columnNumber:13},this),"Create Attribute"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:194,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:184,columnNumber:9},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:183,columnNumber:7},this),m.length===0?s.jsxDEV("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,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:202,columnNumber:9},this):s.jsxDEV("div",{className:"grid gap-6",children:m.map(e=>s.jsxDEV("div",{className:"rounded-lg border bg-card p-6 shadow-sm",children:[s.jsxDEV("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[s.jsxDEV("div",{children:[s.jsxDEV("h2",{className:"text-lg font-semibold",children:e.name},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:211,columnNumber:19},this),s.jsxDEV("p",{className:"text-sm text-muted-foreground",children:e.slug},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:212,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:210,columnNumber:17},this),s.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>q(e.id),className:"text-muted-foreground hover:text-destructive",children:s.jsxDEV(l.Trash2,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:221,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:214,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:209,columnNumber:15},this),s.jsxDEV("div",{className:"mt-4 space-y-2",children:e.terms.map((t,r)=>s.jsxDEV("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-lg border bg-muted/20 px-3 py-2",children:[s.jsxDEV("div",{className:"flex items-center gap-2",children:[s.jsxDEV(i.Badge,{variant:"secondary",className:"py-1.5",children:t.value},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:232,columnNumber:23},this),s.jsxDEV("span",{className:"text-xs text-muted-foreground",children:["Position ",r+1]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:235,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:231,columnNumber:21},this),s.jsxDEV("div",{className:"flex items-center gap-1",children:[s.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>M(e,t.id,-1),disabled:r===0||v===e.id,children:s.jsxDEV(l.ChevronUp,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:246,columnNumber:25},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:238,columnNumber:23},this),s.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>M(e,t.id,1),disabled:r===e.terms.length-1||v===e.id,children:s.jsxDEV(l.ChevronDown,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:259,columnNumber:25},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:248,columnNumber:23},this),s.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>z(t.id),className:"h-8 w-8 text-muted-foreground hover:text-destructive",disabled:S===t.id,children:s.jsxDEV(l.Trash2,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:269,columnNumber:25},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:261,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:237,columnNumber:21},this)]},t.id,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:227,columnNumber:19},this))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:225,columnNumber:15},this),s.jsxDEV("form",{onSubmit:t=>P(t,e.id),className:"mt-6 flex flex-wrap items-end gap-3",children:[s.jsxDEV("div",{className:"flex-1 min-w-[220px] space-y-2",children:[s.jsxDEV(i.Label,{htmlFor:`term-input-${e.id}`,children:"Add Term"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:281,columnNumber:19},this),s.jsxDEV(i.Input,{id:`term-input-${e.id}`,value:u[e.id]||"",onChange:t=>A(r=>({...r,[e.id]:t.target.value})),placeholder:`Add a term for ${e.name}`},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:282,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:280,columnNumber:17},this),s.jsxDEV(i.Button,{type:"submit",variant:"outline",disabled:!u[e.id]?.trim()||g===e.id,children:[s.jsxDEV(l.Plus,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:299,columnNumber:19},this),g===e.id?"Saving...":"Add Term"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:294,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:276,columnNumber:15},this),b.length>0&&s.jsxDEV("div",{className:"mt-6 border-t pt-6 space-y-4",children:[s.jsxDEV("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[s.jsxDEV("div",{children:[s.jsxDEV("h3",{className:"font-medium",children:"Translations"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:308,columnNumber:23},this),s.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Translate the attribute label and each term for every active site language."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:309,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:307,columnNumber:21},this),s.jsxDEV(i.Button,{type:"button",variant:"outline",onClick:()=>L(e),disabled:j===e.id,children:j===e.id?"Saving...":"Save Translations"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:313,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:306,columnNumber:19},this),s.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2",children:b.map(t=>s.jsxDEV("div",{className:"space-y-2",children:[s.jsxDEV(i.Label,{htmlFor:`attribute-translation-${e.id}-${t.code}`,children:["Attribute Name (",t.name,")"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:326,columnNumber:25},this),s.jsxDEV(i.Input,{id:`attribute-translation-${e.id}-${t.code}`,value:C[e.id]?.[t.code]||"",onChange:r=>I(n=>({...n,[e.id]:{...n[e.id]||{},[t.code]:r.target.value}})),placeholder:e.name},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:329,columnNumber:25},this)]},`${e.id}-${t.code}`,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:325,columnNumber:23},this))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:323,columnNumber:19},this),s.jsxDEV("div",{className:"space-y-3",children:e.terms.map(t=>s.jsxDEV("div",{className:"rounded-lg border p-4 space-y-3",children:[s.jsxDEV("div",{children:[s.jsxDEV("p",{className:"font-medium",children:t.value},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:351,columnNumber:27},this),s.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Translate this term for each language."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:352,columnNumber:27},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:350,columnNumber:25},this),s.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2",children:b.map(r=>s.jsxDEV("div",{className:"space-y-2",children:[s.jsxDEV(i.Label,{htmlFor:`term-translation-${t.id}-${r.code}`,children:r.name},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:357,columnNumber:31},this),s.jsxDEV(i.Input,{id:`term-translation-${t.id}-${r.code}`,value:B[t.id]?.[r.code]||"",onChange:n=>$(o=>({...o,[t.id]:{...o[t.id]||{},[r.code]:n.target.value}})),placeholder:t.value},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:360,columnNumber:31},this)]},`${t.id}-${r.code}`,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:356,columnNumber:29},this))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:354,columnNumber:25},this)]},`translations-${t.id}`,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:349,columnNumber:23},this))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:347,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:305,columnNumber:17},this)]},e.id,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:208,columnNumber:13},this))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:206,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:182,columnNumber:5},this)}exports.AttributeManager=G;