* feat: scaffold new badge service structure
* feat: add state override
* feat: add priority-based override
* feat: implement state clearing
* feat: add docs to badge service functions
* feat: add support for setting icon
* feat: implement unsetting
* feat: implement setting text
* feat: add support for setting background
* fix: default icon
* feat: clean up old update-badge
* feat: save state using StateProvider
* feat: migrate auth status badge updating
* feat: migrate autofill badge updating
* fix: auto set to default values
* chore: woops, clean up copy-pasta
* fix: lint and types
* chore: nit updates from PR review
* feat: remove ability to send in arbitrary icons
* feat: move init to separate function
* fix: wrong import
* fix: typing issues
* fix: try again to fix typing issues
* feat: scaffold tests for new tabId-specific states
* feat: add diffence util function
* feat: add support for limiting state to tabId
* feat: re-implement autofill badge updater to only update when a tab actually changes
* feat[wip]: always set all tabs when changing the general state
* feat[wip]: implement general states for mutliple open tabs
* feat[wip]: implement fully working multi-tab functionality
* feat: optimize api calls
* feat: adjust storage
* chore: clean up old code
* chore: remove unused log service
* chore: minor tweaks
* fix: types
* fix: race condition causing wrong icon on startup
The service assumes that the first emission from the state will be an empty one and discards it
(techincally it just doesn't act on it because pairwise requires a minimum two emissions). This
caused issues when a service is able to update the state before the observable got a change to
properly initialize. To fix this we simply force an empty emission before anything else,
that way we will always react to the emission from the state provider (because that would end up
being the second emission). We then use distinctUntilChanged to avoid unecessarily acting on
an empty state.
* WIP - default collection sorting
* apply filtering to popup list filters service.
* add tests. add feature flag checks
* finalize my items collection filters
* fix type error
* re-add service
* re-add comment
* remove unused code
* fix sorting logic
* shorten variable name to fit one line
* fix error
* fix more errors
* abstract logic to vault filter service
* fix test
* export sort as function instead of adding to class
* fix more tests
* add collator arg
* remove ts-ignore. fix type errors
* remove optional param
* fix vault filter service
* Use aria-disabled for button disabled state
* remove import from testing story
* use aria-disabled attr on bitLink button
* remove unnecessary story attrs
* remove disabled attr if on button element
* create caprture click util
* use caprture click util and fix tests
* fix lint errors
* fix event type
* combine click capture and attr modification
* fix lint error. Commit spec changes left out of last commit in error
* inject element ref
* move aria-disabled styles to common
* move disabled logic into util
* fix broken async actions stories
* fix broken tests asserting disabled attr
* have test check for string true vlalue
* fix Signal type
* fix form-field story import
* remove injector left in error
* aria-disable icon buttons
* update form component css selector to look for aria-disabled buttons
* use correct types. pass nativeElement directly
* add JSDoc comment for util function
---------
Co-authored-by: Will Martin <contact@willmartian.com>
When a user logs in via SSO after their org has offboarded from TDE, we now show them a helpful error message stating that they must either login on a Trusted device, or ask their admin to assign them a password.
Feature flag: `PM16117_SetInitialPasswordRefactor`
* add basic new nav item styling
* update alt-3 bg color
* add x padding to item
* remove copy left in error
* style app switcher to match nav items
* adding new button hover colors
* add new logo lockups
* use new logos in web vault
* fix color and svg fills
* use set height for nav items
* optimize SVGs
* move if logic
* use rem for icon size
* move shield logo
* use shield svg for collapsed icon
* remove unused eslint disable directive
* run prettier
* remove variables
* update logo hover styles
* use more standard flow control syntax
* update admin console logo svg
* add new hover variables
* use class instead of fill
* use variable for logo hover
* remove unnecessary container
* use hover variable for nav switcher
* use correct variables for fill colors
* update hover state to use variable left in error
* give icon width to preserve text alignment
* remove tree story as functionality no longer supported
* remove nested styles helper
* remove obsolete afterContentInit
* remove tree example from layout story
* remove tree example from secondary layout story
* remove tree example from kitchen sink story
* Fix interaction test
* remove remaining references to tree variant
* add padding to increaase checkbox clickable area
* fix checkbox story imports
* enlarge click area of checkbox w/out label
* apply disabled states to before
* WIP
* revert experimental changes
* add negative margin to account for extra padding
* Remove margin from checkbox and apply in form control
* Remove margin from radio as it's applied in form control
* add back line height removed in error
* Add new device type for DuckDuckGo browser
* Added feature support property for sync domains
* Added new features
* Added isDuckDuckGo() to CLI
* Addressed PR feedback.
* Renamed new property
* Fixed rename that missed CLI.
* PM-22391 WIP
* update autofill base desc
* fill cog when match uri open
* switch to button, populate dialog when option selected
* default strategy hint
* update match hint string and dialog behavior
* clean up naming for callbacks and variables
* revert global setting hint — this will be addressed separately
* add tests
* update copy and remove repeated copy to use quoted string
* Update apps/browser/src/_locales/en/messages.json
Co-authored-by: Nick Krantz <125900171+nick-livefront@users.noreply.github.com>
* add translation to web and desktop, make continue and cancel required
---------
Co-authored-by: Nick Krantz <125900171+nick-livefront@users.noreply.github.com>
* add end user feature flag
* add initial setup extension component and route
* redirect users from registration completion to the setup extension page
* add `hideIcon` to anon layout for web
- matches implementation on the browser.
* integrate with anon layout for extension wrapper
* add initial loading state
* conditionally redirect the user upon initialization
* redirect the user to the vault if the extension is installed
* add initial copy for setup-extension page
* add confirmation dialog for skipping the extension installation
* add success state for setup extension page
* only show loggedin toast when end user activation is not enabled.
* add image alt
* lower threshold for polling extension
* close the dialog when linking to the vault
* update party colors
* use the platform specific registration service to to only forward the web registrations to `/setup-extension`
* call `super` rather than `/vault` directly, it could change in the future
* adding validation stories
* add one story for all validations
* fix form field story import
* move validation docs
* fix maxValue default value
* add play function to submit form
This PR makes it so that `SetInitialPasswordComponent` handles the TDE offboarding flow where an org user now needs to set an initial master password.
Feature flag: `PM16117_SetInitialPasswordRefactor`
This change updates every import of StorageServiceProvider,
AbstractStorageService, and ObservableStorageService throughout the common
state code (including spec files) to pull from the new
@bitwarden/storage-core package instead of their old relative paths. The cuts
out one of the issues that needs to be resolved before state can hold its own
as a library without importing common.
* Passkey: use ArrayBuffer instead of Uint8Array to conform WebAuthn spec
* ArrayBufferView generics was too modern for this project
* Correctly update the types from Uint8arrays to ArrayBuffers
* Fixed broken tests + bugs
* Removed arrayBufferViewToArrayBuffer as it's not needed in this invocation paths
---------
Co-authored-by: ozraru <ozraru@raru.work>
Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
* Create importer for xml file from Password Depot 17
- Create importer
- Create test data
- Create unit tests
* Add support for parsing credit cards
* Update comment on importer class
* Wire up the importer to be selectable in the UI
* Import and set favorites based on export file
* Refactor: Extract method for parsing login fields
* Parse comment on credit cards
* Add support for parsing identity records
* Add support for parsing rdp records
* Remove html decoding of password field
* Include setting credit card brand
* Create type to describe the different source item types
* Add support for SoftwareLicense item type
* Add support for teamviewer item type
* Add support for Putty item type
* Skip processing historical entries
* Add support for banking item type
* Add support for information item type
* Add support for certificate into login type
* Rename encrypted-file.xml to noop-encrypted-file due to a source type with the same name
* Add support for encrypted file item type
* Add support for document type
* Add mapping of source field types to bitwarden custom field types
* Remove duplicate code (copy-pasta mistake)
* Added missing docs
* Adding fallback to support MacOS Password Depot 17 xml files
Instead of a version node they have a dataformat node which contains the file format version
* Add support to parse export files from the MacOS client
* Skip creating a folder if it has no name
* Fix recognition and assignment to folders/collections
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Creates a `SetInitialPasswordComponent` to be used in scenarios where an existing and authed user must set an initial password.
Feature Flag: `PM16117_SetInitialPasswordRefactor`
* PM-17737 - feat(anon-layout-width) - consolidate width setting to control title, subtitle, and content together for a unified UX. Removes all titleAreaMaxWidth usages and the titleAreaMaxWidth property entirely.
* PM-17737 - AnonLayout - consolidate stories into playground (w/ the exception of default icon story b/c I can't figure how to omit the icon conditionally).
* PM-17737 - AnonLayoutStories - show secondary content by default
* PM-17737 - Per PR feedback, adjust maxWidthClass logic to remove string concatenation as it can result in tailwind classes not being compiled and available at run time.
* PM-17737 - Per PR feedback, refactor stories to use configuration to generate all the scenarios so we can still track them via snapshots
* PM-17737 - Fix anon layout mdx reference
* PM-17737 - Make AnonLayoutMaxWidths singular
* PM-17737 - When inside of a max width container, the icon container needs explicit width to be able to scale viewbox icons that don't have defined heights / widths
* When saving a cipher, mark any associated security tasks as complete
* fix test error from encryption refactor
* hide security tasks that are associated with deleted ciphers (#15247)
* account for deleted ciphers for atRiskPasswordDescriptions
* add `WebBrowserInteractionService` and check for the extension observable
* update checkForExtension to use observables rather than window timeouts
* add open extension to WebBrowserInteractionService
* add at-risk-passwords to `PopupPageUrls`
* refactor `PopupPageUrls` to `ExtensionPageUrls`
* add test for passing a page
* refactor `Default` to `Index`
* clean up complete/next issue using `race`
* refactor page to url
* continue listening for messages from the extension after subscribed
* mark risk passwords a deprecated
* remove takeUntilDestroyed
* add back `takeUntilDestroyed` for internal `messages`
* removed null filter - unneeded
* add tap to send message for extension installation
* add check for accepted urls to prevent any bad actors from opening the extension