import type { Meta, StoryObj } from '@storybook/vue3-vite' import type { Token } from '@/stories/tokenUtils' import { copyableClass, copyableCopiedClass, readTokens, sortTokensBySize, tokenTableClass, useCopier, } from '@/stories/tokenUtils' const meta: Meta = { title: 'Foundations/Shadows', tags: ['!dev'], parameters: { layout: 'padded', controls: { disable: true }, docs: { source: { code: null } }, }, } export default meta type Story = StoryObj const previewStyle = (tokenName: string): string => `width: 160px; height: 80px; background: #ffffff; border-radius: 8px; box-shadow: var(${tokenName});` const makeSectionStory = (loader: () => Token[]): Story => ({ render: () => ({ setup() { const { copiedKey, copy } = useCopier() return { tokens: loader(), copiedKey, copy, tableClass: tokenTableClass, copyClass: copyableClass, copiedClass: copyableCopiedClass, preview: (tokenName: string) => previewStyle(tokenName), } }, template: `
| Token | Value | Preview |
|---|---|---|
| {{ copiedKey === token.name ? 'Copied!' : token.name }} | {{ token.value }} |