1
0
mirror of https://github.com/bitwarden/browser synced 2026-01-06 18:43:25 +00:00
Commit Graph

396 Commits

Author SHA1 Message Date
Alex Morask
f53f3516b7 [PM-27838] Split out self-hosted premium component (#17232)
* Split self-hosted premium component out to avoid pricing conflicts

* Claude's feedback

* Remove unnecessary isSelfHost check
2025-11-05 13:13:59 -06:00
Alex Morask
f76d2f36e6 [PM-27808] Save modal dismissal to state (#17227)
* Prevent modal from opening twice for same user

* Claude's feedback
2025-11-05 12:04:49 -06:00
rr-bw
5c33b2dc89 (Billing) [PM-27562] Create PremiumInterestStateService (#17139)
Creates a `PremiumInterestStateService` that manages state which conveys whether or not a user intends to setup a premium subscription. Implemented in Web only. No-op for other clients.

This will apply for users who began the registration process on https://bitwarden.com/go/start-premium/, which is a marketing page designed to streamline users who intend to setup a premium subscription after registration.
2025-11-03 14:42:21 -08:00
Vicki League
cba47e4abd Update font to inter feature branch (#16782) 2025-11-03 15:17:07 -05:00
Kyle Denney
e1e3966cc2 [PM-23713] premium badge interaction (#16911)
* feature flag

* new upgrade dialog component and moved pricing service into libs

first draft

* moved pricing service to libs/common

removed toast service from the pricing service and implemented error handling in calling components

# Conflicts:
#	apps/web/src/app/billing/individual/upgrade/upgrade-payment/upgrade-payment.component.ts

* moved new premium upgrade dialog component to libs/angular

* badge opens new dialog in browser extension

* adds new dialog to desktop and fixes tests

* updates send dropdown to use premium prompt service

* styling and copy updates

* implement in web and desktop

* unit tests

* converting premium reports to use premium badge, and some cleanup

* fixes issue after merge

* linter errors

* pr feedback

* handle async promise correctly

* full sync after the premium upgrade is complete

* fixing test

* add padding to bottom of card in new dialog

* add support for self hosting

* fixing tests

* fix test

* Update has-premium.guard.ts

* pr feedback

* fix build and pr feedback

* fix build

* prettier

* fixing stories and making badge line height consistent

* pr feedback

* updated upgrade dialog to no longer use pricing card

* fixing incorrect markup and removing unused bits

* formatting

* pr feedback

removing unused message keys and adding back in code that was erroneously removed

* change detection

* close dialog when error

* claude pr feedback
2025-11-03 10:16:01 -06:00
cyprain-okeke
e41680df41 [PM 26691] [Fix: Remove dollar amount from total section when redeeming free families for enterprise (#16887)
* Resolve the dollar amount issue

* Resolve the non addition of storage amount

* Resolve the estimate tax amount

* Fix the improper tax calculation

* resolv ethe duplicate code

* Added changes to apply the discount only for acceptingSponsorship = true
2025-10-30 11:35:34 +01:00
cyprain-okeke
d567530e15 resolve the button name (#17094) 2025-10-29 16:02:59 +01:00
Alex Morask
460d66d624 Remove FF: pm-17772-admin-initiated-sponsorships (#16873)
* Remove FF

* Fix test
2025-10-29 07:41:35 -05:00
Stephon Brown
bf66b5ac19 -[PM-27123] Update Signals and Update Estimated Tax and Credit Logic (#17055)
* billing(fix): update signals and update estimated tax and credit logic

* fix(billing): update with claude feedback and expose total observable
2025-10-28 15:25:07 +00:00
Stephon Brown
6f34b6098a [PM-27252] Upgrade Dialog Should not Show in Self Host (#17051)
* fix(billing): update and refactor observable logic

* tests(billing): add additional expects for dialog

* fix(billing): update for claude feedback

* tests(billing): update test conditions and comments
2025-10-28 14:51:30 +00:00
Thomas Avery
bd89c0ce6d [PM-23628] Require userId for fetching provider keys (#16993)
* remove getProviderKey and expose providerKeys$

* update consumers
2025-10-27 11:04:17 -05:00
Kyle Denney
b335987213 [PM-27267] fix disappearing border from upgrade plan card (#17007) 2025-10-27 10:44:56 -05:00
cyprain-okeke
b9f48d83b2 [PM 25897] Copy and UI Tweaks for Payment Method Component (#16851)
* Implement the Ui changes to align as expected

* Align the Text in card number, expiration date and security code vertically

* Change the Zip to ZIP

* Remove readonly modifier from signal declarations
2025-10-27 13:53:05 +01:00
cyprain-okeke
a6882c36b9 Resolve the redirect to subscription (#17017) 2025-10-27 13:18:08 +01:00
Stephon Brown
7313901a49 [PM-26019] Pre-Launch Payment Dialog (#16859) 2025-10-24 08:48:42 -04:00
cyprain-okeke
2d3712acec [PM-27257]Fix : Remove Welcome to Bitwarden modal for users with any Organization status (#17002)
* Resolve the modal for invited members

* Resolve multiple modal display

* Fix the failing test

* Remove the await
2025-10-24 11:48:05 +01:00
Stephon Brown
2eef32d757 fix(billing): add condition to disable submit button for account credit (#17006) 2025-10-23 17:21:48 -04:00
Oscar Hinton
e3f943364f Billing - Prefer signal & change detection (#16944) 2025-10-23 15:02:01 -05:00
Stephon Brown
c80e8d1d8b [PM-27123] Account Credit not Showing for Premium Upgrade Payment (#16967)
* fix(billing): Add NonTokenizedPaymentMethod type

* fix(billing): Add NonTokenizedPayment type as parameter option

* fix(billing): Update service for account credit payment and add tests

* fix(billing): Add logic to accept account credit and callouts for credit

* fix(billing): Add account credit back to premium component

* fix(billing): update non-tokenizable payment method and payment service

* refactor(billing): update payment component

* fix(billing): update premium subscription request

* fix(billing): update billing html component account credit logic
2025-10-23 19:05:50 +00:00
cyprain-okeke
660e452ba1 [PM-25858]Organization warnings endpoint should not be called from self-hosted instances (#16781)
* ensure that getWarnings from server is not called for selfhost

* Refactor the code

* move the selfhost check to getWarning message

* Fix the failing test
2025-10-23 10:59:57 -05:00
Alex Morask
bb07365ea5 await call that creates Customer in case we're upgrading from free (#16999) 2025-10-23 10:34:16 -05:00
Brandon Treston
0691583b50 [PM-23133] refactor members component (#16703)
* WIP: added new services, refactor members to use billing service and member action service

* replace dialog logic and user logic with service implementations

* WIP

* wip add tests

* add tests, continue refactoring

* clean up

* move BillingConstraintService to billing ownership

* fix import

* fix seat count not updating if feature flag is disabled

* refactor billingMetadata, clean up
2025-10-23 11:16:17 -04:00
Alex Morask
7321e3132b [PM-26793] Fetch premium plan from pricing service (#16858)
* Fetch premium plan from pricing service

* Resolve Claude feedback
2025-10-23 09:13:26 -05:00
Kyle Denney
7804aa118c [PM-27206] fix: redirect from premium page if user has premium (#16990) 2025-10-22 17:45:51 -05:00
Alex Morask
5b2682ff21 [PM-26356] Remove client-side pre-consolidated billing code (#16707)
* Remove legacy provider files

* Removing index files to make file re-org easier

* Move manage-clients.component and associated API invocation to AC

* Move add-existing-organization-dialog.component to AC

* Move manage-client-name-dialog.component and associated API call to AC

* Move misc clients files to AC

* Move create-client-dialog.component and associated API call to AC

* Move manage-client-subscription-dialog.component to AC

* Update provider-layout.component

* Cleanup

* Fix linting
2025-10-21 14:15:29 -05:00
Kyle Denney
1794803deb [PM-24032] upgrade nav button updates (#16933)
* [PM-24032] upgrade nav button post-upgrade action

* fixing broken stories

* added component tests

* new behavior for the nav button when self hosted

* fix stories
2025-10-21 11:18:15 -05:00
cyprain-okeke
f1340c67da [PM-27050] Fix : Cannot upload self-hosted license on new Premium page (#16919)
* Fix the isselfhost bug

* Resolve the self-host issue
2025-10-21 15:46:15 +01:00
Stephon Brown
9b2fbdba1c [PM-26947] Fix Billing Address Defect (#16872)
* fix(billing): Add Billing Address component

* fix(billing): Update tax refresh logic and swap billing address component

* fix(billing): Fix headers

* fix(billing): Do not show bank payment option for premium upgrade
2025-10-16 12:08:19 -04:00
cyprain-okeke
75182926d4 [PM-24033]Implement Subscription Settings UI with Premium and Families Cards (#16822)
* Add initial changes for thenew premium design

* Add the messages

* Add the new dialog modal

* Resolve the flag issue

* Added changes for redirect

* Fix the unitest errors

* Resolve the badge issue

* refactor the code base pr comments
2025-10-15 13:31:10 -05:00
Kyle Denney
e65d572401 [PM-24032] - adds a new upgrade plan button to side nav (#16687)
* feat(billing): add required messages

* feat(billing): Add upgrade from free account dialog

* feat(billing): Add payment dialog for premium upgrade

* feat(billing): Add Upgrade Payment Service

* feat(billing): Add Upgrade flow service

* feat(billing): Add purchase premium subscription method to client

* fix(billing): allow for nullable taxId for families organizations

* fix(billing): Fix Cart Summary Tests

* temp-fix(billing): add currency pipe to pricing card component

* fix(billing): Fix NX error

This should compile just the library files and not its dependency files which was making it error

* [PM-24032] new premium upgrade button in navigation

* add missing outline none styles to focus state

* update story to use correct background colors. change ring color

* fixing broken stories by mocking services

* updates requested by design and product

* fixing tests

* new icon for premium

* fix: Update any type of private function

* update account dialog

* [PM-24032] updates to premium upgrade nav button

* add margin bottom to prevent button focus outline from being chopped off

* adding missing test

* feat(billing): add upgrade error message

* fix(billing): remove upgrade-flow service

* feat(billing): add account billing client

* fix(billing): Remove method from subscriber-billing client

* fix(billing): rename and update upgrade payment component

* fix(billing): Rename and update upgrade payment service

* fix(billing): Rename and upgrade upgrade account component

* fix(billing): Add unified upgrade dialog component

* fix(billing): Update component and service to use new tax service

* fix(billing): Update unified upgrade dialog

* feat(billing): Add feature flag

* feat(billing): Add vault dialog launch logic

* fix(billing): Add stricter validation for payment component

* fix(billing): Update custom dialog close button

* fix(billing): Fix padding in cart summary component

* fix(billing): Update payment method component spacing

* fix(billing): Update Upgrade Payment component spacing

* fix(billing): Update upgrade account component spacing

* fix(billing): Fix accurate typing

* hide continue button when coming from nav upgrade button

* fixing incorrect conflict resolution

* fixing tests

* pr feedback

* removing duplicate icon definition

---------

Co-authored-by: Stephon Brown <sbrown@livefront.com>
Co-authored-by: Bryan Cunningham <bryan.cunningham@me.com>
2025-10-14 10:39:37 -05:00
Kyle Denney
6ee41343a5 [PM-25379] Refactor org metadata (#16759)
* removing unused properties from org metadata

* removing further properties from the response and replacing them with data already available

* [PM-25379] new org metadata service for new endpoint

* don't need strict ignore

* forgot unit tests

* added cache busting to metadata service

not used yet - waiting for a decision on moving a portion of this to AC
2025-10-13 10:49:52 -05:00
Stephon Brown
9c7d794cac Billing/pm 26686/update upgrade account component to be responsive (#16808)
* fix(billing): Update initialization of payment component

* fix(billing): Add more signal validation

* fix(billing): Add responsiveness to upgrade-account component
2025-10-10 12:05:27 -04:00
Alex Morask
78e5e029b6 [PM-26607] Improve premium purchase with account credit experience (#16805)
* Fix account credit submission and show warning when user doesn't have enough credit

* Kyle's feedback

* Whoops
2025-10-09 11:40:13 -05:00
Alex Morask
47134508da [PM-26628] Refresh inactive subscription warning after restarting subscription (#16791)
* Refresh inactive subscription warning after restarting subscription

* Fix tests
2025-10-08 13:14:29 -05:00
Alex Morask
8a88bd767e Re-add account credit as premium payment option (#16783) 2025-10-08 12:35:52 -05:00
Stephon Brown
da8a0104ea Billing/pm 24996/implement upgrade from free dialog (#16470)
* feat(billing): add required messages

* feat(billing): Add upgrade from free account dialog

* feat(billing): Add payment dialog for premium upgrade

* feat(billing): Add Upgrade Payment Service

* feat(billing): Add Upgrade flow service

* feat(billing): Add purchase premium subscription method to client

* fix(billing): allow for nullable taxId for families organizations

* fix(billing): Fix Cart Summary Tests

* temp-fix(billing): add currency pipe to pricing card component

* fix(billing): Fix NX error

This should compile just the library files and not its dependency files which was making it error

* fix: Update any type of private function

* update account dialog

* feat(billing): add upgrade error message

* fix(billing): remove upgrade-flow service

* feat(billing): add account billing client

* fix(billing): Remove method from subscriber-billing client

* fix(billing): rename and update upgrade payment component

* fix(billing): Rename and update upgrade payment service

* fix(billing): Rename and upgrade upgrade account component

* fix(billing): Add unified upgrade dialog component

* fix(billing): Update component and service to use new tax service

* fix(billing): Update unified upgrade dialog

* feat(billing): Add feature flag

* feat(billing): Add vault dialog launch logic

* fix(billing): Add stricter validation for payment component

* fix(billing): Update custom dialog close button

* fix(billing): Fix padding in cart summary component

* fix(billing): Update payment method component spacing

* fix(billing): Update Upgrade Payment component spacing

* fix(billing): Update upgrade account component spacing

* fix(billing): Fix accurate typing

* feat(billing): adds unified upgrade prompt service

* fix(billing): Update unified dialog to account for skipped steps

* fix(billing): Use upgradePromptService for vault

* fix(billing): Format

* fix(billing): Fix premium check
2025-10-08 10:20:15 -04:00
Oscar Hinton
8cf379d997 [PM-22305] Upgrade typescript to 5.8 (#15044)
Upgrade to the latest supported typescript version in Angular.

Resolved TS errors by:
  - adding `: any` which is what the compiler previously implied and now warns about.
  - adding `toJSON` to satisfy requirement.
2025-10-06 12:39:40 -04:00
Alex Morask
7b94d6ab2b [PM-18717] Fix multiple organization situation for Free Families Policy sponsorship (#16611)
* Resolve multiple org situation

* Fix multi org policy mismatch issue
2025-10-01 10:28:47 -05:00
Alex Morask
d9d8050998 [PM-25463] Work towards complete usage of Payments domain (#16532)
* Use payment domain

* Fixing lint and test issue

* Fix organization plans tax issue

* PM-26297: Use existing billing address for tax calculation if it exists

* PM-26344: Check existing payment method on submit
2025-10-01 10:26:47 -05:00
Kyle Denney
c796e9514e [PM-25029] new pricing service (#16473)
* [PM-25029] first draft of pricing service

* [PM-25029] pricing service, getting closer

* [PM-25029] pricing service and tests finished

* removing unused translation

* pr feedback

* new test names to reflect change away from monthly calculation
2025-09-22 15:01:46 -05:00
Rui Tomé
b455cb5986 [PM-24146] Remove stateProvider.activeUserId from ProviderService (#16258)
* Refactor provider service calls to include userId parameter

- Updated multiple components and services to pass userId when fetching provider data.
- Adjusted the ProviderService interface to require userId for get, get$, and getAll methods.
- Ensured consistent handling of userId across various components, enhancing data retrieval based on active user context.

* Remove deprecated type safety comments and use the getById utility for fetching providers.

* Update ProviderService methods to return undefined for non-existent providers

- Modified the return types of get$ and get methods in ProviderService to allow for undefined values, enhancing type safety.
- Adjusted the providers$ method to return only defined Provider arrays, ensuring consistent handling of provider data.

* Enhance provider permissions guard tests to include userId parameter

- Updated test cases in provider-permissions.guard.spec.ts to pass userId when calling ProviderService methods.
- Mocked AccountService to provide active account details for improved test coverage.
- Ensured consistent handling of userId across all relevant test scenarios.

* remove promise based api's from provider service, continue refactor

* cleanup observable logic

* cleanup

---------

Co-authored-by: Brandon <btreston@bitwarden.com>
2025-09-22 11:06:28 -04:00
Alex Morask
d8339f0196 [PM-23513] Complete usage of OrganizationWarningsService (#16272)
* Use OrganizationWarningsService in AC VaultComponent

* Use OrganizationWarningsService in OrgSwitcherComponent

* Use OrganizationWarningsService in VaultFilterComponent

* Use OrganizationWarningsService in VaultComponent

* Use OrganizationWarningsService in SM OverviewComponent

* Remove TrialFlowService from unused codepaths

* Remove TrialFlowService

* Refresh free trial warning on standard payment method update

* Fix lint errors

* Fix lint errors

* Remove FF

* Fix free trial banner on deprecated ac vault component
2025-09-19 11:26:48 -05:00
Will Martin
cf929edb9c [Cl-726] layout spacing updates (#15979) 2025-09-19 08:32:30 -07:00
Vicki League
926f587ea2 [CL-581] Update svgs to new designs and make responsive (#16219) 2025-09-10 17:23:53 -04:00
Alex Morask
4907820383 [PM-24964] Stripe-hosted bank account verification (#16220)
* Implement bank account hosted URL verification with webhook handling notification

* [PM-25491] Create org/provider bank account warning needs to be updated
2025-09-09 12:22:45 -05:00
Brandon Treston
b93602b09e [PM-24412] Make billing api service call in members component non blocking (#16103)
* refactor organization to signal, unblock loading due to api call

* continue refactor WIP

* clean up

* refactor billingMetadata signal to observble

* deffer billing call

* refactor billingMetadata

* cleanup, add comment

* qa bug: add missing param
2025-09-08 09:42:02 -04:00
cyprain-okeke
6cedef5d38 [CL-641][Defect][Web] More spacing defects including self-host environment (#16285)
* Fix the selfhost ui issue

* Fix the text warp

* Add more space with text and button

* Push the upload file button space change

* resolve the space issue
2025-09-05 22:58:04 +05:30
Thomas Avery
a6b7c7f75c [PM-23626] Require userId for makeOrgKey on the key service (#15864)
* Update key service

* Update consumers

* Add unit test coverage for consumer services

* Add unit test coverage for organization-billing service
2025-09-05 09:51:01 -05:00
Stephon Brown
a4fca832f3 [PM-22312] Resolve TS 5.8 errors (#16108)
* refactor: remove ts-strict-ignore and update

* refactor: remove ts-strict-ignore and update

* refactor: simplify if statement

* refactor: remove ts-strict-ignore and update

* refactor: add nullable union for interfaces
2025-09-02 15:15:38 -04:00
Thomas Rittson
4f09ae52ab [PM-25203] Resolve circular dependencies through LooseComponentsModule (#16157)
* Update modules to not import loose-components

Instead they should import their dependencies directly.
Only OssModule imports loose-components.module.ts.

* Remove unused imports and exports
2025-08-27 17:40:32 +05:30