@burdenoff/microfe-billing 2026.527.1 → 2026.528.1
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/modules/settings/pages/SettingsPage.js +338 -337
- package/dist/billing/modules/settings/pages/SettingsPage.js.map +1 -1
- package/dist/billing/modules/settings/pages/TeamPermissionsPage.js +157 -123
- package/dist/billing/modules/settings/pages/TeamPermissionsPage.js.map +1 -1
- package/dist/billing/shared/components/ActorIdentity.js +67 -0
- package/dist/billing/shared/components/ActorIdentity.js.map +1 -0
- package/dist/billing/shared/components/EmptyState.js +7 -21
- package/dist/billing/shared/components/EmptyState.js.map +1 -1
- package/dist/billing/shared/components/PageHeader.js +7 -19
- package/dist/billing/shared/components/PageHeader.js.map +1 -1
- package/dist/billing/shared/components/index.js +1 -0
- package/dist/billing/shared/hooks/index.js +1 -0
- package/dist/billing/shared/hooks/useActorProfiles.js +113 -0
- package/dist/billing/shared/hooks/useActorProfiles.js.map +1 -0
- package/package.json +2 -2
|
@@ -2,247 +2,248 @@ import { useBilling as e } from "../../../providers/BillingProvider.js";
|
|
|
2
2
|
import { AccessDenied as t } from "../../../shared/components/AccessDenied.js";
|
|
3
3
|
import { PageHeader as n } from "../../../shared/components/PageHeader.js";
|
|
4
4
|
import "../../../shared/components/index.js";
|
|
5
|
-
import { useBillingEventEmitter as
|
|
6
|
-
import { directBillingGraphqlRequest as
|
|
5
|
+
import { useBillingEventEmitter as ee } from "../../../hooks/useBillingEventEmitter.js";
|
|
6
|
+
import { directBillingGraphqlRequest as te } from "../../../shared/utils/directBillingGraphql.js";
|
|
7
7
|
import "../../../shared/utils/index.js";
|
|
8
|
-
import { useBillingPermissions as
|
|
9
|
-
import { ArchiveBillingAccountSettingsDocument as
|
|
10
|
-
import { useCallback as
|
|
11
|
-
import { Fragment as
|
|
12
|
-
import { useI18n as
|
|
8
|
+
import { useBillingPermissions as ne } from "../../../hooks/useBillingPermissions.js";
|
|
9
|
+
import { ArchiveBillingAccountSettingsDocument as re, useGetBillingAccountSettingsQuery as ie, useGetBillingAccountsSettingsQuery as ae, useGetDefaultBillingAccountSettingsQuery as oe, useSetDefaultBillingAccountSettingsMutation as se, useUpdateBillingAccountSettingsMutation as ce } from "../../../../generated/global-operations.js";
|
|
10
|
+
import { useCallback as r, useEffect as le, useMemo as i, useState as a } from "react";
|
|
11
|
+
import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
12
|
+
import { useI18n as l } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
13
|
+
import { OptionalFields as u } from "@burdenoff/fe-libs/ui";
|
|
13
14
|
//#region src/billing/modules/settings/pages/SettingsPage.tsx
|
|
14
|
-
var
|
|
15
|
+
var d = () => {
|
|
15
16
|
if (!(typeof window > "u")) return new URLSearchParams(window.location.search).get("billingAccountId") || void 0;
|
|
16
|
-
},
|
|
17
|
-
let { t:
|
|
18
|
-
let n =
|
|
17
|
+
}, f = () => {
|
|
18
|
+
let { t: f } = l(), p = (e, t) => {
|
|
19
|
+
let n = f(e);
|
|
19
20
|
return n === e ? t : n;
|
|
20
|
-
},
|
|
21
|
+
}, m = ne(), { apiGatewayUrl: h, authToken: g, orgId: _ } = e(), { emit: v } = ee(), [y, b] = a(d), [x, S] = a(!1), [C, w] = a(!1), [T, E] = a(!1), [D, O] = a(null), [ue, k] = a(!1), [de, A] = a(!1), [fe, j] = a(!1), [M, N] = a({
|
|
21
22
|
name: "",
|
|
22
23
|
email: "",
|
|
23
24
|
billingEmail: "",
|
|
24
25
|
currency: "USD",
|
|
25
26
|
taxId: "",
|
|
26
27
|
isDefault: !1
|
|
27
|
-
}), { data:
|
|
28
|
-
variables: { id:
|
|
29
|
-
skip: !
|
|
30
|
-
}),
|
|
31
|
-
if (
|
|
32
|
-
if (
|
|
33
|
-
let e =
|
|
28
|
+
}), { data: P, loading: F, refetch: I } = ae({}), L = i(() => P?.getBillingAccountsByOrg || [], [P?.getBillingAccountsByOrg]), { data: R, loading: z, refetch: B } = oe({}), V = R?.getDefaultBillingAccount || null, { data: pe, loading: H, refetch: U } = ie({
|
|
29
|
+
variables: { id: y },
|
|
30
|
+
skip: !y
|
|
31
|
+
}), W = pe?.getBillingAccount || null, [G] = ce(), [K] = se(), q = i(() => {
|
|
32
|
+
if (y) {
|
|
33
|
+
if (W) return W;
|
|
34
|
+
let e = L.find((e) => e.id === y);
|
|
34
35
|
if (e) return e;
|
|
35
|
-
if (
|
|
36
|
+
if (H) return null;
|
|
36
37
|
}
|
|
37
|
-
return
|
|
38
|
+
return V;
|
|
38
39
|
}, [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
]),
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
name:
|
|
48
|
-
email:
|
|
49
|
-
billingEmail:
|
|
50
|
-
currency:
|
|
51
|
-
taxId:
|
|
52
|
-
isDefault:
|
|
40
|
+
y,
|
|
41
|
+
W,
|
|
42
|
+
L,
|
|
43
|
+
H,
|
|
44
|
+
V
|
|
45
|
+
]), me = F || z || y && H;
|
|
46
|
+
le(() => {
|
|
47
|
+
q && N({
|
|
48
|
+
name: q.name || "",
|
|
49
|
+
email: q.email || "",
|
|
50
|
+
billingEmail: q.billingEmail || "",
|
|
51
|
+
currency: q.currency || "USD",
|
|
52
|
+
taxId: q.taxId || "",
|
|
53
|
+
isDefault: q.isDefault || !1
|
|
53
54
|
});
|
|
54
|
-
}, [
|
|
55
|
-
let
|
|
56
|
-
|
|
57
|
-
},
|
|
58
|
-
|
|
55
|
+
}, [q]);
|
|
56
|
+
let he = (e) => {
|
|
57
|
+
b(e.id), S(!1), k(!1), O(null);
|
|
58
|
+
}, J = (e, t) => {
|
|
59
|
+
N((n) => ({
|
|
59
60
|
...n,
|
|
60
61
|
[e]: t
|
|
61
|
-
})),
|
|
62
|
-
},
|
|
63
|
-
if (
|
|
64
|
-
|
|
62
|
+
})), k(!1), O(null);
|
|
63
|
+
}, Y = i(() => L.find((e) => e.isDefault) || null, [L]), ge = i(() => q ? M.name !== (q.name || "") || M.email !== (q.email || "") || M.billingEmail !== (q.billingEmail || "") || M.currency !== (q.currency || "USD") || M.taxId !== (q.taxId || "") || M.isDefault !== (q.isDefault || !1) : !1, [M, q]), X = M.isDefault && !q?.isDefault, Z = X && Y && Y.id !== q?.id, Q = r(async () => {
|
|
64
|
+
if (q?.id) {
|
|
65
|
+
w(!0), O(null), k(!1), A(!1), j(!1);
|
|
65
66
|
try {
|
|
66
|
-
await
|
|
67
|
-
id:
|
|
68
|
-
name:
|
|
69
|
-
email:
|
|
70
|
-
billingEmail:
|
|
71
|
-
currency:
|
|
72
|
-
taxId:
|
|
73
|
-
} } }),
|
|
67
|
+
await G({ variables: { input: {
|
|
68
|
+
id: q.id,
|
|
69
|
+
name: M.name,
|
|
70
|
+
email: M.email,
|
|
71
|
+
billingEmail: M.billingEmail || null,
|
|
72
|
+
currency: M.currency,
|
|
73
|
+
taxId: M.taxId || null
|
|
74
|
+
} } }), v("billing.billing_account.updated", {
|
|
74
75
|
route: "/billing/settings",
|
|
75
|
-
entityId:
|
|
76
|
+
entityId: q.id,
|
|
76
77
|
source: "settings"
|
|
77
|
-
}),
|
|
78
|
-
variables: { id:
|
|
78
|
+
}), X && (await K({
|
|
79
|
+
variables: { id: q.id },
|
|
79
80
|
refetchQueries: ["GetBillingAccountsByTenant", "GetDefaultBillingAccount"]
|
|
80
|
-
}),
|
|
81
|
+
}), v("billing.billing_account.updated", {
|
|
81
82
|
route: "/billing/settings",
|
|
82
|
-
entityId:
|
|
83
|
+
entityId: q.id,
|
|
83
84
|
source: "settings.default"
|
|
84
|
-
})),
|
|
85
|
+
})), y ? await U() : await B(), k(!0), setTimeout(() => k(!1), 3e3);
|
|
85
86
|
} catch (e) {
|
|
86
|
-
|
|
87
|
+
O(e instanceof Error ? e.message : "Failed to save changes");
|
|
87
88
|
} finally {
|
|
88
|
-
|
|
89
|
+
w(!1);
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
92
|
}, [
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
q?.id,
|
|
94
|
+
M,
|
|
95
|
+
X,
|
|
96
|
+
G,
|
|
95
97
|
K,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
J?.id && (Q ? (N(!0), M(!0)) : $());
|
|
98
|
+
y,
|
|
99
|
+
U,
|
|
100
|
+
B,
|
|
101
|
+
v
|
|
102
|
+
]), $ = r(() => {
|
|
103
|
+
q?.id && (Z ? (j(!0), A(!0)) : Q());
|
|
103
104
|
}, [
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
]),
|
|
108
|
-
if (!
|
|
109
|
-
let e =
|
|
110
|
-
if (window.confirm(
|
|
111
|
-
|
|
105
|
+
q?.id,
|
|
106
|
+
Z,
|
|
107
|
+
Q
|
|
108
|
+
]), _e = r(async () => {
|
|
109
|
+
if (!q?.id || !q.isActive) return;
|
|
110
|
+
let e = L.find((e) => e.id !== q.id && e.isActive);
|
|
111
|
+
if (window.confirm(q.isDefault ? `Archive ${q.name}? ${e ? `${e.name} will become the default account.` : "No replacement default account is available."}` : `Archive ${q.name}?`)) {
|
|
112
|
+
E(!0), O(null), k(!1);
|
|
112
113
|
try {
|
|
113
|
-
await
|
|
114
|
-
apiGatewayUrl:
|
|
115
|
-
authToken:
|
|
116
|
-
orgId:
|
|
117
|
-
query:
|
|
114
|
+
await te({
|
|
115
|
+
apiGatewayUrl: h,
|
|
116
|
+
authToken: g,
|
|
117
|
+
orgId: _,
|
|
118
|
+
query: re,
|
|
118
119
|
variables: {
|
|
119
|
-
id:
|
|
120
|
+
id: q.id,
|
|
120
121
|
reason: "Archived from billing settings",
|
|
121
|
-
replacementDefaultBillingAccountId:
|
|
122
|
+
replacementDefaultBillingAccountId: q.isDefault ? e?.id ?? null : null
|
|
122
123
|
}
|
|
123
|
-
}),
|
|
124
|
+
}), v("billing.billing_account.archived", {
|
|
124
125
|
route: "/billing/settings",
|
|
125
|
-
entityId:
|
|
126
|
+
entityId: q.id,
|
|
126
127
|
source: "settings"
|
|
127
|
-
}), await Promise.all([
|
|
128
|
+
}), await Promise.all([I(), B()]), b(e?.id), k(!0), setTimeout(() => k(!1), 3e3);
|
|
128
129
|
} catch (e) {
|
|
129
|
-
|
|
130
|
+
O(e instanceof Error ? e.message : "Failed to archive billing account");
|
|
130
131
|
} finally {
|
|
131
|
-
|
|
132
|
+
E(!1);
|
|
132
133
|
}
|
|
133
134
|
}
|
|
134
135
|
}, [
|
|
136
|
+
h,
|
|
135
137
|
g,
|
|
136
|
-
|
|
137
|
-
J,
|
|
138
|
-
R,
|
|
139
|
-
v,
|
|
138
|
+
q,
|
|
140
139
|
L,
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
_,
|
|
141
|
+
I,
|
|
142
|
+
B,
|
|
143
|
+
v
|
|
143
144
|
]);
|
|
144
|
-
return
|
|
145
|
+
return m.canManageBillingAccount ? me && !q ? /* @__PURE__ */ c("div", {
|
|
145
146
|
className: "space-y-6 p-6",
|
|
146
|
-
children: [/* @__PURE__ */
|
|
147
|
+
children: [/* @__PURE__ */ s("div", { className: "h-8 w-48 bg-muted animate-pulse rounded" }), /* @__PURE__ */ s("div", {
|
|
147
148
|
className: "border border-border rounded-lg p-6 space-y-4",
|
|
148
149
|
children: [
|
|
149
150
|
1,
|
|
150
151
|
2,
|
|
151
152
|
3
|
|
152
|
-
].map((e) => /* @__PURE__ */
|
|
153
|
+
].map((e) => /* @__PURE__ */ s("div", { className: "h-10 bg-muted animate-pulse rounded" }, e))
|
|
153
154
|
})]
|
|
154
|
-
}) : /* @__PURE__ */
|
|
155
|
+
}) : /* @__PURE__ */ c("div", {
|
|
155
156
|
className: "space-y-6 p-6",
|
|
156
157
|
children: [
|
|
157
|
-
/* @__PURE__ */
|
|
158
|
-
title:
|
|
159
|
-
description:
|
|
158
|
+
/* @__PURE__ */ s(n, {
|
|
159
|
+
title: p("billing.settings.billingSettings", "Billing Settings"),
|
|
160
|
+
description: p("billing.settings.description", "Manage your billing account configuration")
|
|
160
161
|
}),
|
|
161
|
-
|
|
162
|
+
L.length > 1 && /* @__PURE__ */ c("div", {
|
|
162
163
|
className: "relative",
|
|
163
|
-
children: [/* @__PURE__ */
|
|
164
|
+
children: [/* @__PURE__ */ c("button", {
|
|
164
165
|
type: "button",
|
|
165
|
-
onClick: () =>
|
|
166
|
+
onClick: () => S(!x),
|
|
166
167
|
className: "w-full sm:w-auto flex items-center justify-between gap-3 px-4 py-3 border border-border rounded-lg bg-card hover:bg-muted/50 transition-colors",
|
|
167
|
-
children: [/* @__PURE__ */
|
|
168
|
+
children: [/* @__PURE__ */ c("div", {
|
|
168
169
|
className: "flex items-center gap-3",
|
|
169
|
-
children: [/* @__PURE__ */
|
|
170
|
+
children: [/* @__PURE__ */ s("div", {
|
|
170
171
|
className: "size-8 rounded-lg bg-primary/10 flex items-center justify-center",
|
|
171
|
-
children: /* @__PURE__ */
|
|
172
|
+
children: /* @__PURE__ */ s("svg", {
|
|
172
173
|
className: "size-4 text-primary",
|
|
173
174
|
fill: "none",
|
|
174
175
|
viewBox: "0 0 24 24",
|
|
175
176
|
stroke: "currentColor",
|
|
176
|
-
children: /* @__PURE__ */
|
|
177
|
+
children: /* @__PURE__ */ s("path", {
|
|
177
178
|
strokeLinecap: "round",
|
|
178
179
|
strokeLinejoin: "round",
|
|
179
180
|
strokeWidth: 2,
|
|
180
181
|
d: "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"
|
|
181
182
|
})
|
|
182
183
|
})
|
|
183
|
-
}), /* @__PURE__ */
|
|
184
|
+
}), /* @__PURE__ */ c("div", {
|
|
184
185
|
className: "text-left",
|
|
185
|
-
children: [/* @__PURE__ */
|
|
186
|
+
children: [/* @__PURE__ */ s("p", {
|
|
186
187
|
className: "text-sm font-medium text-foreground",
|
|
187
|
-
children:
|
|
188
|
-
}), /* @__PURE__ */
|
|
188
|
+
children: q?.name || p("billing.settings.selectAccount", "Select Account")
|
|
189
|
+
}), /* @__PURE__ */ s("p", {
|
|
189
190
|
className: "text-xs text-muted-foreground",
|
|
190
|
-
children:
|
|
191
|
+
children: q?.email
|
|
191
192
|
})]
|
|
192
193
|
})]
|
|
193
|
-
}), /* @__PURE__ */
|
|
194
|
-
className: `size-4 text-muted-foreground transition-transform ${
|
|
194
|
+
}), /* @__PURE__ */ s("svg", {
|
|
195
|
+
className: `size-4 text-muted-foreground transition-transform ${x ? "rotate-180" : ""}`,
|
|
195
196
|
fill: "none",
|
|
196
197
|
viewBox: "0 0 24 24",
|
|
197
198
|
stroke: "currentColor",
|
|
198
|
-
children: /* @__PURE__ */
|
|
199
|
+
children: /* @__PURE__ */ s("path", {
|
|
199
200
|
strokeLinecap: "round",
|
|
200
201
|
strokeLinejoin: "round",
|
|
201
202
|
strokeWidth: 2,
|
|
202
203
|
d: "M19 9l-7 7-7-7"
|
|
203
204
|
})
|
|
204
205
|
})]
|
|
205
|
-
}),
|
|
206
|
+
}), x && /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ s("div", {
|
|
206
207
|
className: "fixed inset-0 z-10",
|
|
207
|
-
onClick: () =>
|
|
208
|
-
}), /* @__PURE__ */
|
|
208
|
+
onClick: () => S(!1)
|
|
209
|
+
}), /* @__PURE__ */ s("div", {
|
|
209
210
|
className: "absolute top-full left-0 right-0 sm:right-auto mt-1 w-full sm:w-80 bg-popover border border-border rounded-lg shadow-lg z-20 py-1 max-h-60 overflow-y-auto",
|
|
210
|
-
children:
|
|
211
|
+
children: L.map((e) => /* @__PURE__ */ c("button", {
|
|
211
212
|
type: "button",
|
|
212
|
-
onClick: () =>
|
|
213
|
+
onClick: () => he(e),
|
|
213
214
|
className: "w-full flex items-center justify-between gap-3 px-4 py-3 hover:bg-muted transition-colors",
|
|
214
|
-
children: [/* @__PURE__ */
|
|
215
|
+
children: [/* @__PURE__ */ c("div", {
|
|
215
216
|
className: "flex items-center gap-3 min-w-0",
|
|
216
|
-
children: [/* @__PURE__ */
|
|
217
|
+
children: [/* @__PURE__ */ s("div", {
|
|
217
218
|
className: "size-8 rounded-lg bg-muted flex items-center justify-center flex-shrink-0",
|
|
218
|
-
children: /* @__PURE__ */
|
|
219
|
+
children: /* @__PURE__ */ s("svg", {
|
|
219
220
|
className: "size-4 text-muted-foreground",
|
|
220
221
|
fill: "none",
|
|
221
222
|
viewBox: "0 0 24 24",
|
|
222
223
|
stroke: "currentColor",
|
|
223
|
-
children: /* @__PURE__ */
|
|
224
|
+
children: /* @__PURE__ */ s("path", {
|
|
224
225
|
strokeLinecap: "round",
|
|
225
226
|
strokeLinejoin: "round",
|
|
226
227
|
strokeWidth: 2,
|
|
227
228
|
d: "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"
|
|
228
229
|
})
|
|
229
230
|
})
|
|
230
|
-
}), /* @__PURE__ */
|
|
231
|
+
}), /* @__PURE__ */ c("div", {
|
|
231
232
|
className: "text-left min-w-0",
|
|
232
|
-
children: [/* @__PURE__ */
|
|
233
|
+
children: [/* @__PURE__ */ s("p", {
|
|
233
234
|
className: "text-sm font-medium text-foreground truncate",
|
|
234
235
|
children: e.name
|
|
235
|
-
}), /* @__PURE__ */
|
|
236
|
+
}), /* @__PURE__ */ s("p", {
|
|
236
237
|
className: "text-xs text-muted-foreground truncate",
|
|
237
238
|
children: e.email
|
|
238
239
|
})]
|
|
239
240
|
})]
|
|
240
|
-
}),
|
|
241
|
+
}), q?.id === e.id && /* @__PURE__ */ s("svg", {
|
|
241
242
|
className: "size-4 text-primary flex-shrink-0",
|
|
242
243
|
fill: "none",
|
|
243
244
|
viewBox: "0 0 24 24",
|
|
244
245
|
stroke: "currentColor",
|
|
245
|
-
children: /* @__PURE__ */
|
|
246
|
+
children: /* @__PURE__ */ s("path", {
|
|
246
247
|
strokeLinecap: "round",
|
|
247
248
|
strokeLinejoin: "round",
|
|
248
249
|
strokeWidth: 2,
|
|
@@ -252,387 +253,387 @@ var se = () => {
|
|
|
252
253
|
}, e.id))
|
|
253
254
|
})] })]
|
|
254
255
|
}),
|
|
255
|
-
/* @__PURE__ */
|
|
256
|
+
/* @__PURE__ */ c("div", {
|
|
256
257
|
className: "border border-border rounded-lg bg-card",
|
|
257
|
-
children: [/* @__PURE__ */
|
|
258
|
+
children: [/* @__PURE__ */ s("div", {
|
|
258
259
|
className: "p-6 border-b border-border",
|
|
259
|
-
children: /* @__PURE__ */
|
|
260
|
+
children: /* @__PURE__ */ c("div", {
|
|
260
261
|
className: "flex items-center justify-between",
|
|
261
|
-
children: [/* @__PURE__ */
|
|
262
|
+
children: [/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h2", {
|
|
262
263
|
className: "text-lg font-semibold text-foreground",
|
|
263
|
-
children:
|
|
264
|
-
}), /* @__PURE__ */
|
|
264
|
+
children: p("billing.settings.accountInfo", "Account Information")
|
|
265
|
+
}), /* @__PURE__ */ s("p", {
|
|
265
266
|
className: "text-sm text-muted-foreground mt-1",
|
|
266
|
-
children:
|
|
267
|
-
})] }),
|
|
267
|
+
children: p("billing.settings.accountInfoDescription", "Update your billing contact details and tax information")
|
|
268
|
+
})] }), q?.isDefault && /* @__PURE__ */ c("span", {
|
|
268
269
|
className: "inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium bg-primary/10 text-primary rounded-full",
|
|
269
|
-
children: [/* @__PURE__ */
|
|
270
|
+
children: [/* @__PURE__ */ s("svg", {
|
|
270
271
|
className: "size-3",
|
|
271
272
|
fill: "currentColor",
|
|
272
273
|
viewBox: "0 0 20 20",
|
|
273
|
-
children: /* @__PURE__ */
|
|
274
|
+
children: /* @__PURE__ */ s("path", {
|
|
274
275
|
fillRule: "evenodd",
|
|
275
276
|
d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",
|
|
276
277
|
clipRule: "evenodd"
|
|
277
278
|
})
|
|
278
|
-
}),
|
|
279
|
+
}), p("billing.settings.defaultAccount", "Default Account")]
|
|
279
280
|
})]
|
|
280
281
|
})
|
|
281
|
-
}), /* @__PURE__ */
|
|
282
|
+
}), /* @__PURE__ */ c("div", {
|
|
282
283
|
className: "p-6 space-y-6",
|
|
283
284
|
children: [
|
|
284
|
-
|
|
285
|
+
q && /* @__PURE__ */ c("div", {
|
|
285
286
|
className: "grid grid-cols-2 sm:grid-cols-4 gap-4 text-sm pb-4 border-b border-border",
|
|
286
287
|
children: [
|
|
287
|
-
/* @__PURE__ */
|
|
288
|
+
/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("p", {
|
|
288
289
|
className: "text-muted-foreground",
|
|
289
|
-
children:
|
|
290
|
-
}), /* @__PURE__ */
|
|
291
|
-
className: `font-medium ${
|
|
292
|
-
children:
|
|
290
|
+
children: p("billing.settings.status", "Status")
|
|
291
|
+
}), /* @__PURE__ */ s("p", {
|
|
292
|
+
className: `font-medium ${q.isActive ? "text-status-success-text" : "text-destructive"}`,
|
|
293
|
+
children: q.isActive ? p("billing.settings.active", "Active") : p("billing.settings.inactive", "Inactive")
|
|
293
294
|
})] }),
|
|
294
|
-
/* @__PURE__ */
|
|
295
|
+
/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("p", {
|
|
295
296
|
className: "text-muted-foreground",
|
|
296
|
-
children:
|
|
297
|
-
}), /* @__PURE__ */
|
|
297
|
+
children: p("billing.settings.creditBalance", "Credit Balance")
|
|
298
|
+
}), /* @__PURE__ */ c("p", {
|
|
298
299
|
className: "font-medium text-foreground",
|
|
299
|
-
children: [(
|
|
300
|
+
children: [(q.creditAmount || 0).toLocaleString(), " Credits"]
|
|
300
301
|
})] }),
|
|
301
|
-
/* @__PURE__ */
|
|
302
|
+
/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("p", {
|
|
302
303
|
className: "text-muted-foreground",
|
|
303
|
-
children:
|
|
304
|
-
}), /* @__PURE__ */
|
|
304
|
+
children: p("billing.settings.accountId", "Account ID")
|
|
305
|
+
}), /* @__PURE__ */ s("p", {
|
|
305
306
|
className: "font-mono text-xs text-foreground truncate",
|
|
306
|
-
title:
|
|
307
|
-
children:
|
|
307
|
+
title: q.id,
|
|
308
|
+
children: q.id
|
|
308
309
|
})] }),
|
|
309
|
-
/* @__PURE__ */
|
|
310
|
+
/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("p", {
|
|
310
311
|
className: "text-muted-foreground",
|
|
311
|
-
children:
|
|
312
|
-
}), /* @__PURE__ */
|
|
312
|
+
children: p("billing.settings.created", "Created")
|
|
313
|
+
}), /* @__PURE__ */ s("p", {
|
|
313
314
|
className: "font-medium text-foreground",
|
|
314
|
-
children:
|
|
315
|
+
children: q.createdAt ? new Date(q.createdAt).toLocaleDateString() : p("billing.settings.notAvailable", "N/A")
|
|
315
316
|
})] })
|
|
316
317
|
]
|
|
317
318
|
}),
|
|
318
|
-
/* @__PURE__ */
|
|
319
|
+
/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h3", {
|
|
319
320
|
className: "text-sm font-medium text-foreground mb-4",
|
|
320
|
-
children:
|
|
321
|
-
}), /* @__PURE__ */
|
|
321
|
+
children: p("billing.settings.contactDetails", "Contact Details")
|
|
322
|
+
}), /* @__PURE__ */ c("div", {
|
|
322
323
|
className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
|
|
323
|
-
children: [
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
children: "*"
|
|
333
|
-
})
|
|
334
|
-
]
|
|
335
|
-
}), /* @__PURE__ */ d("input", {
|
|
336
|
-
id: "billing-account-name",
|
|
337
|
-
type: "text",
|
|
338
|
-
value: P.name,
|
|
339
|
-
onChange: (e) => Y("name", e.target.value),
|
|
340
|
-
className: "w-full px-3 py-2 text-sm border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent"
|
|
341
|
-
})] }),
|
|
342
|
-
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ f("label", {
|
|
343
|
-
htmlFor: "billing-account-email",
|
|
344
|
-
className: "block text-sm font-medium text-foreground mb-1",
|
|
345
|
-
children: [
|
|
346
|
-
m("billing.settings.email", "Email"),
|
|
347
|
-
" ",
|
|
348
|
-
/* @__PURE__ */ d("span", {
|
|
349
|
-
className: "text-destructive",
|
|
350
|
-
children: "*"
|
|
351
|
-
})
|
|
352
|
-
]
|
|
353
|
-
}), /* @__PURE__ */ d("input", {
|
|
354
|
-
id: "billing-account-email",
|
|
355
|
-
type: "email",
|
|
356
|
-
value: P.email,
|
|
357
|
-
onChange: (e) => Y("email", e.target.value),
|
|
358
|
-
className: "w-full px-3 py-2 text-sm border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent"
|
|
359
|
-
})] }),
|
|
360
|
-
/* @__PURE__ */ f("div", { children: [
|
|
361
|
-
/* @__PURE__ */ d("label", {
|
|
362
|
-
htmlFor: "billing-account-billing-email",
|
|
363
|
-
className: "block text-sm font-medium text-foreground mb-1",
|
|
364
|
-
children: m("billing.settings.billingEmail", "Billing Email")
|
|
365
|
-
}),
|
|
366
|
-
/* @__PURE__ */ d("input", {
|
|
367
|
-
id: "billing-account-billing-email",
|
|
368
|
-
type: "email",
|
|
369
|
-
value: P.billingEmail,
|
|
370
|
-
onChange: (e) => Y("billingEmail", e.target.value),
|
|
371
|
-
placeholder: m("billing.settings.billingEmailPlaceholder", "Optional - defaults to account email"),
|
|
372
|
-
className: "w-full px-3 py-2 text-sm border border-border rounded-md bg-background text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent"
|
|
373
|
-
}),
|
|
374
|
-
/* @__PURE__ */ d("p", {
|
|
375
|
-
className: "text-xs text-muted-foreground mt-1",
|
|
376
|
-
children: m("billing.settings.billingEmailHelp", "Invoices will be sent to this email if provided")
|
|
324
|
+
children: [/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ c("label", {
|
|
325
|
+
htmlFor: "billing-account-name",
|
|
326
|
+
className: "block text-sm font-medium text-foreground mb-1",
|
|
327
|
+
children: [
|
|
328
|
+
p("billing.settings.accountName", "Account Name"),
|
|
329
|
+
" ",
|
|
330
|
+
/* @__PURE__ */ s("span", {
|
|
331
|
+
className: "text-destructive",
|
|
332
|
+
children: "*"
|
|
377
333
|
})
|
|
378
|
-
]
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
334
|
+
]
|
|
335
|
+
}), /* @__PURE__ */ s("input", {
|
|
336
|
+
id: "billing-account-name",
|
|
337
|
+
type: "text",
|
|
338
|
+
value: M.name,
|
|
339
|
+
onChange: (e) => J("name", e.target.value),
|
|
340
|
+
className: "w-full px-3 py-2 text-sm border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent"
|
|
341
|
+
})] }), /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ c("label", {
|
|
342
|
+
htmlFor: "billing-account-email",
|
|
343
|
+
className: "block text-sm font-medium text-foreground mb-1",
|
|
344
|
+
children: [
|
|
345
|
+
p("billing.settings.email", "Email"),
|
|
346
|
+
" ",
|
|
347
|
+
/* @__PURE__ */ s("span", {
|
|
348
|
+
className: "text-destructive",
|
|
349
|
+
children: "*"
|
|
350
|
+
})
|
|
351
|
+
]
|
|
352
|
+
}), /* @__PURE__ */ s("input", {
|
|
353
|
+
id: "billing-account-email",
|
|
354
|
+
type: "email",
|
|
355
|
+
value: M.email,
|
|
356
|
+
onChange: (e) => J("email", e.target.value),
|
|
357
|
+
className: "w-full px-3 py-2 text-sm border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent"
|
|
358
|
+
})] })]
|
|
359
|
+
})] }),
|
|
360
|
+
/* @__PURE__ */ s(u, {
|
|
361
|
+
title: p("billing.settings.advancedTitle", "Advanced settings"),
|
|
362
|
+
description: p("billing.settings.advancedDescription", "Billing email override, currency, and tax identification."),
|
|
363
|
+
children: /* @__PURE__ */ c("div", {
|
|
364
|
+
className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
|
|
365
|
+
children: [
|
|
366
|
+
/* @__PURE__ */ c("div", { children: [
|
|
367
|
+
/* @__PURE__ */ s("label", {
|
|
368
|
+
htmlFor: "billing-account-billing-email",
|
|
369
|
+
className: "block text-sm font-medium text-foreground mb-1",
|
|
370
|
+
children: p("billing.settings.billingEmail", "Billing Email")
|
|
396
371
|
}),
|
|
397
|
-
/* @__PURE__ */
|
|
398
|
-
|
|
399
|
-
|
|
372
|
+
/* @__PURE__ */ s("input", {
|
|
373
|
+
id: "billing-account-billing-email",
|
|
374
|
+
type: "email",
|
|
375
|
+
value: M.billingEmail,
|
|
376
|
+
onChange: (e) => J("billingEmail", e.target.value),
|
|
377
|
+
placeholder: p("billing.settings.billingEmailPlaceholder", "Optional - defaults to account email"),
|
|
378
|
+
className: "w-full px-3 py-2 text-sm border border-border rounded-md bg-background text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent"
|
|
400
379
|
}),
|
|
401
|
-
/* @__PURE__ */
|
|
402
|
-
|
|
403
|
-
children: "
|
|
380
|
+
/* @__PURE__ */ s("p", {
|
|
381
|
+
className: "text-xs text-muted-foreground mt-1",
|
|
382
|
+
children: p("billing.settings.billingEmailHelp", "Invoices will be sent to this email if provided")
|
|
404
383
|
})
|
|
405
|
-
]
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
})] }),
|
|
409
|
-
/* @__PURE__ */ f("div", {
|
|
410
|
-
className: "pt-4 border-t border-border",
|
|
411
|
-
children: [/* @__PURE__ */ d("h3", {
|
|
412
|
-
className: "text-sm font-medium text-foreground mb-4",
|
|
413
|
-
children: m("billing.settings.taxInformation", "Tax Information")
|
|
414
|
-
}), /* @__PURE__ */ f("div", {
|
|
415
|
-
className: "max-w-md",
|
|
416
|
-
children: [
|
|
417
|
-
/* @__PURE__ */ d("label", {
|
|
418
|
-
htmlFor: "billing-account-tax-id",
|
|
384
|
+
] }),
|
|
385
|
+
/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("label", {
|
|
386
|
+
htmlFor: "billing-account-currency",
|
|
419
387
|
className: "block text-sm font-medium text-foreground mb-1",
|
|
420
|
-
children:
|
|
421
|
-
}),
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
388
|
+
children: p("billing.settings.currency", "Currency")
|
|
389
|
+
}), /* @__PURE__ */ c("select", {
|
|
390
|
+
id: "billing-account-currency",
|
|
391
|
+
value: M.currency,
|
|
392
|
+
onChange: (e) => J("currency", e.target.value),
|
|
393
|
+
className: "w-full px-3 py-2 text-sm border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent",
|
|
394
|
+
children: [
|
|
395
|
+
/* @__PURE__ */ s("option", {
|
|
396
|
+
value: "USD",
|
|
397
|
+
children: "USD - US Dollar"
|
|
398
|
+
}),
|
|
399
|
+
/* @__PURE__ */ s("option", {
|
|
400
|
+
value: "EUR",
|
|
401
|
+
children: "EUR - Euro"
|
|
402
|
+
}),
|
|
403
|
+
/* @__PURE__ */ s("option", {
|
|
404
|
+
value: "GBP",
|
|
405
|
+
children: "GBP - British Pound"
|
|
406
|
+
}),
|
|
407
|
+
/* @__PURE__ */ s("option", {
|
|
408
|
+
value: "INR",
|
|
409
|
+
children: "INR - Indian Rupee"
|
|
410
|
+
})
|
|
411
|
+
]
|
|
412
|
+
})] }),
|
|
413
|
+
/* @__PURE__ */ c("div", {
|
|
414
|
+
className: "sm:col-span-2 max-w-md",
|
|
415
|
+
children: [
|
|
416
|
+
/* @__PURE__ */ s("label", {
|
|
417
|
+
htmlFor: "billing-account-tax-id",
|
|
418
|
+
className: "block text-sm font-medium text-foreground mb-1",
|
|
419
|
+
children: p("billing.settings.taxId", "Tax ID / VAT Number")
|
|
420
|
+
}),
|
|
421
|
+
/* @__PURE__ */ s("input", {
|
|
422
|
+
id: "billing-account-tax-id",
|
|
423
|
+
type: "text",
|
|
424
|
+
value: M.taxId,
|
|
425
|
+
onChange: (e) => J("taxId", e.target.value),
|
|
426
|
+
placeholder: p("billing.settings.taxIdPlaceholder", "Enter your tax identification number"),
|
|
427
|
+
className: "w-full px-3 py-2 text-sm border border-border rounded-md bg-background text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent"
|
|
428
|
+
}),
|
|
429
|
+
/* @__PURE__ */ s("p", {
|
|
430
|
+
className: "text-xs text-muted-foreground mt-1",
|
|
431
|
+
children: p("billing.settings.taxIdHelp", "Used for invoices and tax compliance (e.g., GST, VAT number)")
|
|
432
|
+
})
|
|
433
|
+
]
|
|
433
434
|
})
|
|
434
435
|
]
|
|
435
|
-
})
|
|
436
|
+
})
|
|
436
437
|
}),
|
|
437
|
-
|
|
438
|
+
q?.isActive && L.length > 1 && /* @__PURE__ */ s("div", {
|
|
438
439
|
className: "pt-4 border-t border-border",
|
|
439
|
-
children: /* @__PURE__ */
|
|
440
|
+
children: /* @__PURE__ */ c("div", {
|
|
440
441
|
className: "flex items-start gap-3",
|
|
441
|
-
children: [/* @__PURE__ */
|
|
442
|
+
children: [/* @__PURE__ */ s("div", {
|
|
442
443
|
className: "flex items-center h-6",
|
|
443
|
-
children: /* @__PURE__ */
|
|
444
|
+
children: /* @__PURE__ */ s("input", {
|
|
444
445
|
type: "checkbox",
|
|
445
446
|
id: "isDefault",
|
|
446
|
-
checked:
|
|
447
|
-
onChange: (e) =>
|
|
447
|
+
checked: M.isDefault,
|
|
448
|
+
onChange: (e) => N((t) => ({
|
|
448
449
|
...t,
|
|
449
450
|
isDefault: e.target.checked
|
|
450
451
|
})),
|
|
451
|
-
disabled:
|
|
452
|
+
disabled: q?.isDefault,
|
|
452
453
|
className: "size-4 rounded border-border text-primary focus:ring-primary focus:ring-offset-0 disabled:opacity-50 disabled:cursor-not-allowed"
|
|
453
454
|
})
|
|
454
|
-
}), /* @__PURE__ */
|
|
455
|
+
}), /* @__PURE__ */ c("div", {
|
|
455
456
|
className: "flex-1",
|
|
456
|
-
children: [/* @__PURE__ */
|
|
457
|
+
children: [/* @__PURE__ */ s("label", {
|
|
457
458
|
htmlFor: "isDefault",
|
|
458
459
|
className: "text-sm font-medium text-foreground cursor-pointer",
|
|
459
|
-
children:
|
|
460
|
-
}), /* @__PURE__ */
|
|
460
|
+
children: p("billing.settings.setDefault", "Set as default billing account")
|
|
461
|
+
}), /* @__PURE__ */ s("p", {
|
|
461
462
|
className: "text-xs text-muted-foreground mt-0.5",
|
|
462
|
-
children:
|
|
463
|
+
children: q?.isDefault ? p("billing.settings.currentDefaultDescription", "This is currently your default billing account") : p("billing.settings.makePrimaryDescription", "Make this your primary billing account for new subscriptions")
|
|
463
464
|
})]
|
|
464
465
|
})]
|
|
465
466
|
})
|
|
466
467
|
}),
|
|
467
|
-
/* @__PURE__ */
|
|
468
|
+
/* @__PURE__ */ c("div", {
|
|
468
469
|
className: "pt-4 border-t border-border flex items-center justify-between",
|
|
469
|
-
children: [/* @__PURE__ */
|
|
470
|
+
children: [/* @__PURE__ */ c("div", {
|
|
470
471
|
className: "flex items-center gap-2",
|
|
471
|
-
children: [
|
|
472
|
+
children: [ue && /* @__PURE__ */ c("div", {
|
|
472
473
|
className: "flex items-center gap-2 text-sm text-status-success-text",
|
|
473
|
-
children: [/* @__PURE__ */
|
|
474
|
+
children: [/* @__PURE__ */ s("svg", {
|
|
474
475
|
className: "size-4",
|
|
475
476
|
fill: "none",
|
|
476
477
|
viewBox: "0 0 24 24",
|
|
477
478
|
stroke: "currentColor",
|
|
478
|
-
children: /* @__PURE__ */
|
|
479
|
+
children: /* @__PURE__ */ s("path", {
|
|
479
480
|
strokeLinecap: "round",
|
|
480
481
|
strokeLinejoin: "round",
|
|
481
482
|
strokeWidth: 2,
|
|
482
483
|
d: "M5 13l4 4L19 7"
|
|
483
484
|
})
|
|
484
|
-
}),
|
|
485
|
-
}),
|
|
485
|
+
}), p("billing.settings.saveSuccess", "Changes saved successfully")]
|
|
486
|
+
}), D && /* @__PURE__ */ c("div", {
|
|
486
487
|
className: "flex items-center gap-2 text-sm text-destructive",
|
|
487
|
-
children: [/* @__PURE__ */
|
|
488
|
+
children: [/* @__PURE__ */ s("svg", {
|
|
488
489
|
className: "size-4",
|
|
489
490
|
fill: "none",
|
|
490
491
|
viewBox: "0 0 24 24",
|
|
491
492
|
stroke: "currentColor",
|
|
492
|
-
children: /* @__PURE__ */
|
|
493
|
+
children: /* @__PURE__ */ s("path", {
|
|
493
494
|
strokeLinecap: "round",
|
|
494
495
|
strokeLinejoin: "round",
|
|
495
496
|
strokeWidth: 2,
|
|
496
497
|
d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
|
|
497
498
|
})
|
|
498
|
-
}),
|
|
499
|
+
}), D]
|
|
499
500
|
})]
|
|
500
|
-
}), /* @__PURE__ */
|
|
501
|
+
}), /* @__PURE__ */ c("div", {
|
|
501
502
|
className: "flex items-center gap-3",
|
|
502
|
-
children: [
|
|
503
|
+
children: [m.canArchiveBillingAccount && q?.isActive ? /* @__PURE__ */ s("button", {
|
|
503
504
|
type: "button",
|
|
504
|
-
onClick:
|
|
505
|
-
disabled:
|
|
505
|
+
onClick: _e,
|
|
506
|
+
disabled: C || T,
|
|
506
507
|
className: "px-4 py-2 text-sm font-medium border border-border text-status-error-text rounded-md hover:bg-status-error-bg-subtle disabled:opacity-50 disabled:cursor-not-allowed transition-colors",
|
|
507
|
-
children:
|
|
508
|
-
}) : null, /* @__PURE__ */
|
|
508
|
+
children: T ? "Archiving..." : "Archive Account"
|
|
509
|
+
}) : null, /* @__PURE__ */ c("button", {
|
|
509
510
|
type: "button",
|
|
510
|
-
onClick:
|
|
511
|
-
disabled: !
|
|
511
|
+
onClick: $,
|
|
512
|
+
disabled: !ge || C || T || !M.name || !M.email,
|
|
512
513
|
className: "px-4 py-2 text-sm font-medium bg-primary text-primary-foreground rounded-md hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors flex items-center gap-2",
|
|
513
|
-
children: [
|
|
514
|
+
children: [C && /* @__PURE__ */ c("svg", {
|
|
514
515
|
className: "size-4 animate-spin",
|
|
515
516
|
fill: "none",
|
|
516
517
|
viewBox: "0 0 24 24",
|
|
517
|
-
children: [/* @__PURE__ */
|
|
518
|
+
children: [/* @__PURE__ */ s("circle", {
|
|
518
519
|
className: "opacity-25",
|
|
519
520
|
cx: "12",
|
|
520
521
|
cy: "12",
|
|
521
522
|
r: "10",
|
|
522
523
|
stroke: "currentColor",
|
|
523
524
|
strokeWidth: "4"
|
|
524
|
-
}), /* @__PURE__ */
|
|
525
|
+
}), /* @__PURE__ */ s("path", {
|
|
525
526
|
className: "opacity-75",
|
|
526
527
|
fill: "currentColor",
|
|
527
528
|
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
528
529
|
})]
|
|
529
|
-
}),
|
|
530
|
+
}), C ? "Saving..." : "Save Changes"]
|
|
530
531
|
})]
|
|
531
532
|
})]
|
|
532
533
|
})
|
|
533
534
|
]
|
|
534
535
|
})]
|
|
535
536
|
}),
|
|
536
|
-
|
|
537
|
+
de && fe && /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ s("div", {
|
|
537
538
|
className: "fixed inset-0 bg-overlay-scrim z-40",
|
|
538
539
|
onClick: () => {
|
|
539
|
-
|
|
540
|
+
C || (A(!1), j(!1), N((e) => ({
|
|
540
541
|
...e,
|
|
541
|
-
isDefault:
|
|
542
|
+
isDefault: q?.isDefault || !1
|
|
542
543
|
})));
|
|
543
544
|
}
|
|
544
|
-
}), /* @__PURE__ */
|
|
545
|
+
}), /* @__PURE__ */ s("div", {
|
|
545
546
|
className: "fixed inset-0 flex items-center justify-center z-50 p-4",
|
|
546
|
-
children: /* @__PURE__ */
|
|
547
|
+
children: /* @__PURE__ */ c("div", {
|
|
547
548
|
className: "bg-card border border-border rounded-lg shadow-xl max-w-md w-full p-6",
|
|
548
549
|
children: [
|
|
549
|
-
/* @__PURE__ */
|
|
550
|
+
/* @__PURE__ */ s("h3", {
|
|
550
551
|
className: "text-lg font-semibold text-foreground mb-2",
|
|
551
552
|
children: "Confirm Default Account Change"
|
|
552
553
|
}),
|
|
553
|
-
/* @__PURE__ */
|
|
554
|
+
/* @__PURE__ */ c("p", {
|
|
554
555
|
className: "text-sm text-muted-foreground mb-4",
|
|
555
556
|
children: [
|
|
556
557
|
"You are about to set",
|
|
557
558
|
" ",
|
|
558
|
-
/* @__PURE__ */
|
|
559
|
+
/* @__PURE__ */ s("strong", {
|
|
559
560
|
className: "text-foreground",
|
|
560
|
-
children:
|
|
561
|
+
children: q?.name
|
|
561
562
|
}),
|
|
562
563
|
" as your default billing account and save your changes."
|
|
563
564
|
]
|
|
564
565
|
}),
|
|
565
|
-
|
|
566
|
+
Y && Y.id !== q?.id && /* @__PURE__ */ s("div", {
|
|
566
567
|
className: "mb-4 p-3 bg-status-warning-bg-subtle border border-border-subtle rounded-md",
|
|
567
|
-
children: /* @__PURE__ */
|
|
568
|
+
children: /* @__PURE__ */ c("div", {
|
|
568
569
|
className: "flex items-start gap-2",
|
|
569
|
-
children: [/* @__PURE__ */
|
|
570
|
+
children: [/* @__PURE__ */ s("svg", {
|
|
570
571
|
className: "size-5 text-status-warning-text flex-shrink-0 mt-0.5",
|
|
571
572
|
fill: "none",
|
|
572
573
|
viewBox: "0 0 24 24",
|
|
573
574
|
stroke: "currentColor",
|
|
574
|
-
children: /* @__PURE__ */
|
|
575
|
+
children: /* @__PURE__ */ s("path", {
|
|
575
576
|
strokeLinecap: "round",
|
|
576
577
|
strokeLinejoin: "round",
|
|
577
578
|
strokeWidth: 2,
|
|
578
579
|
d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
|
|
579
580
|
})
|
|
580
|
-
}), /* @__PURE__ */
|
|
581
|
+
}), /* @__PURE__ */ c("div", {
|
|
581
582
|
className: "text-sm",
|
|
582
|
-
children: [/* @__PURE__ */
|
|
583
|
+
children: [/* @__PURE__ */ s("p", {
|
|
583
584
|
className: "font-medium text-status-warning-text",
|
|
584
585
|
children: "Current default will change"
|
|
585
|
-
}), /* @__PURE__ */
|
|
586
|
+
}), /* @__PURE__ */ c("p", {
|
|
586
587
|
className: "text-status-warning-text mt-0.5",
|
|
587
|
-
children: [/* @__PURE__ */
|
|
588
|
+
children: [/* @__PURE__ */ s("strong", { children: Y.name }), " will no longer be the default account."]
|
|
588
589
|
})]
|
|
589
590
|
})]
|
|
590
591
|
})
|
|
591
592
|
}),
|
|
592
|
-
/* @__PURE__ */
|
|
593
|
+
/* @__PURE__ */ c("div", {
|
|
593
594
|
className: "flex justify-end gap-3",
|
|
594
|
-
children: [/* @__PURE__ */
|
|
595
|
+
children: [/* @__PURE__ */ s("button", {
|
|
595
596
|
type: "button",
|
|
596
597
|
onClick: () => {
|
|
597
|
-
|
|
598
|
+
A(!1), j(!1), N((e) => ({
|
|
598
599
|
...e,
|
|
599
|
-
isDefault:
|
|
600
|
+
isDefault: q?.isDefault || !1
|
|
600
601
|
}));
|
|
601
602
|
},
|
|
602
|
-
disabled:
|
|
603
|
+
disabled: C,
|
|
603
604
|
className: "px-4 py-2 text-sm font-medium text-foreground border border-border rounded-md hover:bg-muted transition-colors disabled:opacity-50",
|
|
604
605
|
children: "Cancel"
|
|
605
|
-
}), /* @__PURE__ */
|
|
606
|
+
}), /* @__PURE__ */ c("button", {
|
|
606
607
|
type: "button",
|
|
607
|
-
onClick:
|
|
608
|
-
disabled:
|
|
608
|
+
onClick: Q,
|
|
609
|
+
disabled: C,
|
|
609
610
|
className: "px-4 py-2 text-sm font-medium bg-primary text-primary-foreground rounded-md hover:bg-primary/90 disabled:opacity-50 transition-colors flex items-center gap-2",
|
|
610
|
-
children: [
|
|
611
|
+
children: [C && /* @__PURE__ */ c("svg", {
|
|
611
612
|
className: "size-4 animate-spin",
|
|
612
613
|
fill: "none",
|
|
613
614
|
viewBox: "0 0 24 24",
|
|
614
|
-
children: [/* @__PURE__ */
|
|
615
|
+
children: [/* @__PURE__ */ s("circle", {
|
|
615
616
|
className: "opacity-25",
|
|
616
617
|
cx: "12",
|
|
617
618
|
cy: "12",
|
|
618
619
|
r: "10",
|
|
619
620
|
stroke: "currentColor",
|
|
620
621
|
strokeWidth: "4"
|
|
621
|
-
}), /* @__PURE__ */
|
|
622
|
+
}), /* @__PURE__ */ s("path", {
|
|
622
623
|
className: "opacity-75",
|
|
623
624
|
fill: "currentColor",
|
|
624
625
|
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
625
626
|
})]
|
|
626
|
-
}),
|
|
627
|
+
}), C ? "Saving..." : "Save Changes"]
|
|
627
628
|
})]
|
|
628
629
|
})
|
|
629
630
|
]
|
|
630
631
|
})
|
|
631
632
|
})] })
|
|
632
633
|
]
|
|
633
|
-
}) : /* @__PURE__ */
|
|
634
|
+
}) : /* @__PURE__ */ s(t, { message: "You don't have permission to manage billing settings." });
|
|
634
635
|
};
|
|
635
636
|
//#endregion
|
|
636
|
-
export {
|
|
637
|
+
export { f as SettingsPage };
|
|
637
638
|
|
|
638
639
|
//# sourceMappingURL=SettingsPage.js.map
|