1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-31 07:33:23 +00:00
Commit Graph

566 Commits

Author SHA1 Message Date
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
SmithThe4th
4d00d0caa5 Fixed edit menu on admin console and removed favorite item on the admin console (#16982) 2025-10-29 10:31:21 -04:00
Mick Letofsky
11d3f5247c Refactor canClone method to use CipherAuthorizationService (#16849) 2025-10-28 19:00:56 +01:00
Oscar Hinton
af6e19335d Vault - Prefer signal & change detection (#16947) 2025-10-27 11:13:11 -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
Brandon Treston
67ba1b83ea [PM-26369] [PM-26362] Implement Auto Confirm Policy and Multi Step Dialog Workflow (#16831)
* implement multi step dialog for auto confirm

* wip

* implement extension messgae for auto confirm

* expand layout logic for header and footer, implement function to open extension

* add back missing test

* refactor test

* clean up

* clean up

* clean up

* fix policy step increment

* clean up

* Ac/pm 26369 add auto confirm policy to client domain models (#16830)

* refactor BasePoliicyEditDefinition

* fix circular dep

* wip

* wip

* fix policy submission and refreshing

* add svg, copy, and finish layout

* clean up

* cleanup

* cleanup, fix SVG

* design review changes

* fix copy

* fix padding

* address organization plan feature FIXME

* fix test

* remove placeholder URL

* prevent duplicate messages
2025-10-22 16:11:33 -04:00
Nick Krantz
2179cb6848 prompt for master password first before confirming archive (#16892) 2025-10-22 08:43:03 -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
Vicki League
d2c6757626 [CL-850] Remove anon layout default icon and require either icon or no icon (#16433) 2025-10-20 14:07:48 -04:00
SmithThe4th
7c972906aa [PM-10128] [BEEEP] Add Right-Click Menu Options to Vault (#10954)
* Added right click functionality on cipher row

* Updated menu directive to position menu option on mouse event location

* Updated menu directive to reopen menu option on new mouse event location and close previously opened menu-option

* removed preventdefault call

* Added new events for favorite and edit cipher

* Added new menu options favorite, edit cipher

Added new copy options for the other cipher types

Simplified the copy by using the copy cipher field directive

* Listen to new events

* Refactored parameter to be MouseEvent

* Added locales

* Remove the backdrop from `MenuTriggerForDirective`

* Handle the Angular overlay's outside pointer events

* Cleaned up cipher row component as copy functions and disable menu functions would not be needed anymore

* Fixed bug with right clicking on a row

* Add right click to collections

* Disable backdrop on right click

* Fixed bug where dvivided didn't show for secure notes

* Added comments to enable to disable context menu

* Removed conditionals

* Removed preferences setting to enable to disable setting

* Removed setting from right click listener

* improve context menu positioning to prevent viewport clipping

* Keep icon consisten when favorite or not

* fixed prettier issues

* removed duplicate translation keys

* Fix favorite status not persisting by toggling in handleFavoriteEvent

* Addressed claude comments

* Added comment to variable

---------

Co-authored-by: Addison Beck <github@addisonbeck.com>
2025-10-20 09:41:50 -04:00
Nick Krantz
c782de57a3 use optional chaining for possibly undefined cipher when selecting only collections (#16886) 2025-10-15 09:49:24 -05:00
Jason Ng
98af7a13ed [PM-19152] Archive in Web (#16686)
* archive and unarchive an individual item

* bulk archive and unachive

* updates to text strings for archive empty state and tooltips

* update translation keys to have an archive verb and noun differentiation

* if premium member loses premium and has archive items. apply filter changes, and item more option changes

* updating unArchive text

* unarchive an archived item on edit if user loses premium

* updates for unarchive btn, refactor archive flag for less churn

* add services to cipher form stories

* add refresh to archive calls in vault, update bulk archive copy

* Do not show archive ability for deleted items

* add archive check for login menu actions

* remove assign to collections for archive filter

* update bulk success message

* add error handling for archive methods

* fix null reference check

* add unarchive icon

---------

Co-authored-by: Nick Krantz <nick@livefront.com>
2025-10-14 16:41:05 -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
cyprain-okeke
2c08af2b42 [PM-25166]Hide and Show Old Premium Banner Depending On the Feature Flag (#16684)
* Code to hide and show the premium banner

* add the right flag name

* Removed unused flag

* Remove the unused feature flag

* Resolve the flag name issue
2025-10-13 17:01:16 +01:00
Jordan Aasen
fb2bd014c1 fix size of spinner in web vault filters (#16754) 2025-10-08 14:15:23 -07: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
Nick Krantz
6d98360b04 remove unused view component (#16582) 2025-10-06 11:42:21 -05: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
Jordan Aasen
7a38b22667 [PM-24951] - update "My Items" icon to bwi-user (#16674)
* update "My Items" icon to bwi-user

* fix tests

* revert changse to reports. fix assign collections.

* revert remaining changes to reports
2025-10-02 14:39:13 -07:00
Jordan Aasen
688647b2c6 [PM-25216] - handle extension already installed on new user creation (#16650)
* handle extension already installed on new user creation

* fix tests

* remove comment
2025-10-01 13:21:11 -07:00
Konrad
420b26776b [PM-26325] Archive string - separate noun and verb (#16652)
* Separation of noun and verb
2025-10-01 15:36:02 -04: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
Holly
0bd098dd8f [PM-19907] updated empty state messages for web (#16283)
* updated empty state icons and copy for web vault
2025-09-30 14:55:07 -04:00
Nick Krantz
727689d827 [PM-24534] Archive via CLI (#16502)
* refactor `canInteract` into a component level usage.

- The default service is going to be used in the CLI which won't make use of the UI-related aspects

* all nested entities to be imported from the vault

* initial add of archive command to the cli

* add archive to oss serve

* check for deleted cipher when attempting to archive

* add searchability/list functionality for archived ciphers

* restore an archived cipher

* unarchive a cipher when a user is editing it and has lost their premium status

* add missing feature flags

* re-export only needed services from the vault

* add needed await

* add prompt when applicable for editing an archived cipher

* move cipher archive service into `common/vault`

* fix testing code
2025-09-30 10:45:04 -04:00
Maciej Zieniuk
25020ced5d [PM-23251] Remove low-kdf banner (#16511)
* Remove low-kdf banner

* update tests
2025-09-30 08:37:00 -05:00
rr-bw
5f7e1f99bf chore(flag-removal): [Auth/PM20439] Remove flagging logic and flag (BrowserExtensionLoginApproval) (#16568) 2025-09-29 13:29:56 -07:00
Nick Krantz
3b2a2e3129 refactor dialogRef to be optional as the service can be used from the context of a dialog and without it (#16581) 2025-09-25 12:45:02 -05:00
Shane Melton
dcbe4f9e09 [PM-26055] Vault item dialog header fix (#16553)
* [PM-26055] Fix dialog title mode mapping logic

* [PM-26055] Add unit tests
2025-09-23 16:40:52 -07:00
Jordan Aasen
d76a60cd1d [PM-26017] - Admin Console: Truncate long collection names in collection row (#16508)
* truncate long collection names in collection row

* remove unnecessary css class
2025-09-23 12:50:23 -07:00
Jordan Aasen
b12fc338cd fix logic for filtering filters (#16509) 2025-09-23 09:34:20 -07:00
Jordan Aasen
6024f6eef2 [PM-25879][PM-25881] - [Defect] Premium badges missing reusable component (#16461)
* clean up premium badge component

* add provider to desktop settings

* rename prop.

* add provider to send component

* fix storybook

* fix test

* move dependency to new send dropdown component

* Revert "move dependency to new send dropdown component"

This reverts commit f134526279.

* remove hasPremium
2025-09-23 09:32:45 -07:00
Nick Krantz
82e44e0c09 move extension videos internally to the codebase (#16371) 2025-09-23 10:56:29 -05:00
Jordan Aasen
f642fbc4e6 [PM-24633] - group collections by org in individual vault filters (#16480)
* group collections by org in individual vault filters

* update vault filter

* use OrganizationId

* fix tests
2025-09-23 08:50:10 -07:00
rr-bw
3bbc6c564c feat(SSO): (Auth/[PM-22110] Remove Alternate Login Options when SSO Required (#16340)
If a user is part of an org that has the `RequireSso` policy, when that user successfully logs in we add their email to a local `ssoRequiredCache` on their device. The next time this user goes to the `/login` screen on this device, we will use that cache to determine that for this email we should only show the "Use single sign-on" button and disable the alternate login buttons.

These changes are behind the flag: `PM22110_DisableAlternateLoginMethods`
2025-09-22 08:32:20 -07:00
Jason Ng
dbec02cf8d [PM-24533] Initialize Archive Feature (#16226)
* [PM-19237] Add Archive Filter Type (#13852)
* Browser can archive and unarchive items
* Create Archive Cipher Service
* Add flag and premium permissions to Archive 

---------

Co-authored-by: SmithThe4th <gsmith@bitwarden.com>
Co-authored-by: Shane <smelton@bitwarden.com>
Co-authored-by: Patrick Pimentel <ppimentel@bitwarden.com>
2025-09-22 11:06:02 -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
Vicki League
5c7a0feb9d [PM-25985] Fix extra space after the web vault (#16479) 2025-09-19 08:34:17 -07:00
Will Martin
cf929edb9c [Cl-726] layout spacing updates (#15979) 2025-09-19 08:32:30 -07:00
Jordan Aasen
caf4ca6980 [PM-25633] - fix premium upgrade prompt (#16445)
* fix premium upgrade prompt

* use map instead of adding tap dep

* update route
2025-09-17 09:30:39 -07:00
Konrad
d06d47e26a Full headers (#16184)
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
2025-09-16 14:53:36 +00:00
Vicki League
926f587ea2 [CL-581] Update svgs to new designs and make responsive (#16219) 2025-09-10 17:23:53 -04:00
Jordan Aasen
30af3d7035 [PM-24985][PM-24986][PM-25211][PM-24987] - [Vault] Migrate components to use Premium badge component (#16227)
* migrate all components to use PremiumBadgeComponent

* move badge component to vault

* move premium badge to vault

* move premium badge to billing

* fix import

* use premium badge in tools new send dropdown

* remove badge module import

* remove module
2025-09-09 13:39:24 -07:00
Brandon Treston
61d097b4d7 make manage the initial permission when clicking the add access badge (#16165) 2025-09-08 10:34:56 -04:00
Nick Krantz
e3ef530c17 add directive import for dark themed videos (#16277) 2025-09-05 12:11:35 -05:00
Stephon Brown
363d6bea44 [PM-24550] Remove Feature Flag Code for PM-12276 (#16173)
* tests: remove feature flag use in tests

* tests: remove breadcrumbingPolicyTests and add service tests

* refactor: remove event log use of flag from org-layout component

* refactor: remove new policy code from org-layout component

* refactor: remove event log use of flag from events component

* refactor: remove event log use from collection dialog component

* refactor: remove event log use from vault-header component

* refactor: remove event-log route logic for org-reporting

* refactor: remove logic from org-settings routing

* refactor: remove breadcrumbing function and from billing service

* refactor: remove ConfigService from DI for billing service

* refactor: remove new policy code from policy-edit component

* refactor: remove new policy code from policies component

* refactor: remove feature flag

* fix(Admin Console): revert to use of reactive observables pattern

* fix(Admin Console): remove type artifact from reversion
2025-09-03 19:28:15 +00:00
Oscar Hinton
e0da2671b4 [PM-13374] Update all SDK uuids (#14962)
* fix: broken SDK interface

* Fix all compile errors related to uuids

* Fix browser desktop

* Fix tests

---------

Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
2025-08-29 13:09:33 -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
Brandon Treston
28b5a2bb5e [PM-22717] Expose DefaultUserCollectionEmail to clients (#15643)
* enforce restrictions based on collection type, set default collection type

* fix ts strict errors

* fix default collection enforcement in vault header

* enforce default collection restrictions in vault collection row

* enforce default collection restrictions in AC vault header

* enforce default collection restriction for select all

* fix ts strict error

* switch to signal, fix feature flag

* fix story

* clean up

* remove feature flag, move check for defaultCollecion to CollecitonView

* fix test

* remove unused configService

* fix test: coerce null to undefined for collection Id

* clean up leaky abstraction for default collection

* fix ts-strict error

* fix parens

* add new property to models, update logic, refactor for ts-strict

* fix type

* rename defaultCollection getter

* clean up

* clean up

* clean up, add comment, fix submit

* add comment

* add feature flag

* check model for name

* cleanup readonly logic, remove featureflag logic

* wip

* refactor CollectionRequest into Create and Update models

* fix readonly logic

* cleanup

* set defaultUserCollectionEmail in decryption from Collection

* split save into update/create methods

* fix readonly logic

* fix collections post and put requests

* add defaultUserCollection email to model when submitting collection dialog
2025-08-26 11:42:52 -04:00
Jordan Aasen
9ed69ef4b8 [PM-24304][PM-24305] - [Defect] Some fields are not disabled when editing an item from My Vault (#15982)
* disable all remaining form fields for editing personally owned My Items

* fix failing tests

* ensure collection field is also properly disabled

* clean up logic

* fix failing test

* fix test

* refactor variable to avoid using `is` prefix

* directly reference parent form for status rather than subscribe to it

* refactor subscription for form status changes

* use observable as an Output

* disable attachment button on desktop vault when the form

* disable custom field components when custom fields already exist and parent form is disabled

* disable attachments button in the browser when the edit form is disabled

* grab icon button instance for disabled state

---------

Co-authored-by: Nick Krantz <nick@livefront.com>
2025-08-25 15:48:00 -07:00
Jason Ng
6e9da95230 [PM-22371] remove end user activation flag (#16067) 2025-08-22 12:56:16 -04:00