tailwindcss/src/util/createUtilityPlugin.js

24 lines
838 B
JavaScript
Raw Normal View History

2019-12-22 15:25:34 -05:00
import fromPairs from 'lodash/fromPairs'
import toPairs from 'lodash/toPairs'
import castArray from 'lodash/castArray'
import nameClass from './nameClass'
import transformThemeValue from './transformThemeValue'
2019-12-22 15:25:34 -05:00
export default function createUtilityPlugin(themeKey, utilityVariations) {
const transformValue = transformThemeValue(themeKey)
2020-10-16 13:30:06 -04:00
return function ({ addUtilities, variants, theme }) {
const pairs = toPairs(theme(themeKey))
const utilities = utilityVariations.map(([classPrefix, properties]) => {
return fromPairs(
pairs.map(([key, value]) => {
return [
nameClass(classPrefix, key),
fromPairs(castArray(properties).map((property) => [property, transformValue(value)])),
]
})
)
})
return addUtilities(utilities, variants(themeKey))
2019-12-22 15:25:34 -05:00
}
}