* WIP updated tab styles and added responsive behavior
* fixes after converting class properties to readonly signals
* - updated host binding to component definition
- converted static class properties to `readonly`
* fixed overflow more button tabindex
* - named `tw-group` in `tab-list-item.directive`
- exported `tabListContainerGap` px value
* migrated `@Input` to `model`
* added tab ordering behavior when selecting from overflow menu
* - updated tabs mdx and stories
- updated tab header margin
- fixed selected tab bottom border not displaying
- fixed keyboard nav between tabs
* fixed type error
* - added 'preserveContentTabs' and 'keyboardNavigation' stories to mdx
- updated 'preserveContent' jsdoc to fix formatting in story
* renamed to `TAB_LIST_CONTAINER_GAP`
* - removed `tw-border-0`
- added "more" translation
* added "more" translation to desktop and browser
* added new line
* updated navigation tabs to include 'bitLabelDirective', trailing icons, overflow responsive behavior
* - removed horizontal spacing from tab group and tab body content
- updated tabs in dialog story and 'header' component to horizontally align tabs correctly
* added "more" translation to kitchen-sink stories
* fixed 'EmptyTab' story for overflow tab behavior
* fix chromatic build error
* updated to `contentChild()`
* fixing keyboard navigation
* add specs for tabs components
* remove debugging text
* remove unused input
* use signal and update styles
* fix keyboard navigation and misalignment
* fix berry rendering bug
* remove tab role from more button
* remove getters and use inject
* remove disablePadding left in error
* remove obsolete input
* fix broken aria attr
* update trailingIcon to endIcon
* remove label directive and use start icon
* apply gap to host style property
* fix broken exports and imports
* remove active getter
* use anchors for overflow menu
* render start icon in tab link component
* remove unneeded aria attr
* display start icon in list and use correct menu item slots
* fix overflow label not rendering
* minor grammar update
* remove unused imports
* [CL-667] refactor(components): extract reusable overflow-list directive (#20651)
* refactor(components): extract reusable overflow-list directive
* refactor(overflow-list): collapse measurement effect into afterNextRender
The closure-flag effect was working around a timing claim that doesn't hold:
content queries are populated by ngAfterContentInit, well before afterNextRender
runs. A single afterNextRender callback covers measurement, RO attachment, and
cleanup — no mutable flag, no zombie effect re-firing on every items() change.
* fix(overflow-list): drop host overflow:hidden clipping focus rings
The host's overflow:hidden was clipping tab focus rings (and any other
legitimate visual overflow). Items get [hidden] applied synchronously
when they overflow, so the clipping safety net wasn't earning its cost.
* fix(tab-nav-bar): apply roving tabindex to align with tab-group
tab-nav-bar already installs a FocusKeyManager for arrow-key navigation,
but every tab-link was also a natural tab stop — so users tabbing through
the page hit each link individually instead of one stop for the nav.
Push tabindex state down from the parent in updateActiveLink: the active
(or first non-disabled) link gets 0, the rest get -1. Seeded once from
ngAfterViewInit so the initial route lands with correct tab order.
* update tab group
---------
Co-authored-by: Bryan Cunningham <bryan.cunningham@me.com>
Co-authored-by: Will Martin <contact@willmartian.com>
* update icon component to drop trailing slash
* apply same trailing slash logic in notification background and adjust iconServerUrl type
* remove trailing slash simplification, keep downstream normalization behavior
* align iconsServerUrl typing with buildCipherIcon contract
* testing that the current env url is updated
- These changes update the client to fetch all collections with details for the Org (includes both user and group access to the collections), which allows the report to be properly generated using lookups for both direct user access and group access to collections.
* add driver's license support to desktop
- Add i18n strings for form field labels (date of birth, issuing info,
expiration, license class) and rename *DriverLicense → *License header keys
- Add DriversLicense case to vault-cipher-row copyFields (first/middle/
last name + license number)
- Add DriversLicense context menu to vault-orig.component (tray menu)
- Add firstName/middleName/lastName as CopyAction types with hasCopyableValue
and directive support
- Add "License Number" to password reprompt protected field types
* remove duplicate entries
* remove duplicates
* remove duplicate keys
---------
Co-authored-by: SmithThe4th <gsmith@bitwarden.com>
* fix popup width when opening in popped out mode, fix autofill inline menu opening, respect browser size in popped-out mode
* Co-authored-by: capenapplebw <capple@bitwarden.com>
* add passport translations
* add passport to web app
* add date-field-group to combine logic for reuse across cipher types
* implement date field for passport
* Add missing passport model files and integrate into cipher models
* update section heading
* Remove numeric values from month selector
* add copy action for national identification number
* fix tests
* omit linked types
* add placeholder for AC
* fix test
* emit failures to validation from child form
* remove old tests
* update date field component to match drivers license implementation
* fix removed translations that were duplicates between drivers license PR and passport
* add events for passport number viewed
* fix update to bank account to quiet down the diff
* collect number visible event
* add passport getter
* add fixedWith for icon
* Refactor password strength component for improved performance and readability
- Introduced ChangeDetectorRef to optimize rendering in response to input changes.
- Consolidated visual update logic into a separate method for clarity.
- Enhanced handling of password strength calculations and visual feedback.
- Ensured real-time updates for password strength in the input-password component.
* Enhance password strength component's ngOnChanges method for better performance
- Updated ngOnChanges to debounce rendering only for email or name changes, avoiding unnecessary renders for password updates.
- Improved clarity of the method by explicitly handling password changes.
* Update tests for PasswordStrengthV2Component to include email change handling
- Modified ngOnChanges test cases to simulate email changes using SimpleChange.
- Ensured that password score emissions are correctly tested when email input is updated.
Co-authored-by: bw-ghapp[bot] <178206702+bw-ghapp[bot]@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* Add the exempt property
* Fix failing test
* revert the use exemptFromBillingAutomation
* revert changes to warning message
* add a fix to hide only the callout
* reduce prevalence of observer cascades and frequency of shadow DOM detection
* probe closed roots only on valid elements
* add fixmes and doc updates for intentional optimizations
---------
Co-authored-by: Marton Danko <marton.danko@worldline.com>
* add passport and drivers license to cipher for breaking changes
* initial add of drivers license to the web
* fix copy actions and hidden fields for drivers license
* handle events for driver license
* exclude license from filters when feature flag is off
* format dates properly to match designs
* allow for cipher types to not have a nudge associated with them
* fix subtitle to match designs
* update i18n key names to avoid regression
* fix import order
* fix tests
* fix tests
* fix: update i18n key for driver's license in emergency-access dialog
* fix: update i18n keys for driver's license in vault-item-dialog
* fix: remove duplicate keys in cipher test fixture
* fix: correct indentation in permissions ternary operator
* fix: remove redundant ng-container wrapper in vault-cipher-row
* missed a test case fix
* prettier
* add date-field-group to combine logic for reuse across cipher types
* update drivers license components to use new date component
* update strict typing
* fix add-item dialog tests
* Remove passport model files from drivers-license branch
* Remove numeric values from month selector
* update copy actions
* fix tests
* address local code review
* omit linked fields
* Update apps/web/src/app/vault/components/vault-items/vault-cipher-row.component.ts
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
* swap order of issuing authority
* surface date errors to parent form
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
* improve type safter for invite link, add allowed domains field, wire up local state
* clean up
* fix reactivity
* clean up
* wip
* fix 404 handling, remove redundant signal
* add shareReplay
* update tests
* fix tests
* fix template, state clearing, more guards, clean up
* clean up
* cache org link by ID
* clean up
* clean up
* fix copy
* clean up
* more clean up
- Remove all Azure Key Vault and BW-GHAPP token generation
- Remove GPG signing steps
- Use github.token instead of app token
- Use github-actions[bot] email instead of bitwarden-devops-bot
- Create PR with version bump instead of pushing directly to main
- Update permissions (remove id-token, add pull-requests)
* Refactor bidirectional mapping for CollectionType and SDK types
Updated the mapping between numeric CollectionType and SDK's numeric variant to ensure type safety. The previous string variant has been replaced with numeric values for better consistency and maintainability. This change enhances type checking in TypeScript and ensures that any additions to the CollectionTypes require corresponding updates in the mapping.
* Refactor CollectionType handling in collection models
Removed bidirectional mapping for CollectionType and SDK types, simplifying the type assignment in the Collection and CollectionView classes. This change enhances code clarity and reduces complexity by directly using the SDK's numeric variant for type assignments.
* Update CollectionType handling in tests to use numeric values
Replaced string representations of CollectionType with their corresponding numeric values in the collection SDK mapping tests. This change ensures consistency with the recent refactor of type handling, enhancing type safety and maintainability across the codebase.
* Update tests to use CollectionTypes for type assignments
Replaced numeric values with the CollectionTypes enum in the collection SDK mapping tests. This change improves code clarity and consistency, aligning with recent refactors to enhance type safety and maintainability across the codebase.
* Update Bitwarden SDK dependencies to version 0.2.0-main.739 in package.json and package-lock.json. This change ensures compatibility with the latest features and fixes in the SDK.
* Refactor tests to utilize CollectionTypes enum for type assignments
Updated test cases in default-collection-encryption.service.spec.ts to replace string literals with the CollectionTypes enum for improved type safety and consistency. This aligns with recent refactors aimed at enhancing code clarity and maintainability.
* [PM-31760] Implement sign() for PrivateKey
* [PM-31760] Move signature dep directly to ssh_agent, rather than in the workspace
* [PM-31760] Update comments based on PR feedback
* [PM-31760] Switch try_sign to sign, adding comments
* [PM-31760] Slight comment updates.
* [PM-31760] Comment updates