@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
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { useBilling as e } from "../../../providers/BillingProvider.js";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
2
|
+
import { StatusPill as t } from "../../../shared/ui/StatusPill.js";
|
|
3
|
+
import "../../../shared/ui/index.js";
|
|
4
|
+
import { useBillingAccountSelection as n } from "../../../hooks/useBillingAccountSelection.js";
|
|
5
|
+
import { formatCurrency as r, formatDate as i, formatPlanDuration as a, formatSubscriptionStatus as o } from "../../../shared/utils/format.js";
|
|
6
|
+
import { getSubscriptionStatusColor as s } from "../../../shared/utils/status.js";
|
|
5
7
|
import { useBillingPermissions as c } from "../../../hooks/useBillingPermissions.js";
|
|
6
8
|
import { useBillingNavigate as l } from "../../../hooks/useBillingNavigate.js";
|
|
7
9
|
import { withBillingAccountId as u } from "../../../shared/utils/navigation.js";
|
|
@@ -12,10 +14,10 @@ import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
|
12
14
|
import { useI18n as y } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
13
15
|
//#region src/billing/modules/subscriptions/pages/SubscriptionsListPage.tsx
|
|
14
16
|
var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
15
|
-
let { t
|
|
16
|
-
let r =
|
|
17
|
-
return r === e ?
|
|
18
|
-
}, i = l(), a = c(), { orgId: o } = e(), { billingAccounts: s, isLoading: S } = d(), { selectedAccountId: w, setSelectedAccountId: T } =
|
|
17
|
+
let { t } = y(), r = (e, n) => {
|
|
18
|
+
let r = t(e);
|
|
19
|
+
return r === e ? n : r;
|
|
20
|
+
}, i = l(), a = c(), { orgId: o } = e(), { billingAccounts: s, isLoading: S } = d(), { selectedAccountId: w, setSelectedAccountId: T } = n({
|
|
19
21
|
orgId: o,
|
|
20
22
|
billingAccounts: s,
|
|
21
23
|
syncFromUrl: !0,
|
|
@@ -31,19 +33,19 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
31
33
|
}, q = L.filter((e) => O === "all" ? !0 : O === "inactive" ? b.includes(e.status) : e.status === O), J = S || V;
|
|
32
34
|
return a.canViewSubscriptions ? J && !W ? /* @__PURE__ */ v("div", {
|
|
33
35
|
className: "space-y-6 p-6",
|
|
34
|
-
children: [/* @__PURE__ */ _("div", { className: "h-8 w-48 bg-
|
|
36
|
+
children: [/* @__PURE__ */ _("div", { className: "h-8 w-48 bg-bg-sunken animate-pulse rounded" }), /* @__PURE__ */ _("div", {
|
|
35
37
|
className: "space-y-4",
|
|
36
38
|
children: [
|
|
37
39
|
1,
|
|
38
40
|
2,
|
|
39
41
|
3
|
|
40
42
|
].map((e) => /* @__PURE__ */ _("div", {
|
|
41
|
-
className: "border border-border rounded-lg p-6",
|
|
43
|
+
className: "border border-border-subtle rounded-lg p-6",
|
|
42
44
|
children: /* @__PURE__ */ v("div", {
|
|
43
45
|
className: "flex items-center gap-4",
|
|
44
|
-
children: [/* @__PURE__ */ _("div", { className: "size-12 bg-
|
|
46
|
+
children: [/* @__PURE__ */ _("div", { className: "size-12 bg-bg-sunken animate-pulse rounded" }), /* @__PURE__ */ v("div", {
|
|
45
47
|
className: "flex-1 space-y-2",
|
|
46
|
-
children: [/* @__PURE__ */ _("div", { className: "h-5 w-32 bg-
|
|
48
|
+
children: [/* @__PURE__ */ _("div", { className: "h-5 w-32 bg-bg-sunken animate-pulse rounded" }), /* @__PURE__ */ _("div", { className: "h-4 w-48 bg-bg-sunken animate-pulse rounded" })]
|
|
47
49
|
})]
|
|
48
50
|
})
|
|
49
51
|
}, e))
|
|
@@ -54,9 +56,9 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
54
56
|
className: "text-center space-y-4",
|
|
55
57
|
children: [
|
|
56
58
|
/* @__PURE__ */ _("div", {
|
|
57
|
-
className: "size-12 mx-auto rounded-full bg-
|
|
59
|
+
className: "size-12 mx-auto rounded-full bg-status-error-bg-subtle flex items-center justify-center",
|
|
58
60
|
children: /* @__PURE__ */ _("svg", {
|
|
59
|
-
className: "size-6 text-
|
|
61
|
+
className: "size-6 text-status-error-text",
|
|
60
62
|
fill: "none",
|
|
61
63
|
viewBox: "0 0 24 24",
|
|
62
64
|
stroke: "currentColor",
|
|
@@ -69,36 +71,36 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
69
71
|
})
|
|
70
72
|
}),
|
|
71
73
|
/* @__PURE__ */ _("h2", {
|
|
72
|
-
className: "text-lg font-semibold text-
|
|
74
|
+
className: "text-lg font-semibold text-text-primary",
|
|
73
75
|
children: "Failed to load subscriptions"
|
|
74
76
|
}),
|
|
75
77
|
/* @__PURE__ */ _("p", {
|
|
76
|
-
className: "text-sm text-
|
|
78
|
+
className: "text-sm text-text-secondary",
|
|
77
79
|
children: H.message
|
|
78
80
|
}),
|
|
79
81
|
/* @__PURE__ */ _("button", {
|
|
80
82
|
type: "button",
|
|
81
83
|
onClick: () => U(),
|
|
82
|
-
className: "px-4 py-2 text-sm font-medium bg-primary text-primary-
|
|
84
|
+
className: "px-4 py-2 text-sm font-medium bg-action-primary-bg text-action-primary-text rounded-button hover:bg-action-primary-bgHover transition-colors",
|
|
83
85
|
children: "Try Again"
|
|
84
86
|
})
|
|
85
87
|
]
|
|
86
88
|
})
|
|
87
89
|
}) : /* @__PURE__ */ v("div", {
|
|
88
|
-
className: "space-y-6
|
|
90
|
+
className: "space-y-6 px-6 lg:px-8 py-6",
|
|
89
91
|
children: [
|
|
90
92
|
/* @__PURE__ */ v("div", {
|
|
91
93
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
92
94
|
children: [/* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("h1", {
|
|
93
|
-
className: "text-2xl font-
|
|
95
|
+
className: "text-2xl md:text-3xl font-semibold tracking-tight text-text-primary",
|
|
94
96
|
children: r("billing.subscriptions.title", "Subscriptions")
|
|
95
97
|
}), /* @__PURE__ */ _("p", {
|
|
96
|
-
className: "text-sm text-
|
|
98
|
+
className: "text-sm text-text-secondary mt-1",
|
|
97
99
|
children: r("billing.subscriptions.subtitle", "Manage your active and past subscriptions")
|
|
98
100
|
})] }), a.canCreateSubscription && /* @__PURE__ */ v("button", {
|
|
99
101
|
type: "button",
|
|
100
102
|
onClick: () => i("/plans"),
|
|
101
|
-
className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium bg-primary text-primary-
|
|
103
|
+
className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium bg-action-primary-bg text-action-primary-text rounded-button hover:bg-action-primary-bgHover transition-colors duration-200",
|
|
102
104
|
children: [/* @__PURE__ */ _("svg", {
|
|
103
105
|
className: "size-4",
|
|
104
106
|
fill: "none",
|
|
@@ -118,13 +120,13 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
118
120
|
children: [/* @__PURE__ */ v("button", {
|
|
119
121
|
type: "button",
|
|
120
122
|
onClick: () => D(!E),
|
|
121
|
-
className: "w-full sm:w-auto flex items-center justify-between gap-3 px-4 py-3 border border-border rounded-
|
|
123
|
+
className: "w-full sm:w-auto flex items-center justify-between gap-3 px-4 py-3 border border-border-subtle rounded-card bg-bg-surface hover:bg-bg-sunken hover:border-border-strong transition-all duration-200",
|
|
122
124
|
children: [/* @__PURE__ */ v("div", {
|
|
123
125
|
className: "flex items-center gap-3",
|
|
124
126
|
children: [/* @__PURE__ */ _("div", {
|
|
125
|
-
className: "size-
|
|
127
|
+
className: "size-9 rounded-lg bg-[var(--color-accent-soft)] flex items-center justify-center",
|
|
126
128
|
children: /* @__PURE__ */ _("svg", {
|
|
127
|
-
className: "size-4 text-
|
|
129
|
+
className: "size-4 text-text-link",
|
|
128
130
|
fill: "none",
|
|
129
131
|
viewBox: "0 0 24 24",
|
|
130
132
|
stroke: "currentColor",
|
|
@@ -138,15 +140,15 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
138
140
|
}), /* @__PURE__ */ v("div", {
|
|
139
141
|
className: "text-left",
|
|
140
142
|
children: [/* @__PURE__ */ _("p", {
|
|
141
|
-
className: "text-sm font-medium text-
|
|
143
|
+
className: "text-sm font-medium text-text-primary",
|
|
142
144
|
children: W?.name || "Select Account"
|
|
143
145
|
}), /* @__PURE__ */ _("p", {
|
|
144
|
-
className: "text-xs text-
|
|
146
|
+
className: "text-xs text-text-secondary",
|
|
145
147
|
children: W?.email
|
|
146
148
|
})]
|
|
147
149
|
})]
|
|
148
150
|
}), /* @__PURE__ */ _("svg", {
|
|
149
|
-
className: `size-4 text-
|
|
151
|
+
className: `size-4 text-text-secondary transition-transform ${E ? "rotate-180" : ""}`,
|
|
150
152
|
fill: "none",
|
|
151
153
|
viewBox: "0 0 24 24",
|
|
152
154
|
stroke: "currentColor",
|
|
@@ -161,17 +163,17 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
161
163
|
className: "fixed inset-0 z-10",
|
|
162
164
|
onClick: () => D(!1)
|
|
163
165
|
}), /* @__PURE__ */ _("div", {
|
|
164
|
-
className: "absolute top-full left-0 right-0 sm:right-auto mt-1 w-full sm:w-80 bg-
|
|
166
|
+
className: "absolute top-full left-0 right-0 sm:right-auto mt-1 w-full sm:w-80 bg-bg-elevated border border-border-subtle rounded-card shadow-elevation-3 z-20 py-1 max-h-60 overflow-y-auto",
|
|
165
167
|
children: s.map((e) => /* @__PURE__ */ v("button", {
|
|
166
168
|
type: "button",
|
|
167
169
|
onClick: () => G(e),
|
|
168
|
-
className: "w-full flex items-center justify-between gap-3 px-4 py-3 hover:bg-
|
|
170
|
+
className: "w-full flex items-center justify-between gap-3 px-4 py-3 hover:bg-bg-sunken transition-colors",
|
|
169
171
|
children: [/* @__PURE__ */ v("div", {
|
|
170
172
|
className: "flex items-center gap-3 min-w-0",
|
|
171
173
|
children: [/* @__PURE__ */ _("div", {
|
|
172
|
-
className: "size-
|
|
174
|
+
className: "size-9 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0",
|
|
173
175
|
children: /* @__PURE__ */ _("svg", {
|
|
174
|
-
className: "size-4 text-
|
|
176
|
+
className: "size-4 text-text-secondary",
|
|
175
177
|
fill: "none",
|
|
176
178
|
viewBox: "0 0 24 24",
|
|
177
179
|
stroke: "currentColor",
|
|
@@ -185,15 +187,15 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
185
187
|
}), /* @__PURE__ */ v("div", {
|
|
186
188
|
className: "text-left min-w-0",
|
|
187
189
|
children: [/* @__PURE__ */ _("p", {
|
|
188
|
-
className: "text-sm font-medium text-
|
|
190
|
+
className: "text-sm font-medium text-text-primary truncate",
|
|
189
191
|
children: e.name
|
|
190
192
|
}), /* @__PURE__ */ _("p", {
|
|
191
|
-
className: "text-xs text-
|
|
193
|
+
className: "text-xs text-text-secondary truncate",
|
|
192
194
|
children: e.email
|
|
193
195
|
})]
|
|
194
196
|
})]
|
|
195
197
|
}), W?.id === e.id && /* @__PURE__ */ _("svg", {
|
|
196
|
-
className: "size-4 text-
|
|
198
|
+
className: "size-4 text-text-link flex-shrink-0",
|
|
197
199
|
fill: "none",
|
|
198
200
|
viewBox: "0 0 24 24",
|
|
199
201
|
stroke: "currentColor",
|
|
@@ -211,42 +213,42 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
211
213
|
className: "grid grid-cols-1 sm:grid-cols-3 gap-4",
|
|
212
214
|
children: [
|
|
213
215
|
/* @__PURE__ */ v("div", {
|
|
214
|
-
className: "border border-border rounded-
|
|
216
|
+
className: "border border-border-subtle rounded-card bg-bg-surface shadow-elevation-1 p-5",
|
|
215
217
|
children: [/* @__PURE__ */ _("p", {
|
|
216
|
-
className: "text-sm text-
|
|
218
|
+
className: "text-sm text-text-secondary",
|
|
217
219
|
children: "Account"
|
|
218
220
|
}), /* @__PURE__ */ _("p", {
|
|
219
|
-
className: "text-lg font-semibold text-
|
|
221
|
+
className: "text-lg font-semibold text-text-primary mt-1",
|
|
220
222
|
children: W.name
|
|
221
223
|
})]
|
|
222
224
|
}),
|
|
223
225
|
/* @__PURE__ */ v("div", {
|
|
224
|
-
className: "border border-border rounded-
|
|
226
|
+
className: "border border-border-subtle rounded-card bg-bg-surface shadow-elevation-1 p-5",
|
|
225
227
|
children: [/* @__PURE__ */ _("p", {
|
|
226
|
-
className: "text-sm text-
|
|
228
|
+
className: "text-sm text-text-secondary",
|
|
227
229
|
children: "Active Subscriptions"
|
|
228
230
|
}), /* @__PURE__ */ _("p", {
|
|
229
|
-
className: "text-lg font-semibold text-status-success-text mt-1",
|
|
231
|
+
className: "text-lg font-semibold tabular-nums text-status-success-text mt-1",
|
|
230
232
|
children: R.length
|
|
231
233
|
})]
|
|
232
234
|
}),
|
|
233
235
|
/* @__PURE__ */ v("div", {
|
|
234
|
-
className: "border border-border rounded-
|
|
236
|
+
className: "border border-border-subtle rounded-card bg-bg-surface shadow-elevation-1 p-5",
|
|
235
237
|
children: [/* @__PURE__ */ _("p", {
|
|
236
|
-
className: "text-sm text-
|
|
238
|
+
className: "text-sm text-text-secondary",
|
|
237
239
|
children: "Credit Balance"
|
|
238
240
|
}), /* @__PURE__ */ v("p", {
|
|
239
|
-
className: "text-lg font-semibold text-
|
|
241
|
+
className: "text-lg font-semibold tabular-nums text-text-primary mt-1",
|
|
240
242
|
children: [(W.creditAmount || 0).toLocaleString(), " Credits"]
|
|
241
243
|
})]
|
|
242
244
|
})
|
|
243
245
|
]
|
|
244
246
|
}),
|
|
245
247
|
/* @__PURE__ */ v("div", {
|
|
246
|
-
className: "flex flex-col sm:flex-row flex-wrap items-stretch sm:items-center gap-3 sm:gap-4 pb-4 border-b border-border",
|
|
248
|
+
className: "flex flex-col sm:flex-row flex-wrap items-stretch sm:items-center gap-3 sm:gap-4 pb-4 border-b border-border-subtle",
|
|
247
249
|
children: [
|
|
248
250
|
/* @__PURE__ */ _("div", {
|
|
249
|
-
className: "inline-flex rounded-lg border border-border p-1 bg-
|
|
251
|
+
className: "inline-flex rounded-lg border border-border-subtle p-1 bg-bg-sunken flex-wrap",
|
|
250
252
|
children: [
|
|
251
253
|
"all",
|
|
252
254
|
"active",
|
|
@@ -255,14 +257,14 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
255
257
|
].map((e) => /* @__PURE__ */ _("button", {
|
|
256
258
|
type: "button",
|
|
257
259
|
onClick: () => k(e),
|
|
258
|
-
className: `px-3 py-1.5 text-sm font-medium rounded-
|
|
260
|
+
className: `px-3 py-1.5 text-sm font-medium rounded-button transition-colors capitalize ${O === e ? "bg-bg-surface text-text-primary shadow-sm" : "text-text-secondary hover:text-text-primary"}`,
|
|
259
261
|
children: e === "inactive" ? "Inactive" : e
|
|
260
262
|
}, e))
|
|
261
263
|
}),
|
|
262
264
|
/* @__PURE__ */ v("div", {
|
|
263
265
|
className: "relative flex-1 min-w-0 w-full sm:max-w-md",
|
|
264
266
|
children: [/* @__PURE__ */ _("svg", {
|
|
265
|
-
className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-
|
|
267
|
+
className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-text-secondary",
|
|
266
268
|
fill: "none",
|
|
267
269
|
viewBox: "0 0 24 24",
|
|
268
270
|
stroke: "currentColor",
|
|
@@ -277,11 +279,11 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
277
279
|
placeholder: r("billing.subscriptions.searchPlaceholder", "Search subscriptions..."),
|
|
278
280
|
value: A,
|
|
279
281
|
onChange: (e) => j(e.target.value),
|
|
280
|
-
className: "w-full pl-[3.25rem] pr-4 py-2 text-sm border border-border rounded-
|
|
282
|
+
className: "w-full pl-[3.25rem] pr-4 py-2 text-sm border border-border-subtle rounded-button bg-bg-surface text-text-primary placeholder:text-text-placeholder focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)] focus:border-transparent"
|
|
281
283
|
})]
|
|
282
284
|
}),
|
|
283
285
|
/* @__PURE__ */ v("div", {
|
|
284
|
-
className: "text-sm text-
|
|
286
|
+
className: "text-sm text-text-secondary",
|
|
285
287
|
children: [
|
|
286
288
|
z,
|
|
287
289
|
" subscription",
|
|
@@ -292,12 +294,12 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
292
294
|
]
|
|
293
295
|
}),
|
|
294
296
|
q.length === 0 ? /* @__PURE__ */ v("div", {
|
|
295
|
-
className: "flex flex-col items-center justify-center py-12 border border-dashed border-border rounded-
|
|
297
|
+
className: "flex flex-col items-center justify-center py-12 border border-dashed border-border-subtle rounded-card",
|
|
296
298
|
children: [
|
|
297
299
|
/* @__PURE__ */ _("div", {
|
|
298
|
-
className: "size-12 rounded-full bg-
|
|
300
|
+
className: "size-12 rounded-full bg-[var(--color-accent-soft)] flex items-center justify-center mb-4",
|
|
299
301
|
children: /* @__PURE__ */ _("svg", {
|
|
300
|
-
className: "size-6 text-
|
|
302
|
+
className: "size-6 text-text-secondary",
|
|
301
303
|
fill: "none",
|
|
302
304
|
viewBox: "0 0 24 24",
|
|
303
305
|
stroke: "currentColor",
|
|
@@ -310,17 +312,17 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
310
312
|
})
|
|
311
313
|
}),
|
|
312
314
|
/* @__PURE__ */ _("h3", {
|
|
313
|
-
className: "text-lg font-medium text-
|
|
315
|
+
className: "text-lg font-medium text-text-primary",
|
|
314
316
|
children: r("billing.subscriptions.noSubscriptionsFound", "No subscriptions found")
|
|
315
317
|
}),
|
|
316
318
|
/* @__PURE__ */ _("p", {
|
|
317
|
-
className: "text-sm text-
|
|
319
|
+
className: "text-sm text-text-secondary mt-1",
|
|
318
320
|
children: O !== "all" || M ? "No subscriptions match your filters." : "You don't have any subscriptions yet."
|
|
319
321
|
}),
|
|
320
322
|
a.canCreateSubscription && O === "all" && !M && /* @__PURE__ */ _("button", {
|
|
321
323
|
type: "button",
|
|
322
324
|
onClick: () => i("/plans"),
|
|
323
|
-
className: "mt-4 px-4 py-2 text-sm font-medium bg-primary text-primary-
|
|
325
|
+
className: "mt-4 px-4 py-2 text-sm font-medium bg-action-primary-bg text-action-primary-text rounded-button hover:bg-action-primary-bgHover transition-colors duration-200",
|
|
324
326
|
children: "Browse Plans"
|
|
325
327
|
})
|
|
326
328
|
]
|
|
@@ -339,7 +341,7 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
339
341
|
type: "button",
|
|
340
342
|
onClick: () => K(P - 1),
|
|
341
343
|
disabled: P === 1,
|
|
342
|
-
className: "px-3 py-1.5 text-sm border border-border rounded-
|
|
344
|
+
className: "px-3 py-1.5 text-sm border border-border-subtle rounded-button disabled:opacity-50 disabled:cursor-not-allowed hover:bg-bg-sunken transition-colors",
|
|
343
345
|
children: /* @__PURE__ */ _("svg", {
|
|
344
346
|
className: "size-4",
|
|
345
347
|
fill: "none",
|
|
@@ -358,12 +360,12 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
358
360
|
children: Array.from({ length: B }, (e, t) => t + 1).map((e) => {
|
|
359
361
|
let t = e === 1 || e === B || Math.abs(e - P) <= 1, n = e === P - 2 && P > 3, r = e === P + 2 && P < B - 2;
|
|
360
362
|
return n || r ? /* @__PURE__ */ _("span", {
|
|
361
|
-
className: "px-2 text-
|
|
363
|
+
className: "px-2 text-text-secondary",
|
|
362
364
|
children: "..."
|
|
363
365
|
}, e) : t ? /* @__PURE__ */ _("button", {
|
|
364
366
|
type: "button",
|
|
365
367
|
onClick: () => K(e),
|
|
366
|
-
className: `px-3 py-1.5 text-sm rounded-
|
|
368
|
+
className: `px-3 py-1.5 text-sm rounded-button transition-colors ${e === P ? "bg-action-primary-bg text-action-primary-text" : "border border-border-subtle hover:bg-bg-sunken"}`,
|
|
367
369
|
children: e
|
|
368
370
|
}, e) : null;
|
|
369
371
|
})
|
|
@@ -372,7 +374,7 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
372
374
|
type: "button",
|
|
373
375
|
onClick: () => K(P + 1),
|
|
374
376
|
disabled: P === B,
|
|
375
|
-
className: "px-3 py-1.5 text-sm border border-border rounded-
|
|
377
|
+
className: "px-3 py-1.5 text-sm border border-border-subtle rounded-button disabled:opacity-50 disabled:cursor-not-allowed hover:bg-bg-sunken transition-colors",
|
|
376
378
|
children: /* @__PURE__ */ _("svg", {
|
|
377
379
|
className: "size-4",
|
|
378
380
|
fill: "none",
|
|
@@ -395,9 +397,9 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
395
397
|
className: "text-center space-y-2",
|
|
396
398
|
children: [
|
|
397
399
|
/* @__PURE__ */ _("div", {
|
|
398
|
-
className: "size-12 mx-auto rounded-full bg-
|
|
400
|
+
className: "size-12 mx-auto rounded-full bg-bg-sunken flex items-center justify-center",
|
|
399
401
|
children: /* @__PURE__ */ _("svg", {
|
|
400
|
-
className: "size-6 text-
|
|
402
|
+
className: "size-6 text-text-secondary",
|
|
401
403
|
fill: "none",
|
|
402
404
|
viewBox: "0 0 24 24",
|
|
403
405
|
stroke: "currentColor",
|
|
@@ -410,31 +412,31 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
410
412
|
})
|
|
411
413
|
}),
|
|
412
414
|
/* @__PURE__ */ _("h2", {
|
|
413
|
-
className: "text-lg font-semibold text-
|
|
415
|
+
className: "text-lg font-semibold text-text-primary",
|
|
414
416
|
children: "Access Denied"
|
|
415
417
|
}),
|
|
416
418
|
/* @__PURE__ */ _("p", {
|
|
417
|
-
className: "text-sm text-
|
|
419
|
+
className: "text-sm text-text-secondary max-w-sm",
|
|
418
420
|
children: "You don't have permission to view subscriptions."
|
|
419
421
|
})
|
|
420
422
|
]
|
|
421
423
|
})
|
|
422
424
|
});
|
|
423
|
-
}, C = ({ subscription: e, onView:
|
|
425
|
+
}, C = ({ subscription: e, onView: n, canCancel: c }) => {
|
|
424
426
|
let l = e.plan, u = s(e.status), d = e.status === "active", f = new Date(e.endDate), p = /* @__PURE__ */ new Date(), m = Math.max(0, Math.ceil((f.getTime() - p.getTime()) / (1e3 * 60 * 60 * 24)));
|
|
425
427
|
return /* @__PURE__ */ _("div", {
|
|
426
|
-
className: "border border-border rounded-
|
|
427
|
-
onClick:
|
|
428
|
+
className: "border border-border-subtle rounded-card bg-bg-surface shadow-elevation-1 hover:border-border-strong hover:shadow-elevation-2 hover:-translate-y-0.5 transition-all duration-200 cursor-pointer",
|
|
429
|
+
onClick: n,
|
|
428
430
|
children: /* @__PURE__ */ v("div", {
|
|
429
|
-
className: "p-
|
|
431
|
+
className: "p-5",
|
|
430
432
|
children: [
|
|
431
433
|
/* @__PURE__ */ v("div", {
|
|
432
434
|
className: "flex flex-col sm:flex-row sm:items-center gap-4",
|
|
433
435
|
children: [
|
|
434
436
|
/* @__PURE__ */ _("div", {
|
|
435
|
-
className: "size-12 rounded-lg bg-
|
|
437
|
+
className: "size-12 rounded-lg bg-[var(--color-accent-soft)] flex items-center justify-center shrink-0",
|
|
436
438
|
children: /* @__PURE__ */ _("svg", {
|
|
437
|
-
className: "size-6 text-
|
|
439
|
+
className: "size-6 text-text-link",
|
|
438
440
|
fill: "none",
|
|
439
441
|
viewBox: "0 0 24 24",
|
|
440
442
|
stroke: "currentColor",
|
|
@@ -451,20 +453,21 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
451
453
|
children: [/* @__PURE__ */ v("div", {
|
|
452
454
|
className: "flex items-center gap-2 flex-wrap",
|
|
453
455
|
children: [/* @__PURE__ */ _("h3", {
|
|
454
|
-
className: "font-semibold text-
|
|
456
|
+
className: "font-semibold text-text-primary",
|
|
455
457
|
children: l?.name || "Unknown Plan"
|
|
456
|
-
}), /* @__PURE__ */ _(
|
|
457
|
-
|
|
458
|
-
|
|
458
|
+
}), /* @__PURE__ */ _(t, {
|
|
459
|
+
status: u,
|
|
460
|
+
dot: !0,
|
|
461
|
+
children: o(e.status)
|
|
459
462
|
})]
|
|
460
463
|
}), /* @__PURE__ */ v("div", {
|
|
461
|
-
className: "flex items-center gap-4 mt-1 text-sm text-
|
|
464
|
+
className: "flex items-center gap-4 mt-1 text-sm text-text-secondary",
|
|
462
465
|
children: [
|
|
463
466
|
/* @__PURE__ */ v("span", { children: [
|
|
464
|
-
l ?
|
|
467
|
+
l ? r(l.price, l.currency) : "—",
|
|
465
468
|
" /",
|
|
466
469
|
" ",
|
|
467
|
-
l ?
|
|
470
|
+
l ? a(l.duration) : "—"
|
|
468
471
|
] }),
|
|
469
472
|
/* @__PURE__ */ _("span", {
|
|
470
473
|
className: "hidden sm:inline",
|
|
@@ -472,7 +475,7 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
472
475
|
}),
|
|
473
476
|
/* @__PURE__ */ v("span", {
|
|
474
477
|
className: "hidden sm:inline",
|
|
475
|
-
children: ["Started ",
|
|
478
|
+
children: ["Started ", i(e.startDate, "short")]
|
|
476
479
|
})
|
|
477
480
|
]
|
|
478
481
|
})]
|
|
@@ -482,27 +485,27 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
482
485
|
children: [d && /* @__PURE__ */ v("div", {
|
|
483
486
|
className: "text-right",
|
|
484
487
|
children: [/* @__PURE__ */ v("p", {
|
|
485
|
-
className: "text-sm font-medium text-
|
|
488
|
+
className: "text-sm font-medium text-text-primary",
|
|
486
489
|
children: [m, " days"]
|
|
487
490
|
}), /* @__PURE__ */ _("p", {
|
|
488
|
-
className: "text-xs text-
|
|
491
|
+
className: "text-xs text-text-secondary",
|
|
489
492
|
children: "remaining"
|
|
490
493
|
})]
|
|
491
494
|
}), /* @__PURE__ */ _("button", {
|
|
492
495
|
type: "button",
|
|
493
496
|
onClick: (e) => {
|
|
494
|
-
e.stopPropagation(),
|
|
497
|
+
e.stopPropagation(), n();
|
|
495
498
|
},
|
|
496
|
-
className: "px-3 py-1.5 text-sm font-medium border border-border text-
|
|
499
|
+
className: "px-3 py-1.5 text-sm font-medium border border-border-subtle text-text-primary rounded-button hover:bg-bg-sunken hover:border-border-strong transition-all duration-200",
|
|
497
500
|
children: "View"
|
|
498
501
|
})]
|
|
499
502
|
})
|
|
500
503
|
]
|
|
501
504
|
}),
|
|
502
505
|
e.addonSubscriptions && e.addonSubscriptions.length > 0 && /* @__PURE__ */ _("div", {
|
|
503
|
-
className: "mt-4 pt-4 border-t border-border",
|
|
506
|
+
className: "mt-4 pt-4 border-t border-border-subtle",
|
|
504
507
|
children: /* @__PURE__ */ v("p", {
|
|
505
|
-
className: "text-sm text-
|
|
508
|
+
className: "text-sm text-text-secondary",
|
|
506
509
|
children: [
|
|
507
510
|
e.addonSubscriptions.length,
|
|
508
511
|
" addon",
|
|
@@ -512,12 +515,12 @@ var b = ["expired", "upgraded"], x = 10, S = () => {
|
|
|
512
515
|
})
|
|
513
516
|
}),
|
|
514
517
|
e.canceledAt && /* @__PURE__ */ _("div", {
|
|
515
|
-
className: "mt-4 pt-4 border-t border-border",
|
|
518
|
+
className: "mt-4 pt-4 border-t border-border-subtle",
|
|
516
519
|
children: /* @__PURE__ */ v("p", {
|
|
517
|
-
className: "text-sm text-
|
|
520
|
+
className: "text-sm text-text-secondary",
|
|
518
521
|
children: [
|
|
519
522
|
"Canceled on ",
|
|
520
|
-
|
|
523
|
+
i(e.canceledAt),
|
|
521
524
|
e.cancellationReason && /* @__PURE__ */ v("span", { children: [": ", e.cancellationReason] })
|
|
522
525
|
]
|
|
523
526
|
})
|