UNPKG

daisyui

Version:

daisyUI 5 - The Tailwind CSS Component Library

44 lines (33 loc) 1.13 kB
const appendRule = (styles, selector, rule) => { const currentRule = styles[selector] if (currentRule === undefined) { styles[selector] = rule return } styles[selector] = Array.isArray(currentRule) ? [...currentRule, rule] : [currentRule, rule] } const wrapWithAtRules = (rule, atRules) => atRules.reduceRight((wrappedRule, atRule) => ({ [atRule]: wrappedRule }), rule) const moveLayerRules = (styles, layerValue, atRules) => { const layerBlocks = Array.isArray(layerValue) ? layerValue : [layerValue] for (const layerBlock of layerBlocks) { for (const [key, value] of Object.entries(layerBlock)) { if (key.startsWith("@")) { moveLayerRules(styles, value, [...atRules, key]) continue } appendRule(styles, key, wrapWithAtRules(value, atRules)) } } } export const nestCssLayers = (styles) => { const nestedStyles = {} for (const [key, value] of Object.entries(styles)) { if (key.startsWith("@layer ")) { moveLayerRules(nestedStyles, value, [key]) continue } appendRule(nestedStyles, key, value) } return nestedStyles }