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