UNPKG

@park-ui/panda-preset

Version:

Panda CSS Preset for Park UI

63 lines (61 loc) 1.88 kB
import { createRadii } from "../chunk-LS3ONKWL.js"; // src/utils/create-variables.ts var createVariables = (color) => { const tokens = createTokens(color); const semanticTokens = createSemanticTokens(color); const baseVariables = ` :where(:root, :host) { ${tokens.join("\n ")} --colors-color-palette-default: var(--colors-${color.name}-default); --colors-color-palette-emphasized: var(--colors-${color.name}-emphasized); --colors-color-palette-fg: var(--colors-${color.name}-fg); --colors-color-palette-text: var(--colors-${color.name}-text); } `; const lightTheme = ` :where(:root, .light) { ${// @ts-expect-error semanticTokens.light.join("\n ")} } `; const darkTheme = ` .dark { ${// @ts-expect-error semanticTokens.dark.join("\n ")} } `; return `@layer tokens {${baseVariables}${lightTheme}${darkTheme} }`; }; var createTokens = (color) => { const { name, tokens } = color; return Object.entries(tokens ?? {}).flatMap( ([condition, value]) => Object.entries(value).map(([key, { value: value2 }]) => { return `--colors-${name}-${condition}-${key}: ${value2};`; }) ); }; var createSemanticTokens = (color) => { const { name, semanticTokens } = color; const tokensByCondition = {}; Object.entries(semanticTokens ?? {}).forEach(([shade, { value }]) => { Object.entries(value).forEach(([key, value2]) => { const condition = key.replace("_", ""); if (!tokensByCondition[condition]) { tokensByCondition[condition] = []; } tokensByCondition[condition].push(`--colors-${name}-${shade}: ${convert(value2)};`); }); }); return tokensByCondition; }; var convert = (value) => { return value.replaceAll(".", "-").replace("{", "var(--").replace("}", ")"); }; export { createRadii, createVariables }; //# sourceMappingURL=index.js.map