@nextblock-cms/ecom 0.13.4 → 0.13.6

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 (123) 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/products/server-actions.cjs.js +1 -1
  110. package/lib/pages/cms/products/server-actions.es.js +163 -139
  111. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  112. package/lib/pages/cms/shipping/ShippingPage.es.js +507 -155
  113. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  114. package/lib/pages/cms/shipping/components/RateForm.es.js +717 -334
  115. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  116. package/lib/pages/cms/shipping/components/ZoneForm.es.js +392 -158
  117. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  118. package/lib/pages/cms/taxes/TaxesPage.es.js +448 -120
  119. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  120. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +159 -55
  121. package/lib/product-context.cjs.js +1 -1
  122. package/lib/product-context.es.js +14 -10
  123. package/package.json +4 -4
@@ -1,171 +1,423 @@
1
- import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
- import p from "next/link";
3
- import { Button as n, Card as f, CardHeader as h, CardTitle as x, CardDescription as y, CardContent as v, Badge as m } from "@nextblock-cms/ui";
1
+ import { jsxDEV as e } from "react/jsx-dev-runtime";
2
+ import d from "next/link";
3
+ import { Button as r, Card as p, CardHeader as b, CardTitle as N, CardDescription as f, CardContent as x, Badge as a } from "@nextblock-cms/ui";
4
4
  import { getServiceRoleSupabaseClient as g } from "@nextblock-cms/db/server";
5
- import { RefreshCw as _, Trash2 as N } from "lucide-react";
6
- import { formatPrice as b } from "@nextblock-cms/utils";
7
- import { createCouponAction as C, toggleCouponActiveAction as w, syncCouponAction as S, deleteCouponAction as k } from "./actions.es.js";
8
- import { CreateCouponDialog as A } from "./CreateCouponDialog.es.js";
9
- import { normalizeCouponProductOptions as q } from "./product-options.es.js";
10
- function $(i, a) {
11
- return i.discount_type === "percent" ? `${i.discount_amount}%` : b(i.discount_amount, a);
5
+ import { RefreshCw as C, Trash2 as h } from "lucide-react";
6
+ import { formatPrice as k } from "@nextblock-cms/utils";
7
+ import { createCouponAction as v, toggleCouponActiveAction as D, syncCouponAction as j, deleteCouponAction as U } from "./actions.es.js";
8
+ import { CreateCouponDialog as P } from "./CreateCouponDialog.es.js";
9
+ import { normalizeCouponProductOptions as y } from "./product-options.es.js";
10
+ function _(o, c) {
11
+ return o.discount_type === "percent" ? `${o.discount_amount}%` : k(o.discount_amount, c);
12
12
  }
13
- function z(i, a) {
14
- return a ? i === "synced" || i === "not_required" ? "default" : "secondary" : "outline";
13
+ function w(o, c) {
14
+ return c ? o === "synced" || o === "not_required" ? "default" : "secondary" : "outline";
15
15
  }
16
- function D(i, a) {
17
- const s = /* @__PURE__ */ new Set();
18
- for (const d of i || []) {
19
- const c = d.product_id;
20
- c && s.add(a.get(c) || c);
16
+ function S(o, c) {
17
+ const i = /* @__PURE__ */ new Set();
18
+ for (const l of o || []) {
19
+ const n = l.product_id;
20
+ n && i.add(c.get(n) || n);
21
21
  }
22
- return s.size;
22
+ return i.size;
23
23
  }
24
- function j(i, a) {
25
- const s = D(i, a);
26
- return s === 0 ? "All eligible products" : `${s} scoped SKU${s === 1 ? "" : "s"}`;
24
+ function A(o, c) {
25
+ const i = S(o, c);
26
+ return i === 0 ? "All eligible products" : `${i} scoped SKU${i === 1 ? "" : "s"}`;
27
27
  }
28
- async function H({
29
- searchParams: i
28
+ async function K({
29
+ searchParams: o
30
30
  }) {
31
- const a = g();
32
- let s = a.from("coupons").select(
31
+ const c = g();
32
+ let i = c.from("coupons").select(
33
33
  `
34
34
  *,
35
35
  coupon_products(product_id),
36
36
  coupon_freemius_mappings(sync_status, sync_error)
37
37
  `
38
38
  ).order("created_at", { ascending: !1 });
39
- i?.q && (s = s.or(`code.ilike.%${i.q}%,name.ilike.%${i.q}%`)), i?.status === "active" ? s = s.eq("is_active", !0) : i?.status === "inactive" && (s = s.eq("is_active", !1));
40
- const [{ data: d }, { data: c }, { data: l }] = await Promise.all([
41
- s,
42
- a.from("products").select(
39
+ o?.q && (i = i.or(`code.ilike.%${o.q}%,name.ilike.%${o.q}%`)), o?.status === "active" ? i = i.eq("is_active", !0) : o?.status === "inactive" && (i = i.eq("is_active", !1));
40
+ const [{ data: l }, { data: n }, { data: t }] = await Promise.all([
41
+ i,
42
+ c.from("products").select(
43
43
  "id, title, sku, payment_provider, freemius_product_id, language:languages(code, name), product_media(sort_order, media(file_path, object_key))"
44
44
  ).order("title", { ascending: !0 }),
45
- a.from("currencies").select("code, is_default").eq("is_active", !0)
46
- ]), o = l?.find((t) => t.is_default)?.code || l?.[0]?.code || "USD", u = new Map(
47
- (c || []).map((t) => [
48
- t.id,
49
- t.sku?.trim().toUpperCase() || t.id
45
+ c.from("currencies").select("code, is_default").eq("is_active", !0)
46
+ ]), m = t?.find((s) => s.is_default)?.code || t?.[0]?.code || "USD", u = new Map(
47
+ (n || []).map((s) => [
48
+ s.id,
49
+ s.sku?.trim().toUpperCase() || s.id
50
50
  ])
51
51
  );
52
- return /* @__PURE__ */ r("div", { className: "mx-auto w-full max-w-7xl space-y-6 px-6 py-8", children: [
53
- /* @__PURE__ */ r("div", { className: "flex flex-col gap-4 md:flex-row md:items-end md:justify-between", children: [
54
- /* @__PURE__ */ r("div", { children: [
55
- /* @__PURE__ */ e("h1", { className: "text-3xl font-bold tracking-tight", children: "Coupons" }),
56
- /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: "Create provider-aware discounts for Stripe checkout and Freemius licenses." })
57
- ] }),
58
- /* @__PURE__ */ r("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-center", children: [
59
- /* @__PURE__ */ r("form", { className: "flex gap-2", action: "/cms/coupons", children: [
52
+ return /* @__PURE__ */ e("div", { className: "mx-auto w-full max-w-7xl space-y-6 px-6 py-8", children: [
53
+ /* @__PURE__ */ e("div", { className: "flex flex-col gap-4 md:flex-row md:items-end md:justify-between", children: [
54
+ /* @__PURE__ */ e("div", { children: [
55
+ /* @__PURE__ */ e("h1", { className: "text-3xl font-bold tracking-tight", children: "Coupons" }, void 0, !1, {
56
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
57
+ lineNumber: 133,
58
+ columnNumber: 11
59
+ }, this),
60
+ /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: "Create provider-aware discounts for Stripe checkout and Freemius licenses." }, void 0, !1, {
61
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
62
+ lineNumber: 134,
63
+ columnNumber: 11
64
+ }, this)
65
+ ] }, void 0, !0, {
66
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
67
+ lineNumber: 132,
68
+ columnNumber: 9
69
+ }, this),
70
+ /* @__PURE__ */ e("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-center", children: [
71
+ /* @__PURE__ */ e("form", { className: "flex gap-2", action: "/cms/coupons", children: [
60
72
  /* @__PURE__ */ e(
61
73
  "input",
62
74
  {
63
75
  name: "q",
64
76
  placeholder: "Search coupons",
65
- defaultValue: i?.q || "",
77
+ defaultValue: o?.q || "",
66
78
  className: "h-10 rounded-md border border-input bg-background px-3 py-2 text-sm"
67
- }
79
+ },
80
+ void 0,
81
+ !1,
82
+ {
83
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
84
+ lineNumber: 140,
85
+ columnNumber: 13
86
+ },
87
+ this
68
88
  ),
69
- /* @__PURE__ */ r(
89
+ /* @__PURE__ */ e(
70
90
  "select",
71
91
  {
72
92
  name: "status",
73
- defaultValue: i?.status || "all",
93
+ defaultValue: o?.status || "all",
74
94
  className: "h-10 rounded-md border border-input bg-background px-3 py-2 text-sm",
75
95
  children: [
76
- /* @__PURE__ */ e("option", { value: "all", children: "All" }),
77
- /* @__PURE__ */ e("option", { value: "active", children: "Active" }),
78
- /* @__PURE__ */ e("option", { value: "inactive", children: "Inactive" })
96
+ /* @__PURE__ */ e("option", { value: "all", children: "All" }, void 0, !1, {
97
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
98
+ lineNumber: 151,
99
+ columnNumber: 15
100
+ }, this),
101
+ /* @__PURE__ */ e("option", { value: "active", children: "Active" }, void 0, !1, {
102
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
103
+ lineNumber: 152,
104
+ columnNumber: 15
105
+ }, this),
106
+ /* @__PURE__ */ e("option", { value: "inactive", children: "Inactive" }, void 0, !1, {
107
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
108
+ lineNumber: 153,
109
+ columnNumber: 15
110
+ }, this)
79
111
  ]
80
- }
112
+ },
113
+ void 0,
114
+ !0,
115
+ {
116
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
117
+ lineNumber: 146,
118
+ columnNumber: 13
119
+ },
120
+ this
81
121
  ),
82
- /* @__PURE__ */ e(n, { type: "submit", variant: "outline", children: "Filter" })
83
- ] }),
122
+ /* @__PURE__ */ e(r, { type: "submit", variant: "outline", children: "Filter" }, void 0, !1, {
123
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
124
+ lineNumber: 155,
125
+ columnNumber: 13
126
+ }, this)
127
+ ] }, void 0, !0, {
128
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
129
+ lineNumber: 139,
130
+ columnNumber: 11
131
+ }, this),
84
132
  /* @__PURE__ */ e(
85
- A,
133
+ P,
86
134
  {
87
- action: C,
88
- products: q(c),
89
- currencyCode: o
90
- }
135
+ action: v,
136
+ products: y(n),
137
+ currencyCode: m
138
+ },
139
+ void 0,
140
+ !1,
141
+ {
142
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
143
+ lineNumber: 157,
144
+ columnNumber: 11
145
+ },
146
+ this
91
147
  )
92
- ] })
93
- ] }),
94
- /* @__PURE__ */ r(f, { children: [
95
- /* @__PURE__ */ r(h, { children: [
96
- /* @__PURE__ */ e(x, { children: "All Coupons" }),
97
- /* @__PURE__ */ e(y, { children: "Freemius sync runs when a coupon is created, updated, toggled, or manually resynced." })
98
- ] }),
99
- /* @__PURE__ */ e(v, { children: /* @__PURE__ */ e("div", { className: "overflow-hidden rounded-lg border", children: /* @__PURE__ */ r("table", { className: "w-full text-left text-sm", children: [
100
- /* @__PURE__ */ e("thead", { className: "border-b bg-muted/40 text-xs uppercase text-muted-foreground", children: /* @__PURE__ */ r("tr", { children: [
101
- /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Code" }),
102
- /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Scope" }),
103
- /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Discount" }),
104
- /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Usage" }),
105
- /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Sync" }),
106
- /* @__PURE__ */ e("th", { className: "px-4 py-3 text-right", children: "Actions" })
107
- ] }) }),
108
- /* @__PURE__ */ e("tbody", { className: "divide-y", children: d?.length ? d.map((t) => /* @__PURE__ */ r("tr", { className: "align-top", children: [
109
- /* @__PURE__ */ r("td", { className: "px-4 py-3", children: [
110
- /* @__PURE__ */ r("div", { className: "flex items-center gap-2", children: [
111
- /* @__PURE__ */ e("span", { className: "font-mono font-semibold", children: t.code }),
112
- /* @__PURE__ */ e(m, { variant: t.is_active ? "default" : "outline", children: t.is_active ? "Active" : "Inactive" })
113
- ] }),
114
- /* @__PURE__ */ e("p", { className: "mt-1 text-xs text-muted-foreground", children: t.name })
115
- ] }),
116
- /* @__PURE__ */ r("td", { className: "px-4 py-3", children: [
117
- /* @__PURE__ */ e("span", { className: "capitalize", children: t.provider_scope }),
118
- /* @__PURE__ */ e("p", { className: "mt-1 text-xs text-muted-foreground", children: j(t.coupon_products, u) })
119
- ] }),
120
- /* @__PURE__ */ e("td", { className: "px-4 py-3 font-medium", children: $(t, o) }),
121
- /* @__PURE__ */ r("td", { className: "px-4 py-3", children: [
122
- t.redemptions_count || 0,
123
- t.redemption_limit ? ` / ${t.redemption_limit}` : ""
124
- ] }),
125
- /* @__PURE__ */ r("td", { className: "px-4 py-3", children: [
126
- /* @__PURE__ */ e(m, { variant: z(t.freemius_sync_status, t.is_active), children: t.freemius_sync_status }),
127
- t.freemius_sync_error ? /* @__PURE__ */ e("p", { className: "mt-1 max-w-[220px] text-xs text-destructive", children: t.freemius_sync_error }) : null
128
- ] }),
129
- /* @__PURE__ */ e("td", { className: "px-4 py-3", children: /* @__PURE__ */ r("div", { className: "flex justify-end gap-1", children: [
130
- /* @__PURE__ */ e(n, { asChild: !0, variant: "outline", size: "sm", children: /* @__PURE__ */ e(p, { href: `/cms/coupons/${t.id}/edit`, children: "Edit" }) }),
148
+ ] }, void 0, !0, {
149
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
150
+ lineNumber: 138,
151
+ columnNumber: 9
152
+ }, this)
153
+ ] }, void 0, !0, {
154
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
155
+ lineNumber: 131,
156
+ columnNumber: 7
157
+ }, this),
158
+ /* @__PURE__ */ e(p, { children: [
159
+ /* @__PURE__ */ e(b, { children: [
160
+ /* @__PURE__ */ e(N, { children: "All Coupons" }, void 0, !1, {
161
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
162
+ lineNumber: 167,
163
+ columnNumber: 11
164
+ }, this),
165
+ /* @__PURE__ */ e(f, { children: "Freemius sync runs when a coupon is created, updated, toggled, or manually resynced." }, void 0, !1, {
166
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
167
+ lineNumber: 168,
168
+ columnNumber: 11
169
+ }, this)
170
+ ] }, void 0, !0, {
171
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
172
+ lineNumber: 166,
173
+ columnNumber: 9
174
+ }, this),
175
+ /* @__PURE__ */ e(x, { children: /* @__PURE__ */ e("div", { className: "overflow-hidden rounded-lg border", children: /* @__PURE__ */ e("table", { className: "w-full text-left text-sm", children: [
176
+ /* @__PURE__ */ e("thead", { className: "border-b bg-muted/40 text-xs uppercase text-muted-foreground", children: /* @__PURE__ */ e("tr", { children: [
177
+ /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Code" }, void 0, !1, {
178
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
179
+ lineNumber: 177,
180
+ columnNumber: 19
181
+ }, this),
182
+ /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Scope" }, void 0, !1, {
183
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
184
+ lineNumber: 178,
185
+ columnNumber: 19
186
+ }, this),
187
+ /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Discount" }, void 0, !1, {
188
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
189
+ lineNumber: 179,
190
+ columnNumber: 19
191
+ }, this),
192
+ /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Usage" }, void 0, !1, {
193
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
194
+ lineNumber: 180,
195
+ columnNumber: 19
196
+ }, this),
197
+ /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Sync" }, void 0, !1, {
198
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
199
+ lineNumber: 181,
200
+ columnNumber: 19
201
+ }, this),
202
+ /* @__PURE__ */ e("th", { className: "px-4 py-3 text-right", children: "Actions" }, void 0, !1, {
203
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
204
+ lineNumber: 182,
205
+ columnNumber: 19
206
+ }, this)
207
+ ] }, void 0, !0, {
208
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
209
+ lineNumber: 176,
210
+ columnNumber: 17
211
+ }, this) }, void 0, !1, {
212
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
213
+ lineNumber: 175,
214
+ columnNumber: 15
215
+ }, this),
216
+ /* @__PURE__ */ e("tbody", { className: "divide-y", children: l?.length ? l.map((s) => /* @__PURE__ */ e("tr", { className: "align-top", children: [
217
+ /* @__PURE__ */ e("td", { className: "px-4 py-3", children: [
218
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: [
219
+ /* @__PURE__ */ e("span", { className: "font-mono font-semibold", children: s.code }, void 0, !1, {
220
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
221
+ lineNumber: 197,
222
+ columnNumber: 27
223
+ }, this),
224
+ /* @__PURE__ */ e(a, { variant: s.is_active ? "default" : "outline", children: s.is_active ? "Active" : "Inactive" }, void 0, !1, {
225
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
226
+ lineNumber: 198,
227
+ columnNumber: 27
228
+ }, this)
229
+ ] }, void 0, !0, {
230
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
231
+ lineNumber: 196,
232
+ columnNumber: 25
233
+ }, this),
234
+ /* @__PURE__ */ e("p", { className: "mt-1 text-xs text-muted-foreground", children: s.name }, void 0, !1, {
235
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
236
+ lineNumber: 202,
237
+ columnNumber: 25
238
+ }, this)
239
+ ] }, void 0, !0, {
240
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
241
+ lineNumber: 195,
242
+ columnNumber: 23
243
+ }, this),
244
+ /* @__PURE__ */ e("td", { className: "px-4 py-3", children: [
245
+ /* @__PURE__ */ e("span", { className: "capitalize", children: s.provider_scope }, void 0, !1, {
246
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
247
+ lineNumber: 205,
248
+ columnNumber: 25
249
+ }, this),
250
+ /* @__PURE__ */ e("p", { className: "mt-1 text-xs text-muted-foreground", children: A(s.coupon_products, u) }, void 0, !1, {
251
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
252
+ lineNumber: 206,
253
+ columnNumber: 25
254
+ }, this)
255
+ ] }, void 0, !0, {
256
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
257
+ lineNumber: 204,
258
+ columnNumber: 23
259
+ }, this),
260
+ /* @__PURE__ */ e("td", { className: "px-4 py-3 font-medium", children: _(s, m) }, void 0, !1, {
261
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
262
+ lineNumber: 210,
263
+ columnNumber: 23
264
+ }, this),
265
+ /* @__PURE__ */ e("td", { className: "px-4 py-3", children: [
266
+ s.redemptions_count || 0,
267
+ s.redemption_limit ? ` / ${s.redemption_limit}` : ""
268
+ ] }, void 0, !0, {
269
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
270
+ lineNumber: 213,
271
+ columnNumber: 23
272
+ }, this),
273
+ /* @__PURE__ */ e("td", { className: "px-4 py-3", children: [
274
+ /* @__PURE__ */ e(a, { variant: w(s.freemius_sync_status, s.is_active), children: s.freemius_sync_status }, void 0, !1, {
275
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
276
+ lineNumber: 218,
277
+ columnNumber: 25
278
+ }, this),
279
+ s.freemius_sync_error ? /* @__PURE__ */ e("p", { className: "mt-1 max-w-[220px] text-xs text-destructive", children: s.freemius_sync_error }, void 0, !1, {
280
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
281
+ lineNumber: 222,
282
+ columnNumber: 27
283
+ }, this) : null
284
+ ] }, void 0, !0, {
285
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
286
+ lineNumber: 217,
287
+ columnNumber: 23
288
+ }, this),
289
+ /* @__PURE__ */ e("td", { className: "px-4 py-3", children: /* @__PURE__ */ e("div", { className: "flex justify-end gap-1", children: [
290
+ /* @__PURE__ */ e(r, { asChild: !0, variant: "outline", size: "sm", children: /* @__PURE__ */ e(d, { href: `/cms/coupons/${s.id}/edit`, children: "Edit" }, void 0, !1, {
291
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
292
+ lineNumber: 230,
293
+ columnNumber: 29
294
+ }, this) }, void 0, !1, {
295
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
296
+ lineNumber: 229,
297
+ columnNumber: 27
298
+ }, this),
131
299
  /* @__PURE__ */ e("form", { action: async () => {
132
300
  "use server";
133
- await w(t.id, !t.is_active);
134
- }, children: /* @__PURE__ */ e(n, { type: "submit", variant: "outline", size: "sm", children: t.is_active ? "Disable" : "Enable" }) }),
301
+ await D(s.id, !s.is_active);
302
+ }, children: /* @__PURE__ */ e(r, { type: "submit", variant: "outline", size: "sm", children: s.is_active ? "Disable" : "Enable" }, void 0, !1, {
303
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
304
+ lineNumber: 236,
305
+ columnNumber: 29
306
+ }, this) }, void 0, !1, {
307
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
308
+ lineNumber: 232,
309
+ columnNumber: 27
310
+ }, this),
135
311
  /* @__PURE__ */ e("form", { action: async () => {
136
312
  "use server";
137
- await S(t.id);
313
+ await j(s.id);
138
314
  }, children: /* @__PURE__ */ e(
139
- n,
315
+ r,
140
316
  {
141
317
  type: "submit",
142
318
  variant: "ghost",
143
319
  size: "icon",
144
320
  title: "Resync Freemius",
145
- "aria-label": `Resync Freemius coupon ${t.code}`,
146
- children: /* @__PURE__ */ e(_, { className: "h-4 w-4" })
147
- }
148
- ) }),
321
+ "aria-label": `Resync Freemius coupon ${s.code}`,
322
+ children: /* @__PURE__ */ e(C, { className: "h-4 w-4" }, void 0, !1, {
323
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
324
+ lineNumber: 251,
325
+ columnNumber: 31
326
+ }, this)
327
+ },
328
+ void 0,
329
+ !1,
330
+ {
331
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
332
+ lineNumber: 244,
333
+ columnNumber: 29
334
+ },
335
+ this
336
+ ) }, void 0, !1, {
337
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
338
+ lineNumber: 240,
339
+ columnNumber: 27
340
+ }, this),
149
341
  /* @__PURE__ */ e("form", { action: async () => {
150
342
  "use server";
151
- await k(t.id);
343
+ await U(s.id);
152
344
  }, children: /* @__PURE__ */ e(
153
- n,
345
+ r,
154
346
  {
155
347
  type: "submit",
156
348
  variant: "ghost",
157
349
  size: "icon",
158
350
  className: "text-destructive",
159
- "aria-label": `Delete coupon ${t.code}`,
160
- children: /* @__PURE__ */ e(N, { className: "h-4 w-4" })
161
- }
162
- ) })
163
- ] }) })
164
- ] }, t.id)) : /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e("td", { colSpan: 6, className: "px-4 py-10 text-center text-muted-foreground", children: "No coupons yet." }) }) })
165
- ] }) }) })
166
- ] })
167
- ] });
351
+ "aria-label": `Delete coupon ${s.code}`,
352
+ children: /* @__PURE__ */ e(h, { className: "h-4 w-4" }, void 0, !1, {
353
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
354
+ lineNumber: 265,
355
+ columnNumber: 31
356
+ }, this)
357
+ },
358
+ void 0,
359
+ !1,
360
+ {
361
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
362
+ lineNumber: 258,
363
+ columnNumber: 29
364
+ },
365
+ this
366
+ ) }, void 0, !1, {
367
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
368
+ lineNumber: 254,
369
+ columnNumber: 27
370
+ }, this)
371
+ ] }, void 0, !0, {
372
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
373
+ lineNumber: 228,
374
+ columnNumber: 25
375
+ }, this) }, void 0, !1, {
376
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
377
+ lineNumber: 227,
378
+ columnNumber: 23
379
+ }, this)
380
+ ] }, s.id, !0, {
381
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
382
+ lineNumber: 194,
383
+ columnNumber: 21
384
+ }, this)) : /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e("td", { colSpan: 6, className: "px-4 py-10 text-center text-muted-foreground", children: "No coupons yet." }, void 0, !1, {
385
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
386
+ lineNumber: 188,
387
+ columnNumber: 21
388
+ }, this) }, void 0, !1, {
389
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
390
+ lineNumber: 187,
391
+ columnNumber: 19
392
+ }, this) }, void 0, !1, {
393
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
394
+ lineNumber: 185,
395
+ columnNumber: 15
396
+ }, this)
397
+ ] }, void 0, !0, {
398
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
399
+ lineNumber: 174,
400
+ columnNumber: 13
401
+ }, this) }, void 0, !1, {
402
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
403
+ lineNumber: 173,
404
+ columnNumber: 11
405
+ }, this) }, void 0, !1, {
406
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
407
+ lineNumber: 172,
408
+ columnNumber: 9
409
+ }, this)
410
+ ] }, void 0, !0, {
411
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
412
+ lineNumber: 165,
413
+ columnNumber: 7
414
+ }, this)
415
+ ] }, void 0, !0, {
416
+ fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",
417
+ lineNumber: 130,
418
+ columnNumber: 5
419
+ }, this);
168
420
  }
169
421
  export {
170
- H as CouponsPage
422
+ K as CouponsPage
171
423
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),i=require("@nextblock-cms/ui/button"),o=require("@nextblock-cms/ui/dialog"),u=require("lucide-react"),c=require("./CouponEditorForm.cjs.js");function x({action:t,products:r,currencyCode:a}){const[n,s]=l.useState(!1);return e.jsxs(o.Dialog,{open:n,onOpenChange:s,children:[e.jsx(o.DialogTrigger,{asChild:!0,children:e.jsxs(i.Button,{type:"button",className:"gap-2",children:[e.jsx(u.Plus,{className:"h-4 w-4"}),"Create Coupon"]})}),e.jsxs(o.DialogContent,{className:"max-h-[90vh] overflow-y-auto sm:max-w-[92vw] lg:max-w-5xl xl:max-w-6xl",children:[e.jsx(o.DialogHeader,{children:e.jsx(o.DialogTitle,{className:"sr-only",children:"Create Coupon"})}),e.jsx(c.CouponEditorForm,{action:t,products:r,submitLabel:"Create Coupon",currencyCode:a})]})]})}exports.CreateCouponDialog=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),t=require("react"),a=require("@nextblock-cms/ui/button"),s=require("@nextblock-cms/ui/dialog"),c=require("lucide-react"),u=require("./CouponEditorForm.cjs.js");function m({action:o,products:r,currencyCode:i}){const[l,n]=t.useState(!1);return e.jsxDEV(s.Dialog,{open:l,onOpenChange:n,children:[e.jsxDEV(s.DialogTrigger,{asChild:!0,children:e.jsxDEV(a.Button,{type:"button",className:"gap-2",children:[e.jsxDEV(c.Plus,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",lineNumber:32,columnNumber:11},this),"Create Coupon"]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",lineNumber:31,columnNumber:9},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",lineNumber:30,columnNumber:7},this),e.jsxDEV(s.DialogContent,{className:"max-h-[90vh] overflow-y-auto sm:max-w-[92vw] lg:max-w-5xl xl:max-w-6xl",children:[e.jsxDEV(s.DialogHeader,{children:e.jsxDEV(s.DialogTitle,{className:"sr-only",children:"Create Coupon"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",lineNumber:38,columnNumber:11},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",lineNumber:37,columnNumber:9},this),e.jsxDEV(u.CouponEditorForm,{action:o,products:r,submitLabel:"Create Coupon",currencyCode:i},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",lineNumber:40,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",lineNumber:36,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CreateCouponDialog.tsx",lineNumber:29,columnNumber:5},this)}exports.CreateCouponDialog=m;