Commit Graph

480 Commits

Author SHA1 Message Date
Vicki League
4b32d1f9dd
Revert "[CL-622][CL-562][CL-621][CL-632] various drawer improvements (#14120)" (#14827)
This reverts commit a0429d7d09.
2025-05-16 16:02:03 -04:00
Oscar Hinton
c8629b92d3
[CL-694] Remove unused imports (#14795)
* Remove unused imports

* Remove more unused imports
2025-05-16 17:11:18 +02:00
Vicki League
07659184ad
[CL-627] Allow menu to open above trigger without blocking trigger (#14675) 2025-05-16 09:17:42 -04:00
Oscar Hinton
ac49e594c1
Add standalone false to all non migrated (#14797)
Adds standalone: false to all components since Angular is changing the default to true and we'd rather not have the angular PR change 300+ files.
2025-05-15 10:44:07 -04:00
Will Martin
a0429d7d09
[CL-622][CL-562][CL-621][CL-632] various drawer improvements (#14120)
- add focus trap to drawers
- add config to open existing dialogs as drawers
- make drawer take up fill width/height on smaller screens
2025-05-15 10:32:52 -04:00
Oscar Hinton
13f97236f2
[CL-659] Replace CL non tw css classes with data attributes (#14421)
The component library currently uses classes to determine fvw target, default content and main content. This replaces them with data attributes which avoids the css class linter from detecting them as invalid classes.
2025-05-14 20:14:27 +02:00
Patrick-Pimentel-Bitwarden
0b0397c3f0
fix(enums-eslint): Enum Rule for ESLint (#14650)
* fix(enums-eslint): Enum Rule for ESLint - Added enums in the warnings for eslint.

* fix(enums-eslint): Enum Rule for ESLint - Updated to error in both places for enums.

* fix(enums-eslint): Enum Rule for ESLint - Added new eslint plugin for warning on enums.

* fix(enums-eslint): Enum Rule for ESLint - Changed based on suggestion.

Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>

* refactor(browser-platform-utils): Remove Deprecation and Fix Code - Changed usages of firefox to private and moved the usages to the preferred public method and removed the deprecations.

* fix(enums-eslint): Enum Rule for ESLint - Updated to error and added disable rules for all other places.

* fix(enums-eslint): Enum Rule for ESLint - Undid other changes by accident
2025-05-13 10:07:38 -04:00
Bryan Cunningham
4d15f2d43c
[PM-16057] use Roboto as primary font (#14553)
* swap to using roboto variable font
2025-05-12 09:00:01 -04:00
Daniel James Smith
26ecf3191c
Fix angular performance issue on color-password.component (#14560)
* Fix performance issue, by using track $index instead of character as it can contain duplicate characters

* Migrate component to use Angular signal inputs

* Make file ts-strict compliant

---------

Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2025-05-08 17:19:09 -04:00
Oscar Hinton
78dafe2265
Cleanup migrated components (#14625)
Cleans up migrated components by removing unnecessary old behaviour.

- Removes ng-template and ViewChild used by the old Modal Service.
- Remove aria-dismiss used by old Modals.
- Remove aria-haspopup and aria-expanded on bitMenuTriggerFor since it's handled by the directive.
2025-05-08 09:16:11 -07:00
Vicki League
8ecb32f30f
[CL-333] Icon Refresh Feature Branch (#14298)
Some checks failed
Chromatic / Check PR run (push) Has been cancelled
Scan / Check PR run (push) Has been cancelled
Testing / Run tests (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (macos-14) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-22.04) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (windows-2022) (push) Has been cancelled
Testing / Rust Coverage (push) Has been cancelled
Chromatic / Chromatic (push) Has been cancelled
Scan / SAST scan (push) Has been cancelled
Scan / Quality scan (push) Has been cancelled
* [CL-571] Update icons to new fileset and metaphors (#14163)

* [CL-518] Convert icons docs to stories (#14299)

* [CL-574] Update inline autofill icons (#14379)

---------

Co-authored-by: William Martin <contact@willmartian.com>
2025-05-07 17:07:14 -04:00
Vicki League
a408990a3c
[CL-248] Update Storybook intro docs (#14253)
* [CL-248] Update Storybook intro docs

* add common edge cases

* more updates
2025-05-05 13:28:13 -04:00
Will Martin
c61bb3dc70
[PM-21121] fix(select): update selected item when items input changes (#14609) 2025-05-05 13:25:28 -04:00
Nick Krantz
de6b58c10a
[PM-20110] Disabled copy buttons on vault (#14549)
* export BitIconButtonComponent from component library

* manually update the disabled state of the icon button for copy cipher field directive

* add tests for `CopyCipherFieldDirective`
2025-05-01 12:44:08 -05:00
renovate[bot]
f39e37002b
[deps] Autofill: Update prettier to v3.5.3 (#14480)
* [deps] Autofill: Update prettier to v3.5.3

* prettier formatting updates

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Prusik <jprusik@classynemesis.com>
2025-04-29 16:40:58 -04:00
Bryan Cunningham
116751d4ca
add small button variant (#14326)
* adds small button size variant

* makes small icon button same size as small button

* testing small button for extension header

* remove extension changes

* update popout layout story

* revert change to small icon button padding

* add whitespace to see if error resolves

* default buttonType to primary

* default buttonType to secondary

* add comment around why nonNullButtonSize value exists

* add comment to  property about using the non null version

* Update apps/browser/src/platform/popup/layout/popup-layout.stories.ts

Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>

* updated input syntax when using static values

* remove nonNull value coersion

* allow changing of size input in Story

---------

Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2025-04-24 15:34:29 -04:00
Oscar Hinton
490a46e9b6
[PM-19923] Update autofocus directive to be more aggressive in focusing (#14368)
* Update autofocus directive to be more aggressive in focusing

* Handle checkVisibility not existing (safari < 17.4)

* Tweak phrasing

* Change approach
2025-04-22 11:46:35 -05:00
Bryan Cunningham
cbab354c0e
Hide bit-icon component from screen readers by default (#14295)
* adds aria-hidden to bit-icon when no aria-label provided

* add ariaLabel to logo svg usages

* add ariaLabel documentation

* default ariaLable value to undefined

* add logo label to translations

* adds i18n pipe to component

* Add binding to example docs
2025-04-18 10:38:19 -04:00
Bryan Cunningham
ac1210a7ed
remove margin from checkbox hint (#14251) 2025-04-14 12:56:30 -04:00
Alec Rippberger
4772362928
refactor(auth): [PM-8976] migrate two-factor setup component to Tailwind and standalone
- Remove Bootstrap styles from two-factor-setup component and replace with Tailwind equivalents
- Convert two factor components to standalone components to move away from LooseComponents
- Replace ul/li list with bit-item-group and bit-item components
- Integrate with the bit design system

---------

Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
2025-04-10 14:13:11 -05:00
Bryan Cunningham
f24a4d139d
remove hint margin in radio button (#14223) 2025-04-10 14:42:15 -04:00
Bryan Cunningham
c59b321dbb
adds button story and docs for button with icon spacing (#14198)
* add story & docs for button with icon spacing

* add back block story removed in error

* remove unnecessary args
2025-04-10 14:17:37 -04:00
Jason Ng
31cc2c57ee
[CL-421] add new notification variant to badge (#14130)
* add new notification variant to badge
2025-04-07 10:37:34 -04:00
Vicki League
64bbdcd638
Revert "fix menu trigger fallback position (#14040)" (#14112)
This reverts commit b0ccadcc0f.
2025-04-03 15:09:10 -04:00
Will Martin
76cb3fd38d
[CL-623] export CDK dialog deps from libs/components (#14074)
* add cdk dialog deps to CL dialog barrel file

* find and replace cdk dialog import

* run prettier
2025-04-02 15:08:38 -04:00
Nick Krantz
3c83165b4e
[PM-17598] Long custom fields (#13668)
* add custom directive to use the angular CDK resize textarea directive

* swap to textarea to allow for full content to be shown when view text or hidden custom fields

* add text-field styling to web sass file

* move angular import to CL scss file

* add `textarea` to selector to enforce directive usage only on textareas
2025-04-02 09:58:31 -07:00
Jordan Aasen
b0ccadcc0f
fix menu trigger fallback position (#14040) 2025-04-01 14:15:54 -07:00
Vicki League
575e8b691f
[CL-570] Deprecate old icons (#13663) 2025-04-01 11:34:04 -04:00
Vijay Oommen
a877450e0a
PM-2630 virtual scroll on tables (#13725)
Tested by QA and passed.
2025-03-10 15:52:52 -04:00
Oscar Hinton
a569dd9ad6
[PM-15892] [PM-12250]Remove nord and remnants from solarizedark (#13449)
* Remove nord and remnants from solarizedark

* Update window reload color

* Remove extension-refresh feature flag from clients (#13450)

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

* Remove usage of nord and solarized themes within DarkImageDirective

---------

Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2025-03-10 15:33:55 +01:00
Thomas Rittson
ef72f513b1
eslint: report unused disable directives (#13463)
Remove any unused disable directives and FIXMEs in our code
2025-03-10 09:33:08 -04:00
Shane Melton
b9ebf0704a
[PM-14426] At-risk password Getting Started Carousel (#13383)
* [PM-14426] Add hideIcon input to simple dialog component

* [PM-14426] Introduce dark-image-source.directive.ts

* [PM-14426] Tweaks to the Vault Carousel component
- Create a Carousel NgModule so that the carousel component and carousel slide component are exported
- Update barrel files
- Adjust min height calculation logic to wait for ;hidden slides to finish rendering before calculating height

* [PM-14426] Introduce at risk password getting started carousel component and images

* [PM-14426] Refactor at-risk-password-page.service.ts to use the same state definition for banner and carousel dismissal

* [PM-14426] Open the getting started carousel on page load

* [PM-14426] Add tests

* [PM-14426] Use booleanAttribute

* [PM-14426] Fix failing type checking
2025-02-26 13:24:35 -08:00
Danielle Flinn
e6e6058f9e
CL-261: update popover styles and fix stories (#13547)
* updated popover styles and fix stories

* fixed alignment of icon button title and added long title story
2025-02-25 13:55:21 -08:00
Vicki League
6d1914f43d
[CL-485] Add small delay for async action loading state (#12835) 2025-02-25 09:56:01 -05:00
Vicki League
886cf48e77
[CL-524] Unskip chromatic tests to troubleshoot (#13477) 2025-02-24 09:48:54 -05:00
Vicki League
657902cdcc
[CL-349] Allow @apply styles to be used in CL css (#13414) 2025-02-20 12:56:22 -05:00
Oscar Hinton
661ee03698
Add cdk-visually-hidden to tw-theme for Angular CDK LiveAnnouncer (#13410)
Angular CKD LiveAnnouncer depends on some css logic to hide announcements from being displayed.

This imports the required CSS to ensure the text is hidden from regular view.
2025-02-19 17:42:34 +01:00
Vicki League
6e4a06dab4
[CL-317] Use storybook theme addon for theme switching (#13451) 2025-02-18 15:29:47 -05:00
✨ Audrey ✨
30ee79d206
add popupBackAction to send item and export vault pages (#13363) 2025-02-18 12:53:10 -05:00
Oscar Hinton
dc606847e4
[PM-16447] Disable preserve whitespaces (#12994)
Angular 6 changed the default to not preserve whitespaces. We've continued to opt into this pattern for backwards compatibility but we're experiencing issues with the new control flow syntax and would therefore like to switch and not preserve whitespace any longer.
2025-02-18 17:05:29 +01:00
Vicki League
07d6f9433f
[CL-317][CL-502] Remove Storybook combined Light + Dark theme, Nord theme, and Solarized theme (#13360) 2025-02-14 16:49:56 -05:00
Vicki League
fabcf04398
[CL-335][CL-336][CL-374] Announce toasts more consistently (#13167) 2025-02-13 14:56:43 -05:00
Vicki League
c1fbaf6acf
[CL-586] Ensure story elements do not overflow due to wrapper border (#13348) 2025-02-12 13:16:13 -05:00
Vicki League
2284fe32be
[CL-444] Use Canvas story wrapper properly (#13375) 2025-02-12 11:26:21 -05:00
Will Martin
29043b441e
[PM-16935] fix bad imports in libs/components (#13317) 2025-02-10 09:39:17 -05:00
Maciej Zieniuk
7e2e604439
[PM-14445] TS strict for Key Management Biometrics (#13039)
* PM-14445: TS strict for Key Management Biometrics

* formatting

* callbacks not null expectations

* state nullability expectations updates

* unit tests fix

* secure channel naming, explicit null check on messageId

* revert null for getUser, getGlobal in state.provider.ts

* revert null for getUser, getGlobal in state.provider.ts
2025-02-10 13:31:19 +01:00
Vicki League
b9faf2c9c0
[PM-15975] Prevent dialogs from overlapping interactive top menu bars (#13251) 2025-02-06 13:33:07 -05:00
Jordan Aasen
2c118d9f01
[PM-16925] - fix all restricted imports in vault (#13236)
* fix all restricted imports in vault

* fix spec

* remove export
2025-02-04 14:26:03 -08:00
Vicki League
3c01abcdfd
[CL-569] Fix ngClass error on item content (#13235) 2025-02-03 20:43:27 +00:00
Oscar Hinton
e5ffc162b8
[CL-553] Migrate CL to Control Flow syntax (#12390) 2025-02-03 20:11:59 +01:00
Vicki League
ca53ecccd0
[CL-569] Optionally allow item content to wrap (#13178) 2025-01-31 13:42:41 -05:00
Will Martin
f17cb61183
[UIF] fix toast title type (#13098) 2025-01-30 16:20:41 -05:00
renovate[bot]
c3bb76bee0
[deps] Architecture: Update eslint-plugin-tailwindcss to v3.18.0 (#12966)
* [deps] Architecture: Update eslint-plugin-tailwindcss to v3.18.0

* Fix linting

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2025-01-27 11:12:12 -05:00
Danielle Flinn
664ff9a1d3
[CL-276] Update tab-list-item styles (#13063) 2025-01-26 20:57:07 -05:00
Oscar Hinton
d820bfb691
[PM-17346] Move A11yTitle and CopyClick to CL (#12936)
* Move A11yTitle and CopyClick to CL
2025-01-20 11:43:10 +01:00
Oscar Hinton
83802fcdc5
Fix i18n import of drawer component (#12932)
Resolves main being broken after merging #12831 due to a new component depending on `I18nPipe`.
2025-01-17 16:01:23 +00:00
Danielle Flinn
23227f5064
[CL-256] Update Figma links in Storybook docs (#12901)
* Update Figma links

updated existing Figma links to point to the new file and added Figma links to components missing them

* Added last missing Figma links
2025-01-17 07:50:20 -08:00
Oscar Hinton
e5f83ff086
[PM-17031] Create UI-common (#12831)
Extract core functionality from `libs/angular` to allow teams to depend on `libs/ui-common` instead.

Moves the following functionality to `ui-common`.
- `I18nPipe`. `libs/angular` still has an old copy but `components` depends on the new variant from `ui-common`.
- `safeProvider`, `SafeProvider` and `SafeInjectionToken`. `libs/angular`re-exports these to avoid needing to update all consumers.
2025-01-17 10:42:31 -05:00
Oscar Hinton
dafeb1492a
Add type=button to stories (#12930) 2025-01-17 14:57:31 +01:00
Will Martin
ea052b9e07
[CL-428] create drawer component (#12812)
* remove private/protected/lifecycle fields from Storybook docs table

* move theme override decorator into util method

* implement base drawer component

* update bit-layout to be drawer container

* create drawer helper components

* expose new APIs to DS barrel file

* write docs

* update docs; add role input

* use host directive instead of service

* clean up logic a tad

* add start slot to story

* update docs

* Apply suggestions from code review

Co-authored-by: Victoria League <vleague@bitwarden.com>

* update docs

* Update libs/components/src/drawer/drawer.mdx

Co-authored-by: Victoria League <vleague@bitwarden.com>

* update docs / stories

* add non text element to drawer

---------

Co-authored-by: Victoria League <vleague@bitwarden.com>
2025-01-16 15:43:04 -05:00
renovate[bot]
62e879940c
[deps] SM: Update typescript-eslint monorepo to v8 (major) (#10601)
* [deps] SM: Update typescript-eslint monorepo to v8

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hinton <hinton@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2025-01-14 11:23:59 -05:00
Victoria League
e568a7a812
[CL-524] Ignore kitchen sink virtual scroll story (#12858) 2025-01-14 11:03:58 -05:00
Victoria League
8062475044
[PM-16243] Allow users to collapse extension sections (#12756) 2025-01-13 10:37:26 -05:00
Oscar Hinton
db84ccf935
[PM-16838] Forbid imports containing /src/ (#12744)
Forbids bad imports containing /src/.
2025-01-10 10:37:34 -05:00
Nick Krantz
fa61928daf
[CL] add ToastVariant to CL barrel file (#12804) 2025-01-10 09:58:47 -05:00
Oscar Hinton
653b730969
[PM-16872] Update libs to use explicit dependencies (#12770)
Update all libs to use explicit dependencies rather than relying on tsconfig.libs.json. This allows us to more easily understand the dependencies between libs and prevent users from accidentally adding new dependencies.

We still use tsconfig.libs (now renamed tsconfig.spec) for tests.
2025-01-10 11:21:38 +01:00
Oscar Hinton
9ca3d0653d
Fix strict typescript for Component Library stories (#12423)
Some checks failed
Chromatic / Check PR run (push) Has been cancelled
Scan / Check PR run (push) Has been cancelled
Testing / Check for test secrets (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (macos-latest) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-22.04) (push) Has been cancelled
Testing / Run Rust tests on ${{ matrix.os }} (windows-latest) (push) Has been cancelled
Chromatic / Chromatic (push) Has been cancelled
Scan / SAST scan (push) Has been cancelled
Scan / Quality scan (push) Has been cancelled
Testing / Run tests (push) Has been cancelled
Fixing some low hanging fruits for moving CL to strict typescript.

This primarily removes the types from args since TS infers them differently. We previously needed them since storybook would use any for args but now provides proper typings
2025-01-07 17:28:35 +01:00
Kyle Spearrin
05d373d070
turn off autocomplete for browser search input (#12679) 2025-01-03 14:51:54 -05:00
Victoria League
c07454342d
[PM-16675] Prevent scrollbar from appearing on each send item (#12666) 2025-01-03 09:41:18 -05:00
Victoria League
a95427eee0
[CL-524] Ignore flaky elements in Chromatic tests (#12561) 2024-12-30 16:42:53 -05:00
Victoria League
6539f06654
[CL-135] Fix import statement for standalone component (#12589) 2024-12-30 14:46:29 -05:00
Victoria League
1f4972fcb8
[PM-16102] Prevent item action height overflow (#12588) 2024-12-30 09:10:42 -05:00
Victoria League
395258d63e
[PM-16102] Add min width on interactive badges (#12514) 2024-12-23 12:08:52 -05:00
Victoria League
64166a9354
[PM-16102] Increase clickable area for bit-item actions (#12450) 2024-12-20 14:03:50 -05:00
Victoria League
6eb30c98c4
Fix imports for standalone component stories (#12464) 2024-12-18 14:25:03 -05:00
Oscar Hinton
5a582dfc6f
[CL-135] Migrate component library to standalone components (#12389)
* Migrate component library to standalone components

* Fix tests
2024-12-17 17:29:48 -05:00
renovate[bot]
e1447a90e3
[deps] Design System: Update ngx-toastr to v19 (#10594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Victoria League <vleague@bitwarden.com>
2024-12-17 10:08:19 -05:00
Matt Gibson
6132df395c
Add strict to missed components tsconfig (#12429) 2024-12-16 16:33:01 +00:00
Victoria League
4daba832a2
[CL-351] Prevent tw-group styling conflicts by namespacing (#12261) 2024-12-09 15:13:42 -05:00
Matt Gibson
9c1e2ebd67
Typescript-strict-plugin (#12235)
* Use typescript-strict-plugin to iteratively turn on strict

* Add strict testing to pipeline

Can be executed locally through either `npm run test:types` for full type checking including spec files, or `npx tsc-strict` for only tsconfig.json included files.

* turn on strict for scripts directory

* Use plugin for all tsconfigs in monorepo

vscode is capable of executing tsc with plugins, but uses the most relevant tsconfig to do so. If the plugin is not a part of that config, it is skipped and developers get no feedback of strict compile time issues. These updates remedy that at the cost of slightly more complex removal of the plugin when the time comes.

* remove plugin from configs that extend one that already has it

* Update workspace settings to honor strict plugin

* Apply strict-plugin to native message test runner

* Update vscode workspace to use root tsc version

* `./node_modules/.bin/update-strict-comments` 🤖

This is a one-time operation. All future files should adhere to strict type checking.

* Add fixme to `ts-strict-ignore` comments

* `update-strict-comments` 🤖

repeated for new merge files
2024-12-09 20:58:50 +01:00
Victoria League
0906c503e1
[CL-522] Reduce font size for checkbox and radio labels (#12251) 2024-12-09 14:10:14 -05:00
Victoria League
eac5e63f2f
[CL-513] Fix lifecycle order for toggle title attribute (#12152) 2024-11-26 11:10:43 -05:00
Will Martin
bb0912154d
[CL-508] extension width setting (#12040) 2024-11-25 14:43:31 -05:00
Thomas Rittson
365c7dd65e
[CL] add hideIfEmpty input to bit-nav-group (#12046) 2024-11-20 13:06:07 -05:00
Nick Krantz
ca839b3d80
[PM-14019] Toggle Vault Filters (#11929)
* move vault headings to their own component

* update aria-label to bind to the data attribute

* move vault headings to the vault-v2 folder

* integrate disclosure trigger to hide vault filters

* remove built in margin on search component

- spacing will be managed by the parent component

* add event emitter so consuming components can know when disclosure status has changed

* add filter badge when filters are selected and the filters are hidden

* persist filter visibility state to disk

* add supporting text for the filter button

* remove extra file

* only read from stored state on component launch.

- I noticed delays when trying to use stored state as the source of truth

* use two-way data binding for change event

* update vault headers to use two way data binds from disclosure component

- also adjust consuming changes

* add border thickness

* add ticket to the FIXME

* move number of filters observable into service

* move state coordination into filter service

* only expose state and update methods from filter service

* simplify observables to avoid needed state lifecycle methods

* remove comment

* fix test imports

* update badge colors

---------

Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
2024-11-19 11:49:42 -06:00
Will Martin
a07b072196
[CL-499][PM-14020] compact mode (#11796) 2024-11-18 16:35:49 -05:00
Merissa Weinstein
c51b9233b3
decrease bit-item ring size (#12017) 2024-11-18 09:48:27 -06:00
Victoria League
3b5b2d6bd6
[CL-265] CL/extension refresh feature branch (#8696)
* [CL-245] Update palette to new light and dark theme colors (#8633)

* [CL-245] Add new color swatches to storybook (#8697)

* [CL-238] update typography (#8997)

* [CL-230] [CL-296] Update button styles (#9345)

* [CL-237] Update menu styles for extension refresh (#9525)

* [CL-267] Add 100-level color variants and update primary-600 (#9550)

* [CL-286] Update badge to use focus-visible instead of focus (#9551)

* [CL-250] Update badge styles for extension refresh (#9572)

* [CL-234] callout style refresh (#9920)

* [CL-233] Update form field styles (#9776)

* [CL-239][CL-251][CL-342] dialog style refresh (#10096)

* [CL-239] simple dialog style refresh

* [CL-342] fix text overflow in dialog; add story

* [CL-244] readonly fields (#10164)

* [CL-352] Fix Angular errors related to form element changes (#10211)

* [CL-273] Update styles for checkbox and form control (#10146)

* [CL-274] Update styling for radio button (#10333)

* [CL-338] Remove extra space in item content when end slot is empty (#10350)

* [CL-377] Fix extension style conflict for input background (#10351)

* [CL-271] Update styles for toggle (#10377)

* [CL-381] Update spacing around form elements (#10432)

* [CL-229] Update icon button styles (#10405)

* [CL-380] Remove hover state from disabled form fields (#10639)

* [CL-405] Allow toggle group input to be full width (#10658)

* [CL-389] Exclude end slot label content from truncation (#10508)

* [CL-383] Remove manual focus when password toggle is clicked (#10749)

* [CL-278][CL-391] misc bit-item style fixes (#10758)

* [CL-391] use pointer cursor on hover when link or button

* [CL-210] Change base font size from 14px to 16px (#10779)

* [CL-291] Finalize styling for chip select (#10771)

* [CL-257] update banner component styles (#10766)

* [CL-443] Fix sizing issues (#10893)

* [CL-445] Fix small sizing and spacing issues (#10962)

* [CL-382] Reduce element shifting on readonly hover (#10956)

* [CL-396] Update theme colors to new hexes (#10968)

* [CL-395] Remove text headers color (#10997)

* [CL-404] Switch to primary-600 for all focus indicators (#11015)

* [CL-397] Remove primary-500 (#11036)

* [CL-447] Ensure DM Sans displays correctly at all font weights (#11041)

* [CL-448] Scrollbar Styles (#11111)

* CL-252/update toast (#10996)

* [CL-275] Update link styles (#11174)

* [CL-446] Update hover state for unselected chip selects (#11172)

* [CL-454] Improve color a11y for toast and banner interactive elements (#11200)

* [CL-457] Center input text for select and multiselect (#11239)

* [CL-455] Do not use responsive margin for sections in dialogs or extension (#11243)

* [CL-459] Fix chip behavior when opening menu while item is selected (#11227)

* [CL-388] Update vertical nav colors for new palette (#11226)

* scope styled scrollbar to only select elements (#11247)

* edit radio buttons to be block inputs and update spacing (#11291)

* [CL-453] Fix multiselect chip spacing and truncation (#11300)

* [PM-11131] Prevent duplicated sr labels on form field icon buttons (#11383)

* [CL-303] Prevent chip menu from running offscreen (#11348)

* [CL-476] Fix DM Sans font on Windows (#11409)

* implements scrollbar styles for firefox/chrome and safari (#11447)

* [CL-472] Fix search background color in extension (#11466)

* [CL-481] Style updates for bit-item, bit-card, and primary-100 (#11473)

* [CL-478] Remove underline on hover for most components (#11477)

* [CL-477] Remove focus styles for readonly input (#11510)

* [CL-487] Fix vault items virtual scroll height (#11581)

* [PM-8625] Increase popup width (#11686)

* [CL-494] Wrap long words in toggle group (#11659)

* [CL-13820] Add class to remove link underline (#11762)

* [CL-435] Prevent Windows extension from shifting (#11851)

* [CL-503] Add notification color variables (#11802)

* [PM-14043] Update size of toggle group label to fit more content (#11881)

* [CL-498] Set chip menu width minimum to chip select width (#11905)

---------

Co-authored-by: Will Martin <contact@willmartian.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
Co-authored-by: Nick Krantz <125900171+nick-livefront@users.noreply.github.com>
Co-authored-by: Merissa Weinstein <merissa.k.weinstein@gmail.com>
Co-authored-by: Danielle Flinn <43477473+danielleflinn@users.noreply.github.com>
2024-11-15 09:21:17 -05:00
Victoria League
e8dac0cc12
[CL-500] Add disclosure component and directive (#11865) 2024-11-07 16:54:49 -05:00
SmithThe4th
faf7e3d315
[PM-11201][CL-507] Add the ability to sort by Name, Group, and Permission within the collection and item tables (#11453)
* Added sorting to vault, name, permission and group

Added default sorting

* Fixed import

* reverted test on template

* Only add sorting functionality to admin console

* changed code order

* Fixed leftover test for sortingn

* Fixed reference

* sort permissions by ascending order

* Fixed bug where a collection had multiple groups and sorting alphbatically didn't happen correctly all the time

* Fixed bug whne creating a new cipher item

* Introduced fnFactory to create a sort function with direction provided

* Used new sort function to make collections always remain at the top and ciphers below

* extracted logic to always sort collections at the top

Added similar sorting to sortBygroup

* removed org vault check

* remove unused service

* Sort only collections

* Got rid of sortFn factory in favour of passing the direction as an optional parameter

* Removed tenary

* get cipher permissions

* Use all collections to filter collection ids

* Fixed ascending and descending issues

* Added functionality to default sort in descending order

* default sort permissions in descending order

* Refactored setActive to not pass direction as a paramater
2024-11-07 10:10:15 -05:00
Alec Rippberger
619651ca55
[PM-13818] Allow user to edit self-hosted url during registration (#11790)
* Trigger self hosted settings dialog on select close

* Simplify triggering self hosted env config dialog

* Always emit selected value

* Update variable naming of lastSelectedValue to userSelectedValue to better reflect purpose

* Add comment for userSelectedValue variable

* Remove userSelectedValue and simply emit a closed event

* Remove passing selectedRegion in closed event
2024-11-06 13:17:59 -06:00
Oscar Hinton
cd79457349
[PM-4347] Upgrade angular to 17 (#11031)
Upgrade angular to 17
2024-11-04 11:51:43 -05:00
Jordan Aasen
18f7d64a6d
[PM-14038] - priority applications UI (#11723)
* priority applications UI

* add security icon
2024-10-30 14:25:06 -04:00
Bernd Schoolmann
b486fcc689
[Pm-13097] Rename cryptoservice to keyservice and move it to km ownership (#11358)
* Rename cryptoservice to keyservice

* Rename cryptoservice to keyservice

* Move key service to key management ownership

* Remove accidentally added file

* Fix cli build

* Fix browser build

* Run prettier

* Fix builds

* Fix cli build

* Fix tests

* Fix incorrect renames

* Rename webauthn-login-crypto-service

* Fix build errors due to merge conflicts

* Fix linting
2024-10-24 19:41:30 +02:00
Oscar Hinton
9b474264e6
[CL-343] Create a new table component for virtual scrolling (#10113)
This creates a new component called bit-table-scroll as it's a breaking change in how tables works. We could probably conditionally support both behaviors in the existing table component if we desire.

Rather than iterating the rows in the consuming component, we now need to define a row definition, bitRowDef which provides access to the rows data through angular let- syntax. This allows the table component to own the behaviour which is needed in order to use the cdkVirtualFor directive which must be inside the cdk-virtual-scroll-viewport component.
2024-10-22 21:51:45 +02:00
Jared Snider
2605c03c81
Update Icon Docs to include information on viewbox scaling (#11613) 2024-10-18 12:14:29 -04:00
Jared Snider
a5f856da2a
Component Library - Add Icon documentation (#11571)
* Add Icon documentation

* Add 7th bullet

* Icon docs - add context on how to go from hex values to appropriate tailwind classes.

* 7th bullet needs bold to look right

* Add color icon per suggestion
2024-10-17 10:47:08 -04:00
Victoria League
988c2b69e0
[CL-471] Update lock icon and others (#11508) 2024-10-11 16:12:49 -04:00
Nick Krantz
e2275ad0bc
[PM-12776] Draggable Items within a dialog (#11396)
* increase z-index `cdk-drag-preview` so it displays on top of modals/dialogs when draggable elements are within them

* update comment overlay z-index and add ticket number

* update comment
2024-10-09 12:05:31 -05:00
Victoria League
b149db9f4d
[CL-458] Exclude badges from truncation and vertically center content (#11262) 2024-09-30 11:45:51 -04:00
Victoria League
1262623fac
[CL-451] Add option for full width chip select (#11135) 2024-09-20 09:52:12 -04:00
Victoria League
eec84d893d
[CL-439] Improve keyboard and visual a11y for chip select (#11112) 2024-09-19 13:49:00 -04:00
Victoria League
bd4b3933a4
[PM-8582] Improve search performance in Safari (#11088) 2024-09-18 09:13:58 -04:00
Victoria League
a0a0a7ae13
[CL-395] Add and use art colors in svgs (#10990) 2024-09-11 14:54:07 -04:00
Nick Krantz
c161873ce5
reset min-width to zero to override flex from setting min-width to auto (#10936) 2024-09-09 09:38:32 -05:00
Victoria League
3f25b9bbfc
[CL-357] Remove border radius when displayed in web app (#10884) 2024-09-05 16:38:20 -04:00
Will Martin
fdeac58469
[CL-312] fix dialog scroll blocking + virtual scroll (#9606) 2024-09-04 12:12:47 -04:00
Nick Krantz
3e9fb2009e
[PM-10934] Remove last form-field bottom border (#10751)
* match API of new CL FormField component

* remove readonly border for additional options component

* remove readonly border for last autofill option

* remove readonly border for last custom-field form field

* remove readonly border for when collection,org or folder is available

* add `ReadOnlyCipherCardComponent` to handle readonly border

* remove readonly border for the last identity form field

* remove readonly border for the last card form field

* remove readonly border for the last login form field

* remove unneeded true value
2024-09-04 10:50:34 -05:00
rr-bw
c5a267baad
[PM-11000] AnonLayout Icon/Logo theme refactor (#10549)
* update base anon-layout logo/icon

* update ExtensionAnonLayout logo/icon based on theme

* remove hard-coded fill

* remove solarizedDark class

---------

Co-authored-by: Bernd Schoolmann <mail@quexten.com>
2024-08-31 12:26:11 -07:00
Victoria League
f44b7b361d
[CL-442] Fix toggle group display in extension and add fullWidth input to main (#10803)
Some checks are pending
Chromatic / Check PR run (push) Waiting to run
Chromatic / Chromatic (push) Blocked by required conditions
Scan / Check PR run (push) Waiting to run
Scan / SAST scan (push) Blocked by required conditions
Scan / Quality scan (push) Blocked by required conditions
Testing / Check for test secrets (push) Waiting to run
Testing / Run tests (push) Blocked by required conditions
Testing / Run Rust tests on ${{ matrix.os }} (macos-latest) (push) Waiting to run
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-latest) (push) Waiting to run
Testing / Run Rust tests on ${{ matrix.os }} (windows-latest) (push) Waiting to run
2024-08-30 09:25:16 -04:00
Will Martin
80f4935171
[CL-324] migrate app-callout internals to bit-callout (#9925) 2024-08-27 09:12:28 -04:00
Victoria League
991155d3a5
[CL-318] Ensure item content truncates when the 'start' slot is populated (#10727) 2024-08-26 11:43:03 -04:00
Shane Melton
ade01c9d07
[PM-8380] Browser Refresh - Virtual scrolling (#10646)
* [PM-8380] Add option to disable content padding for popup page

* [PM-8380] Add cdkVirtualScroll to vault list items and fixed item heights

* [PM-8380] Move item height constants to item component
2024-08-22 07:40:32 -07:00
Victoria League
19ef6ba467
[CL-433] Fix broken docs pages (#10638)
Some checks are pending
Chromatic / Check PR run (push) Waiting to run
Chromatic / Chromatic (push) Blocked by required conditions
Scan / Check PR run (push) Waiting to run
Scan / SAST scan (push) Blocked by required conditions
Scan / Quality scan (push) Blocked by required conditions
Testing / Check for test secrets (push) Waiting to run
Testing / Run tests (push) Blocked by required conditions
Testing / Run Rust tests on ${{ matrix.os }} (macos-latest) (push) Waiting to run
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-latest) (push) Waiting to run
Testing / Run Rust tests on ${{ matrix.os }} (windows-latest) (push) Waiting to run
2024-08-20 15:44:54 -04:00
Victoria League
ed719f835a
[CL-389] Add end slot to non-text bit label content (#10457) 2024-08-20 11:55:11 -04:00
Oscar Hinton
604e22334a
[BEEEP] [PM-10132] Upgrade storybook to v8 (#10288)
Upgrade storybook to version v8 which is a major upgrade. Storybook provides an
upgrade wizard which did most of the work.

- Ran npx storybook upgrade.
- Manually updated `remark-gfm` since the newer mdx requires v 4.
- Migrated all old stories still using `Story` to `StoryObj`.
2024-08-16 09:28:29 +02:00
Nick Krantz
0b5afa6252
[PM-10731] Move vault icons (#10453)
* move NoFolders icon to vault library

* move DeactivatedOrg icon to vault library

* move Vault icon to vault library

* move NoResults icon to vault library

* clean up barrel file

* Revert "move NoResults icon to vault library"

This reverts commit 43abd45db7.

* re-export no results
2024-08-12 08:38:11 -05:00
Nick Krantz
28a2014e69
[PM-8204] V2 Folder View (#10423)
* add no folders icon to icon library

* add/edit folder contained within a dialog

* add/edit folder dialog contained new item dropdown

* browser refresh folders page component

* swap in v2 folder component for extension refresh

* add copy for all folder related changes
2024-08-08 13:24:49 -05:00
SmithThe4th
c1bf1a797f
[PM-9714] Search results should clear and results reset after navigating away from Vault tab but persist if navigating to an Item view (#10378)
* created guard to clear search text when navigating between tabs

* removed reset filter from from vault list filter component on destroy and move to guard

renamed guard to clear vault state

* Fixed bug on chip select when comparing complex objects

moved compare values function to utils

* Added comment for future reference

* moved compare values to a seperate file

* fixed lint issue
2024-08-08 11:29:33 -04:00
Maciej Zieniuk
a3bf74ae1b
SM-1146: Display total counts of projects, machine accounts, secrets in Secrets Manager (#9791)
* SM-1146: Secrets Manager total counts

* SM-1146: Tab link component simplifications

* SM-1146: Total counts update on CRUD

* SM-1146: Total counts API paths update

* SM-1146: Unit test coverage for services

* SM-1146: Fix incorrect types returned

* SM-1146: Storybook example for tab-link with child counter

* SM-1146: Tailwind states with groups

* SM-1146: Moving counts view types in one file

* SM-1146: Moving counts methods, responses to one shared service

* SM-1146: Removing redundant services imports

* SM-1146: Removing redundant observables

* SM-1337: Total counts hidden for suspended organizations

* SM-1336: Total counts updated on import

* SM-1336: Import error handling refactor

* SM-1336: Import error handling improvements

* SM-1336: Import error not working with project errors, Unit Test coverage

* Update bitwarden_license/bit-web/src/app/secrets-manager/settings/porting/sm-import.component.ts

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>

* SM-1336: UT deprecation removal

* SM-1336: Better UT

* SM-1336: Lint fix

* SM-1146: Linter fix

---------

Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
2024-08-08 15:12:55 +02:00
Nick Krantz
d51226929c
center all content in no items content (#10431)
- firefox extension has default css that overrides the inheritance of align center
2024-08-07 11:25:23 -05:00
Jonathan Prusik
66d9ab5dc0
[PM-9969] Papercut - Update component library storybook docs (#10191)
* 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>
2024-08-07 11:13:29 -04:00
Will Martin
181c697ff7
[CL-342] make overflow text wrap in simple dialog (#10418)
* add overflow story and fix to simple dialog

* Update libs/components/src/dialog/simple-dialog/simple-dialog.stories.ts

Co-authored-by: Victoria League <vleague@bitwarden.com>

---------

Co-authored-by: Victoria League <vleague@bitwarden.com>
2024-08-07 10:30:13 -04:00
rr-bw
b2a995462f
[PM-9605] Extension AnonLayout wrapper component (#10338)
Some checks are pending
Chromatic / Chromatic (push) Waiting to run
Scan / Check PR run (push) Waiting to run
Scan / SAST scan (push) Blocked by required conditions
Scan / Quality scan (push) Blocked by required conditions
Testing / Run tests (push) Waiting to run
Testing / Run Rust tests on ${{ matrix.os }} (macos-latest) (push) Waiting to run
Testing / Run Rust tests on ${{ matrix.os }} (ubuntu-latest) (push) Waiting to run
Testing / Run Rust tests on ${{ matrix.os }} (windows-latest) (push) Waiting to run
* setup extension component

* setup extension service

* update icon based on theme, adjust padding, service injection

* override service

* add stories

* add current-account component

* add ConfigService to storybook

* use null checks for boolean data - otherwise false values are ignored

* update translations

* remove router implementation test

* remove imports in main.background.ts

* add showLogo to template

* update icon usage

* fix app-current-account storybook style issue
2024-08-06 16:02:47 -07:00
Oscar Hinton
c50a9063bc
[PM-2340] Enable use-lifecycle-interface (#5488)
Enables one of the recommended rules of @angular-eslint. Since this rule was fairly trivial to fix and has no QA effects it seemed reasonable to migrate all code.
2024-08-02 13:59:38 -04:00
Shane Melton
0d76835cd8
[PM-9190] Edit Login - Autofill Options (#10274)
* [PM-8524] Update appA11yTitle to keep attributes in sync after first render

* [PM-8524] Introduce UriOptionComponent

* [PM-9190] Introduce AutofillOptionsComponent

* [PM-9190] Add AutofillOptions to LoginDetailsSection

* [PM-9190] Add autofill options component unit tests

* [PM-9190] Add UriOptionComponent unit tests

* [PM-9190] Add missing translations

* [PM-9190] Add autofill on page load field

* [PM-9190] Ensure updatedCipherView is completely separate from originalCipherView

* [CL-348] Do not override items if there are no OptionComponents available

* [PM-9190] Mock AutoFillOptions component in Login Details tests

* [PM-9190] Cleanup storybook and missing web translations

* [PM-9190] Ensure storybook decryptCipher returns a separate object
2024-08-01 08:35:04 -07:00
renovate[bot]
b9eb4003a1
[deps] Autofill: Update prettier to v3.3.3 (#10228)
* [deps] Autofill: Update prettier to v3.3.3

* prettier formatting changes

* fix SyntaxError for literal @ inline html

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Prusik <jprusik@classynemesis.com>
2024-07-25 11:11:55 -04:00
Will Martin
2be34c3b8f
[CL-376] add dialog background input (#10237) 2024-07-24 16:51:56 -04:00
Victoria League
5a2db79235
[CL-305] Allow margin to be disabled for elements at the bottom of a page (#10132) 2024-07-24 12:08:33 -04:00
Victoria League
c52709e6f0
[CL-337] Fix toggle group visual bug from tw-group collisions (#10188) 2024-07-24 11:40:10 -04:00
Nick Krantz
8a86a699ff
[PM-9952][PM-9954] Minor assign collection fixes (#10190)
* disable organization selector when only one org is selected

* break long org names in assign collections copy

- applicable more in the browser implementation

* add `title` to each select option so a mouse over presents the name

- more applicable to the browser extension where names can overflow

* truncate options that overflow a select

* set max width of form fields to 100%
2024-07-22 09:26:38 -05:00
Shane Melton
f75c1ab02d
[PM-8524] Cipher Form - Edit Login Details Section (#10081)
* [PM-8524] Introduce login details section component

* [PM-8524] Add ability to remove passkey

* [PM-8524] Introduce TotpCaptureService and the Browser implementation

* [PM-8524] Tweak storybook

* [PM-8524] Add note regarding existing login view references

* [PM-8524] Fix clone mode so that a new cipher is created

* [PM-8524] Add support for generating usernames/passwords and auditing passwords

* [PM-8524] Migrate password/username generation to CipherFormGenerationService

* [PM-8524] Add optional passwordInput to BitPasswordInputToggle to support conditionally rendered password toggle buttons

* [PM-8524] Add LoginDetailsSection tests

* [PM-8524] Add BrowserTotpCaptureService tests

* Revert "[PM-8524] Add optional passwordInput to BitPasswordInputToggle to support conditionally rendered password toggle buttons"

This reverts commit e76a0ccfe8.

* [PM-8524] Add null check to password input toggle
2024-07-18 09:38:55 -07:00
Oscar Hinton
39eed02904
[PM-8517] Create web specific layout (#9209)
We currently duplicate some logic between our layouts. In an effort to streamline our experience I'm exploring if we can create a web specific layout that handles some of this.
2024-07-11 12:20:56 -04:00
Shane Melton
17d37ecaeb
[PM-7162] Cipher Form - Item Details (#9758)
* [PM-7162] Fix weird angular error regarding disabled component bit-select

* [PM-7162] Introduce CipherFormConfigService and related types

* [PM-7162] Introduce CipherFormService

* [PM-7162] Introduce the Item Details section component and the CipherFormContainer interface

* [PM-7162] Introduce the CipherForm component

* [PM-7162] Add strongly typed QueryParams to the add-edit-v2.component

* [PM-7162] Export CipherForm from Vault Lib

* [PM-7162] Use the CipherForm in Browser AddEditV2

* [PM-7162] Introduce CipherForm storybook

* [PM-7162] Remove VaultPopupListFilterService dependency from NewItemDropDownV2 component

* [PM-7162] Add support for content projection of attachment button

* [PM-7162] Fix typo

* [PM-7162] Cipher form service cleanup

* [PM-7162] Move readonly collection notice to bit-hint

* [PM-7162] Refactor CipherFormConfig type to enforce required properties with Typescript

* [PM-7162] Fix storybook after config changes

* [PM-7162] Use new add-edit component for clone route
2024-07-02 13:22:51 -07:00
Will Martin
8df054cf51
[CL-319] custom back action in popup header component (#9829)
* expose FunctionReturningAwaitable from CL lib

* expose backAction as input on popup header component
2024-06-25 15:55:49 -04:00
Will Martin
34766f8c74
[CL-314] improve TableDataSource filtering (#9708) 2024-06-20 12:42:14 -04:00
Will Martin
06410a0633
[CL-118][CL-164][PM-8019] collapsible side navigation (#6383) 2024-06-17 14:10:50 -04:00
Shane Melton
6687ef5978
[PM-7683] Fix dynamic item defects (#9575)
* [PM-8639] Add data-testid attribute for test automation

* [PM-8669] Add autofill aria label

* [PM-8674] Show autofill menu options for card/identities when not in the autofill suggestion list

* [PM-8635] Hide menu items when copy cipher field directive is disabled

* [PM-8636] Disable copy menu dropdown when no items available to copy

* [CL-309] Add title override to bitBadge

* [PM-8669] Update menu-item directive disabled input

* [PM-7683] Fix race condition for remainingCiphers$

* [PM-7683] Use strict equality check
2024-06-12 14:33:18 -07:00
Jason Ng
37a07b9fd8
[PM-8627] No Results Icon light/dark theme colors (#9522)
* update no results icon for light/dark theme
2024-06-05 18:05:40 -04:00
Victoria League
d3f1992ad5
[CL-294] Make section-header work across clients (#9386) 2024-06-05 15:07:00 -04:00
Will Martin
419c107f87
[CL-243] honor initial disabled state in bitFormButton (#9510)
* honor initial disabled state

* update story
2024-06-05 11:39:40 -04:00
Jason Ng
cb0927ac5d
[PM-8553] browser v2 search bar defects (#9506)
* update no results icon and no results scrolling
* update v2 search so the term persist when the user clicks into an item and exits the item
2024-06-05 10:06:52 -04:00
cd-bitwarden
ed7a57810e
[SM-1192] displaying full project name in tooltip and allowing more of project name in bit badge/project column (#8917)
* allowing max width adjustment on bit badge and not truncating the tooltip text on project

* suggested changes from WIll

* updating values
2024-06-04 10:58:09 -04:00
Jared Snider
f691854387
Auth - PM-7392 & PM-7436 - Token Service - Desktop - Add disk fallback for secure storage failures (#8913)
* PM-7392 - EncryptSvc - add new method for detecting if a simple string is an enc string.

* PM-7392 - TokenSvc - add checks when setting and retrieving the access token to improve handling around the access token encryption.

* PM-7392 - (1) Clean up token svc (2) export access token key type for use in tests.

* PM-7392 - Get token svc tests passing; WIP more tests to come for new scenarios.

* PM-7392 - Access token secure storage to disk fallback WIP but mostly functional besides weird logout behavior.

* PM-7392 - Clean up unnecessary comment

* PM-7392 - TokenSvc - refresh token disk storage fallback

* PM-7392 - Fix token service tests in prep for adding tests for new scenarios.

* PM-7392 - TokenSvc tests - Test new setRefreshToken scenarios

* PM-7392 - TokenSvc - getRefreshToken should return null or a value - not undefined.

* PM-7392 - Fix test name.

* PM-7392 - TokenSvc tests - clean up test names that reference removed refresh token migrated flag.

* PM-7392 - getRefreshToken tests done.

* PM-7392 - Fix error quote

* PM-7392 - TokenSvc tests - setAccessToken new scenarios tested.

* PM-7392 - TokenSvc - getAccessToken - if secure storage errors add error to log.

* PM-7392 - TokenSvc tests - getAccessToken - all new scenarios tested

* PM-7392 - EncryptSvc - test new stringIsEncString method

* PM-7392 - Main.ts - fix circ dep issue.

* PM-7392 - Main.ts - remove comment.

* PM-7392 - Don't re-invent the wheel and simply use existing isSerializedEncString static method.

* PM-7392 - Enc String - (1) Add handling for Nan in parseEncryptedString (2) Added null handling to isSerializedEncString. (3) Plan to remove encrypt service implementation

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>

* PM-7392 - Remove encrypt service method

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>

* PM-7392 - Actually fix circ dep issues with Justin. Ty!

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>

* PM-7392 - TokenSvc - update to use EncString instead of EncryptSvc + fix tests.

* PM-7392 - TokenSvc - (1) Remove test code (2) Refactor decryptAccessToken method to accept access token key and error on failure to pass required decryption key to method.

* PM-7392 - Per PR feedback and discussion, do not log the user out if hte refresh token cannot be found. This will allow users to continue to use the app until their access token expires and we will error on trying to refresh it. The app will then still work on a fresh login for 55 min.

* PM-7392 - API service - update doAuthRefresh error to clarify which token cannot be refreshed.

* PM-7392 - Fix SetRefreshToken case where a null input would incorrectly trigger a fallback to disk.

* PM-7392 - If the access token cannot be refreshed due to a missing refresh token or API keys, then surface an error to the user and log it so it isn't a silent failure + we get a log.

* PM-7392  - Fix CLI build errors

* PM-7392 - Per PR feedback, add missing tests (thank you Jake for writing these!)

Co-authored-by: Jake Fink <jfink@bitwarden.com>

* PM-7392 - Per PR feedback, update incorrect comment from 3 releases to 3 months.

* PM-7392 - Per PR feedback, remove links.

* PM-7392 - Per PR feedback, move tests to existing describe.

* PM-7392 - Per PR feedback, adjust all test names to match naming convention.

* PM-7392 - ApiService - refreshIdentityToken - log error before swallowing it so we have a record of it.

* PM-7392 - Fix copy for errorRefreshingAccessToken

* PM-7392 - Per PR feedback, move error handling toast responsibility to client specific app component logic reached via messaging.

* PM-7392 - Swap logout reason from enum to type.

* PM-7392 - ApiService - Stop using messaging to trigger toast to let user know about refresh access token errors; replace with client specific callback logic.

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>

* PM-7392 - Per PR feedback, adjust enc string changes and tests.

* PM-7392 - Rename file to be type from enum

* PM-7392 - ToastService - we need to await the activeToast.onHidden observable so return the activeToast from the showToast.

* PM-7392 - Desktop AppComp - cleanup messaging

* PM-7392 - Move Logout reason custom type to auth/common

* PM-7392 - WIP - Enhancing logout callback to consider the logout reason + move show toast logic into logout callback

* PM-7392 - Logout callback should simply pass along the LogoutReason instead of handling it - let each client's message listener handle it.

* PM-7392 - More replacements of expired with logoutReason

* PM-7392 - More expired to logoutReason replacements

* PM-7392 - Build new handlers for displaying the logout reason for desktop & web.

* PM-7392 - Revert ToastService changes

* PM-7392 - TokenSvc - Replace messageSender with logout callback per PR feedback.

* PM-7392 - Desktop App comp - replace toast usage with simple dialog to guarantee users will see the reason for them being logged out.

* PM-7392 - Web app comp - fix issue

* PM-7392 - Desktop App comp - don't show cancel btn on simple dialogs.

* PM-7392 - Desktop App comp - Don't open n simple dialogs.

* PM-7392 - Fix browser build

* PM-7392 - Remove logout reason from CLI as each logout call handles messaging on its own.

* PM-7392 - Previously, if a security stamp was invalid, the session was marked as expired. Restore that functionality.

* PM-7392 - Update sync service logoutCallback to include optional user id.

* PM-7392 - Clean up web app comp

* PM-7392 - Web - app comp - only handle actually possible web logout scenarios.

* PM-7392 - Browser Popup app comp - restore done logging out message functionality + add new default logout message

* PM-7392 - Add optional user id to logout callbacks.

* PM-7392 - Main.background.ts - add clarifying comment.

* PM-7392 - Per feedback, use danger simple dialog type for error.

* PM-7392 - Browser Popup - add comment clarifying expectation of seeing toasts.

* PM-7392 - Consolidate invalidSecurityStamp error handling

* PM-7392 - Per PR feedback, REFRESH_ACCESS_TOKEN_ERROR_CALLBACK can be completely sync. + Refactor to method in main.background.

* PM-7392 - Per PR feedback, use a named callback for refreshAccessTokenErrorCallback in CLI

* PM-7392 - Add TODO

* PM-7392 - Re-apply bw.ts changes to new service-container.

* PM-7392 - TokenSvc - tweak error message.

* PM-7392 - Fix test

* PM-7392 - Clean up merge conflict where I duplicated dependencies.

* PM-7392 - Per discussion with product, change default logout toast to be info

* PM-7392 - After merge, add new logout reason to sync service.

* PM-7392 - Remove default logout message per discussion with product since it isn't really visible on desktop or browser.

* PM-7392 - address PR feedback.

---------

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
Co-authored-by: Jake Fink <jfink@bitwarden.com>
Co-authored-by: Matt Gibson <mgibson@bitwarden.com>
2024-06-03 12:36:45 -04:00
Nick Krantz
748eb00223
[PM-6826] Vault filter refresh (#9365)
* add initial type filter

- use `bit-select` while the chip component is being developed

* get cipherTypes$ from service

- integrate with user settings

* initial add of folder selection

* initial add of vault selection

* initial add of collections filter

* update `VaultPopupListFilterService` to `VaultPopupListFiltersService`

* integrate hasFilterApplied$

* intermediate commit of integration to the filters component

* do not return the tree when the value is null

* return null when the updated option is null

* update vault-popup-list to conform to the chip select structure

* integration of bit-chip-select

* move "no folder" option to the end of the list

* show danger icon for deactivated organizations

* show deactivated warning when the filtered org is disabled

* update documentation

* use pascal case for constants

* store filter values as full objects rather than just id

- This allows secondary logic to be applied when filters are selected

* move filter form into service to be the source of truth

* fix tests after adding "jest-preset-angular/setup-jest"

* remove logic to have dynamic cipher type filters

* use ProductType enum

* invert conditional for less nesting

* prefer `decryptedCollections$` over getAllDecrypted

* update comments

* use a `filterFunction$` observable rather than having to pass filters back to the service

* fix children testing

* remove check for no folder

* reset filter form when filter component is destroyed

* add takeUntilDestroyed for organization valueChanges

* allow takeUntilDestroyed to use internal destroy ref

- The associated unit tests needed to be configured with TestBed rather than just `new Service()` for this to work

* use controls object for type safety
2024-06-03 09:20:14 -05:00
Victoria League
08a6f91411
[CL-221] Add chip-select component (#9021)
---------

Co-authored-by: William Martin <contact@willmartian.com>
2024-05-23 16:30:55 -04:00
Will Martin
4b3e63f7b7
[CL-289] fix text decoration in CL button and item-content (#9219) 2024-05-23 11:53:51 -04:00
Shane Melton
3d0e0d261e
[PM-6825] Browser Refresh - Initial List Items (#9199)
* [PM-6825] Add temporary vault page header

* [PM-6825] Expose cipherViews$ observable

* [PM-6825] Refactor getAllDecryptedForUrl to expose filter functionality for reuse

* [PM-6825] Introduce VaultPopupItemsService

* [PM-6825] Introduce initial VaultListItem and VaultListItemsContainer components

* [PM-6825] Add VaultListItems to VaultV2 component

* [PM-6825] Introduce autofill-vault-list-items.component to encapsulate autofill logic

* [PM-6825] Add temporary Vault icon

* [PM-6825] Add empty and no results states to Vault tab

* [PM-6825] Add unit tests for vault popup items service

* [PM-6825] Negate noFilteredResults placeholder

* [PM-6825] Cleanup new Vault components

* [PM-6825] Move new components into its own module

* [PM-6825] Fix missing button type

* [PM-6825] Add booleanAttribute to showAutofill input

* [PM-6825] Replace empty refresh BehaviorSubject with Subject

* [PM-6825] Combine *ngIfs for vault list items container

* [PM-6825] Use popup-section-header component

* [PM-6825] Use small variant for icon buttons

* [PM-6825] Use anchor tag for vault items

* [PM-6825] Consolidate vault-list-items-container to include list item component functionality directly

* [PM-6825] Add Tailwind classes to new Vault icon

* [PM-6825] Remove temporary header comment

* [PM-6825] Fix auto fill suggestion font size and padding

* [PM-6825] Use tailwind for vault icon styling

* [PM-6825] Add libs/angular to tailwind.config content

* [PM-6825] Cleanup missing i18n

* [PM-6825] Make VaultV2 standalone and cleanup Browser App module

* [PM-6825] Use explicit type annotation

* [PM-6825] Use property binding instead of interpolation
2024-05-21 17:05:02 -04:00
Nick Krantz
07076ebf9d
[PM-7231] Product Switcher within navigation sidebar (#8810)
* refactor: move logic for products into a service

- This is in preparation for having having the navigation menu show products based off of the same logic.

* add extra small font size to tailwind config

* remove absolute positioning from toggle width component
- it now sits beneath the product switcher

* update product switcher to have UI details that are only shown in the navigation pane

* add navigation oriented product switcher

* integrate navigation product switcher into secrets manager

* integrate navigation product switcher into provider console

* integrate navigation product switcher into user layout

* integrate navigation product switcher into organizations

* add translation for "switch"

* hide active styles from navigation product switcher

* update storybook for product switcher stories

* remove unneeded full width style

* use protected readonly variable instead of getter

* migrate stories to CSF3

* remove double subscription to `moreProducts$`

* only use wrapping div in navigation switcher story

- less vertical space is taken up

* update to satisfies

* refactor `navigationUI` to `otherProductOverrides`

* move observables to protected readonly

* apply margin-top via class on the host component

* remove switch text from the navigation product switcher

* Allow for the active navigation switcher to be shown

* remove xxs font style

* remove unneeded module

* remove switch from stories

* remove defensive nullish coalescing

* remove merge leftovers

* Defect PM-7899 - show organizations product at the top of the other products list

* Defect PM-7951 use attr.icon to keep the icon as an attribute after prod mode is enabled

* Defect PM-7948 update path based on the current org

* force active styles for navigation items (#9128)

* add horizontal margin to icon

---------

Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
2024-05-16 08:18:58 -05:00
Will Martin
76cc0f43aa
[CL-280] truncate overflow text in bit-item (#8992) 2024-05-06 10:29:23 -04:00