clients/apps/web
Alex 03340aee71
[PM-31163] stabilize table column widths with fixed layout (#18708)
* stabilize table column widths with fixed layout (PM-31163)

Add layout="fixed" and explicit width classes to report tables to prevent
column widths from shifting during virtual scroll.

Files changed:
- weak-passwords-report.component.html
- reused-passwords-report.component.html
- exposed-passwords-report.component.html
- inactive-two-factor-report.component.html
- unsecured-websites-report.component.html

* use auto width for name column to fix width calculation (PM-31163)

  Remove tw-w-1/2 from name column headers. With layout="fixed", the
  explicit percentages didn't sum to 100%, causing inconsistent column widths.

  Before: | 48px | 50% | 25% | 25% | = 48px + 100% (overflow)
  After:  | 48px | auto | 25% | 25% | = columns sum correctly

  Name column now uses auto to fill remaining space.

* render headers in Admin Console to fix column widths (PM-31163)

  Admin Console reports had a very wide icon column because no headers were
  rendered. Without headers, table-layout: fixed uses data row content to
  determine column widths, causing inconsistent sizing.

  Root cause:
  Three reports had their entire <ng-container header> block inside
  @if (!isAdminConsoleActive), so when isAdminConsoleActive=true (Admin
  Console), no headers were rendered at all.

  Before (broken):
    @if (!isAdminConsoleActive) {
      <ng-container header>        <!-- Entire header skipped in Admin Console -->
        <th>Icon</th>
        <th>Name</th>
        <th>Owner</th>
      </ng-container>
    }

  After (fixed):
    <ng-container header>          <!-- Always render headers -->
      <th>Icon</th>
      <th>Name</th>
      @if (!isAdminConsoleActive) {
        <th>Owner</th>             <!-- Only Owner is conditional -->
      }
    </ng-container>

  This matches the pattern already used by weak-passwords-report and
  exposed-passwords-report, which were working correctly.

  Files changed:
  - unsecured-websites-report.component.html
  - reused-passwords-report.component.html
  - inactive-two-factor-report.component.html

  Result:
  - Admin Console now renders headers with correct column widths
  - Icon column is 48px (tw-w-12) as expected
  - Owner column properly hidden in Admin Console view

* truncate long item names to prevent column overflow

- you can hover cursor for tooltip to see full name
2026-02-17 20:31:08 -08:00
..
.vscode [PM-8836] Move ownership of biometrics to key-management (#10818) 2024-09-30 18:14:32 +02:00
config icons and key connector urls for web development (#17043) 2025-10-27 12:40:56 +00:00
scripts [deps] Autofill: Update prettier to v3 (#7014) 2023-11-29 16:15:20 -05:00
src [PM-31163] stabilize table column widths with fixed layout (#18708) 2026-02-17 20:31:08 -08:00
.dockerignore Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
.gitignore Noop notifications for dev (#6671) 2023-10-24 15:18:23 +02:00
CLAUDE.md [PM-26337] Create a Claude markdown file (#16676) 2025-10-03 16:48:01 +02:00
config.js Use settings in base.json and merge config keys (#3804) 2022-10-18 12:00:40 +10:00
crowdin.yml [deps]: Update crowdin/github-action action to v2 (#15169) 2025-06-12 17:59:17 -04:00
dev-server.shared.pem Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
Dockerfile [BRE-1531] Adding ability to build web with custom SDK branch (#18677) 2026-02-02 17:13:56 -05:00
entrypoint.sh add shadow package, restore entrypoint functionality (#16124) 2025-08-26 08:47:19 -04:00
jest.config.js Implement and extend tsconfig.base across projects (#14554) 2025-06-02 20:38:17 +00:00
package.json Bumped client version(s) 2026-02-09 11:36:30 +00:00
postcss.config.js build(web): integrate nx (#16706) 2025-10-13 06:31:17 -04:00
project.json [PM-27564] Self-host configuration is not applied with nx build (#17279) 2025-11-24 16:36:23 +01:00
README.md chore(README): Update READMEs missing H1 headers 2025-12-15 16:35:44 -05:00
tailwind.config.js [PM-29448] Consume the new send table in web (#17923) 2025-12-19 16:00:37 +01:00
test.setup.ts [PM-18599] Forbid unknown property and element in tests (#13556) 2025-02-25 14:02:19 -08:00
tsconfig.build.json [PM-29239] Create proxy cookie redirect connector (#18476) 2026-02-03 07:08:44 -05:00
tsconfig.json [PM-29239] Create proxy cookie redirect connector (#18476) 2026-02-03 07:08:44 -05:00
tsconfig.spec.json [CL-525] Upgrade angular to v19 (#14815) 2025-06-02 13:13:31 -04:00
webpack.base.js [PM-30404] Exclude .wasm.js from babel (#18555) 2026-02-06 08:42:08 +01:00
webpack.config.js [PM-27564] Self-host configuration is not applied with nx build (#17279) 2025-11-24 16:36:23 +01:00

Bitwarden Web App

The Bitwarden web project is an Angular application that powers the web vault (https://vault.bitwarden.com/).

Github Workflow build on main Crowdin DockerHub gitter chat

Documentation

Please refer to the Web vault section of the Contributing Documentation for build instructions, recommended tooling, code style tips, and lots of other great information to get you started.