Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
9a00098
feat: skills import, MCP modal updates, wordmark icon, tool-input imp…
waleedlatif1 Mar 25, 2026
2079f69
fix: resolve build error and audit findings from simplify review
waleedlatif1 Mar 25, 2026
942dbf0
fix(scripts): fix docs mismatch and N+1 query in ban-spam-accounts
waleedlatif1 Mar 25, 2026
9362fb0
feat: wire wordmark into sidebar, fix credential selector modal dispatch
waleedlatif1 Mar 25, 2026
5a7e0e5
feat(misc): misc UX/UI improvements
waleedlatif1 Mar 26, 2026
2056d00
more random fixes
waleedlatif1 Mar 26, 2026
9bb6311
more random fixes
waleedlatif1 Mar 26, 2026
427145b
fix: address PR review findings from cursor bugbot
waleedlatif1 Mar 26, 2026
2862163
fix(skills): add ZIP file size guard before extraction
waleedlatif1 Mar 26, 2026
0b49c49
feat(settings-sidebar): show locked upsell items with plan badge
waleedlatif1 Mar 26, 2026
1fd4bdf
fix(settings-sidebar): remove flex-1 from label span to fix text cent…
waleedlatif1 Mar 26, 2026
bab6311
feat(settings-sidebar): remove team gate from email polling, keep onl…
waleedlatif1 Mar 26, 2026
bdaa4df
feat(subscription): billing details layout and Enterprise card improv…
waleedlatif1 Mar 26, 2026
f97ebee
fix(mothership): prevent lastSeenAt conflict when both title and isUn…
waleedlatif1 Mar 26, 2026
f475ae9
fix(sidebar): prevent double-save race in flyout inline rename on Ent…
waleedlatif1 Mar 26, 2026
7fad0d3
fix(skills): normalize CRLF line endings before parsing SKILL.md fron…
waleedlatif1 Mar 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat(subscription): billing details layout and Enterprise card improv…
…ements

- Move Enterprise plan card into the plan grid (auto-fit columns) instead
  of a separate standalone section below billing details
- Refactor billing details section: remove outer border/background,
  separate each row with top border + padding for cleaner separation
- Update button variants: Add Credits → active, Invoices → active
  • Loading branch information
waleedlatif1 committed Mar 26, 2026
commit bdaa4dfa6c37af651b46dd9e517be6a7375ef71f
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ export function CreditBalance({
{canPurchase && (
<Modal open={isOpen} onOpenChange={handleOpenChange}>
<ModalTrigger asChild>
<Button variant='default' className='h-[32px] text-[13px]'>
<Button variant='active' className='h-[32px] text-[13px]'>
Add Credits
</Button>
</ModalTrigger>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -711,7 +711,7 @@ export function Subscription() {
const showProCard = !isOnMaxTier

return (
<div className='grid grid-cols-2 gap-[10px]'>
<div className='grid grid-cols-[repeat(auto-fit,minmax(260px,1fr))] gap-[10px]'>
{showProCard && (
<CreditPlanCard
name='Pro'
Expand Down Expand Up @@ -801,6 +801,15 @@ export function Subscription() {
features={MAX_PLAN_FEATURES}
isLegacyPlan={isLegacyPlan && isOnMaxTier}
/>
{hasEnterprise && (
<PlanCard
name='Enterprise'
price=''
features={ENTERPRISE_PLAN_FEATURES}
buttonText='Contact'
onButtonClick={() => window.open(CONSTANTS.TYPEFORM_ENTERPRISE_URL, '_blank')}
/>
)}
</div>
)
})()}
Expand Down Expand Up @@ -924,24 +933,26 @@ export function Subscription() {

{/* Billing details section */}
{(subscription.isPaid || (!isLoading && isTeamAdmin)) && (
<div className='flex flex-col gap-[14px] rounded-[6px] border border-[var(--border-1)] bg-[var(--surface-5)] px-[14px] py-[12px]'>
<div className='flex flex-col'>
{subscription.isPaid && permissions.canViewUsageInfo && (
<CreditBalance
balance={subscriptionData?.data?.creditBalance ?? 0}
canPurchase={hasUsablePaidAccess && permissions.canEditUsageLimit}
entityType={
subscription.isTeam || subscription.isEnterprise ? 'organization' : 'user'
}
isLoading={isLoading}
onPurchaseComplete={() => refetchSubscription()}
/>
<div className='py-[2px]'>
<CreditBalance
balance={subscriptionData?.data?.creditBalance ?? 0}
canPurchase={hasUsablePaidAccess && permissions.canEditUsageLimit}
entityType={
subscription.isTeam || subscription.isEnterprise ? 'organization' : 'user'
}
isLoading={isLoading}
onPurchaseComplete={() => refetchSubscription()}
/>
</div>
)}

{subscription.isPaid &&
subscriptionData?.data?.periodEnd &&
!permissions.showTeamMemberView &&
!permissions.isEnterpriseMember && (
<div className='flex items-center justify-between'>
<div className='flex items-center justify-between border-[var(--border-1)] border-t pt-[16px]'>
<Label>{isCancelledAtPeriodEnd ? 'Access Until' : 'Next Billing Date'}</Label>
<span className='text-[13px] text-[var(--text-secondary)]'>
{new Date(subscriptionData.data.periodEnd).toLocaleDateString()}
Expand All @@ -950,16 +961,18 @@ export function Subscription() {
)}

{subscription.isPaid && permissions.canViewUsageInfo && (
<BillingUsageNotificationsToggle />
<div className='border-[var(--border-1)] border-t pt-[16px]'>
<BillingUsageNotificationsToggle />
</div>
)}

{subscription.isPaid &&
!permissions.showTeamMemberView &&
!permissions.isEnterpriseMember && (
<div className='flex items-center justify-between'>
<div className='flex items-center justify-between border-[var(--border-1)] border-t pt-[16px]'>
<Label>Invoices</Label>
<Button
variant='outline'
variant='active'
size='sm'
disabled={openBillingPortal.isPending}
onClick={() => {
Expand Down Expand Up @@ -995,7 +1008,7 @@ export function Subscription() {
)}

{!isLoading && isTeamAdmin && (
<div className='flex items-center justify-between'>
<div className='flex items-center justify-between border-[var(--border-1)] border-t pt-[16px]'>
<div className='flex items-center gap-[6px]'>
<Label htmlFor='billed-account'>Billed Account</Label>
<Tooltip.Root>
Expand Down Expand Up @@ -1040,18 +1053,6 @@ export function Subscription() {
)}
</div>
)}

{/* Enterprise */}
{hasEnterprise && (
<PlanCard
name='Enterprise'
price=''
features={ENTERPRISE_PLAN_FEATURES}
buttonText='Contact'
onButtonClick={() => window.open(CONSTANTS.TYPEFORM_ENTERPRISE_URL, '_blank')}
inlineButton
/>
)}
</div>
)
}
Expand Down
Loading