@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.
- package/lib/CurrencyProvider.cjs.js +1 -1
- package/lib/CurrencyProvider.es.js +31 -27
- package/lib/components/AccountNavigationMenu.cjs.js +1 -1
- package/lib/components/AccountNavigationMenu.es.js +53 -26
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.es.js +49 -25
- package/lib/components/Cart.cjs.js +1 -1
- package/lib/components/Cart.es.js +367 -115
- package/lib/components/CartDrawer.cjs.js +1 -1
- package/lib/components/CartDrawer.es.js +272 -88
- package/lib/components/CartIcon.cjs.js +1 -1
- package/lib/components/CartIcon.es.js +44 -16
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.es.js +1601 -694
- package/lib/components/CouponForm.cjs.js +1 -1
- package/lib/components/CouponForm.es.js +160 -96
- package/lib/components/CurrencySwitcher.cjs.js +1 -1
- package/lib/components/CurrencySwitcher.es.js +32 -12
- package/lib/components/CustomerProfileForm.cjs.js +1 -1
- package/lib/components/CustomerProfileForm.es.js +666 -250
- package/lib/components/FeaturedProduct.cjs.js +1 -1
- package/lib/components/FeaturedProduct.es.js +126 -42
- package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
- package/lib/components/FreemiusLicensePanel.es.js +125 -45
- package/lib/components/InvoiceDocument.cjs.js +1 -1
- package/lib/components/InvoiceDocument.es.js +485 -146
- package/lib/components/InvoiceViewerShell.cjs.js +2 -2
- package/lib/components/InvoiceViewerShell.es.js +142 -54
- package/lib/components/ProductCard.cjs.js +1 -1
- package/lib/components/ProductCard.es.js +224 -81
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.es.js +629 -275
- package/lib/components/ProductGallery.cjs.js +1 -1
- package/lib/components/ProductGallery.es.js +64 -21
- package/lib/components/ProductGrid.cjs.js +1 -1
- package/lib/components/ProductGrid.es.js +28 -12
- package/lib/components/ShippingEstimator.cjs.js +1 -1
- package/lib/components/ShippingEstimator.es.js +226 -90
- package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
- package/lib/components/SimpleTiptapRenderer.es.js +286 -93
- package/lib/components/SubscriptionSelector.cjs.js +1 -1
- package/lib/components/SubscriptionSelector.es.js +168 -92
- package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.es.js +370 -110
- package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
- package/lib/pages/cms/coupons/CouponsPage.es.js +368 -116
- package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.es.js +61 -25
- package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +71 -35
- package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.es.js +167 -72
- package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
- package/lib/pages/cms/orders/ExportReportsDialog.es.js +247 -87
- package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.es.js +283 -95
- package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderPrintButton.es.js +21 -9
- package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderStatusForm.es.js +106 -46
- package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrdersPage.es.js +257 -78
- package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsClient.es.js +551 -155
- package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsPage.es.js +24 -16
- package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +77 -37
- package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +176 -96
- package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +85 -41
- package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +455 -192
- package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +72 -28
- package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
- package/lib/pages/cms/products/categories/components/CategoryManager.es.js +490 -183
- package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
- package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +175 -67
- package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +211 -100
- package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.es.js +45 -25
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +202 -58
- package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductCategorySelector.es.js +234 -88
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +1199 -551
- package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.es.js +154 -63
- package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.es.js +391 -144
- package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.es.js +203 -87
- package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +30 -18
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +35 -23
- package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.es.js +492 -261
- package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.es.js +33 -13
- package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
- package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +365 -145
- package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +46 -34
- package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
- package/lib/pages/cms/shipping/ShippingPage.es.js +507 -155
- package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/RateForm.es.js +717 -334
- package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/ZoneForm.es.js +392 -158
- package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +448 -120
- package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.es.js +159 -55
- package/lib/product-context.cjs.js +1 -1
- package/lib/product-context.es.js +14 -10
- package/package.json +4 -4
|
@@ -1,171 +1,423 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { Button as
|
|
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
|
|
6
|
-
import { formatPrice as
|
|
7
|
-
import { createCouponAction as
|
|
8
|
-
import { CreateCouponDialog as
|
|
9
|
-
import { normalizeCouponProductOptions as
|
|
10
|
-
function
|
|
11
|
-
return
|
|
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
|
|
14
|
-
return
|
|
13
|
+
function w(o, c) {
|
|
14
|
+
return c ? o === "synced" || o === "not_required" ? "default" : "secondary" : "outline";
|
|
15
15
|
}
|
|
16
|
-
function
|
|
17
|
-
const
|
|
18
|
-
for (const
|
|
19
|
-
const
|
|
20
|
-
|
|
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
|
|
22
|
+
return i.size;
|
|
23
23
|
}
|
|
24
|
-
function
|
|
25
|
-
const
|
|
26
|
-
return
|
|
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
|
|
29
|
-
searchParams:
|
|
28
|
+
async function K({
|
|
29
|
+
searchParams: o
|
|
30
30
|
}) {
|
|
31
|
-
const
|
|
32
|
-
let
|
|
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
|
-
|
|
40
|
-
const [{ data:
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
46
|
-
]),
|
|
47
|
-
(
|
|
48
|
-
|
|
49
|
-
|
|
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__ */
|
|
53
|
-
/* @__PURE__ */
|
|
54
|
-
/* @__PURE__ */
|
|
55
|
-
/* @__PURE__ */ e("h1", { className: "text-3xl font-bold tracking-tight", children: "Coupons" }
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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:
|
|
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__ */
|
|
89
|
+
/* @__PURE__ */ e(
|
|
70
90
|
"select",
|
|
71
91
|
{
|
|
72
92
|
name: "status",
|
|
73
|
-
defaultValue:
|
|
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
|
-
|
|
78
|
-
|
|
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(
|
|
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
|
-
|
|
133
|
+
P,
|
|
86
134
|
{
|
|
87
|
-
action:
|
|
88
|
-
products:
|
|
89
|
-
currencyCode:
|
|
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
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
/* @__PURE__ */
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
|
134
|
-
}, children: /* @__PURE__ */ e(
|
|
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
|
|
313
|
+
await j(s.id);
|
|
138
314
|
}, children: /* @__PURE__ */ e(
|
|
139
|
-
|
|
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 ${
|
|
146
|
-
children: /* @__PURE__ */ e(
|
|
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
|
|
343
|
+
await U(s.id);
|
|
152
344
|
}, children: /* @__PURE__ */ e(
|
|
153
|
-
|
|
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 ${
|
|
160
|
-
children: /* @__PURE__ */ e(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
-
|
|
422
|
+
K as CouponsPage
|
|
171
423
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),
|
|
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;
|