import { RouterTestingModule } from "@angular/router/testing"; import { Meta, StoryObj, moduleMetadata } from "@storybook/angular"; import { userEvent } from "@storybook/test"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { CalloutModule } from "../callout"; import { NavigationModule } from "../navigation"; import { I18nMockService } from "../utils/i18n-mock.service"; import { positionFixedWrapperDecorator } from "../utils/position-fixed-wrapper-decorator"; import { LayoutComponent } from "./layout.component"; export default { title: "Component Library/Layout", component: LayoutComponent, decorators: [ positionFixedWrapperDecorator(), moduleMetadata({ imports: [NavigationModule, RouterTestingModule, CalloutModule], providers: [ { provide: I18nService, useFactory: () => { return new I18nMockService({ toggleSideNavigation: "Toggle side navigation", skipToContent: "Skip to content", submenu: "submenu", toggleCollapse: "toggle collapse", }); }, }, ], }), ], parameters: { chromatic: { viewports: [640, 1280] }, }, } as Meta; type Story = StoryObj; export const Empty: Story = { render: (args) => ({ props: args, template: /* HTML */ ` `, }), }; export const WithContent: Story = { render: (args) => ({ props: args, template: /* HTML */ ` Hello world! `, }), }; export const SkipLinks: Story = { ...WithContent, play: async () => { await userEvent.tab(); }, }; export const Secondary: Story = { render: (args) => ({ props: args, template: /* HTML */ ` Hello world! `, }), };