diff --git a/apps/studio/components/interfaces/Auth/MfaAuthSettingsForm/MfaAuthSettingsForm.tsx b/apps/studio/components/interfaces/Auth/MfaAuthSettingsForm/MfaAuthSettingsForm.tsx index 6c94c0c953d..4bcd42784f5 100644 --- a/apps/studio/components/interfaces/Auth/MfaAuthSettingsForm/MfaAuthSettingsForm.tsx +++ b/apps/studio/components/interfaces/Auth/MfaAuthSettingsForm/MfaAuthSettingsForm.tsx @@ -39,6 +39,7 @@ import { } from 'ui-patterns/PageSection' import * as z from 'zod' +import { TaxDisclaimer } from '@/components/interfaces/Billing/TaxDisclaimer' import AlertError from '@/components/ui/AlertError' import NoPermission from '@/components/ui/NoPermission' import { UpgradeToPro } from '@/components/ui/UpgradeToPro' @@ -610,6 +611,7 @@ export const MfaAuthSettingsForm = () => { Billing will start immediately upon enabling this add-on, regardless of whether your customers are using SMS MFA.

+ diff --git a/apps/studio/components/interfaces/Billing/TaxDisclaimer.tsx b/apps/studio/components/interfaces/Billing/TaxDisclaimer.tsx new file mode 100644 index 00000000000..4f436f2ff88 --- /dev/null +++ b/apps/studio/components/interfaces/Billing/TaxDisclaimer.tsx @@ -0,0 +1,13 @@ +import { cn } from 'ui' + +interface TaxDisclaimerProps { + className?: string +} + +export const TaxDisclaimer = ({ className }: TaxDisclaimerProps) => { + return ( +

+ Prices shown do not include applicable taxes. +

+ ) +} diff --git a/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx b/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx index 53c987fa0ce..c909450e4eb 100644 --- a/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx +++ b/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx @@ -40,6 +40,7 @@ import { estimateDiskCost, estimateRestoreTime, } from './BranchManagement.utils' +import { TaxDisclaimer } from '@/components/interfaces/Billing/TaxDisclaimer' import { BranchingPITRNotice } from '@/components/layouts/AppLayout/EnableBranchingButton/BranchingPITRNotice' import AlertError from '@/components/ui/AlertError' import { ButtonTooltip } from '@/components/ui/ButtonTooltip' @@ -605,6 +606,7 @@ export const CreateBranchModal = () => { {!hasPitrEnabled && } + diff --git a/apps/studio/components/interfaces/Database/Replication/DestinationPanel/ReadReplicaForm/ReadReplicaPricingDialog.tsx b/apps/studio/components/interfaces/Database/Replication/DestinationPanel/ReadReplicaForm/ReadReplicaPricingDialog.tsx index 5523a42c996..4b47819f797 100644 --- a/apps/studio/components/interfaces/Database/Replication/DestinationPanel/ReadReplicaForm/ReadReplicaPricingDialog.tsx +++ b/apps/studio/components/interfaces/Database/Replication/DestinationPanel/ReadReplicaForm/ReadReplicaPricingDialog.tsx @@ -17,6 +17,7 @@ import { } from 'ui' import { useGetReplicaCost } from './useGetReplicaCost' +import { TaxDisclaimer } from '@/components/interfaces/Billing/TaxDisclaimer' import { DocsButton } from '@/components/ui/DocsButton' import { InlineLinkClassName } from '@/components/ui/InlineLink' import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject' @@ -104,6 +105,7 @@ export const ReadReplicaPricingDialog = () => { .

)} + diff --git a/apps/studio/components/interfaces/DiskManagement/DiskManagementReviewAndSubmitDialog/DiskManagementReviewAndSubmitDialog.tsx b/apps/studio/components/interfaces/DiskManagement/DiskManagementReviewAndSubmitDialog/DiskManagementReviewAndSubmitDialog.tsx index dadd76bfd5a..ee4b35c1493 100644 --- a/apps/studio/components/interfaces/DiskManagement/DiskManagementReviewAndSubmitDialog/DiskManagementReviewAndSubmitDialog.tsx +++ b/apps/studio/components/interfaces/DiskManagement/DiskManagementReviewAndSubmitDialog/DiskManagementReviewAndSubmitDialog.tsx @@ -27,6 +27,7 @@ import { ValueChange, } from './DiskManagementReviewAndSubmitDialog.components' import { useDiskManagementReviewChanges } from './DiskManagementReviewAndSubmitDialog.hooks' +import { TaxDisclaimer } from '@/components/interfaces/Billing/TaxDisclaimer' import { ButtonTooltip } from '@/components/ui/ButtonTooltip' import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject' @@ -154,6 +155,7 @@ export const DiskManagementReviewAndSubmitDialog = ({ + )} diff --git a/apps/studio/components/interfaces/LogDrains/LogDrainDestinationSheetForm.tsx b/apps/studio/components/interfaces/LogDrains/LogDrainDestinationSheetForm.tsx index 0d57c917f6f..b28dec28fa8 100644 --- a/apps/studio/components/interfaces/LogDrains/LogDrainDestinationSheetForm.tsx +++ b/apps/studio/components/interfaces/LogDrains/LogDrainDestinationSheetForm.tsx @@ -50,6 +50,7 @@ import { logDrainHeaderEntriesSchema, type LogDrainHeaderRow, } from './LogDrains.utils' +import { TaxDisclaimer } from '@/components/interfaces/Billing/TaxDisclaimer' import { LogDrainData, useLogDrainsQuery } from '@/data/log-drains/log-drains-query' import { DOCS_URL } from '@/lib/constants' import { useTrack } from '@/lib/telemetry/track' @@ -859,16 +860,19 @@ export function LogDrainDestinationSheetForm({ - - See full pricing breakdown{' '} - - here - - +
+ + See full pricing breakdown{' '} + + here + + + +
diff --git a/apps/studio/components/interfaces/Settings/Addons/CustomDomainSidePanel.tsx b/apps/studio/components/interfaces/Settings/Addons/CustomDomainSidePanel.tsx index 696e40af7fe..e409e26a636 100644 --- a/apps/studio/components/interfaces/Settings/Addons/CustomDomainSidePanel.tsx +++ b/apps/studio/components/interfaces/Settings/Addons/CustomDomainSidePanel.tsx @@ -14,6 +14,7 @@ import { SidePanel, } from 'ui' +import { TaxDisclaimer } from '@/components/interfaces/Billing/TaxDisclaimer' import { DocsButton } from '@/components/ui/DocsButton' import { UpgradeToPro } from '@/components/ui/UpgradeToPro' import { useProjectAddonRemoveMutation } from '@/data/subscriptions/project-addon-remove-mutation' @@ -206,6 +207,7 @@ const CustomDomainSidePanel = () => { /> ))} + {hasChanges && selectedOption !== 'cd_none' && ( diff --git a/apps/studio/components/interfaces/Settings/Addons/IPv4SidePanel.tsx b/apps/studio/components/interfaces/Settings/Addons/IPv4SidePanel.tsx index 3bbff8cb2db..431f5aed705 100644 --- a/apps/studio/components/interfaces/Settings/Addons/IPv4SidePanel.tsx +++ b/apps/studio/components/interfaces/Settings/Addons/IPv4SidePanel.tsx @@ -5,6 +5,7 @@ import { toast } from 'sonner' import { cn, RadioGroup_Shadcn_, RadioGroupLargeItem_Shadcn_, SidePanel } from 'ui' import { Admonition } from 'ui-patterns' +import { TaxDisclaimer } from '@/components/interfaces/Billing/TaxDisclaimer' import { DocsButton } from '@/components/ui/DocsButton' import { InlineLink } from '@/components/ui/InlineLink' import { UpgradeToPro } from '@/components/ui/UpgradeToPro' @@ -198,6 +199,7 @@ const IPv4SidePanel = () => { ))} + )} diff --git a/apps/studio/components/interfaces/Settings/Addons/PITRSidePanel.tsx b/apps/studio/components/interfaces/Settings/Addons/PITRSidePanel.tsx index ab24e498e23..2fe34c44d55 100644 --- a/apps/studio/components/interfaces/Settings/Addons/PITRSidePanel.tsx +++ b/apps/studio/components/interfaces/Settings/Addons/PITRSidePanel.tsx @@ -16,6 +16,7 @@ import { } from 'ui' import { subscriptionHasHipaaAddon } from '@/components/interfaces/Billing/Subscription/Subscription.utils' +import { TaxDisclaimer } from '@/components/interfaces/Billing/TaxDisclaimer' import { SupportLink } from '@/components/interfaces/Support/SupportLink' import { DocsButton } from '@/components/ui/DocsButton' import { UpgradeToPro } from '@/components/ui/UpgradeToPro' @@ -318,6 +319,7 @@ const PITRSidePanel = () => { /> ))} + )}