1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-23 11:43:46 +00:00

[CL-706] Display all svg icons in Storybook (#16111)

This commit is contained in:
Vicki League
2025-08-25 12:09:20 -04:00
committed by GitHub
parent 85dccf2a44
commit 777b92660a
16 changed files with 58 additions and 44 deletions

View File

@@ -1,4 +1,4 @@
import { Meta, StoryObj } from "@storybook/angular";
import { Meta } from "@storybook/angular";
import * as SvgIcons from "@bitwarden/assets/svg";
@@ -15,25 +15,36 @@ export default {
},
} as Meta;
type Story = StoryObj<BitIconComponent>;
const {
// Filtering out the few non-icons in the libs/assets/svg import
// eslint-disable-next-line @typescript-eslint/no-unused-vars
DynamicContentNotAllowedError: _DynamicContentNotAllowedError,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
isIcon,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
svgIcon,
...Icons
}: {
[key: string]: any;
} = SvgIcons;
// Filtering out the few non-icons in the libs/assets/svg import
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { DynamicContentNotAllowedError, isIcon, svgIcon, ...Icons } = SvgIcons;
export const Default: Story = {
export const Default = {
render: (args: { icons: [string, any][] }) => ({
props: args,
template: /*html*/ `
<div class="tw-bg-secondary-100 tw-p-2 tw-grid tw-grid-cols-[repeat(auto-fit,minmax(224px,1fr))] tw-gap-2">
@for (icon of icons; track icon[0]) {
<div class="tw-size-56 tw-border tw-border-secondary-300 tw-rounded-md">
<div class="tw-text-xs tw-text-center">{{icon[0]}}</div>
<div class="tw-size-52 tw-w-full tw-content-center">
<bit-icon [icon]="icon[1]" class="tw-flex tw-justify-center tw-max-h-full"></bit-icon>
</div>
</div>
}
</div>
`,
}),
args: {
icon: Icons.NoAccess,
},
argTypes: {
icon: {
options: Object.keys(Icons),
mapping: Icons,
control: { type: "select" },
},
ariaLabel: {
control: "text",
description: "the text used by a screen reader to describe the icon",
},
icons: Object.entries(Icons),
},
};