* add component import examples
* component library story html formatting/cleanup nits
* Update libs/components/src/dialog/dialog/dialog.mdx
Co-authored-by: Will Martin <contact@willmartian.com>
* Update libs/components/src/badge/badge.mdx
Co-authored-by: Will Martin <contact@willmartian.com>
* Update libs/components/src/dialog/simple-dialog/simple-dialog.mdx
Co-authored-by: Will Martin <contact@willmartian.com>
---------
Co-authored-by: Will Martin <contact@willmartian.com>
* Rename service-factory folder
* Move cryptographic service factories
* Move crypto models
* Move crypto services
* Move domain base class
* Platform code owners
* Move desktop log services
* Move log files
* Establish component library ownership
* Move background listeners
* Move background background
* Move localization to Platform
* Move browser alarms to Platform
* Move browser state to Platform
* Move CLI state to Platform
* Move Desktop native concerns to Platform
* Move flag and misc to Platform
* Lint fixes
* Move electron state to platform
* Move web state to Platform
* Move lib state to Platform
* Fix broken tests
* Rename interface to idiomatic TS
* `npm run prettier` 🤖
* Resolve review feedback
* Set platform as owners of web core and shared
* Expand moved services
* Fix test types
---------
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* [EC-1070] Introduce flag for enforcing master password policy on login
* [EC-1070] Update master password policy form
Add the ability to toggle enforceOnLogin flag in web
* [EC-1070] Add API method to retrieve all policies for the current user
* [EC-1070] Refactor forcePasswordReset in state service to support more options
- Use an options class to provide a reason and optional organization id
- Use the OnDiskMemory storage location so the option persists between the same auth session
* [AC-1070] Retrieve single master password policy from identity token response
Additionally, store the policy in the login strategy for future use
* [EC-1070] Introduce master password evaluation in the password login strategy
- If a master password policy is returned from the identity result, evaluate the password.
- If the password does not meet the requirements, save the forcePasswordReset options
- Add support for 2FA by storing the results of the password evaluation on the login strategy instance
- Add unit tests to password login strategy
* [AC-1070] Modify admin password reset component to support update master password on login
- Modify the warning message to depend on the reason
- Use the forcePasswordResetOptions in the update temp password component
* [EC-1070] Require current master password when updating weak mp on login
- Inject user verification service to verify the user
- Conditionally show the current master password field only when updating a weak mp. Admin reset does not require the current master password.
* [EC-1070] Implement password policy check during vault unlock
Checking the master password during unlock is the only applicable place to enforce the master password policy check for SSO users.
* [EC-1070] CLI - Add ability to load MP policies on login
Inject policyApi and organization services into the login command
* [EC-1070] CLI - Refactor update temp password logic to support updating weak passwords
- Introduce new shared method for collecting a valid and confirmed master password from the CLI and generating a new encryption key
- Add separate methods for updating temp passwords and weak passwords.
- Utilize those methods during login flow if not using an API key
* [EC-1070] Add route guard to force password reset when required
* [AC-1070] Use master password policy from verify password response in lock component
* [EC-1070] Update labels in update password component
* [AC-1070] Fix policy service tests
* [AC-1070] CLI - Force sync before any password reset flow
Move up the call to sync the vault before attempting to collect a new master password. Ensures the master password policies are available.
* [AC-1070] Remove unused getAllPolicies method from policy api service
* [AC-1070] Fix missing enforceOnLogin copy in policy service
* [AC-1070] Include current master password on desktop/browser update password page templates
* [AC-1070] Check for forced password reset on account switch in Desktop
* [AC-1070] Rename WeakMasterPasswordOnLogin to WeakMasterPassword
* [AC-1070] Update AuthServiceInitOptions
* [AC-1070] Add None force reset password reason
* [AC-1070] Remove redundant ForcePasswordResetOptions class and replace with ForcePasswordResetReason enum
* [AC-1070] Rename ForceResetPasswordReason file
* [AC-1070] Simplify conditional
* [AC-1070] Refactor logic that saves password reset flag
* [AC-1070] Remove redundant constructors
* [AC-1070] Remove unnecessary state service call
* [AC-1070] Update master password policy component
- Use typed reactive form
- Use CL form components
- Remove bootstrap
- Update error component to support min/max
- Use Utils.minimumPasswordLength value for min value form validation
* [AC-1070] Cleanup leftover html comment
* [AC-1070] Remove overridden default values from MasterPasswordPolicyResponse
* [AC-1070] Hide current master password input in browser for admin password reset
* [AC-1070] Remove clientside user verification
* [AC-1070] Update temp password web component to use CL
- Use CL for form inputs in the Web component template
- Remove most of the bootstrap classes in the Web component template
- Use userVerificationService to build the password request
- Remove redundant current master password null check
* [AC-1070] Replace repeated user inputs email parsing helpers
- Update passwordStrength() method to accept an optional email argument that will be parsed into separate user inputs for use with zxcvbn
- Remove all other repeated getUserInput helper methods that parsed user emails and use the new passwordStrength signature
* [AC-1070] Fix broken login command after forcePasswordReset enum refactor
* [AC-1070] Reduce side effects in base login strategy
- Remove masterPasswordPolicy property from base login.strategy.ts
- Include an IdentityResponse in base startLogin() in addition to AuthResult
- Use the new IdentityResponse to parse the master password policy info only in the PasswordLoginStrategy
* [AC-1070] Cleanup password login strategy tests
* [AC-1070] Remove unused field
* [AC-1070] Strongly type postAccountVerifyPassword API service method
- Remove redundant verify master password response
- Use MasterPasswordPolicyResponse instead
* [AC-1070] Use ForceResetPassword.None during account switch check
* [AC-1070] Fix check for forcePasswordReset reason after addition of None
* [AC-1070] Redirect a user home if on the update temp password page without a reason
* [AC-1070] Use bit-select and bit-option
* [AC-1070] Reduce explicit form control definitions for readability
* [AC-1070] Import SelectModule in Shared web module
* [AC-1070] Add check for missing 'at' symbol
* [AC-1070] Remove redundant unpacking and null coalescing
* [AC-1070] Update passwordStrength signature and add jsdocs
* [AC-1070] Remove variable abbreviation
* [AC-1070] Restore Id attributes on form inputs
* [AC-1070] Clarify input value min/max error messages
* [AC-1070] Add input min/max value example to storybook
* [AC-1070] Add missing spinner to update temp password form
* [AC-1070] Add missing ids to form elements
* [AC-1070] Remove duplicate force sync and update comment
* [AC-1070] Switch backticks to quotation marks
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* [EC-667] feat: scaffold new select component
* [EC-667] feat: sort of working implementation
* [EC-667] feat: support for using in forms
* [EC-667] feat: add bit-select example to full form
* [EC-667] fix: broken aria label connetion
* [EC-667] fix: web not building
* [EC-667] fix: dropdown getting trapped in dialog
* [EC-667] fix: select not emitting correct value
* [EC-667] feat: add collection icon to options
* [EC-667] feat: add default select placeholder translation
* [EC-667] fix: undefined handling
* [EC-667] fix: value vs options race condition
* [EC-667] feat: remove x and add "no collection" option
* [EC-667] chore: add country list disclaimer
* chore: clean up comments
* [EC-667] chore: cleanup commented import
* [EC-667] fix: input text color not applying to single-select
* [EC-816] Separate cloud and selfhosted subscription components (#4383)
* [EC-636] Add license sync to web vault (#4441)
* [EC-1036] Show correct last license sync date (#4558)
* [EC-1044] Fix: accidentally changed shared i18n string
* [CL-50] feat: scaffold checkbox component
* [CL-50] feat: implement control value accessor for checbox
* [CL-50] feat: add form-field support to checkbox
* [CL-50] feat: implement non-selected checkbox styling
* [CL-50] feat: implement checkbox checked styles
* [CL-50] feat: improve checkbox form-field compat
* [CL-50] fix: checkbox border hover wrong color
* [CL-50] feat: use svg instead of bwi font
* [CL-50] feat: scaffold radio button
* [EC-50] feat: implement radio logic
* [CL-50] feat: add radio group tests
* [CL-50] feat: add radio-button tests
* [CL-50] feat: implement radio button styles
* [CL-50] fix: checkbox style tweaks
* [CL-50] feat: smooth radio button selection transition
* [CL-50] chore: various fixes and cleanups
* [CL-50] feat: add form field support
* [EC-50] feat-wip: simplify checkbox styling
* [EC-50] feat: extract checkbox into separate component
* [CL-50] feat: add standalone form control component
* [CL-50] feat: remove unnecessary checkbox-control
It wasn't really doing anything, might as well use form control directly
* [CL-50] chore: create separate folder with form examples
* [CL-50] feat: switch to common bit-label
* [CL-50] feat: let radio group act as form control
* [CL-50] chore: restore form-field component
* [CL-50] feat: add support for hint and error
* [CL-50] fix: storybook build issue
* [CL-50] fix: radio group label wrong text color
* [CL-50] fix: translation
* [CL-50] fix: put hint and errors outside label
* [CL-50] feat:
* [CL-50] feat: add custom checkbox example story
* [CL-50] chore: remove 1 from full example name
* [CL-50] chore: clean up unused icon
* [CL-50] chore: clean up unused tailwind plugin
* [CL-50] fix: ring offset color in custom example
* [CL-50] chore: clean up unused icon
* [CL-50] chore: add design link
* [CL-50] chore: remove unused import
* [CL-50] fix: pr review comments
* [CL-50] fix: improve id handling