@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.
- package/lib/CurrencyProvider.cjs.js +1 -1
- package/lib/CurrencyProvider.es.js +24 -24
- package/lib/components/AccountNavigationMenu.cjs.js +1 -1
- package/lib/components/AccountNavigationMenu.es.js +28 -28
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.es.js +39 -39
- package/lib/components/Cart.cjs.js +1 -1
- package/lib/components/Cart.es.js +141 -141
- package/lib/components/CartDrawer.cjs.js +1 -1
- package/lib/components/CartDrawer.es.js +96 -96
- package/lib/components/CartIcon.cjs.js +1 -1
- package/lib/components/CartIcon.es.js +17 -17
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.es.js +596 -596
- package/lib/components/CouponForm.cjs.js +1 -1
- package/lib/components/CouponForm.es.js +89 -89
- package/lib/components/CurrencySwitcher.cjs.js +1 -1
- package/lib/components/CurrencySwitcher.es.js +16 -16
- package/lib/components/CustomerProfileForm.cjs.js +1 -1
- package/lib/components/CustomerProfileForm.es.js +230 -230
- package/lib/components/FeaturedProduct.cjs.js +1 -1
- package/lib/components/FeaturedProduct.es.js +33 -33
- package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
- package/lib/components/FreemiusLicensePanel.es.js +43 -43
- package/lib/components/InvoiceDocument.cjs.js +1 -1
- package/lib/components/InvoiceDocument.es.js +161 -161
- package/lib/components/InvoiceViewerShell.cjs.js +2 -2
- package/lib/components/InvoiceViewerShell.es.js +53 -53
- package/lib/components/ProductCard.cjs.js +1 -1
- package/lib/components/ProductCard.es.js +72 -72
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.es.js +263 -263
- package/lib/components/ProductGallery.cjs.js +1 -1
- package/lib/components/ProductGallery.es.js +24 -24
- package/lib/components/ProductGrid.cjs.js +1 -1
- package/lib/components/ProductGrid.es.js +11 -11
- package/lib/components/ShippingEstimator.cjs.js +1 -1
- package/lib/components/ShippingEstimator.es.js +74 -74
- package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
- package/lib/components/SimpleTiptapRenderer.es.js +61 -61
- package/lib/components/SubscriptionSelector.cjs.js +1 -1
- package/lib/components/SubscriptionSelector.es.js +82 -82
- package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.es.js +104 -104
- package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
- package/lib/pages/cms/coupons/CouponsPage.es.js +100 -100
- package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.es.js +19 -19
- package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +22 -22
- package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.es.js +57 -57
- package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
- package/lib/pages/cms/orders/ExportReportsDialog.es.js +71 -71
- package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.es.js +57 -57
- package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderPrintButton.es.js +4 -4
- package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderStatusForm.es.js +30 -30
- package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrdersPage.es.js +50 -50
- package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsClient.es.js +164 -164
- package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsPage.es.js +11 -11
- package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +31 -31
- package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +57 -57
- package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +18 -18
- package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +123 -123
- package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +18 -18
- package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
- package/lib/pages/cms/products/categories/components/CategoryManager.es.js +132 -132
- package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
- package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +75 -75
- package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +66 -66
- package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.es.js +11 -11
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +59 -59
- package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductCategorySelector.es.js +85 -85
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +451 -451
- package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.es.js +49 -49
- package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.es.js +147 -147
- package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.es.js +60 -60
- package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +12 -12
- package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.es.js +228 -228
- package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.es.js +7 -7
- package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
- package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +125 -125
- package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +30 -30
- package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
- package/lib/pages/cms/shipping/ShippingPage.es.js +168 -168
- package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/RateForm.es.js +291 -291
- package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/ZoneForm.es.js +140 -140
- package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +132 -132
- package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.es.js +49 -49
- package/lib/product-context.cjs.js +1 -1
- package/lib/product-context.es.js +8 -8
- 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
|
|
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
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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:
|
|
67
|
+
createAttributeAction: g,
|
|
68
68
|
deleteAttributeAction: p,
|
|
69
|
-
createTermAction:
|
|
70
|
-
deleteTermAction:
|
|
71
|
-
reorderTermsAction:
|
|
72
|
-
updateTranslationsAction:
|
|
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: "
|
|
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: "
|
|
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
|
-
|
|
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;
|