* test commit, checking build pipelines
* regenerate package lock file in attempt to resolve native build issues
* dummy commit to bust cache and cause build in CI
* remove test commit to bust cache
* cleanup test file
* Add getStatus API method for public invite link status endpoint
* Refactor organization invite link status response model and update API method to use POST
- Removed organizationId property from OrganizationInviteLinkStatusResponseModel.
- Changed getStatus method in DefaultOrganizationInviteLinkApiService to use POST instead of GET for fetching invite link status.
- Introduced a new spec file for VaultComponent to test its functionality.
- Implemented a fix to ensure the component refreshes correctly when switching organizations, addressing an issue where subsequent fetches were blocked after the initial load.
* fixes getAllDecrypted by passing sdkCiphersclient to CipherView.fromSdkCipherView
* updates cipher-sdk.service to use/pass sdkCiphersClient wherever possible
The last PR for integration of saving Access Intelligence reports as files. Changes include adding a new implementation of the ReportPersistenceService abstraction, solely for the purpose of conditionally choosing to store reports using the old method (database column storage), or the new way (file storage).
The implementation is determined by the value of the newly added feature flag, for using report file storage.
Angular 21 removed the default Zone-based change detection scheduler,
requiring explicit opt-in via provideZoneChangeDetection(). This was
applied to all other app entry points but missed the bit-browser popup,
causing the Zone CD scheduler to never be registered in the commercial
browser extension build.
* [CL-1203] Place tab overflow More button next to last visible tab
Introduces `bitOverflowTrigger` so the overflow list reserves space for —
and manages the visibility of — a trailing affordance. The More button
now lives inside the overflow list and sits immediately after the last
visible tab instead of being pinned to the far right of the header.
* Unify overflow-list trigger hiding with item hiding
The list now toggles the trigger's `hidden` property in its effect — the
same way it hides overflowed items — once first-pass measurement is
ready. The trigger directive drops its own visibility/aria-hidden host
bindings, and consumers drop the redundant aria-hidden skipPredicate
check. Also avoids reserving trigger space when every item already fits
in the container without it (otherwise a single hidden item would only
exist to make room for the affordance summoning it).
* Realign keyboard focus to More button on overflow menu close
When an item is picked from the overflow menu, selection logic moves
the key manager's active item to the newly selected tab — but CDK's
overlay restores DOM focus to the trigger. The next arrow key would
then jump from the trigger past the just-reintroduced item. Sync the
key manager to the trigger on menu close so navigation continues from
where focus actually is.
* [CL-1046] Add no-bit-dialog-wrapper lint rule
Errors when <bit-dialog> or <bit-simple-dialog> appears inside any
parent HTML element. The dialog selector should be applied as an
attribute on the root element (e.g. <form bit-dialog>) so that the
form receives the dialog's height styling.
* Migrate admin console dialogs to new form pattern
Updates organization member, group, collection, provider, and domain verification dialogs to use <form bit-dialog> pattern following the component library updates.
* Migrate auth settings dialogs to new form pattern
Updates two-factor authentication, WebAuthn, and emergency access dialogs to use <form bit-dialog> pattern following the component library updates.
* Migrate Secrets Manager dialogs to new form pattern
Updates project, service account, access token, and secret dialogs to use <form bit-dialog> pattern following the component library updates.
* Migrate remaining dialogs to new form pattern
Applies the <form bit-dialog> / <form bit-simple-dialog> attribute selector
pattern to the rest of the codebase, satisfying the no-bit-dialog-wrapper
lint rule. 55 templates across auth, admin console, billing, vault,
key management, secrets manager, provider, dirt integrations, importer,
browser, and desktop apps.
* Migrate key rotation dialog to new form pattern
* [PM-37229] Add bwi-passport icon and wire it to the passport cipher type
* Fix icons:build script to compile style.css and avoid duplicate SCSS keys
* [PM-37229] Update passport cipher icon tests to expect bwi-passport
* prune desktop packages
* Fix @napi-rs/cli version mismatch in desktop napi workspace
Aligns package.json declaration with the locked version (3.2.0) to
resolve npm workspace inconsistency that was blocking ng update.
* update Storybook to v10
* update Angular to v21
* override jest in ng builder
* Add jest-environment-jsdom as explicit dependency
Previously installed as a side effect of a jest@29 override; removing
that override caused it to disappear from node_modules.
* Add .claude/worktrees/ to .gitignore
* Restore @napi-rs/cli to 3.5.1 to match main
* Pin jest-environment-jsdom to 29.7.0 and add to renovate config
* Override jest-environment-jsdom to 29.7.0 in build-angular context
* Add isolatedModules to libs/subscription tsconfig.spec.json to fix Angular 21 module resolution
* Change moduleResolution to bundler for Angular 21 subpath export compatibility
* Add isolatedModules to Angular libs with old spec tsconfig pattern
* Disable emitDecoratorMetadata in spec tsconfigs with isolatedModules
* Fix HostListener event parameter types for Angular 21 compiler strictness
* Revert accidental change to access-selector spec
* Remove accidentally generated desktop package-lock.json
* Fix type-only imports/exports caught by Rolldown in Storybook v10/Vite v8
* fix vault-wrapper type error from Angular 21 stricter generic inference
ngComponentOutlet accepts Type<unknown>; annotate computed() explicitly
since VaultComponent is generic and VaultOrigComponent is not, preventing
TypeScript from inferring a compatible union constructor type.
* Fix kitchen-sink interaction tests for Storybook v10
Replace fire-and-forget navigateTo + synchronous getByRole with
navigateAndWaitFor<T>, which sets the hash and retries the ready
callback via waitFor. Storybook v10 starts play functions before
Angular's initial router navigation completes, so synchronous DOM
queries after navigation were failing intermittently.
* Provide ZoneJS change detection scheduler for Storybook stories
Angular 21 no longer sets up the ZoneJS change detection scheduler by
default in bootstrapApplication. Storybook's Angular renderer uses
bootstrapApplication internally and does not add provideZoneChangeDetection
automatically, so Default CD components relying on zone.js to trigger
re-renders after async operations were not updating before Chromatic
snapshots.
* Wait for dialog/side nav to render before Chromatic snapshot
After userEvent.click the dialog and side nav open asynchronously.
Without an explicit waitFor, Chromatic captures the snapshot before the
resulting UI state is present.
* Fix kitchen-sink waitFor: re-query side nav button, use querySelector for dialog
- openSideNav: re-query the toggle button inside waitFor to avoid reading
a stale DOM reference after Angular re-renders the element post-click
- SimpleDialogOpen / VirtualScrollBlockingDialog: replace getByRole("dialog")
with querySelector("cdk-dialog-container") to avoid testing-library's
visibility check failing on a momentarily inaccessible overlay element
* Revert kitchen-sink stories to main
* Bump Angular, Storybook, and ng-select to latest patch versions
* Trigger pre-commit hooks on merge
* Regenerate package-lock.json with --force to fix npm ci sync
* refactors org user view models and consumers to be ts-strict compliant
* DRY up invite logic
* clean up
* run prettier
* fix circular dep
* fix circular dependency (real)
* update test
* more clean up
* more type saftey fixes
* more types
* even more types
* add jsdoc
* fix test
* [PM-34112] Add Passport copy actions to browser extension
Implements the item-copy-actions component support for the Passport
cipher type, following the Driver's License pattern from PM-32693.
- Adds 6 new CopyAction entries (sex, birthPlace, nationality,
issuingCountry, passportType, issuingAuthority) to the copy service,
directive, and hasCopyableValue utility
- Adds singleCopyablePassport, hasPassportValues, and
getNumberOfPassportValues to VaultItemCopyActionsComponent
- Renders the full Passport copy menu in the HTML template, with
single-field shortcut and empty-state handling
- Unit tests for singleCopyablePassport, hasPassportValues (CipherView
and CipherListView paths)
* update copyable types for passport
This fixes memory leaks on async functions and allows us to specify NAPI types
in feature crates rather than duplicating them for exporting in
@bitwarden/desktop-napi.