@nextblock-cms/ecom 0.13.3 → 0.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/lib/CurrencyProvider.cjs.js +1 -1
  2. package/lib/CurrencyProvider.es.js +31 -27
  3. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  4. package/lib/components/AccountNavigationMenu.es.js +53 -26
  5. package/lib/components/AddToCartButton.cjs.js +1 -1
  6. package/lib/components/AddToCartButton.es.js +49 -25
  7. package/lib/components/Cart.cjs.js +1 -1
  8. package/lib/components/Cart.es.js +367 -115
  9. package/lib/components/CartDrawer.cjs.js +1 -1
  10. package/lib/components/CartDrawer.es.js +272 -88
  11. package/lib/components/CartIcon.cjs.js +1 -1
  12. package/lib/components/CartIcon.es.js +44 -16
  13. package/lib/components/Checkout.cjs.js +1 -1
  14. package/lib/components/Checkout.es.js +1601 -694
  15. package/lib/components/CouponForm.cjs.js +1 -1
  16. package/lib/components/CouponForm.es.js +160 -96
  17. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  18. package/lib/components/CurrencySwitcher.es.js +32 -12
  19. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  20. package/lib/components/CustomerProfileForm.es.js +666 -250
  21. package/lib/components/FeaturedProduct.cjs.js +1 -1
  22. package/lib/components/FeaturedProduct.es.js +126 -42
  23. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  24. package/lib/components/FreemiusLicensePanel.es.js +125 -45
  25. package/lib/components/InvoiceDocument.cjs.js +1 -1
  26. package/lib/components/InvoiceDocument.es.js +485 -146
  27. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  28. package/lib/components/InvoiceViewerShell.es.js +142 -54
  29. package/lib/components/ProductCard.cjs.js +1 -1
  30. package/lib/components/ProductCard.es.js +224 -81
  31. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  32. package/lib/components/ProductDetailsLayout.es.js +629 -275
  33. package/lib/components/ProductGallery.cjs.js +1 -1
  34. package/lib/components/ProductGallery.es.js +64 -21
  35. package/lib/components/ProductGrid.cjs.js +1 -1
  36. package/lib/components/ProductGrid.es.js +28 -12
  37. package/lib/components/ShippingEstimator.cjs.js +1 -1
  38. package/lib/components/ShippingEstimator.es.js +226 -90
  39. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  40. package/lib/components/SimpleTiptapRenderer.es.js +286 -93
  41. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  42. package/lib/components/SubscriptionSelector.es.js +168 -92
  43. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  44. package/lib/pages/cms/coupons/CouponEditorForm.es.js +370 -110
  45. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  46. package/lib/pages/cms/coupons/CouponsPage.es.js +368 -116
  47. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  48. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +61 -25
  49. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  50. package/lib/pages/cms/coupons/EditCouponPage.es.js +71 -35
  51. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  52. package/lib/pages/cms/coupons/ProductScopePicker.es.js +167 -72
  53. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  54. package/lib/pages/cms/orders/ExportReportsDialog.es.js +247 -87
  55. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  56. package/lib/pages/cms/orders/OrderDetailPage.es.js +283 -95
  57. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  58. package/lib/pages/cms/orders/OrderPrintButton.es.js +21 -9
  59. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  60. package/lib/pages/cms/orders/OrderStatusForm.es.js +106 -46
  61. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  62. package/lib/pages/cms/orders/OrdersPage.es.js +257 -78
  63. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  64. package/lib/pages/cms/payments/PaymentsClient.es.js +551 -155
  65. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  66. package/lib/pages/cms/payments/PaymentsPage.es.js +24 -16
  67. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  68. package/lib/pages/cms/products/ProductsPage.es.js +77 -37
  69. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  70. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +176 -96
  71. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  72. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +85 -41
  73. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  74. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +455 -192
  75. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  76. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +72 -28
  77. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  78. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +490 -183
  79. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  80. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +175 -67
  81. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  82. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +211 -100
  83. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  84. package/lib/pages/cms/products/components/DeleteProductButton.es.js +45 -25
  85. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  86. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +202 -58
  87. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  88. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +234 -88
  89. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  90. package/lib/pages/cms/products/components/ProductForm.es.js +1199 -551
  91. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  92. package/lib/pages/cms/products/components/ProductMediaManager.es.js +154 -63
  93. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  94. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +391 -144
  95. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  96. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +203 -87
  97. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  98. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +30 -18
  99. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  100. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +35 -23
  101. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  102. package/lib/pages/cms/products/components/VariationsEditor.es.js +492 -261
  103. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  104. package/lib/pages/cms/products/inventory/InventoryPage.es.js +33 -13
  105. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  106. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +365 -145
  107. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  108. package/lib/pages/cms/products/new/NewProductPage.es.js +46 -34
  109. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  110. package/lib/pages/cms/shipping/ShippingPage.es.js +507 -155
  111. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  112. package/lib/pages/cms/shipping/components/RateForm.es.js +717 -334
  113. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  114. package/lib/pages/cms/shipping/components/ZoneForm.es.js +392 -158
  115. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  116. package/lib/pages/cms/taxes/TaxesPage.es.js +448 -120
  117. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  118. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +159 -55
  119. package/lib/product-context.cjs.js +1 -1
  120. package/lib/product-context.es.js +14 -10
  121. package/package.json +4 -4
@@ -1,35 +1,71 @@
1
1
  'use client';
2
- import { jsxs as e, jsx as o } from "react/jsx-runtime";
3
- import { useState as i } from "react";
2
+ import { jsxDEV as e } from "react/jsx-dev-runtime";
3
+ import { useState as n } from "react";
4
4
  import { Button as m } from "@nextblock-cms/ui/button";
5
- import { Dialog as s, DialogTrigger as p, DialogContent as u, DialogHeader as c, DialogTitle as C } from "@nextblock-cms/ui/dialog";
6
- import { Plus as g } from "lucide-react";
7
- import { CouponEditorForm as h } from "./CouponEditorForm.es.js";
8
- function b({
9
- action: r,
10
- products: a,
11
- currencyCode: t
5
+ import { Dialog as a, DialogTrigger as t, DialogContent as c, DialogHeader as u, DialogTitle as p } from "@nextblock-cms/ui/dialog";
6
+ import { Plus as b } from "lucide-react";
7
+ import { CouponEditorForm as C } from "./CouponEditorForm.es.js";
8
+ function h({
9
+ action: o,
10
+ products: s,
11
+ currencyCode: r
12
12
  }) {
13
- const [l, n] = i(!1);
14
- return /* @__PURE__ */ e(s, { open: l, onOpenChange: n, children: [
15
- /* @__PURE__ */ o(p, { asChild: !0, children: /* @__PURE__ */ e(m, { type: "button", className: "gap-2", children: [
16
- /* @__PURE__ */ o(g, { className: "h-4 w-4" }),
13
+ const [i, l] = n(!1);
14
+ return /* @__PURE__ */ e(a, { open: i, onOpenChange: l, children: [
15
+ /* @__PURE__ */ e(t, { asChild: !0, children: /* @__PURE__ */ e(m, { type: "button", className: "gap-2", children: [
16
+ /* @__PURE__ */ e(b, { className: "h-4 w-4" }, void 0, !1, {
17
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",
18
+ lineNumber: 32,
19
+ columnNumber: 11
20
+ }, this),
17
21
  "Create Coupon"
18
- ] }) }),
19
- /* @__PURE__ */ e(u, { className: "max-h-[90vh] overflow-y-auto sm:max-w-[92vw] lg:max-w-5xl xl:max-w-6xl", children: [
20
- /* @__PURE__ */ o(c, { children: /* @__PURE__ */ o(C, { className: "sr-only", children: "Create Coupon" }) }),
21
- /* @__PURE__ */ o(
22
- h,
22
+ ] }, void 0, !0, {
23
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",
24
+ lineNumber: 31,
25
+ columnNumber: 9
26
+ }, this) }, void 0, !1, {
27
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",
28
+ lineNumber: 30,
29
+ columnNumber: 7
30
+ }, this),
31
+ /* @__PURE__ */ e(c, { className: "max-h-[90vh] overflow-y-auto sm:max-w-[92vw] lg:max-w-5xl xl:max-w-6xl", children: [
32
+ /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e(p, { className: "sr-only", children: "Create Coupon" }, void 0, !1, {
33
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",
34
+ lineNumber: 38,
35
+ columnNumber: 11
36
+ }, this) }, void 0, !1, {
37
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",
38
+ lineNumber: 37,
39
+ columnNumber: 9
40
+ }, this),
41
+ /* @__PURE__ */ e(
42
+ C,
23
43
  {
24
- action: r,
25
- products: a,
44
+ action: o,
45
+ products: s,
26
46
  submitLabel: "Create Coupon",
27
- currencyCode: t
28
- }
47
+ currencyCode: r
48
+ },
49
+ void 0,
50
+ !1,
51
+ {
52
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",
53
+ lineNumber: 40,
54
+ columnNumber: 9
55
+ },
56
+ this
29
57
  )
30
- ] })
31
- ] });
58
+ ] }, void 0, !0, {
59
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",
60
+ lineNumber: 36,
61
+ columnNumber: 7
62
+ }, this)
63
+ ] }, void 0, !0, {
64
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",
65
+ lineNumber: 29,
66
+ columnNumber: 5
67
+ }, this);
32
68
  }
33
69
  export {
34
- b as CreateCouponDialog
70
+ h as CreateCouponDialog
35
71
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("next/link"),p=require("next/navigation"),m=require("@nextblock-cms/ui"),f=require("@nextblock-cms/db/server"),x=require("./actions.cjs.js"),g=require("./CouponEditorForm.cjs.js"),C=require("./product-options.cjs.js");async function _({params:n}){const{id:o}=await n,t=f.getServiceRoleSupabaseClient(),[{data:s},{data:c},{data:u},{data:i}]=await Promise.all([t.from("coupons").select("*").eq("id",o).single(),t.from("products").select("id, title, sku, payment_provider, freemius_product_id, language:languages(code, name), product_media(sort_order, media(file_path, object_key))").order("title",{ascending:!0}),t.from("coupon_products").select("product_id").eq("coupon_id",o),t.from("currencies").select("code, is_default").eq("is_active",!0)]);s||p.notFound();const d=(u||[]).map(r=>r.product_id),a=i?.find(r=>r.is_default)?.code||i?.[0]?.code||"USD";return e.jsxs("div",{className:"mx-auto w-full max-w-5xl space-y-6 px-6 py-8",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"Edit Coupon"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Changes are resynced to Freemius after saving."})]}),e.jsx(m.Button,{asChild:!0,variant:"outline",children:e.jsx(l,{href:"/cms/coupons",children:"Back to coupons"})})]}),e.jsx(g.CouponEditorForm,{action:x.updateCouponAction.bind(null,o),products:C.normalizeCouponProductOptions(c),coupon:s,selectedProductIds:d,submitLabel:"Save Coupon",currencyCode:a})]})}exports.EditCouponPage=_;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),l=require("next/link"),m=require("next/navigation"),p=require("@nextblock-cms/ui"),b=require("@nextblock-cms/db/server"),x=require("./actions.cjs.js"),f=require("./CouponEditorForm.cjs.js"),g=require("./product-options.cjs.js");async function C({params:r}){const{id:o}=await r,s=b.getServiceRoleSupabaseClient(),[{data:t},{data:c},{data:u},{data:n}]=await Promise.all([s.from("coupons").select("*").eq("id",o).single(),s.from("products").select("id, title, sku, payment_provider, freemius_product_id, language:languages(code, name), product_media(sort_order, media(file_path, object_key))").order("title",{ascending:!0}),s.from("coupon_products").select("product_id").eq("coupon_id",o),s.from("currencies").select("code, is_default").eq("is_active",!0)]);t||m.notFound();const a=(u||[]).map(i=>i.product_id),d=n?.find(i=>i.is_default)?.code||n?.[0]?.code||"USD";return e.jsxDEV("div",{className:"mx-auto w-full max-w-5xl space-y-6 px-6 py-8",children:[e.jsxDEV("div",{className:"flex items-center justify-between",children:[e.jsxDEV("div",{children:[e.jsxDEV("h1",{className:"text-3xl font-bold tracking-tight",children:"Edit Coupon"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",lineNumber:50,columnNumber:11},this),e.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Changes are resynced to Freemius after saving."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",lineNumber:51,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",lineNumber:49,columnNumber:9},this),e.jsxDEV(p.Button,{asChild:!0,variant:"outline",children:e.jsxDEV(l,{href:"/cms/coupons",children:"Back to coupons"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",lineNumber:56,columnNumber:11},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",lineNumber:55,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",lineNumber:48,columnNumber:7},this),e.jsxDEV(f.CouponEditorForm,{action:x.updateCouponAction.bind(null,o),products:g.normalizeCouponProductOptions(c),coupon:t,selectedProductIds:a,submitLabel:"Save Coupon",currencyCode:d},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",lineNumber:60,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",lineNumber:47,columnNumber:5},this)}exports.EditCouponPage=C;
@@ -1,48 +1,84 @@
1
- import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
- import l from "next/link";
3
- import { notFound as m } from "next/navigation";
4
- import { Button as f } from "@nextblock-cms/ui";
5
- import { getServiceRoleSupabaseClient as _ } from "@nextblock-cms/db/server";
6
- import { updateCouponAction as g } from "./actions.es.js";
7
- import { CouponEditorForm as h } from "./CouponEditorForm.es.js";
8
- import { normalizeCouponProductOptions as x } from "./product-options.es.js";
9
- async function N({ params: n }) {
10
- const { id: t } = await n, o = _(), [
11
- { data: c },
12
- { data: a },
13
- { data: s },
14
- { data: d }
1
+ import { jsxDEV as e } from "react/jsx-dev-runtime";
2
+ import d from "next/link";
3
+ import { notFound as l } from "next/navigation";
4
+ import { Button as p } from "@nextblock-cms/ui";
5
+ import { getServiceRoleSupabaseClient as b } from "@nextblock-cms/db/server";
6
+ import { updateCouponAction as f } from "./actions.es.js";
7
+ import { CouponEditorForm as g } from "./CouponEditorForm.es.js";
8
+ import { normalizeCouponProductOptions as C } from "./product-options.es.js";
9
+ async function j({ params: c }) {
10
+ const { id: s } = await c, o = b(), [
11
+ { data: t },
12
+ { data: n },
13
+ { data: m },
14
+ { data: r }
15
15
  ] = await Promise.all([
16
- o.from("coupons").select("*").eq("id", t).single(),
16
+ o.from("coupons").select("*").eq("id", s).single(),
17
17
  o.from("products").select(
18
18
  "id, title, sku, payment_provider, freemius_product_id, language:languages(code, name), product_media(sort_order, media(file_path, object_key))"
19
19
  ).order("title", { ascending: !0 }),
20
- o.from("coupon_products").select("product_id").eq("coupon_id", t),
20
+ o.from("coupon_products").select("product_id").eq("coupon_id", s),
21
21
  o.from("currencies").select("code, is_default").eq("is_active", !0)
22
22
  ]);
23
- c || m();
24
- const u = (s || []).map((r) => r.product_id), p = d?.find((r) => r.is_default)?.code || d?.[0]?.code || "USD";
25
- return /* @__PURE__ */ i("div", { className: "mx-auto w-full max-w-5xl space-y-6 px-6 py-8", children: [
26
- /* @__PURE__ */ i("div", { className: "flex items-center justify-between", children: [
27
- /* @__PURE__ */ i("div", { children: [
28
- /* @__PURE__ */ e("h1", { className: "text-3xl font-bold tracking-tight", children: "Edit Coupon" }),
29
- /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: "Changes are resynced to Freemius after saving." })
30
- ] }),
31
- /* @__PURE__ */ e(f, { asChild: !0, variant: "outline", children: /* @__PURE__ */ e(l, { href: "/cms/coupons", children: "Back to coupons" }) })
32
- ] }),
23
+ t || l();
24
+ const a = (m || []).map((i) => i.product_id), u = r?.find((i) => i.is_default)?.code || r?.[0]?.code || "USD";
25
+ return /* @__PURE__ */ e("div", { className: "mx-auto w-full max-w-5xl space-y-6 px-6 py-8", children: [
26
+ /* @__PURE__ */ e("div", { className: "flex items-center justify-between", children: [
27
+ /* @__PURE__ */ e("div", { children: [
28
+ /* @__PURE__ */ e("h1", { className: "text-3xl font-bold tracking-tight", children: "Edit Coupon" }, void 0, !1, {
29
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",
30
+ lineNumber: 50,
31
+ columnNumber: 11
32
+ }, this),
33
+ /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: "Changes are resynced to Freemius after saving." }, void 0, !1, {
34
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",
35
+ lineNumber: 51,
36
+ columnNumber: 11
37
+ }, this)
38
+ ] }, void 0, !0, {
39
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",
40
+ lineNumber: 49,
41
+ columnNumber: 9
42
+ }, this),
43
+ /* @__PURE__ */ e(p, { asChild: !0, variant: "outline", children: /* @__PURE__ */ e(d, { href: "/cms/coupons", children: "Back to coupons" }, void 0, !1, {
44
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",
45
+ lineNumber: 56,
46
+ columnNumber: 11
47
+ }, this) }, void 0, !1, {
48
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",
49
+ lineNumber: 55,
50
+ columnNumber: 9
51
+ }, this)
52
+ ] }, void 0, !0, {
53
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",
54
+ lineNumber: 48,
55
+ columnNumber: 7
56
+ }, this),
33
57
  /* @__PURE__ */ e(
34
- h,
58
+ g,
35
59
  {
36
- action: g.bind(null, t),
37
- products: x(a),
38
- coupon: c,
39
- selectedProductIds: u,
60
+ action: f.bind(null, s),
61
+ products: C(n),
62
+ coupon: t,
63
+ selectedProductIds: a,
40
64
  submitLabel: "Save Coupon",
41
- currencyCode: p
42
- }
65
+ currencyCode: u
66
+ },
67
+ void 0,
68
+ !1,
69
+ {
70
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",
71
+ lineNumber: 60,
72
+ columnNumber: 7
73
+ },
74
+ this
43
75
  )
44
- ] });
76
+ ] }, void 0, !0, {
77
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/EditCouponPage.tsx",
78
+ lineNumber: 47,
79
+ columnNumber: 5
80
+ }, this);
45
81
  }
46
82
  export {
47
- N as EditCouponPage
83
+ j as EditCouponPage
48
84
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),p=require("@nextblock-cms/ui/button"),j=require("@nextblock-cms/ui/input"),y=require("lucide-react");function k(s){const r=s.sku?.trim();return r?r.toUpperCase():`PRODUCT:${s.id}`}function v(s){const r=new Map;for(const o of s){const c=k(o),i=r.get(c);if(i){i.productIds.push(o.id);continue}r.set(c,{key:c,title:o.title,sku:o.sku?.trim()||"No SKU",thumbnailUrl:o.thumbnailUrl??null,productIds:[o.id]})}return[...r.values()]}function S({products:s,selectedProductIds:r=[]}){const o=a.useMemo(()=>new Set(r),[r]),[c,i]=a.useState(o),[u,b]=a.useState(""),d=a.useMemo(()=>v(s),[s]),h=a.useMemo(()=>{const t=u.trim().toLowerCase();return t?d.filter(n=>[n.title,n.sku].some(l=>l.toLowerCase().includes(t))):d},[d,u]),x=t=>{i(new Set(s.filter(n=>n.payment_provider===t).map(n=>n.id)))};return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(p.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>i(new Set(s.map(t=>t.id))),children:"Select All"}),e.jsx(p.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>x("stripe"),children:"Stripe"}),e.jsx(p.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>x("freemius"),children:"Freemius"})]}),e.jsxs("div",{className:"relative",children:[e.jsx(y.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(j.Input,{type:"search",value:u,onChange:t=>b(t.target.value),placeholder:"Search products by title or SKU",className:"pl-9"})]}),e.jsxs("div",{className:"grid max-h-[420px] gap-2 overflow-y-auto rounded-lg border p-3 md:grid-cols-2",children:[h.map(t=>{const n=t.productIds.some(l=>c.has(l));return e.jsxs("label",{className:"flex cursor-pointer items-center gap-3 rounded-md px-2 py-2 hover:bg-muted/40",children:[e.jsx("input",{type:"checkbox",checked:n,onChange:l=>{const m=new Set(c);for(const f of t.productIds)l.target.checked?m.add(f):m.delete(f);i(m)},className:"mt-0.5 h-4 w-4 rounded border-slate-300 text-primary focus:ring-primary"}),n?t.productIds.map(l=>e.jsx("input",{type:"hidden",name:"product_ids",value:l},l)):null,e.jsx("span",{className:"flex h-12 w-12 shrink-0 items-center justify-center overflow-hidden rounded-md border bg-muted",children:t.thumbnailUrl?e.jsx("img",{src:t.thumbnailUrl,alt:"",loading:"lazy",className:"h-full w-full object-cover"}):e.jsx(y.ImageIcon,{className:"h-5 w-5 text-muted-foreground","aria-hidden":"true"})}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"block whitespace-normal break-words text-sm font-medium",children:t.title}),e.jsx("span",{className:"block font-mono text-xs text-muted-foreground",children:t.sku})]})]},t.key)}),h.length===0?e.jsx("div",{className:"px-2 py-8 text-center text-sm text-muted-foreground md:col-span-2",children:"No matching products."}):null]})]})}exports.ProductScopePicker=S;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),m=require("react"),p=require("@nextblock-cms/ui/button"),h=require("@nextblock-cms/ui/input"),N=require("lucide-react");function P(c){const r=c.sku?.trim();return r?r.toUpperCase():`PRODUCT:${c.id}`}function j(c){const r=new Map;for(const t of c){const n=P(t),l=r.get(n);if(l){l.productIds.push(t.id);continue}r.set(n,{key:n,title:t.title,sku:t.sku?.trim()||"No SKU",thumbnailUrl:t.thumbnailUrl??null,productIds:[t.id]})}return[...r.values()]}function D({products:c,selectedProductIds:r=[]}){const t=m.useMemo(()=>new Set(r),[r]),[n,l]=m.useState(t),[u,f]=m.useState(""),a=m.useMemo(()=>j(c),[c]),b=m.useMemo(()=>{const s=u.trim().toLowerCase();return s?a.filter(o=>[o.title,o.sku].some(i=>i.toLowerCase().includes(s))):a},[a,u]),x=s=>{l(new Set(c.filter(o=>o.payment_provider===s).map(o=>o.id)))};return e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxDEV(p.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>l(new Set(c.map(s=>s.id))),children:"Select All"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:94,columnNumber:9},this),e.jsxDEV(p.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>x("stripe"),children:"Stripe"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:102,columnNumber:9},this),e.jsxDEV(p.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>x("freemius"),children:"Freemius"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:105,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:93,columnNumber:7},this),e.jsxDEV("div",{className:"relative",children:[e.jsxDEV(N.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:111,columnNumber:9},this),e.jsxDEV(h.Input,{type:"search",value:u,onChange:s=>f(s.target.value),placeholder:"Search products by title or SKU",className:"pl-9"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:112,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:110,columnNumber:7},this),e.jsxDEV("div",{className:"grid max-h-[420px] gap-2 overflow-y-auto rounded-lg border p-3 md:grid-cols-2",children:[b.map(s=>{const o=s.productIds.some(i=>n.has(i));return e.jsxDEV("label",{className:"flex cursor-pointer items-center gap-3 rounded-md px-2 py-2 hover:bg-muted/40",children:[e.jsxDEV("input",{type:"checkbox",checked:o,onChange:i=>{const d=new Set(n);for(const k of s.productIds)i.target.checked?d.add(k):d.delete(k);l(d)},className:"mt-0.5 h-4 w-4 rounded border-slate-300 text-primary focus:ring-primary"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:130,columnNumber:15},this),o?s.productIds.map(i=>e.jsxDEV("input",{type:"hidden",name:"product_ids",value:i},i,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:150,columnNumber:21},this)):null,e.jsxDEV("span",{className:"flex h-12 w-12 shrink-0 items-center justify-center overflow-hidden rounded-md border bg-muted",children:s.thumbnailUrl?e.jsxDEV("img",{src:s.thumbnailUrl,alt:"",loading:"lazy",className:"h-full w-full object-cover"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:155,columnNumber:19},this):e.jsxDEV(N.ImageIcon,{className:"h-5 w-5 text-muted-foreground","aria-hidden":"true"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:162,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:153,columnNumber:15},this),e.jsxDEV("span",{className:"min-w-0 flex-1",children:[e.jsxDEV("span",{className:"block whitespace-normal break-words text-sm font-medium",children:s.title},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:166,columnNumber:17},this),e.jsxDEV("span",{className:"block font-mono text-xs text-muted-foreground",children:s.sku},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:169,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:165,columnNumber:15},this)]},s.key,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:126,columnNumber:13},this)}),b.length===0?e.jsxDEV("div",{className:"px-2 py-8 text-center text-sm text-muted-foreground md:col-span-2",children:"No matching products."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:175,columnNumber:11},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:121,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",lineNumber:92,columnNumber:5},this)}exports.ProductScopePicker=D;
@@ -1,120 +1,215 @@
1
1
  'use client';
2
- import { jsxs as c, jsx as t } from "react/jsx-runtime";
3
- import { useMemo as p, useState as b } from "react";
4
- import { Button as h } from "@nextblock-cms/ui/button";
5
- import { Input as v } from "@nextblock-cms/ui/input";
6
- import { Search as w, ImageIcon as g } from "lucide-react";
7
- function N(r) {
8
- const s = r.sku?.trim();
9
- return s ? s.toUpperCase() : `PRODUCT:${r.id}`;
2
+ import { jsxDEV as e } from "react/jsx-dev-runtime";
3
+ import { useMemo as d, useState as f } from "react";
4
+ import { Button as p } from "@nextblock-cms/ui/button";
5
+ import { Input as x } from "@nextblock-cms/ui/input";
6
+ import { Search as P, ImageIcon as v } from "lucide-react";
7
+ function g(r) {
8
+ const c = r.sku?.trim();
9
+ return c ? c.toUpperCase() : `PRODUCT:${r.id}`;
10
10
  }
11
11
  function S(r) {
12
- const s = /* @__PURE__ */ new Map();
13
- for (const o of r) {
14
- const a = N(o), i = s.get(a);
15
- if (i) {
16
- i.productIds.push(o.id);
12
+ const c = /* @__PURE__ */ new Map();
13
+ for (const t of r) {
14
+ const l = g(t), n = c.get(l);
15
+ if (n) {
16
+ n.productIds.push(t.id);
17
17
  continue;
18
18
  }
19
- s.set(a, {
20
- key: a,
21
- title: o.title,
22
- sku: o.sku?.trim() || "No SKU",
23
- thumbnailUrl: o.thumbnailUrl ?? null,
24
- productIds: [o.id]
19
+ c.set(l, {
20
+ key: l,
21
+ title: t.title,
22
+ sku: t.sku?.trim() || "No SKU",
23
+ thumbnailUrl: t.thumbnailUrl ?? null,
24
+ productIds: [t.id]
25
25
  });
26
26
  }
27
- return [...s.values()];
27
+ return [...c.values()];
28
28
  }
29
- function P({
29
+ function w({
30
30
  products: r,
31
- selectedProductIds: s = []
31
+ selectedProductIds: c = []
32
32
  }) {
33
- const o = p(() => new Set(s), [s]), [a, i] = b(o), [d, k] = b(""), u = p(() => S(r), [r]), f = p(() => {
34
- const e = d.trim().toLowerCase();
35
- return e ? u.filter(
36
- (n) => [n.title, n.sku].some((l) => l.toLowerCase().includes(e))
33
+ const t = d(() => new Set(c), [c]), [l, n] = f(t), [m, h] = f(""), u = d(() => S(r), [r]), b = d(() => {
34
+ const s = m.trim().toLowerCase();
35
+ return s ? u.filter(
36
+ (o) => [o.title, o.sku].some((i) => i.toLowerCase().includes(s))
37
37
  ) : u;
38
- }, [u, d]), x = (e) => {
39
- i(
38
+ }, [u, m]), k = (s) => {
39
+ n(
40
40
  new Set(
41
- r.filter((n) => n.payment_provider === e).map((n) => n.id)
41
+ r.filter((o) => o.payment_provider === s).map((o) => o.id)
42
42
  )
43
43
  );
44
44
  };
45
- return /* @__PURE__ */ c("div", { className: "space-y-3", children: [
46
- /* @__PURE__ */ c("div", { className: "flex flex-wrap items-center gap-2", children: [
47
- /* @__PURE__ */ t(
48
- h,
45
+ return /* @__PURE__ */ e("div", { className: "space-y-3", children: [
46
+ /* @__PURE__ */ e("div", { className: "flex flex-wrap items-center gap-2", children: [
47
+ /* @__PURE__ */ e(
48
+ p,
49
49
  {
50
50
  type: "button",
51
51
  variant: "outline",
52
52
  size: "sm",
53
- onClick: () => i(new Set(r.map((e) => e.id))),
53
+ onClick: () => n(new Set(r.map((s) => s.id))),
54
54
  children: "Select All"
55
- }
55
+ },
56
+ void 0,
57
+ !1,
58
+ {
59
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
60
+ lineNumber: 94,
61
+ columnNumber: 9
62
+ },
63
+ this
56
64
  ),
57
- /* @__PURE__ */ t(h, { type: "button", variant: "outline", size: "sm", onClick: () => x("stripe"), children: "Stripe" }),
58
- /* @__PURE__ */ t(h, { type: "button", variant: "outline", size: "sm", onClick: () => x("freemius"), children: "Freemius" })
59
- ] }),
60
- /* @__PURE__ */ c("div", { className: "relative", children: [
61
- /* @__PURE__ */ t(w, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
62
- /* @__PURE__ */ t(
63
- v,
65
+ /* @__PURE__ */ e(p, { type: "button", variant: "outline", size: "sm", onClick: () => k("stripe"), children: "Stripe" }, void 0, !1, {
66
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
67
+ lineNumber: 102,
68
+ columnNumber: 9
69
+ }, this),
70
+ /* @__PURE__ */ e(p, { type: "button", variant: "outline", size: "sm", onClick: () => k("freemius"), children: "Freemius" }, void 0, !1, {
71
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
72
+ lineNumber: 105,
73
+ columnNumber: 9
74
+ }, this)
75
+ ] }, void 0, !0, {
76
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
77
+ lineNumber: 93,
78
+ columnNumber: 7
79
+ }, this),
80
+ /* @__PURE__ */ e("div", { className: "relative", children: [
81
+ /* @__PURE__ */ e(P, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }, void 0, !1, {
82
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
83
+ lineNumber: 111,
84
+ columnNumber: 9
85
+ }, this),
86
+ /* @__PURE__ */ e(
87
+ x,
64
88
  {
65
89
  type: "search",
66
- value: d,
67
- onChange: (e) => k(e.target.value),
90
+ value: m,
91
+ onChange: (s) => h(s.target.value),
68
92
  placeholder: "Search products by title or SKU",
69
93
  className: "pl-9"
70
- }
94
+ },
95
+ void 0,
96
+ !1,
97
+ {
98
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
99
+ lineNumber: 112,
100
+ columnNumber: 9
101
+ },
102
+ this
71
103
  )
72
- ] }),
73
- /* @__PURE__ */ c("div", { className: "grid max-h-[420px] gap-2 overflow-y-auto rounded-lg border p-3 md:grid-cols-2", children: [
74
- f.map((e) => {
75
- const n = e.productIds.some((l) => a.has(l));
76
- return /* @__PURE__ */ c(
104
+ ] }, void 0, !0, {
105
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
106
+ lineNumber: 110,
107
+ columnNumber: 7
108
+ }, this),
109
+ /* @__PURE__ */ e("div", { className: "grid max-h-[420px] gap-2 overflow-y-auto rounded-lg border p-3 md:grid-cols-2", children: [
110
+ b.map((s) => {
111
+ const o = s.productIds.some((i) => l.has(i));
112
+ return /* @__PURE__ */ e(
77
113
  "label",
78
114
  {
79
115
  className: "flex cursor-pointer items-center gap-3 rounded-md px-2 py-2 hover:bg-muted/40",
80
116
  children: [
81
- /* @__PURE__ */ t(
117
+ /* @__PURE__ */ e(
82
118
  "input",
83
119
  {
84
120
  type: "checkbox",
85
- checked: n,
86
- onChange: (l) => {
87
- const m = new Set(a);
88
- for (const y of e.productIds)
89
- l.target.checked ? m.add(y) : m.delete(y);
90
- i(m);
121
+ checked: o,
122
+ onChange: (i) => {
123
+ const a = new Set(l);
124
+ for (const N of s.productIds)
125
+ i.target.checked ? a.add(N) : a.delete(N);
126
+ n(a);
91
127
  },
92
128
  className: "mt-0.5 h-4 w-4 rounded border-slate-300 text-primary focus:ring-primary"
93
- }
129
+ },
130
+ void 0,
131
+ !1,
132
+ {
133
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
134
+ lineNumber: 130,
135
+ columnNumber: 15
136
+ },
137
+ this
94
138
  ),
95
- n ? e.productIds.map((l) => /* @__PURE__ */ t("input", { type: "hidden", name: "product_ids", value: l }, l)) : null,
96
- /* @__PURE__ */ t("span", { className: "flex h-12 w-12 shrink-0 items-center justify-center overflow-hidden rounded-md border bg-muted", children: e.thumbnailUrl ? /* @__PURE__ */ t(
139
+ o ? s.productIds.map((i) => /* @__PURE__ */ e("input", { type: "hidden", name: "product_ids", value: i }, i, !1, {
140
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
141
+ lineNumber: 150,
142
+ columnNumber: 21
143
+ }, this)) : null,
144
+ /* @__PURE__ */ e("span", { className: "flex h-12 w-12 shrink-0 items-center justify-center overflow-hidden rounded-md border bg-muted", children: s.thumbnailUrl ? /* @__PURE__ */ e(
97
145
  "img",
98
146
  {
99
- src: e.thumbnailUrl,
147
+ src: s.thumbnailUrl,
100
148
  alt: "",
101
149
  loading: "lazy",
102
150
  className: "h-full w-full object-cover"
103
- }
104
- ) : /* @__PURE__ */ t(g, { className: "h-5 w-5 text-muted-foreground", "aria-hidden": "true" }) }),
105
- /* @__PURE__ */ c("span", { className: "min-w-0 flex-1", children: [
106
- /* @__PURE__ */ t("span", { className: "block whitespace-normal break-words text-sm font-medium", children: e.title }),
107
- /* @__PURE__ */ t("span", { className: "block font-mono text-xs text-muted-foreground", children: e.sku })
108
- ] })
151
+ },
152
+ void 0,
153
+ !1,
154
+ {
155
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
156
+ lineNumber: 155,
157
+ columnNumber: 19
158
+ },
159
+ this
160
+ ) : /* @__PURE__ */ e(v, { className: "h-5 w-5 text-muted-foreground", "aria-hidden": "true" }, void 0, !1, {
161
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
162
+ lineNumber: 162,
163
+ columnNumber: 19
164
+ }, this) }, void 0, !1, {
165
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
166
+ lineNumber: 153,
167
+ columnNumber: 15
168
+ }, this),
169
+ /* @__PURE__ */ e("span", { className: "min-w-0 flex-1", children: [
170
+ /* @__PURE__ */ e("span", { className: "block whitespace-normal break-words text-sm font-medium", children: s.title }, void 0, !1, {
171
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
172
+ lineNumber: 166,
173
+ columnNumber: 17
174
+ }, this),
175
+ /* @__PURE__ */ e("span", { className: "block font-mono text-xs text-muted-foreground", children: s.sku }, void 0, !1, {
176
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
177
+ lineNumber: 169,
178
+ columnNumber: 17
179
+ }, this)
180
+ ] }, void 0, !0, {
181
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
182
+ lineNumber: 165,
183
+ columnNumber: 15
184
+ }, this)
109
185
  ]
110
186
  },
111
- e.key
187
+ s.key,
188
+ !0,
189
+ {
190
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
191
+ lineNumber: 126,
192
+ columnNumber: 13
193
+ },
194
+ this
112
195
  );
113
196
  }),
114
- f.length === 0 ? /* @__PURE__ */ t("div", { className: "px-2 py-8 text-center text-sm text-muted-foreground md:col-span-2", children: "No matching products." }) : null
115
- ] })
116
- ] });
197
+ b.length === 0 ? /* @__PURE__ */ e("div", { className: "px-2 py-8 text-center text-sm text-muted-foreground md:col-span-2", children: "No matching products." }, void 0, !1, {
198
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
199
+ lineNumber: 175,
200
+ columnNumber: 11
201
+ }, this) : null
202
+ ] }, void 0, !0, {
203
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
204
+ lineNumber: 121,
205
+ columnNumber: 7
206
+ }, this)
207
+ ] }, void 0, !0, {
208
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/ProductScopePicker.tsx",
209
+ lineNumber: 92,
210
+ columnNumber: 5
211
+ }, this);
117
212
  }
118
213
  export {
119
- P as ProductScopePicker
214
+ w as ProductScopePicker
120
215
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("react"),t=require("@nextblock-cms/ui"),r=require("lucide-react"),l=require("sonner"),b=require("./export-actions.cjs.js"),c=require("../../../export-helpers.cjs.js");function D(){const[g,p]=s.useState(!1),[x,d]=s.useState(!1),[n,m]=s.useState(""),[o,h]=s.useState(""),[u,j]=s.useState("general_ledger"),y=async()=>{if(!n||!o){l.toast.error("Please select both start and end dates");return}d(!0);try{l.toast.info("Generating report...");const a=await b.fetchOrderReportData(n,o);if(!a||a.length===0){l.toast.error("No orders found for the selected date range"),d(!1);return}let i=[];const f=`report_${u}_${n}_to_${o}`;switch(u){case"general_ledger":i=c.mapGeneralSalesLedger(a);break;case"tax_liability":i=c.mapTaxLiabilitySummary(a);break;case"currency_summary":i=c.mapMultiCurrencyRevenue(a);break}c.generateCSV(i,`${f}.csv`),l.toast.success("Download complete!"),p(!1)}catch(a){console.error("Export error:",a),l.toast.error("Failed to generate report")}finally{d(!1)}};return e.jsxs(t.Dialog,{open:g,onOpenChange:p,children:[e.jsx(t.DialogTrigger,{asChild:!0,children:e.jsxs(t.Button,{variant:"outline",className:"flex items-center gap-2",children:[e.jsx(r.Download,{className:"h-4 w-4"}),"Export Reports"]})}),e.jsxs(t.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxs(t.DialogHeader,{children:[e.jsxs(t.DialogTitle,{className:"flex items-center gap-2",children:[e.jsx(r.FileDown,{className:"h-5 w-5 text-blue-600"}),"Accounting Reports"]}),e.jsx(t.DialogDescription,{children:"Generate and download accountant-friendly order reports."})]}),e.jsxs("div",{className:"grid gap-6 py-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(t.Label,{htmlFor:"start-date",className:"text-xs font-semibold uppercase text-gray-500 tracking-wider",children:"Start Date"}),e.jsxs("div",{className:"relative",children:[e.jsx(t.Input,{id:"start-date",type:"date",value:n,onChange:a=>m(a.target.value),className:"pl-8"}),e.jsx(r.Calendar,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-400"})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(t.Label,{htmlFor:"end-date",className:"text-xs font-semibold uppercase text-gray-500 tracking-wider",children:"End Date"}),e.jsxs("div",{className:"relative",children:[e.jsx(t.Input,{id:"end-date",type:"date",value:o,onChange:a=>h(a.target.value),className:"pl-8"}),e.jsx(r.Calendar,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-400"})]})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(t.Label,{htmlFor:"report-type",className:"text-xs font-semibold uppercase text-gray-500 tracking-wider",children:"Report Type"}),e.jsxs(t.Select,{value:u,onValueChange:a=>j(a),children:[e.jsx(t.SelectTrigger,{id:"report-type",className:"w-full",children:e.jsx(t.SelectValue,{placeholder:"Select report type"})}),e.jsxs(t.SelectContent,{children:[e.jsx(t.SelectItem,{value:"general_ledger",children:"General Sales Ledger"}),e.jsx(t.SelectItem,{value:"tax_liability",children:"Tax Liability Summary"}),e.jsx(t.SelectItem,{value:"currency_summary",children:"Multi-Currency Revenue Summary"})]})]})]})]}),e.jsx(t.DialogFooter,{children:e.jsx(t.Button,{onClick:y,disabled:x,className:"w-full bg-blue-600 hover:bg-blue-700 text-white",children:x?e.jsxs(e.Fragment,{children:[e.jsx(r.Loader2,{className:"mr-2 h-4 w-4 animate-spin"}),"Generating..."]}):e.jsxs(e.Fragment,{children:[e.jsx(r.Download,{className:"mr-2 h-4 w-4"}),"Download Report"]})})})]})]})}exports.ExportReportsDialog=D;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),o=require("react"),s=require("@nextblock-cms/ui"),t=require("lucide-react"),l=require("sonner"),f=require("./export-actions.cjs.js"),n=require("../../../export-helpers.cjs.js");function k(){const[u,p]=o.useState(!1),[b,m]=o.useState(!1),[i,x]=o.useState(""),[a,g]=o.useState(""),[d,D]=o.useState("general_ledger"),N=async()=>{if(!i||!a){l.toast.error("Please select both start and end dates");return}m(!0);try{l.toast.info("Generating report...");const r=await f.fetchOrderReportData(i,a);if(!r||r.length===0){l.toast.error("No orders found for the selected date range"),m(!1);return}let c=[];const h=`report_${d}_${i}_to_${a}`;switch(d){case"general_ledger":c=n.mapGeneralSalesLedger(r);break;case"tax_liability":c=n.mapTaxLiabilitySummary(r);break;case"currency_summary":c=n.mapMultiCurrencyRevenue(r);break}n.generateCSV(c,`${h}.csv`),l.toast.success("Download complete!"),p(!1)}catch(r){console.error("Export error:",r),l.toast.error("Failed to generate report")}finally{m(!1)}};return e.jsxDEV(s.Dialog,{open:u,onOpenChange:p,children:[e.jsxDEV(s.DialogTrigger,{asChild:!0,children:e.jsxDEV(s.Button,{variant:"outline",className:"flex items-center gap-2",children:[e.jsxDEV(t.Download,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:88,columnNumber:11},this),"Export Reports"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:87,columnNumber:9},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:86,columnNumber:7},this),e.jsxDEV(s.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxDEV(s.DialogHeader,{children:[e.jsxDEV(s.DialogTitle,{className:"flex items-center gap-2",children:[e.jsxDEV(t.FileDown,{className:"h-5 w-5 text-blue-600"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:95,columnNumber:13},this),"Accounting Reports"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:94,columnNumber:11},this),e.jsxDEV(s.DialogDescription,{children:"Generate and download accountant-friendly order reports."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:98,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:93,columnNumber:9},this),e.jsxDEV("div",{className:"grid gap-6 py-4",children:[e.jsxDEV("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxDEV("div",{className:"grid gap-2",children:[e.jsxDEV(s.Label,{htmlFor:"start-date",className:"text-xs font-semibold uppercase text-gray-500 tracking-wider",children:"Start Date"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:106,columnNumber:15},this),e.jsxDEV("div",{className:"relative",children:[e.jsxDEV(s.Input,{id:"start-date",type:"date",value:i,onChange:r=>x(r.target.value),className:"pl-8"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:110,columnNumber:17},this),e.jsxDEV(t.Calendar,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-400"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:117,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:109,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:105,columnNumber:13},this),e.jsxDEV("div",{className:"grid gap-2",children:[e.jsxDEV(s.Label,{htmlFor:"end-date",className:"text-xs font-semibold uppercase text-gray-500 tracking-wider",children:"End Date"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:121,columnNumber:15},this),e.jsxDEV("div",{className:"relative",children:[e.jsxDEV(s.Input,{id:"end-date",type:"date",value:a,onChange:r=>g(r.target.value),className:"pl-8"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:125,columnNumber:17},this),e.jsxDEV(t.Calendar,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-400"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:132,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:124,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:120,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:104,columnNumber:11},this),e.jsxDEV("div",{className:"grid gap-2",children:[e.jsxDEV(s.Label,{htmlFor:"report-type",className:"text-xs font-semibold uppercase text-gray-500 tracking-wider",children:"Report Type"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:138,columnNumber:13},this),e.jsxDEV(s.Select,{value:d,onValueChange:r=>D(r),children:[e.jsxDEV(s.SelectTrigger,{id:"report-type",className:"w-full",children:e.jsxDEV(s.SelectValue,{placeholder:"Select report type"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:146,columnNumber:17},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:145,columnNumber:15},this),e.jsxDEV(s.SelectContent,{children:[e.jsxDEV(s.SelectItem,{value:"general_ledger",children:"General Sales Ledger"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:149,columnNumber:17},this),e.jsxDEV(s.SelectItem,{value:"tax_liability",children:"Tax Liability Summary"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:150,columnNumber:17},this),e.jsxDEV(s.SelectItem,{value:"currency_summary",children:"Multi-Currency Revenue Summary"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:151,columnNumber:17},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:148,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:141,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:137,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:103,columnNumber:9},this),e.jsxDEV(s.DialogFooter,{children:e.jsxDEV(s.Button,{onClick:N,disabled:b,className:"w-full bg-blue-600 hover:bg-blue-700 text-white",children:b?e.jsxDEV(e.Fragment,{children:[e.jsxDEV(t.Loader2,{className:"mr-2 h-4 w-4 animate-spin"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:165,columnNumber:17},this),"Generating..."]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:164,columnNumber:15},this):e.jsxDEV(e.Fragment,{children:[e.jsxDEV(t.Download,{className:"mr-2 h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:170,columnNumber:17},this),"Download Report"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:169,columnNumber:15},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:158,columnNumber:11},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:157,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:92,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/orders/ExportReportsDialog.tsx",lineNumber:85,columnNumber:5},this)}exports.ExportReportsDialog=k;