@burdenoff/microfe-billing 2026.614.1 → 2026.623.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/billing/BillingAdminRoutes.js +7 -6
- package/dist/billing/BillingAdminRoutes.js.map +1 -1
- package/dist/billing/BillingRoot.js +1 -1
- package/dist/billing/BillingRoot.js.map +1 -1
- package/dist/billing/modules/addons/components/FloatingCartDrawer.js +22 -22
- package/dist/billing/modules/addons/components/FloatingCartDrawer.js.map +1 -1
- package/dist/billing/modules/addons/pages/AddonCreatePage.js +31 -31
- package/dist/billing/modules/addons/pages/AddonCreatePage.js.map +1 -1
- package/dist/billing/modules/addons/pages/AddonDetailPage.js +39 -39
- package/dist/billing/modules/addons/pages/AddonDetailPage.js.map +1 -1
- package/dist/billing/modules/addons/pages/AddonEditPage.js +29 -29
- package/dist/billing/modules/addons/pages/AddonEditPage.js.map +1 -1
- package/dist/billing/modules/addons/pages/AddonsListPage.js +91 -91
- package/dist/billing/modules/addons/pages/AddonsListPage.js.map +1 -1
- package/dist/billing/modules/analytics/pages/AnalyticsPage.js +40 -40
- package/dist/billing/modules/analytics/pages/AnalyticsPage.js.map +1 -1
- package/dist/billing/modules/billing/pages/InvoiceDetailPage.js +115 -115
- package/dist/billing/modules/billing/pages/InvoiceDetailPage.js.map +1 -1
- package/dist/billing/modules/billing/pages/InvoicesListPage.js +75 -72
- package/dist/billing/modules/billing/pages/InvoicesListPage.js.map +1 -1
- package/dist/billing/modules/billing/pages/RefundsPage.js +126 -126
- package/dist/billing/modules/billing/pages/RefundsPage.js.map +1 -1
- package/dist/billing/modules/billing/pages/UserRefundsPage.js +45 -45
- package/dist/billing/modules/billing/pages/UserRefundsPage.js.map +1 -1
- package/dist/billing/modules/checkout/components/BillingAccountSelector.js +25 -25
- package/dist/billing/modules/checkout/components/BillingAccountSelector.js.map +1 -1
- package/dist/billing/modules/checkout/components/CompleteBillingAccountModal.js +31 -35
- package/dist/billing/modules/checkout/components/CompleteBillingAccountModal.js.map +1 -1
- package/dist/billing/modules/checkout/components/CreditsAmountInput.js +9 -9
- package/dist/billing/modules/checkout/components/CreditsAmountInput.js.map +1 -1
- package/dist/billing/modules/checkout/components/OrderSummary.js +31 -31
- package/dist/billing/modules/checkout/components/OrderSummary.js.map +1 -1
- package/dist/billing/modules/checkout/components/PromoCodeInput.js +8 -8
- package/dist/billing/modules/checkout/components/PromoCodeInput.js.map +1 -1
- package/dist/billing/modules/checkout/components/RazorpayPaymentButton.js +5 -5
- package/dist/billing/modules/checkout/components/RazorpayPaymentButton.js.map +1 -1
- package/dist/billing/modules/checkout/components/SimpleAutoPayToggle.js +9 -9
- package/dist/billing/modules/checkout/components/SimpleAutoPayToggle.js.map +1 -1
- package/dist/billing/modules/checkout/components/StripePaymentForm.js +21 -21
- package/dist/billing/modules/checkout/components/StripePaymentForm.js.map +1 -1
- package/dist/billing/modules/checkout/components/SubscriptionSelector.js +11 -11
- package/dist/billing/modules/checkout/components/SubscriptionSelector.js.map +1 -1
- package/dist/billing/modules/checkout/components/UnifiedPaymentMethodSelector.js +31 -31
- package/dist/billing/modules/checkout/components/UnifiedPaymentMethodSelector.js.map +1 -1
- package/dist/billing/modules/checkout/components/WorkspaceQuotaAssignmentModal.js +23 -23
- package/dist/billing/modules/checkout/components/WorkspaceQuotaAssignmentModal.js.map +1 -1
- package/dist/billing/modules/checkout/pages/CheckoutPage.js +91 -91
- package/dist/billing/modules/checkout/pages/CheckoutPage.js.map +1 -1
- package/dist/billing/modules/coupons/pages/CouponDetailPage.js +62 -62
- package/dist/billing/modules/coupons/pages/CouponDetailPage.js.map +1 -1
- package/dist/billing/modules/coupons/pages/CouponsListPage.js +72 -60
- package/dist/billing/modules/coupons/pages/CouponsListPage.js.map +1 -1
- package/dist/billing/modules/coupons/pages/CreateCouponPage.js +66 -66
- package/dist/billing/modules/coupons/pages/CreateCouponPage.js.map +1 -1
- package/dist/billing/modules/coupons/pages/EditCouponPage.js +46 -46
- package/dist/billing/modules/coupons/pages/EditCouponPage.js.map +1 -1
- package/dist/billing/modules/credits/pages/AdminCreditsPage.js +19 -19
- package/dist/billing/modules/credits/pages/AdminCreditsPage.js.map +1 -1
- package/dist/billing/modules/credits/pages/CreditTransactionsPage.js +37 -37
- package/dist/billing/modules/credits/pages/CreditTransactionsPage.js.map +1 -1
- package/dist/billing/modules/credits/pages/CreditWithdrawalPage.js +90 -90
- package/dist/billing/modules/credits/pages/CreditWithdrawalPage.js.map +1 -1
- package/dist/billing/modules/credits/pages/CreditsPage.js +41 -41
- package/dist/billing/modules/credits/pages/CreditsPage.js.map +1 -1
- package/dist/billing/modules/dashboard/components/ActiveSubscriptionCard.js +31 -31
- package/dist/billing/modules/dashboard/components/ActiveSubscriptionCard.js.map +1 -1
- package/dist/billing/modules/dashboard/components/AddPaymentMethodModal.js +35 -35
- package/dist/billing/modules/dashboard/components/AddPaymentMethodModal.js.map +1 -1
- package/dist/billing/modules/dashboard/components/BillingAccountCard.js +24 -24
- package/dist/billing/modules/dashboard/components/BillingAccountCard.js.map +1 -1
- package/dist/billing/modules/dashboard/components/CreateBillingAccountModal.js +99 -99
- package/dist/billing/modules/dashboard/components/CreateBillingAccountModal.js.map +1 -1
- package/dist/billing/modules/dashboard/components/PaymentMethodsSection.js +23 -23
- package/dist/billing/modules/dashboard/components/PaymentMethodsSection.js.map +1 -1
- package/dist/billing/modules/dashboard/components/RecommendedAddonsSection.js +22 -22
- package/dist/billing/modules/dashboard/components/RecommendedAddonsSection.js.map +1 -1
- package/dist/billing/modules/dashboard/pages/OverviewPage.js +58 -58
- package/dist/billing/modules/dashboard/pages/OverviewPage.js.map +1 -1
- package/dist/billing/modules/discounts/pages/DiscountsListPage.js +126 -126
- package/dist/billing/modules/discounts/pages/DiscountsListPage.js.map +1 -1
- package/dist/billing/modules/earnings/pages/PayoutAdminPage.js +83 -79
- package/dist/billing/modules/earnings/pages/PayoutAdminPage.js.map +1 -1
- package/dist/billing/modules/plans/pages/PlanAssignFreePage.js +16 -16
- package/dist/billing/modules/plans/pages/PlanAssignFreePage.js.map +1 -1
- package/dist/billing/modules/plans/pages/PlanBrowseDetailPage.js +40 -40
- package/dist/billing/modules/plans/pages/PlanBrowseDetailPage.js.map +1 -1
- package/dist/billing/modules/plans/pages/PlanCreatePage.js +35 -35
- package/dist/billing/modules/plans/pages/PlanCreatePage.js.map +1 -1
- package/dist/billing/modules/plans/pages/PlanDetailPage.js +57 -57
- package/dist/billing/modules/plans/pages/PlanDetailPage.js.map +1 -1
- package/dist/billing/modules/plans/pages/PlanEditPage.js +35 -35
- package/dist/billing/modules/plans/pages/PlanEditPage.js.map +1 -1
- package/dist/billing/modules/plans/pages/PlansBrowsePage.js +57 -57
- package/dist/billing/modules/plans/pages/PlansBrowsePage.js.map +1 -1
- package/dist/billing/modules/plans/pages/PlansListPage.js +52 -52
- package/dist/billing/modules/plans/pages/PlansListPage.js.map +1 -1
- package/dist/billing/modules/promotions/pages/CreatePromotionPage.js +40 -39
- package/dist/billing/modules/promotions/pages/CreatePromotionPage.js.map +1 -1
- package/dist/billing/modules/promotions/pages/PromotionsListPage.js +22 -19
- package/dist/billing/modules/promotions/pages/PromotionsListPage.js.map +1 -1
- package/dist/billing/modules/quota/pages/QuotaTemplateCreatePage.js +34 -34
- package/dist/billing/modules/quota/pages/QuotaTemplateCreatePage.js.map +1 -1
- package/dist/billing/modules/quota/pages/QuotaTemplateDetailPage.js +47 -47
- package/dist/billing/modules/quota/pages/QuotaTemplateDetailPage.js.map +1 -1
- package/dist/billing/modules/quota/pages/QuotaTemplateEditPage.js +39 -39
- package/dist/billing/modules/quota/pages/QuotaTemplateEditPage.js.map +1 -1
- package/dist/billing/modules/quota/pages/QuotaTemplatesListPage.js +52 -52
- package/dist/billing/modules/quota/pages/QuotaTemplatesListPage.js.map +1 -1
- package/dist/billing/modules/subscriptions/components/ManageSeatsModal.js +23 -23
- package/dist/billing/modules/subscriptions/components/ManageSeatsModal.js.map +1 -1
- package/dist/billing/modules/subscriptions/pages/SubscriptionDetailPage.js +259 -246
- package/dist/billing/modules/subscriptions/pages/SubscriptionDetailPage.js.map +1 -1
- package/dist/billing/modules/subscriptions/pages/SubscriptionsListPage.js +88 -85
- package/dist/billing/modules/subscriptions/pages/SubscriptionsListPage.js.map +1 -1
- package/dist/billing/modules/subscriptions/pages/UpgradeSubscriptionPage.js +51 -51
- package/dist/billing/modules/subscriptions/pages/UpgradeSubscriptionPage.js.map +1 -1
- package/dist/billing/modules/usage/pages/UsagePage.js +206 -196
- package/dist/billing/modules/usage/pages/UsagePage.js.map +1 -1
- package/dist/billing/shared/components/ServerError.js +4 -4
- package/dist/billing/shared/components/ServerError.js.map +1 -1
- package/dist/billing/shared/components/StatCard.js +11 -33
- package/dist/billing/shared/components/StatCard.js.map +1 -1
- package/dist/billing/shared/ui/Card.js +15 -0
- package/dist/billing/shared/ui/Card.js.map +1 -0
- package/dist/billing/shared/ui/MetricCard.js +44 -0
- package/dist/billing/shared/ui/MetricCard.js.map +1 -0
- package/dist/billing/shared/ui/ProgressBar.js +30 -0
- package/dist/billing/shared/ui/ProgressBar.js.map +1 -0
- package/dist/billing/shared/ui/SectionHeader.js +2 -0
- package/dist/billing/shared/ui/StatusPill.js +28 -0
- package/dist/billing/shared/ui/StatusPill.js.map +1 -0
- package/dist/billing/shared/ui/index.js +5 -0
- package/dist/billing/shared/utils/tokens.js +13 -30
- package/dist/billing/shared/utils/tokens.js.map +1 -1
- package/package.json +1 -1
|
@@ -133,7 +133,7 @@ var v = [
|
|
|
133
133
|
children: [/* @__PURE__ */ h("button", {
|
|
134
134
|
type: "button",
|
|
135
135
|
onClick: () => x("/coupons"),
|
|
136
|
-
className: "p-2 rounded-lg hover:bg-
|
|
136
|
+
className: "p-2 rounded-lg hover:bg-bg-sunken text-text-muted hover:text-text-primary",
|
|
137
137
|
children: /* @__PURE__ */ h(s, { className: "size-5" })
|
|
138
138
|
}), /* @__PURE__ */ h(t, {
|
|
139
139
|
title: b("billing.coupons.createTitle", "Create Coupon"),
|
|
@@ -177,15 +177,15 @@ var v = [
|
|
|
177
177
|
className: "space-y-6",
|
|
178
178
|
children: [
|
|
179
179
|
/* @__PURE__ */ g("div", {
|
|
180
|
-
className: "bg-
|
|
180
|
+
className: "bg-bg-surface border border-border-subtle rounded-lg p-6 space-y-4",
|
|
181
181
|
children: [
|
|
182
182
|
/* @__PURE__ */ h("h3", {
|
|
183
|
-
className: "text-lg font-semibold text-
|
|
183
|
+
className: "text-lg font-semibold text-text-primary",
|
|
184
184
|
children: "Basic Information"
|
|
185
185
|
}),
|
|
186
186
|
/* @__PURE__ */ g("div", { children: [
|
|
187
187
|
/* @__PURE__ */ h("label", {
|
|
188
|
-
className: "block text-sm font-medium text-
|
|
188
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
189
189
|
children: "Coupon Code *"
|
|
190
190
|
}),
|
|
191
191
|
/* @__PURE__ */ h("input", {
|
|
@@ -193,20 +193,20 @@ var v = [
|
|
|
193
193
|
value: E.code,
|
|
194
194
|
onChange: (e) => P("code", e.target.value.toUpperCase()),
|
|
195
195
|
placeholder: "e.g., WELCOME20",
|
|
196
|
-
className: `w-full px-4 py-2 rounded-
|
|
196
|
+
className: `w-full px-4 py-2 rounded-input border ${O.code ? "border-destructive" : "border-border-subtle"} bg-bg-surface text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]`
|
|
197
197
|
}),
|
|
198
198
|
O.code && /* @__PURE__ */ h("p", {
|
|
199
|
-
className: "text-sm text-
|
|
199
|
+
className: "text-sm text-status-error-text mt-1",
|
|
200
200
|
children: O.code
|
|
201
201
|
}),
|
|
202
202
|
/* @__PURE__ */ h("p", {
|
|
203
|
-
className: "text-xs text-muted
|
|
203
|
+
className: "text-xs text-text-muted mt-1",
|
|
204
204
|
children: "Use uppercase letters, numbers, hyphens, and underscores"
|
|
205
205
|
})
|
|
206
206
|
] }),
|
|
207
207
|
/* @__PURE__ */ g("div", { children: [
|
|
208
208
|
/* @__PURE__ */ h("label", {
|
|
209
|
-
className: "block text-sm font-medium text-
|
|
209
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
210
210
|
children: "Display Name *"
|
|
211
211
|
}),
|
|
212
212
|
/* @__PURE__ */ h("input", {
|
|
@@ -214,41 +214,41 @@ var v = [
|
|
|
214
214
|
value: E.name,
|
|
215
215
|
onChange: (e) => P("name", e.target.value),
|
|
216
216
|
placeholder: "e.g., Welcome 20% Off",
|
|
217
|
-
className: `w-full px-4 py-2 rounded-
|
|
217
|
+
className: `w-full px-4 py-2 rounded-input border ${O.name ? "border-destructive" : "border-border-subtle"} bg-bg-surface text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]`
|
|
218
218
|
}),
|
|
219
219
|
O.name && /* @__PURE__ */ h("p", {
|
|
220
|
-
className: "text-sm text-
|
|
220
|
+
className: "text-sm text-status-error-text mt-1",
|
|
221
221
|
children: O.name
|
|
222
222
|
})
|
|
223
223
|
] }),
|
|
224
224
|
/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("label", {
|
|
225
|
-
className: "block text-sm font-medium text-
|
|
225
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
226
226
|
children: "Description"
|
|
227
227
|
}), /* @__PURE__ */ h("textarea", {
|
|
228
228
|
value: E.description,
|
|
229
229
|
onChange: (e) => P("description", e.target.value),
|
|
230
230
|
placeholder: "Optional description for internal use",
|
|
231
231
|
rows: 3,
|
|
232
|
-
className: "w-full px-4 py-2 rounded-
|
|
232
|
+
className: "w-full px-4 py-2 rounded-input border border-border-subtle bg-bg-surface text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
233
233
|
})] })
|
|
234
234
|
]
|
|
235
235
|
}),
|
|
236
236
|
/* @__PURE__ */ g("div", {
|
|
237
|
-
className: "bg-
|
|
237
|
+
className: "bg-bg-surface border border-border-subtle rounded-lg p-6 space-y-4",
|
|
238
238
|
children: [
|
|
239
239
|
/* @__PURE__ */ h("h3", {
|
|
240
|
-
className: "text-lg font-semibold text-
|
|
240
|
+
className: "text-lg font-semibold text-text-primary",
|
|
241
241
|
children: "Discount Configuration"
|
|
242
242
|
}),
|
|
243
243
|
/* @__PURE__ */ g("div", { children: [
|
|
244
244
|
/* @__PURE__ */ h("label", {
|
|
245
|
-
className: "block text-sm font-medium text-
|
|
245
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
246
246
|
children: "Coupon Currency *"
|
|
247
247
|
}),
|
|
248
248
|
/* @__PURE__ */ h("select", {
|
|
249
249
|
value: E.currency,
|
|
250
250
|
onChange: (e) => P("currency", e.target.value),
|
|
251
|
-
className: "w-full px-4 py-2 rounded-
|
|
251
|
+
className: "w-full px-4 py-2 rounded-input border border-border-subtle bg-bg-surface text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
|
|
252
252
|
children: v.map(({ code: e, symbol: t, name: n }) => /* @__PURE__ */ g("option", {
|
|
253
253
|
value: e,
|
|
254
254
|
children: [
|
|
@@ -261,12 +261,12 @@ var v = [
|
|
|
261
261
|
}, e))
|
|
262
262
|
}),
|
|
263
263
|
/* @__PURE__ */ h("p", {
|
|
264
|
-
className: "text-xs text-muted
|
|
264
|
+
className: "text-xs text-text-muted mt-1",
|
|
265
265
|
children: "Amounts below are in this currency. Users paying in a different currency (e.g. INR) will have the amounts automatically converted using live exchange rates at validation time."
|
|
266
266
|
})
|
|
267
267
|
] }),
|
|
268
268
|
/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("label", {
|
|
269
|
-
className: "block text-sm font-medium text-
|
|
269
|
+
className: "block text-sm font-medium text-text-primary mb-2",
|
|
270
270
|
children: "Discount Type *"
|
|
271
271
|
}), /* @__PURE__ */ h("div", {
|
|
272
272
|
className: "grid grid-cols-3 gap-3",
|
|
@@ -289,7 +289,7 @@ var v = [
|
|
|
289
289
|
].map(({ value: e, label: t, icon: n }) => /* @__PURE__ */ g("button", {
|
|
290
290
|
type: "button",
|
|
291
291
|
onClick: () => P("type", e),
|
|
292
|
-
className: `p-4 rounded-lg border-2 transition-colors ${E.type === e ? "border-primary bg-
|
|
292
|
+
className: `p-4 rounded-lg border-2 transition-colors ${E.type === e ? "border-action-primary-bg bg-[var(--color-accent-soft)]" : "border-border-subtle hover:border-action-primary-bg/50"}`,
|
|
293
293
|
children: [n ? /* @__PURE__ */ h(n, { className: "size-5 mx-auto mb-2" }) : /* @__PURE__ */ h("span", {
|
|
294
294
|
className: "block text-lg font-bold mb-2",
|
|
295
295
|
children: M
|
|
@@ -301,21 +301,21 @@ var v = [
|
|
|
301
301
|
})] }),
|
|
302
302
|
/* @__PURE__ */ g("div", { children: [
|
|
303
303
|
/* @__PURE__ */ h("label", {
|
|
304
|
-
className: "block text-sm font-medium text-
|
|
304
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
305
305
|
children: "Discount Value *"
|
|
306
306
|
}),
|
|
307
307
|
/* @__PURE__ */ h("div", {
|
|
308
308
|
className: "relative",
|
|
309
|
-
children: E.type === "PERCENTAGE" ? /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h(l, { className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted
|
|
309
|
+
children: E.type === "PERCENTAGE" ? /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h(l, { className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-text-muted" }), /* @__PURE__ */ h("input", {
|
|
310
310
|
type: "number",
|
|
311
311
|
value: E.value,
|
|
312
312
|
onChange: (e) => P("value", parseFloat(e.target.value)),
|
|
313
313
|
min: "0",
|
|
314
314
|
max: "100",
|
|
315
315
|
step: "0.01",
|
|
316
|
-
className: `w-full pl-10 pr-4 py-2 rounded-
|
|
316
|
+
className: `w-full pl-10 pr-4 py-2 rounded-input border ${O.value ? "border-destructive" : "border-border-subtle"} bg-bg-surface text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]`
|
|
317
317
|
})] }) : /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h("span", {
|
|
318
|
-
className: "absolute left-3 top-1/2 -translate-y-1/2 text-sm text-muted
|
|
318
|
+
className: "absolute left-3 top-1/2 -translate-y-1/2 text-sm text-text-muted font-medium",
|
|
319
319
|
children: M
|
|
320
320
|
}), /* @__PURE__ */ h("input", {
|
|
321
321
|
type: "number",
|
|
@@ -323,17 +323,17 @@ var v = [
|
|
|
323
323
|
onChange: (e) => P("value", parseFloat(e.target.value)),
|
|
324
324
|
min: "0",
|
|
325
325
|
step: "0.01",
|
|
326
|
-
className: `w-full pl-10 pr-4 py-2 rounded-
|
|
326
|
+
className: `w-full pl-10 pr-4 py-2 rounded-input border ${O.value ? "border-destructive" : "border-border-subtle"} bg-bg-surface text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]`
|
|
327
327
|
})] })
|
|
328
328
|
}),
|
|
329
329
|
O.value && /* @__PURE__ */ h("p", {
|
|
330
|
-
className: "text-sm text-
|
|
330
|
+
className: "text-sm text-status-error-text mt-1",
|
|
331
331
|
children: O.value
|
|
332
332
|
})
|
|
333
333
|
] }),
|
|
334
334
|
/* @__PURE__ */ g("div", { children: [
|
|
335
335
|
/* @__PURE__ */ g("label", {
|
|
336
|
-
className: "block text-sm font-medium text-
|
|
336
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
337
337
|
children: [
|
|
338
338
|
"Minimum Purchase Amount (",
|
|
339
339
|
E.currency,
|
|
@@ -343,7 +343,7 @@ var v = [
|
|
|
343
343
|
/* @__PURE__ */ g("div", {
|
|
344
344
|
className: "relative",
|
|
345
345
|
children: [/* @__PURE__ */ h("span", {
|
|
346
|
-
className: "absolute left-3 top-1/2 -translate-y-1/2 text-sm text-muted
|
|
346
|
+
className: "absolute left-3 top-1/2 -translate-y-1/2 text-sm text-text-muted font-medium",
|
|
347
347
|
children: M
|
|
348
348
|
}), /* @__PURE__ */ h("input", {
|
|
349
349
|
type: "number",
|
|
@@ -352,11 +352,11 @@ var v = [
|
|
|
352
352
|
min: "0",
|
|
353
353
|
step: "0.01",
|
|
354
354
|
placeholder: "No minimum",
|
|
355
|
-
className: "w-full pl-10 pr-4 py-2 rounded-
|
|
355
|
+
className: "w-full pl-10 pr-4 py-2 rounded-input border border-border-subtle bg-bg-surface text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
356
356
|
})]
|
|
357
357
|
}),
|
|
358
358
|
/* @__PURE__ */ g("p", {
|
|
359
|
-
className: "text-xs text-muted
|
|
359
|
+
className: "text-xs text-text-muted mt-1",
|
|
360
360
|
children: [
|
|
361
361
|
"Order must be at least this amount in ",
|
|
362
362
|
E.currency,
|
|
@@ -366,7 +366,7 @@ var v = [
|
|
|
366
366
|
] }),
|
|
367
367
|
E.type === "PERCENTAGE" && /* @__PURE__ */ g("div", { children: [
|
|
368
368
|
/* @__PURE__ */ g("label", {
|
|
369
|
-
className: "block text-sm font-medium text-
|
|
369
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
370
370
|
children: [
|
|
371
371
|
"Maximum Discount Amount (",
|
|
372
372
|
E.currency,
|
|
@@ -376,7 +376,7 @@ var v = [
|
|
|
376
376
|
/* @__PURE__ */ g("div", {
|
|
377
377
|
className: "relative",
|
|
378
378
|
children: [/* @__PURE__ */ h("span", {
|
|
379
|
-
className: "absolute left-3 top-1/2 -translate-y-1/2 text-sm text-muted
|
|
379
|
+
className: "absolute left-3 top-1/2 -translate-y-1/2 text-sm text-text-muted font-medium",
|
|
380
380
|
children: M
|
|
381
381
|
}), /* @__PURE__ */ h("input", {
|
|
382
382
|
type: "number",
|
|
@@ -385,11 +385,11 @@ var v = [
|
|
|
385
385
|
min: "0",
|
|
386
386
|
step: "0.01",
|
|
387
387
|
placeholder: "No maximum",
|
|
388
|
-
className: "w-full pl-10 pr-4 py-2 rounded-
|
|
388
|
+
className: "w-full pl-10 pr-4 py-2 rounded-input border border-border-subtle bg-bg-surface text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
389
389
|
})]
|
|
390
390
|
}),
|
|
391
391
|
/* @__PURE__ */ g("p", {
|
|
392
|
-
className: "text-xs text-muted
|
|
392
|
+
className: "text-xs text-text-muted mt-1",
|
|
393
393
|
children: [
|
|
394
394
|
"Cap the discount in ",
|
|
395
395
|
E.currency,
|
|
@@ -400,15 +400,15 @@ var v = [
|
|
|
400
400
|
]
|
|
401
401
|
}),
|
|
402
402
|
/* @__PURE__ */ g("div", {
|
|
403
|
-
className: "bg-
|
|
403
|
+
className: "bg-bg-surface border border-border-subtle rounded-lg p-6 space-y-4",
|
|
404
404
|
children: [
|
|
405
405
|
/* @__PURE__ */ h("h3", {
|
|
406
|
-
className: "text-lg font-semibold text-
|
|
406
|
+
className: "text-lg font-semibold text-text-primary",
|
|
407
407
|
children: "Usage Limits"
|
|
408
408
|
}),
|
|
409
409
|
/* @__PURE__ */ g("div", { children: [
|
|
410
410
|
/* @__PURE__ */ h("label", {
|
|
411
|
-
className: "block text-sm font-medium text-
|
|
411
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
412
412
|
children: "Total Usage Limit"
|
|
413
413
|
}),
|
|
414
414
|
/* @__PURE__ */ h("input", {
|
|
@@ -417,16 +417,16 @@ var v = [
|
|
|
417
417
|
onChange: (e) => P("maxTotalUses", e.target.value ? parseInt(e.target.value) : null),
|
|
418
418
|
min: "1",
|
|
419
419
|
placeholder: "Unlimited",
|
|
420
|
-
className: "w-full px-4 py-2 rounded-
|
|
420
|
+
className: "w-full px-4 py-2 rounded-input border border-border-subtle bg-bg-surface text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
421
421
|
}),
|
|
422
422
|
/* @__PURE__ */ h("p", {
|
|
423
|
-
className: "text-xs text-muted
|
|
423
|
+
className: "text-xs text-text-muted mt-1",
|
|
424
424
|
children: "Maximum number of times this coupon can be used across all users"
|
|
425
425
|
})
|
|
426
426
|
] }),
|
|
427
427
|
/* @__PURE__ */ g("div", { children: [
|
|
428
428
|
/* @__PURE__ */ h("label", {
|
|
429
|
-
className: "block text-sm font-medium text-
|
|
429
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
430
430
|
children: "Per-User Limit *"
|
|
431
431
|
}),
|
|
432
432
|
/* @__PURE__ */ h("input", {
|
|
@@ -434,73 +434,73 @@ var v = [
|
|
|
434
434
|
value: E.maxUsesPerUser,
|
|
435
435
|
onChange: (e) => P("maxUsesPerUser", parseInt(e.target.value)),
|
|
436
436
|
min: "1",
|
|
437
|
-
className: "w-full px-4 py-2 rounded-
|
|
437
|
+
className: "w-full px-4 py-2 rounded-input border border-border-subtle bg-bg-surface text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
438
438
|
}),
|
|
439
439
|
/* @__PURE__ */ h("p", {
|
|
440
|
-
className: "text-xs text-muted
|
|
440
|
+
className: "text-xs text-text-muted mt-1",
|
|
441
441
|
children: "Maximum times a single user can use this coupon"
|
|
442
442
|
})
|
|
443
443
|
] })
|
|
444
444
|
]
|
|
445
445
|
}),
|
|
446
446
|
/* @__PURE__ */ g("div", {
|
|
447
|
-
className: "bg-
|
|
447
|
+
className: "bg-bg-surface border border-border-subtle rounded-lg p-6 space-y-4",
|
|
448
448
|
children: [/* @__PURE__ */ h("h3", {
|
|
449
|
-
className: "text-lg font-semibold text-
|
|
449
|
+
className: "text-lg font-semibold text-text-primary",
|
|
450
450
|
children: "Validity Period"
|
|
451
451
|
}), /* @__PURE__ */ g("div", {
|
|
452
452
|
className: "grid grid-cols-1 md:grid-cols-2 gap-4",
|
|
453
453
|
children: [/* @__PURE__ */ g("div", { children: [
|
|
454
454
|
/* @__PURE__ */ h("label", {
|
|
455
|
-
className: "block text-sm font-medium text-
|
|
455
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
456
456
|
children: "Start Date *"
|
|
457
457
|
}),
|
|
458
458
|
/* @__PURE__ */ h("input", {
|
|
459
459
|
type: "date",
|
|
460
460
|
value: E.validFrom,
|
|
461
461
|
onChange: (e) => P("validFrom", e.target.value),
|
|
462
|
-
className: `w-full px-4 py-2 rounded-
|
|
462
|
+
className: `w-full px-4 py-2 rounded-input border ${O.validFrom ? "border-destructive" : "border-border-subtle"} bg-bg-surface text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]`
|
|
463
463
|
}),
|
|
464
464
|
O.validFrom && /* @__PURE__ */ h("p", {
|
|
465
|
-
className: "text-sm text-
|
|
465
|
+
className: "text-sm text-status-error-text mt-1",
|
|
466
466
|
children: O.validFrom
|
|
467
467
|
})
|
|
468
468
|
] }), /* @__PURE__ */ g("div", { children: [
|
|
469
469
|
/* @__PURE__ */ h("label", {
|
|
470
|
-
className: "block text-sm font-medium text-
|
|
470
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
471
471
|
children: "End Date"
|
|
472
472
|
}),
|
|
473
473
|
/* @__PURE__ */ h("input", {
|
|
474
474
|
type: "date",
|
|
475
475
|
value: E.validUntil,
|
|
476
476
|
onChange: (e) => P("validUntil", e.target.value),
|
|
477
|
-
className: `w-full px-4 py-2 rounded-
|
|
477
|
+
className: `w-full px-4 py-2 rounded-input border ${O.validUntil ? "border-destructive" : "border-border-subtle"} bg-bg-surface text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]`
|
|
478
478
|
}),
|
|
479
479
|
O.validUntil && /* @__PURE__ */ h("p", {
|
|
480
|
-
className: "text-sm text-
|
|
480
|
+
className: "text-sm text-status-error-text mt-1",
|
|
481
481
|
children: O.validUntil
|
|
482
482
|
}),
|
|
483
483
|
/* @__PURE__ */ h("p", {
|
|
484
|
-
className: "text-xs text-muted
|
|
484
|
+
className: "text-xs text-text-muted mt-1",
|
|
485
485
|
children: "Leave empty for no expiry"
|
|
486
486
|
})
|
|
487
487
|
] })]
|
|
488
488
|
})]
|
|
489
489
|
}),
|
|
490
490
|
/* @__PURE__ */ g("div", {
|
|
491
|
-
className: "bg-
|
|
491
|
+
className: "bg-bg-surface border border-border-subtle rounded-lg p-6 space-y-4",
|
|
492
492
|
children: [
|
|
493
493
|
/* @__PURE__ */ h("h3", {
|
|
494
|
-
className: "text-lg font-semibold text-
|
|
494
|
+
className: "text-lg font-semibold text-text-primary",
|
|
495
495
|
children: "Coupon Scope"
|
|
496
496
|
}),
|
|
497
497
|
/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("label", {
|
|
498
|
-
className: "block text-sm font-medium text-
|
|
498
|
+
className: "block text-sm font-medium text-text-primary mb-2",
|
|
499
499
|
children: "Who can use this coupon? *"
|
|
500
500
|
}), /* @__PURE__ */ g("select", {
|
|
501
501
|
value: E.scope,
|
|
502
502
|
onChange: (e) => P("scope", e.target.value),
|
|
503
|
-
className: "w-full px-4 py-2 rounded-
|
|
503
|
+
className: "w-full px-4 py-2 rounded-input border border-border-subtle bg-bg-surface text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]",
|
|
504
504
|
children: [
|
|
505
505
|
/* @__PURE__ */ h("option", {
|
|
506
506
|
value: "GENERIC",
|
|
@@ -521,34 +521,34 @@ var v = [
|
|
|
521
521
|
]
|
|
522
522
|
})] }),
|
|
523
523
|
E.scope === "CAMPAIGN" && /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("label", {
|
|
524
|
-
className: "block text-sm font-medium text-
|
|
524
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
525
525
|
children: "Campaign Name"
|
|
526
526
|
}), /* @__PURE__ */ h("input", {
|
|
527
527
|
type: "text",
|
|
528
528
|
value: E.campaignName,
|
|
529
529
|
onChange: (e) => P("campaignName", e.target.value),
|
|
530
530
|
placeholder: "e.g., Summer Sale 2024",
|
|
531
|
-
className: "w-full px-4 py-2 rounded-
|
|
531
|
+
className: "w-full px-4 py-2 rounded-input border border-border-subtle bg-bg-surface text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
|
|
532
532
|
})] }),
|
|
533
533
|
E.scope === "USER_SPECIFIC" && /* @__PURE__ */ g("div", { children: [
|
|
534
534
|
/* @__PURE__ */ h("label", {
|
|
535
|
-
className: "block text-sm font-medium text-
|
|
535
|
+
className: "block text-sm font-medium text-text-primary mb-1",
|
|
536
536
|
children: /* @__PURE__ */ g("span", {
|
|
537
537
|
className: "flex items-center gap-1.5",
|
|
538
538
|
children: [/* @__PURE__ */ h(f, { className: "size-4" }), "Restricted Users *"]
|
|
539
539
|
})
|
|
540
540
|
}),
|
|
541
541
|
/* @__PURE__ */ g("div", {
|
|
542
|
-
className: `min-h-[42px] flex flex-wrap gap-2 px-3 py-2 rounded-lg border ${O.restrictedToUserIds ? "border-destructive" : "border-border"} bg-
|
|
542
|
+
className: `min-h-[42px] flex flex-wrap gap-2 px-3 py-2 rounded-lg border ${O.restrictedToUserIds ? "border-destructive" : "border-border-subtle"} bg-bg-surface cursor-text`,
|
|
543
543
|
onClick: () => T.current?.focus(),
|
|
544
544
|
children: [E.restrictedToUserIds.map((e) => /* @__PURE__ */ g("span", {
|
|
545
|
-
className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-md bg-
|
|
545
|
+
className: "inline-flex items-center gap-1 px-2 py-0.5 rounded-md bg-[var(--color-accent-soft)] text-text-link text-sm font-medium",
|
|
546
546
|
children: [e, /* @__PURE__ */ h("button", {
|
|
547
547
|
type: "button",
|
|
548
548
|
onClick: (t) => {
|
|
549
549
|
t.stopPropagation(), L(e);
|
|
550
550
|
},
|
|
551
|
-
className: "hover:text-
|
|
551
|
+
className: "hover:text-status-error-text",
|
|
552
552
|
children: /* @__PURE__ */ h(p, { className: "size-3" })
|
|
553
553
|
})]
|
|
554
554
|
}, e)), /* @__PURE__ */ h("input", {
|
|
@@ -561,15 +561,15 @@ var v = [
|
|
|
561
561
|
},
|
|
562
562
|
onBlur: () => I(C),
|
|
563
563
|
placeholder: E.restrictedToUserIds.length === 0 ? "Enter user email or ID, press Enter to add" : "Add another…",
|
|
564
|
-
className: "flex-1 min-w-[200px] bg-transparent text-
|
|
564
|
+
className: "flex-1 min-w-[200px] bg-transparent text-text-primary placeholder:text-text-muted text-sm focus:outline-none"
|
|
565
565
|
})]
|
|
566
566
|
}),
|
|
567
567
|
O.restrictedToUserIds && /* @__PURE__ */ h("p", {
|
|
568
|
-
className: "text-sm text-
|
|
568
|
+
className: "text-sm text-status-error-text mt-1",
|
|
569
569
|
children: O.restrictedToUserIds
|
|
570
570
|
}),
|
|
571
571
|
/* @__PURE__ */ h("p", {
|
|
572
|
-
className: "text-xs text-muted
|
|
572
|
+
className: "text-xs text-text-muted mt-1",
|
|
573
573
|
children: "Type an email or user ID and press Enter or comma to add. Only these users can redeem this coupon."
|
|
574
574
|
})
|
|
575
575
|
] })
|
|
@@ -580,13 +580,13 @@ var v = [
|
|
|
580
580
|
children: [/* @__PURE__ */ h("button", {
|
|
581
581
|
type: "button",
|
|
582
582
|
onClick: () => x("/coupons"),
|
|
583
|
-
className: "px-6 py-3 rounded-lg border border-border text-
|
|
583
|
+
className: "px-6 py-3 rounded-lg border border-border-subtle text-text-primary hover:bg-bg-sunken",
|
|
584
584
|
children: "Cancel"
|
|
585
585
|
}), /* @__PURE__ */ h("button", {
|
|
586
586
|
type: "submit",
|
|
587
587
|
disabled: A,
|
|
588
|
-
className: "px-6 py-3 rounded-lg bg-primary text-primary-
|
|
589
|
-
children: A ? /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h("div", { className: "size-4 border-2 border-primary-
|
|
588
|
+
className: "px-6 py-3 rounded-lg bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bgHover flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
589
|
+
children: A ? /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h("div", { className: "size-4 border-2 border-action-primary-text border-t-transparent rounded-full animate-spin" }), "Creating…"] }) : /* @__PURE__ */ g(m, { children: [/* @__PURE__ */ h(u, { className: "size-4" }), "Create Coupon"] })
|
|
590
590
|
})]
|
|
591
591
|
})
|
|
592
592
|
]
|