@nextblock-cms/ecom 0.19.0 → 0.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/index.cjs.js +1 -1
  2. package/index.es.js +26 -25
  3. package/lib/CurrencyProvider.cjs.js +1 -1
  4. package/lib/CurrencyProvider.es.js +41 -45
  5. package/lib/PaymentReadinessProvider.cjs.js +1 -1
  6. package/lib/PaymentReadinessProvider.es.js +15 -19
  7. package/lib/cart-store.cjs.js +1 -1
  8. package/lib/cart-store.d.ts +4 -0
  9. package/lib/cart-store.es.js +77 -69
  10. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  11. package/lib/components/AccountNavigationMenu.es.js +44 -62
  12. package/lib/components/AddToCartButton.cjs.js +1 -1
  13. package/lib/components/AddToCartButton.es.js +50 -78
  14. package/lib/components/Cart.cjs.js +1 -1
  15. package/lib/components/Cart.d.ts +1 -1
  16. package/lib/components/Cart.es.js +158 -377
  17. package/lib/components/CartDrawer.cjs.js +1 -1
  18. package/lib/components/CartDrawer.es.js +143 -297
  19. package/lib/components/CartIcon.cjs.js +1 -1
  20. package/lib/components/CartIcon.es.js +21 -47
  21. package/lib/components/Checkout.cjs.js +1 -1
  22. package/lib/components/Checkout.d.ts +1 -1
  23. package/lib/components/Checkout.es.js +839 -1627
  24. package/lib/components/CouponForm.cjs.js +1 -1
  25. package/lib/components/CouponForm.es.js +104 -155
  26. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  27. package/lib/components/CurrencySwitcher.es.js +14 -33
  28. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  29. package/lib/components/CustomerProfileForm.d.ts +1 -1
  30. package/lib/components/CustomerProfileForm.es.js +264 -672
  31. package/lib/components/FeaturedProduct.cjs.js +1 -1
  32. package/lib/components/FeaturedProduct.es.js +54 -126
  33. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  34. package/lib/components/FreemiusLicensePanel.es.js +45 -125
  35. package/lib/components/InvoiceDocument.cjs.js +1 -1
  36. package/lib/components/InvoiceDocument.es.js +148 -487
  37. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  38. package/lib/components/InvoiceViewerShell.d.ts +4 -1
  39. package/lib/components/InvoiceViewerShell.es.js +59 -142
  40. package/lib/components/ProductCard.cjs.js +1 -1
  41. package/lib/components/ProductCard.d.ts +3 -1
  42. package/lib/components/ProductCard.es.js +128 -242
  43. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  44. package/lib/components/ProductDetailsLayout.es.js +315 -657
  45. package/lib/components/ProductGallery.cjs.js +1 -1
  46. package/lib/components/ProductGallery.d.ts +2 -0
  47. package/lib/components/ProductGallery.es.js +37 -66
  48. package/lib/components/ProductGrid.cjs.js +1 -1
  49. package/lib/components/ProductGrid.es.js +23 -32
  50. package/lib/components/ShippingEstimator.cjs.js +1 -1
  51. package/lib/components/ShippingEstimator.es.js +124 -231
  52. package/lib/components/ShortDescription.cjs.js +1 -0
  53. package/lib/components/ShortDescription.d.ts +19 -0
  54. package/lib/components/ShortDescription.es.js +18 -0
  55. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  56. package/lib/components/SimpleTiptapRenderer.es.js +111 -294
  57. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  58. package/lib/components/SubscriptionSelector.es.js +120 -181
  59. package/lib/components/media/MediaPickerDialog.d.ts +1 -1
  60. package/lib/components/media/MediaUploadForm.d.ts +1 -1
  61. package/lib/invoice.cjs.js +1 -1
  62. package/lib/invoice.d.ts +1 -1
  63. package/lib/invoice.es.js +6 -5
  64. package/lib/order-inventory.d.ts +1 -1
  65. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  66. package/lib/pages/cms/coupons/CouponEditorForm.es.js +115 -375
  67. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  68. package/lib/pages/cms/coupons/CouponsPage.es.js +116 -368
  69. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  70. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +26 -62
  71. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  72. package/lib/pages/cms/coupons/EditCouponPage.es.js +35 -71
  73. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  74. package/lib/pages/cms/coupons/ProductScopePicker.es.js +72 -167
  75. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  76. package/lib/pages/cms/orders/ExportReportsDialog.es.js +87 -247
  77. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  78. package/lib/pages/cms/orders/OrderDetailPage.es.js +95 -283
  79. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  80. package/lib/pages/cms/orders/OrderPrintButton.es.js +9 -21
  81. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  82. package/lib/pages/cms/orders/OrderStatusForm.es.js +46 -106
  83. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  84. package/lib/pages/cms/orders/OrdersPage.es.js +78 -257
  85. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  86. package/lib/pages/cms/payments/PaymentsClient.es.js +192 -580
  87. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  88. package/lib/pages/cms/payments/PaymentsPage.es.js +14 -22
  89. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  90. package/lib/pages/cms/products/ProductsPage.es.js +47 -87
  91. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  92. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +97 -177
  93. package/lib/pages/cms/products/actions.d.ts +20 -20
  94. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  95. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +40 -84
  96. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  97. package/lib/pages/cms/products/attributes/components/AttributeManager.d.ts +1 -1
  98. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +192 -455
  99. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  100. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +28 -72
  101. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  102. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +183 -490
  103. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  104. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +69 -177
  105. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  106. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +102 -213
  107. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  108. package/lib/pages/cms/products/components/DeleteProductButton.es.js +25 -45
  109. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  110. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +58 -202
  111. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  112. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +89 -235
  113. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  114. package/lib/pages/cms/products/components/ProductForm.es.js +526 -1110
  115. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  116. package/lib/pages/cms/products/components/ProductMediaManager.es.js +63 -154
  117. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  118. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +213 -544
  119. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  120. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +91 -207
  121. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  122. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +16 -28
  123. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  124. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +25 -37
  125. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  126. package/lib/pages/cms/products/components/VariationsEditor.es.js +261 -492
  127. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  128. package/lib/pages/cms/products/inventory/InventoryPage.es.js +12 -32
  129. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  130. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +145 -365
  131. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  132. package/lib/pages/cms/products/new/NewProductPage.es.js +30 -42
  133. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  134. package/lib/pages/cms/shipping/ShippingPage.es.js +155 -507
  135. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  136. package/lib/pages/cms/shipping/components/RateForm.d.ts +1 -1
  137. package/lib/pages/cms/shipping/components/RateForm.es.js +334 -717
  138. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  139. package/lib/pages/cms/shipping/components/ZoneForm.es.js +158 -392
  140. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  141. package/lib/pages/cms/taxes/TaxesPage.es.js +119 -447
  142. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  143. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +52 -156
  144. package/lib/product-actions.d.ts +31 -31
  145. package/lib/product-context.cjs.js +1 -1
  146. package/lib/product-context.es.js +10 -14
  147. package/lib/shared-inventory.d.ts +1 -1
  148. package/lib/states.cjs.js +1 -1
  149. package/lib/states.d.ts +2 -0
  150. package/lib/states.es.js +63 -29
  151. package/lib/trials.cjs.js +1 -1
  152. package/lib/trials.d.ts +10 -3
  153. package/lib/trials.es.js +28 -21
  154. package/lib/types.d.ts +2 -0
  155. package/lib/use-price-formatter.cjs.js +1 -0
  156. package/lib/use-price-formatter.d.ts +11 -0
  157. package/lib/use-price-formatter.es.js +13 -0
  158. package/lib/variation-utils.cjs.js +1 -1
  159. package/lib/variation-utils.d.ts +10 -0
  160. package/lib/variation-utils.es.js +139 -123
  161. package/package.json +4 -4
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),a=require("next/link"),i=require("lucide-react"),o=require("@nextblock-cms/ui"),c=require("@nextblock-cms/db/server"),n=require("../actions.cjs.js"),s=require("../server-actions.cjs.js"),m=require("./components/CategoryManager.cjs.js");async function l(){const[r,t]=await Promise.all([n.getCategoriesWithCount(),c.getActiveLanguagesServerSide()]);return e.jsxDEV("div",{className:"space-y-8 w-full max-w-[1200px] mx-auto px-6 py-8",children:[e.jsxDEV("div",{className:"flex flex-wrap items-center justify-between gap-4",children:e.jsxDEV("div",{className:"flex items-center gap-3",children:[e.jsxDEV(o.Button,{variant:"outline",size:"icon",asChild:!0,children:e.jsxDEV(a,{href:"/cms/products",children:e.jsxDEV(i.ArrowLeft,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",lineNumber:26,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",lineNumber:25,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",lineNumber:24,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("h1",{className:"text-2xl font-bold",children:"Category Management"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",lineNumber:30,columnNumber:13},this),e.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Create and manage product categories for organizing your e-commerce catalog."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",lineNumber:31,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",lineNumber:29,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",lineNumber:23,columnNumber:9},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",lineNumber:22,columnNumber:7},this),e.jsxDEV(m.CategoryManager,{initialCategories:r,createCategory:s.createCategoryAction,updateCategory:s.updateCategoryAction,deleteCategory:s.deleteCategoryAction,languages:t},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",lineNumber:38,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",lineNumber:21,columnNumber:5},this)}exports.CategoryManagementPage=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("next/link"),i=require("lucide-react"),n=require("@nextblock-cms/ui"),o=require("@nextblock-cms/db/server"),c=require("../actions.cjs.js"),t=require("../server-actions.cjs.js"),g=require("./components/CategoryManager.cjs.js");async function l(){const[r,a]=await Promise.all([c.getCategoriesWithCount(),o.getActiveLanguagesServerSide()]);return e.jsxs("div",{className:"space-y-8 w-full max-w-[1200px] mx-auto px-6 py-8",children:[e.jsx("div",{className:"flex flex-wrap items-center justify-between gap-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(n.Button,{variant:"outline",size:"icon",asChild:!0,children:e.jsx(s,{href:"/cms/products",children:e.jsx(i.ArrowLeft,{className:"h-4 w-4"})})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Category Management"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Create and manage product categories for organizing your e-commerce catalog."})]})]})}),e.jsx(g.CategoryManager,{initialCategories:r,createCategory:t.createCategoryAction,updateCategory:t.updateCategoryAction,deleteCategory:t.deleteCategoryAction,languages:a})]})}exports.CategoryManagementPage=l;
@@ -1,80 +1,36 @@
1
- import { jsxDEV as e } from "react/jsx-dev-runtime";
2
- import t from "next/link";
3
- import { ArrowLeft as a } from "lucide-react";
4
- import { Button as o } from "@nextblock-cms/ui";
5
- import { getActiveLanguagesServerSide as i } from "@nextblock-cms/db/server";
6
- import { getCategoriesWithCount as c } from "../actions.es.js";
7
- import { deleteCategoryAction as m, updateCategoryAction as n, createCategoryAction as l } from "../server-actions.es.js";
8
- import { CategoryManager as g } from "./components/CategoryManager.es.js";
9
- async function y() {
10
- const [s, r] = await Promise.all([
11
- c(),
12
- i()
1
+ import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
+ import o from "next/link";
3
+ import { ArrowLeft as i } from "lucide-react";
4
+ import { Button as n } from "@nextblock-cms/ui";
5
+ import { getActiveLanguagesServerSide as c } from "@nextblock-cms/db/server";
6
+ import { getCategoriesWithCount as m } from "../actions.es.js";
7
+ import { deleteCategoryAction as s, updateCategoryAction as g, createCategoryAction as l } from "../server-actions.es.js";
8
+ import { CategoryManager as d } from "./components/CategoryManager.es.js";
9
+ async function w() {
10
+ const [r, a] = await Promise.all([
11
+ m(),
12
+ c()
13
13
  ]);
14
- return /* @__PURE__ */ e("div", { className: "space-y-8 w-full max-w-[1200px] mx-auto px-6 py-8", children: [
15
- /* @__PURE__ */ e("div", { className: "flex flex-wrap items-center justify-between gap-4", children: /* @__PURE__ */ e("div", { className: "flex items-center gap-3", children: [
16
- /* @__PURE__ */ e(o, { variant: "outline", size: "icon", asChild: !0, children: /* @__PURE__ */ e(t, { href: "/cms/products", children: /* @__PURE__ */ e(a, { className: "h-4 w-4" }, void 0, !1, {
17
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",
18
- lineNumber: 26,
19
- columnNumber: 15
20
- }, this) }, void 0, !1, {
21
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",
22
- lineNumber: 25,
23
- columnNumber: 13
24
- }, this) }, void 0, !1, {
25
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",
26
- lineNumber: 24,
27
- columnNumber: 11
28
- }, this),
29
- /* @__PURE__ */ e("div", { children: [
30
- /* @__PURE__ */ e("h1", { className: "text-2xl font-bold", children: "Category Management" }, void 0, !1, {
31
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",
32
- lineNumber: 30,
33
- columnNumber: 13
34
- }, this),
35
- /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: "Create and manage product categories for organizing your e-commerce catalog." }, void 0, !1, {
36
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",
37
- lineNumber: 31,
38
- columnNumber: 13
39
- }, this)
40
- ] }, void 0, !0, {
41
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",
42
- lineNumber: 29,
43
- columnNumber: 11
44
- }, this)
45
- ] }, void 0, !0, {
46
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",
47
- lineNumber: 23,
48
- columnNumber: 9
49
- }, this) }, void 0, !1, {
50
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",
51
- lineNumber: 22,
52
- columnNumber: 7
53
- }, this),
14
+ return /* @__PURE__ */ t("div", { className: "space-y-8 w-full max-w-[1200px] mx-auto px-6 py-8", children: [
15
+ /* @__PURE__ */ e("div", { className: "flex flex-wrap items-center justify-between gap-4", children: /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
16
+ /* @__PURE__ */ e(n, { variant: "outline", size: "icon", asChild: !0, children: /* @__PURE__ */ e(o, { href: "/cms/products", children: /* @__PURE__ */ e(i, { className: "h-4 w-4" }) }) }),
17
+ /* @__PURE__ */ t("div", { children: [
18
+ /* @__PURE__ */ e("h1", { className: "text-2xl font-bold", children: "Category Management" }),
19
+ /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: "Create and manage product categories for organizing your e-commerce catalog." })
20
+ ] })
21
+ ] }) }),
54
22
  /* @__PURE__ */ e(
55
- g,
23
+ d,
56
24
  {
57
- initialCategories: s,
25
+ initialCategories: r,
58
26
  createCategory: l,
59
- updateCategory: n,
60
- deleteCategory: m,
61
- languages: r
62
- },
63
- void 0,
64
- !1,
65
- {
66
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",
67
- lineNumber: 38,
68
- columnNumber: 7
69
- },
70
- this
27
+ updateCategory: g,
28
+ deleteCategory: s,
29
+ languages: a
30
+ }
71
31
  )
72
- ] }, void 0, !0, {
73
- fileName: "C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/CategoryManagementPage.tsx",
74
- lineNumber: 21,
75
- columnNumber: 5
76
- }, this);
32
+ ] });
77
33
  }
78
34
  export {
79
- y as CategoryManagementPage
35
+ w as CategoryManagementPage
80
36
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),i=require("react"),m=require("lucide-react"),l=require("sonner"),I=require("next/navigation"),r=require("@nextblock-cms/ui");function $({initialCategories:N=[],languages:H=[],createCategory:V,updateCategory:w,deleteCategory:S}){const k=I.useRouter(),[D,T]=i.useState(N),[a,d]=i.useState(!1),[c,j]=i.useState(null),[u,p]=i.useState(""),[y,g]=i.useState(""),[v,b]=i.useState(""),[E,x]=i.useState({}),[M,h]=i.useState({}),[B,f]=i.useState(!1),R=(H||[]).filter(s=>!s.is_default);i.useEffect(()=>{T(N)},[N]);const U=s=>s.toLowerCase().trim().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,""),F=s=>{const t=s.target.value;p(t),!B&&!c&&g(U(t))},z=s=>{g(U(s.target.value)),f(!0)},q=s=>{j(s),p(s.name),g(s.slug),b(s.description||""),x(s.name_translations||{}),h(s.description_translations||{}),f(!0)},C=()=>{j(null),p(""),g(""),b(""),x({}),h({}),f(!1)},A=async s=>{if(s.preventDefault(),!u.trim()){l.toast.error("Category name is required.");return}d(!0);const t=l.toast.loading(c?"Updating category...":"Creating category...");try{const o={name:u.trim(),slug:y.trim()||void 0,description:v.trim()||void 0,nameTranslations:E,descriptionTranslations:M};let n;c?n=await w(c.id,o):n=await V(o),n.success?(l.toast.success(c?"Category updated successfully!":"Category created successfully!",{id:t}),C(),k.refresh()):l.toast.error(n.error||"Failed to save category.",{id:t})}catch(o){l.toast.error(o.message||"An unexpected error occurred.",{id:t})}finally{d(!1)}},L=async s=>{const t=`Are you sure you want to delete the category "${s.name}"? This will detach it from any assigned products.`;if(!window.confirm(t))return;d(!0);const o=l.toast.loading("Deleting category...");try{const n=await S(s.id);n.success?(l.toast.success("Category deleted successfully!",{id:o}),c?.id===s.id&&C(),k.refresh()):l.toast.error(n.error||"Failed to delete category.",{id:o})}catch(n){l.toast.error(n.message||"An unexpected error occurred.",{id:o})}finally{d(!1)}};return e.jsxDEV("div",{className:"grid gap-6 md:grid-cols-12 items-start",children:[e.jsxDEV("div",{className:"md:col-span-4 space-y-4",children:e.jsxDEV(r.Card,{className:"p-5 shadow-lg border-t-4 border-t-amber-500 bg-card/65 backdrop-blur-md transition-all duration-300",children:[e.jsxDEV("div",{className:"flex items-center gap-2 mb-4",children:[e.jsxDEV(m.FolderPlus,{className:"h-5 w-5 text-amber-500"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:213,columnNumber:13},this),e.jsxDEV("h2",{className:"text-base font-bold tracking-tight",children:c?"Edit Category":"Add New Category"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:214,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:212,columnNumber:11},this),e.jsxDEV("form",{onSubmit:A,className:"space-y-4",children:[e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV(r.Label,{htmlFor:"name",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Name"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:221,columnNumber:15},this),e.jsxDEV(r.Input,{id:"name",placeholder:"e.g. T-Shirts",value:u,onChange:F,disabled:a,className:"h-8 text-sm",required:!0},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:224,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:220,columnNumber:13},this),e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV(r.Label,{htmlFor:"slug",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none flex items-center justify-between w-full",children:[e.jsxDEV("span",{children:"Slug"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:237,columnNumber:17},this),!B&&!c&&e.jsxDEV("span",{className:"text-[10px] text-amber-600 dark:text-amber-400 capitalize",children:"Auto-generating"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:239,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:236,columnNumber:15},this),e.jsxDEV(r.Input,{id:"slug",placeholder:"e.g. t-shirts",value:y,onChange:z,disabled:a,className:"h-8 text-sm font-mono"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:242,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:235,columnNumber:13},this),e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV(r.Label,{htmlFor:"description",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Description"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:253,columnNumber:15},this),e.jsxDEV(r.Textarea,{id:"description",placeholder:"Optional description of the category...",value:v,onChange:s=>b(s.target.value),disabled:a,className:"text-sm min-h-[90px] resize-none"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:256,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:252,columnNumber:13},this),R.length>0&&e.jsxDEV("div",{className:"border-t border-border/50 pt-4 mt-4 space-y-4",children:[e.jsxDEV("h3",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider",children:"Translations"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:268,columnNumber:17},this),R.map(s=>e.jsxDEV("div",{className:"space-y-3 p-3 rounded-md bg-muted/30 border border-border/30",children:[e.jsxDEV("span",{className:"text-[11px] font-bold text-amber-600 dark:text-amber-400 uppercase tracking-wider",children:s.name},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:271,columnNumber:21},this),e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV(r.Label,{htmlFor:`name-${s.code}`,className:"text-[10px] uppercase font-bold text-muted-foreground tracking-wider leading-none",children:["Name (",s.code,")"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:273,columnNumber:23},this),e.jsxDEV(r.Input,{id:`name-${s.code}`,placeholder:`Translation for ${u||"Name"}`,value:E[s.code]||"",onChange:t=>x(o=>({...o,[s.code]:t.target.value})),disabled:a,className:"h-8 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:274,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:272,columnNumber:21},this),e.jsxDEV("div",{className:"space-y-1",children:[e.jsxDEV(r.Label,{htmlFor:`desc-${s.code}`,className:"text-[10px] uppercase font-bold text-muted-foreground tracking-wider leading-none",children:["Description (",s.code,")"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:284,columnNumber:23},this),e.jsxDEV(r.Textarea,{id:`desc-${s.code}`,placeholder:"Translation for Description",value:M[s.code]||"",onChange:t=>h(o=>({...o,[s.code]:t.target.value})),disabled:a,className:"text-sm min-h-[60px] resize-none"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:285,columnNumber:23},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:283,columnNumber:21},this)]},s.code,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:270,columnNumber:19},this))]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:267,columnNumber:15},this),e.jsxDEV("div",{className:"flex items-center gap-2 pt-2",children:[e.jsxDEV(r.Button,{type:"submit",disabled:a,size:"sm",className:"flex-1 bg-amber-600 hover:bg-amber-500 text-white font-medium shadow-md shadow-amber-600/10 h-8 text-xs cursor-pointer",children:a?e.jsxDEV(e.Fragment,{children:[e.jsxDEV(m.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:308,columnNumber:21},this),"Saving..."]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:307,columnNumber:19},this):c?"Update Category":"Create Category"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:300,columnNumber:15},this),c&&e.jsxDEV(r.Button,{type:"button",onClick:C,disabled:a,variant:"outline",size:"sm",className:"h-8 text-xs border-dashed cursor-pointer",children:"Cancel"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:318,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:299,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:219,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:211,columnNumber:9},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:210,columnNumber:7},this),e.jsxDEV("div",{className:"md:col-span-8",children:e.jsxDEV(r.Card,{className:"p-4 shadow-lg bg-card/65 backdrop-blur-md border border-border/40",children:[e.jsxDEV("div",{className:"flex items-center gap-2 mb-4 pb-2 border-b border-border/50",children:[e.jsxDEV(m.FolderKanban,{className:"h-5 w-5 text-muted-foreground"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:338,columnNumber:13},this),e.jsxDEV("div",{children:[e.jsxDEV("h2",{className:"text-base font-bold tracking-tight",children:"Active Categories"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:340,columnNumber:15},this),e.jsxDEV("p",{className:"text-[11px] text-muted-foreground leading-none mt-0.5",children:"Categories are shared globally across languages."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:341,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:339,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:337,columnNumber:11},this),D.length===0?e.jsxDEV("div",{className:"flex flex-col items-center justify-center py-12 px-4 text-center border-2 border-dashed border-border/60 rounded-lg bg-muted/20 animate-in fade-in duration-300",children:[e.jsxDEV(m.HelpCircle,{className:"h-10 w-10 text-muted-foreground/50 mb-3"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:349,columnNumber:15},this),e.jsxDEV("h3",{className:"text-sm font-bold text-muted-foreground",children:"No Categories Found"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:350,columnNumber:15},this),e.jsxDEV("p",{className:"text-xs text-muted-foreground/80 max-w-sm mt-1",children:"Add your first category using the form on the left to start organizing your catalog products."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:351,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:348,columnNumber:13},this):e.jsxDEV("div",{className:"overflow-x-auto border rounded-lg bg-background/50",children:e.jsxDEV("table",{className:"w-full text-left border-collapse text-xs",children:[e.jsxDEV("thead",{children:e.jsxDEV("tr",{className:"border-b bg-muted/40 font-bold uppercase tracking-wider text-muted-foreground/85 select-none",children:[e.jsxDEV("th",{className:"p-3 pl-4",children:"Name"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:360,columnNumber:21},this),e.jsxDEV("th",{className:"p-3",children:"Slug"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:361,columnNumber:21},this),e.jsxDEV("th",{className:"p-3 text-center",children:"Products"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:362,columnNumber:21},this),e.jsxDEV("th",{className:"p-3 pr-4 text-right",children:"Actions"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:363,columnNumber:21},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:359,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:358,columnNumber:17},this),e.jsxDEV("tbody",{className:"divide-y divide-border/60",children:D.map(s=>e.jsxDEV("tr",{className:"hover:bg-muted/10 transition-colors group",children:[e.jsxDEV("td",{className:"p-3 pl-4",children:[e.jsxDEV("div",{className:"font-semibold text-slate-800 dark:text-slate-100",children:s.name},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:373,columnNumber:25},this),s.description&&e.jsxDEV("div",{className:"text-[10px] text-muted-foreground mt-0.5 max-w-xs truncate leading-normal",title:s.description,children:s.description},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:377,columnNumber:27},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:372,columnNumber:23},this),e.jsxDEV("td",{className:"p-3",children:e.jsxDEV("code",{className:"px-1.5 py-0.5 rounded bg-muted/65 font-mono text-[10px]",children:["/",s.slug]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:383,columnNumber:25},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:382,columnNumber:23},this),e.jsxDEV("td",{className:"p-3 text-center",children:e.jsxDEV("span",{className:"inline-flex items-center justify-center px-2 py-0.5 rounded-full text-[10px] font-bold bg-amber-500/10 text-amber-800 dark:text-amber-300 border border-amber-500/15",children:s.productCount},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:388,columnNumber:25},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:387,columnNumber:23},this),e.jsxDEV("td",{className:"p-3 pr-4 text-right",children:e.jsxDEV("div",{className:"flex items-center justify-end gap-1.5",children:[e.jsxDEV(r.Button,{variant:"outline",size:"icon",disabled:a,onClick:()=>q(s),className:"h-7 w-7 opacity-85 hover:opacity-100 group-hover:border-amber-500/30 cursor-pointer",title:"Edit Category",children:e.jsxDEV(m.Edit2,{className:"h-3.5 w-3.5 text-muted-foreground group-hover:text-amber-600 dark:group-hover:text-amber-400"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:402,columnNumber:29},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:394,columnNumber:27},this),e.jsxDEV(r.Button,{variant:"outline",size:"icon",disabled:a,onClick:()=>L(s),className:"h-7 w-7 opacity-85 hover:opacity-100 group-hover:border-red-500/30 cursor-pointer",title:"Delete Category",children:e.jsxDEV(m.Trash2,{className:"h-3.5 w-3.5 text-muted-foreground group-hover:text-red-500"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:412,columnNumber:29},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:404,columnNumber:27},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:393,columnNumber:25},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:392,columnNumber:23},this)]},s.id,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:368,columnNumber:21},this))},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:366,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:357,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:356,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:336,columnNumber:9},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:335,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/NRH-NextBlock/libs/ecommerce/src/lib/pages/cms/products/categories/components/CategoryManager.tsx",lineNumber:208,columnNumber:5},this)}exports.CategoryManager=$;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("react"),c=require("lucide-react"),l=require("sonner"),_=require("next/navigation"),s=require("@nextblock-cms/ui");function O({initialCategories:g=[],languages:q=[],createCategory:A,updateCategory:L,deleteCategory:E}){const y=_.useRouter(),[v,I]=n.useState(g),[o,m]=n.useState(!1),[d,w]=n.useState(null),[u,h]=n.useState(""),[C,x]=n.useState(""),[k,p]=n.useState(""),[S,b]=n.useState({}),[T,f]=n.useState({}),[F,j]=n.useState(!1),z=(q||[]).filter(t=>!t.is_default);n.useEffect(()=>{I(g)},[g]);const D=t=>t.toLowerCase().trim().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,""),$=t=>{const r=t.target.value;h(r),!F&&!d&&x(D(r))},M=t=>{x(D(t.target.value)),j(!0)},P=t=>{w(t),h(t.name),x(t.slug),p(t.description||""),b(t.name_translations||{}),f(t.description_translations||{}),j(!0)},N=()=>{w(null),h(""),x(""),p(""),b({}),f({}),j(!1)},B=async t=>{if(t.preventDefault(),!u.trim()){l.toast.error("Category name is required.");return}m(!0);const r=l.toast.loading(d?"Updating category...":"Creating category...");try{const a={name:u.trim(),slug:C.trim()||void 0,description:k.trim()||void 0,nameTranslations:S,descriptionTranslations:T};let i;d?i=await L(d.id,a):i=await A(a),i.success?(l.toast.success(d?"Category updated successfully!":"Category created successfully!",{id:r}),N(),y.refresh()):l.toast.error(i.error||"Failed to save category.",{id:r})}catch(a){l.toast.error(a.message||"An unexpected error occurred.",{id:r})}finally{m(!1)}},R=async t=>{const r=`Are you sure you want to delete the category "${t.name}"? This will detach it from any assigned products.`;if(!window.confirm(r))return;m(!0);const a=l.toast.loading("Deleting category...");try{const i=await E(t.id);i.success?(l.toast.success("Category deleted successfully!",{id:a}),d?.id===t.id&&N(),y.refresh()):l.toast.error(i.error||"Failed to delete category.",{id:a})}catch(i){l.toast.error(i.message||"An unexpected error occurred.",{id:a})}finally{m(!1)}};return e.jsxs("div",{className:"grid gap-6 md:grid-cols-12 items-start",children:[e.jsx("div",{className:"md:col-span-4 space-y-4",children:e.jsxs(s.Card,{className:"p-5 shadow-lg border-t-4 border-t-amber-500 bg-card/65 backdrop-blur-md transition-all duration-300",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(c.FolderPlus,{className:"h-5 w-5 text-amber-500"}),e.jsx("h2",{className:"text-base font-bold tracking-tight",children:d?"Edit Category":"Add New Category"})]}),e.jsxs("form",{onSubmit:B,className:"space-y-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(s.Label,{htmlFor:"name",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Name"}),e.jsx(s.Input,{id:"name",placeholder:"e.g. T-Shirts",value:u,onChange:$,disabled:o,className:"h-8 text-sm",required:!0})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs(s.Label,{htmlFor:"slug",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none flex items-center justify-between w-full",children:[e.jsx("span",{children:"Slug"}),!F&&!d&&e.jsx("span",{className:"text-[10px] text-amber-600 dark:text-amber-400 capitalize",children:"Auto-generating"})]}),e.jsx(s.Input,{id:"slug",placeholder:"e.g. t-shirts",value:C,onChange:M,disabled:o,className:"h-8 text-sm font-mono"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(s.Label,{htmlFor:"description",className:"text-xs uppercase font-bold text-muted-foreground tracking-wider leading-none",children:"Description"}),e.jsx(s.Textarea,{id:"description",placeholder:"Optional description of the category...",value:k,onChange:t=>p(t.target.value),disabled:o,className:"text-sm min-h-[90px] resize-none"})]}),z.length>0&&e.jsxs("div",{className:"border-t border-border/50 pt-4 mt-4 space-y-4",children:[e.jsx("h3",{className:"text-xs uppercase font-bold text-muted-foreground tracking-wider",children:"Translations"}),z.map(t=>e.jsxs("div",{className:"space-y-3 p-3 rounded-md bg-muted/30 border border-border/30",children:[e.jsx("span",{className:"text-[11px] font-bold text-amber-600 dark:text-amber-400 uppercase tracking-wider",children:t.name}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs(s.Label,{htmlFor:`name-${t.code}`,className:"text-[10px] uppercase font-bold text-muted-foreground tracking-wider leading-none",children:["Name (",t.code,")"]}),e.jsx(s.Input,{id:`name-${t.code}`,placeholder:`Translation for ${u||"Name"}`,value:S[t.code]||"",onChange:r=>b(a=>({...a,[t.code]:r.target.value})),disabled:o,className:"h-8 text-sm"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs(s.Label,{htmlFor:`desc-${t.code}`,className:"text-[10px] uppercase font-bold text-muted-foreground tracking-wider leading-none",children:["Description (",t.code,")"]}),e.jsx(s.Textarea,{id:`desc-${t.code}`,placeholder:"Translation for Description",value:T[t.code]||"",onChange:r=>f(a=>({...a,[t.code]:r.target.value})),disabled:o,className:"text-sm min-h-[60px] resize-none"})]})]},t.code))]}),e.jsxs("div",{className:"flex items-center gap-2 pt-2",children:[e.jsx(s.Button,{type:"submit",disabled:o,size:"sm",className:"flex-1 bg-amber-600 hover:bg-amber-500 text-white font-medium shadow-md shadow-amber-600/10 h-8 text-xs cursor-pointer",children:o?e.jsxs(e.Fragment,{children:[e.jsx(c.Loader2,{className:"mr-1.5 h-3.5 w-3.5 animate-spin"}),"Saving..."]}):d?"Update Category":"Create Category"}),d&&e.jsx(s.Button,{type:"button",onClick:N,disabled:o,variant:"outline",size:"sm",className:"h-8 text-xs border-dashed cursor-pointer",children:"Cancel"})]})]})]})}),e.jsx("div",{className:"md:col-span-8",children:e.jsxs(s.Card,{className:"p-4 shadow-lg bg-card/65 backdrop-blur-md border border-border/40",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4 pb-2 border-b border-border/50",children:[e.jsx(c.FolderKanban,{className:"h-5 w-5 text-muted-foreground"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-base font-bold tracking-tight",children:"Active Categories"}),e.jsx("p",{className:"text-[11px] text-muted-foreground leading-none mt-0.5",children:"Categories are shared globally across languages."})]})]}),v.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 px-4 text-center border-2 border-dashed border-border/60 rounded-lg bg-muted/20 animate-in fade-in duration-300",children:[e.jsx(c.HelpCircle,{className:"h-10 w-10 text-muted-foreground/50 mb-3"}),e.jsx("h3",{className:"text-sm font-bold text-muted-foreground",children:"No Categories Found"}),e.jsx("p",{className:"text-xs text-muted-foreground/80 max-w-sm mt-1",children:"Add your first category using the form on the left to start organizing your catalog products."})]}):e.jsx("div",{className:"overflow-x-auto border rounded-lg bg-background/50",children:e.jsxs("table",{className:"w-full text-left border-collapse text-xs",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b bg-muted/40 font-bold uppercase tracking-wider text-muted-foreground/85 select-none",children:[e.jsx("th",{className:"p-3 pl-4",children:"Name"}),e.jsx("th",{className:"p-3",children:"Slug"}),e.jsx("th",{className:"p-3 text-center",children:"Products"}),e.jsx("th",{className:"p-3 pr-4 text-right",children:"Actions"})]})}),e.jsx("tbody",{className:"divide-y divide-border/60",children:v.map(t=>e.jsxs("tr",{className:"hover:bg-muted/10 transition-colors group",children:[e.jsxs("td",{className:"p-3 pl-4",children:[e.jsx("div",{className:"font-semibold text-slate-800 dark:text-slate-100",children:t.name}),t.description&&e.jsx("div",{className:"text-[10px] text-muted-foreground mt-0.5 max-w-xs truncate leading-normal",title:t.description,children:t.description})]}),e.jsx("td",{className:"p-3",children:e.jsxs("code",{className:"px-1.5 py-0.5 rounded bg-muted/65 font-mono text-[10px]",children:["/",t.slug]})}),e.jsx("td",{className:"p-3 text-center",children:e.jsx("span",{className:"inline-flex items-center justify-center px-2 py-0.5 rounded-full text-[10px] font-bold bg-amber-500/10 text-amber-800 dark:text-amber-300 border border-amber-500/15",children:t.productCount})}),e.jsx("td",{className:"p-3 pr-4 text-right",children:e.jsxs("div",{className:"flex items-center justify-end gap-1.5",children:[e.jsx(s.Button,{variant:"outline",size:"icon",disabled:o,onClick:()=>P(t),className:"h-7 w-7 opacity-85 hover:opacity-100 group-hover:border-amber-500/30 cursor-pointer",title:"Edit Category",children:e.jsx(c.Edit2,{className:"h-3.5 w-3.5 text-muted-foreground group-hover:text-amber-600 dark:group-hover:text-amber-400"})}),e.jsx(s.Button,{variant:"outline",size:"icon",disabled:o,onClick:()=>R(t),className:"h-7 w-7 opacity-85 hover:opacity-100 group-hover:border-red-500/30 cursor-pointer",title:"Delete Category",children:e.jsx(c.Trash2,{className:"h-3.5 w-3.5 text-muted-foreground group-hover:text-red-500"})})]})})]},t.id))})]})})]})})]})}exports.CategoryManager=O;