@park-ui/panda-preset
Version:
Panda CSS Preset for Park UI
63 lines (61 loc) • 1.88 kB
JavaScript
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