Commit Graph

3130 Commits

Author SHA1 Message Date
Thomas Rittson
afc45ee0c8
[Tools] Update event-related import statements (#19548)
Some checks failed
Scan / Check PR run (push) Has been cancelled
Testing / Run typechecking (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-browser junit:junit-browser.xml name:Browser paths:apps/browser bitwarden_license/bit-browser]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-cli junit:junit-cli.xml name:CLI paths:apps/cli bitwarden_license/bit-cli]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-desktop junit:junit-desktop.xml name:Desktop paths:apps/desktop]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-libs junit:junit-libs.xml name:Libs paths:libs bitwarden_license/bit-common]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-web junit:junit-web.xml name:Web paths:apps/web bitwarden_license/bit-web]) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (macos-14) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-22.04) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (windows-2022) (push) Has been cancelled
Testing / Rust Coverage (push) Has been cancelled
Scan / Checkmarx (push) Has been cancelled
Scan / Sonar (push) Has been cancelled
Testing / Upload to Codecov (push) Has been cancelled
Testing / Run tests (push) Has been cancelled
Updates import statements in tools-related files to use direct imports
instead of re-exported paths. This prepares for removal of re-exporting
files in a follow-up PR.

Part of PM-33381
2026-03-14 09:11:30 +10:00
Thomas Rittson
124c04503d
[Vault] Update event-related import statements (#19546)
Updates import statements in vault-related files to use direct imports
instead of re-exported paths. This prepares for removal of re-exporting
files in a follow-up PR.

Part of PM-33381
2026-03-14 09:10:57 +10:00
bmbitwarden
5ddaa031c9
PM-32651 resolved double browser url paste problem (#19523) 2026-03-13 14:49:54 -04:00
Patrick-Pimentel-Bitwarden
d4b4c8a164
fix(register): [PM-27085] Account Register Uses New Data Types (#18470)
* fix(register): [PM-27085] Account Register Uses New Data Types - Initial changes.

* test(register): [PM-27085] Account Register Uses New Data Types - Fixed tests.

* test(register): [PM-27085] Account Register Uses New Data Types - Updated tests.

* feat(register): [PM-27085] Account Register Uses New Data Types - Added feature flag.

* fix(register): [PM-27085] Account Register Uses New Data Types - Removed unnecessary part of the payload.

* fix(register): [PM-27085] Account Register Uses New Data Types - Changed the feature flag to be gated with the other password input changes.

* fix(register): [PM-27085] Account Register Uses New Data Types - Added protection for feature flagged state.

* fix(register): [PM-27085] Account Register Uses New Data Types - Removed unnecessary comment.

* fix(register): [PM-27085] Account Register Uses New Data Types - Addressed feedback.

* fix(register): [PM-27085] Account Register Uses New Data Types - Fixed tests and added comment.

* fix(register): [PM-27085] Account Register Uses New Data Types - Fixed another test.

* fix(register): [PM-27085] Account Register Uses New Data Types - And last test fix.

* fix(register): [PM-27085] Account Register Uses New Data Types - Removed unneeded code.

* fix(register): [PM-27085] Account Register Uses New Data Types - Updated comments and fixed code from feedback.

* fix(register): [PM-27085] Account Register Uses New Data Types - Updated comments again with small styling fix.

* fix(register): [PM-27085] Account Register Uses New Data Types - Switched to snapshot testing and explicit checks for unlock and authentication data for feature flag on. Also addressed pr comments.

* test(register): [PM-27085] Account Register Uses New Data Types - Made explicit checks for critical pieces of data in tests.

* fix(feature-flag): [PM-27085] Account Register Uses New Data Types - Added in feedback from comments. Default registration tests have snapshots now and web registration has more dry code.
2026-03-13 14:04:49 -04:00
Bryan Cunningham
047be29451
[CL-1033] Migrate remaining CTAs to new icon API (#19490)
Some checks failed
Scan / Check PR run (push) Has been cancelled
Testing / Run typechecking (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-browser junit:junit-browser.xml name:Browser paths:apps/browser bitwarden_license/bit-browser]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-cli junit:junit-cli.xml name:CLI paths:apps/cli bitwarden_license/bit-cli]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-desktop junit:junit-desktop.xml name:Desktop paths:apps/desktop]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-libs junit:junit-libs.xml name:Libs paths:libs bitwarden_license/bit-common]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-web junit:junit-web.xml name:Web paths:apps/web bitwarden_license/bit-web]) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (macos-14) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-22.04) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (windows-2022) (push) Has been cancelled
Testing / Rust Coverage (push) Has been cancelled
Scan / Checkmarx (push) Has been cancelled
Scan / Sonar (push) Has been cancelled
Testing / Upload to Codecov (push) Has been cancelled
Testing / Run tests (push) Has been cancelled
* [CL-1033] Migrate remaining CTAs to new icon API

Migrates buttons and links in settings and secrets manager components to use the new icon API.

* Revert unrelated .vscode/settings.json change

Removes angular.enable-strict-mode-prompt setting that was accidentally included from the source branch.

* Apply suggestion from @claude[bot]

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
2026-03-13 00:42:58 -04:00
Jared
75dbc54513
Enhance policies table layout with flexbox for improved UI consistency (#19528) 2026-03-12 13:41:19 -04:00
Jordan Aasen
f5300ab54c
[PM-29439] - Product Tour – Coachmarks (#19476)
* add coachmark

* add coachmark tour

* fixes to coachmarks

* updates to coachmarks

* add tests

* add specs

* cleanup

* merge main

* add comment
2026-03-12 09:58:54 -07:00
Patrick-Pimentel-Bitwarden
ec17680fa1
fix(emergency-access): [PM-29585] Prevent New EA Invitations or Acceptance (#19502)
fix(emergency-access): [PM-29585] Prevent New EA Invitations or Acceptance - Added toast for failure to show error to user. (#19502)
2026-03-12 11:39:08 -05:00
Jared
44ef7c1f54
[PM-31475] Remove decline event log for org data ownership policy (#19450)
* feat(event): add support for self-revocation event type and corresponding localization messages

* fix(tests): update transfer rejection logging test to ensure no event is logged when a user rejects a transfer

* feat(event-logs): add OrganizationUser_SelfRevoked event type and logging
2026-03-12 12:33:37 -04:00
cd-bitwarden
79c52ca29b
[SM-1800] Handle corrupted encrypted project names gracefully - Clients (#18873)
* Handle corrupted encrypted project names gracefully

- Add decryptionError flag to ProjectView, ProjectListView, and SecretProjectView
- Wrap all project name decryption in try-catch blocks across services
- Use DECRYPT_ERROR constant instead of hardcoded strings
- Display corrupted names as clickable warning text in projects list
- Show warning badges for corrupted project names in secrets list
- Add i18n keys for error tooltips
- Add keyboard accessibility (role, tabindex, enter/space handlers)

* fixing tests

* fixing jittery loading
2026-03-11 17:42:36 -04:00
Nick Krantz
2d702e0eac
[PM-32661] Update Transfer Items Dialog (#19498)
* refactor decline and leave to be a link button rather than a secondary button

* update supporting text for transfer dialog

* add aria-label for learn more link
2026-03-11 16:19:09 -05:00
Vijay Oommen
4b25324c44
pm-33009: Add email validation to data breach report (#19403) 2026-03-11 13:09:09 -05:00
Bryan Cunningham
50108b2477
[CL-1033] Migrate layout CTAs to new icon API (#19488)
Migrates buttons and links in product-switcher layout components to use the new icon API.

Co-authored-by: Will Martin <contact@willmartian.com>
2026-03-11 15:54:04 +00:00
Alex Morask
e5a6312fee
[PM-33308] Use providedIn: "root" for web-based billing services (#19449)
* refactor(billing): move billing services to providedIn root and remove component-level providers

* refactor(billing): remove missed redundant billing service providers

* refactor(billing): move 4 additional billing services to providedIn root and remove empty modules
2026-03-11 10:38:43 -05:00
Ike
c8c66a8bf1
[PM-32424] Send Access Enumeration protection (#19422)
* feat: remove reference to otp_invalid response since it is not used anymore

* remove usage of otpInvalid in CLI receive command

* fix: remove vestigial error types.

* chore: update sdk

* chore: fix failing test

---------

Co-authored-by: John Harrington <84741727+harr1424@users.noreply.github.com>
2026-03-11 11:37:07 -04:00
Daniel James Smith
5707b0064c
[PM-32915] Angular updates to TwoFactorIconComponent (#19306)
* Make TwoFactorIconComponent standalone

* Angular updates to TwoFactorIconComponent

- Migrate TwoFactorProviderType from enum to const (ADR25)
- Migrate Inputs to Signals
- Make provider a required input
- Use new Control Flow syntax
- Use OnPush change detection
- Memoize function for legacy providers (providers with png image)
- Add documentation
- Remove @ts-strict-ignore
- Fix type in TwoFactorSetupDuoComponent as it would default to number because of the migration of TwoFactorProviderType (enum to const). Now it can be overridden with any value of TwoFactorProviderType

* Add type guard for TwoFactorProviderType and fix CLI

* PM-32915 - Update TwoFactorProviderType to mark U2f as deprecated in favor of WebAuthn

* PM-32915 - TwoFactorIconComp - refactor to eliminate legacy providers and just use new, already available duo and yubikey SVG icons.

* PM-32915 - Add TODOs for cleaning up mfaType usages.

* PM-32915 - Remove unncessary ng-container

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Co-authored-by: Jared Snider <jsnider@bitwarden.com>
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
2026-03-11 15:28:01 +00:00
Andreas Coroiu
35d25b7f8e
[PM-24047] Make popout windows respect vault timeout when unfocused (#19019)
* PM-24047: Make popout windows respect vault timeout when unfocused

Replace the heartbeat message-passing mechanism for popup detection
with direct browser API queries (getContexts on MV3, getExtensionViews
on MV2/Safari) that can distinguish focused from unfocused popout
windows. Unfocused popout windows no longer prevent vault timeout.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* PM-24047: Add isAnyViewFocused(), revert isPopupOpen() to simple popup detection

Addresses PR review feedback by separating focus-aware logic from the
isPopupOpen() semantics, which other callers depend on for simple
popup detection:

- BrowserApi.isPopupOpen(): reverted to return views.length > 0 for
  popup-type views only (original behavior)
- BrowserApi.isAnyViewFocused(): new method that checks popup views
  (always focused), sidebar tab views (always focused), and popout
  tab views (focused only if document.hasFocus() is true)
- BrowserPlatformUtilsService.isPopupOpen(): simplified MV3 path
  uses getContexts({ contextTypes: ['POPUP'] })
- BrowserPlatformUtilsService.isAnyViewFocused(): new method with
  MV3 (POPUP/SIDE_PANEL/focused TAB) and MV2/Safari paths
- PlatformUtilsService: adds isAnyViewFocused() to the interface
- Web/Desktop/CLI stubs return false (no popout windows)
- VaultTimeoutService now calls isAnyViewFocused() instead of
  isPopupOpen() so unfocused popouts don't block vault timeout

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* PM-24047: Move MV3/MV2 routing into BrowserApi

isPopupOpen() and isAnyViewFocused() now use feature detection for
chrome.runtime.getContexts to select the right API internally,
rather than having the routing in BrowserPlatformUtilsService.
This means BrowserApi is the single owner of view-detection logic,
and the service methods are simple one-line delegations.

Using typeof getContexts === "function" rather than isManifestVersion()
handles Safari naturally: if Safari doesn't support getContexts it
falls back to getExtensionViews, without needing an explicit isSafari()
exclusion.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* PM-24047: Scope MV3/MV2 routing refactor to isAnyViewFocused only

isPopupOpen() keeps its existing pattern (MV3/MV2 routing in the
service, simple getExtensionViews in BrowserApi) to avoid touching
unrelated code. Only isAnyViewFocused() has its routing moved into
BrowserApi via feature detection.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* PM-24047: Restore isPopupOpen to main branch implementation

isPopupOpen() and its tests are restored exactly to the main branch
version (heartbeat-based approach). Only isAnyViewFocused is new code.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* PM-24047: Refactor isPopupOpen() to use getContexts/getViews instead of heartbeat

Replaces the message-passing heartbeat approach with the same
chrome.runtime.getContexts() (MV3) / chrome.extension.getViews() (MV2/Safari)
introspection pattern used by isAnyViewFocused(). This eliminates the need
for a heartbeat listener in the popup and makes both methods consistent.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* PM-24047: Simplify isAnyViewFocused() using Array.some()

Collapse the two separate POPUP/SIDE_PANEL checks into a single .some()
call, and replace the synchronous MV2/Safari tab view loop with .some().
The async TAB/popout window check stays as a for loop.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* PM-24047: improve tabs loop readability somewhat

* PM-24047: Fix MV3 popout focus check using wrong uilocation filter

The TAB context filter was checking for `uilocation=sidebar` instead of
`uilocation=popout`. In MV3, sidebars are SIDE_PANEL contexts (already
handled above), so this filter never matched, causing focused popout
windows to be silently ignored and the vault to timeout while a user was
actively viewing one.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* PM-24047: Rename isViewOpen to isViewFocused for semantic accuracy

The variable and parameter previously named isViewOpen reflected
the old "is any view open?" semantics. After the refactor to
isAnyViewFocused(), the naming is updated to match the actual
behavior: checking whether a view is focused, not merely open.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-11 14:10:32 +01:00
Thomas Avery
c842f76539
[PM-27297] Remove ConsolidatedSessionTimeoutComponent feature flag (#18616)
* Remove flag

* Remove legacy components

* Update unit tests

* update messages json
2026-03-10 13:09:35 -05:00
Nick Krantz
aa19c174be
add missing providers for vault test (#19465) 2026-03-10 15:51:50 +00:00
Nick Krantz
cae8799d11
[PM-33196] Web Vault Unit Tests (#19402)
* initial add of vault unit tests

* initial passing web vault test

* add unit tests for add/edit/clone ciphers
2026-03-10 09:35:24 -05:00
Thomas Rittson
7943da240c
[PM-28488] Move event logging code to DIRT folders (#19336)
* Add re-exports from old locations to maintain backward compatibility
2026-03-10 14:58:06 +01:00
Will Martin
2c5db121a6
[CL-854] fix: add readonly to web-header component properties (#19459) 2026-03-10 12:16:09 +01:00
Will Martin
cc9a3ff4e4
[CL-854] refactor: update web header to use bit-header component (#17663)
Some checks failed
Scan / Check PR run (push) Has been cancelled
Testing / Run typechecking (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-browser junit:junit-browser.xml name:Browser paths:apps/browser bitwarden_license/bit-browser]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-cli junit:junit-cli.xml name:CLI paths:apps/cli bitwarden_license/bit-cli]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-desktop junit:junit-desktop.xml name:Desktop paths:apps/desktop]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-libs junit:junit-libs.xml name:Libs paths:libs bitwarden_license/bit-common]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-web junit:junit-web.xml name:Web paths:apps/web bitwarden_license/bit-web]) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (macos-14) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-22.04) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (windows-2022) (push) Has been cancelled
Testing / Rust Coverage (push) Has been cancelled
Scan / Checkmarx (push) Has been cancelled
Scan / Sonar (push) Has been cancelled
Testing / Upload to Codecov (push) Has been cancelled
Testing / Run tests (push) Has been cancelled
* feat: add bit-header component to component library

  Add new bit-header component to libs/components with:
  - Header component with left, center, and right content projection
  - Storybook stories for documentation
  - Export from component library index

* refactor: update web header to use bit-header component

  - Refactor web-header to use new bit-header component from libs/components
  - Extract account menu to separate component
  - Update header module to import HeaderComponent

* delete web-header stories

---------

Co-authored-by: Will Martin <wmartin@Wills-MBP.attlocal.net>
2026-03-09 18:12:26 -05:00
Jordan Aasen
fab31619d9
[PM-33201] - fix vault-filter with remove card type policy (#19404)
* fix vault-filter with remove card type policy

* add specs
2026-03-09 12:56:22 -07:00
Will Martin
5e90565a79
[CL-1063] add enforce-readonly-angular-properties ESLint rule (#19201)
* Add enforce-readonly-angular-properties ESLint rule
2026-03-09 10:26:42 -07:00
Stephon Brown
42d1ed1939
[PM-33061] Tax Id Should Show for Teams and Enterprise Plans When Upgrading (#19347)
* feat(billing): add taxId to upgrade organization request type

* feat(billing): implement tax ID validation for organization upgrades

* feat(billing): conditionally display tax ID field in upgrade form

* test(billing): add tax ID validation tests for organization upgrades

* fix(billing): PR feedback update

* fix(billing): remove tax id requirement for non-US billing

* test(billing): update tests for non-US billing address
2026-03-09 12:14:41 -05:00
Jared
d18d55a316
[PM-32820] suspended icon for suspended orgs is not showing up in sidebar (#19296)
* refactor: Adjust icon placement in org-switcher and nav-group components

* Move icons from 'end' to 'start' slot in org-switcher component for better alignment.
* Add conditional rendering for content in the 'start' slot of nav-group component.

* feat: Add warning icon support to navigation components

* Introduce `warningIcon` and `warningIconLabel` inputs in nav-base component for customizable warning icons.
* Update org-switcher and nav-group components to utilize the new warning icon functionality.
* Implement conditional rendering of warning icons in nav-item component for better user feedback.

* Enhance org-switcher component by replacing warning icon logic with a dedicated bit-icon element for better accessibility. Also, import IconModule to support the new icon usage.

* Refactor navigation components to remove deprecated warning icon properties and enhance structure. Updated org-switcher to utilize a dedicated bit-icon for accessibility improvements.

* Enhance org-switcher component by adding a margin utility class for improved layout consistency. Clean up nav-group component by removing deprecated slot logic for better maintainability.
2026-03-09 12:18:23 -04:00
Oscar Hinton
08f6ab58ee
Remove LooseComponentsModule (#19144) 2026-03-09 16:37:14 +01:00
bitwarden-devops-bot
bd05a8370b
Bumped client version(s)
Some checks failed
Scan / Check PR run (push) Has been cancelled
Testing / Run typechecking (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-browser junit:junit-browser.xml name:Browser paths:apps/browser bitwarden_license/bit-browser]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-cli junit:junit-cli.xml name:CLI paths:apps/cli bitwarden_license/bit-cli]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-desktop junit:junit-desktop.xml name:Desktop paths:apps/desktop]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-libs junit:junit-libs.xml name:Libs paths:libs bitwarden_license/bit-common]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-web junit:junit-web.xml name:Web paths:apps/web bitwarden_license/bit-web]) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (macos-14) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-22.04) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (windows-2022) (push) Has been cancelled
Testing / Rust Coverage (push) Has been cancelled
Scan / Checkmarx (push) Has been cancelled
Scan / Sonar (push) Has been cancelled
Testing / Upload to Codecov (push) Has been cancelled
Testing / Run tests (push) Has been cancelled
2026-03-09 10:53:10 +00:00
bw-ghapp[bot]
c35922f99e
Autosync the updated translations (#19444)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-03-09 02:20:44 -05:00
bw-ghapp[bot]
a04f19b788
Autosync the updated translations (#19411)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-03-06 08:31:18 +00:00
Daniel James Smith
b932ae04fd
Remove unused ColorPasswordCountPipe and ColorPasswordPipe (#19345)
With the replacement of the vault cipher view and add-edit views on the desktop client, we no longer require the ColorPasswordCountPipe or the ColorPasswordPipe, as these are now handled by the ColorPasswordComponent from the Bitwarden component library

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2026-03-05 08:56:31 +01:00
Bernd Schoolmann
944b3ffdc2
[PM-31406] fix: TypeScript 5.9 type compatibility fixes for auth-owned code (#19187)
* fix: add TypeScript 5.9 type compatibility fixes for auth-owned code

Add explicit `as BufferSource` casts and `Uint8Array` wrapping to satisfy
stricter type checking in TypeScript 5.9. Non-functional changes.

* Fix type errors

* Fix test

* Fix tests

* Fix typing in auth tests

* Also change unlock service to uint8array<arraybuffer>

* Fix types

* Prettier

* Apply fixes for jest spy type
2026-03-04 19:12:44 -07:00
Daniel James Smith
9ed87a4166
Remove gitter chat badges from READMEs (#19368)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2026-03-04 16:33:27 +00:00
Daniel James Smith
8c7c7ebfb8
Make TwoFactorIconComponent standalone (#19305)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2026-03-03 18:43:13 -05:00
Jared
ce47bbc113
[PM-32664] Update dialog for organization ownership policy (#19262)
* feat: implement individual items transfer option in data ownership policy

Added a new checkbox for enabling individual items transfer in the organization data ownership policy. When enabled, users will be prompted to move their individual vault items to the organization. Updated the form control logic to handle the new feature and added relevant translations in the messages.json file.

* feat: enhance data loading for individual items transfer in policy edit

Implemented a new loadData method to initialize the form with the enableIndividualItemsTransfer value from the policy response. This ensures the form reflects the current state of the data ownership policy when editing.

* Add unit test for if data is sent as a null attribute

* Rid of extra modal since checkbox replaces it

* Update buildRequestData method to include enableIndividualItemsTransfer property in OrganizationDataOwnershipPolicyData
2026-03-03 16:23:13 -05:00
bw-ghapp[bot]
c07a2c48a3
Autosync the updated translations (#19271)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
2026-03-03 11:01:10 +01:00
Oscar Hinton
2d3c517a7f
[PM-33006] Convert JslibModule declares to standalone (#19316)
* Convert JslibModule declares to standalone

* Make not premium non standalone since it's handled by a different PR.

* Fix tests
2026-03-03 10:41:17 +01:00
Stephon Brown
2facb7e04f
[PM-29823] New Organization Upgrade Path (#19080)
* refactor(billing): Modernize organization plans template with block syntax

* Refactor: Update `@for` loop tracking with `$index`

* Feat: Migrate component properties to Angular signals

* Refactor: Adapt component logic for signal consumption and improve structure

* feat(admin-console): Bind OrganizationPlansComponent inputs directly in template

* refactor(admin-console): Remove ViewChild for OrganizationPlansComponent configuration

* refactor(billing): Switch productTier and plan to input signals

* refactor(billing): Update productTier and plan access to use form controls

* refactor(billing): Rename 'isCreatingNewOrganization' getter

* refactor(billing): Access enterPaymentMethodComponent as a signal

* feat(billing): use createOrganization property for organization creation flow

* refactor(billing): migrate organization plans tests to signals and reactive forms

* refactor(billing): introduce setupMockUpgradeOrganization helper in tests

* refactor(billing): update getters to computed signals

* refactor(billing): update template to use new computed signals

* tests(billing): update tests with computed signals

* feat(billing): update display of specific forms when user is upgrading from premium

* tests(billing): add premium upgrade tests

* fix(billing): update type issues for organization plans

* tests(billing): update failing test

* refactor(billing): rename plan/productTier inputs to initial* for clarity

* refactor(billing): update templates to use renamed initial* inputs

* test(billing): update tests to use renamed initial* inputs

* feat(billing): feature flag upgrade from premium changes

* test(billing): update tests for featureflag

* refactor(ui): Improve HTML templating for organization plans

* refactor(component): Safely derive 'hasPremiumPersonally' signal

* refactor(component): Streamline 'createCloudHosted' method and key handling

* feat(billing): Enable organization key submission for premium upgrades

* test(billing): Enhance and adjust organization plan submission tests

* refactor: remove unused imports and types

* refactor(billing): introduce DTO for organization upgrade request

* feat(billing): implement organization key and collection encryption

* refactor(billing): integrate DTO and encryption logic in upgrade service

* test(billing): update specs and components for organization upgrade DTO

* refactor(billing): relocate FamiliesForEnterpriseSetupComponent to billing module

* refactor(admin-console): revert families-for-enterprise component

* refactor: rename wrappedPrivateKey to encryptedPrivateKey

* refactor(billing): rename encrypted private key variable

* feat(billing): add tier ids and types

* refactor(billing): remove unused imports and sync service

* fix(billing): correct tier passing in upgrade function

* feat(billing): add conversion function from product tier to subscription tier id

* refactor(billing): enhance organization encryption data generation

* fix(billing): enable response for account upgrade

* fix(billing): pass plan tier instead of plan details

* refactor(test): remove unnecessary organization service mock

* test: update upgrade service tests

* tests(billing): update tests

* refactor(billing): import account type
feat(billing): add organization creation message

* refactor(billing): remove unused imports and constants

* refactor(billing): remove unused viewchild

* fix(billing): remove selectedfile variable

* feat(billing): update organization upgrade logic

* refactor(billing): remove unused upgrade functions

* test: remove unnecessary setupMockEncryptionKeys calls

* refactor: remove unused mockAccountBillingClient

* feat: introduce PremiumOrgUpgradeService

* refactor: simplify form value access and remove accountbilling

* fix(billing): handle type validation

* test(billing): add initial plan and product tier input tests

* feat(billing): set initial plan and product tier values

* refactor(billing): ensure selected plan exists before accessing type
2026-03-02 12:16:29 -05:00
Jared McCannon
e2bee489a4
[PM-30886] - Remove FF for Restoring Users. (#19155)
* removed feature flag for default user collection being created for restored users.

* leaving the url as we'll need it in case we have to revert a release
2026-03-02 10:38:54 -06:00
Alex Morask
1d212d16a9
[PM-32890] Fix self-hosted premium subscription page with FF on (#19297)
* feat(billing): add self-hosted premium subscription page behind feature flag

* refactor(billing): move premium redirect from component to route guard

* refactor(billing): extract subscription route logic into PremiumSubscriptionRoutingService

* fix(billing): address local and remote PR review feedback for self-hosted subscription page
2026-03-02 08:39:51 -06:00
Jordan Aasen
48b8c5b807
fix flakey welcome-dialog test (#19291)
Some checks failed
Chromatic / Check PR run (push) Has been cancelled
Scan / Check PR run (push) Has been cancelled
Testing / Run typechecking (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-browser junit:junit-browser.xml name:Browser paths:apps/browser bitwarden_license/bit-browser]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-cli junit:junit-cli.xml name:CLI paths:apps/cli bitwarden_license/bit-cli]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-desktop junit:junit-desktop.xml name:Desktop paths:apps/desktop]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-libs junit:junit-libs.xml name:Libs paths:libs bitwarden_license/bit-common]) (push) Has been cancelled
Testing / Run tests - ${{ matrix.test-group.name }} (map[artifact:jest-coverage-web junit:junit-web.xml name:Web paths:apps/web bitwarden_license/bit-web]) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (macos-14) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-22.04) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (windows-2022) (push) Has been cancelled
Testing / Rust Coverage (push) Has been cancelled
Chromatic / Chromatic (push) Has been cancelled
Scan / Checkmarx (push) Has been cancelled
Scan / Sonar (push) Has been cancelled
Testing / Upload to Codecov (push) Has been cancelled
Testing / Run tests (push) Has been cancelled
2026-02-27 14:54:01 -08:00
Bernd Schoolmann
646c4da171
[PM-31406] fix: TypeScript 5.9 type compatibility fixes for tools-owned code (#19189)
* fix: TypeScript 5.9 type compatibility fixes for tools-owned code

Add explicit `as BufferSource` casts and `Uint8Array` wrapping to satisfy
stricter type checking in TypeScript 5.9. Non-functional changes.

* Fix type errors
2026-02-27 16:08:08 -05:00
Brandon Treston
1b908365f7
[PM-32126] update copy, fix one time dialog (#19199)
* update copy, fix one time dialog

* update i18n key

* clean up
2026-02-27 12:46:04 -05:00
John Harrington
bf9bd9dade
[PM-32628] Add email validation to email verified auth flow (#19198)
* add email validation

* implement robust email validation regex
2026-02-27 09:01:41 -07:00
Oscar Hinton
59c0b28816
Deprecated SharedModules (#19260) 2026-02-27 11:45:06 +01:00
Leslie Xiong
b3439482fa
[PM-18768] Migrate vault cipher list (#18522)
* migrated vault cipher list

* added back `rounded` prop to `bit-layout`

* moved account switcher to right corner

* moved username below cipher item name

* fixed spacing to align with send pages

* removed commented out

* fixed options buttons overflowing if has launch

* fixed "options" label disappearing when width is insufficient

* reverted search component, added search directly to vault-list

* placed new vault cipher list work behind 'desktop-ui-migration-milestone-3' feature flag

* reverted scss changes

* added back search bar when FF not enabled

* fixed owner column responsiveness (set to table width instead of screen)

* fixed 'owner' column responsiveness

* hide 'owner' column at 'md' breakpoint

* Remove duplicate badge component and org name pipe

* Convert to standalone

* Added back translations

* used correct 'tw' variants for 'px'

* extended existing `item-footer` component

* removed unused `showGroups()` from `vault-cipher-row`

* removed 'addAccess' from `vault-list.component`

* removed more unused, separated 'cipher collections' from 'filter collections'

* converted `vault-wrapper` to use signal

* updated original 'vault.component' to reflect main

* fixed `templateUrl`, merge fix

* changed to `getFeatureFlag$`

* fixes for `item-footer` and `vault-collection-row`

* fixed lint error

* - replaced using global css with tailwind
- added functionality and ui for empty states
- moved search and vault header from 'vault-list' to 'vault component'

* fixed accessing `this.userCanArchive$`

* converted more to tailwind in vault component

* removed unused 'selection' from `vault-list`

* Fix flashing vault list

* Move app-header title to routing module

* Remove broken half-migrated new form

* removed unnecessary `this.organizations$` block

* removed `firstSetup$`, cleaned up unused, separated 'delete' and 'restore' handling for footer and cipher menu

* used desktop 'launch' functionality

* moved 'bit-no-items' into `vault-list`

* removed unused locales

* aligned `handleDelete` and `handleRestore` with original desktop functionality

* Fix linting and tests

* Move no-items out of table similar to send.

* Re-add newline end of messges.json

* Remove events

* Hide copy buttons if there is nothing to copy. Simplify

* fix

* Get rid of unused copyField

* Use dropdown button in vault list instead

* Fix linting

* removed unused imports

* updated `vault-orig` to current in main

* fixed `vault-orig` templateUrl

* fixed import order, removed unused `combineLatest` block

* fixed `onVaultItemsEvent` "delete"

* removed duplicate rendering of logo

* preserve cipher view after 'cancel'

* filter from `allCiphers`

* moved `enforceOrganizationDataOwnership` call inside "syncCompleted" block

* converted `showAddCipherBtn` to observable

* removed unused

* added `submitButtonText` to `app-vault-item-footer`

* removed filtering restricted item types

* fixed `cancelCipher` pass in and set `cipherId`

* updated `submitButtonText`

* updated `vault-orig` to current `vault` in main

---------

Co-authored-by: Hinton <hinton@users.noreply.github.com>
2026-02-26 16:41:02 -05:00
Oscar Hinton
6b326a5fd0
[CL-1051] Generic closeOnNavigation for drawers (#19031)
Exposes closeOnNavigation from cdk config and implements a drawer close solution on navigation. More complex scenarios may still require custom handling.

DialogService is referenced in imported components in some tests meaning we need to use overrideProvider rather than providers.
2026-02-26 17:44:49 +01:00
Alex Morask
abbfda124f
refactor(billing): simplify subscription visibility and fix redirect race condition (#19255) 2026-02-26 10:13:47 -06:00
Jared
66b3d35b58
PR #18534 (f22736bb64) — reverted: policy dialogs converted back from drawer to popup dialogs (#19235)
PR #18852 (3f3fc6f984) — reverted: OnDestroy drawer-close logic removed from PoliciesComponent, drawer docs removed from dialogs.mdx

PR #18915 (2e83244158) — reverted: showDescription property in BasePolicyEditDefinition restored to true
2026-02-25 15:36:18 -05:00