@carlonicora/nextjs-jsonapi 6.6.0 → 6.7.0

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 (102) hide show
  1. package/dist/{BlockNoteEditor-E4V7AEG2.js → BlockNoteEditor-BSFR2GPI.js} +19 -19
  2. package/dist/{BlockNoteEditor-E4V7AEG2.js.map → BlockNoteEditor-BSFR2GPI.js.map} +1 -1
  3. package/dist/{BlockNoteEditor-MWGVWNSE.mjs → BlockNoteEditor-HWJBQAKG.mjs} +4 -4
  4. package/dist/{BlockNoteViewer-VNU7WVN5.mjs → BlockNoteViewer-IIBUU7J7.mjs} +2 -2
  5. package/dist/{BlockNoteViewer-LGRKM7OA.js → BlockNoteViewer-NHS6CCMS.js} +3 -3
  6. package/dist/{BlockNoteViewer-LGRKM7OA.js.map → BlockNoteViewer-NHS6CCMS.js.map} +1 -1
  7. package/dist/{auth.interface-D5606g19.d.ts → auth.interface-B4tRE0k0.d.ts} +2 -0
  8. package/dist/{auth.interface-tsOuc0Fi.d.mts → auth.interface-DuX87BZ3.d.mts} +2 -0
  9. package/dist/billing/index.js +492 -492
  10. package/dist/billing/index.mjs +3 -3
  11. package/dist/{chunk-AMN2XDN5.js → chunk-3HOJNAZB.js} +8 -8
  12. package/dist/{chunk-AMN2XDN5.js.map → chunk-3HOJNAZB.js.map} +1 -1
  13. package/dist/{chunk-OJAIKQR2.js → chunk-6KE7UBYY.js} +427 -233
  14. package/dist/chunk-6KE7UBYY.js.map +1 -0
  15. package/dist/{chunk-F2MZ7GY6.js → chunk-73XWQA6U.js} +4 -4
  16. package/dist/{chunk-F2MZ7GY6.js.map → chunk-73XWQA6U.js.map} +1 -1
  17. package/dist/{chunk-IQ2XYAB5.mjs → chunk-EC4PQ44E.mjs} +2 -2
  18. package/dist/{chunk-RSMBRI3E.mjs → chunk-OYRJ32KR.mjs} +2 -2
  19. package/dist/{chunk-R2XBVIO5.js → chunk-PCCUPEBU.js} +1066 -873
  20. package/dist/chunk-PCCUPEBU.js.map +1 -0
  21. package/dist/{chunk-AEVLFZRK.js → chunk-PYDDFFQM.js} +3 -3
  22. package/dist/{chunk-AEVLFZRK.js.map → chunk-PYDDFFQM.js.map} +1 -1
  23. package/dist/{chunk-7GB5MR77.mjs → chunk-QNIWATQD.mjs} +195 -1
  24. package/dist/chunk-QNIWATQD.mjs.map +1 -0
  25. package/dist/{chunk-IDV534SJ.mjs → chunk-S4NKWMX5.mjs} +3729 -3536
  26. package/dist/chunk-S4NKWMX5.mjs.map +1 -0
  27. package/dist/{chunk-PDS57QPD.mjs → chunk-XYKDBOCE.mjs} +2 -2
  28. package/dist/client/index.js +4 -4
  29. package/dist/client/index.mjs +3 -3
  30. package/dist/components/index.d.mts +39 -4
  31. package/dist/components/index.d.ts +39 -4
  32. package/dist/components/index.js +12 -4
  33. package/dist/components/index.js.map +1 -1
  34. package/dist/components/index.mjs +11 -3
  35. package/dist/contexts/index.js +4 -4
  36. package/dist/contexts/index.mjs +3 -3
  37. package/dist/core/index.d.mts +115 -5
  38. package/dist/core/index.d.ts +115 -5
  39. package/dist/core/index.js +14 -2
  40. package/dist/core/index.js.map +1 -1
  41. package/dist/core/index.mjs +13 -1
  42. package/dist/email-automations/index.js +92 -92
  43. package/dist/email-automations/index.mjs +3 -3
  44. package/dist/features/analytics/index.js +121 -121
  45. package/dist/features/analytics/index.mjs +4 -4
  46. package/dist/features/analytics/server.js +4 -4
  47. package/dist/features/analytics/server.mjs +2 -2
  48. package/dist/features/blog/index.js +150 -150
  49. package/dist/features/blog/index.mjs +3 -3
  50. package/dist/features/blog/server.js +16 -16
  51. package/dist/features/blog/server.mjs +1 -1
  52. package/dist/features/help/index.js +37 -37
  53. package/dist/features/help/index.mjs +3 -3
  54. package/dist/features/tokenusage/index.js +127 -127
  55. package/dist/features/tokenusage/index.mjs +4 -4
  56. package/dist/index.d.mts +3 -3
  57. package/dist/index.d.ts +3 -3
  58. package/dist/index.js +15 -3
  59. package/dist/index.js.map +1 -1
  60. package/dist/index.mjs +14 -2
  61. package/dist/{s3.service-BNBD9YTg.d.mts → s3.service-CRGJbO-6.d.mts} +1 -1
  62. package/dist/{s3.service-Da7C2gtt.d.ts → s3.service-DZG-VyLY.d.ts} +1 -1
  63. package/dist/server/index.d.mts +2 -2
  64. package/dist/server/index.d.ts +2 -2
  65. package/dist/server/index.js +3 -3
  66. package/dist/server/index.mjs +2 -2
  67. package/messages/en.json +24 -0
  68. package/messages/it.json +24 -0
  69. package/package.json +1 -1
  70. package/src/components/index.ts +1 -0
  71. package/src/core/index.ts +5 -0
  72. package/src/core/registry/ModuleRegistry.ts +13 -0
  73. package/src/features/account-deletion/account-deletion.module.ts +13 -0
  74. package/src/features/account-deletion/components/AccountDeletionAdminTrigger.tsx +183 -0
  75. package/src/features/account-deletion/components/AccountDeletionCancelledNotice.tsx +51 -0
  76. package/src/features/account-deletion/components/AccountDeletionKeepContainer.tsx +74 -0
  77. package/src/features/account-deletion/components/index.ts +3 -0
  78. package/src/features/account-deletion/data/__tests__/AccountDeletion.spec.ts +89 -0
  79. package/src/features/account-deletion/data/account-deletion.interface.ts +22 -0
  80. package/src/features/account-deletion/data/account-deletion.service.ts +69 -0
  81. package/src/features/account-deletion/data/account-deletion.ts +90 -0
  82. package/src/features/account-deletion/data/index.ts +3 -0
  83. package/src/features/account-deletion/index.ts +4 -0
  84. package/src/features/account-deletion/utils/__tests__/account-deletion-notice.spec.ts +40 -0
  85. package/src/features/account-deletion/utils/account-deletion-notice.ts +27 -0
  86. package/src/features/account-deletion/utils/index.ts +1 -0
  87. package/src/features/auth/components/forms/Cookies.tsx +3 -0
  88. package/src/features/auth/components/forms/TwoFactorChallenge.tsx +2 -0
  89. package/src/features/auth/data/__tests__/auth.spec.ts +36 -0
  90. package/src/features/auth/data/auth.interface.ts +2 -0
  91. package/src/features/auth/data/auth.service.ts +4 -0
  92. package/src/features/auth/data/auth.ts +7 -0
  93. package/src/features/user/contexts/UserContext.tsx +8 -0
  94. package/dist/chunk-7GB5MR77.mjs.map +0 -1
  95. package/dist/chunk-IDV534SJ.mjs.map +0 -1
  96. package/dist/chunk-OJAIKQR2.js.map +0 -1
  97. package/dist/chunk-R2XBVIO5.js.map +0 -1
  98. /package/dist/{BlockNoteEditor-MWGVWNSE.mjs.map → BlockNoteEditor-HWJBQAKG.mjs.map} +0 -0
  99. /package/dist/{BlockNoteViewer-VNU7WVN5.mjs.map → BlockNoteViewer-IIBUU7J7.mjs.map} +0 -0
  100. /package/dist/{chunk-IQ2XYAB5.mjs.map → chunk-EC4PQ44E.mjs.map} +0 -0
  101. /package/dist/{chunk-RSMBRI3E.mjs.map → chunk-OYRJ32KR.mjs.map} +0 -0
  102. /package/dist/{chunk-PDS57QPD.mjs.map → chunk-XYKDBOCE.mjs.map} +0 -0
@@ -81,10 +81,10 @@
81
81
 
82
82
 
83
83
 
84
- var _chunkR2XBVIO5js = require('../chunk-R2XBVIO5.js');
84
+ var _chunkPCCUPEBUjs = require('../chunk-PCCUPEBU.js');
85
85
 
86
86
 
87
- var _chunkAMN2XDN5js = require('../chunk-AMN2XDN5.js');
87
+ var _chunk3HOJNAZBjs = require('../chunk-3HOJNAZB.js');
88
88
 
89
89
 
90
90
  var _chunkG4JR3SFVjs = require('../chunk-G4JR3SFV.js');
@@ -114,7 +114,7 @@ var _chunkG4JR3SFVjs = require('../chunk-G4JR3SFV.js');
114
114
 
115
115
 
116
116
 
117
- var _chunkOJAIKQR2js = require('../chunk-OJAIKQR2.js');
117
+ var _chunk6KE7UBYYjs = require('../chunk-6KE7UBYY.js');
118
118
  require('../chunk-GHE4VT2R.js');
119
119
  require('../chunk-LXKSUWAV.js');
120
120
  require('../chunk-JTPRJNT2.js');
@@ -127,7 +127,7 @@ var _chunk7QVYU63Ejs = require('../chunk-7QVYU63E.js');
127
127
  var _nextintl = require('next-intl');
128
128
  var _lucidereact = require('lucide-react');
129
129
  var _jsxruntime = require('react/jsx-runtime');
130
- var SUBSCRIPTION_STATUSES = Object.values(_chunkOJAIKQR2js.SubscriptionStatus);
130
+ var SUBSCRIPTION_STATUSES = Object.values(_chunk6KE7UBYYjs.SubscriptionStatus);
131
131
  function getStatusBadgeVariant(status) {
132
132
  switch (status) {
133
133
  case "active" /* ACTIVE */:
@@ -159,43 +159,43 @@ function SubscriptionSummaryCard({
159
159
  onManageClick
160
160
  }) {
161
161
  const t = _nextintl.useTranslations.call(void 0, );
162
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
162
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
163
163
  if (loading) {
164
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
165
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
166
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.subscriptions.title") }),
164
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
165
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
166
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.subscriptions.title") }),
167
167
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CreditCard, { className: "h-4 w-4 text-muted-foreground" })
168
168
  ] }),
169
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardContent, { children: [
170
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-6 w-32 mb-2" }),
171
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-4 w-24 mb-1" }),
172
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-4 w-40" })
169
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: [
170
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-6 w-32 mb-2" }),
171
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-4 w-24 mb-1" }),
172
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-4 w-40" })
173
173
  ] })
174
174
  ] });
175
175
  }
176
176
  if (error) {
177
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
178
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
179
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.subscriptions.title") }),
177
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
178
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
179
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.subscriptions.title") }),
180
180
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CreditCard, { className: "h-4 w-4 text-muted-foreground" })
181
181
  ] }),
182
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) })
182
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) })
183
183
  ] });
184
184
  }
185
185
  const activeSubscriptions = subscriptions.filter(
186
186
  (sub) => sub.status === "active" /* ACTIVE */ || sub.status === "trialing" /* TRIALING */ || sub.status === "past_due" /* PAST_DUE */
187
187
  );
188
188
  const primarySubscription = activeSubscriptions[0];
189
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { className: "cursor-pointer hover:bg-accent/50 transition-colors", onClick: onManageClick, children: [
190
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
191
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.subscriptions.title") }),
189
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { className: "cursor-pointer hover:bg-accent/50 transition-colors", onClick: onManageClick, children: [
190
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
191
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.subscriptions.title") }),
192
192
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CreditCard, { className: "h-4 w-4 text-muted-foreground" })
193
193
  ] }),
194
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: !primarySubscription ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
194
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: !primarySubscription ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
195
195
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xl font-bold text-muted-foreground", children: t("billing.ui.cards.subscriptions.empty_title") }),
196
196
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs text-muted-foreground", children: t("billing.ui.cards.subscriptions.empty_description") }),
197
197
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
198
- _chunkR2XBVIO5js.Button,
198
+ _chunkPCCUPEBUjs.Button,
199
199
  {
200
200
  variant: "outline",
201
201
  size: "sm",
@@ -213,8 +213,8 @@ function SubscriptionSummaryCard({
213
213
  ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
214
214
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
215
215
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xl font-bold", children: formatPlanName(primarySubscription, t("billing.ui.cards.subscriptions.fallback_name")) }),
216
- primarySubscription.status === "past_due" /* PAST_DUE */ ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softRed", children: t("billing.ui.cards.subscriptions.payment_failing") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
217
- _chunkR2XBVIO5js.Badge,
216
+ primarySubscription.status === "past_due" /* PAST_DUE */ ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softRed", children: t("billing.ui.cards.subscriptions.payment_failing") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
217
+ _chunkPCCUPEBUjs.Badge,
218
218
  {
219
219
  variant: primarySubscription.cancelAtPeriodEnd ? "secondary" : getStatusBadgeVariant(primarySubscription.status),
220
220
  children: primarySubscription.cancelAtPeriodEnd ? t("billing.ui.cards.subscriptions.canceling") : SUBSCRIPTION_STATUSES.includes(primarySubscription.status) ? t(`billing.ui.subscription_status.${primarySubscription.status}`) : primarySubscription.status
@@ -222,11 +222,11 @@ function SubscriptionSummaryCard({
222
222
  )
223
223
  ] }),
224
224
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs text-muted-foreground", children: !_optionalChain([primarySubscription, 'access', _8 => _8.price, 'optionalAccess', _9 => _9.isTrial]) ? t("billing.ui.cards.subscriptions.ends_on", {
225
- date: _chunkR2XBVIO5js.formatDate.call(void 0, primarySubscription.currentPeriodEnd, fmt)
225
+ date: _chunkPCCUPEBUjs.formatDate.call(void 0, primarySubscription.currentPeriodEnd, fmt)
226
226
  }) : primarySubscription.cancelAtPeriodEnd ? t("billing.ui.cards.subscriptions.cancels_on", {
227
- date: _chunkR2XBVIO5js.formatDate.call(void 0, primarySubscription.currentPeriodEnd, fmt)
227
+ date: _chunkPCCUPEBUjs.formatDate.call(void 0, primarySubscription.currentPeriodEnd, fmt)
228
228
  }) : t("billing.ui.cards.subscriptions.renews_on", {
229
- date: _chunkR2XBVIO5js.formatDate.call(void 0, primarySubscription.currentPeriodEnd, fmt)
229
+ date: _chunkPCCUPEBUjs.formatDate.call(void 0, primarySubscription.currentPeriodEnd, fmt)
230
230
  }) }),
231
231
  activeSubscriptions.length > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs text-muted-foreground", children: t("billing.ui.cards.subscriptions.more", { count: activeSubscriptions.length - 1 }) })
232
232
  ] }) })
@@ -260,37 +260,37 @@ function PaymentMethodSummaryCard({
260
260
  }) {
261
261
  const t = _nextintl.useTranslations.call(void 0, );
262
262
  if (loading) {
263
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
264
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
265
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.payment_method.title") }),
263
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
264
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
265
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.payment_method.title") }),
266
266
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wallet, { className: "h-4 w-4 text-muted-foreground" })
267
267
  ] }),
268
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardContent, { children: [
269
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-6 w-32 mb-2" }),
270
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-4 w-24" })
268
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: [
269
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-6 w-32 mb-2" }),
270
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-4 w-24" })
271
271
  ] })
272
272
  ] });
273
273
  }
274
274
  if (error) {
275
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
276
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
277
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.payment_method.title") }),
275
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
276
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
277
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.payment_method.title") }),
278
278
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wallet, { className: "h-4 w-4 text-muted-foreground" })
279
279
  ] }),
280
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) })
280
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) })
281
281
  ] });
282
282
  }
283
283
  const defaultMethod = paymentMethods.find((pm) => pm.id === defaultPaymentMethodId) || paymentMethods[0];
284
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { className: "cursor-pointer hover:bg-accent/50 transition-colors", onClick: onManageClick, children: [
285
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
286
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.payment_method.title") }),
284
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { className: "cursor-pointer hover:bg-accent/50 transition-colors", onClick: onManageClick, children: [
285
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
286
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.payment_method.title") }),
287
287
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wallet, { className: "h-4 w-4 text-muted-foreground" })
288
288
  ] }),
289
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: paymentMethods.length === 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
289
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: paymentMethods.length === 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
290
290
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xl font-bold text-muted-foreground", children: t("billing.ui.cards.payment_method.empty_title") }),
291
291
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs text-muted-foreground", children: t("billing.ui.cards.payment_method.empty_description") }),
292
292
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
293
- _chunkR2XBVIO5js.Button,
293
+ _chunkPCCUPEBUjs.Button,
294
294
  {
295
295
  variant: "outline",
296
296
  size: "sm",
@@ -339,13 +339,13 @@ function formatBalance(balance, currency, locale) {
339
339
  _chunk7QVYU63Ejs.__name.call(void 0, formatBalance, "formatBalance");
340
340
  function CustomerInfoCard({ customer, loading, error }) {
341
341
  const t = _nextintl.useTranslations.call(void 0, );
342
- const locale = _chunkOJAIKQR2js.useI18nLocale.call(void 0, );
342
+ const locale = _chunk6KE7UBYYjs.useI18nLocale.call(void 0, );
343
343
  const [portalLoading, setPortalLoading] = _react.useState.call(void 0, false);
344
344
  const handlePortalClick = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async (e) => {
345
345
  e.stopPropagation();
346
346
  setPortalLoading(true);
347
347
  try {
348
- const { url } = await _chunkOJAIKQR2js.StripeCustomerService.createPortalSession();
348
+ const { url } = await _chunk6KE7UBYYjs.StripeCustomerService.createPortalSession();
349
349
  window.open(url, "_blank");
350
350
  } catch (err) {
351
351
  console.error("[CustomerInfoCard] Failed to create portal session:", err);
@@ -354,45 +354,45 @@ function CustomerInfoCard({ customer, loading, error }) {
354
354
  }
355
355
  }, "handlePortalClick");
356
356
  if (loading) {
357
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
358
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
359
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.cards.customer.title") }),
357
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
358
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
359
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.cards.customer.title") }),
360
360
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.User, { className: "h-4 w-4 text-muted-foreground" })
361
361
  ] }),
362
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardContent, { children: [
363
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-6 w-32 mb-2" }),
364
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-4 w-48 mb-1" }),
365
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-4 w-24" })
362
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: [
363
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-6 w-32 mb-2" }),
364
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-4 w-48 mb-1" }),
365
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-4 w-24" })
366
366
  ] })
367
367
  ] });
368
368
  }
369
369
  if (error) {
370
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
371
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
372
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.cards.customer.title") }),
370
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
371
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
372
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.cards.customer.title") }),
373
373
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.User, { className: "h-4 w-4 text-muted-foreground" })
374
374
  ] }),
375
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) })
375
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) })
376
376
  ] });
377
377
  }
378
378
  if (!customer) {
379
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
380
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
381
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.cards.customer.title") }),
379
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
380
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
381
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.cards.customer.title") }),
382
382
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.User, { className: "h-4 w-4 text-muted-foreground" })
383
383
  ] }),
384
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardContent, { children: [
384
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: [
385
385
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xl font-bold text-muted-foreground", children: t("billing.ui.cards.customer.not_set_up") }),
386
386
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs text-muted-foreground", children: t("billing.ui.cards.customer.not_set_up_description") })
387
387
  ] })
388
388
  ] });
389
389
  }
390
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
391
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
392
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.cards.customer.title") }),
390
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
391
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
392
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.cards.customer.title") }),
393
393
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.User, { className: "h-4 w-4 text-muted-foreground" })
394
394
  ] }),
395
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
395
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
396
396
  customer.name && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xl font-bold", children: customer.name }),
397
397
  customer.email && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-muted-foreground", children: customer.email }),
398
398
  customer.balance !== void 0 && customer.balance !== 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-sm", children: [
@@ -402,7 +402,7 @@ function CustomerInfoCard({ customer, loading, error }) {
402
402
  ] }),
403
403
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: customer.balance < 0 ? "text-success" : "text-destructive", children: formatBalance(customer.balance, customer.currency, locale) })
404
404
  ] }),
405
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", size: "sm", className: "mt-2", onClick: handlePortalClick, disabled: portalLoading, children: [
405
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", size: "sm", className: "mt-2", onClick: handlePortalClick, disabled: portalLoading, children: [
406
406
  portalLoading ? t("common.loading") : t("billing.ui.cards.customer.manage_portal"),
407
407
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-4 w-4 ms-1" })
408
408
  ] })
@@ -415,7 +415,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, CustomerInfoCard, "CustomerInfoCard");
415
415
 
416
416
 
417
417
 
418
- var INVOICE_STATUSES = Object.values(_chunkOJAIKQR2js.InvoiceStatus);
418
+ var INVOICE_STATUSES = Object.values(_chunk6KE7UBYYjs.InvoiceStatus);
419
419
  function getStatusBadgeVariant2(status) {
420
420
  switch (status) {
421
421
  case "paid" /* PAID */:
@@ -440,46 +440,46 @@ function formatAmount(amount, currency, locale) {
440
440
  _chunk7QVYU63Ejs.__name.call(void 0, formatAmount, "formatAmount");
441
441
  function InvoicesSummaryCard({ invoices, loading, error, onViewAllClick }) {
442
442
  const t = _nextintl.useTranslations.call(void 0, );
443
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
443
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
444
444
  if (loading) {
445
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
446
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
447
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.cards.invoices.title") }),
445
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
446
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
447
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.cards.invoices.title") }),
448
448
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ReceiptIcon, { className: "h-4 w-4 text-muted-foreground" })
449
449
  ] }),
450
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardContent, { children: [
451
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-6 w-24 mb-2" }),
452
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-4 w-32 mb-1" }),
453
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-4 w-20" })
450
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: [
451
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-6 w-24 mb-2" }),
452
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-4 w-32 mb-1" }),
453
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-4 w-20" })
454
454
  ] })
455
455
  ] });
456
456
  }
457
457
  if (error) {
458
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
459
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
460
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.cards.invoices.title") }),
458
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
459
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
460
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.cards.invoices.title") }),
461
461
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ReceiptIcon, { className: "h-4 w-4 text-muted-foreground" })
462
462
  ] }),
463
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) })
463
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) })
464
464
  ] });
465
465
  }
466
466
  const latestInvoice = _nullishCoalesce(invoices.find((inv) => inv.status !== "void" /* VOID */), () => ( invoices[0]));
467
467
  const paidInvoices = invoices.filter((inv) => inv.status === "paid" /* PAID */);
468
468
  const openInvoices = invoices.filter((inv) => inv.status === "open" /* OPEN */);
469
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { className: "cursor-pointer hover:bg-accent/50 transition-colors", onClick: onViewAllClick, children: [
470
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
471
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.cards.invoices.title") }),
469
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { className: "cursor-pointer hover:bg-accent/50 transition-colors", onClick: onViewAllClick, children: [
470
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
471
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.cards.invoices.title") }),
472
472
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ReceiptIcon, { className: "h-4 w-4 text-muted-foreground" })
473
473
  ] }),
474
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: invoices.length === 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
474
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: invoices.length === 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
475
475
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xl font-bold text-muted-foreground", children: t("billing.ui.invoices.empty_title") }),
476
476
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs text-muted-foreground", children: t("billing.ui.cards.invoices.empty_description") })
477
477
  ] }) : latestInvoice ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
478
478
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
479
479
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xl font-bold", children: formatAmount(latestInvoice.total, latestInvoice.currency, fmt.locale) }),
480
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: getStatusBadgeVariant2(latestInvoice.status), children: INVOICE_STATUSES.includes(latestInvoice.status) ? t(`billing.ui.invoice_status.${latestInvoice.status}`) : latestInvoice.status })
480
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: getStatusBadgeVariant2(latestInvoice.status), children: INVOICE_STATUSES.includes(latestInvoice.status) ? t(`billing.ui.invoice_status.${latestInvoice.status}`) : latestInvoice.status })
481
481
  ] }),
482
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-muted-foreground", children: latestInvoice.stripeInvoiceNumber || t("billing.ui.cards.invoices.invoice_from", { date: _chunkR2XBVIO5js.formatDate.call(void 0, latestInvoice.periodStart, fmt) }) }),
482
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-muted-foreground", children: latestInvoice.stripeInvoiceNumber || t("billing.ui.cards.invoices.invoice_from", { date: _chunkPCCUPEBUjs.formatDate.call(void 0, latestInvoice.periodStart, fmt) }) }),
483
483
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 text-xs text-muted-foreground", children: [
484
484
  paidInvoices.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: t("billing.ui.cards.invoices.paid_count", { count: paidInvoices.length }) }),
485
485
  openInvoices.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-warning", children: t("billing.ui.cards.invoices.open_count", { count: openInvoices.length }) }),
@@ -512,26 +512,26 @@ function BillingUsageSummaryCard({
512
512
  onViewDetailsClick
513
513
  }) {
514
514
  const t = _nextintl.useTranslations.call(void 0, );
515
- const locale = _chunkOJAIKQR2js.useI18nLocale.call(void 0, );
515
+ const locale = _chunk6KE7UBYYjs.useI18nLocale.call(void 0, );
516
516
  if (loading) {
517
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
518
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
519
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.cards.usage.title") }),
517
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
518
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
519
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.cards.usage.title") }),
520
520
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Activity, { className: "h-4 w-4 text-muted-foreground" })
521
521
  ] }),
522
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardContent, { children: [
523
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-6 w-24 mb-2" }),
524
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-4 w-32" })
522
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: [
523
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-6 w-24 mb-2" }),
524
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-4 w-32" })
525
525
  ] })
526
526
  ] });
527
527
  }
528
528
  if (error) {
529
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
530
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
531
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.cards.usage.title") }),
529
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
530
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
531
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.cards.usage.title") }),
532
532
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Activity, { className: "h-4 w-4 text-muted-foreground" })
533
533
  ] }),
534
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) })
534
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) })
535
535
  ] });
536
536
  }
537
537
  const totalUsage = Object.values(summaries).reduce((acc, summary) => {
@@ -539,12 +539,12 @@ function BillingUsageSummaryCard({
539
539
  }, 0);
540
540
  const primaryMeter = meters.find((m) => _optionalChain([summaries, 'access', _17 => _17[m.id], 'optionalAccess', _18 => _18.aggregatedValue]));
541
541
  const primarySummary = primaryMeter ? summaries[primaryMeter.id] : null;
542
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { className: "cursor-pointer hover:bg-accent/50 transition-colors", onClick: onViewDetailsClick, children: [
543
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
544
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.cards.usage.title") }),
542
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { className: "cursor-pointer hover:bg-accent/50 transition-colors", onClick: onViewDetailsClick, children: [
543
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
544
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.cards.usage.title") }),
545
545
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Activity, { className: "h-4 w-4 text-muted-foreground" })
546
546
  ] }),
547
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: meters.length === 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
547
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: meters.length === 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
548
548
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xl font-bold text-muted-foreground", children: t("billing.ui.cards.usage.no_meters") }),
549
549
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs text-muted-foreground", children: t("billing.ui.cards.usage.no_meters_description") })
550
550
  ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
@@ -601,7 +601,7 @@ function PaymentMethodForm({
601
601
  const fetchSetupIntent = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
602
602
  setLoading(true);
603
603
  try {
604
- const intent = await _chunkOJAIKQR2js.StripeCustomerService.createSetupIntent();
604
+ const intent = await _chunk6KE7UBYYjs.StripeCustomerService.createSetupIntent();
605
605
  setSetupIntent(intent);
606
606
  } catch (err) {
607
607
  console.error("[PaymentMethodForm] Failed to create setup intent:", err);
@@ -639,7 +639,7 @@ function PaymentMethodForm({
639
639
  return;
640
640
  }
641
641
  if ((alwaysSetDefault || setAsDefault) && _optionalChain([confirmedSetupIntent, 'optionalAccess', _19 => _19.payment_method])) {
642
- await _chunkOJAIKQR2js.StripeCustomerService.setDefaultPaymentMethod({
642
+ await _chunk6KE7UBYYjs.StripeCustomerService.setDefaultPaymentMethod({
643
643
  paymentMethodId: typeof confirmedSetupIntent.payment_method === "string" ? confirmedSetupIntent.payment_method : confirmedSetupIntent.payment_method.id
644
644
  });
645
645
  }
@@ -655,7 +655,7 @@ function PaymentMethodForm({
655
655
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center py-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground", children: t("billing.ui.payment_form.loading") }) });
656
656
  }
657
657
  if (!setupIntent && error) {
658
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Alert, { variant: "destructive", className: "bg-red-50 border-red-200", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.AlertDescription, { children: error }) });
658
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Alert, { variant: "destructive", className: "bg-red-50 border-red-200", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.AlertDescription, { children: error }) });
659
659
  }
660
660
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: handleSubmit, className: "flex flex-col gap-y-4", children: [
661
661
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-md border border-gray-300 p-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -679,19 +679,19 @@ function PaymentMethodForm({
679
679
  ) }),
680
680
  !alwaysSetDefault && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-x-2", children: [
681
681
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
682
- _chunkR2XBVIO5js.Checkbox,
682
+ _chunkPCCUPEBUjs.Checkbox,
683
683
  {
684
684
  id: "setAsDefault",
685
685
  checked: setAsDefault,
686
686
  onCheckedChange: (checked) => setSetAsDefault(!!checked)
687
687
  }
688
688
  ),
689
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Label, { htmlFor: "setAsDefault", className: "cursor-pointer font-normal", children: t("billing.ui.payment_form.set_default") })
689
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Label, { htmlFor: "setAsDefault", className: "cursor-pointer font-normal", children: t("billing.ui.payment_form.set_default") })
690
690
  ] }),
691
- error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Alert, { variant: "destructive", className: "bg-red-50 border-red-200", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.AlertDescription, { children: error }) }),
691
+ error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Alert, { variant: "destructive", className: "bg-red-50 border-red-200", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.AlertDescription, { children: error }) }),
692
692
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-end gap-x-2", children: [
693
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { type: "button", variant: "outline", onClick: onCancel, disabled: isSubmitting || isLoading, children: t("ui.buttons.cancel") }),
694
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { type: "submit", disabled: !stripe || isSubmitting || isLoading, children: isSubmitting ? t("billing.ui.wizard.review.processing") : t("billing.ui.cards.payment_method.add_card") })
693
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { type: "button", variant: "outline", onClick: onCancel, disabled: isSubmitting || isLoading, children: t("ui.buttons.cancel") }),
694
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { type: "submit", disabled: !stripe || isSubmitting || isLoading, children: isSubmitting ? t("billing.ui.wizard.review.processing") : t("billing.ui.cards.payment_method.add_card") })
695
695
  ] })
696
696
  ] });
697
697
  }
@@ -708,10 +708,10 @@ function PaymentMethodEditor({ open, onOpenChange, onSuccess }) {
708
708
  const handleCancel = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
709
709
  onOpenChange(false);
710
710
  }, "handleCancel");
711
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogContent, { className: "max-w-md", children: [
712
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogHeader, { children: [
713
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogTitle, { children: t("billing.ui.payment_methods.add") }),
714
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogDescription, { children: t("billing.ui.payment_methods.add_description") })
711
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogContent, { className: "max-w-md", children: [
712
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogHeader, { children: [
713
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogTitle, { children: t("billing.ui.payment_methods.add") }),
714
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogDescription, { children: t("billing.ui.payment_methods.add_description") })
715
715
  ] }),
716
716
  open && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PaymentMethodForm, { onSuccess: handleSuccess, onCancel: handleCancel })
717
717
  ] }) });
@@ -737,7 +737,7 @@ function PaymentMethodCard({ paymentMethod, onUpdate }) {
737
737
  _react.useEffect.call(void 0, () => {
738
738
  const loadCustomer = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
739
739
  try {
740
- const fetchedCustomer = await _chunkOJAIKQR2js.StripeCustomerService.getCustomer();
740
+ const fetchedCustomer = await _chunk6KE7UBYYjs.StripeCustomerService.getCustomer();
741
741
  setCustomer(fetchedCustomer);
742
742
  } catch (error) {
743
743
  console.error("[PaymentMethodCard] Failed to load customer:", error);
@@ -754,7 +754,7 @@ function PaymentMethodCard({ paymentMethod, onUpdate }) {
754
754
  const handleSetDefault = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
755
755
  setLoading(true);
756
756
  try {
757
- await _chunkOJAIKQR2js.StripeCustomerService.setDefaultPaymentMethod({ paymentMethodId: paymentMethod.id });
757
+ await _chunk6KE7UBYYjs.StripeCustomerService.setDefaultPaymentMethod({ paymentMethodId: paymentMethod.id });
758
758
  onUpdate();
759
759
  } catch (error) {
760
760
  console.error("[PaymentMethodCard] Failed to set as default:", error);
@@ -765,7 +765,7 @@ function PaymentMethodCard({ paymentMethod, onUpdate }) {
765
765
  const handleRemove = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
766
766
  setLoading(true);
767
767
  try {
768
- await _chunkOJAIKQR2js.StripeCustomerService.removePaymentMethod({ paymentMethodId: paymentMethod.id });
768
+ await _chunk6KE7UBYYjs.StripeCustomerService.removePaymentMethod({ paymentMethodId: paymentMethod.id });
769
769
  setShowRemoveDialog(false);
770
770
  onUpdate();
771
771
  } catch (error) {
@@ -774,16 +774,16 @@ function PaymentMethodCard({ paymentMethod, onUpdate }) {
774
774
  }
775
775
  }, "handleRemove");
776
776
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
777
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { className: "relative", children: [
778
- isDefault && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softGreen", className: "absolute end-2 top-2", children: t("billing.ui.payment_methods.default") }),
779
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center justify-between pb-2", children: [
777
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { className: "relative", children: [
778
+ isDefault && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softGreen", className: "absolute end-2 top-2", children: t("billing.ui.payment_methods.default") }),
779
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center justify-between pb-2", children: [
780
780
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-x-2", children: [
781
781
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-2xl", children: brandIcon }),
782
782
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium capitalize", children: brand })
783
783
  ] }),
784
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DropdownMenu, { children: [
785
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DropdownMenuTrigger, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
786
- _chunkR2XBVIO5js.Button,
784
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DropdownMenu, { children: [
785
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DropdownMenuTrigger, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
786
+ _chunkPCCUPEBUjs.Button,
787
787
  {
788
788
  render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", {}),
789
789
  nativeButton: false,
@@ -794,10 +794,10 @@ function PaymentMethodCard({ paymentMethod, onUpdate }) {
794
794
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.MoreVertical, { className: "h-4 w-4" })
795
795
  }
796
796
  ) }),
797
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DropdownMenuContent, { align: "end", children: [
798
- !isDefault && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DropdownMenuItem, { onClick: handleSetDefault, disabled: loading, children: t("billing.ui.payment_methods.set_default") }),
797
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DropdownMenuContent, { align: "end", children: [
798
+ !isDefault && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DropdownMenuItem, { onClick: handleSetDefault, disabled: loading, children: t("billing.ui.payment_methods.set_default") }),
799
799
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
800
- _chunkR2XBVIO5js.DropdownMenuItem,
800
+ _chunkPCCUPEBUjs.DropdownMenuItem,
801
801
  {
802
802
  onClick: () => setShowRemoveDialog(true),
803
803
  disabled: loading,
@@ -808,7 +808,7 @@ function PaymentMethodCard({ paymentMethod, onUpdate }) {
808
808
  ] })
809
809
  ] })
810
810
  ] }),
811
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-y-1", children: [
811
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-y-1", children: [
812
812
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-lg font-semibold", children: [
813
813
  "\u2022\u2022\u2022\u2022 ",
814
814
  last4
@@ -816,17 +816,17 @@ function PaymentMethodCard({ paymentMethod, onUpdate }) {
816
816
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-muted-foreground", children: t("billing.ui.payment_method.expires", { date: `${String(expMonth).padStart(2, "0")}/${expYear}` }) })
817
817
  ] }) })
818
818
  ] }),
819
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.AlertDialog, { open: showRemoveDialog, onOpenChange: setShowRemoveDialog, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.AlertDialogContent, { children: [
820
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.AlertDialogHeader, { children: [
821
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.AlertDialogTitle, { children: t("billing.ui.payment_methods.remove_title") }),
822
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.AlertDialogDescription, { children: [
819
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.AlertDialog, { open: showRemoveDialog, onOpenChange: setShowRemoveDialog, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.AlertDialogContent, { children: [
820
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.AlertDialogHeader, { children: [
821
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.AlertDialogTitle, { children: t("billing.ui.payment_methods.remove_title") }),
822
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.AlertDialogDescription, { children: [
823
823
  t("billing.ui.payment_methods.remove_description"),
824
824
  isDefault && ` ${t("billing.ui.payment_methods.remove_default_warning")}`
825
825
  ] })
826
826
  ] }),
827
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.AlertDialogFooter, { children: [
828
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.AlertDialogCancel, { disabled: loading, children: t("ui.buttons.cancel") }),
829
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.AlertDialogAction, { onClick: handleRemove, disabled: loading, className: "bg-red-600 hover:bg-red-700", children: loading ? t("billing.ui.payment_methods.removing") : t("ui.buttons.remove") })
827
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.AlertDialogFooter, { children: [
828
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.AlertDialogCancel, { disabled: loading, children: t("ui.buttons.cancel") }),
829
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.AlertDialogAction, { onClick: handleRemove, disabled: loading, className: "bg-red-600 hover:bg-red-700", children: loading ? t("billing.ui.payment_methods.removing") : t("ui.buttons.remove") })
830
830
  ] })
831
831
  ] }) })
832
832
  ] });
@@ -850,7 +850,7 @@ function PaymentMethodsContainer() {
850
850
  const loadPaymentMethods = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
851
851
  setLoading(true);
852
852
  try {
853
- const fetchedPaymentMethods = await _chunkOJAIKQR2js.StripeCustomerService.listPaymentMethods();
853
+ const fetchedPaymentMethods = await _chunk6KE7UBYYjs.StripeCustomerService.listPaymentMethods();
854
854
  setPaymentMethods(fetchedPaymentMethods);
855
855
  } catch (error) {
856
856
  console.error("[PaymentMethodsContainer] Failed to load payment methods:", error);
@@ -870,14 +870,14 @@ function PaymentMethodsContainer() {
870
870
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CreditCard, { className: "h-8 w-8" }),
871
871
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "text-primary text-3xl font-semibold", children: t("billing.ui.payment_methods.title") })
872
872
  ] }),
873
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { onClick: () => setShowAddPaymentMethod(true), children: t("billing.ui.payment_methods.add") })
873
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { onClick: () => setShowAddPaymentMethod(true), children: t("billing.ui.payment_methods.add") })
874
874
  ] }),
875
875
  paymentMethods.length === 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center justify-center gap-y-4 rounded-lg border-2 border-dashed border-gray-300 bg-muted/50 p-12", children: [
876
876
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CreditCard, { className: "h-16 w-16 text-muted-foreground" }),
877
877
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
878
878
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "mb-2 text-sm font-medium", children: t("billing.ui.payment_methods.empty_title") }),
879
879
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "mb-4 text-muted-foreground", children: t("billing.ui.payment_methods.empty_description") }),
880
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { onClick: () => setShowAddPaymentMethod(true), children: t("billing.ui.payment_methods.add_first") })
880
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { onClick: () => setShowAddPaymentMethod(true), children: t("billing.ui.payment_methods.add_first") })
881
881
  ] })
882
882
  ] }),
883
883
  paymentMethods.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PaymentMethodsList, { paymentMethods, onUpdate: loadPaymentMethods }),
@@ -933,7 +933,7 @@ var statusConfig = {
933
933
  function InvoiceStatusBadge({ status }) {
934
934
  const t = _nextintl.useTranslations.call(void 0, );
935
935
  const config = statusConfig[status] || statusConfig["draft" /* DRAFT */];
936
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: config.variant, children: t(config.label) });
936
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: config.variant, children: t(config.label) });
937
937
  }
938
938
  _chunk7QVYU63Ejs.__name.call(void 0, InvoiceStatusBadge, "InvoiceStatusBadge");
939
939
 
@@ -946,7 +946,7 @@ function InvoiceDetails({
946
946
  onInvoiceChange: _onInvoiceChange
947
947
  }) {
948
948
  const t = _nextintl.useTranslations.call(void 0, );
949
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
949
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
950
950
  const handleDownloadPDF = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
951
951
  if (invoice.stripePdfUrl) {
952
952
  window.open(invoice.stripePdfUrl, "_blank");
@@ -966,10 +966,10 @@ function InvoiceDetails({
966
966
  return invoice.stripeInvoiceId.slice(-8);
967
967
  }, "getInvoiceNumber");
968
968
  const productName = _optionalChain([invoice, 'access', _29 => _29.subscription, 'optionalAccess', _30 => _30.price, 'optionalAccess', _31 => _31.product, 'optionalAccess', _32 => _32.name]) || t("billing.ui.cards.subscriptions.fallback_name");
969
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogContent, { className: "max-w-2xl", children: [
970
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogHeader, { children: [
971
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogTitle, { children: t("billing.ui.invoice.title", { number: getInvoiceNumber() }) }),
972
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogDescription, { children: _chunkR2XBVIO5js.formatDate.call(void 0, invoice.periodStart, fmt) })
969
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogContent, { className: "max-w-2xl", children: [
970
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogHeader, { children: [
971
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogTitle, { children: t("billing.ui.invoice.title", { number: getInvoiceNumber() }) }),
972
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogDescription, { children: _chunkPCCUPEBUjs.formatDate.call(void 0, invoice.periodStart, fmt) })
973
973
  ] }),
974
974
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6", children: [
975
975
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-x-3", children: [
@@ -980,18 +980,18 @@ function InvoiceDetails({
980
980
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
981
981
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.ui.invoice.billing_period") }),
982
982
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-sm", children: [
983
- _chunkR2XBVIO5js.formatDate.call(void 0, invoice.periodStart, fmt),
983
+ _chunkPCCUPEBUjs.formatDate.call(void 0, invoice.periodStart, fmt),
984
984
  " - ",
985
- _chunkR2XBVIO5js.formatDate.call(void 0, invoice.periodEnd, fmt)
985
+ _chunkPCCUPEBUjs.formatDate.call(void 0, invoice.periodEnd, fmt)
986
986
  ] })
987
987
  ] }),
988
988
  invoice.dueDate && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
989
989
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.ui.invoice.due_date") }),
990
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm", children: _chunkR2XBVIO5js.formatDate.call(void 0, invoice.dueDate, fmt) })
990
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm", children: _chunkPCCUPEBUjs.formatDate.call(void 0, invoice.dueDate, fmt) })
991
991
  ] }),
992
992
  invoice.paidAt && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
993
993
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.ui.invoice.paid_date") }),
994
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm", children: _chunkR2XBVIO5js.formatDate.call(void 0, invoice.paidAt, fmt) })
994
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm", children: _chunkPCCUPEBUjs.formatDate.call(void 0, invoice.paidAt, fmt) })
995
995
  ] }),
996
996
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
997
997
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.ui.invoice.attempt_count") }),
@@ -1007,42 +1007,42 @@ function InvoiceDetails({
1007
1007
  ] }) }),
1008
1008
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tbody", { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "tr", { className: "border-t", children: [
1009
1009
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "td", { className: "p-3", children: productName }),
1010
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "td", { className: "p-3 text-end", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, invoice.subtotal, invoice.currency, fmt) })
1010
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "td", { className: "p-3 text-end", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, invoice.subtotal, invoice.currency, fmt) })
1011
1011
  ] }) })
1012
1012
  ] }) })
1013
1013
  ] }),
1014
1014
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2 border-t pt-4", children: [
1015
1015
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between", children: [
1016
1016
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.ui.invoice.subtotal") }),
1017
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, invoice.subtotal, invoice.currency, fmt) })
1017
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, invoice.subtotal, invoice.currency, fmt) })
1018
1018
  ] }),
1019
1019
  invoice.tax !== void 0 && invoice.tax > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between", children: [
1020
1020
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.ui.invoice.tax") }),
1021
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, invoice.tax, invoice.currency, fmt) })
1021
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, invoice.tax, invoice.currency, fmt) })
1022
1022
  ] }),
1023
1023
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between text-lg font-semibold border-t pt-2", children: [
1024
1024
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: t("billing.ui.invoice.total") }),
1025
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunkOJAIKQR2js.formatCurrency.call(void 0, invoice.total, invoice.currency, fmt) })
1025
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, invoice.total, invoice.currency, fmt) })
1026
1026
  ] }),
1027
1027
  invoice.amountPaid > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between", children: [
1028
1028
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.ui.invoice.amount_paid") }),
1029
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-success", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, invoice.amountPaid, invoice.currency, fmt) })
1029
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-success", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, invoice.amountPaid, invoice.currency, fmt) })
1030
1030
  ] }),
1031
1031
  invoice.amountRemaining > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between", children: [
1032
1032
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.ui.invoice.amount_due") }),
1033
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-destructive", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, invoice.amountRemaining, invoice.currency, fmt) })
1033
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-destructive", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, invoice.amountRemaining, invoice.currency, fmt) })
1034
1034
  ] })
1035
1035
  ] }),
1036
1036
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap gap-2 pt-4 border-t", children: [
1037
- invoice.stripePdfUrl && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", onClick: handleDownloadPDF, children: [
1037
+ invoice.stripePdfUrl && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", onClick: handleDownloadPDF, children: [
1038
1038
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Download, { className: "me-2 h-4 w-4" }),
1039
1039
  t("billing.ui.invoice.download_pdf")
1040
1040
  ] }),
1041
- invoice.status === "open" /* OPEN */ && invoice.attempted && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Button, { variant: "default", onClick: handleRetryPayment, children: [
1041
+ invoice.status === "open" /* OPEN */ && invoice.attempted && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "default", onClick: handleRetryPayment, children: [
1042
1042
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.RefreshCw, { className: "me-2 h-4 w-4" }),
1043
1043
  t("billing.ui.invoice.retry_payment")
1044
1044
  ] }),
1045
- invoice.stripeHostedInvoiceUrl && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", onClick: handleViewInStripe, children: [
1045
+ invoice.stripeHostedInvoiceUrl && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", onClick: handleViewInStripe, children: [
1046
1046
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "me-2 h-4 w-4" }),
1047
1047
  t("billing.ui.invoice.view_in_stripe")
1048
1048
  ] })
@@ -1056,7 +1056,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, InvoiceDetails, "InvoiceDetails");
1056
1056
 
1057
1057
  function InvoicesList({ invoices, onInvoicesChange }) {
1058
1058
  const t = _nextintl.useTranslations.call(void 0, );
1059
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
1059
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
1060
1060
  const [selectedInvoice, setSelectedInvoice] = _react.useState.call(void 0, null);
1061
1061
  const handleRowClick = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (invoice) => {
1062
1062
  setSelectedInvoice(invoice);
@@ -1068,30 +1068,30 @@ function InvoicesList({ invoices, onInvoicesChange }) {
1068
1068
  return invoice.stripeInvoiceId.slice(-8);
1069
1069
  }, "getInvoiceNumber");
1070
1070
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1071
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border rounded-lg overflow-clip", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Table, { children: [
1072
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHeader, { className: "bg-muted", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.TableRow, { children: [
1073
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { children: t("billing.ui.columns.invoice_number") }),
1074
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { children: t("billing.ui.columns.date") }),
1075
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { children: t("billing.ui.columns.status") }),
1076
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { className: "text-end", children: t("billing.ui.columns.amount") }),
1077
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { children: t("billing.ui.columns.period") })
1071
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border rounded-lg overflow-clip", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Table, { children: [
1072
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHeader, { className: "bg-muted", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.TableRow, { children: [
1073
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { children: t("billing.ui.columns.invoice_number") }),
1074
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { children: t("billing.ui.columns.date") }),
1075
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { children: t("billing.ui.columns.status") }),
1076
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { className: "text-end", children: t("billing.ui.columns.amount") }),
1077
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { children: t("billing.ui.columns.period") })
1078
1078
  ] }) }),
1079
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableBody, { children: invoices.map((invoice) => {
1079
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableBody, { children: invoices.map((invoice) => {
1080
1080
  const invoiceNumber = getInvoiceNumber(invoice);
1081
- const date = _chunkR2XBVIO5js.formatDate.call(void 0, invoice.periodStart, fmt);
1082
- const amount = _chunkOJAIKQR2js.formatCurrency.call(void 0, invoice.total, invoice.currency, fmt);
1083
- const period = `${_chunkR2XBVIO5js.formatDate.call(void 0, invoice.periodStart, fmt)} - ${_chunkR2XBVIO5js.formatDate.call(void 0, invoice.periodEnd, fmt)}`;
1081
+ const date = _chunkPCCUPEBUjs.formatDate.call(void 0, invoice.periodStart, fmt);
1082
+ const amount = _chunk6KE7UBYYjs.formatCurrency.call(void 0, invoice.total, invoice.currency, fmt);
1083
+ const period = `${_chunkPCCUPEBUjs.formatDate.call(void 0, invoice.periodStart, fmt)} - ${_chunkPCCUPEBUjs.formatDate.call(void 0, invoice.periodEnd, fmt)}`;
1084
1084
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1085
- _chunkR2XBVIO5js.TableRow,
1085
+ _chunkPCCUPEBUjs.TableRow,
1086
1086
  {
1087
1087
  onClick: () => handleRowClick(invoice),
1088
1088
  className: "cursor-pointer hover:bg-muted/50",
1089
1089
  children: [
1090
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "font-medium", children: invoiceNumber }),
1091
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "text-muted-foreground text-xs", children: date }),
1092
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InvoiceStatusBadge, { status: invoice.status }) }),
1093
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "text-end font-medium", children: amount }),
1094
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "text-muted-foreground text-xs", children: period })
1090
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "font-medium", children: invoiceNumber }),
1091
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "text-muted-foreground text-xs", children: date }),
1092
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InvoiceStatusBadge, { status: invoice.status }) }),
1093
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "text-end font-medium", children: amount }),
1094
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "text-muted-foreground text-xs", children: period })
1095
1095
  ]
1096
1096
  },
1097
1097
  invoice.id
@@ -1125,7 +1125,7 @@ function InvoicesContainer() {
1125
1125
  setLoading(true);
1126
1126
  try {
1127
1127
  const params = statusFilter !== "all" ? { status: statusFilter } : void 0;
1128
- const data = await _chunkOJAIKQR2js.StripeInvoiceService.listInvoices(params);
1128
+ const data = await _chunk6KE7UBYYjs.StripeInvoiceService.listInvoices(params);
1129
1129
  setInvoices(data);
1130
1130
  } catch (error) {
1131
1131
  console.error("[InvoicesContainer] Failed to load invoices:", error);
@@ -1141,12 +1141,12 @@ function InvoicesContainer() {
1141
1141
  setStatusFilter(value);
1142
1142
  }, "handleFilterChange");
1143
1143
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
1144
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Tabs, { value: statusFilter, onValueChange: handleFilterChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.TabsList, { children: [
1145
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TabsTrigger, { value: "all", children: t("billing.ui.invoices.filter_all") }),
1146
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TabsTrigger, { value: "paid" /* PAID */, children: t("billing.ui.invoice_status.paid") }),
1147
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TabsTrigger, { value: "open" /* OPEN */, children: t("billing.ui.invoice_status.open") }),
1148
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TabsTrigger, { value: "void" /* VOID */, children: t("billing.ui.invoice_status.void") }),
1149
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TabsTrigger, { value: "uncollectible" /* UNCOLLECTIBLE */, children: t("billing.ui.invoice_status.uncollectible") })
1144
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Tabs, { value: statusFilter, onValueChange: handleFilterChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.TabsList, { children: [
1145
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TabsTrigger, { value: "all", children: t("billing.ui.invoices.filter_all") }),
1146
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TabsTrigger, { value: "paid" /* PAID */, children: t("billing.ui.invoice_status.paid") }),
1147
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TabsTrigger, { value: "open" /* OPEN */, children: t("billing.ui.invoice_status.open") }),
1148
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TabsTrigger, { value: "void" /* VOID */, children: t("billing.ui.invoice_status.void") }),
1149
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TabsTrigger, { value: "uncollectible" /* UNCOLLECTIBLE */, children: t("billing.ui.invoice_status.uncollectible") })
1150
1150
  ] }) }),
1151
1151
  loading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-center py-8 text-muted-foreground", children: t("billing.ui.invoices.loading") }),
1152
1152
  !loading && invoices.length === 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "border border-dashed border-gray-300 rounded-lg p-8 text-center", children: [
@@ -1188,7 +1188,7 @@ function CancelSubscriptionDialog({
1188
1188
  onSuccess
1189
1189
  }) {
1190
1190
  const t = _nextintl.useTranslations.call(void 0, );
1191
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
1191
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
1192
1192
  const [isSubmitting, setIsSubmitting] = _react.useState.call(void 0, false);
1193
1193
  const form = _reacthookform.useForm.call(void 0, {
1194
1194
  resolver: _zod.zodResolver.call(void 0, formSchema),
@@ -1199,7 +1199,7 @@ function CancelSubscriptionDialog({
1199
1199
  const onSubmit = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async (_values) => {
1200
1200
  setIsSubmitting(true);
1201
1201
  try {
1202
- await _chunkOJAIKQR2js.StripeSubscriptionService.cancelSubscription({
1202
+ await _chunk6KE7UBYYjs.StripeSubscriptionService.cancelSubscription({
1203
1203
  id: subscription.id,
1204
1204
  cancelImmediately: false
1205
1205
  });
@@ -1211,16 +1211,16 @@ function CancelSubscriptionDialog({
1211
1211
  setIsSubmitting(false);
1212
1212
  }
1213
1213
  }, "onSubmit");
1214
- const periodEndDate = _chunkR2XBVIO5js.formatDate.call(void 0, subscription.currentPeriodEnd, fmt);
1215
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogContent, { className: "max-w-md", children: [
1216
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogHeader, { children: [
1217
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogTitle, { children: t("billing.ui.subscription.cancel.title") }),
1218
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogDescription, { children: t("billing.ui.subscription.cancel.description") })
1214
+ const periodEndDate = _chunkPCCUPEBUjs.formatDate.call(void 0, subscription.currentPeriodEnd, fmt);
1215
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogContent, { className: "max-w-md", children: [
1216
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogHeader, { children: [
1217
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogTitle, { children: t("billing.ui.subscription.cancel.title") }),
1218
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogDescription, { children: t("billing.ui.subscription.cancel.description") })
1219
1219
  ] }),
1220
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Form, { ...form, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: form.handleSubmit(onSubmit), className: "flex flex-col gap-y-4", children: [
1220
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Form, { ...form, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: form.handleSubmit(onSubmit), className: "flex flex-col gap-y-4", children: [
1221
1221
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-primary/10 border-primary/30 text-foreground rounded-lg border p-3 text-sm", children: t("billing.ui.subscription.cancel.remains_active", { date: periodEndDate }) }),
1222
1222
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1223
- _chunkR2XBVIO5js.FormTextarea,
1223
+ _chunkPCCUPEBUjs.FormTextarea,
1224
1224
  {
1225
1225
  form,
1226
1226
  id: "reason",
@@ -1230,8 +1230,8 @@ function CancelSubscriptionDialog({
1230
1230
  }
1231
1231
  ),
1232
1232
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-x-2 justify-end pt-2", children: [
1233
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { type: "button", variant: "outline", onClick: () => onOpenChange(false), disabled: isSubmitting, children: t("billing.ui.subscription.cancel.keep") }),
1234
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { type: "submit", variant: "destructive", disabled: isSubmitting, children: isSubmitting ? t("billing.ui.subscription.cancel.canceling") : t("billing.ui.subscription.cancel.confirm") })
1233
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { type: "button", variant: "outline", onClick: () => onOpenChange(false), disabled: isSubmitting, children: t("billing.ui.subscription.cancel.keep") }),
1234
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { type: "submit", variant: "destructive", disabled: isSubmitting, children: isSubmitting ? t("billing.ui.subscription.cancel.canceling") : t("billing.ui.subscription.cancel.confirm") })
1235
1235
  ] })
1236
1236
  ] }) })
1237
1237
  ] }) });
@@ -1282,7 +1282,7 @@ var cancelingConfig = {
1282
1282
  function SubscriptionStatusBadge({ status, cancelAtPeriodEnd }) {
1283
1283
  const t = _nextintl.useTranslations.call(void 0, );
1284
1284
  const config = cancelAtPeriodEnd ? cancelingConfig : statusConfig2[status] || statusConfig2["canceled" /* CANCELED */];
1285
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: config.variant, children: t(config.label) });
1285
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: config.variant, children: t(config.label) });
1286
1286
  }
1287
1287
  _chunk7QVYU63Ejs.__name.call(void 0, SubscriptionStatusBadge, "SubscriptionStatusBadge");
1288
1288
 
@@ -1309,7 +1309,7 @@ function formatPlanName2(price, t) {
1309
1309
  _chunk7QVYU63Ejs.__name.call(void 0, formatPlanName2, "formatPlanName");
1310
1310
  function formatBillingAmount(price, notAvailable, fmt) {
1311
1311
  if (!_optionalChain([price, 'optionalAccess', _37 => _37.unitAmount])) return notAvailable;
1312
- return _chunkOJAIKQR2js.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt);
1312
+ return _chunk6KE7UBYYjs.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt);
1313
1313
  }
1314
1314
  _chunk7QVYU63Ejs.__name.call(void 0, formatBillingAmount, "formatBillingAmount");
1315
1315
  function SubscriptionDetails({
@@ -1321,11 +1321,11 @@ function SubscriptionDetails({
1321
1321
  renderCancelDialog
1322
1322
  }) {
1323
1323
  const t = _nextintl.useTranslations.call(void 0, );
1324
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
1324
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
1325
1325
  const [showCancel, setShowCancel] = _react.useState.call(void 0, false);
1326
1326
  const handleManageViaPortal = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
1327
1327
  try {
1328
- const { url } = await _chunkOJAIKQR2js.StripeCustomerService.createPortalSession();
1328
+ const { url } = await _chunk6KE7UBYYjs.StripeCustomerService.createPortalSession();
1329
1329
  window.open(url, "_blank");
1330
1330
  } catch (error) {
1331
1331
  console.error("[SubscriptionDetails] Failed to create portal session:", error);
@@ -1333,10 +1333,10 @@ function SubscriptionDetails({
1333
1333
  }, "handleManageViaPortal");
1334
1334
  const canCancel = subscription.status === "active" /* ACTIVE */ || subscription.status === "trialing" /* TRIALING */ || subscription.status === "paused" /* PAUSED */;
1335
1335
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1336
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogContent, { className: "max-w-2xl", children: [
1337
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogHeader, { children: [
1338
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogTitle, { children: t("billing.ui.subscription.details_title") }),
1339
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogDescription, { children: t("billing.ui.subscription.details_description") })
1336
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogContent, { className: "max-w-2xl", children: [
1337
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogHeader, { children: [
1338
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogTitle, { children: t("billing.ui.subscription.details_title") }),
1339
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogDescription, { children: t("billing.ui.subscription.details_description") })
1340
1340
  ] }),
1341
1341
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6", children: [
1342
1342
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-x-3", children: [
@@ -1362,22 +1362,22 @@ function SubscriptionDetails({
1362
1362
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-2", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between", children: [
1363
1363
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.ui.subscription.current_period") }),
1364
1364
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-sm", children: [
1365
- _chunkR2XBVIO5js.formatDate.call(void 0, subscription.currentPeriodStart, fmt),
1365
+ _chunkPCCUPEBUjs.formatDate.call(void 0, subscription.currentPeriodStart, fmt),
1366
1366
  " - ",
1367
- _chunkR2XBVIO5js.formatDate.call(void 0, subscription.currentPeriodEnd, fmt)
1367
+ _chunkPCCUPEBUjs.formatDate.call(void 0, subscription.currentPeriodEnd, fmt)
1368
1368
  ] })
1369
1369
  ] }) }),
1370
1370
  subscription.trialEnd && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between", children: [
1371
1371
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.ui.subscription.trial_ends") }),
1372
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: _chunkR2XBVIO5js.formatDate.call(void 0, subscription.trialEnd, fmt) })
1372
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: _chunkPCCUPEBUjs.formatDate.call(void 0, subscription.trialEnd, fmt) })
1373
1373
  ] }),
1374
1374
  subscription.cancelAtPeriodEnd && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-warning/15 border-warning/30 rounded-lg border p-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-warning text-xs/relaxed", children: t("billing.ui.subscription.cancel_at_period_end", {
1375
- date: _chunkR2XBVIO5js.formatDate.call(void 0, subscription.currentPeriodEnd, fmt)
1375
+ date: _chunkPCCUPEBUjs.formatDate.call(void 0, subscription.currentPeriodEnd, fmt)
1376
1376
  }) }) }),
1377
1377
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap gap-2 pt-4 border-t", children: [
1378
- onChangePlan && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { variant: "default", onClick: () => onChangePlan(subscription), children: t("billing.ui.subscription.change_plan") }),
1379
- canCancel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { variant: "destructive", onClick: () => setShowCancel(true), children: t("ui.buttons.cancel") }),
1380
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", onClick: handleManageViaPortal, children: t("billing.ui.subscription.manage_portal") })
1378
+ onChangePlan && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "default", onClick: () => onChangePlan(subscription), children: t("billing.ui.subscription.change_plan") }),
1379
+ canCancel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "destructive", onClick: () => setShowCancel(true), children: t("ui.buttons.cancel") }),
1380
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", onClick: handleManageViaPortal, children: t("billing.ui.subscription.manage_portal") })
1381
1381
  ] })
1382
1382
  ] })
1383
1383
  ] }) }),
@@ -1437,46 +1437,46 @@ function SubscriptionsList({
1437
1437
  renderCancelDialog
1438
1438
  }) {
1439
1439
  const t = _nextintl.useTranslations.call(void 0, );
1440
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
1440
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
1441
1441
  const [selectedSub, setSelectedSub] = _react.useState.call(void 0, null);
1442
1442
  const handleRowClick = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (subscription) => {
1443
1443
  setSelectedSub(subscription);
1444
1444
  }, "handleRowClick");
1445
1445
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1446
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border rounded-lg overflow-clip", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Table, { children: [
1447
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHeader, { className: "bg-muted", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.TableRow, { children: [
1448
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { children: t("billing.ui.columns.status") }),
1449
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { children: t("billing.ui.columns.plan") }),
1450
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { children: t("billing.ui.columns.period") }),
1451
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { className: "text-end", children: t("billing.ui.columns.amount") }),
1452
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { className: "text-end", children: t("billing.ui.columns.actions") })
1446
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border rounded-lg overflow-clip", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Table, { children: [
1447
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHeader, { className: "bg-muted", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.TableRow, { children: [
1448
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { children: t("billing.ui.columns.status") }),
1449
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { children: t("billing.ui.columns.plan") }),
1450
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { children: t("billing.ui.columns.period") }),
1451
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { className: "text-end", children: t("billing.ui.columns.amount") }),
1452
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { className: "text-end", children: t("billing.ui.columns.actions") })
1453
1453
  ] }) }),
1454
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableBody, { children: subscriptions.map((subscription) => {
1454
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableBody, { children: subscriptions.map((subscription) => {
1455
1455
  const price = subscription.price;
1456
- const amount = _optionalChain([price, 'optionalAccess', _42 => _42.unitAmount]) ? _chunkOJAIKQR2js.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt) : "0";
1457
- const discountedAmount = price ? _chunkR2XBVIO5js.applyDiscount.call(void 0, price.unitAmount, _chunkR2XBVIO5js.subscriptionDiscount.call(void 0, subscription)) : null;
1458
- const period = `${_chunkR2XBVIO5js.formatDate.call(void 0, subscription.currentPeriodStart, fmt)} - ${_chunkR2XBVIO5js.formatDate.call(void 0, subscription.currentPeriodEnd, fmt)}`;
1456
+ const amount = _optionalChain([price, 'optionalAccess', _42 => _42.unitAmount]) ? _chunk6KE7UBYYjs.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt) : "0";
1457
+ const discountedAmount = price ? _chunkPCCUPEBUjs.applyDiscount.call(void 0, price.unitAmount, _chunkPCCUPEBUjs.subscriptionDiscount.call(void 0, subscription)) : null;
1458
+ const period = `${_chunkPCCUPEBUjs.formatDate.call(void 0, subscription.currentPeriodStart, fmt)} - ${_chunkPCCUPEBUjs.formatDate.call(void 0, subscription.currentPeriodEnd, fmt)}`;
1459
1459
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1460
- _chunkR2XBVIO5js.TableRow,
1460
+ _chunkPCCUPEBUjs.TableRow,
1461
1461
  {
1462
1462
  onClick: () => handleRowClick(subscription),
1463
1463
  className: "cursor-pointer hover:bg-muted/50",
1464
1464
  children: [
1465
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1465
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1466
1466
  SubscriptionStatusBadge,
1467
1467
  {
1468
1468
  status: subscription.status,
1469
1469
  cancelAtPeriodEnd: subscription.cancelAtPeriodEnd
1470
1470
  }
1471
1471
  ) }),
1472
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "font-medium", children: formatPlanName3(price, t) }),
1473
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "text-muted-foreground text-sm", children: period }),
1474
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "text-end font-medium", children: discountedAmount !== null && price ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1472
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "font-medium", children: formatPlanName3(price, t) }),
1473
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "text-muted-foreground text-sm", children: period }),
1474
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "text-end font-medium", children: discountedAmount !== null && price ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1475
1475
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-through text-muted-foreground me-2", children: amount }),
1476
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-success", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, discountedAmount, price.currency, fmt) })
1476
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-success", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, discountedAmount, price.currency, fmt) })
1477
1477
  ] }) : amount }),
1478
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "text-end", children: (subscription.status === "active" /* ACTIVE */ || subscription.status === "trialing" /* TRIALING */) && onChangePlan && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1479
- _chunkR2XBVIO5js.Button,
1478
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "text-end", children: (subscription.status === "active" /* ACTIVE */ || subscription.status === "trialing" /* TRIALING */) && onChangePlan && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1479
+ _chunkPCCUPEBUjs.Button,
1480
1480
  {
1481
1481
  size: "sm",
1482
1482
  variant: "outline",
@@ -1536,7 +1536,7 @@ function SubscriptionsContainer({
1536
1536
  }
1537
1537
  setLoading(true);
1538
1538
  try {
1539
- const fetchedSubscriptions = await _chunkOJAIKQR2js.StripeSubscriptionService.listSubscriptions();
1539
+ const fetchedSubscriptions = await _chunk6KE7UBYYjs.StripeSubscriptionService.listSubscriptions();
1540
1540
  setSubscriptions(fetchedSubscriptions);
1541
1541
  } catch (error) {
1542
1542
  console.error("[SubscriptionsContainer] Failed to load subscriptions:", error);
@@ -1559,7 +1559,7 @@ function SubscriptionsContainer({
1559
1559
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CreditCard, { className: "h-8 w-8" }),
1560
1560
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "text-primary text-3xl font-semibold", children: t("billing.ui.subscriptions.title") })
1561
1561
  ] }),
1562
- subscriptions.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { onClick: () => _optionalChain([onOpenWizard, 'optionalCall', _44 => _44()]), children: hasActiveRecurringSubscription ? t("billing.ui.subscriptions.purchase_addons") : t("billing.ui.subscriptions.subscribe") })
1562
+ subscriptions.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { onClick: () => _optionalChain([onOpenWizard, 'optionalCall', _44 => _44()]), children: hasActiveRecurringSubscription ? t("billing.ui.subscriptions.purchase_addons") : t("billing.ui.subscriptions.subscribe") })
1563
1563
  ] }),
1564
1564
  criticalSubscriptions.map((subscription) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BillingAlertBanner, { subscription }, subscription.id)),
1565
1565
  subscriptions.length === 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center justify-center py-12 space-y-4", children: [
@@ -1567,7 +1567,7 @@ function SubscriptionsContainer({
1567
1567
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
1568
1568
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-sm font-medium mb-2", children: t("billing.ui.subscriptions.empty_title") }),
1569
1569
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground mb-6", children: t("billing.ui.subscriptions.empty_description") }),
1570
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { onClick: () => _optionalChain([onOpenWizard, 'optionalCall', _45 => _45()]), children: t("billing.ui.subscriptions.subscribe") })
1570
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { onClick: () => _optionalChain([onOpenWizard, 'optionalCall', _45 => _45()]), children: t("billing.ui.subscriptions.subscribe") })
1571
1571
  ] })
1572
1572
  ] }),
1573
1573
  subscriptions.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -1591,9 +1591,9 @@ function IntervalToggle({ value, onChange, hasMonthly, hasYearly }) {
1591
1591
  if (!hasMonthly || !hasYearly) {
1592
1592
  return null;
1593
1593
  }
1594
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Tabs, { value, onValueChange: (v) => onChange(v), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.TabsList, { children: [
1595
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TabsTrigger, { value: "month", children: t("billing.admin.prices.interval.month") }),
1596
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TabsTrigger, { value: "year", children: t("billing.admin.prices.interval.year") })
1594
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Tabs, { value, onValueChange: (v) => onChange(v), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.TabsList, { children: [
1595
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TabsTrigger, { value: "month", children: t("billing.admin.prices.interval.month") }),
1596
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TabsTrigger, { value: "year", children: t("billing.admin.prices.interval.year") })
1597
1597
  ] }) });
1598
1598
  }
1599
1599
  _chunk7QVYU63Ejs.__name.call(void 0, IntervalToggle, "IntervalToggle");
@@ -1611,11 +1611,11 @@ function PricingCard({
1611
1611
  onSelect
1612
1612
  }) {
1613
1613
  const t = _nextintl.useTranslations.call(void 0, );
1614
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
1614
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
1615
1615
  const description = price.description || price.nickname || t("billing.ui.pricing.standard");
1616
1616
  const features = price.features || [];
1617
- const formattedPrice = _chunkOJAIKQR2js.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt);
1618
- const interval = _chunkOJAIKQR2js.formatInterval.call(void 0, price, fmt);
1617
+ const formattedPrice = _chunk6KE7UBYYjs.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt);
1618
+ const interval = _chunk6KE7UBYYjs.formatInterval.call(void 0, price, fmt);
1619
1619
  const handleKeyDown = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (e) => {
1620
1620
  if ((e.key === "Enter" || e.key === " ") && !isDisabled && !isCurrentPlan) {
1621
1621
  e.preventDefault();
@@ -1628,7 +1628,7 @@ function PricingCard({
1628
1628
  }
1629
1629
  }, "handleClick");
1630
1630
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1631
- _chunkR2XBVIO5js.Card,
1631
+ _chunkPCCUPEBUjs.Card,
1632
1632
  {
1633
1633
  role: "radio",
1634
1634
  "aria-checked": isSelected,
@@ -1636,7 +1636,7 @@ function PricingCard({
1636
1636
  tabIndex: isDisabled ? -1 : 0,
1637
1637
  onKeyDown: handleKeyDown,
1638
1638
  onClick: handleClick,
1639
- className: _chunkOJAIKQR2js.cn.call(void 0,
1639
+ className: _chunk6KE7UBYYjs.cn.call(void 0,
1640
1640
  "relative cursor-pointer transition-all duration-200 flex flex-col h-full",
1641
1641
  "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
1642
1642
  isCurrentPlan && "bg-muted/30",
@@ -1646,9 +1646,9 @@ function PricingCard({
1646
1646
  isLoading && "pointer-events-none"
1647
1647
  ),
1648
1648
  children: [
1649
- isCurrentPlan && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "secondary", className: "absolute top-2 end-2", children: t("billing.ui.pricing.current") }),
1650
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "pb-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-sm font-medium", children: description }) }),
1651
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardContent, { className: "pb-4 grow", children: [
1649
+ isCurrentPlan && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "secondary", className: "absolute top-2 end-2", children: t("billing.ui.pricing.current") }),
1650
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "pb-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-sm font-medium", children: description }) }),
1651
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardContent, { className: "pb-4 grow", children: [
1652
1652
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-4", children: [
1653
1653
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-3xl font-bold", children: formattedPrice }),
1654
1654
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground ms-1", children: interval })
@@ -1658,8 +1658,8 @@ function PricingCard({
1658
1658
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-muted-foreground", children: feature })
1659
1659
  ] }, index)) })
1660
1660
  ] }),
1661
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardFooter, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1662
- _chunkR2XBVIO5js.Button,
1661
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardFooter, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1662
+ _chunkPCCUPEBUjs.Button,
1663
1663
  {
1664
1664
  variant: isCurrentPlan ? "secondary" : isSelected ? "default" : "outline",
1665
1665
  className: "w-full",
@@ -1692,7 +1692,7 @@ function ProductPricingRow({
1692
1692
  return null;
1693
1693
  }
1694
1694
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
1695
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.SectionHeader, { children: product.name }),
1695
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.SectionHeader, { children: product.name }),
1696
1696
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1697
1697
  "div",
1698
1698
  {
@@ -1793,15 +1793,15 @@ function ProductPricingList({
1793
1793
  _chunk7QVYU63Ejs.__name.call(void 0, ProductPricingList, "ProductPricingList");
1794
1794
  function ProductPricingListSkeleton() {
1795
1795
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-6", children: [1, 2].map((rowIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
1796
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-6 w-32" }),
1796
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-6 w-32" }),
1797
1797
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4", children: [1, 2, 3].map((cardIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-4 rounded-lg border animate-pulse space-y-3", children: [
1798
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-6 w-24" }),
1799
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-8 w-32" }),
1798
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-6 w-24" }),
1799
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-8 w-32" }),
1800
1800
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
1801
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-4 w-full" }),
1802
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-4 w-3/4" })
1801
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-4 w-full" }),
1802
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-4 w-3/4" })
1803
1803
  ] }),
1804
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Skeleton, { className: "h-10 w-full" })
1804
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Skeleton, { className: "h-10 w-full" })
1805
1805
  ] }, cardIndex)) })
1806
1806
  ] }, rowIndex)) });
1807
1807
  }
@@ -1812,21 +1812,21 @@ _chunk7QVYU63Ejs.__name.call(void 0, ProductPricingListSkeleton, "ProductPricing
1812
1812
 
1813
1813
  function ProrationPreview({ preview }) {
1814
1814
  const t = _nextintl.useTranslations.call(void 0, );
1815
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
1815
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
1816
1816
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-primary/10 border-primary/30 rounded-lg border p-4", children: [
1817
1817
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h4", { className: "text-primary mb-3 font-semibold", children: t("billing.ui.proration.title") }),
1818
1818
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
1819
1819
  preview.lineItems.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between text-sm", children: [
1820
1820
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground", children: item.description }),
1821
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `font-medium ${item.amount < 0 ? "text-success" : "text-foreground"}`, children: _chunkOJAIKQR2js.formatCurrency.call(void 0, item.amount, preview.currency, fmt) })
1821
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `font-medium ${item.amount < 0 ? "text-success" : "text-foreground"}`, children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, item.amount, preview.currency, fmt) })
1822
1822
  ] }, index)),
1823
1823
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-primary/30 mt-2 border-t pt-2", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between font-semibold", children: [
1824
1824
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-foreground", children: t("billing.ui.proration.net_due_today") }),
1825
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-foreground", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, preview.immediateCharge, preview.currency, fmt) })
1825
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-foreground", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, preview.immediateCharge, preview.currency, fmt) })
1826
1826
  ] }) }),
1827
1827
  preview.lineItems.length > 0 && preview.lineItems[0].period && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-muted-foreground mt-2 text-xs", children: t("billing.ui.proration.next_invoice", {
1828
- date: _chunkR2XBVIO5js.formatDate.call(void 0, preview.lineItems[0].period.end, fmt),
1829
- amount: _chunkOJAIKQR2js.formatCurrency.call(void 0, preview.amountDue, preview.currency, fmt)
1828
+ date: _chunkPCCUPEBUjs.formatDate.call(void 0, preview.lineItems[0].period.end, fmt),
1829
+ amount: _chunk6KE7UBYYjs.formatCurrency.call(void 0, preview.amountDue, preview.currency, fmt)
1830
1830
  }) })
1831
1831
  ] })
1832
1832
  ] });
@@ -1839,7 +1839,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, ProrationPreview, "ProrationPreview");
1839
1839
 
1840
1840
  function SubscriptionConfirmation({ price, isLoading, onConfirm, onCancel }) {
1841
1841
  const t = _nextintl.useTranslations.call(void 0, );
1842
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
1842
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
1843
1843
  const productName = _optionalChain([price, 'access', _51 => _51.product, 'optionalAccess', _52 => _52.name]) || price.nickname || t("billing.ui.wizard.review.selected_plan");
1844
1844
  const productDescription = _optionalChain([price, 'access', _53 => _53.product, 'optionalAccess', _54 => _54.description]) || price.description;
1845
1845
  const features = price.features || [];
@@ -1851,16 +1851,16 @@ function SubscriptionConfirmation({ price, isLoading, onConfirm, onCancel }) {
1851
1851
  productDescription && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-sm text-muted-foreground", children: productDescription })
1852
1852
  ] }),
1853
1853
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-lg font-semibold", children: [
1854
- _chunkOJAIKQR2js.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt),
1855
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-normal text-muted-foreground", children: _chunkOJAIKQR2js.formatInterval.call(void 0, price, fmt) })
1854
+ _chunk6KE7UBYYjs.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt),
1855
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-normal text-muted-foreground", children: _chunk6KE7UBYYjs.formatInterval.call(void 0, price, fmt) })
1856
1856
  ] }),
1857
1857
  features.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-1", children: features.map((feature, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 text-sm ", children: [
1858
1858
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Check, { className: "h-4 w-4 text-primary" }),
1859
1859
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: feature })
1860
1860
  ] }, index)) }),
1861
1861
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-end gap-3 pt-2 border-t border-accent/30", children: [
1862
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", onClick: onCancel, disabled: isLoading, children: t("ui.buttons.cancel") }),
1863
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { onClick: onConfirm, disabled: isLoading, children: isLoading ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1862
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", onClick: onCancel, disabled: isLoading, children: t("ui.buttons.cancel") }),
1863
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { onClick: onConfirm, disabled: isLoading, children: isLoading ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1864
1864
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-4 w-4 animate-spin me-2" }),
1865
1865
  t("billing.ui.wizard.review.processing")
1866
1866
  ] }) : t("billing.ui.confirmation.subscribe") })
@@ -2039,7 +2039,7 @@ function wizardReducer(state, action) {
2039
2039
  _chunk7QVYU63Ejs.__name.call(void 0, wizardReducer, "wizardReducer");
2040
2040
  function useSubscriptionWizard({ subscription, onSuccess, onClose }) {
2041
2041
  const t = _nextintl.useTranslations.call(void 0, );
2042
- const locale = _chunkOJAIKQR2js.useI18nLocale.call(void 0, );
2042
+ const locale = _chunk6KE7UBYYjs.useI18nLocale.call(void 0, );
2043
2043
  const { confirmPayment } = useConfirmSubscriptionPayment();
2044
2044
  const [state, dispatch] = _react.useReducer.call(void 0, wizardReducer, {
2045
2045
  ...initialState,
@@ -2051,7 +2051,7 @@ function useSubscriptionWizard({ subscription, onSuccess, onClose }) {
2051
2051
  onCloseRef.current = onClose;
2052
2052
  const checkPaymentMethod = _react.useCallback.call(void 0, async () => {
2053
2053
  try {
2054
- const methods = await _chunkOJAIKQR2js.StripeCustomerService.listPaymentMethods();
2054
+ const methods = await _chunk6KE7UBYYjs.StripeCustomerService.listPaymentMethods();
2055
2055
  dispatch({ type: "SET_HAS_PAYMENT_METHOD", hasMethod: methods.length > 0 });
2056
2056
  } catch (error) {
2057
2057
  console.error("[useSubscriptionWizard] Failed to check payment methods:", error);
@@ -2069,10 +2069,10 @@ function useSubscriptionWizard({ subscription, onSuccess, onClose }) {
2069
2069
  }, []);
2070
2070
  const lookUpAutomaticCode = _react.useCallback.call(void 0, async (priceId) => {
2071
2071
  try {
2072
- const automaticCode = await _chunkOJAIKQR2js.StripeCouponCodeService.findAutomatic({ priceId });
2072
+ const automaticCode = await _chunk6KE7UBYYjs.StripeCouponCodeService.findAutomatic({ priceId });
2073
2073
  dispatch({
2074
2074
  type: "SET_PROMOTION_CODE",
2075
- code: automaticCode ? _chunkOJAIKQR2js.toPromotionCodeResult.call(void 0, automaticCode) : null
2075
+ code: automaticCode ? _chunk6KE7UBYYjs.toPromotionCodeResult.call(void 0, automaticCode) : null
2076
2076
  });
2077
2077
  return true;
2078
2078
  } catch (error) {
@@ -2099,7 +2099,7 @@ function useSubscriptionWizard({ subscription, onSuccess, onClose }) {
2099
2099
  const isTrialUpgrade = _optionalChain([subscription, 'optionalAccess', _61 => _61.status]) === "trialing" /* TRIALING */;
2100
2100
  dispatch({ type: "SET_IS_TRIAL_SUBSCRIPTION", isTrial: isTrialUpgrade });
2101
2101
  if (isTrialUpgrade && !state.hasPaymentMethod) {
2102
- const methods = await _chunkOJAIKQR2js.StripeCustomerService.listPaymentMethods();
2102
+ const methods = await _chunk6KE7UBYYjs.StripeCustomerService.listPaymentMethods();
2103
2103
  if (methods.length === 0) {
2104
2104
  dispatch({ type: "SET_STEP", step: "payment-method" });
2105
2105
  dispatch({
@@ -2117,7 +2117,7 @@ function useSubscriptionWizard({ subscription, onSuccess, onClose }) {
2117
2117
  }
2118
2118
  }
2119
2119
  if (subscription && state.selectedPrice.id !== _optionalChain([subscription, 'access', _62 => _62.price, 'optionalAccess', _63 => _63.id])) {
2120
- const preview = await _chunkOJAIKQR2js.StripeSubscriptionService.getProrationPreview({
2120
+ const preview = await _chunk6KE7UBYYjs.StripeSubscriptionService.getProrationPreview({
2121
2121
  subscriptionId: subscription.id,
2122
2122
  newPriceId: state.selectedPrice.id
2123
2123
  });
@@ -2151,14 +2151,14 @@ function useSubscriptionWizard({ subscription, onSuccess, onClose }) {
2151
2151
  newPriceId: state.selectedPrice.id,
2152
2152
  promotionCode: promotionCodeToSend(state.promotionCode)
2153
2153
  };
2154
- result = await _chunkOJAIKQR2js.StripeSubscriptionService.changePlanWithMeta(changePlanParams);
2154
+ result = await _chunk6KE7UBYYjs.StripeSubscriptionService.changePlanWithMeta(changePlanParams);
2155
2155
  } else {
2156
2156
  const createParams = {
2157
2157
  id: _uuid.v4.call(void 0, ),
2158
2158
  priceId: state.selectedPrice.id,
2159
2159
  promotionCode: promotionCodeToSend(state.promotionCode)
2160
2160
  };
2161
- result = await _chunkOJAIKQR2js.StripeSubscriptionService.createSubscription(createParams);
2161
+ result = await _chunk6KE7UBYYjs.StripeSubscriptionService.createSubscription(createParams);
2162
2162
  }
2163
2163
  const clientSecret = clientSecretToConfirm(result.meta);
2164
2164
  if (clientSecret) {
@@ -2174,7 +2174,7 @@ function useSubscriptionWizard({ subscription, onSuccess, onClose }) {
2174
2174
  const subscriptionId = subscriptionIdToSync(result.subscription, subscription);
2175
2175
  if (subscriptionId) {
2176
2176
  try {
2177
- await _chunkOJAIKQR2js.StripeSubscriptionService.syncSubscription({ subscriptionId });
2177
+ await _chunk6KE7UBYYjs.StripeSubscriptionService.syncSubscription({ subscriptionId });
2178
2178
  } catch (syncError) {
2179
2179
  console.error("[useSubscriptionWizard] Subscription sync after payment failed:", syncError);
2180
2180
  }
@@ -2222,7 +2222,7 @@ function useSubscriptionWizard({ subscription, onSuccess, onClose }) {
2222
2222
  dispatch({ type: "SET_VALIDATING_PROMO_CODE", isValidating: true });
2223
2223
  dispatch({ type: "SET_PROMO_CODE_ERROR", error: null });
2224
2224
  try {
2225
- const result = await _chunkOJAIKQR2js.StripePromotionCodeService.validatePromotionCode({
2225
+ const result = await _chunk6KE7UBYYjs.StripePromotionCodeService.validatePromotionCode({
2226
2226
  code,
2227
2227
  stripePriceId: _optionalChain([state, 'access', _72 => _72.selectedPrice, 'optionalAccess', _73 => _73.id]),
2228
2228
  language: locale
@@ -2347,7 +2347,7 @@ function WizardStepPlanSelection({
2347
2347
  _react.useEffect.call(void 0, () => {
2348
2348
  const loadProducts = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
2349
2349
  try {
2350
- const fetchedProducts = await _chunkOJAIKQR2js.StripeProductService.listProducts({ active: true });
2350
+ const fetchedProducts = await _chunk6KE7UBYYjs.StripeProductService.listProducts({ active: true });
2351
2351
  setProducts(fetchedProducts);
2352
2352
  } catch (error) {
2353
2353
  console.error("[WizardStepPlanSelection] Failed to load products:", error);
@@ -2398,7 +2398,7 @@ function WizardStepPlanSelection({
2398
2398
  onSelectPrice: handleSelectPrice
2399
2399
  }
2400
2400
  ),
2401
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-end pt-4 border-t", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { onClick: onNext, disabled: !selectedPrice || isProcessing, children: isProcessing ? t("common.loading") : t("billing.ui.wizard.next_review") }) })
2401
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-end pt-4 border-t", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { onClick: onNext, disabled: !selectedPrice || isProcessing, children: isProcessing ? t("common.loading") : t("billing.ui.wizard.next_review") }) })
2402
2402
  ] });
2403
2403
  }
2404
2404
  _chunk7QVYU63Ejs.__name.call(void 0, WizardStepPlanSelection, "WizardStepPlanSelection");
@@ -2422,7 +2422,7 @@ function PromoCodeInput({
2422
2422
  disabled = false
2423
2423
  }) {
2424
2424
  const t = _nextintl.useTranslations.call(void 0, );
2425
- const locale = _chunkOJAIKQR2js.useI18nLocale.call(void 0, );
2425
+ const locale = _chunk6KE7UBYYjs.useI18nLocale.call(void 0, );
2426
2426
  const [code, setCode] = _react.useState.call(void 0, "");
2427
2427
  const appliedKey = _optionalChain([appliedCode, 'optionalAccess', _82 => _82.valid]) ? `${appliedCode.automatic ? "auto" : "typed"}:${_nullishCoalesce(appliedCode.code, () => ( ""))}` : null;
2428
2428
  const [previousAppliedKey, setPreviousAppliedKey] = _react.useState.call(void 0, appliedKey);
@@ -2451,7 +2451,7 @@ function PromoCodeInput({
2451
2451
  }
2452
2452
  const amount = (result.discountValue || 0) / 100;
2453
2453
  const currency = _optionalChain([result, 'access', _83 => _83.currency, 'optionalAccess', _84 => _84.toUpperCase, 'call', _85 => _85()]) || "USD";
2454
- return t("billing.ui.wizard.review.amount_off", { amount: `${currency} ${_chunkOJAIKQR2js.formatFixed.call(void 0, amount, locale, 2)}` });
2454
+ return t("billing.ui.wizard.review.amount_off", { amount: `${currency} ${_chunk6KE7UBYYjs.formatFixed.call(void 0, amount, locale, 2)}` });
2455
2455
  }, "formatDiscount");
2456
2456
  const formatDuration = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (result) => {
2457
2457
  switch (result.duration) {
@@ -2468,7 +2468,7 @@ function PromoCodeInput({
2468
2468
  const codeInput = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
2469
2469
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2", children: [
2470
2470
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2471
- _chunkR2XBVIO5js.Input,
2471
+ _chunkPCCUPEBUjs.Input,
2472
2472
  {
2473
2473
  placeholder: t("billing.ui.promo_code.placeholder"),
2474
2474
  value: code,
@@ -2478,7 +2478,7 @@ function PromoCodeInput({
2478
2478
  className: "flex-1"
2479
2479
  }
2480
2480
  ),
2481
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", onClick: handleApply, disabled: disabled || isValidating || !code.trim(), children: isValidating ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-4 w-4 animate-spin" }) : t("billing.ui.promo_code.apply") })
2481
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", onClick: handleApply, disabled: disabled || isValidating || !code.trim(), children: isValidating ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-4 w-4 animate-spin" }) : t("billing.ui.promo_code.apply") })
2482
2482
  ] }),
2483
2483
  error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error })
2484
2484
  ] });
@@ -2507,7 +2507,7 @@ function PromoCodeInput({
2507
2507
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-success text-sm", children: formatDiscount(appliedCode) })
2508
2508
  ] }),
2509
2509
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2510
- _chunkR2XBVIO5js.Button,
2510
+ _chunkPCCUPEBUjs.Button,
2511
2511
  {
2512
2512
  variant: "ghost",
2513
2513
  size: "sm",
@@ -2555,7 +2555,7 @@ function WizardStepReview({
2555
2555
  isTrialUpgrade
2556
2556
  }) {
2557
2557
  const t = _nextintl.useTranslations.call(void 0, );
2558
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
2558
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
2559
2559
  const [card, setCard] = _react.useState.call(void 0, null);
2560
2560
  _react.useEffect.call(void 0, () => {
2561
2561
  if (!hasPaymentMethod) {
@@ -2563,7 +2563,7 @@ function WizardStepReview({
2563
2563
  return;
2564
2564
  }
2565
2565
  let cancelled = false;
2566
- Promise.all([_chunkOJAIKQR2js.StripeCustomerService.listPaymentMethods(), _chunkOJAIKQR2js.StripeCustomerService.getCustomer()]).then(([methods, customer]) => {
2566
+ Promise.all([_chunk6KE7UBYYjs.StripeCustomerService.listPaymentMethods(), _chunk6KE7UBYYjs.StripeCustomerService.getCustomer()]).then(([methods, customer]) => {
2567
2567
  if (!cancelled) setCard(reviewCard(methods, _optionalChain([customer, 'optionalAccess', _90 => _90.defaultPaymentMethodId])));
2568
2568
  }).catch((err) => {
2569
2569
  console.error("[WizardStepReview] Failed to load the card on file:", err);
@@ -2582,24 +2582,24 @@ function WizardStepReview({
2582
2582
  const interval = _optionalChain([price, 'access', _93 => _93.recurring, 'optionalAccess', _94 => _94.interval]) || "month";
2583
2583
  return interval === "year" ? t("billing.ui.wizard.review.interval_yearly") : t("billing.ui.wizard.review.interval_monthly");
2584
2584
  }, "formatInterval");
2585
- const codeDiscount = _chunkR2XBVIO5js.promotionCodeDiscount.call(void 0, promotionCode);
2586
- const carriedDiscount = isChangingPlan && !codeDiscount ? _chunkR2XBVIO5js.subscriptionDiscount.call(void 0, subscription) : null;
2585
+ const codeDiscount = _chunkPCCUPEBUjs.promotionCodeDiscount.call(void 0, promotionCode);
2586
+ const carriedDiscount = isChangingPlan && !codeDiscount ? _chunkPCCUPEBUjs.subscriptionDiscount.call(void 0, subscription) : null;
2587
2587
  const discount = _nullishCoalesce(codeDiscount, () => ( carriedDiscount));
2588
- const discountedPrice = _chunkR2XBVIO5js.applyDiscount.call(void 0, selectedPrice.unitAmount, discount);
2589
- const discountedImmediateCharge = _chunkR2XBVIO5js.applyDiscount.call(void 0, _optionalChain([prorationPreview, 'optionalAccess', _95 => _95.immediateCharge]), discount);
2588
+ const discountedPrice = _chunkPCCUPEBUjs.applyDiscount.call(void 0, selectedPrice.unitAmount, discount);
2589
+ const discountedImmediateCharge = _chunkPCCUPEBUjs.applyDiscount.call(void 0, _optionalChain([prorationPreview, 'optionalAccess', _95 => _95.immediateCharge]), discount);
2590
2590
  const getDiscountDescription = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
2591
2591
  if (!discount) return null;
2592
2592
  if (discount.discountType === "percent_off") {
2593
2593
  return t("billing.ui.wizard.review.percent_off", { value: discount.discountValue });
2594
2594
  }
2595
2595
  return t("billing.ui.wizard.review.amount_off", {
2596
- amount: _chunkOJAIKQR2js.formatCurrency.call(void 0, discount.discountValue, discount.currency || selectedPrice.currency, fmt)
2596
+ amount: _chunk6KE7UBYYjs.formatCurrency.call(void 0, discount.discountValue, discount.currency || selectedPrice.currency, fmt)
2597
2597
  });
2598
2598
  }, "getDiscountDescription");
2599
2599
  const discountDescription = getDiscountDescription();
2600
2600
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6", children: [
2601
2601
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-muted/50 rounded-lg p-4 space-y-3", children: [
2602
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.SectionHeader, { children: t("billing.ui.wizard.review.selected_plan") }),
2602
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.SectionHeader, { children: t("billing.ui.wizard.review.selected_plan") }),
2603
2603
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between items-center", children: [
2604
2604
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
2605
2605
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-medium", children: _optionalChain([selectedPrice, 'access', _96 => _96.product, 'optionalAccess', _97 => _97.name]) }),
@@ -2607,11 +2607,11 @@ function WizardStepReview({
2607
2607
  ] }),
2608
2608
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-end", children: [
2609
2609
  discountedPrice !== null ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
2610
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-muted-foreground line-through", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, selectedPrice.unitAmount || 0, selectedPrice.currency, fmt) }),
2611
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-success text-lg font-semibold", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, discountedPrice, selectedPrice.currency, fmt) }),
2612
- discountDescription && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softGreen", children: discountDescription }),
2610
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-muted-foreground line-through", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, selectedPrice.unitAmount || 0, selectedPrice.currency, fmt) }),
2611
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-success text-lg font-semibold", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, discountedPrice, selectedPrice.currency, fmt) }),
2612
+ discountDescription && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softGreen", children: discountDescription }),
2613
2613
  carriedDiscount && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-muted-foreground", children: t("billing.ui.wizard.review.discount_carries_over") })
2614
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-semibold text-lg", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, selectedPrice.unitAmount || 0, selectedPrice.currency, fmt) }),
2614
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-semibold text-lg", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, selectedPrice.unitAmount || 0, selectedPrice.currency, fmt) }),
2615
2615
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-muted-foreground", children: formatInterval2(selectedPrice) })
2616
2616
  ] })
2617
2617
  ] })
@@ -2626,9 +2626,9 @@ function WizardStepReview({
2626
2626
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between text-sm", children: [
2627
2627
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${isTrialUpgrade ? "text-warning" : "text-muted-foreground"}`, children: isTrialUpgrade ? t("billing.ui.wizard.review.charge_now") : t("billing.ui.wizard.review.due_now") }),
2628
2628
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `font-medium ${isTrialUpgrade ? "text-warning" : "text-foreground"}`, children: discountedImmediateCharge !== null ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
2629
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-through text-muted-foreground me-2", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, prorationPreview.immediateCharge, prorationPreview.currency, fmt) }),
2630
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-success", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, discountedImmediateCharge, prorationPreview.currency, fmt) })
2631
- ] }) : _chunkOJAIKQR2js.formatCurrency.call(void 0, prorationPreview.immediateCharge, prorationPreview.currency, fmt) })
2629
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-through text-muted-foreground me-2", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, prorationPreview.immediateCharge, prorationPreview.currency, fmt) }),
2630
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-success", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, discountedImmediateCharge, prorationPreview.currency, fmt) })
2631
+ ] }) : _chunk6KE7UBYYjs.formatCurrency.call(void 0, prorationPreview.immediateCharge, prorationPreview.currency, fmt) })
2632
2632
  ] })
2633
2633
  ]
2634
2634
  }
@@ -2652,15 +2652,15 @@ function WizardStepReview({
2652
2652
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h4", { className: "font-medium", children: t("billing.ui.payment_method.title") }),
2653
2653
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-muted-foreground", children: hasPaymentMethod ? card ? t("billing.ui.wizard.review.card_on_file", { brand: card.brand, last4: card.last4 }) : t("billing.ui.wizard.review.payment_on_file") : t("billing.ui.wizard.review.no_payment_on_file") })
2654
2654
  ] }),
2655
- hasPaymentMethod ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", onClick: onAddPaymentMethod, disabled: isProcessing, children: t("billing.ui.wizard.review.use_another_card") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", onClick: onAddPaymentMethod, children: t("billing.ui.payment_methods.add") })
2655
+ hasPaymentMethod ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", onClick: onAddPaymentMethod, disabled: isProcessing, children: t("billing.ui.wizard.review.use_another_card") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", onClick: onAddPaymentMethod, children: t("billing.ui.payment_methods.add") })
2656
2656
  ] }) }),
2657
- error && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Alert, { variant: "destructive", children: [
2657
+ error && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Alert, { variant: "destructive", children: [
2658
2658
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertCircle, { className: "h-4 w-4" }),
2659
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.AlertDescription, { children: error })
2659
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.AlertDescription, { children: error })
2660
2660
  ] }),
2661
2661
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between pt-4 border-t", children: [
2662
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", onClick: onBack, disabled: isProcessing, children: t("billing.ui.wizard.back") }),
2663
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { onClick: hasPaymentMethod ? onConfirm : onAddPaymentMethod, disabled: isProcessing, children: isProcessing ? t("billing.ui.wizard.review.processing") : hasPaymentMethod ? isChangingPlan ? t("billing.ui.wizard.review.confirm_change") : t("billing.ui.wizard.review.subscribe_now") : t("billing.ui.payment_methods.add") })
2662
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", onClick: onBack, disabled: isProcessing, children: t("billing.ui.wizard.back") }),
2663
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { onClick: hasPaymentMethod ? onConfirm : onAddPaymentMethod, disabled: isProcessing, children: isProcessing ? t("billing.ui.wizard.review.processing") : hasPaymentMethod ? isChangingPlan ? t("billing.ui.wizard.review.confirm_change") : t("billing.ui.wizard.review.subscribe_now") : t("billing.ui.payment_methods.add") })
2664
2664
  ] })
2665
2665
  ] });
2666
2666
  }
@@ -2673,7 +2673,7 @@ function WizardStepPaymentMethod({ onBack, onSuccess, isProcessing }) {
2673
2673
  const t = _nextintl.useTranslations.call(void 0, );
2674
2674
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6", children: [
2675
2675
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
2676
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.SectionHeader, { children: t("billing.ui.payment_methods.add") }),
2676
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.SectionHeader, { children: t("billing.ui.payment_methods.add") }),
2677
2677
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-muted-foreground", children: t("billing.ui.wizard.payment_description") })
2678
2678
  ] }),
2679
2679
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PaymentMethodForm, { onSuccess, onCancel: onBack, isLoading: isProcessing, alwaysSetDefault: true })
@@ -2716,10 +2716,10 @@ function SubscriptionWizard({
2716
2716
  const isChangePlanMode = !!subscription;
2717
2717
  const dialogTitle = subscription ? t("billing.ui.wizard.change_title") : isPurchasingAddons ? t("billing.ui.subscriptions.purchase_addons") : t("billing.ui.subscriptions.subscribe");
2718
2718
  const dialogDescription = subscription ? t("billing.ui.wizard.change_description") : isPurchasingAddons ? t("billing.ui.wizard.addons_description") : t("billing.ui.wizard.subscribe_description");
2719
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogContent, { className: "max-w-2xl max-h-[90vh] overflow-y-auto", children: [
2720
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogHeader, { children: [
2721
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogTitle, { children: dialogTitle }),
2722
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogDescription, { children: dialogDescription })
2719
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogContent, { className: "max-w-2xl max-h-[90vh] overflow-y-auto", children: [
2720
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogHeader, { children: [
2721
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogTitle, { children: dialogTitle }),
2722
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogDescription, { children: dialogDescription })
2723
2723
  ] }),
2724
2724
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, WizardProgressIndicator, { currentStep: state.step }),
2725
2725
  state.step === "plan-selection" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -2787,7 +2787,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, getProgressColor, "getProgressColor");
2787
2787
  function formatDate2(date, { locale, t }) {
2788
2788
  if (!date) return t("billing.ui.not_available");
2789
2789
  try {
2790
- return new Intl.DateTimeFormat(_chunkOJAIKQR2js.dateFormatLocale.call(void 0, locale), {
2790
+ return new Intl.DateTimeFormat(_chunk6KE7UBYYjs.dateFormatLocale.call(void 0, locale), {
2791
2791
  month: "short",
2792
2792
  day: "numeric"
2793
2793
  }).format(new Date(date));
@@ -2798,7 +2798,7 @@ function formatDate2(date, { locale, t }) {
2798
2798
  _chunk7QVYU63Ejs.__name.call(void 0, formatDate2, "formatDate");
2799
2799
  function UsageSummaryCard({ meter, summary }) {
2800
2800
  const t = _nextintl.useTranslations.call(void 0, );
2801
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
2801
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
2802
2802
  const currentUsage = _nullishCoalesce(_optionalChain([summary, 'optionalAccess', _100 => _100.aggregatedValue]), () => ( 0));
2803
2803
  const limit = meter.limit;
2804
2804
  const percentage = limit && limit > 0 ? currentUsage / limit * 100 : null;
@@ -2806,15 +2806,15 @@ function UsageSummaryCard({ meter, summary }) {
2806
2806
  const progressWidth = percentage !== null ? Math.min(percentage, 100) : 0;
2807
2807
  const displayName = meter.displayName || meter.eventName;
2808
2808
  const hasLimit = limit !== null && limit !== void 0;
2809
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
2810
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "flex flex-row items-center gap-x-3 pb-3", children: [
2809
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
2810
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "flex flex-row items-center gap-x-3 pb-3", children: [
2811
2811
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-blue-100 text-blue-600", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Activity, { className: "h-5 w-5" }) }),
2812
2812
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
2813
2813
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-sm font-medium", children: displayName }),
2814
2814
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-xs", children: meter.id })
2815
2815
  ] })
2816
2816
  ] }),
2817
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardContent, { className: "flex flex-col gap-y-4", children: [
2817
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardContent, { className: "flex flex-col gap-y-4", children: [
2818
2818
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
2819
2819
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-3xl font-bold", children: currentUsage.toLocaleString(fmt.locale) }),
2820
2820
  hasLimit && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("billing.ui.usage.of_limit_used", { limit: limit.toLocaleString(fmt.locale) }) })
@@ -2822,7 +2822,7 @@ function UsageSummaryCard({ meter, summary }) {
2822
2822
  hasLimit ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-y-2", children: [
2823
2823
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-2 w-full overflow-hidden rounded-full bg-gray-200", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `h-full transition-all ${progressColor}`, style: { width: `${progressWidth}%` } }) }),
2824
2824
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("billing.ui.usage.percent_used", {
2825
- value: percentage !== null ? _chunkOJAIKQR2js.formatFixed.call(void 0, percentage, fmt.locale, 1) : ""
2825
+ value: percentage !== null ? _chunk6KE7UBYYjs.formatFixed.call(void 0, percentage, fmt.locale, 1) : ""
2826
2826
  }) })
2827
2827
  ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("billing.ui.usage.no_limit") }),
2828
2828
  summary && summary.start && summary.end && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-t pt-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-xs", children: t("billing.ui.usage.period", {
@@ -2855,14 +2855,14 @@ function UsageContainer() {
2855
2855
  const loadUsageData = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
2856
2856
  setLoading(true);
2857
2857
  try {
2858
- const fetchedSubscriptions = await _chunkOJAIKQR2js.StripeSubscriptionService.listSubscriptions();
2858
+ const fetchedSubscriptions = await _chunk6KE7UBYYjs.StripeSubscriptionService.listSubscriptions();
2859
2859
  setSubscriptions(fetchedSubscriptions);
2860
2860
  const hasMeteredSubscriptions2 = fetchedSubscriptions.some((sub) => _optionalChain([sub, 'access', _101 => _101.price, 'optionalAccess', _102 => _102.recurring, 'optionalAccess', _103 => _103.usageType]) === "metered");
2861
2861
  if (!hasMeteredSubscriptions2) {
2862
2862
  setLoading(false);
2863
2863
  return;
2864
2864
  }
2865
- const fetchedMeters = await _chunkOJAIKQR2js.StripeUsageService.listMeters();
2865
+ const fetchedMeters = await _chunk6KE7UBYYjs.StripeUsageService.listMeters();
2866
2866
  setMeters(fetchedMeters);
2867
2867
  const summariesMap = {};
2868
2868
  const now = /* @__PURE__ */ new Date();
@@ -2870,7 +2870,7 @@ function UsageContainer() {
2870
2870
  const endOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0, 23, 59, 59, 999);
2871
2871
  for (const meter of fetchedMeters) {
2872
2872
  try {
2873
- const meterSummaries = await _chunkOJAIKQR2js.StripeUsageService.getMeterSummaries({
2873
+ const meterSummaries = await _chunk6KE7UBYYjs.StripeUsageService.getMeterSummaries({
2874
2874
  meterId: meter.id,
2875
2875
  startTime: startOfMonth,
2876
2876
  endTime: endOfMonth
@@ -2919,7 +2919,7 @@ function formatDateTime(date, { locale, t }) {
2919
2919
  if (!date) return t("billing.ui.not_available");
2920
2920
  const dateObj = typeof date === "string" ? new Date(date) : date;
2921
2921
  try {
2922
- return new Intl.DateTimeFormat(_chunkOJAIKQR2js.dateFormatLocale.call(void 0, locale), {
2922
+ return new Intl.DateTimeFormat(_chunk6KE7UBYYjs.dateFormatLocale.call(void 0, locale), {
2923
2923
  month: "short",
2924
2924
  day: "numeric",
2925
2925
  year: "numeric",
@@ -2933,27 +2933,27 @@ function formatDateTime(date, { locale, t }) {
2933
2933
  _chunk7QVYU63Ejs.__name.call(void 0, formatDateTime, "formatDateTime");
2934
2934
  function UsageHistoryTable({ usageRecords }) {
2935
2935
  const t = _nextintl.useTranslations.call(void 0, );
2936
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
2936
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
2937
2937
  if (usageRecords.length === 0) {
2938
2938
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border p-8 text-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground", children: t("billing.ui.usage.history_empty") }) });
2939
2939
  }
2940
2940
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-y-4", children: [
2941
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.SectionHeader, { level: 2, children: t("billing.ui.usage.history_title") }),
2942
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-clip rounded-lg border", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Table, { children: [
2943
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHeader, { className: "bg-muted", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.TableRow, { children: [
2944
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { children: t("billing.ui.columns.date_time") }),
2945
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { children: t("billing.ui.columns.meter_event") }),
2946
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { className: "text-end", children: t("billing.ui.columns.quantity") }),
2947
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableHead, { children: t("billing.ui.columns.event_id") })
2941
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.SectionHeader, { level: 2, children: t("billing.ui.usage.history_title") }),
2942
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-clip rounded-lg border", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Table, { children: [
2943
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHeader, { className: "bg-muted", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.TableRow, { children: [
2944
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { children: t("billing.ui.columns.date_time") }),
2945
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { children: t("billing.ui.columns.meter_event") }),
2946
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { className: "text-end", children: t("billing.ui.columns.quantity") }),
2947
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableHead, { children: t("billing.ui.columns.event_id") })
2948
2948
  ] }) }),
2949
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableBody, { children: usageRecords.map((record) => {
2949
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableBody, { children: usageRecords.map((record) => {
2950
2950
  const dateTime = formatDateTime(record.timestamp, fmt);
2951
2951
  const quantity = record.quantity.toLocaleString(fmt.locale);
2952
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.TableRow, { children: [
2953
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "font-medium", children: dateTime }),
2954
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "text-muted-foreground", children: record.meterEventName }),
2955
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "text-end font-medium", children: quantity }),
2956
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.TableCell, { className: "text-muted-foreground text-sm tabular-nums", children: record.stripeEventId })
2952
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.TableRow, { children: [
2953
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "font-medium", children: dateTime }),
2954
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "text-muted-foreground", children: record.meterEventName }),
2955
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "text-end font-medium", children: quantity }),
2956
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.TableCell, { className: "text-muted-foreground text-sm tabular-nums", children: record.stripeEventId })
2957
2957
  ] }, record.id);
2958
2958
  }) })
2959
2959
  ] }) })
@@ -2964,8 +2964,8 @@ _chunk7QVYU63Ejs.__name.call(void 0, UsageHistoryTable, "UsageHistoryTable");
2964
2964
  // src/features/billing/components/modals/BillingDetailModal.tsx
2965
2965
 
2966
2966
  function BillingDetailModal({ open, onOpenChange, title, children, className }) {
2967
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.DialogContent, { className: _nullishCoalesce(className, () => ( "max-w-4xl max-h-[90vh] overflow-y-auto")), children: [
2968
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DialogTitle, { children: title }) }),
2967
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.DialogContent, { className: _nullishCoalesce(className, () => ( "max-w-4xl max-h-[90vh] overflow-y-auto")), children: [
2968
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DialogTitle, { children: title }) }),
2969
2969
  children
2970
2970
  ] }) });
2971
2971
  }
@@ -2993,7 +2993,7 @@ function BillingAlertBanner({ subscription, onUpdatePayment, onAddPayment }) {
2993
2993
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-destructive text-sm font-medium", children: t("billing.ui.alert.payment_failed_title") }),
2994
2994
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive mt-1 text-sm", children: t("billing.ui.alert.payment_failed_description") })
2995
2995
  ] }),
2996
- onUpdatePayment && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", size: "sm", onClick: onUpdatePayment, className: "text-destructive border-red-300", children: t("billing.ui.alert.update_payment_method") })
2996
+ onUpdatePayment && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", size: "sm", onClick: onUpdatePayment, className: "text-destructive border-red-300", children: t("billing.ui.alert.update_payment_method") })
2997
2997
  ] });
2998
2998
  }
2999
2999
  if (subscription.status === "trialing" /* TRIALING */ && subscription.trialEnd) {
@@ -3007,7 +3007,7 @@ function BillingAlertBanner({ subscription, onUpdatePayment, onAddPayment }) {
3007
3007
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-warning text-sm font-medium", children: t("billing.ui.alert.trial_ending_title") }),
3008
3008
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-warning mt-1 text-sm", children: t("billing.ui.alert.trial_ending_description", { count: daysRemaining }) })
3009
3009
  ] }),
3010
- onAddPayment && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", size: "sm", onClick: onAddPayment, className: "text-warning border-yellow-300", children: t("billing.ui.payment_methods.add") })
3010
+ onAddPayment && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", size: "sm", onClick: onAddPayment, className: "text-warning border-yellow-300", children: t("billing.ui.payment_methods.add") })
3011
3011
  ] });
3012
3012
  }
3013
3013
  }
@@ -3060,7 +3060,7 @@ function BillingDashboardContainer({ renderCancelDialog } = {}) {
3060
3060
  setNoCustomerExists(false);
3061
3061
  let customer = null;
3062
3062
  try {
3063
- customer = await _chunkOJAIKQR2js.StripeCustomerService.getCustomer();
3063
+ customer = await _chunk6KE7UBYYjs.StripeCustomerService.getCustomer();
3064
3064
  setData((prev) => ({ ...prev, customer }));
3065
3065
  setErrors((prev) => ({ ...prev, customer: null }));
3066
3066
  setNoCustomerExists(false);
@@ -3086,7 +3086,7 @@ function BillingDashboardContainer({ renderCancelDialog } = {}) {
3086
3086
  }
3087
3087
  const fetchSubscriptions = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
3088
3088
  try {
3089
- const subscriptions2 = await _chunkOJAIKQR2js.StripeSubscriptionService.listSubscriptions();
3089
+ const subscriptions2 = await _chunk6KE7UBYYjs.StripeSubscriptionService.listSubscriptions();
3090
3090
  setData((prev) => ({ ...prev, subscriptions: subscriptions2 }));
3091
3091
  setErrors((prev) => ({ ...prev, subscriptions: null }));
3092
3092
  return subscriptions2;
@@ -3100,7 +3100,7 @@ function BillingDashboardContainer({ renderCancelDialog } = {}) {
3100
3100
  }, "fetchSubscriptions");
3101
3101
  const fetchPaymentMethods = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
3102
3102
  try {
3103
- const paymentMethods = await _chunkOJAIKQR2js.StripeCustomerService.listPaymentMethods();
3103
+ const paymentMethods = await _chunk6KE7UBYYjs.StripeCustomerService.listPaymentMethods();
3104
3104
  setData((prev) => ({ ...prev, paymentMethods }));
3105
3105
  setErrors((prev) => ({ ...prev, paymentMethods: null }));
3106
3106
  } catch (error) {
@@ -3112,7 +3112,7 @@ function BillingDashboardContainer({ renderCancelDialog } = {}) {
3112
3112
  }, "fetchPaymentMethods");
3113
3113
  const fetchInvoices = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
3114
3114
  try {
3115
- const invoices = await _chunkOJAIKQR2js.StripeInvoiceService.listInvoices();
3115
+ const invoices = await _chunk6KE7UBYYjs.StripeInvoiceService.listInvoices();
3116
3116
  setData((prev) => ({ ...prev, invoices }));
3117
3117
  setErrors((prev) => ({ ...prev, invoices: null }));
3118
3118
  } catch (error) {
@@ -3135,7 +3135,7 @@ function BillingDashboardContainer({ renderCancelDialog } = {}) {
3135
3135
  const handleCreateCustomer = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
3136
3136
  setCreatingCustomer(true);
3137
3137
  try {
3138
- await _chunkOJAIKQR2js.StripeCustomerService.createCustomer();
3138
+ await _chunk6KE7UBYYjs.StripeCustomerService.createCustomer();
3139
3139
  setNoCustomerExists(false);
3140
3140
  await fetchAllData();
3141
3141
  } catch (error) {
@@ -3147,7 +3147,7 @@ function BillingDashboardContainer({ renderCancelDialog } = {}) {
3147
3147
  }, "handleCreateCustomer");
3148
3148
  const fetchUsageData = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
3149
3149
  try {
3150
- const meters = await _chunkOJAIKQR2js.StripeUsageService.listMeters();
3150
+ const meters = await _chunk6KE7UBYYjs.StripeUsageService.listMeters();
3151
3151
  setData((prev) => ({ ...prev, meters }));
3152
3152
  const summariesMap = {};
3153
3153
  const now = /* @__PURE__ */ new Date();
@@ -3155,7 +3155,7 @@ function BillingDashboardContainer({ renderCancelDialog } = {}) {
3155
3155
  const endOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0, 23, 59, 59, 999);
3156
3156
  for (const meter of meters) {
3157
3157
  try {
3158
- const meterSummaries = await _chunkOJAIKQR2js.StripeUsageService.getMeterSummaries({
3158
+ const meterSummaries = await _chunk6KE7UBYYjs.StripeUsageService.getMeterSummaries({
3159
3159
  meterId: meter.id,
3160
3160
  startTime: startOfMonth,
3161
3161
  endTime: endOfMonth
@@ -3217,7 +3217,7 @@ function BillingDashboardContainer({ renderCancelDialog } = {}) {
3217
3217
  _react.useEffect.call(void 0, () => {
3218
3218
  if (!pendingChangePlan || loading.subscriptions) return;
3219
3219
  setPendingChangePlan(false);
3220
- handleOpenWizard(_chunkOJAIKQR2js.resolveChangePlanTarget.call(void 0, data.subscriptions));
3220
+ handleOpenWizard(_chunk6KE7UBYYjs.resolveChangePlanTarget.call(void 0, data.subscriptions));
3221
3221
  }, [pendingChangePlan, loading.subscriptions, data.subscriptions, handleOpenWizard]);
3222
3222
  const criticalSubscriptions = data.subscriptions.filter(
3223
3223
  (sub) => sub.status === "past_due" /* PAST_DUE */ || sub.status === "trialing" /* TRIALING */ && sub.trialEnd && new Date(sub.trialEnd).getTime() - (/* @__PURE__ */ new Date()).getTime() <= 7 * 24 * 60 * 60 * 1e3
@@ -3248,18 +3248,18 @@ function BillingDashboardContainer({ renderCancelDialog } = {}) {
3248
3248
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wallet, { className: "h-8 w-8" }),
3249
3249
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "text-primary text-3xl font-semibold", children: t("billing.title") })
3250
3250
  ] }),
3251
- isInitialLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-muted-foreground" }) }) }),
3252
- noCustomerExists && !isInitialLoading && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Card, { children: [
3253
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.CardHeader, { className: "text-center", children: [
3251
+ isInitialLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { className: "flex items-center justify-center py-12", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-muted-foreground" }) }) }),
3252
+ noCustomerExists && !isInitialLoading && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Card, { children: [
3253
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.CardHeader, { className: "text-center", children: [
3254
3254
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CreditCard, { className: "h-8 w-8 text-primary" }) }),
3255
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardTitle, { children: t("billing.ui.dashboard.setup_title") }),
3256
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardDescription, { children: t("billing.ui.dashboard.setup_description") })
3255
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardTitle, { children: t("billing.ui.dashboard.setup_title") }),
3256
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardDescription, { children: t("billing.ui.dashboard.setup_description") })
3257
3257
  ] }),
3258
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { className: "flex justify-center pb-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Button, { onClick: handleCreateCustomer, disabled: creatingCustomer, size: "lg", children: creatingCustomer ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
3258
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { className: "flex justify-center pb-8", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Button, { onClick: handleCreateCustomer, disabled: creatingCustomer, size: "lg", children: creatingCustomer ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
3259
3259
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "me-2 h-4 w-4 animate-spin" }),
3260
3260
  t("billing.ui.dashboard.setting_up")
3261
3261
  ] }) : t("billing.ui.dashboard.setup_button") }) }),
3262
- errors.customer && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CardContent, { className: "pt-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-center text-destructive text-xs/relaxed", children: t(errors.customer) }) })
3262
+ errors.customer && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CardContent, { className: "pt-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-center text-destructive text-xs/relaxed", children: t(errors.customer) }) })
3263
3263
  ] }),
3264
3264
  !noCustomerExists && !isInitialLoading && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
3265
3265
  criticalSubscriptions.map((subscription) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -3404,7 +3404,7 @@ function getStripePromise(publishableKey) {
3404
3404
  }
3405
3405
  _chunk7QVYU63Ejs.__name.call(void 0, getStripePromise, "getStripePromise");
3406
3406
  function StripeProvider({ children }) {
3407
- const publishableKey = _chunkAMN2XDN5js.getStripePublishableKey.call(void 0, );
3407
+ const publishableKey = _chunk3HOJNAZBjs.getStripePublishableKey.call(void 0, );
3408
3408
  const stripePromise = _react.useMemo.call(void 0, () => getStripePromise(publishableKey), [publishableKey]);
3409
3409
  const options = _react.useMemo.call(void 0, () => ({}), []);
3410
3410
  if (!publishableKey) {
@@ -3414,7 +3414,7 @@ function StripeProvider({ children }) {
3414
3414
  }
3415
3415
  _chunk7QVYU63Ejs.__name.call(void 0, StripeProvider, "StripeProvider");
3416
3416
  function isStripeConfigured() {
3417
- return !!_chunkAMN2XDN5js.getStripePublishableKey.call(void 0, );
3417
+ return !!_chunk3HOJNAZBjs.getStripePublishableKey.call(void 0, );
3418
3418
  }
3419
3419
  _chunk7QVYU63Ejs.__name.call(void 0, isStripeConfigured, "isStripeConfigured");
3420
3420
 
@@ -3429,18 +3429,18 @@ _chunk7QVYU63Ejs.__name.call(void 0, isStripeConfigured, "isStripeConfigured");
3429
3429
 
3430
3430
  function PriceArchiver({ price }) {
3431
3431
  const t = _nextintl.useTranslations.call(void 0, );
3432
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
3432
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
3433
3433
  const { archivePrice, restorePrice } = usePriceContext();
3434
3434
  const [open, setOpen] = _react.useState.call(void 0, false);
3435
3435
  const isArchived = !price.active;
3436
3436
  const scope = isArchived ? "restore" : "archive";
3437
3437
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
3438
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", size: "sm", onClick: () => setOpen(true), children: [
3438
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", size: "sm", onClick: () => setOpen(true), children: [
3439
3439
  isArchived ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.RotateCcwIcon, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ArchiveIcon, {}),
3440
3440
  t(`billing.admin.prices.${scope}.confirm`)
3441
3441
  ] }),
3442
3442
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3443
- _chunkR2XBVIO5js.ConfirmDialog,
3443
+ _chunkPCCUPEBUjs.ConfirmDialog,
3444
3444
  {
3445
3445
  open,
3446
3446
  onOpenChange: setOpen,
@@ -3454,7 +3454,7 @@ function PriceArchiver({ price }) {
3454
3454
  if (isArchived) await restorePrice(price.id);
3455
3455
  else await archivePrice(price.id);
3456
3456
  } catch (error) {
3457
- _chunkR2XBVIO5js.errorToast.call(void 0, { title: t(`billing.admin.prices.${scope}.title`), error });
3457
+ _chunkPCCUPEBUjs.errorToast.call(void 0, { title: t(`billing.admin.prices.${scope}.title`), error });
3458
3458
  throw error;
3459
3459
  }
3460
3460
  }
@@ -3486,15 +3486,15 @@ function PriceEditorInternal({
3486
3486
  onDialogOpenChange
3487
3487
  }) {
3488
3488
  const t = _nextintl.useTranslations.call(void 0, );
3489
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
3490
- const router = _chunkOJAIKQR2js.useI18nRouter.call(void 0, );
3489
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
3490
+ const router = _chunk6KE7UBYYjs.useI18nRouter.call(void 0, );
3491
3491
  const { createPrice, updatePrice, productId: contextProductId } = usePriceContext();
3492
3492
  const [allFeatures, setAllFeatures] = _react.useState.call(void 0, []);
3493
3493
  const isEdit = !!price;
3494
3494
  const targetProductId = _nullishCoalesce(_nullishCoalesce(productId, () => ( _optionalChain([price, 'optionalAccess', _119 => _119.product, 'optionalAccess', _120 => _120.id]))), () => ( contextProductId));
3495
3495
  _react.useEffect.call(void 0, () => {
3496
3496
  const fetchFeatures = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, async () => {
3497
- setAllFeatures(await _chunkOJAIKQR2js.FeatureService.findMany({}));
3497
+ setAllFeatures(await _chunk6KE7UBYYjs.FeatureService.findMany({}));
3498
3498
  }, "fetchFeatures");
3499
3499
  void fetchFeatures();
3500
3500
  }, []);
@@ -3607,7 +3607,7 @@ function PriceEditorInternal({
3607
3607
  warnedUnknownFor.current = fingerprint;
3608
3608
  const { unknown } = resolvePlatformFeatures(seed.platformFeatures);
3609
3609
  if (unknown.length > 0)
3610
- _chunkOJAIKQR2js.showToast.call(void 0, t("billing.admin.prices.import.warnings.unknownFeatures", { features: unknown.join(", ") }));
3610
+ _chunk6KE7UBYYjs.showToast.call(void 0, t("billing.admin.prices.import.warnings.unknownFeatures", { features: unknown.join(", ") }));
3611
3611
  }, [seed, isEdit, allFeatures, resolvePlatformFeatures, t]);
3612
3612
  const watchInterval = form.watch("interval");
3613
3613
  const isRecurring = watchInterval !== "one_time";
@@ -3628,13 +3628,13 @@ function PriceEditorInternal({
3628
3628
  { id: "metered", text: t("billing.admin.prices.usage.metered") }
3629
3629
  ];
3630
3630
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3631
- _chunkR2XBVIO5js.EditorSheet,
3631
+ _chunkPCCUPEBUjs.EditorSheet,
3632
3632
  {
3633
3633
  form,
3634
3634
  entityType: t("billing.admin.prices.entity"),
3635
3635
  entityName: price ? priceLabel(price, fmt) : void 0,
3636
3636
  isEdit,
3637
- module: _chunkOJAIKQR2js.Modules.StripePrice,
3637
+ module: _chunk6KE7UBYYjs.Modules.StripePrice,
3638
3638
  size: "lg",
3639
3639
  propagateChanges,
3640
3640
  onSuccess,
@@ -3683,13 +3683,13 @@ function PriceEditorInternal({
3683
3683
  dialogOpen,
3684
3684
  onDialogOpenChange,
3685
3685
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-y-4", children: [
3686
- isEdit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Alert, { children: [
3687
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.AlertTitle, { children: t("billing.admin.prices.immutability.title") }),
3688
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.AlertDescription, { children: t("billing.admin.prices.immutability.description") })
3686
+ isEdit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Alert, { children: [
3687
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.AlertTitle, { children: t("billing.admin.prices.immutability.title") }),
3688
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.AlertDescription, { children: t("billing.admin.prices.immutability.description") })
3689
3689
  ] }),
3690
3690
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-2 gap-x-4", children: [
3691
3691
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3692
- _chunkR2XBVIO5js.FormInput,
3692
+ _chunkPCCUPEBUjs.FormInput,
3693
3693
  {
3694
3694
  form,
3695
3695
  id: "unitAmount",
@@ -3701,7 +3701,7 @@ function PriceEditorInternal({
3701
3701
  }
3702
3702
  ),
3703
3703
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3704
- _chunkR2XBVIO5js.FormSelect,
3704
+ _chunkPCCUPEBUjs.FormSelect,
3705
3705
  {
3706
3706
  form,
3707
3707
  id: "currency",
@@ -3712,7 +3712,7 @@ function PriceEditorInternal({
3712
3712
  )
3713
3713
  ] }),
3714
3714
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3715
- _chunkR2XBVIO5js.FormSelect,
3715
+ _chunkPCCUPEBUjs.FormSelect,
3716
3716
  {
3717
3717
  form,
3718
3718
  id: "interval",
@@ -3723,7 +3723,7 @@ function PriceEditorInternal({
3723
3723
  ),
3724
3724
  isRecurring && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-2 gap-x-4", children: [
3725
3725
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3726
- _chunkR2XBVIO5js.FormInput,
3726
+ _chunkPCCUPEBUjs.FormInput,
3727
3727
  {
3728
3728
  form,
3729
3729
  id: "intervalCount",
@@ -3734,7 +3734,7 @@ function PriceEditorInternal({
3734
3734
  }
3735
3735
  ),
3736
3736
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3737
- _chunkR2XBVIO5js.FormSelect,
3737
+ _chunkPCCUPEBUjs.FormSelect,
3738
3738
  {
3739
3739
  form,
3740
3740
  id: "usageType",
@@ -3745,7 +3745,7 @@ function PriceEditorInternal({
3745
3745
  )
3746
3746
  ] }),
3747
3747
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3748
- _chunkR2XBVIO5js.FormInput,
3748
+ _chunkPCCUPEBUjs.FormInput,
3749
3749
  {
3750
3750
  form,
3751
3751
  id: "nickname",
@@ -3754,7 +3754,7 @@ function PriceEditorInternal({
3754
3754
  }
3755
3755
  ),
3756
3756
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3757
- _chunkR2XBVIO5js.FormTextarea,
3757
+ _chunkPCCUPEBUjs.FormTextarea,
3758
3758
  {
3759
3759
  form,
3760
3760
  id: "description",
@@ -3764,7 +3764,7 @@ function PriceEditorInternal({
3764
3764
  }
3765
3765
  ),
3766
3766
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3767
- _chunkR2XBVIO5js.FormInput,
3767
+ _chunkPCCUPEBUjs.FormInput,
3768
3768
  {
3769
3769
  form,
3770
3770
  id: "token",
@@ -3774,10 +3774,10 @@ function PriceEditorInternal({
3774
3774
  }
3775
3775
  ),
3776
3776
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-y-2", children: [
3777
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.FieldLabel, { children: t("billing.admin.prices.fields.features") }),
3777
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.FieldLabel, { children: t("billing.admin.prices.fields.features") }),
3778
3778
  form.watch("features").map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2", children: [
3779
3779
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3780
- _chunkR2XBVIO5js.Input,
3780
+ _chunkPCCUPEBUjs.Input,
3781
3781
  {
3782
3782
  ...form.register(`features.${index}`),
3783
3783
  placeholder: t("billing.admin.prices.placeholders.feature", { index: index + 1 }),
@@ -3785,7 +3785,7 @@ function PriceEditorInternal({
3785
3785
  }
3786
3786
  ),
3787
3787
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3788
- _chunkR2XBVIO5js.Button,
3788
+ _chunkPCCUPEBUjs.Button,
3789
3789
  {
3790
3790
  type: "button",
3791
3791
  variant: "outline",
@@ -3800,7 +3800,7 @@ function PriceEditorInternal({
3800
3800
  )
3801
3801
  ] }, index)),
3802
3802
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3803
- _chunkR2XBVIO5js.Button,
3803
+ _chunkPCCUPEBUjs.Button,
3804
3804
  {
3805
3805
  type: "button",
3806
3806
  variant: "outline",
@@ -3815,12 +3815,12 @@ function PriceEditorInternal({
3815
3815
  )
3816
3816
  ] }),
3817
3817
  isRecurring && allFeatures.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-y-2", children: [
3818
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.FieldLabel, { children: t("billing.admin.prices.fields.platformFeatures") }),
3818
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.FieldLabel, { children: t("billing.admin.prices.fields.platformFeatures") }),
3819
3819
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex max-h-48 flex-col gap-y-2 overflow-y-auto rounded-md border p-4", children: allFeatures.map((feature) => {
3820
3820
  const isChecked = form.watch("featureIds").includes(feature.id);
3821
3821
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-x-2", children: [
3822
3822
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3823
- _chunkR2XBVIO5js.Checkbox,
3823
+ _chunkPCCUPEBUjs.Checkbox,
3824
3824
  {
3825
3825
  id: `feature-${feature.id}`,
3826
3826
  checked: isChecked,
@@ -3836,13 +3836,13 @@ function PriceEditorInternal({
3836
3836
  }
3837
3837
  }
3838
3838
  ),
3839
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.FieldLabel, { htmlFor: `feature-${feature.id}`, children: feature.name }),
3839
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.FieldLabel, { htmlFor: `feature-${feature.id}`, children: feature.name }),
3840
3840
  feature.isCore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: t("billing.admin.prices.help.core") })
3841
3841
  ] }, feature.id);
3842
3842
  }) })
3843
3843
  ] }),
3844
3844
  isRecurring && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3845
- _chunkR2XBVIO5js.FormCheckbox,
3845
+ _chunkPCCUPEBUjs.FormCheckbox,
3846
3846
  {
3847
3847
  form,
3848
3848
  id: "isTrial",
@@ -3885,7 +3885,7 @@ var defaultContextValue = {
3885
3885
  productId: void 0
3886
3886
  };
3887
3887
  function priceLabel(price, fmt = {}) {
3888
- return _nullishCoalesce(price.nickname, () => ( `${_chunkOJAIKQR2js.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt)} ${_chunkOJAIKQR2js.formatInterval.call(void 0, price, fmt)}`.trim()));
3888
+ return _nullishCoalesce(price.nickname, () => ( `${_chunk6KE7UBYYjs.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt)} ${_chunk6KE7UBYYjs.formatInterval.call(void 0, price, fmt)}`.trim()));
3889
3889
  }
3890
3890
  _chunk7QVYU63Ejs.__name.call(void 0, priceLabel, "priceLabel");
3891
3891
  var PriceProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({
@@ -3895,22 +3895,22 @@ var PriceProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({
3895
3895
  productId: productIdProp
3896
3896
  }) => {
3897
3897
  const t = _nextintl.useTranslations.call(void 0, );
3898
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
3899
- const generateUrl = _chunkR2XBVIO5js.usePageUrlGenerator.call(void 0, );
3900
- const { hasRole } = _chunkR2XBVIO5js.useCurrentUserContext.call(void 0, );
3898
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
3899
+ const generateUrl = _chunkPCCUPEBUjs.usePageUrlGenerator.call(void 0, );
3900
+ const { hasRole } = _chunkPCCUPEBUjs.useCurrentUserContext.call(void 0, );
3901
3901
  const [price, setPrice] = _react.useState.call(void 0,
3902
- dehydratedPrice ? _chunkOJAIKQR2js.rehydrate.call(void 0, _chunkOJAIKQR2js.Modules.StripePrice, dehydratedPrice) : void 0
3902
+ dehydratedPrice ? _chunk6KE7UBYYjs.rehydrate.call(void 0, _chunk6KE7UBYYjs.Modules.StripePrice, dehydratedPrice) : void 0
3903
3903
  );
3904
3904
  const [priceVersion, setPriceVersion] = _react.useState.call(void 0, 0);
3905
3905
  const refreshPrices = _react.useCallback.call(void 0, () => setPriceVersion((value2) => value2 + 1), []);
3906
3906
  const productId = _nullishCoalesce(productIdProp, () => ( _optionalChain([price, 'optionalAccess', _143 => _143.product, 'optionalAccess', _144 => _144.id])));
3907
3907
  const reloadPrice = _react.useCallback.call(void 0, async () => {
3908
3908
  if (!_optionalChain([price, 'optionalAccess', _145 => _145.id])) return;
3909
- setPrice(await _chunkOJAIKQR2js.StripePriceService.getPrice({ id: price.id }));
3909
+ setPrice(await _chunk6KE7UBYYjs.StripePriceService.getPrice({ id: price.id }));
3910
3910
  }, [_optionalChain([price, 'optionalAccess', _146 => _146.id])]);
3911
3911
  const createPrice = _react.useCallback.call(void 0,
3912
3912
  async (input) => {
3913
- const saved = await _chunkOJAIKQR2js.StripePriceService.createPrice(input);
3913
+ const saved = await _chunk6KE7UBYYjs.StripePriceService.createPrice(input);
3914
3914
  refreshPrices();
3915
3915
  return saved;
3916
3916
  },
@@ -3918,7 +3918,7 @@ var PriceProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({
3918
3918
  );
3919
3919
  const updatePrice = _react.useCallback.call(void 0,
3920
3920
  async (input) => {
3921
- const saved = await _chunkOJAIKQR2js.StripePriceService.updatePrice(input);
3921
+ const saved = await _chunk6KE7UBYYjs.StripePriceService.updatePrice(input);
3922
3922
  setPrice(saved);
3923
3923
  refreshPrices();
3924
3924
  return saved;
@@ -3929,7 +3929,7 @@ var PriceProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({
3929
3929
  async (id) => {
3930
3930
  const target = _nullishCoalesce(id, () => ( _optionalChain([price, 'optionalAccess', _147 => _147.id])));
3931
3931
  if (!target) return;
3932
- await _chunkOJAIKQR2js.StripePriceService.archivePrice({ id: target });
3932
+ await _chunk6KE7UBYYjs.StripePriceService.archivePrice({ id: target });
3933
3933
  await reloadPrice();
3934
3934
  refreshPrices();
3935
3935
  },
@@ -3939,7 +3939,7 @@ var PriceProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({
3939
3939
  async (id) => {
3940
3940
  const target = _nullishCoalesce(id, () => ( _optionalChain([price, 'optionalAccess', _149 => _149.id])));
3941
3941
  if (!target) return;
3942
- await _chunkOJAIKQR2js.StripePriceService.reactivatePrice({ id: target });
3942
+ await _chunk6KE7UBYYjs.StripePriceService.reactivatePrice({ id: target });
3943
3943
  await reloadPrice();
3944
3944
  refreshPrices();
3945
3945
  },
@@ -3963,12 +3963,12 @@ var PriceProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({
3963
3963
  if (!publishChrome) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PriceContext.Provider, { value, children });
3964
3964
  const breadcrumb = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
3965
3965
  const items = [
3966
- { name: t("billing.admin.products.title"), href: generateUrl({ page: _chunkOJAIKQR2js.Modules.StripeProduct }) }
3966
+ { name: t("billing.admin.products.title"), href: generateUrl({ page: _chunk6KE7UBYYjs.Modules.StripeProduct }) }
3967
3967
  ];
3968
3968
  if (_optionalChain([price, 'optionalAccess', _151 => _151.product]))
3969
3969
  items.push({
3970
3970
  name: price.product.name,
3971
- href: generateUrl({ page: _chunkOJAIKQR2js.Modules.StripeProduct, id: price.product.id })
3971
+ href: generateUrl({ page: _chunk6KE7UBYYjs.Modules.StripeProduct, id: price.product.id })
3972
3972
  });
3973
3973
  if (price) items.push({ name: priceLabel(price, fmt) });
3974
3974
  return items;
@@ -3985,7 +3985,7 @@ var PriceProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({
3985
3985
  }
3986
3986
  return response;
3987
3987
  }, "title");
3988
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PriceContext.Provider, { value, children }) });
3988
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PriceContext.Provider, { value, children }) });
3989
3989
  }, "PriceProvider");
3990
3990
  var usePriceContext = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => _nullishCoalesce(_react.useContext.call(void 0, PriceContext), () => ( defaultContextValue)), "usePriceContext");
3991
3991
 
@@ -4005,12 +4005,12 @@ function ProductArchiver({ product }) {
4005
4005
  const isArchived = !product.active;
4006
4006
  const scope = isArchived ? "restore" : "archive";
4007
4007
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
4008
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", size: "sm", onClick: () => setOpen(true), children: [
4008
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", size: "sm", onClick: () => setOpen(true), children: [
4009
4009
  isArchived ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.RotateCcwIcon, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ArchiveIcon, {}),
4010
4010
  t(`billing.admin.products.${scope}.confirm`)
4011
4011
  ] }),
4012
4012
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4013
- _chunkR2XBVIO5js.ConfirmDialog,
4013
+ _chunkPCCUPEBUjs.ConfirmDialog,
4014
4014
  {
4015
4015
  open,
4016
4016
  onOpenChange: setOpen,
@@ -4024,7 +4024,7 @@ function ProductArchiver({ product }) {
4024
4024
  if (isArchived) await restoreProduct(product.id);
4025
4025
  else await archiveProduct(product.id);
4026
4026
  } catch (error) {
4027
- _chunkR2XBVIO5js.errorToast.call(void 0, { title: t(`billing.admin.products.${scope}.title`), error });
4027
+ _chunkPCCUPEBUjs.errorToast.call(void 0, { title: t(`billing.admin.products.${scope}.title`), error });
4028
4028
  throw error;
4029
4029
  }
4030
4030
  }
@@ -4053,7 +4053,7 @@ function ProductEditorInternal({
4053
4053
  onDialogOpenChange
4054
4054
  }) {
4055
4055
  const t = _nextintl.useTranslations.call(void 0, );
4056
- const router = _chunkOJAIKQR2js.useI18nRouter.call(void 0, );
4056
+ const router = _chunk6KE7UBYYjs.useI18nRouter.call(void 0, );
4057
4057
  const { createProduct, updateProduct } = useProductContext();
4058
4058
  const isEdit = !!product;
4059
4059
  const formSchema2 = _react.useMemo.call(void 0,
@@ -4077,13 +4077,13 @@ function ProductEditorInternal({
4077
4077
  defaultValues: getDefaultValues()
4078
4078
  });
4079
4079
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4080
- _chunkR2XBVIO5js.EditorSheet,
4080
+ _chunkPCCUPEBUjs.EditorSheet,
4081
4081
  {
4082
4082
  form,
4083
4083
  entityType: t("billing.admin.products.entity"),
4084
4084
  entityName: _optionalChain([product, 'optionalAccess', _155 => _155.name]),
4085
4085
  isEdit,
4086
- module: _chunkOJAIKQR2js.Modules.StripeProduct,
4086
+ module: _chunk6KE7UBYYjs.Modules.StripeProduct,
4087
4087
  size: "md",
4088
4088
  propagateChanges,
4089
4089
  onSuccess,
@@ -4100,7 +4100,7 @@ function ProductEditorInternal({
4100
4100
  onDialogOpenChange,
4101
4101
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-y-4", children: [
4102
4102
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4103
- _chunkR2XBVIO5js.FormInput,
4103
+ _chunkPCCUPEBUjs.FormInput,
4104
4104
  {
4105
4105
  form,
4106
4106
  id: "name",
@@ -4110,7 +4110,7 @@ function ProductEditorInternal({
4110
4110
  }
4111
4111
  ),
4112
4112
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4113
- _chunkR2XBVIO5js.FormTextarea,
4113
+ _chunkPCCUPEBUjs.FormTextarea,
4114
4114
  {
4115
4115
  form,
4116
4116
  id: "description",
@@ -4154,20 +4154,20 @@ var defaultContextValue2 = {
4154
4154
  };
4155
4155
  var ProductProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({ children, dehydratedProduct, publishChrome = true }) => {
4156
4156
  const t = _nextintl.useTranslations.call(void 0, );
4157
- const generateUrl = _chunkR2XBVIO5js.usePageUrlGenerator.call(void 0, );
4158
- const { hasRole } = _chunkR2XBVIO5js.useCurrentUserContext.call(void 0, );
4157
+ const generateUrl = _chunkPCCUPEBUjs.usePageUrlGenerator.call(void 0, );
4158
+ const { hasRole } = _chunkPCCUPEBUjs.useCurrentUserContext.call(void 0, );
4159
4159
  const [product, setProduct] = _react.useState.call(void 0,
4160
- dehydratedProduct ? _chunkOJAIKQR2js.rehydrate.call(void 0, _chunkOJAIKQR2js.Modules.StripeProduct, dehydratedProduct) : void 0
4160
+ dehydratedProduct ? _chunk6KE7UBYYjs.rehydrate.call(void 0, _chunk6KE7UBYYjs.Modules.StripeProduct, dehydratedProduct) : void 0
4161
4161
  );
4162
4162
  const [catalogueVersion, setCatalogueVersion] = _react.useState.call(void 0, 0);
4163
4163
  const refreshCatalogue = _react.useCallback.call(void 0, () => setCatalogueVersion((value2) => value2 + 1), []);
4164
4164
  const reloadProduct = _react.useCallback.call(void 0, async () => {
4165
4165
  if (!_optionalChain([product, 'optionalAccess', _156 => _156.id])) return;
4166
- setProduct(await _chunkOJAIKQR2js.StripeProductService.getProduct({ id: product.id }));
4166
+ setProduct(await _chunk6KE7UBYYjs.StripeProductService.getProduct({ id: product.id }));
4167
4167
  }, [_optionalChain([product, 'optionalAccess', _157 => _157.id])]);
4168
4168
  const createProduct = _react.useCallback.call(void 0,
4169
4169
  async (input) => {
4170
- const saved = await _chunkOJAIKQR2js.StripeProductService.createProduct(input);
4170
+ const saved = await _chunk6KE7UBYYjs.StripeProductService.createProduct(input);
4171
4171
  refreshCatalogue();
4172
4172
  return saved;
4173
4173
  },
@@ -4175,7 +4175,7 @@ var ProductProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({ ch
4175
4175
  );
4176
4176
  const updateProduct = _react.useCallback.call(void 0,
4177
4177
  async (input) => {
4178
- const saved = await _chunkOJAIKQR2js.StripeProductService.updateProduct(input);
4178
+ const saved = await _chunk6KE7UBYYjs.StripeProductService.updateProduct(input);
4179
4179
  setProduct(saved);
4180
4180
  refreshCatalogue();
4181
4181
  return saved;
@@ -4186,7 +4186,7 @@ var ProductProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({ ch
4186
4186
  async (id) => {
4187
4187
  const target = _nullishCoalesce(id, () => ( _optionalChain([product, 'optionalAccess', _158 => _158.id])));
4188
4188
  if (!target) return;
4189
- await _chunkOJAIKQR2js.StripeProductService.archiveProduct({ id: target });
4189
+ await _chunk6KE7UBYYjs.StripeProductService.archiveProduct({ id: target });
4190
4190
  await reloadProduct();
4191
4191
  refreshCatalogue();
4192
4192
  },
@@ -4196,7 +4196,7 @@ var ProductProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({ ch
4196
4196
  async (id) => {
4197
4197
  const target = _nullishCoalesce(id, () => ( _optionalChain([product, 'optionalAccess', _160 => _160.id])));
4198
4198
  if (!target) return;
4199
- await _chunkOJAIKQR2js.StripeProductService.reactivateProduct({ id: target });
4199
+ await _chunk6KE7UBYYjs.StripeProductService.reactivateProduct({ id: target });
4200
4200
  await reloadProduct();
4201
4201
  refreshCatalogue();
4202
4202
  },
@@ -4231,7 +4231,7 @@ var ProductProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({ ch
4231
4231
  {
4232
4232
  name: t("billing.admin.products.title"),
4233
4233
  // Linked only when it is NOT the current page.
4234
- ...product ? { href: generateUrl({ page: _chunkOJAIKQR2js.Modules.StripeProduct }) } : {}
4234
+ ...product ? { href: generateUrl({ page: _chunk6KE7UBYYjs.Modules.StripeProduct }) } : {}
4235
4235
  }
4236
4236
  ];
4237
4237
  if (product) items.push({ name: product.name });
@@ -4249,7 +4249,7 @@ var ProductProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ({ ch
4249
4249
  }
4250
4250
  return response;
4251
4251
  }, "title");
4252
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductContext.Provider, { value, children }) });
4252
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductContext.Provider, { value, children }) });
4253
4253
  }, "ProductProvider");
4254
4254
  var useProductContext = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => _nullishCoalesce(_react.useContext.call(void 0, ProductContext), () => ( defaultContextValue2)), "useProductContext");
4255
4255
 
@@ -4258,57 +4258,57 @@ var useProductContext = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, ()
4258
4258
 
4259
4259
  function PriceDetails() {
4260
4260
  const t = _nextintl.useTranslations.call(void 0, );
4261
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
4262
- const generateUrl = _chunkR2XBVIO5js.usePageUrlGenerator.call(void 0, );
4261
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
4262
+ const generateUrl = _chunkPCCUPEBUjs.usePageUrlGenerator.call(void 0, );
4263
4263
  const { price } = usePriceContext();
4264
4264
  if (!price) return null;
4265
4265
  const isRecurring = price.priceType === "recurring";
4266
4266
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-y-8", children: [
4267
4267
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-y-4", children: [
4268
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.SectionHeader, { children: t("billing.admin.prices.title") }),
4268
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.SectionHeader, { children: t("billing.admin.prices.title") }),
4269
4269
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
4270
4270
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4271
- _chunkR2XBVIO5js.DetailField,
4271
+ _chunkPCCUPEBUjs.DetailField,
4272
4272
  {
4273
4273
  label: t("billing.admin.prices.fields.product"),
4274
- value: price.product ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Link, { href: generateUrl({ page: _chunkOJAIKQR2js.Modules.StripeProduct, id: price.product.id }), children: price.product.name }) : "\u2014"
4274
+ value: price.product ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Link, { href: generateUrl({ page: _chunk6KE7UBYYjs.Modules.StripeProduct, id: price.product.id }), children: price.product.name }) : "\u2014"
4275
4275
  }
4276
4276
  ),
4277
4277
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4278
- _chunkR2XBVIO5js.DetailField,
4278
+ _chunkPCCUPEBUjs.DetailField,
4279
4279
  {
4280
4280
  label: t("billing.admin.prices.fields.status"),
4281
4281
  value: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-wrap items-center gap-1", children: [
4282
- price.active ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softGreen", children: t("billing.admin.prices.status.active") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softGray", children: t("billing.admin.prices.status.archived") }),
4283
- price.isTrial && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softBlue", children: t("billing.admin.prices.badge.trial") })
4282
+ price.active ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softGreen", children: t("billing.admin.prices.status.active") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softGray", children: t("billing.admin.prices.status.archived") }),
4283
+ price.isTrial && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softBlue", children: t("billing.admin.prices.badge.trial") })
4284
4284
  ] })
4285
4285
  }
4286
4286
  ),
4287
4287
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4288
- _chunkR2XBVIO5js.DetailField,
4288
+ _chunkPCCUPEBUjs.DetailField,
4289
4289
  {
4290
4290
  label: t("billing.admin.prices.fields.amount"),
4291
- value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: _chunkOJAIKQR2js.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt) })
4291
+ value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: _chunk6KE7UBYYjs.formatCurrency.call(void 0, price.unitAmount, price.currency, fmt) })
4292
4292
  }
4293
4293
  ),
4294
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DetailField, { label: t("billing.admin.prices.fields.currency"), value: price.currency.toUpperCase() }),
4294
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DetailField, { label: t("billing.admin.prices.fields.currency"), value: price.currency.toUpperCase() }),
4295
4295
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4296
- _chunkR2XBVIO5js.DetailField,
4296
+ _chunkPCCUPEBUjs.DetailField,
4297
4297
  {
4298
4298
  label: t("billing.admin.prices.fields.type"),
4299
4299
  value: isRecurring ? t("billing.admin.prices.type.recurring") : t("billing.admin.prices.type.oneTime")
4300
4300
  }
4301
4301
  ),
4302
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DetailField, { label: t("billing.admin.prices.fields.billing"), value: _chunkOJAIKQR2js.formatInterval.call(void 0, price, fmt) }),
4302
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DetailField, { label: t("billing.admin.prices.fields.billing"), value: _chunk6KE7UBYYjs.formatInterval.call(void 0, price, fmt) }),
4303
4303
  isRecurring && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4304
- _chunkR2XBVIO5js.DetailField,
4304
+ _chunkPCCUPEBUjs.DetailField,
4305
4305
  {
4306
4306
  label: t("billing.admin.prices.fields.intervalCount"),
4307
4307
  value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: _nullishCoalesce(_optionalChain([price, 'access', _162 => _162.recurring, 'optionalAccess', _163 => _163.intervalCount]), () => ( 1)) })
4308
4308
  }
4309
4309
  ),
4310
4310
  isRecurring && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4311
- _chunkR2XBVIO5js.DetailField,
4311
+ _chunkPCCUPEBUjs.DetailField,
4312
4312
  {
4313
4313
  label: t("billing.admin.prices.fields.usageType"),
4314
4314
  value: _optionalChain([price, 'access', _164 => _164.recurring, 'optionalAccess', _165 => _165.usageType]) === "metered" ? t("billing.admin.prices.usage.metered") : t("billing.admin.prices.usage.licensed")
@@ -4317,24 +4317,24 @@ function PriceDetails() {
4317
4317
  ] })
4318
4318
  ] }),
4319
4319
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-y-4", children: [
4320
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.SectionHeader, { children: t("billing.admin.prices.fields.platformFeatures") }),
4320
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.SectionHeader, { children: t("billing.admin.prices.fields.platformFeatures") }),
4321
4321
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
4322
4322
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4323
- _chunkR2XBVIO5js.DetailField,
4323
+ _chunkPCCUPEBUjs.DetailField,
4324
4324
  {
4325
4325
  label: t("billing.admin.prices.fields.token"),
4326
4326
  value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: _nullishCoalesce(price.token, () => ( "\u2014")) })
4327
4327
  }
4328
4328
  ),
4329
4329
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4330
- _chunkR2XBVIO5js.DetailField,
4330
+ _chunkPCCUPEBUjs.DetailField,
4331
4331
  {
4332
4332
  label: t("billing.admin.prices.fields.stripeId"),
4333
4333
  value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: price.stripePriceId })
4334
4334
  }
4335
4335
  ),
4336
4336
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4337
- _chunkR2XBVIO5js.DetailField,
4337
+ _chunkPCCUPEBUjs.DetailField,
4338
4338
  {
4339
4339
  label: t("billing.admin.prices.fields.description"),
4340
4340
  value: _nullishCoalesce(price.description, () => ( "\u2014")),
@@ -4342,7 +4342,7 @@ function PriceDetails() {
4342
4342
  }
4343
4343
  ),
4344
4344
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4345
- _chunkR2XBVIO5js.DetailField,
4345
+ _chunkPCCUPEBUjs.DetailField,
4346
4346
  {
4347
4347
  label: t("billing.admin.prices.fields.features"),
4348
4348
  className: "md:col-span-2",
@@ -4350,11 +4350,11 @@ function PriceDetails() {
4350
4350
  }
4351
4351
  ),
4352
4352
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4353
- _chunkR2XBVIO5js.DetailField,
4353
+ _chunkPCCUPEBUjs.DetailField,
4354
4354
  {
4355
4355
  label: t("billing.admin.prices.fields.platformFeatures"),
4356
4356
  className: "md:col-span-2",
4357
- value: price.priceFeatures.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex flex-wrap items-center gap-1", children: price.priceFeatures.map((feature) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softGray", children: feature.name }, feature.id)) }) : "\u2014"
4357
+ value: price.priceFeatures.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex flex-wrap items-center gap-1", children: price.priceFeatures.map((feature) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softGray", children: feature.name }, feature.id)) }) : "\u2014"
4358
4358
  }
4359
4359
  )
4360
4360
  ] })
@@ -4368,7 +4368,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, PriceDetails, "PriceDetails");
4368
4368
  function PriceContainer() {
4369
4369
  const { price } = usePriceContext();
4370
4370
  if (!price) return null;
4371
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.RoundPageContainer, { module: _chunkOJAIKQR2js.Modules.StripePrice, id: price.id, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PriceDetails, {}) });
4371
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.RoundPageContainer, { module: _chunk6KE7UBYYjs.Modules.StripePrice, id: price.id, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PriceDetails, {}) });
4372
4372
  }
4373
4373
  _chunk7QVYU63Ejs.__name.call(void 0, PriceContainer, "PriceContainer");
4374
4374
 
@@ -4493,10 +4493,10 @@ function PricesList({ productId, fullWidth }) {
4493
4493
  const importInputRef = _react.useRef.call(void 0, null);
4494
4494
  const [seed, setSeed] = _react.useState.call(void 0, void 0);
4495
4495
  const [seedNonce, setSeedNonce] = _react.useState.call(void 0, 0);
4496
- const data = _chunkR2XBVIO5js.useDataListRetriever.call(void 0, {
4497
- retriever: /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (params) => _chunkOJAIKQR2js.StripePriceService.listPrices({ ...params, productId }), "retriever"),
4496
+ const data = _chunkPCCUPEBUjs.useDataListRetriever.call(void 0, {
4497
+ retriever: /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (params) => _chunk6KE7UBYYjs.StripePriceService.listPrices({ ...params, productId }), "retriever"),
4498
4498
  retrieverParams: {},
4499
- module: _chunkOJAIKQR2js.Modules.StripePrice
4499
+ module: _chunk6KE7UBYYjs.Modules.StripePrice
4500
4500
  });
4501
4501
  _react.useEffect.call(void 0, () => {
4502
4502
  if (priceVersion > 0) void data.refresh();
@@ -4531,7 +4531,7 @@ function PricesList({ productId, fullWidth }) {
4531
4531
  openSeededEditor(transfer.price);
4532
4532
  } catch (error) {
4533
4533
  console.error("[PricesList] price import failed", error);
4534
- _chunkR2XBVIO5js.errorToast.call(void 0, {
4534
+ _chunkPCCUPEBUjs.errorToast.call(void 0, {
4535
4535
  title: t("billing.admin.prices.import.errors.title"),
4536
4536
  error: t("billing.admin.prices.import.errors.invalid")
4537
4537
  });
@@ -4550,7 +4550,7 @@ function PricesList({ productId, fullWidth }) {
4550
4550
  "create-price"
4551
4551
  ),
4552
4552
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
4553
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkR2XBVIO5js.Button, { variant: "outline", size: "sm", type: "button", onClick: () => _optionalChain([importInputRef, 'access', _180 => _180.current, 'optionalAccess', _181 => _181.click, 'call', _182 => _182()]), children: [
4553
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkPCCUPEBUjs.Button, { variant: "outline", size: "sm", type: "button", onClick: () => _optionalChain([importInputRef, 'access', _180 => _180.current, 'optionalAccess', _181 => _181.click, 'call', _182 => _182()]), children: [
4554
4554
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.UploadIcon, {}),
4555
4555
  t("billing.admin.prices.actions.import")
4556
4556
  ] }),
@@ -4568,7 +4568,7 @@ function PricesList({ productId, fullWidth }) {
4568
4568
  ];
4569
4569
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
4570
4570
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4571
- _chunkR2XBVIO5js.ContentListTable,
4571
+ _chunkPCCUPEBUjs.ContentListTable,
4572
4572
  {
4573
4573
  data,
4574
4574
  fields: [
@@ -4579,13 +4579,13 @@ function PricesList({ productId, fullWidth }) {
4579
4579
  "status" /* status */,
4580
4580
  "actions" /* actions */
4581
4581
  ],
4582
- tableGeneratorType: _chunkOJAIKQR2js.Modules.StripePrice,
4582
+ tableGeneratorType: _chunk6KE7UBYYjs.Modules.StripePrice,
4583
4583
  functions,
4584
4584
  context: tableContext,
4585
4585
  fullWidth,
4586
4586
  title: t("billing.admin.prices.title"),
4587
4587
  emptyState: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4588
- _chunkR2XBVIO5js.EmptyState,
4588
+ _chunkPCCUPEBUjs.EmptyState,
4589
4589
  {
4590
4590
  icon: _lucidereact.DollarSignIcon,
4591
4591
  title: t("billing.admin.prices.empty.title"),
@@ -4625,18 +4625,18 @@ function ProductDetails() {
4625
4625
  const { product } = useProductContext();
4626
4626
  if (!product) return null;
4627
4627
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-y-4", children: [
4628
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.SectionHeader, { children: t("billing.admin.products.tabs.details") }),
4628
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.SectionHeader, { children: t("billing.admin.products.tabs.details") }),
4629
4629
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
4630
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DetailField, { label: t("billing.admin.products.fields.name"), value: product.name }),
4630
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DetailField, { label: t("billing.admin.products.fields.name"), value: product.name }),
4631
4631
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4632
- _chunkR2XBVIO5js.DetailField,
4632
+ _chunkPCCUPEBUjs.DetailField,
4633
4633
  {
4634
4634
  label: t("billing.admin.products.fields.status"),
4635
- value: product.active ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softGreen", children: t("billing.admin.products.status.active") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softGray", children: t("billing.admin.products.status.archived") })
4635
+ value: product.active ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softGreen", children: t("billing.admin.products.status.active") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softGray", children: t("billing.admin.products.status.archived") })
4636
4636
  }
4637
4637
  ),
4638
4638
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4639
- _chunkR2XBVIO5js.DetailField,
4639
+ _chunkPCCUPEBUjs.DetailField,
4640
4640
  {
4641
4641
  label: t("billing.admin.products.fields.description"),
4642
4642
  value: _nullishCoalesce(product.description, () => ( "\u2014")),
@@ -4644,14 +4644,14 @@ function ProductDetails() {
4644
4644
  }
4645
4645
  ),
4646
4646
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4647
- _chunkR2XBVIO5js.DetailField,
4647
+ _chunkPCCUPEBUjs.DetailField,
4648
4648
  {
4649
4649
  label: t("billing.admin.products.fields.prices"),
4650
4650
  value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: product.stripePrices.length })
4651
4651
  }
4652
4652
  ),
4653
4653
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4654
- _chunkR2XBVIO5js.DetailField,
4654
+ _chunkPCCUPEBUjs.DetailField,
4655
4655
  {
4656
4656
  label: t("billing.admin.products.fields.stripeId"),
4657
4657
  value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: product.stripeProductId })
@@ -4669,9 +4669,9 @@ function ProductContainer() {
4669
4669
  const { product } = useProductContext();
4670
4670
  if (!product) return null;
4671
4671
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4672
- _chunkR2XBVIO5js.RoundPageContainer,
4672
+ _chunkPCCUPEBUjs.RoundPageContainer,
4673
4673
  {
4674
- module: _chunkOJAIKQR2js.Modules.StripeProduct,
4674
+ module: _chunk6KE7UBYYjs.Modules.StripeProduct,
4675
4675
  id: product.id,
4676
4676
  tabs: [
4677
4677
  {
@@ -4680,7 +4680,7 @@ function ProductContainer() {
4680
4680
  content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductDetails, {})
4681
4681
  },
4682
4682
  {
4683
- key: _chunkOJAIKQR2js.Modules.StripePrice,
4683
+ key: _chunk6KE7UBYYjs.Modules.StripePrice,
4684
4684
  label: t("billing.admin.prices.title"),
4685
4685
  // publishChrome={false}: SharedProvider REPLACES its value for the
4686
4686
  // subtree (SharedContext.tsx:35-37), so a nested provider publishing
@@ -4706,18 +4706,18 @@ _chunk7QVYU63Ejs.__name.call(void 0, ProductContainer, "ProductContainer");
4706
4706
 
4707
4707
  function CouponsList({ fullWidth } = {}) {
4708
4708
  const t = _nextintl.useTranslations.call(void 0, );
4709
- const { catalogueVersion } = _chunkR2XBVIO5js.useCouponContext.call(void 0, );
4710
- const data = _chunkR2XBVIO5js.useDataListRetriever.call(void 0, {
4711
- retriever: /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (params) => _chunkOJAIKQR2js.StripeCouponService.listCoupons(params), "retriever"),
4709
+ const { catalogueVersion } = _chunkPCCUPEBUjs.useCouponContext.call(void 0, );
4710
+ const data = _chunkPCCUPEBUjs.useDataListRetriever.call(void 0, {
4711
+ retriever: /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (params) => _chunk6KE7UBYYjs.StripeCouponService.listCoupons(params), "retriever"),
4712
4712
  retrieverParams: {},
4713
- module: _chunkOJAIKQR2js.Modules.StripeCoupon
4713
+ module: _chunk6KE7UBYYjs.Modules.StripeCoupon
4714
4714
  });
4715
4715
  _react.useEffect.call(void 0, () => {
4716
4716
  if (catalogueVersion > 0) void data.refresh();
4717
4717
  }, [catalogueVersion]);
4718
- const functions = [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CouponEditor, {}, "create-coupon")];
4718
+ const functions = [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CouponEditor, {}, "create-coupon")];
4719
4719
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4720
- _chunkR2XBVIO5js.ContentListTable,
4720
+ _chunkPCCUPEBUjs.ContentListTable,
4721
4721
  {
4722
4722
  data,
4723
4723
  fields: [
@@ -4727,12 +4727,12 @@ function CouponsList({ fullWidth } = {}) {
4727
4727
  "codes" /* codes */,
4728
4728
  "status" /* status */
4729
4729
  ],
4730
- tableGeneratorType: _chunkOJAIKQR2js.Modules.StripeCoupon,
4730
+ tableGeneratorType: _chunk6KE7UBYYjs.Modules.StripeCoupon,
4731
4731
  functions,
4732
4732
  fullWidth,
4733
4733
  title: t("billing.admin.coupons.title"),
4734
4734
  emptyState: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4735
- _chunkR2XBVIO5js.EmptyState,
4735
+ _chunkPCCUPEBUjs.EmptyState,
4736
4736
  {
4737
4737
  icon: _lucidereact.TicketPercentIcon,
4738
4738
  title: t("billing.admin.coupons.empty.title"),
@@ -4752,26 +4752,26 @@ _chunk7QVYU63Ejs.__name.call(void 0, CouponsList, "CouponsList");
4752
4752
  function ProductsList({ fullWidth } = {}) {
4753
4753
  const t = _nextintl.useTranslations.call(void 0, );
4754
4754
  const { catalogueVersion } = useProductContext();
4755
- const data = _chunkR2XBVIO5js.useDataListRetriever.call(void 0, {
4756
- retriever: /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (params) => _chunkOJAIKQR2js.StripeProductService.listProducts(params), "retriever"),
4755
+ const data = _chunkPCCUPEBUjs.useDataListRetriever.call(void 0, {
4756
+ retriever: /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (params) => _chunk6KE7UBYYjs.StripeProductService.listProducts(params), "retriever"),
4757
4757
  retrieverParams: {},
4758
- module: _chunkOJAIKQR2js.Modules.StripeProduct
4758
+ module: _chunk6KE7UBYYjs.Modules.StripeProduct
4759
4759
  });
4760
4760
  _react.useEffect.call(void 0, () => {
4761
4761
  if (catalogueVersion > 0) void data.refresh();
4762
4762
  }, [catalogueVersion]);
4763
4763
  const functions = [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductEditor, {}, "create-product")];
4764
4764
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4765
- _chunkR2XBVIO5js.ContentListTable,
4765
+ _chunkPCCUPEBUjs.ContentListTable,
4766
4766
  {
4767
4767
  data,
4768
4768
  fields: ["name" /* name */, "status" /* status */, "prices" /* prices */],
4769
- tableGeneratorType: _chunkOJAIKQR2js.Modules.StripeProduct,
4769
+ tableGeneratorType: _chunk6KE7UBYYjs.Modules.StripeProduct,
4770
4770
  functions,
4771
4771
  fullWidth,
4772
4772
  title: t("billing.admin.products.title"),
4773
4773
  emptyState: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4774
- _chunkR2XBVIO5js.EmptyState,
4774
+ _chunkPCCUPEBUjs.EmptyState,
4775
4775
  {
4776
4776
  icon: _lucidereact.PackageIcon,
4777
4777
  title: t("billing.admin.products.empty.title"),
@@ -4787,10 +4787,10 @@ _chunk7QVYU63Ejs.__name.call(void 0, ProductsList, "ProductsList");
4787
4787
 
4788
4788
  function ProductsListContainer() {
4789
4789
  const t = _nextintl.useTranslations.call(void 0, );
4790
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CouponProvider, { publishChrome: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4791
- _chunkR2XBVIO5js.RoundPageContainer,
4790
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CouponProvider, { publishChrome: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4791
+ _chunkPCCUPEBUjs.RoundPageContainer,
4792
4792
  {
4793
- module: _chunkOJAIKQR2js.Modules.StripeProduct,
4793
+ module: _chunk6KE7UBYYjs.Modules.StripeProduct,
4794
4794
  tabs: [
4795
4795
  { sectionKey: "products", label: t("billing.admin.products.tabs.products"), content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductsList, {}) },
4796
4796
  { sectionKey: "codes", label: t("billing.admin.products.tabs.codes"), content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CouponsList, {}) }
@@ -4808,30 +4808,30 @@ _chunk7QVYU63Ejs.__name.call(void 0, ProductsListContainer, "ProductsListContain
4808
4808
 
4809
4809
  function CouponDetails() {
4810
4810
  const t = _nextintl.useTranslations.call(void 0, );
4811
- const fmt = _chunkR2XBVIO5js.useBillingFormatOptions.call(void 0, );
4812
- const { coupon } = _chunkR2XBVIO5js.useCouponContext.call(void 0, );
4811
+ const fmt = _chunkPCCUPEBUjs.useBillingFormatOptions.call(void 0, );
4812
+ const { coupon } = _chunkPCCUPEBUjs.useCouponContext.call(void 0, );
4813
4813
  if (!coupon) return null;
4814
4814
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-y-4", children: [
4815
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.SectionHeader, { children: t("billing.admin.products.tabs.details") }),
4815
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.SectionHeader, { children: t("billing.admin.products.tabs.details") }),
4816
4816
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-xs/relaxed", children: t("billing.admin.coupons.fixed_notice") }),
4817
4817
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [
4818
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.DetailField, { label: t("billing.admin.coupons.fields.name"), value: coupon.name }),
4818
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.DetailField, { label: t("billing.admin.coupons.fields.name"), value: coupon.name }),
4819
4819
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4820
- _chunkR2XBVIO5js.DetailField,
4820
+ _chunkPCCUPEBUjs.DetailField,
4821
4821
  {
4822
4822
  label: t("billing.admin.coupons.fields.status"),
4823
- value: coupon.valid ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softGreen", children: t("billing.admin.coupons.status.active") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.Badge, { variant: "softGray", children: t("billing.admin.coupons.status.ended") })
4823
+ value: coupon.valid ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softGreen", children: t("billing.admin.coupons.status.active") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.Badge, { variant: "softGray", children: t("billing.admin.coupons.status.ended") })
4824
4824
  }
4825
4825
  ),
4826
4826
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4827
- _chunkR2XBVIO5js.DetailField,
4827
+ _chunkPCCUPEBUjs.DetailField,
4828
4828
  {
4829
4829
  label: t("billing.admin.coupons.fields.discount"),
4830
- value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: _chunkOJAIKQR2js.formatCouponDiscount.call(void 0, coupon, t, fmt) })
4830
+ value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: _chunk6KE7UBYYjs.formatCouponDiscount.call(void 0, coupon, t, fmt) })
4831
4831
  }
4832
4832
  ),
4833
4833
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4834
- _chunkR2XBVIO5js.DetailField,
4834
+ _chunkPCCUPEBUjs.DetailField,
4835
4835
  {
4836
4836
  label: t("billing.admin.coupons.fields.places"),
4837
4837
  value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: coupon.maxRedemptions !== void 0 ? t("billing.admin.coupons.places.limited", {
@@ -4841,21 +4841,21 @@ function CouponDetails() {
4841
4841
  }
4842
4842
  ),
4843
4843
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4844
- _chunkR2XBVIO5js.DetailField,
4844
+ _chunkPCCUPEBUjs.DetailField,
4845
4845
  {
4846
4846
  label: t("billing.admin.coupons.fields.products"),
4847
4847
  value: coupon.stripeProductIds.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: coupon.stripeProductIds.join(", ") }) : t("billing.admin.coupons.all_products")
4848
4848
  }
4849
4849
  ),
4850
4850
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4851
- _chunkR2XBVIO5js.DetailField,
4851
+ _chunkPCCUPEBUjs.DetailField,
4852
4852
  {
4853
4853
  label: t("billing.admin.coupons.fields.redeemBy"),
4854
- value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: coupon.redeemBy ? _chunkR2XBVIO5js.formatDate.call(void 0, coupon.redeemBy, fmt) : "\u2014" })
4854
+ value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: coupon.redeemBy ? _chunkPCCUPEBUjs.formatDate.call(void 0, coupon.redeemBy, fmt) : "\u2014" })
4855
4855
  }
4856
4856
  ),
4857
4857
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4858
- _chunkR2XBVIO5js.DetailField,
4858
+ _chunkPCCUPEBUjs.DetailField,
4859
4859
  {
4860
4860
  label: t("billing.admin.coupons.fields.stripeId"),
4861
4861
  value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: coupon.stripeCouponId })
@@ -4889,33 +4889,33 @@ function CouponCodeEditorInternal({
4889
4889
  onDialogOpenChange
4890
4890
  }) {
4891
4891
  const t = _nextintl.useTranslations.call(void 0, );
4892
- const router = _chunkOJAIKQR2js.useI18nRouter.call(void 0, );
4893
- const { createCode } = _chunkR2XBVIO5js.useCouponContext.call(void 0, );
4894
- const formSchema2 = _react.useMemo.call(void 0, () => _zod3.z.object({ id: _zod3.z.uuidv4() }).and(_chunkR2XBVIO5js.couponCodeSchema.call(void 0, t)), [t]);
4895
- const getDefaultValues = _react.useCallback.call(void 0, () => ({ id: _uuid.v4.call(void 0, ), ..._chunkR2XBVIO5js.couponCodeDefaults.call(void 0, ) }), []);
4892
+ const router = _chunk6KE7UBYYjs.useI18nRouter.call(void 0, );
4893
+ const { createCode } = _chunkPCCUPEBUjs.useCouponContext.call(void 0, );
4894
+ const formSchema2 = _react.useMemo.call(void 0, () => _zod3.z.object({ id: _zod3.z.uuidv4() }).and(_chunkPCCUPEBUjs.couponCodeSchema.call(void 0, t)), [t]);
4895
+ const getDefaultValues = _react.useCallback.call(void 0, () => ({ id: _uuid.v4.call(void 0, ), ..._chunkPCCUPEBUjs.couponCodeDefaults.call(void 0, ) }), []);
4896
4896
  const form = _reacthookform.useForm.call(void 0, {
4897
4897
  resolver: _zod.zodResolver.call(void 0, formSchema2),
4898
4898
  defaultValues: getDefaultValues()
4899
4899
  });
4900
4900
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4901
- _chunkR2XBVIO5js.EditorSheet,
4901
+ _chunkPCCUPEBUjs.EditorSheet,
4902
4902
  {
4903
4903
  form,
4904
4904
  entityType: t("billing.admin.coupons.codes.entity"),
4905
4905
  isEdit: false,
4906
- module: _chunkOJAIKQR2js.Modules.StripeCouponCode,
4906
+ module: _chunk6KE7UBYYjs.Modules.StripeCouponCode,
4907
4907
  size: "md",
4908
4908
  onSuccess: _nullishCoalesce(onSuccess, () => ( (() => {
4909
4909
  }))),
4910
4910
  onNavigate: (url) => router.push(url),
4911
- onSubmit: async (values) => await createCode({ id: values.id, couponId, ..._chunkR2XBVIO5js.toCouponCodeInput.call(void 0, values) }),
4911
+ onSubmit: async (values) => await createCode({ id: values.id, couponId, ..._chunkPCCUPEBUjs.toCouponCodeInput.call(void 0, values) }),
4912
4912
  onReset: getDefaultValues,
4913
4913
  trigger,
4914
4914
  forceShow,
4915
4915
  onClose,
4916
4916
  dialogOpen,
4917
4917
  onDialogOpenChange,
4918
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkR2XBVIO5js.CouponCodeFields, { form })
4918
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPCCUPEBUjs.CouponCodeFields, { form })
4919
4919
  }
4920
4920
  );
4921
4921
  }
@@ -4929,18 +4929,18 @@ _chunk7QVYU63Ejs.__name.call(void 0, CouponCodeEditor, "CouponCodeEditor");
4929
4929
 
4930
4930
  function CouponCodesList({ couponId }) {
4931
4931
  const t = _nextintl.useTranslations.call(void 0, );
4932
- const { catalogueVersion } = _chunkR2XBVIO5js.useCouponContext.call(void 0, );
4933
- const data = _chunkR2XBVIO5js.useDataListRetriever.call(void 0, {
4934
- retriever: /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (params) => _chunkOJAIKQR2js.StripeCouponCodeService.listByCoupon({ ...params, couponId }), "retriever"),
4932
+ const { catalogueVersion } = _chunkPCCUPEBUjs.useCouponContext.call(void 0, );
4933
+ const data = _chunkPCCUPEBUjs.useDataListRetriever.call(void 0, {
4934
+ retriever: /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (params) => _chunk6KE7UBYYjs.StripeCouponCodeService.listByCoupon({ ...params, couponId }), "retriever"),
4935
4935
  retrieverParams: {},
4936
- module: _chunkOJAIKQR2js.Modules.StripeCouponCode
4936
+ module: _chunk6KE7UBYYjs.Modules.StripeCouponCode
4937
4937
  });
4938
4938
  _react.useEffect.call(void 0, () => {
4939
4939
  if (catalogueVersion > 0) void data.refresh();
4940
4940
  }, [catalogueVersion]);
4941
4941
  const functions = [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, CouponCodeEditor, { couponId }, "create-code")];
4942
4942
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4943
- _chunkR2XBVIO5js.ContentListTable,
4943
+ _chunkPCCUPEBUjs.ContentListTable,
4944
4944
  {
4945
4945
  data,
4946
4946
  fields: [
@@ -4951,11 +4951,11 @@ function CouponCodesList({ couponId }) {
4951
4951
  "status" /* status */,
4952
4952
  "actions" /* actions */
4953
4953
  ],
4954
- tableGeneratorType: _chunkOJAIKQR2js.Modules.StripeCouponCode,
4954
+ tableGeneratorType: _chunk6KE7UBYYjs.Modules.StripeCouponCode,
4955
4955
  functions,
4956
4956
  title: t("billing.admin.coupons.codes.title"),
4957
4957
  emptyState: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4958
- _chunkR2XBVIO5js.EmptyState,
4958
+ _chunkPCCUPEBUjs.EmptyState,
4959
4959
  {
4960
4960
  icon: _lucidereact.TicketIcon,
4961
4961
  title: t("billing.admin.coupons.codes.empty.title"),
@@ -4971,12 +4971,12 @@ _chunk7QVYU63Ejs.__name.call(void 0, CouponCodesList, "CouponCodesList");
4971
4971
 
4972
4972
  function CouponContainer() {
4973
4973
  const t = _nextintl.useTranslations.call(void 0, );
4974
- const { coupon } = _chunkR2XBVIO5js.useCouponContext.call(void 0, );
4974
+ const { coupon } = _chunkPCCUPEBUjs.useCouponContext.call(void 0, );
4975
4975
  if (!coupon) return null;
4976
4976
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
4977
- _chunkR2XBVIO5js.RoundPageContainer,
4977
+ _chunkPCCUPEBUjs.RoundPageContainer,
4978
4978
  {
4979
- module: _chunkR2XBVIO5js.couponPageModule.call(void 0, ),
4979
+ module: _chunkPCCUPEBUjs.couponPageModule.call(void 0, ),
4980
4980
  id: coupon.id,
4981
4981
  tabs: [
4982
4982
  {
@@ -5083,5 +5083,5 @@ _chunk7QVYU63Ejs.__name.call(void 0, CouponContainer, "CouponContainer");
5083
5083
 
5084
5084
 
5085
5085
 
5086
- exports.BillingAlertBanner = BillingAlertBanner; exports.BillingDashboardContainer = BillingDashboardContainer; exports.BillingDetailModal = BillingDetailModal; exports.BillingUsageSummaryCard = BillingUsageSummaryCard; exports.CancelSubscriptionDialog = CancelSubscriptionDialog; exports.CouponCodeActions = _chunkR2XBVIO5js.CouponCodeActions; exports.CouponCodeEditor = CouponCodeEditor; exports.CouponCodeFields = _chunkR2XBVIO5js.CouponCodeFields; exports.CouponCodesList = CouponCodesList; exports.CouponContainer = CouponContainer; exports.CouponDetails = CouponDetails; exports.CouponEditor = _chunkR2XBVIO5js.CouponEditor; exports.CouponProvider = _chunkR2XBVIO5js.CouponProvider; exports.CouponRefresher = _chunkR2XBVIO5js.CouponRefresher; exports.CouponsList = CouponsList; exports.CustomerInfoCard = CustomerInfoCard; exports.IntervalToggle = IntervalToggle; exports.InvoiceDetails = InvoiceDetails; exports.InvoiceStatusBadge = InvoiceStatusBadge; exports.InvoicesContainer = InvoicesContainer; exports.InvoicesList = InvoicesList; exports.InvoicesSummaryCard = InvoicesSummaryCard; exports.PaymentMethodCard = PaymentMethodCard; exports.PaymentMethodEditor = PaymentMethodEditor; exports.PaymentMethodForm = PaymentMethodForm; exports.PaymentMethodSummaryCard = PaymentMethodSummaryCard; exports.PaymentMethodsContainer = PaymentMethodsContainer; exports.PaymentMethodsList = PaymentMethodsList; exports.PriceArchiver = PriceArchiver; exports.PriceContainer = PriceContainer; exports.PriceDetails = PriceDetails; exports.PriceEditor = PriceEditor; exports.PriceProvider = PriceProvider; exports.PricesList = PricesList; exports.PricingCard = PricingCard; exports.ProductArchiver = ProductArchiver; exports.ProductContainer = ProductContainer; exports.ProductDetails = ProductDetails; exports.ProductEditor = ProductEditor; exports.ProductPricingList = ProductPricingList; exports.ProductPricingRow = ProductPricingRow; exports.ProductProvider = ProductProvider; exports.ProductsList = ProductsList; exports.ProductsListContainer = ProductsListContainer; exports.PromoCodeInput = PromoCodeInput; exports.ProrationPreview = ProrationPreview; exports.StripeProvider = StripeProvider; exports.SubscriptionConfirmation = SubscriptionConfirmation; exports.SubscriptionDetails = SubscriptionDetails; exports.SubscriptionStatusBadge = SubscriptionStatusBadge; exports.SubscriptionSummaryCard = SubscriptionSummaryCard; exports.SubscriptionWizard = SubscriptionWizard; exports.SubscriptionsContainer = SubscriptionsContainer; exports.SubscriptionsList = SubscriptionsList; exports.UsageContainer = UsageContainer; exports.UsageHistoryTable = UsageHistoryTable; exports.UsageSummaryCard = UsageSummaryCard; exports.UsageSummaryCards = UsageSummaryCards; exports.WizardProgressIndicator = WizardProgressIndicator; exports.WizardStepPaymentMethod = WizardStepPaymentMethod; exports.WizardStepPlanSelection = WizardStepPlanSelection; exports.WizardStepReview = WizardStepReview; exports.applyDiscount = _chunkR2XBVIO5js.applyDiscount; exports.couponCodeDefaults = _chunkR2XBVIO5js.couponCodeDefaults; exports.couponCodeSchema = _chunkR2XBVIO5js.couponCodeSchema; exports.couponCurrencyOptions = _chunkR2XBVIO5js.couponCurrencyOptions; exports.formatCurrency = _chunkOJAIKQR2js.formatCurrency; exports.formatDate = _chunkR2XBVIO5js.formatDate; exports.formatFixed = _chunkOJAIKQR2js.formatFixed; exports.formatInterval = _chunkOJAIKQR2js.formatInterval; exports.isStripeConfigured = isStripeConfigured; exports.optionalDate = _chunkR2XBVIO5js.optionalDate; exports.optionalDecimal = _chunkR2XBVIO5js.optionalDecimal; exports.optionalPositiveInt = _chunkR2XBVIO5js.optionalPositiveInt; exports.parseOptionalDecimal = _chunkR2XBVIO5js.parseOptionalDecimal; exports.parseOptionalPositiveInt = _chunkR2XBVIO5js.parseOptionalPositiveInt; exports.priceLabel = priceLabel; exports.promotionCodeDiscount = _chunkR2XBVIO5js.promotionCodeDiscount; exports.subscriptionDiscount = _chunkR2XBVIO5js.subscriptionDiscount; exports.toCouponCodeInput = _chunkR2XBVIO5js.toCouponCodeInput; exports.useBillingFormatOptions = _chunkR2XBVIO5js.useBillingFormatOptions; exports.useCouponContext = _chunkR2XBVIO5js.useCouponContext; exports.usePriceContext = usePriceContext; exports.useProductContext = useProductContext;
5086
+ exports.BillingAlertBanner = BillingAlertBanner; exports.BillingDashboardContainer = BillingDashboardContainer; exports.BillingDetailModal = BillingDetailModal; exports.BillingUsageSummaryCard = BillingUsageSummaryCard; exports.CancelSubscriptionDialog = CancelSubscriptionDialog; exports.CouponCodeActions = _chunkPCCUPEBUjs.CouponCodeActions; exports.CouponCodeEditor = CouponCodeEditor; exports.CouponCodeFields = _chunkPCCUPEBUjs.CouponCodeFields; exports.CouponCodesList = CouponCodesList; exports.CouponContainer = CouponContainer; exports.CouponDetails = CouponDetails; exports.CouponEditor = _chunkPCCUPEBUjs.CouponEditor; exports.CouponProvider = _chunkPCCUPEBUjs.CouponProvider; exports.CouponRefresher = _chunkPCCUPEBUjs.CouponRefresher; exports.CouponsList = CouponsList; exports.CustomerInfoCard = CustomerInfoCard; exports.IntervalToggle = IntervalToggle; exports.InvoiceDetails = InvoiceDetails; exports.InvoiceStatusBadge = InvoiceStatusBadge; exports.InvoicesContainer = InvoicesContainer; exports.InvoicesList = InvoicesList; exports.InvoicesSummaryCard = InvoicesSummaryCard; exports.PaymentMethodCard = PaymentMethodCard; exports.PaymentMethodEditor = PaymentMethodEditor; exports.PaymentMethodForm = PaymentMethodForm; exports.PaymentMethodSummaryCard = PaymentMethodSummaryCard; exports.PaymentMethodsContainer = PaymentMethodsContainer; exports.PaymentMethodsList = PaymentMethodsList; exports.PriceArchiver = PriceArchiver; exports.PriceContainer = PriceContainer; exports.PriceDetails = PriceDetails; exports.PriceEditor = PriceEditor; exports.PriceProvider = PriceProvider; exports.PricesList = PricesList; exports.PricingCard = PricingCard; exports.ProductArchiver = ProductArchiver; exports.ProductContainer = ProductContainer; exports.ProductDetails = ProductDetails; exports.ProductEditor = ProductEditor; exports.ProductPricingList = ProductPricingList; exports.ProductPricingRow = ProductPricingRow; exports.ProductProvider = ProductProvider; exports.ProductsList = ProductsList; exports.ProductsListContainer = ProductsListContainer; exports.PromoCodeInput = PromoCodeInput; exports.ProrationPreview = ProrationPreview; exports.StripeProvider = StripeProvider; exports.SubscriptionConfirmation = SubscriptionConfirmation; exports.SubscriptionDetails = SubscriptionDetails; exports.SubscriptionStatusBadge = SubscriptionStatusBadge; exports.SubscriptionSummaryCard = SubscriptionSummaryCard; exports.SubscriptionWizard = SubscriptionWizard; exports.SubscriptionsContainer = SubscriptionsContainer; exports.SubscriptionsList = SubscriptionsList; exports.UsageContainer = UsageContainer; exports.UsageHistoryTable = UsageHistoryTable; exports.UsageSummaryCard = UsageSummaryCard; exports.UsageSummaryCards = UsageSummaryCards; exports.WizardProgressIndicator = WizardProgressIndicator; exports.WizardStepPaymentMethod = WizardStepPaymentMethod; exports.WizardStepPlanSelection = WizardStepPlanSelection; exports.WizardStepReview = WizardStepReview; exports.applyDiscount = _chunkPCCUPEBUjs.applyDiscount; exports.couponCodeDefaults = _chunkPCCUPEBUjs.couponCodeDefaults; exports.couponCodeSchema = _chunkPCCUPEBUjs.couponCodeSchema; exports.couponCurrencyOptions = _chunkPCCUPEBUjs.couponCurrencyOptions; exports.formatCurrency = _chunk6KE7UBYYjs.formatCurrency; exports.formatDate = _chunkPCCUPEBUjs.formatDate; exports.formatFixed = _chunk6KE7UBYYjs.formatFixed; exports.formatInterval = _chunk6KE7UBYYjs.formatInterval; exports.isStripeConfigured = isStripeConfigured; exports.optionalDate = _chunkPCCUPEBUjs.optionalDate; exports.optionalDecimal = _chunkPCCUPEBUjs.optionalDecimal; exports.optionalPositiveInt = _chunkPCCUPEBUjs.optionalPositiveInt; exports.parseOptionalDecimal = _chunkPCCUPEBUjs.parseOptionalDecimal; exports.parseOptionalPositiveInt = _chunkPCCUPEBUjs.parseOptionalPositiveInt; exports.priceLabel = priceLabel; exports.promotionCodeDiscount = _chunkPCCUPEBUjs.promotionCodeDiscount; exports.subscriptionDiscount = _chunkPCCUPEBUjs.subscriptionDiscount; exports.toCouponCodeInput = _chunkPCCUPEBUjs.toCouponCodeInput; exports.useBillingFormatOptions = _chunkPCCUPEBUjs.useBillingFormatOptions; exports.useCouponContext = _chunkPCCUPEBUjs.useCouponContext; exports.usePriceContext = usePriceContext; exports.useProductContext = useProductContext;
5087
5087
  //# sourceMappingURL=index.js.map