0.9.29 • Published 26 days ago

storybook-addon-vue-slots v0.9.29

Weekly downloads
-
License
MIT
Repository
github
Last release
26 days ago

Stand With Ukraine

Enables to use Vue slots inside Storybook's CSF files.

Features

  • Vue 3 support
  • Generate code snippets for stories with slots
  • Control specific aspect of the slot via Storybook's controls
  • Wrap slot content with components

📦 Installation

pnpm add -D storybook-addon-vue-slots

Add the storybook-addon-vue-slots to your plugins in main.ts file:

// .storybook/main.ts
export default {
  // ...
  addons: [
    // ...
    'storybook-addon-vue-slots',
  ],
} satisfies StorybookConfig

Examples

Run:

npm run storybook

To run an example Storybook

Usage

Zero

By default, the addon will pass the [slotName] arg to the template, e.x. {{ args.default }}.

Basic

Add a description to the slot by passing a string to the slot definition:

// MyComponent.stories.ts

export default meta = {
  parameters: {
    slots: {
      default: `Default slot content`,
    },
  },
}

Standard

Use args.[slotName] inside the template to pass data from Storybook controls to the slot, or access other args.

// MyComponent.stories.ts

export default meta = {
  parameters: {
    slots: {
      default: {
        description: 'Default slot',
        template: `<p>{{ args.default }}</p>`,
      },
      header: {
        description: 'Header slot',
        template: `<p>{{ args.header }}</p>`,
      },
    },
  },
}

So, value of header arg control in Storybook table is being passed into the slot template, allowing control of an aspect of the slot.

Advanced

Adding components

// MyComponent.stories.ts

export default meta = {
  parameters: {
    slots: {
      default: {
        description: 'Default slot',
        template: `<p>{{ args.default }}</p>`,
      header: {
        description: 'Header slot',
        components: { AppButton },
        template: `<AppButton>{{ args.header }}</AppButton>`,
      },
    },
  },
}

Todo

  • Slots fallback support

Contribute

💖 Funding

Help support my open-source work through PayPal and GitHub Sponsors.

License

MIT License © 2023 Jacob Janisz

0.9.30-next.2

26 days ago

0.9.30-next.1

26 days ago

0.9.30-next.0

27 days ago

0.9.28

4 months ago

0.9.29

4 months ago

0.9.25

6 months ago

0.9.26

5 months ago

0.9.27

5 months ago

0.9.23

7 months ago

0.9.24

7 months ago

0.9.22

7 months ago

0.9.21

10 months ago

0.9.20

10 months ago

0.9.18

10 months ago

0.9.17

10 months ago

0.9.16

10 months ago

0.9.12

10 months ago