UNPKG

@park-ui/panda-preset

Version:

Panda CSS Preset for Park UI

1 lines 5.89 kB
{"version":3,"sources":["../../src/utils/index.ts","../../src/utils/create-radii.ts","../../src/utils/create-variables.ts"],"sourcesContent":["export { createRadii } from './create-radii'\nexport { createVariables } from './create-variables'\n","import { Match } from 'effect'\n\nexport type Radii = (typeof borderRadii)[number]\nexport const borderRadii = ['none', 'xs', 'sm', 'md', 'lg', 'xl', '2xl'] as const\n\nexport const createRadii = (radii: Radii) =>\n Match.value(radii).pipe(\n Match.when('xs', () => ({\n l1: { value: '{radii.2xs}' },\n l2: { value: '{radii.xs}' },\n l3: { value: '{radii.sm}' },\n })),\n Match.when('sm', () => ({\n l1: { value: '{radii.xs}' },\n l2: { value: '{radii.sm}' },\n l3: { value: '{radii.md}' },\n })),\n Match.when('md', () => ({\n l1: { value: '{radii.sm}' },\n l2: { value: '{radii.md}' },\n l3: { value: '{radii.lg}' },\n })),\n Match.when('lg', () => ({\n l1: { value: '{radii.md}' },\n l2: { value: '{radii.lg}' },\n l3: { value: '{radii.xl}' },\n })),\n Match.when('xl', () => ({\n l1: { value: '{radii.lg}' },\n l2: { value: '{radii.xl}' },\n l3: { value: '{radii.2xl}' },\n })),\n Match.when('2xl', () => ({\n l1: { value: '{radii.xl}' },\n l2: { value: '{radii.2xl}' },\n l3: { value: '{radii.3xl}' },\n })),\n Match.orElse(() => ({\n l1: { value: '{radii.none}' },\n l2: { value: '{radii.none}' },\n l3: { value: '{radii.none}' },\n })),\n )\n","import type { ColorPalette } from '../options'\n\nexport const createVariables = (color: ColorPalette): string => {\n const tokens = createTokens(color)\n const semanticTokens = createSemanticTokens(color)\n\n const baseVariables = `\n :where(:root, :host) {\n ${tokens.join('\\n ')}\n \n --colors-color-palette-default: var(--colors-${color.name}-default);\n --colors-color-palette-emphasized: var(--colors-${color.name}-emphasized);\n --colors-color-palette-fg: var(--colors-${color.name}-fg);\n --colors-color-palette-text: var(--colors-${color.name}-text);\n }\n `\n\n const lightTheme = `\n :where(:root, .light) {\n ${\n // @ts-expect-error\n semanticTokens.light.join('\\n ')\n }\n }\n `\n\n const darkTheme = `\n .dark {\n ${\n // @ts-expect-error\n semanticTokens.dark.join('\\n ')\n }\n }\n `\n\n return `@layer tokens {${baseVariables}${lightTheme}${darkTheme}\n}`\n}\n\nconst createTokens = (color: ColorPalette) => {\n const { name, tokens } = color\n\n return Object.entries(tokens ?? {}).flatMap(([condition, value]) =>\n Object.entries(value).map(([key, { value }]) => {\n return `--colors-${name}-${condition}-${key}: ${value};`\n }),\n )\n}\n\nconst createSemanticTokens = (color: ColorPalette) => {\n const { name, semanticTokens } = color\n const tokensByCondition: Record<string, string[]> = {}\n\n Object.entries(semanticTokens ?? {}).forEach(([shade, { value }]) => {\n Object.entries(value).forEach(([key, value]) => {\n const condition = key.replace('_', '')\n if (!tokensByCondition[condition]) {\n tokensByCondition[condition] = []\n }\n tokensByCondition[condition].push(`--colors-${name}-${shade}: ${convert(value)};`)\n })\n })\n return tokensByCondition\n}\n\nconst convert = (value: string): string => {\n return value.replaceAll('.', '-').replace('{', 'var(--').replace('}', ')')\n}\n"],"mappings":"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","names":["value"]}