summaryrefslogtreecommitdiff
path: root/node_modules/tailwindcss/src/util/createUtilityPlugin.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/tailwindcss/src/util/createUtilityPlugin.js')
-rw-r--r--node_modules/tailwindcss/src/util/createUtilityPlugin.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/node_modules/tailwindcss/src/util/createUtilityPlugin.js b/node_modules/tailwindcss/src/util/createUtilityPlugin.js
new file mode 100644
index 0000000..32c2c8a
--- /dev/null
+++ b/node_modules/tailwindcss/src/util/createUtilityPlugin.js
@@ -0,0 +1,37 @@
+import transformThemeValue from './transformThemeValue'
+
+export default function createUtilityPlugin(
+ themeKey,
+ utilityVariations = [[themeKey, [themeKey]]],
+ { filterDefault = false, ...options } = {}
+) {
+ let transformValue = transformThemeValue(themeKey)
+ return function ({ matchUtilities, theme }) {
+ for (let utilityVariation of utilityVariations) {
+ let group = Array.isArray(utilityVariation[0]) ? utilityVariation : [utilityVariation]
+
+ matchUtilities(
+ group.reduce((obj, [classPrefix, properties]) => {
+ return Object.assign(obj, {
+ [classPrefix]: (value) => {
+ return properties.reduce((obj, name) => {
+ if (Array.isArray(name)) {
+ return Object.assign(obj, { [name[0]]: name[1] })
+ }
+ return Object.assign(obj, { [name]: transformValue(value) })
+ }, {})
+ },
+ })
+ }, {}),
+ {
+ ...options,
+ values: filterDefault
+ ? Object.fromEntries(
+ Object.entries(theme(themeKey) ?? {}).filter(([modifier]) => modifier !== 'DEFAULT')
+ )
+ : theme(themeKey),
+ }
+ )
+ }
+ }
+}