@evidence-dev/tailwind
Version:
20 lines (19 loc) • 658 B
JavaScript
/**
* @param {import('../schemas/types.js').ThemesConfig} themesConfig
* @returns {import('../schemas/types.js').Themes}
*/
export const buildThemes = (themesConfig) =>
/** @type {const} */ (['colors', 'colorPalettes', 'colorScales']).reduce(
(acc, key) => {
Object.entries(themesConfig.theme[key]).forEach(([name, values]) => {
if (!values) return;
acc.light[key][name] = values.light;
acc.dark[key][name] = values.dark;
});
return acc;
},
/** @type {import('../schemas/types.js').Themes} */ ({
light: { colors: {}, colorPalettes: {}, colorScales: {} },
dark: { colors: {}, colorPalettes: {}, colorScales: {} }
})
);