mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-09 00:19:13 +08:00
8.2 KiB
8.2 KiB
import type { Meta, StoryObj } from '@storybook/angular';
import { argsToTemplate } from '@storybook/angular';
import { Page } from './page.component';
type PagePropsAndCustomArgs = Page & { footer?: string };
const meta: Meta<PagePropsAndCustomArgs> = {
component: Page,
render: ({ footer, ...args }) => ({
props: args,
template: `
<storybook-page ${argsToTemplate(args)}>
<ng-container footer>${footer}</ng-container>
</storybook-page>`,
}),
};
export default meta;
type Story = StoryObj<PagePropsAndCustomArgs>;
export const CustomFooter: Story = {
args: {
footer: 'Built with Storybook',
},
};
import { Page } from './Page';
export default {
component: Page,
render: ({ footer, ...args }) => (
<Page {...args}>
<footer>{footer}</footer>
</Page>
),
};
export const CustomFooter = {
args: {
footer: 'Built with Storybook',
},
};
import type { Meta, StoryObj } from '@storybook/react';
import { Page } from './Page';
type PagePropsAndCustomArgs = React.ComponentProps<typeof Page> & { footer?: string };
const meta = {
component: Page,
render: ({ footer, ...args }) => (
<Page {...args}>
<footer>{footer}</footer>
</Page>
),
} satisfies Meta<PagePropsAndCustomArgs>;
export default meta;
type Story = StoryObj<typeof meta>;
export const CustomFooter = {
args: {
footer: 'Built with Storybook',
},
} satisfies Story;
import type { Meta, StoryObj } from '@storybook/react';
import { Page } from './Page';
type PagePropsAndCustomArgs = React.ComponentProps<typeof Page> & { footer?: string };
const meta: Meta<PagePropsAndCustomArgs> = {
component: Page,
render: ({ footer, ...args }) => (
<Page {...args}>
<footer>{footer}</footer>
</Page>
),
};
export default meta;
type Story = StoryObj<PagePropsAndCustomArgs>;
export const CustomFooter: Story = {
args: {
footer: 'Built with Storybook',
},
};
import { Page } from './Page';
export default {
component: Page,
render: ({ footer, ...args }) => (
<Page {...args}>
<footer>{footer}</footer>
</Page>
),
};
export const CustomFooter = {
args: {
footer: 'Built with Storybook',
},
};
import type { ComponentProps } from 'solid-js';
import type { Meta, StoryObj } from 'storybook-solidjs';
import { Page } from './Page';
type PagePropsAndCustomArgs = ComponentProps<typeof Page> & { footer?: string };
const meta = {
component: Page,
render: ({ footer, ...args }) => (
<Page {...args}>
<footer>{footer}</footer>
</Page>
),
} satisfies Meta<PagePropsAndCustomArgs>;
export default meta;
type Story = StoryObj<typeof meta>;
export const CustomFooter = {
args: {
footer: 'Built with Storybook',
},
} satisfies Story;
import type { ComponentProps } from 'solid-js';
import type { Meta, StoryObj } from 'storybook-solidjs';
import { Page } from './Page';
type PagePropsAndCustomArgs = ComponentProps<typeof Page> & { footer?: string };
const meta: Meta<PagePropsAndCustomArgs> = {
component: Page,
render: ({ footer, ...args }) => (
<Page {...args}>
<footer>{footer}</footer>
</Page>
),
};
export default meta;
type Story = StoryObj<PagePropsAndCustomArgs>;
export const CustomFooter: Story = {
args: {
footer: 'Built with Storybook',
},
};
<script module>
import { defineMeta } from '@storybook/addon-svelte-csf';
import Page from './Page.svelte';
const { Story } = defineMeta({
component: Page
});
</script>
<Story name="CustomFooter" args={{ footer: 'Built with Storybook' }}>
{#snippet children(args)}
<Page {...args} >
<footer>{args.footer}</footer>
</Page>
{/snippet}
</Story>
<script module>
import { defineMeta } from '@storybook/addon-svelte-csf';
import Page from './Page.svelte';
const { Story } = defineMeta({
component: Page
});
</script>
<Story name="CustomFooter" args={{ footer: 'Built with Storybook' }}>
{#snippet children(args)}
<Page {...args} >
<footer>{args.footer}</footer>
</Page>
{/snippet}
</Story>
<script module>
import { defineMeta } from '@storybook/addon-svelte-csf';
import Page from './Page.svelte';
const { Story } = defineMeta({
component: Page
});
</script>
<Story name="CustomFooter" args={{ footer: 'Built with Storybook' }}>
{#snippet children(args)}
<Page {...args} >
<footer>{args.footer}</footer>
</Page>
{/snippet}
</Story>
import Page from './Page.vue';
export default {
component: Page,
render: (args) => ({
components: { Page },
setup() {
return { args };
},
template: `
<page v-bind="args">
<template v-slot:footer>
<footer v-if="args.footer" v-html="args.footer" />
</template>
</page>
`,
}),
};
export const CustomFooter = {
args: {
footer: 'Built with Storybook',
},
};
// https://www.npmjs.com/package/vue-component-type-helpers
import type { ComponentProps } from 'vue-component-type-helpers';
import type { Meta, StoryObj } from '@storybook/vue3';
import Page from './Page.vue';
type PagePropsAndCustomArgs = ComponentProps<typeof Page> & { footer?: string };
const meta = {
component: Page,
render: (args) => ({
components: { Page },
setup() {
return { args };
},
template: `
<page v-bind="args">
<template v-slot:footer>
<footer v-if="args.footer" v-html="args.footer" />
</template>
</page>
`,
}),
} satisfies Meta<PagePropsAndCustomArgs>;
export default meta;
type Story = StoryObj<typeof meta>;
export const Primary = {
args: {
footer: 'Built with Storybook',
},
} satisfies Story;
// https://www.npmjs.com/package/vue-component-type-helpers
import type { ComponentProps } from 'vue-component-type-helpers';
import type { Meta, StoryObj } from '@storybook/vue3';
import Page from './Page.vue';
type PagePropsAndCustomArgs = ComponentProps<typeof Page> & { footer?: string };
const meta: Meta<PagePropsAndCustomArgs> = {
component: Page,
render: (args) => ({
components: { Page },
setup() {
return { args };
},
template: `
<page v-bind="args">
<template v-slot:footer>
<footer v-if="args.footer" v-html="args.footer" />
</template>
</page>
`,
}),
};
export default meta;
type Story = StoryObj<PagePropsAndCustomArgs>;
export const Primary: Story = {
args: {
footer: 'Built with Storybook',
},
};
import { html } from 'lit';
export default {
title: 'Page',
component: 'demo-page',
render: ({ footer }) => html`
<demo-page>
<footer>${footer}</footer>
</demo-page>
`,
};
export const CustomFooter = {
args: {
footer: 'Built with Storybook',
},
};
import type { Meta, StoryObj } from '@storybook/web-components';
import { html } from 'lit';
type CustomArgs = { footer?: string };
const meta: Meta<CustomArgs> = {
title: 'Page',
component: 'demo-page',
render: ({ footer }) => html`
<demo-page>
<footer>${footer}</footer>
</demo-page>
`,
};
export default meta;
type Story = StoryObj<CustomArgs>;
export const CustomFooter: Story = {
args: {
footer: 'Built with Storybook',
},
};