```ts
// List.stories.ts

import List from './ListComponent.vue';
import ListItem from './ListItem.vue';

import type { Meta, StoryObj } from '@storybook/vue3';

const meta: Meta<typeof List> = {
  /* 👇 The title prop is optional.
   * See https://storybook.js.org/docs/7.0/vue/configure/overview#configure-story-loading
   * to learn how to generate automatic titles
   */
  title: 'List',
  component: List,
};

export default meta;
type Story = StoryObj<typeof List>;

/*
 *👇 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.
 */
export const Empty: Story = {
  render: (args) => ({
    components: { List },
    setup() {
      return { args };
    },
    template: '<List v-bind="args">',
  }),
};

export const OneItem: Story = {
  render: (args) => ({
    components: { List, ListItem },
    setup() {
      return { args };
    },
    template: `
      <List v-bind="args">
        <list-item/>
      </List>`,
  }),
};

export const ManyItems: Story = {
  render: (args) => ({
    components: { List, ListItem },
    setup() {
      return { ...args };
    },
    template: `
      <List v-bind="args">
        <list-item/>
        <list-item/>
        <list-item/>
      </List>`,
  }),
};
```
