```ts
// Table.stories.ts

import Table from './Table.vue';

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

const meta: Meta<typeof Table> = {
  /* 👇 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: 'Custom Table',
  component: Table,
};

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

/*
 *👇 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 TableStory: Story = {
  render: (args, { argTypes }) => ({
    components: { Table },
    props: Object.keys(argTypes),
    template: `
      <Table v-bind="$props">
        <tr v-for="(row, idx1) in data">
          <td v-for="(col, idx2) in row">
            {{ data[idx1][idx2] }}
          </td>
        </tr>
    </Table>
    `,
  }),
  args: {
    //👇 This arg is for the story component
    data: [
      [1, 2, 3],
      [4, 5, 6],
    ],
    //👇 The remaining args get passed to the `Table` component
    size: 'large',
  },
};
```
