-
+
{{ "billingManagedByProvider" | i18n: userOrg.providerName }}
{{ "billingContactProviderForAssistance" | i18n }}
diff --git a/apps/web/src/app/billing/organizations/subscription-hidden.component.ts b/apps/web/src/app/billing/organizations/subscription-hidden.component.ts
index b359a8ef68d..249cf999305 100644
--- a/apps/web/src/app/billing/organizations/subscription-hidden.component.ts
+++ b/apps/web/src/app/billing/organizations/subscription-hidden.component.ts
@@ -10,7 +10,7 @@ import { GearIcon } from "@bitwarden/assets/svg";
selector: "app-org-subscription-hidden",
template: `
-
+
{{ "billingManagedByProvider" | i18n: providerName }}
{{ "billingContactProviderForAssistance" | i18n }}
diff --git a/apps/web/src/app/billing/shared/sm-subscribe.component.html b/apps/web/src/app/billing/shared/sm-subscribe.component.html
index 09f78e8d8f3..70990d2ee4c 100644
--- a/apps/web/src/app/billing/shared/sm-subscribe.component.html
+++ b/apps/web/src/app/billing/shared/sm-subscribe.component.html
@@ -2,7 +2,7 @@
{{ "moreFromBitwarden" | i18n }}
diff --git a/apps/web/src/app/tools/send/shared/send-success-drawer-dialog.component.html b/apps/web/src/app/tools/send/shared/send-success-drawer-dialog.component.html
index ac1b347d27f..90210df4658 100644
--- a/apps/web/src/app/tools/send/shared/send-success-drawer-dialog.component.html
+++ b/apps/web/src/app/tools/send/shared/send-success-drawer-dialog.component.html
@@ -8,7 +8,7 @@
>
diff --git a/apps/web/src/app/vault/components/setup-extension/setup-extension.component.html b/apps/web/src/app/vault/components/setup-extension/setup-extension.component.html
index 4291d98c0d7..d8cd562ac61 100644
--- a/apps/web/src/app/vault/components/setup-extension/setup-extension.component.html
+++ b/apps/web/src/app/vault/components/setup-extension/setup-extension.component.html
@@ -31,7 +31,7 @@
-
+
{{
diff --git a/libs/angular/src/auth/components/two-factor-icon.component.html b/libs/angular/src/auth/components/two-factor-icon.component.html
index cf28278bb53..555176225af 100644
--- a/libs/angular/src/auth/components/two-factor-icon.component.html
+++ b/libs/angular/src/auth/components/two-factor-icon.component.html
@@ -1,6 +1,6 @@
-
+
-
+
{{ "verifyWithBiometrics" | i18n }}
diff --git a/libs/components/src/icon/icon.component.ts b/libs/components/src/icon/icon.component.ts
index 8ff668040de..14253dc6b76 100644
--- a/libs/components/src/icon/icon.component.ts
+++ b/libs/components/src/icon/icon.component.ts
@@ -2,16 +2,6 @@ import { ChangeDetectionStrategy, Component, computed, input } from "@angular/co
import { BitwardenIcon } from "../shared/icon";
-export const BitIconSize = Object.freeze({
- Xs: "xs",
- Sm: "sm",
- Md: "md",
- Lg: "lg",
- Xl: "xl",
-} as const);
-
-export type BitIconSize = (typeof BitIconSize)[keyof typeof BitIconSize];
-
@Component({
selector: "bit-icon",
standalone: true,
@@ -27,17 +17,7 @@ export class BitIconComponent {
/**
* The Bitwarden icon name (e.g., "bwi-lock", "bwi-user")
*/
- readonly icon = input.required
();
-
- /**
- * Whether the icon should have a fixed width for alignment
- */
- readonly fw = input(false);
-
- /**
- * Icon size - applies bwi-* size classes
- */
- readonly size = input();
+ readonly name = input.required();
/**
* Accessible label for the icon
@@ -45,17 +25,6 @@ export class BitIconComponent {
readonly ariaLabel = input();
protected readonly classList = computed(() => {
- const classes = ["bwi", this.icon()];
-
- if (this.fw()) {
- classes.push("bwi-fw");
- }
-
- const size = this.size();
- if (size) {
- classes.push(`bwi-${size}`);
- }
-
- return classes.join(" ");
+ return ["bwi", this.name()].join(" ");
});
}
diff --git a/libs/components/src/icon/icon.mdx b/libs/components/src/icon/icon.mdx
index 695ab0ae141..0914d681e59 100644
--- a/libs/components/src/icon/icon.mdx
+++ b/libs/components/src/icon/icon.mdx
@@ -15,7 +15,7 @@ The `bit-icon` component renders Bitwarden Web Icons (bwi) using icon font class
## Basic Usage
```html
-
+
```
## Icon Names
@@ -23,43 +23,13 @@ The `bit-icon` component renders Bitwarden Web Icons (bwi) using icon font class
All available icon names are defined in the `BitwardenIcon` type. Icons use the `bwi-*` naming
convention (e.g., `bwi-lock`, `bwi-user`, `bwi-key`).
-## Modifiers
-
-### Fixed Width
-
-Use the `fw` input to give icons a fixed width for alignment:
-
-```html
-
-```
-
-This is useful when aligning icons in lists or menus.
-
-### Spin
-
-Use the `spin` input to animate icons:
-
-```html
-
-```
-
-### Size
-
-Use the `size` input to control icon size:
-
-```html
-
-```
-
-Available sizes: `xs`, `sm`, `md`, `lg`, `xl`
-
## Accessibility
By default, icons are decorative and marked with `aria-hidden="true"`. To make an icon accessible,
provide an `ariaLabel`:
```html
-
+
```
## Styling
@@ -68,7 +38,7 @@ The component renders as an inline element. Apply standard CSS classes or styles
appearance:
```html
-
+
```
## Note on SVG Icons
diff --git a/libs/components/src/icon/icon.stories.ts b/libs/components/src/icon/icon.stories.ts
index 5e58b0603df..76d23a68ba8 100644
--- a/libs/components/src/icon/icon.stories.ts
+++ b/libs/components/src/icon/icon.stories.ts
@@ -14,14 +14,10 @@ export default {
},
},
argTypes: {
- icon: {
+ name: {
control: { type: "select" },
options: BITWARDEN_ICONS,
},
- size: {
- control: { type: "select" },
- options: ["xs", "sm", "md", "lg", "xl"],
- },
},
} as Meta;
@@ -29,7 +25,7 @@ type Story = StoryObj;
export const Default: Story = {
args: {
- icon: "bwi-lock",
+ name: "bwi-lock",
},
};
@@ -39,7 +35,7 @@ export const AllIcons: Story = {
@for (icon of icons; track icon) {
-
+
{{ icon }}
}
@@ -51,35 +47,9 @@ export const AllIcons: Story = {
}),
};
-export const WithFixedWidth: Story = {
- render: () => ({
- template: `
-
- `,
- }),
-};
-
-export const WithSizes: Story = {
- render: () => ({
- template: `
-
-
-
-
-
-
-
- `,
- }),
-};
-
export const WithAriaLabel: Story = {
args: {
- icon: "bwi-lock",
+ name: "bwi-lock",
ariaLabel: "Secure lock icon",
},
};
diff --git a/libs/components/src/landing-layout/landing-header.component.html b/libs/components/src/landing-layout/landing-header.component.html
index 5bd6d546069..882f1b96c99 100644
--- a/libs/components/src/landing-layout/landing-header.component.html
+++ b/libs/components/src/landing-layout/landing-header.component.html
@@ -4,7 +4,7 @@
[routerLink]="['/']"
class="tw-w-32 tw-py-5 sm:tw-w-[200px] tw-self-center sm:tw-self-start tw-block [&>*]:tw-align-top"
>
-
+
}
diff --git a/libs/components/src/landing-layout/landing-hero.component.html b/libs/components/src/landing-layout/landing-hero.component.html
index f3f5d2e7ed0..9394bb03c63 100644
--- a/libs/components/src/landing-layout/landing-hero.component.html
+++ b/libs/components/src/landing-layout/landing-hero.component.html
@@ -6,7 +6,7 @@
-
+
}
diff --git a/libs/components/src/landing-layout/landing-layout.component.html b/libs/components/src/landing-layout/landing-layout.component.html
index 8e28f9c25ed..a33054e8e64 100644
--- a/libs/components/src/landing-layout/landing-layout.component.html
+++ b/libs/components/src/landing-layout/landing-layout.component.html
@@ -13,12 +13,12 @@
-
+
-
+
}
diff --git a/libs/components/src/navigation/nav-logo.component.html b/libs/components/src/navigation/nav-logo.component.html
index 69eee9f2b87..8323a0f3479 100644
--- a/libs/components/src/navigation/nav-logo.component.html
+++ b/libs/components/src/navigation/nav-logo.component.html
@@ -16,6 +16,6 @@
routerLinkActive
ariaCurrentWhenActive="page"
>
-
+
diff --git a/libs/components/src/no-items/no-items.component.html b/libs/components/src/no-items/no-items.component.html
index 016ca84f8b9..46a5c25526a 100644
--- a/libs/components/src/no-items/no-items.component.html
+++ b/libs/components/src/no-items/no-items.component.html
@@ -1,7 +1,7 @@
-
+
diff --git a/libs/components/src/svg/svg.component.ts b/libs/components/src/svg/svg.component.ts
index 2d05e25cf9d..b028a69a52c 100644
--- a/libs/components/src/svg/svg.component.ts
+++ b/libs/components/src/svg/svg.component.ts
@@ -17,15 +17,15 @@ import { Icon, isIcon } from "@bitwarden/assets/svg";
export class SvgComponent {
private domSanitizer = inject(DomSanitizer);
- readonly icon = input();
+ readonly content = input();
readonly ariaLabel = input();
protected readonly innerHtml = computed(() => {
- const icon = this.icon();
- if (!isIcon(icon)) {
+ const content = this.content();
+ if (!isIcon(content)) {
return null;
}
- const svg = icon.svg;
+ const svg = content.svg;
return this.domSanitizer.bypassSecurityTrustHtml(svg);
});
}
diff --git a/libs/components/src/svg/svg.components.spec.ts b/libs/components/src/svg/svg.components.spec.ts
index 11f61bdef60..87975ff5e33 100644
--- a/libs/components/src/svg/svg.components.spec.ts
+++ b/libs/components/src/svg/svg.components.spec.ts
@@ -19,7 +19,7 @@ describe("SvgComponent", () => {
it("should have empty innerHtml when input is not an Icon", () => {
const fakeIcon = { svg: "harmful user input" } as Icon;
- fixture.componentRef.setInput("icon", fakeIcon);
+ fixture.componentRef.setInput("content", fakeIcon);
fixture.detectChanges();
const el = fixture.nativeElement as HTMLElement;
@@ -29,7 +29,7 @@ describe("SvgComponent", () => {
it("should contain icon when input is a safe Icon", () => {
const icon = svgIcon``;
- fixture.componentRef.setInput("icon", icon);
+ fixture.componentRef.setInput("content", icon);
fixture.detectChanges();
const el = fixture.nativeElement as HTMLElement;
diff --git a/libs/components/src/svg/svg.mdx b/libs/components/src/svg/svg.mdx
index bb9df723fc7..5b0b598e79c 100644
--- a/libs/components/src/svg/svg.mdx
+++ b/libs/components/src/svg/svg.mdx
@@ -107,13 +107,13 @@ import { SvgModule } from "@bitwarden/components";
> `ariaLabel` is explicitly provided to the `` component
```html
-
+
```
With `ariaLabel`
```html
-
+
```
9. **Ensure your SVG renders properly** according to Figma in both light and dark modes on a client
diff --git a/libs/components/src/svg/svg.stories.ts b/libs/components/src/svg/svg.stories.ts
index 2d0d3a6ca2d..e8890b52974 100644
--- a/libs/components/src/svg/svg.stories.ts
+++ b/libs/components/src/svg/svg.stories.ts
@@ -37,7 +37,7 @@ export const Default = {
}
diff --git a/libs/eslint/components/no-bwi-class-usage.mjs b/libs/eslint/components/no-bwi-class-usage.mjs
index 49609fac632..8260587ce45 100644
--- a/libs/eslint/components/no-bwi-class-usage.mjs
+++ b/libs/eslint/components/no-bwi-class-usage.mjs
@@ -1,5 +1,5 @@
export const errorMessage =
- "Use component instead of applying 'bwi' classes directly. Example: ";
+ "Use component instead of applying 'bwi' classes directly. Example: ";
export default {
meta: {
diff --git a/libs/vault/src/components/carousel/carousel-button/carousel-button.component.html b/libs/vault/src/components/carousel/carousel-button/carousel-button.component.html
index 4c2ffe7d4fd..913d1b7963b 100644
--- a/libs/vault/src/components/carousel/carousel-button/carousel-button.component.html
+++ b/libs/vault/src/components/carousel/carousel-button/carousel-button.component.html
@@ -9,5 +9,5 @@
[attr.aria-label]="slide.label"
(click)="onClick.emit()"
>
-
+