import { Meta, StoryObj, moduleMetadata } from "@storybook/angular"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { ButtonModule } from "../../../../components/src/button"; import { LockIcon } from "../icons"; import { AnonLayoutComponent } from "./anon-layout.component"; class MockPlatformUtilsService implements Partial { getApplicationVersion = () => Promise.resolve("Version 2024.1.1"); } export default { title: "Auth/Anon Layout", component: AnonLayoutComponent, decorators: [ moduleMetadata({ imports: [ButtonModule], providers: [ { provide: PlatformUtilsService, useClass: MockPlatformUtilsService, }, ], }), ], args: { title: "The Page Title", subtitle: "The subtitle (optional)", icon: LockIcon, }, } as Meta; type Story = StoryObj; export const WithPrimaryContent: Story = { render: (args) => ({ props: args, template: // Projected content (the
) and styling is just a sample and can be replaced with any content/styling. `
Primary Projected Content Area (customizable)
Lorem ipsum dolor sit amet consectetur adipisicing elit. Necessitatibus illum vero, placeat recusandae esse ratione eius minima veniam nemo, quas beatae! Impedit molestiae alias sapiente explicabo. Sapiente corporis ipsa numquam?
`, }), }; export const WithSecondaryContent: Story = { render: (args) => ({ props: args, template: // Projected content (the
's) and styling is just a sample and can be replaced with any content/styling. // Notice that slot="secondary" is requred to project any secondary content. `
Primary Projected Content Area (customizable)
Lorem ipsum dolor sit amet consectetur adipisicing elit. Necessitatibus illum vero, placeat recusandae esse ratione eius minima veniam nemo, quas beatae! Impedit molestiae alias sapiente explicabo. Sapiente corporis ipsa numquam?
Secondary Projected Content (optional)
`, }), }; export const WithLongContent: Story = { render: (args) => ({ props: args, template: // Projected content (the
's) and styling is just a sample and can be replaced with any content/styling. `
Primary Projected Content Area (customizable)
Lorem ipsum dolor sit amet consectetur adipisicing elit. Necessitatibus illum vero, placeat recusandae esse ratione eius minima veniam nemo, quas beatae! Impedit molestiae alias sapiente explicabo. Sapiente corporis ipsa numquam? Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet consectetur adipisicing elit.
Secondary Projected Content (optional)

Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias laborum nostrum natus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias laborum nostrum natus. Expedita, quod est?

`, }), }; export const WithIcon: Story = { render: (args) => ({ props: args, template: // Projected content (the
) and styling is just a sample and can be replaced with any content/styling. `
Primary Projected Content Area (customizable)
Lorem ipsum dolor sit amet consectetur adipisicing elit. Necessitatibus illum vero, placeat recusandae esse ratione eius minima veniam nemo, quas beatae! Impedit molestiae alias sapiente explicabo. Sapiente corporis ipsa numquam?
`, }), };