1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-08 04:33:38 +00:00
Commit Graph

20694 Commits

Author SHA1 Message Date
Mike Amirault
314c842b96 [PM-31435] Use muted colors for Send file and text type icons (#18673) 2026-02-05 14:51:36 -05:00
Mike Amirault
87bc57b3e2 [PM-31434] Match Send table options button size to other tables (#18685) 2026-02-05 14:48:40 -05:00
Nick Krantz
b5d865e8f2 move clearCache before updateWithServer (#18790) 2026-02-05 13:42:50 -06:00
Jason Ng
0b8d61a1b8 [PM-31423] updated isAdminConsoleAction check in cipher-report (#18662) 2026-02-05 12:42:22 -05:00
Vijay Oommen
6c7cca1360 PM-30456 setup the search bar to grow (#18780) 2026-02-05 11:09:50 -06:00
Will Martin
20bc6036c6 [CL] fix no-bwi-class-usage eslint rule to allow helper classes (#18782)
The eslint rule now distinguishes between icon classes (bwi, bwi-lock, etc.)
and helper utility classes (bwi-fw, bwi-sm, bwi-lg, etc.) defined in the SCSS.
Helper classes like bwi-fw are legitimate utility classes that modify appearance
and can be used with bit-icon or other components without triggering warnings.

Updated the rule to maintain an allowlist of helper classes and only error when
actual icon classes are used directly.

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 12:07:40 -05:00
Jared
f34ccf21d8 Fix highlight in left sidebar menu (#18781) 2026-02-05 12:03:01 -05:00
Daniel James Smith
446f35791e [PM-29127] Improve subdomain parsing for fido2 (#18383)
* Add check and test for empty inputs into isValidRpId

* Ensure the origin's scheme is https

* Improve parsing and validation of rpId

* Move https requirement check further down as we accept http for localhost

* Add documentation

* Remove ts-strict-ignore

* ts-strict: Fix possibly null on parsedOrigin.hostname

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2026-02-05 17:45:09 +01:00
Mike Amirault
5e31ba9cce [PM-27220] Switch export filetype select to simple select (#17865) 2026-02-05 11:30:37 -05:00
Jared
5c7bba00f3 [PM-16694] ac integration page background fill missing (#18508)
* Fixing some tech debt before implementing actual fix of implementation

* Adding new components to handle the different routes for the integrations page to make use of bit-tab-nav-bar to follow background-fill UI spec

* Implement organization integrations page with routing and state management

- Added routing for organization integrations including device management, event management, single sign-on, and user provisioning.
- Created OrganizationIntegrationsState to manage integrations and organization data.
- Introduced OrganizationIntegrationsResolver for preloading organization and integration data.
- Updated components to utilize the new state management and resolver.
- Refactored integration routes to follow updated naming conventions.

* Refactor organization integrations components to use signals and observables; enhance async handling in templates and add debug logging

* Enhance organization integrations module with routing updates and state management improvements

- Added OrganizationIntegrationsState for better state management.
- Updated routing to redirect to single sign-on by default.
- Integrated OrganizationIntegrationsResolver for preloading data.
- Refactored components to utilize new state management and improved async handling.

* Refactor SingleSignOnComponent to remove OnInit lifecycle and debug logging

- Simplified SingleSignOnComponent by removing the OnInit implementation.
- Eliminated debug logging for integrations in ngOnInit.
- Cleaned up imports for better readability.

* Refactor WebHeaderComponent to simplify background handling

- Removed the useAltBackground input signal from WebHeaderComponent.
- Updated the HTML template to conditionally apply styles based solely on the child element count of the tabs container.

* Refactor organization integrations components for improved readability and performance

- Updated HTML templates to remove optional chaining for organization properties.
- Removed unnecessary debug logging and comments in the OrganizationIntegrationsResolver.
- Simplified DeviceManagementComponent by eliminating the OnInit lifecycle hook.

* Refactor organization integrations components to use direct state properties

- Updated components to access organization and integrations directly from state instead of using observables.
- Simplified HTML templates by removing async pipes and using direct function calls for better readability.
- Ensured consistent naming conventions for organization and integrations variables across components.

* Enhance WebHeaderComponent by adding bitTypography attribute to the title element for improved styling consistency

* Refactor organization state to use 'undefined' instead of 'null' for organization signal and remove OnInit lifecycle hook from UserProvisioningComponent for cleaner code.

* Refactor EventManagementComponent to remove OnInit lifecycle hook for cleaner code and improved readability.

* Update organization state to set organization value to 'undefined' when null is provided, enhancing state management consistency.

* Update WebHeaderComponent to allow optional title and icon inputs, enhancing flexibility in header configuration.

* Update WebHeaderComponent to allow account property to be nullable, improving type safety and handling of user data.
2026-02-05 10:58:42 -05:00
John Harrington
d88cb89618 PM-23851 False requirement to pop out extension when using send files (#17950)
* follow existing popout guard pattern to force popout on firefox when filepicker is exposed

* move firefox guard to tools ownership & revert changes to auth owned file

* initial refactor to consolidate logic  using file-picker-popout.guard

* remove safari from guard & disable forced popout in vault import

* enforce popout on Safari with test coverage

* use userAgent and consistent detection for platform detection

* refactor guard tests involving routes

* replace imports lost during merge

* remove text sends from popout requirement and update tests

* add tooltip and screen-reader text describing popout behavior
2026-02-05 08:41:03 -07:00
Jared
479273a883 Fix optional chaining for collectionId in vault navigation query parameters (#18652) 2026-02-05 10:39:33 -05:00
Jared
2d8f74bf70 Disable native icon for datetime-local field and use our own icons for stylizing (#18633) 2026-02-05 10:37:35 -05:00
Jared
35773ae9a0 [PM-29771] Make invitation non-plural if only 1 member selected (#18684)
* Make invitation non-plural if only 1 member selected

* Add isSingleInvite as per Jimmy's suggestion
2026-02-05 10:36:44 -05:00
Jared
61763204ea Update bulk restore/revoke component to conditionally display non-compliant members callout. Adjusted logic to set statuses based on entry errors and isRevoking state. (#18654) 2026-02-05 10:35:39 -05:00
Jared
3fb31fd040 Add permission guard and only allow provider admin to visit billing page for provider portal users (#18639) 2026-02-05 10:31:21 -05:00
adudek-bw
7c6d98b50e Remove feature flag check from password generation (#18003)
* Remove feature flag check from password generation
2026-02-05 09:46:31 -05:00
Bernd Schoolmann
2cc8715711 [PM-31640] Fix SDK tracing / cipher decryption performance issues (#18777)
* Fix SDK tracing performance issues

* Update package lock

* Update package lock

* Fix npm lock
2026-02-05 15:10:15 +01:00
Jared McCannon
ba905dbf12 Fixing bulk restore request property name to match server. (#18757) 2026-02-05 08:03:09 -06:00
Thomas Avery
f457abf60b Add contact info to HAZMAT (#18759) 2026-02-05 10:57:10 +01:00
Vedant Madane
04d2394dbf [PM-30845] fix(vault): preserve card brand when editing existing card (#18381)
* fix(vault): preserve card brand when editing existing card

Fixes #16978

The brand field was not being restored when editing an existing card
cipher, causing it to show '--Select--' and potentially lose the brand
data when saving.

Added the brand field to initFromExistingCipher() to properly restore
the card brand when opening a card for editing.

Also updated the test to verify all card fields including brand, expMonth,
and expYear are properly initialized from existing cipher data.

* fix: add brand to OptionalInitialValues interface

Addresses review feedback from @jengstrom-bw in PR #18381.
The brand field was being used in card-details-section.component.ts
but wasn't defined in the OptionalInitialValues type, causing a
TypeScript compilation error.

Adds brand?: string; to the Credit Card Information section of
OptionalInitialValues in cipher-form-config.service.ts.

* test: add coverage for initFromExistingCipher brand logic
2026-02-04 13:38:25 -08:00
neuronull
34108d93e4 SSH Agent v2: Add ssh key primitive types (#18583)
Co-authored-by: Bernd Schoolmann <mail@quexten.com>
2026-02-04 14:01:18 -07:00
renovate[bot]
afc46cc50a [deps] Vault: Update @koa/router to v15 (#18086)
* [deps] Vault: Update @koa/router to v15

* update router imports from `@koa/router`

* remove `@types/koa__router` no longer needed with update to `@koa/router`

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nick Krantz <125900171+nick-livefront@users.noreply.github.com>
Co-authored-by: Nick Krantz <nick@livefront.com>
2026-02-04 14:40:50 -06:00
Jackson Engstrom
a686ea1640 [PM-26706] Update search results header for extension (#18676)
* dynamically changes the allItems title from 'All items' to 'Search results' based on search text length

* updates logic and copy for changing the allItems header text

* changes how ciphers are displayed when a user has a search term and/or filters applied

* Update apps/browser/src/vault/popup/components/vault-v2/vault-v2.component.html

Co-authored-by: Nick Krantz <125900171+nick-livefront@users.noreply.github.com>

* refactors tests

---------

Co-authored-by: Nick Krantz <125900171+nick-livefront@users.noreply.github.com>
2026-02-04 11:21:20 -08:00
Bryan Cunningham
a07c9ebf6b [CL-637] icon api buttons links (#18388)
* update button api to accept icons

* use template outlet in button

* add link component

* create link component to handle anchors and buttons

* remove unnecessary let variables

* fix link focus state styling

* update link underline style

* fix broken skip link focus

* add focus method to link component

* fix typo

* fix off center loading state

* move flex styles to template to fix some minor style overrides

* remove unnecessary variables

* fix interaction states and add styles for test class to work properly

* refactor classes and make variable sreadonly

* fix classes not being applied correctly

* fix bad merge conflict resolution

* simplified button template
2026-02-04 14:20:44 -05:00
renovate[bot]
2b06f6ace3 [deps] AC: Update core-js to v3.48.0 (#18709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jared <TheWolfBadger@gmail.com>
2026-02-04 17:34:20 +00:00
Jordan Aasen
2876ef15ae [PM-31606] - Clone should not be an option for archived item for non-premium user (#18726)
* do not allow cloning of archived items for non-premium users

* add tests
2026-02-04 09:31:23 -08:00
Vijay Oommen
a2916084ee [PM-30547] Table empty state message (#18752) 2026-02-04 10:42:13 -06:00
Jackson Engstrom
9fc52cb46e [PM-21607] Adds bwi-plus-circle and bwi-minus-circle to Link SSO and Unlink SSO menu buttons (#18328)
* adds bwi-plus-circle and bwi-minus-circle to Link SSO and Unlink SSO menu buttons

* fixes spacing for Leave organization option

---------

Co-authored-by: capenapplebw <capple@bitwarden.com>
2026-02-04 08:19:06 -08:00
Jonathan Prusik
b044427f41 [PM-31281] Add teardown of listeners/observers (#18593)
* add teardown of listeners/observers

* add tests
2026-02-04 11:12:25 -05:00
Jared
b0cfe37e02 Update collectionIds handling in DefaultCipherFormService to preserve new values during cipher updates (#18650) 2026-02-04 10:53:05 -05:00
Jason Ng
febb64605a [PM-31400] skip MP reprompt when archive/unarchive in footer (#18678) 2026-02-04 10:31:02 -05:00
Vicki League
97c65b3c72 [PM-31384] Prevent dialog header from stealing focus from autofocus inputs (#18657) 2026-02-04 10:26:38 -05:00
Vijay Oommen
5bceadd29b [PM-31584] Minor UI fixes (#18736) 2026-02-04 09:11:06 -06:00
Oscar Hinton
c3d0a2d858 Add a way to add folders in the desktop ui migration milestone 1 (#18632) 2026-02-04 10:03:43 -05:00
neuronull
e5c9f9398d Enhancements to EncryptedMemoryStore (#18484) 2026-02-03 15:04:18 -07:00
Nik Gilmore
3f5ca7155b [PM-31282] Bugfix: Pass orgId to Admin Bulk Delete API 2026-02-03 12:35:13 -08:00
Jason Ng
f3686c657b [PM-31476] Desktop Archive Empty State Vault-V3 (#18695)
* add empty state for archive desktop
2026-02-03 15:29:11 -05:00
renovate[bot]
9e61f1b16d [deps] Autofill: Update prettier to v3.8.1 (#18710)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-03 15:23:04 -05:00
Sola
eaa7e5ab2a [PM-30894] Support importing SSH keys from 1pux (#18391)
* Support importing SSH keys from 1pux

Co-authored-by: Bernd Schoolmann <mail@quexten.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>

* Propagate SSH key import error

---------

Co-authored-by: Bernd Schoolmann <mail@quexten.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2026-02-03 13:18:34 -07:00
Mike Amirault
51a99fecd8 [PM-31429] Add missing helper text for password protected Sends, remove unused one (#18694)
* [PM-31429] Add missing helper text for password protected Sends, remove unused one

* Put one UI change behind feature flag, add back required translations

* Reorder translation

* Add spaces

* Come full circle, remove last couple of committed changes
2026-02-03 15:18:23 -05:00
Daniel Riera
557d417ed1 - Clear pending auth requests for both HTTP and HTTPS (#18661)
- Add null-safe checks before returning auth credentials
- Align callback typing and optional arguments
2026-02-03 14:10:05 -06:00
Jason Ng
50063c7f71 [PM-31477] Align Desktop V3 with Archive Premium Banner (#18696)
* adding showPremiumCallout to vault-v3 for non premium banner
2026-02-03 14:21:40 -05:00
rr-bw
489308fd75 refactor(input-password-flows): [Auth/PM-27086] Use new KM Data Types in InputPasswordComponent flows - Emergency Access (#18425)
Update the Emergency Access Takeover flow to use new KM data types from `master-password.types.ts` / `MasterPasswordService`:
- `MasterPasswordAuthenticationData`
- `MasterPasswordUnlockData`

This allows us to move away from the deprecated `makeMasterKey()` method (which takes email as salt) as we seek to eventually separate the email from the salt.

Changes are behind feature flag: `pm-27086-update-authentication-apis-for-input-password`
2026-02-03 10:41:25 -08:00
Stephon Brown
38465c059c [PM-29602] Update Cart Summary for Upgrade Flow (#18605)
* feat(billing): update cart-summary logic

 Add functionality to hide breakdown and allow translation params

* tests(cart-summary): update tests and stories

* feat(pricing): Add quantity support to discount labels

* feat(pricing): discount quantity story

* Revert "feat(pricing): discount quantity story"

This reverts commit 2c00891f1f.

* Revert "feat(pricing): Add quantity support to discount labels"

This reverts commit 8350fdd90f.

* fix(cart-summary): Adjust discount text styling

* feat(pricing): adds support for hidden discount amounts

Allows hiding the formatted amount for discounts in the cart summary.

This is useful for scenarios where the discount amount is displayed
elsewhere or is not relevant to the user.

Updates the storybook to include a story demonstrating this feature.

* feat(pricing): conditionally format currency amounts to show or hide decimals

* Revert "feat(pricing): adds support for hidden discount amounts"

This reverts commit 076724276c.

* Revert "fix(cart-summary): Adjust discount text styling"

This reverts commit d02c12fc2a.

* Revert "discount translation"

* feat(pricing): add credit type to cart summary

* feat(pricing-card): Add i18n and icon component infrastructure

* feat(pricing-card): Apply i18n pipe to pricing card template

* refactor(pricing-card): Replace `<i>` tags with `<bit-icon>` in template

* test(pricing-card): Update tests for i18n and icon component changes

* docs(pricing-card): Enhance Storybook and documentation for new features

* feat(pricing-card): Adds "per user" translation key

* refactor(pricing-card): use property binding for bit-icon name

* docs(pricing-card): expand price cadence options in MDX

* fix(icon): update exports for icon types

* feat(billing): Use strongly typed BitwardenIcon for pricing card buttons

* refactor(pricing): Remove unused I18nService from PricingCardComponent

* fix(pricing): Improve pricing card button icon template null-safety

* fix(pricing-card): format update

Clarifies the description of the `price` property within the PricingCard component documentation.

No functional code changes are included.

* refactor: Update discount label typography in cart summary

* refactor(stories): Rename account credit translation key to premium subscription credit

* feat(pricing-card): update spacing for card without button
2026-02-03 17:47:58 +00:00
bmbitwarden
2d85b62beb PM-31247 interchanged error message (#18644) 2026-02-03 12:18:10 -05:00
neuronull
11e6b434e3 Fix bytes crate vuln RUSTSEC-2026-0007 (#18737) 2026-02-03 09:59:55 -07:00
Mike Amirault
1e0b64a55b [PM-31430] Add specific messages for creating password and email protected Sends (#18692)
* [PM-31430] Add specific messages for creating password and email protected Sends

* [PM-31430] Fix tests, one bug in Send success drawer component
2026-02-03 11:15:46 -05:00
Stephon Brown
86907d68c2 [PM-29600] Rename Tax Client and Add Endpoints for Upgrade and Proration (#18462)
* BREAKING CHANGE: rename tax-client and add proration endpoint

update

* fix(billing)!: rename tax-client in components

* feat(billing): Add upgrade endpoint

* fix(billing): update preview client error

* fix(billing): add billing address to clients

* fix(billing): add additional prorated amount of months

* fix(billing): update client call parameter

* feat(billing): Enhance ProrationPreviewResponse with new plan details
2026-02-03 11:11:00 -05:00
Jonathan Prusik
fe0d7df538 when only password and new password fields have values and do not match any vault ciphers, trigger a new cipher notification (#18729) 2026-02-03 11:05:02 -05:00