@carlonicora/nextjs-jsonapi 3.3.8 → 3.4.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 (175) hide show
  1. package/dist/{BlockNoteEditor-BYMRWUVG.mjs → BlockNoteEditor-3D5D7YL7.mjs} +2 -2
  2. package/dist/{BlockNoteEditor-USRMFZGP.js → BlockNoteEditor-F6TGKMTW.js} +9 -9
  3. package/dist/{BlockNoteEditor-USRMFZGP.js.map → BlockNoteEditor-F6TGKMTW.js.map} +1 -1
  4. package/dist/billing/index.js +347 -347
  5. package/dist/billing/index.js.map +1 -1
  6. package/dist/billing/index.mjs +27 -27
  7. package/dist/billing/index.mjs.map +1 -1
  8. package/dist/{chunk-CFZW6GU4.mjs → chunk-G5LSXG5K.mjs} +2572 -2482
  9. package/dist/chunk-G5LSXG5K.mjs.map +1 -0
  10. package/dist/{chunk-5WFYQE22.js → chunk-KT4CTWCV.js} +825 -735
  11. package/dist/chunk-KT4CTWCV.js.map +1 -0
  12. package/dist/client/index.d.mts +5 -0
  13. package/dist/client/index.d.ts +5 -0
  14. package/dist/client/index.js +2 -2
  15. package/dist/client/index.mjs +1 -1
  16. package/dist/components/index.d.mts +12 -6
  17. package/dist/components/index.d.ts +12 -6
  18. package/dist/components/index.js +2 -2
  19. package/dist/components/index.mjs +1 -1
  20. package/dist/contexts/index.d.mts +13 -1
  21. package/dist/contexts/index.d.ts +13 -1
  22. package/dist/contexts/index.js +6 -2
  23. package/dist/contexts/index.js.map +1 -1
  24. package/dist/contexts/index.mjs +5 -1
  25. package/dist/features/help/index.js +35 -35
  26. package/dist/features/help/index.js.map +1 -1
  27. package/dist/features/help/index.mjs +6 -6
  28. package/dist/features/help/index.mjs.map +1 -1
  29. package/dist/features/tokenusage/index.js +135 -129
  30. package/dist/features/tokenusage/index.js.map +1 -1
  31. package/dist/features/tokenusage/index.mjs +74 -68
  32. package/dist/features/tokenusage/index.mjs.map +1 -1
  33. package/package.json +2 -2
  34. package/scripts/check-rtl-classes.mjs +60 -0
  35. package/scripts/check-rtl-classes.test.ts +25 -0
  36. package/src/components/TableCellAvatar.tsx +1 -1
  37. package/src/components/containers/PageContainer.tsx +1 -1
  38. package/src/components/containers/ReactMarkdownContainer.tsx +20 -4
  39. package/src/components/containers/RoundPageContainer.tsx +7 -7
  40. package/src/components/contents/AttributeElement.tsx +1 -1
  41. package/src/components/editors/BlockNoteDiffInlineContent.tsx +2 -2
  42. package/src/components/editors/BlockNoteEditorMentionHoverCard.tsx +1 -0
  43. package/src/components/forms/CommonDeleter.tsx +1 -1
  44. package/src/components/forms/CommonEditorButtons.tsx +1 -1
  45. package/src/components/forms/DatePickerPopover.tsx +2 -2
  46. package/src/components/forms/DateRangeSelector.tsx +2 -2
  47. package/src/components/forms/EditorSheet.tsx +18 -9
  48. package/src/components/forms/EntityMultiSelector.tsx +7 -7
  49. package/src/components/forms/EntitySelector.tsx +8 -8
  50. package/src/components/forms/FileUploader.tsx +1 -0
  51. package/src/components/forms/FormCheckbox.tsx +3 -3
  52. package/src/components/forms/FormDateTime.tsx +3 -3
  53. package/src/components/forms/FormFieldWrapper.tsx +1 -1
  54. package/src/components/forms/FormPlaceAutocomplete.tsx +2 -2
  55. package/src/components/forms/GdprConsentCheckbox.tsx +1 -1
  56. package/src/components/forms/MultiFileUploader.tsx +1 -1
  57. package/src/components/forms/PasswordInput.tsx +1 -1
  58. package/src/components/forms/__tests__/FormCheckbox.test.tsx +4 -4
  59. package/src/components/navigations/Header.tsx +2 -2
  60. package/src/components/navigations/PageSection.tsx +1 -1
  61. package/src/components/pages/PageContainerContentDetails.tsx +1 -1
  62. package/src/components/pages/PageContentContainer.tsx +5 -2
  63. package/src/components/tables/ContentListTable.tsx +4 -4
  64. package/src/components/tables/ContentTableSearch.tsx +5 -5
  65. package/src/contexts/DirectionContext.tsx +25 -0
  66. package/src/contexts/__tests__/DirectionContext.test.tsx +22 -0
  67. package/src/contexts/index.ts +1 -0
  68. package/src/features/ai-connection/components/lists/AiConnectionTypeCard.tsx +1 -1
  69. package/src/features/assistant/components/containers/AssistantPageContainer.tsx +1 -1
  70. package/src/features/assistant/components/parts/AssistantBlockNoteComposer.tsx +2 -2
  71. package/src/features/assistant/components/parts/AssistantComposer.tsx +2 -2
  72. package/src/features/assistant/components/parts/AssistantEmptyState.tsx +1 -1
  73. package/src/features/assistant/components/parts/AssistantSidebar.tsx +3 -3
  74. package/src/features/assistant-action/components/ApprovalActionCard.tsx +1 -1
  75. package/src/features/assistant-action/components/AssistantContainerWithApprovals.tsx +1 -1
  76. package/src/features/assistant-message/components/MessageItem.tsx +3 -3
  77. package/src/features/assistant-message/components/__tests__/MessageItem.spec.tsx +1 -0
  78. package/src/features/assistant-message/components/parts/MessageSourcesPanel.tsx +2 -2
  79. package/src/features/assistant-message/components/parts/RelevanceMeter.tsx +1 -1
  80. package/src/features/assistant-message/components/parts/tabs/SuggestedQuestionsTab.tsx +1 -1
  81. package/src/features/auth/components/buttons/GoogleSignInButton.tsx +1 -1
  82. package/src/features/auth/components/forms/Register.tsx +2 -2
  83. package/src/features/auth/components/two-factor/BackupCodesDialog.tsx +3 -3
  84. package/src/features/auth/utils/__tests__/clearClientStorage.spec.ts +4 -4
  85. package/src/features/billing/components/cards/BillingUsageSummaryCard.tsx +1 -1
  86. package/src/features/billing/components/cards/CustomerInfoCard.tsx +1 -1
  87. package/src/features/billing/components/cards/InvoicesSummaryCard.tsx +1 -1
  88. package/src/features/billing/components/cards/PaymentMethodSummaryCard.tsx +1 -1
  89. package/src/features/billing/components/cards/SubscriptionSummaryCard.tsx +1 -1
  90. package/src/features/billing/components/containers/BillingDashboardContainer.tsx +1 -1
  91. package/src/features/billing/stripe-customer/components/details/PaymentMethodCard.tsx +1 -1
  92. package/src/features/billing/stripe-invoice/components/details/InvoiceDetails.tsx +6 -6
  93. package/src/features/billing/stripe-invoice/components/lists/InvoicesList.tsx +2 -2
  94. package/src/features/billing/stripe-price/hooks/useStripePriceTableStructure.tsx +3 -3
  95. package/src/features/billing/stripe-product/hooks/useStripeProductTableStructure.tsx +2 -2
  96. package/src/features/billing/stripe-subscription/components/lists/SubscriptionsList.tsx +4 -4
  97. package/src/features/billing/stripe-subscription/components/widgets/PricingCard.tsx +2 -2
  98. package/src/features/billing/stripe-subscription/components/widgets/SubscriptionConfirmation.tsx +1 -1
  99. package/src/features/billing/stripe-subscription/components/wizards/WizardStepReview.tsx +2 -2
  100. package/src/features/billing/stripe-usage/components/lists/UsageHistoryTable.tsx +2 -2
  101. package/src/features/company/components/forms/CompanyDeleter.tsx +4 -4
  102. package/src/features/content/hooks/useContentTableStructure.tsx +1 -1
  103. package/src/features/feature/components/forms/FormFeatures.tsx +2 -2
  104. package/src/features/help/components/HelpAssistantSheet.tsx +3 -2
  105. package/src/features/help/components/HelpHint.tsx +2 -2
  106. package/src/features/help/components/HelpTOC.tsx +1 -1
  107. package/src/features/how-to/components/containers/HowToCommand.tsx +2 -2
  108. package/src/features/how-to/components/containers/HowToCommandViewer.tsx +5 -5
  109. package/src/features/how-to/components/forms/HowToEditor.tsx +3 -3
  110. package/src/features/how-to/components/forms/HowToSelector.tsx +5 -5
  111. package/src/features/notification/components/lists/NotificationsList.tsx +2 -2
  112. package/src/features/notification/components/modals/NotificationModal.tsx +1 -1
  113. package/src/features/oauth/components/OAuthClientCard.tsx +2 -2
  114. package/src/features/oauth/components/OAuthClientDetail.tsx +2 -2
  115. package/src/features/oauth/components/OAuthClientList.tsx +3 -3
  116. package/src/features/oauth/components/OAuthRedirectUriInput.tsx +1 -1
  117. package/src/features/oauth/components/OAuthScopeSelector.tsx +2 -2
  118. package/src/features/onboarding/components/OnboardingCard.tsx +1 -7
  119. package/src/features/rbac/components/RbacByRoleContainer.tsx +3 -3
  120. package/src/features/rbac/components/RbacContainer.tsx +3 -3
  121. package/src/features/referral/components/ReferralWidget.tsx +1 -0
  122. package/src/features/role/components/forms/FormRoles.tsx +1 -1
  123. package/src/features/role/components/forms/RemoveUserFromRole.tsx +1 -1
  124. package/src/features/role/components/forms/UserRoleAdd.tsx +1 -1
  125. package/src/features/tokenusage/components/TokenUsageBreakdownTable.tsx +9 -9
  126. package/src/features/tokenusage/components/TokenUsageRankedBar.tsx +8 -3
  127. package/src/features/tokenusage/components/TokenUsageTimelineChart.tsx +5 -1
  128. package/src/features/user/components/details/UserStandaloneDetails.tsx +1 -1
  129. package/src/features/user/components/forms/UserReactivator.tsx +2 -2
  130. package/src/features/user/components/forms/UserResentInvitationEmail.tsx +1 -1
  131. package/src/features/user/components/forms/UserSelector.tsx +7 -7
  132. package/src/features/user/components/lists/ContributorsList.tsx +1 -1
  133. package/src/features/user/components/lists/UserListInAdd.tsx +1 -1
  134. package/src/features/user/components/widgets/UserSearchPopover.tsx +5 -5
  135. package/src/features/user/hooks/useUserTableStructure.tsx +1 -1
  136. package/src/features/waitlist/components/forms/WaitlistQuestionnaireRenderer.tsx +1 -1
  137. package/src/features/waitlist/hooks/useWaitlistTableStructure.tsx +1 -1
  138. package/src/hooks/useCustomD3Graph.tsx +16 -0
  139. package/src/lib/__tests__/direction.test.ts +18 -0
  140. package/src/lib/direction.ts +8 -0
  141. package/src/shadcnui/custom/multi-select.tsx +6 -6
  142. package/src/shadcnui/custom/multiple-selector.tsx +6 -2
  143. package/src/shadcnui/ui/accordion.tsx +1 -1
  144. package/src/shadcnui/ui/alert-dialog.tsx +2 -1
  145. package/src/shadcnui/ui/alert.tsx +2 -2
  146. package/src/shadcnui/ui/avatar.tsx +1 -1
  147. package/src/shadcnui/ui/badge.tsx +1 -1
  148. package/src/shadcnui/ui/breadcrumb.tsx +1 -1
  149. package/src/shadcnui/ui/button.tsx +4 -4
  150. package/src/shadcnui/ui/calendar.tsx +9 -8
  151. package/src/shadcnui/ui/carousel.tsx +18 -11
  152. package/src/shadcnui/ui/combobox.tsx +3 -3
  153. package/src/shadcnui/ui/command.tsx +2 -2
  154. package/src/shadcnui/ui/context-menu.tsx +15 -11
  155. package/src/shadcnui/ui/dialog.tsx +2 -1
  156. package/src/shadcnui/ui/drawer.tsx +19 -3
  157. package/src/shadcnui/ui/dropdown-menu.tsx +12 -10
  158. package/src/shadcnui/ui/field.tsx +2 -2
  159. package/src/shadcnui/ui/input-group.tsx +3 -3
  160. package/src/shadcnui/ui/input-otp.tsx +2 -0
  161. package/src/shadcnui/ui/navigation-menu.tsx +2 -2
  162. package/src/shadcnui/ui/progress.tsx +1 -1
  163. package/src/shadcnui/ui/radio-group.tsx +1 -0
  164. package/src/shadcnui/ui/resizable.tsx +1 -0
  165. package/src/shadcnui/ui/scroll-area.tsx +1 -1
  166. package/src/shadcnui/ui/select.tsx +2 -2
  167. package/src/shadcnui/ui/sheet.tsx +11 -4
  168. package/src/shadcnui/ui/sidebar.tsx +37 -20
  169. package/src/shadcnui/ui/sonner.tsx +6 -1
  170. package/src/shadcnui/ui/switch.tsx +1 -1
  171. package/src/shadcnui/ui/table.tsx +2 -2
  172. package/src/shadcnui/ui/tabs.tsx +1 -1
  173. package/dist/chunk-5WFYQE22.js.map +0 -1
  174. package/dist/chunk-CFZW6GU4.mjs.map +0 -1
  175. /package/dist/{BlockNoteEditor-BYMRWUVG.mjs.map → BlockNoteEditor-3D5D7YL7.mjs.map} +0 -0
@@ -62,7 +62,7 @@ import {
62
62
  useCurrentUserContext,
63
63
  useDataListRetriever,
64
64
  usePageUrlGenerator
65
- } from "../chunk-CFZW6GU4.mjs";
65
+ } from "../chunk-G5LSXG5K.mjs";
66
66
  import {
67
67
  getRoleId,
68
68
  getStripePublishableKey,
@@ -176,7 +176,7 @@ function SubscriptionSummaryCard({
176
176
  },
177
177
  children: [
178
178
  "View Plans",
179
- /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4 ml-1" })
179
+ /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4 ms-1 rtl:rotate-180" })
180
180
  ]
181
181
  }
182
182
  )
@@ -267,7 +267,7 @@ function PaymentMethodSummaryCard({
267
267
  },
268
268
  children: [
269
269
  "Add Card",
270
- /* @__PURE__ */ jsx2(ChevronRight2, { className: "h-4 w-4 ml-1" })
270
+ /* @__PURE__ */ jsx2(ChevronRight2, { className: "h-4 w-4 ms-1 rtl:rotate-180" })
271
271
  ]
272
272
  }
273
273
  )
@@ -376,7 +376,7 @@ function CustomerInfoCard({ customer, loading, error }) {
376
376
  ] }),
377
377
  /* @__PURE__ */ jsxs3(Button, { variant: "outline", size: "sm", className: "mt-2", onClick: handlePortalClick, disabled: portalLoading, children: [
378
378
  portalLoading ? "Loading..." : "Manage in Stripe Portal",
379
- /* @__PURE__ */ jsx3(ExternalLink, { className: "h-4 w-4 ml-1" })
379
+ /* @__PURE__ */ jsx3(ExternalLink, { className: "h-4 w-4 ms-1" })
380
380
  ] })
381
381
  ] }) })
382
382
  ] });
@@ -467,7 +467,7 @@ function InvoicesSummaryCard({ invoices, loading, error, onViewAllClick }) {
467
467
  ] }),
468
468
  /* @__PURE__ */ jsxs4("span", { className: "flex items-center", children: [
469
469
  "View all",
470
- /* @__PURE__ */ jsx4(ChevronRight3, { className: "h-3 w-3 ml-1" })
470
+ /* @__PURE__ */ jsx4(ChevronRight3, { className: "h-3 w-3 ms-1 rtl:rotate-180" })
471
471
  ] })
472
472
  ] })
473
473
  ] }) : null })
@@ -543,7 +543,7 @@ function BillingUsageSummaryCard({
543
543
  ] }),
544
544
  /* @__PURE__ */ jsxs5("span", { className: "flex items-center text-xs text-muted-foreground", children: [
545
545
  "View details",
546
- /* @__PURE__ */ jsx5(ChevronRight4, { className: "h-3 w-3 ml-1" })
546
+ /* @__PURE__ */ jsx5(ChevronRight4, { className: "h-3 w-3 ms-1 rtl:rotate-180" })
547
547
  ] })
548
548
  ] }) })
549
549
  ] });
@@ -739,7 +739,7 @@ function PaymentMethodCard({ paymentMethod, onUpdate }) {
739
739
  }, "handleRemove");
740
740
  return /* @__PURE__ */ jsxs8(Fragment, { children: [
741
741
  /* @__PURE__ */ jsxs8(Card, { className: "relative", children: [
742
- isDefault && /* @__PURE__ */ jsx8(Badge, { variant: "softGreen", className: "absolute right-2 top-2", children: "Default" }),
742
+ isDefault && /* @__PURE__ */ jsx8(Badge, { variant: "softGreen", className: "absolute end-2 top-2", children: "Default" }),
743
743
  /* @__PURE__ */ jsxs8(CardHeader, { className: "flex flex-row items-center justify-between pb-2", children: [
744
744
  /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-x-2", children: [
745
745
  /* @__PURE__ */ jsx8("span", { className: "text-2xl", children: brandIcon }),
@@ -983,12 +983,12 @@ function InvoiceDetails({
983
983
  /* @__PURE__ */ jsx12("h4", { className: "text-sm font-medium text-muted-foreground mb-2", children: "Line Items" }),
984
984
  /* @__PURE__ */ jsx12("div", { className: "border rounded-lg overflow-clip", children: /* @__PURE__ */ jsxs10("table", { className: "w-full", children: [
985
985
  /* @__PURE__ */ jsx12("thead", { className: "bg-muted", children: /* @__PURE__ */ jsxs10("tr", { children: [
986
- /* @__PURE__ */ jsx12("th", { className: "text-left p-3 text-sm font-medium", children: "Description" }),
987
- /* @__PURE__ */ jsx12("th", { className: "text-right p-3 text-sm font-medium", children: "Amount" })
986
+ /* @__PURE__ */ jsx12("th", { className: "text-start p-3 text-sm font-medium", children: "Description" }),
987
+ /* @__PURE__ */ jsx12("th", { className: "text-end p-3 text-sm font-medium", children: "Amount" })
988
988
  ] }) }),
989
989
  /* @__PURE__ */ jsx12("tbody", { children: /* @__PURE__ */ jsxs10("tr", { className: "border-t", children: [
990
990
  /* @__PURE__ */ jsx12("td", { className: "p-3", children: productName }),
991
- /* @__PURE__ */ jsx12("td", { className: "p-3 text-right", children: formatCurrency(invoice.subtotal, invoice.currency) })
991
+ /* @__PURE__ */ jsx12("td", { className: "p-3 text-end", children: formatCurrency(invoice.subtotal, invoice.currency) })
992
992
  ] }) })
993
993
  ] }) })
994
994
  ] }),
@@ -1016,15 +1016,15 @@ function InvoiceDetails({
1016
1016
  ] }),
1017
1017
  /* @__PURE__ */ jsxs10("div", { className: "flex flex-wrap gap-2 pt-4 border-t", children: [
1018
1018
  invoice.stripePdfUrl && /* @__PURE__ */ jsxs10(Button, { variant: "outline", onClick: handleDownloadPDF, children: [
1019
- /* @__PURE__ */ jsx12(Download, { className: "mr-2 h-4 w-4" }),
1019
+ /* @__PURE__ */ jsx12(Download, { className: "me-2 h-4 w-4" }),
1020
1020
  "Download PDF"
1021
1021
  ] }),
1022
1022
  invoice.status === "open" /* OPEN */ && invoice.attempted && /* @__PURE__ */ jsxs10(Button, { variant: "default", onClick: handleRetryPayment, children: [
1023
- /* @__PURE__ */ jsx12(RefreshCw, { className: "mr-2 h-4 w-4" }),
1023
+ /* @__PURE__ */ jsx12(RefreshCw, { className: "me-2 h-4 w-4" }),
1024
1024
  "Retry Payment"
1025
1025
  ] }),
1026
1026
  invoice.stripeHostedInvoiceUrl && /* @__PURE__ */ jsxs10(Button, { variant: "outline", onClick: handleViewInStripe, children: [
1027
- /* @__PURE__ */ jsx12(ExternalLink2, { className: "mr-2 h-4 w-4" }),
1027
+ /* @__PURE__ */ jsx12(ExternalLink2, { className: "me-2 h-4 w-4" }),
1028
1028
  "View in Stripe"
1029
1029
  ] })
1030
1030
  ] })
@@ -1052,7 +1052,7 @@ function InvoicesList({ invoices, onInvoicesChange }) {
1052
1052
  /* @__PURE__ */ jsx13(TableHead, { children: "Invoice #" }),
1053
1053
  /* @__PURE__ */ jsx13(TableHead, { children: "Date" }),
1054
1054
  /* @__PURE__ */ jsx13(TableHead, { children: "Status" }),
1055
- /* @__PURE__ */ jsx13(TableHead, { className: "text-right", children: "Amount" }),
1055
+ /* @__PURE__ */ jsx13(TableHead, { className: "text-end", children: "Amount" }),
1056
1056
  /* @__PURE__ */ jsx13(TableHead, { children: "Period" })
1057
1057
  ] }) }),
1058
1058
  /* @__PURE__ */ jsx13(TableBody, { children: invoices.map((invoice) => {
@@ -1069,7 +1069,7 @@ function InvoicesList({ invoices, onInvoicesChange }) {
1069
1069
  /* @__PURE__ */ jsx13(TableCell, { className: "font-medium", children: invoiceNumber }),
1070
1070
  /* @__PURE__ */ jsx13(TableCell, { className: "text-muted-foreground text-xs", children: date }),
1071
1071
  /* @__PURE__ */ jsx13(TableCell, { children: /* @__PURE__ */ jsx13(InvoiceStatusBadge, { status: invoice.status }) }),
1072
- /* @__PURE__ */ jsx13(TableCell, { className: "text-right font-medium", children: amount }),
1072
+ /* @__PURE__ */ jsx13(TableCell, { className: "text-end font-medium", children: amount }),
1073
1073
  /* @__PURE__ */ jsx13(TableCell, { className: "text-muted-foreground text-xs", children: period })
1074
1074
  ]
1075
1075
  },
@@ -1430,8 +1430,8 @@ function SubscriptionsList({ subscriptions, onSubscriptionsChange, onChangePlan
1430
1430
  /* @__PURE__ */ jsx18(TableHead, { children: "Status" }),
1431
1431
  /* @__PURE__ */ jsx18(TableHead, { children: "Plan" }),
1432
1432
  /* @__PURE__ */ jsx18(TableHead, { children: "Period" }),
1433
- /* @__PURE__ */ jsx18(TableHead, { className: "text-right", children: "Amount" }),
1434
- /* @__PURE__ */ jsx18(TableHead, { className: "text-right", children: "Actions" })
1433
+ /* @__PURE__ */ jsx18(TableHead, { className: "text-end", children: "Amount" }),
1434
+ /* @__PURE__ */ jsx18(TableHead, { className: "text-end", children: "Actions" })
1435
1435
  ] }) }),
1436
1436
  /* @__PURE__ */ jsx18(TableBody, { children: subscriptions.map((subscription) => {
1437
1437
  const price = subscription.price;
@@ -1452,8 +1452,8 @@ function SubscriptionsList({ subscriptions, onSubscriptionsChange, onChangePlan
1452
1452
  ) }),
1453
1453
  /* @__PURE__ */ jsx18(TableCell, { className: "font-medium", children: formatPlanName3(price) }),
1454
1454
  /* @__PURE__ */ jsx18(TableCell, { className: "text-muted-foreground text-sm", children: period }),
1455
- /* @__PURE__ */ jsx18(TableCell, { className: "text-right font-medium", children: amount }),
1456
- /* @__PURE__ */ jsx18(TableCell, { className: "text-right", children: (subscription.status === "active" /* ACTIVE */ || subscription.status === "trialing" /* TRIALING */) && onChangePlan && /* @__PURE__ */ jsx18(
1455
+ /* @__PURE__ */ jsx18(TableCell, { className: "text-end font-medium", children: amount }),
1456
+ /* @__PURE__ */ jsx18(TableCell, { className: "text-end", children: (subscription.status === "active" /* ACTIVE */ || subscription.status === "trialing" /* TRIALING */) && onChangePlan && /* @__PURE__ */ jsx18(
1457
1457
  Button,
1458
1458
  {
1459
1459
  size: "sm",
@@ -1603,12 +1603,12 @@ function PricingCard({
1603
1603
  isLoading && "pointer-events-none"
1604
1604
  ),
1605
1605
  children: [
1606
- isCurrentPlan && /* @__PURE__ */ jsx21(Badge, { variant: "secondary", className: "absolute top-2 right-2", children: "Current" }),
1606
+ isCurrentPlan && /* @__PURE__ */ jsx21(Badge, { variant: "secondary", className: "absolute top-2 end-2", children: "Current" }),
1607
1607
  /* @__PURE__ */ jsx21(CardHeader, { className: "pb-2", children: /* @__PURE__ */ jsx21("h3", { className: "text-sm font-medium", children: description }) }),
1608
1608
  /* @__PURE__ */ jsxs18(CardContent, { className: "pb-4 grow", children: [
1609
1609
  /* @__PURE__ */ jsxs18("div", { className: "mb-4", children: [
1610
1610
  /* @__PURE__ */ jsx21("span", { className: "text-3xl font-bold", children: formattedPrice }),
1611
- /* @__PURE__ */ jsx21("span", { className: "text-muted-foreground ml-1", children: interval })
1611
+ /* @__PURE__ */ jsx21("span", { className: "text-muted-foreground ms-1", children: interval })
1612
1612
  ] }),
1613
1613
  features.length > 0 && /* @__PURE__ */ jsx21("ul", { className: "space-y-2", children: features.map((feature, index) => /* @__PURE__ */ jsxs18("li", { className: "flex items-start gap-2", children: [
1614
1614
  /* @__PURE__ */ jsx21(Check, { className: "text-success mt-0.5 h-4 w-4 shrink-0" }),
@@ -1809,7 +1809,7 @@ function SubscriptionConfirmation({ price, isLoading, onConfirm, onCancel }) {
1809
1809
  /* @__PURE__ */ jsxs22("div", { className: "flex justify-end gap-3 pt-2 border-t border-accent/30", children: [
1810
1810
  /* @__PURE__ */ jsx25(Button, { variant: "outline", onClick: onCancel, disabled: isLoading, children: "Cancel" }),
1811
1811
  /* @__PURE__ */ jsx25(Button, { onClick: onConfirm, disabled: isLoading, children: isLoading ? /* @__PURE__ */ jsxs22(Fragment5, { children: [
1812
- /* @__PURE__ */ jsx25(Loader2, { className: "h-4 w-4 animate-spin mr-2" }),
1812
+ /* @__PURE__ */ jsx25(Loader2, { className: "h-4 w-4 animate-spin me-2" }),
1813
1813
  "Processing..."
1814
1814
  ] }) : "Subscribe" })
1815
1815
  ] })
@@ -2304,7 +2304,7 @@ function WizardStepReview({
2304
2304
  /* @__PURE__ */ jsx29("p", { className: "font-medium", children: selectedPrice.product?.name }),
2305
2305
  selectedPrice.nickname && /* @__PURE__ */ jsx29("p", { className: "text-sm text-muted-foreground", children: selectedPrice.nickname })
2306
2306
  ] }),
2307
- /* @__PURE__ */ jsxs26("div", { className: "text-right", children: [
2307
+ /* @__PURE__ */ jsxs26("div", { className: "text-end", children: [
2308
2308
  discountedPrice !== null ? /* @__PURE__ */ jsxs26(Fragment6, { children: [
2309
2309
  /* @__PURE__ */ jsx29("p", { className: "text-sm text-muted-foreground line-through", children: formatCurrency(selectedPrice.unitAmount || 0, selectedPrice.currency) }),
2310
2310
  /* @__PURE__ */ jsx29("p", { className: "text-success text-lg font-semibold", children: formatCurrency(discountedPrice, selectedPrice.currency) }),
@@ -2324,7 +2324,7 @@ function WizardStepReview({
2324
2324
  /* @__PURE__ */ jsxs26("div", { className: "flex justify-between text-sm", children: [
2325
2325
  /* @__PURE__ */ jsx29("span", { className: `${isTrialUpgrade ? "text-warning" : "text-muted-foreground"}`, children: isTrialUpgrade ? "Amount to charge now:" : "Amount due now:" }),
2326
2326
  /* @__PURE__ */ jsx29("span", { className: `font-medium ${isTrialUpgrade ? "text-warning" : "text-foreground"}`, children: discountedImmediateCharge !== null ? /* @__PURE__ */ jsxs26(Fragment6, { children: [
2327
- /* @__PURE__ */ jsx29("span", { className: "line-through text-muted-foreground mr-2", children: formatCurrency(prorationPreview.immediateCharge, prorationPreview.currency) }),
2327
+ /* @__PURE__ */ jsx29("span", { className: "line-through text-muted-foreground me-2", children: formatCurrency(prorationPreview.immediateCharge, prorationPreview.currency) }),
2328
2328
  /* @__PURE__ */ jsx29("span", { className: "text-success", children: formatCurrency(discountedImmediateCharge, prorationPreview.currency) })
2329
2329
  ] }) : formatCurrency(prorationPreview.immediateCharge, prorationPreview.currency) })
2330
2330
  ] })
@@ -2637,7 +2637,7 @@ function UsageHistoryTable({ usageRecords }) {
2637
2637
  /* @__PURE__ */ jsx35(TableHeader, { className: "bg-muted", children: /* @__PURE__ */ jsxs31(TableRow, { children: [
2638
2638
  /* @__PURE__ */ jsx35(TableHead, { children: "Date & Time" }),
2639
2639
  /* @__PURE__ */ jsx35(TableHead, { children: "Meter Event" }),
2640
- /* @__PURE__ */ jsx35(TableHead, { className: "text-right", children: "Quantity" }),
2640
+ /* @__PURE__ */ jsx35(TableHead, { className: "text-end", children: "Quantity" }),
2641
2641
  /* @__PURE__ */ jsx35(TableHead, { children: "Event ID" })
2642
2642
  ] }) }),
2643
2643
  /* @__PURE__ */ jsx35(TableBody, { children: usageRecords.map((record) => {
@@ -2646,7 +2646,7 @@ function UsageHistoryTable({ usageRecords }) {
2646
2646
  return /* @__PURE__ */ jsxs31(TableRow, { children: [
2647
2647
  /* @__PURE__ */ jsx35(TableCell, { className: "font-medium", children: dateTime }),
2648
2648
  /* @__PURE__ */ jsx35(TableCell, { className: "text-muted-foreground", children: record.meterEventName }),
2649
- /* @__PURE__ */ jsx35(TableCell, { className: "text-right font-medium", children: quantity }),
2649
+ /* @__PURE__ */ jsx35(TableCell, { className: "text-end font-medium", children: quantity }),
2650
2650
  /* @__PURE__ */ jsx35(TableCell, { className: "text-muted-foreground text-sm tabular-nums", children: record.stripeEventId })
2651
2651
  ] }, record.id);
2652
2652
  }) })
@@ -2928,7 +2928,7 @@ function BillingDashboardContainer() {
2928
2928
  /* @__PURE__ */ jsx38(CardDescription, { children: "Your company doesn't have a billing account yet. Set one up to manage subscriptions, payment methods, and view invoices." })
2929
2929
  ] }),
2930
2930
  /* @__PURE__ */ jsx38(CardContent, { className: "flex justify-center pb-8", children: /* @__PURE__ */ jsx38(Button, { onClick: handleCreateCustomer, disabled: creatingCustomer, size: "lg", children: creatingCustomer ? /* @__PURE__ */ jsxs34(Fragment7, { children: [
2931
- /* @__PURE__ */ jsx38(Loader23, { className: "mr-2 h-4 w-4 animate-spin" }),
2931
+ /* @__PURE__ */ jsx38(Loader23, { className: "me-2 h-4 w-4 animate-spin" }),
2932
2932
  "Setting up..."
2933
2933
  ] }) : "Set Up Billing Account" }) }),
2934
2934
  errors.customer && /* @__PURE__ */ jsx38(CardContent, { className: "pt-0", children: /* @__PURE__ */ jsx38("p", { className: "text-center text-destructive text-xs/relaxed", children: errors.customer }) })