```md
<!-- Badge.stories.mdx -->

import { Canvas, Meta, Story } from '@storybook/addon-docs';

import Badge from './Badge.vue';

<Meta title="MDX/Badge" component={Badge} />

<!--
 👇 Render functions are a framework specific feature to allow you control on how the component renders.
  See https://storybook.js.org/docs/7.0/vue/api/csf
  to learn how to use render functions.
-->

# Badge

Let's define a story for our `Badge` component:

<Story 
  name="positive" 
  args={{
    status: 'positive',
    label: 'Positive'
  }}
  render={(args) => ({
    components: { Badge },
    setup() {
      return { args };
    },
    template: '<Badge v-bind="args" />',
  })} />

We can drop it in a `Canvas` to get a code snippet:

<Canvas>
  <Story 
    name="negative" 
    args={{
      status: 'negative', 
      label: 'Negative',
    }}
    render={(args) => ({
      components: { Badge },
      setup() {
        return { args };
      },
      template: '<Badge v-bind="args" />',
    })} />
</Canvas>

We can even preview multiple Stories in a block. This
gets rendered as a group but defines individual stories
with unique URLs, which is great for review and testing.

<Canvas>
  <Story 
    name="warning"
    args={{
      status: 'warning',
      label: 'Warning', 
    }}
    render={(args) => ({
      components: { Badge },
      setup() {
        return { args };
      },
      template: '<Badge v-bind="args" />',
    })} />
  <Story 
    name="neutral"
    args={{
      status: 'neutral', 
      label: 'Neutral', 
    }}
    render={(args) => ({
      components: { Badge },
      setup() {
        return { args };
      },
      template: '<Badge v-bind="args" />',
    })} />
  <Story 
    name="error"
    args={{
      status: 'error', 
      label: 'Error', 
    }}
    render={(args) => ({
      components: { Badge },
      setup() {
        return { args };
      },
      template: '<Badge v-bind="args" />',
    })} />
</Canvas>
```