@nextblock-cms/ecom 0.16.1 → 0.16.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.d.ts +1 -1
- package/lib/CurrencyProvider.es.js +21 -21
- package/lib/PaymentReadinessProvider.cjs.js +1 -1
- package/lib/PaymentReadinessProvider.d.ts +1 -1
- package/lib/PaymentReadinessProvider.es.js +11 -11
- package/lib/components/AccountNavigationMenu.cjs.js +1 -1
- package/lib/components/AccountNavigationMenu.d.ts +1 -1
- package/lib/components/AccountNavigationMenu.es.js +28 -28
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.d.ts +1 -1
- package/lib/components/AddToCartButton.es.js +48 -48
- package/lib/components/Cart.cjs.js +1 -1
- package/lib/components/Cart.d.ts +1 -1
- package/lib/components/Cart.es.js +144 -144
- package/lib/components/CartDrawer.cjs.js +1 -1
- package/lib/components/CartDrawer.d.ts +1 -1
- package/lib/components/CartDrawer.es.js +95 -95
- package/lib/components/CartIcon.cjs.js +1 -1
- package/lib/components/CartIcon.d.ts +1 -1
- package/lib/components/CartIcon.es.js +20 -20
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.d.ts +1 -1
- package/lib/components/Checkout.es.js +712 -712
- package/lib/components/CouponForm.cjs.js +1 -1
- package/lib/components/CouponForm.d.ts +1 -1
- package/lib/components/CouponForm.es.js +89 -89
- package/lib/components/CurrencySwitcher.cjs.js +1 -1
- package/lib/components/CurrencySwitcher.d.ts +1 -1
- package/lib/components/CurrencySwitcher.es.js +14 -14
- package/lib/components/CustomerProfileForm.cjs.js +1 -1
- package/lib/components/CustomerProfileForm.d.ts +1 -1
- package/lib/components/CustomerProfileForm.es.js +263 -263
- package/lib/components/FeaturedProduct.cjs.js +1 -1
- package/lib/components/FeaturedProduct.d.ts +1 -1
- package/lib/components/FeaturedProduct.es.js +38 -38
- package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
- package/lib/components/FreemiusLicensePanel.d.ts +1 -1
- package/lib/components/FreemiusLicensePanel.es.js +47 -47
- package/lib/components/InvoiceDocument.cjs.js +1 -1
- package/lib/components/InvoiceDocument.d.ts +1 -2
- package/lib/components/InvoiceDocument.es.js +164 -164
- package/lib/components/InvoiceViewerShell.cjs.js +2 -2
- package/lib/components/InvoiceViewerShell.d.ts +1 -1
- package/lib/components/InvoiceViewerShell.es.js +57 -57
- package/lib/components/ProductCard.cjs.js +1 -1
- package/lib/components/ProductCard.d.ts +1 -1
- package/lib/components/ProductCard.es.js +98 -98
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.es.js +267 -267
- package/lib/components/ProductGallery.cjs.js +1 -1
- package/lib/components/ProductGallery.d.ts +1 -1
- package/lib/components/ProductGallery.es.js +26 -26
- package/lib/components/ProductGrid.cjs.js +1 -1
- package/lib/components/ProductGrid.d.ts +1 -1
- package/lib/components/ProductGrid.es.js +12 -12
- package/lib/components/ShippingEstimator.cjs.js +1 -1
- package/lib/components/ShippingEstimator.d.ts +1 -1
- package/lib/components/ShippingEstimator.es.js +90 -90
- package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
- package/lib/components/SimpleTiptapRenderer.es.js +135 -135
- package/lib/components/SubscriptionSelector.cjs.js +1 -1
- package/lib/components/SubscriptionSelector.d.ts +1 -2
- package/lib/components/SubscriptionSelector.es.js +97 -97
- package/lib/components/media/MediaPickerDialog.d.ts +1 -2
- package/lib/components/media/MediaUploadForm.d.ts +1 -2
- package/lib/components/media/UploadFolderContext.d.ts +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.d.ts +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.es.js +107 -107
- package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
- package/lib/pages/cms/coupons/CouponsPage.d.ts +1 -1
- package/lib/pages/cms/coupons/CouponsPage.es.js +90 -90
- package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.d.ts +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.es.js +22 -22
- package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.d.ts +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +31 -31
- package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.d.ts +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.es.js +65 -65
- package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
- package/lib/pages/cms/orders/ExportReportsDialog.d.ts +1 -2
- package/lib/pages/cms/orders/ExportReportsDialog.es.js +86 -86
- package/lib/pages/cms/orders/MarkPaidButton.d.ts +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.d.ts +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.es.js +96 -96
- package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderPrintButton.d.ts +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.d.ts +1 -1
- package/lib/pages/cms/orders/OrderStatusForm.es.js +41 -41
- package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrdersPage.d.ts +1 -1
- package/lib/pages/cms/orders/OrdersPage.es.js +69 -69
- package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsClient.d.ts +1 -1
- package/lib/pages/cms/payments/PaymentsClient.es.js +415 -394
- package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsPage.d.ts +1 -1
- package/lib/pages/cms/payments/PaymentsPage.es.js +7 -7
- package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
- package/lib/pages/cms/products/ProductsPage.d.ts +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +32 -32
- package/lib/pages/cms/products/[id]/edit/EditProductPage.d.ts +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +65 -65
- package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.d.ts +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +35 -35
- package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.d.ts +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +199 -199
- package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.d.ts +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +17 -17
- package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
- package/lib/pages/cms/products/categories/components/CategoryManager.d.ts +1 -2
- package/lib/pages/cms/products/categories/components/CategoryManager.es.js +138 -138
- package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
- package/lib/pages/cms/products/components/CopyProductFromLanguage.d.ts +1 -2
- 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.d.ts +1 -1
- package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +79 -79
- package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.d.ts +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.es.js +16 -16
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.d.ts +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +57 -57
- package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductCategorySelector.d.ts +1 -2
- package/lib/pages/cms/products/components/ProductCategorySelector.es.js +103 -103
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.d.ts +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +407 -407
- package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.d.ts +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.es.js +58 -58
- package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.d.ts +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.es.js +157 -157
- package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.d.ts +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.es.js +57 -57
- package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.d.ts +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +9 -9
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.d.ts +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +14 -14
- package/lib/pages/cms/products/components/SyncProductForm.d.ts +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.d.ts +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.es.js +236 -236
- package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.d.ts +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.es.js +11 -11
- package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
- package/lib/pages/cms/products/inventory/InventoryTableClient.d.ts +1 -1
- package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +156 -156
- package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/new/NewProductPage.d.ts +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +36 -36
- package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
- package/lib/pages/cms/shipping/ShippingPage.d.ts +1 -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.d.ts +1 -1
- package/lib/pages/cms/shipping/components/RateForm.es.js +288 -288
- package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/ZoneForm.d.ts +1 -2
- package/lib/pages/cms/shipping/components/ZoneForm.es.js +141 -141
- package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
- package/lib/pages/cms/taxes/TaxesPage.d.ts +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +129 -129
- package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.d.ts +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.es.js +55 -55
- package/lib/product-context.cjs.js +1 -1
- package/lib/product-context.es.js +7 -7
- package/package.json +4 -4
|
@@ -1,92 +1,92 @@
|
|
|
1
1
|
import { jsxDEV as e } from "react/jsx-dev-runtime";
|
|
2
|
-
import
|
|
3
|
-
import { ArrowLeft as
|
|
4
|
-
import { Button as
|
|
5
|
-
import { getActiveLanguagesServerSide as
|
|
6
|
-
import { getGlobalProductAttributes as
|
|
7
|
-
import { updateProductAttributeTranslationsAction as
|
|
8
|
-
import { AttributeManager as
|
|
9
|
-
async function
|
|
10
|
-
const [
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
]), a = (
|
|
2
|
+
import o from "next/link";
|
|
3
|
+
import { ArrowLeft as c } from "lucide-react";
|
|
4
|
+
import { Button as m } from "@nextblock-cms/ui";
|
|
5
|
+
import { getActiveLanguagesServerSide as n } from "@nextblock-cms/db/server";
|
|
6
|
+
import { getGlobalProductAttributes as u } from "../actions.es.js";
|
|
7
|
+
import { updateProductAttributeTranslationsAction as l, reorderProductAttributeTermsAction as b, deleteProductAttributeTermAction as d, createProductAttributeTermAction as p, deleteProductAttributeAction as g, createProductAttributeAction as f } from "../server-actions.es.js";
|
|
8
|
+
import { AttributeManager as A } from "./components/AttributeManager.es.js";
|
|
9
|
+
async function W() {
|
|
10
|
+
const [i, s] = await Promise.all([
|
|
11
|
+
u(),
|
|
12
|
+
n()
|
|
13
|
+
]), a = (i || []).map((t) => ({
|
|
14
14
|
id: t.id,
|
|
15
15
|
name: t.name,
|
|
16
16
|
name_translations: t.name_translations || {},
|
|
17
17
|
slug: t.slug,
|
|
18
|
-
terms: (t.product_attribute_terms || []).map((
|
|
19
|
-
...
|
|
20
|
-
value_translations:
|
|
18
|
+
terms: (t.product_attribute_terms || []).map((r) => ({
|
|
19
|
+
...r,
|
|
20
|
+
value_translations: r.value_translations || {}
|
|
21
21
|
}))
|
|
22
22
|
}));
|
|
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
|
-
/* @__PURE__ */ e(
|
|
26
|
-
fileName: "
|
|
25
|
+
/* @__PURE__ */ e(m, { variant: "outline", size: "icon", asChild: !0, children: /* @__PURE__ */ e(o, { href: "/cms/products", children: /* @__PURE__ */ e(c, { className: "h-4 w-4" }, void 0, !1, {
|
|
26
|
+
fileName: "D:/Websites/nextblock-production/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: "D:/Websites/nextblock-production/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: "D:/Websites/nextblock-production/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: "D:/Websites/nextblock-production/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: "D:/Websites/nextblock-production/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: "D:/Websites/nextblock-production/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: "D:/Websites/nextblock-production/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: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/AttributeManagementPage.tsx",
|
|
60
60
|
lineNumber: 35,
|
|
61
61
|
columnNumber: 7
|
|
62
62
|
}, this),
|
|
63
63
|
/* @__PURE__ */ e(
|
|
64
|
-
|
|
64
|
+
A,
|
|
65
65
|
{
|
|
66
66
|
attributes: a,
|
|
67
|
-
createAttributeAction:
|
|
68
|
-
deleteAttributeAction:
|
|
69
|
-
createTermAction:
|
|
70
|
-
deleteTermAction:
|
|
71
|
-
reorderTermsAction:
|
|
72
|
-
updateTranslationsAction:
|
|
73
|
-
languages:
|
|
67
|
+
createAttributeAction: f,
|
|
68
|
+
deleteAttributeAction: g,
|
|
69
|
+
createTermAction: p,
|
|
70
|
+
deleteTermAction: d,
|
|
71
|
+
reorderTermsAction: b,
|
|
72
|
+
updateTranslationsAction: l,
|
|
73
|
+
languages: s
|
|
74
74
|
},
|
|
75
75
|
void 0,
|
|
76
76
|
!1,
|
|
77
77
|
{
|
|
78
|
-
fileName: "
|
|
78
|
+
fileName: "D:/Websites/nextblock-production/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: "D:/Websites/nextblock-production/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
|
+
W 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"),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;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-dev-runtime"),o=require("react"),U=require("next/navigation"),i=require("@nextblock-cms/ui"),a=require("lucide-react");function G({attributes:m,languages:y,createAttributeAction:w,deleteAttributeAction:T,createTermAction:S,deleteTermAction:I,reorderTermsAction:$,updateTranslationsAction:C}){const n=U.useRouter(),[u,x]=o.useState(""),[g,h]=o.useState(null),[F,f]=o.useState(null),[v,D]=o.useState(null),[A,j]=o.useState(null),[b,k]=o.useState({}),[M,B]=o.useState(()=>m.reduce((e,s)=>(e[s.id]=s.name_translations||{},e),{})),[E,P]=o.useState(()=>m.reduce((e,s)=>{for(const r of s.terms)e[r.id]=r.value_translations||{};return e},{})),d=y.filter(e=>!e.is_default),q=async e=>{e.preventDefault();const s=await w({name:u});if(!s.success){alert(s.error||"Failed to create attribute.");return}x(""),n.refresh()},z=async(e,s)=>{e.preventDefault(),h(s);const r=await S({attributeId:s,value:b[s]||""});if(h(null),!r.success){alert(r.error||"Failed to create term.");return}k(c=>({...c,[s]:""})),n.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}n.refresh()},R=async e=>{f(e);const s=await I(e);if(f(null),!s.success){alert(s.error||"Failed to delete term.");return}n.refresh()},V=async(e,s,r)=>{const c=e.terms.findIndex(N=>N.id===s),l=c+r;if(c===-1||l<0||l>=e.terms.length)return;const p=[...e.terms],[O]=p.splice(c,1);p.splice(l,0,O),D(e.id);const W=await $({attributeId:e.id,orderedTermIds:p.map(N=>N.id)});if(D(null),!W.success){alert(W.error||"Failed to reorder terms.");return}n.refresh()},_=async e=>{j(e.id);const s=await C({attributeId:e.id,nameTranslations:M[e.id]||{},termTranslations:e.terms.map(r=>({termId:r.id,valueTranslations:E[r.id]||{}}))});if(j(null),!s.success){alert(s.error||"Failed to save translations.");return}n.refresh()};return t.jsxDEV("div",{className:"space-y-6",children:[t.jsxDEV("form",{onSubmit:q,className:"rounded-lg border bg-card p-6 shadow-sm",children:t.jsxDEV("div",{className:"flex flex-wrap items-end gap-4",children:[t.jsxDEV("div",{className:"flex-1 min-w-[220px] space-y-2",children:[t.jsxDEV(i.Label,{htmlFor:"attribute-name",children:"New Attribute"},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:186,columnNumber:13},this),t.jsxDEV(i.Input,{id:"attribute-name",value:u,onChange:e=>x(e.target.value),placeholder:"Material, Size, Color..."},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:187,columnNumber:13},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:185,columnNumber:11},this),t.jsxDEV(i.Button,{type:"submit",disabled:!u.trim(),children:[t.jsxDEV(a.Plus,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-production/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-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:194,columnNumber:11},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:184,columnNumber:9},this)},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:183,columnNumber:7},this),m.length===0?t.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-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:202,columnNumber:9},this):t.jsxDEV("div",{className:"grid gap-6",children:m.map(e=>t.jsxDEV("div",{className:"rounded-lg border bg-card p-6 shadow-sm",children:[t.jsxDEV("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[t.jsxDEV("div",{children:[t.jsxDEV("h2",{className:"text-lg font-semibold",children:e.name},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:211,columnNumber:19},this),t.jsxDEV("p",{className:"text-sm text-muted-foreground",children:e.slug},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:212,columnNumber:19},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:210,columnNumber:17},this),t.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>L(e.id),className:"text-muted-foreground hover:text-destructive",children:t.jsxDEV(a.Trash2,{className:"h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:221,columnNumber:19},this)},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:214,columnNumber:17},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:209,columnNumber:15},this),t.jsxDEV("div",{className:"mt-4 space-y-2",children:e.terms.map((s,r)=>t.jsxDEV("div",{className:"flex flex-wrap items-center justify-between gap-3 rounded-lg border bg-muted/20 px-3 py-2",children:[t.jsxDEV("div",{className:"flex items-center gap-2",children:[t.jsxDEV(i.Badge,{variant:"secondary",className:"py-1.5",children:s.value},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:232,columnNumber:23},this),t.jsxDEV("span",{className:"text-xs text-muted-foreground",children:["Position ",r+1]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:235,columnNumber:23},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:231,columnNumber:21},this),t.jsxDEV("div",{className:"flex items-center gap-1",children:[t.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>V(e,s.id,-1),disabled:r===0||v===e.id,children:t.jsxDEV(a.ChevronUp,{className:"h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:246,columnNumber:25},this)},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:238,columnNumber:23},this),t.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>V(e,s.id,1),disabled:r===e.terms.length-1||v===e.id,children:t.jsxDEV(a.ChevronDown,{className:"h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:259,columnNumber:25},this)},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:248,columnNumber:23},this),t.jsxDEV(i.Button,{type:"button",variant:"ghost",size:"icon",onClick:()=>R(s.id),className:"h-8 w-8 text-muted-foreground hover:text-destructive",disabled:F===s.id,children:t.jsxDEV(a.Trash2,{className:"h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:269,columnNumber:25},this)},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:261,columnNumber:23},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:237,columnNumber:21},this)]},s.id,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:227,columnNumber:19},this))},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:225,columnNumber:15},this),t.jsxDEV("form",{onSubmit:s=>z(s,e.id),className:"mt-6 flex flex-wrap items-end gap-3",children:[t.jsxDEV("div",{className:"flex-1 min-w-[220px] space-y-2",children:[t.jsxDEV(i.Label,{htmlFor:`term-input-${e.id}`,children:"Add Term"},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:281,columnNumber:19},this),t.jsxDEV(i.Input,{id:`term-input-${e.id}`,value:b[e.id]||"",onChange:s=>k(r=>({...r,[e.id]:s.target.value})),placeholder:`Add a term for ${e.name}`},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:282,columnNumber:19},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:280,columnNumber:17},this),t.jsxDEV(i.Button,{type:"submit",variant:"outline",disabled:!b[e.id]?.trim()||g===e.id,children:[t.jsxDEV(a.Plus,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"D:/Websites/nextblock-production/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-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:294,columnNumber:17},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:276,columnNumber:15},this),d.length>0&&t.jsxDEV("div",{className:"mt-6 border-t pt-6 space-y-4",children:[t.jsxDEV("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[t.jsxDEV("div",{children:[t.jsxDEV("h3",{className:"font-medium",children:"Translations"},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:308,columnNumber:23},this),t.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-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:309,columnNumber:23},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:307,columnNumber:21},this),t.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-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:313,columnNumber:21},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:306,columnNumber:19},this),t.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2",children:d.map(s=>t.jsxDEV("div",{className:"space-y-2",children:[t.jsxDEV(i.Label,{htmlFor:`attribute-translation-${e.id}-${s.code}`,children:["Attribute Name (",s.name,")"]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:326,columnNumber:25},this),t.jsxDEV(i.Input,{id:`attribute-translation-${e.id}-${s.code}`,value:M[e.id]?.[s.code]||"",onChange:r=>B(c=>({...c,[e.id]:{...c[e.id]||{},[s.code]:r.target.value}})),placeholder:e.name},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:329,columnNumber:25},this)]},`${e.id}-${s.code}`,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:325,columnNumber:23},this))},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:323,columnNumber:19},this),t.jsxDEV("div",{className:"space-y-3",children:e.terms.map(s=>t.jsxDEV("div",{className:"rounded-lg border p-4 space-y-3",children:[t.jsxDEV("div",{children:[t.jsxDEV("p",{className:"font-medium",children:s.value},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:351,columnNumber:27},this),t.jsxDEV("p",{className:"text-xs text-muted-foreground",children:"Translate this term for each language."},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:352,columnNumber:27},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:350,columnNumber:25},this),t.jsxDEV("div",{className:"grid gap-4 md:grid-cols-2",children:d.map(r=>t.jsxDEV("div",{className:"space-y-2",children:[t.jsxDEV(i.Label,{htmlFor:`term-translation-${s.id}-${r.code}`,children:r.name},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:357,columnNumber:31},this),t.jsxDEV(i.Input,{id:`term-translation-${s.id}-${r.code}`,value:E[s.id]?.[r.code]||"",onChange:c=>P(l=>({...l,[s.id]:{...l[s.id]||{},[r.code]:c.target.value}})),placeholder:s.value},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:360,columnNumber:31},this)]},`${s.id}-${r.code}`,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:356,columnNumber:29},this))},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:354,columnNumber:25},this)]},`translations-${s.id}`,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:349,columnNumber:23},this))},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:347,columnNumber:19},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:305,columnNumber:17},this)]},e.id,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:208,columnNumber:13},this))},void 0,!1,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:206,columnNumber:9},this)]},void 0,!0,{fileName:"D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/attributes/components/AttributeManager.tsx",lineNumber:182,columnNumber:5},this)}exports.AttributeManager=G;
|
|
@@ -46,5 +46,5 @@ interface AttributeManagerProps {
|
|
|
46
46
|
error?: string;
|
|
47
47
|
}>;
|
|
48
48
|
}
|
|
49
|
-
export declare function AttributeManager({ attributes, languages, createAttributeAction, deleteAttributeAction, createTermAction, deleteTermAction, reorderTermsAction, updateTranslationsAction, }: AttributeManagerProps): import("react").JSX.Element;
|
|
49
|
+
export declare function AttributeManager({ attributes, languages, createAttributeAction, deleteAttributeAction, createTermAction, deleteTermAction, reorderTermsAction, updateTranslationsAction, }: AttributeManagerProps): import("react/jsx-runtime").JSX.Element;
|
|
50
50
|
export {};
|