|
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
Object.defineProperty(exports, "default", { |
|
enumerable: true, |
|
get: function() { |
|
return createUtilityPlugin; |
|
} |
|
}); |
|
const _transformThemeValue = _interop_require_default(require("./transformThemeValue")); |
|
function _interop_require_default(obj) { |
|
return obj && obj.__esModule ? obj : { |
|
default: obj |
|
}; |
|
} |
|
function createUtilityPlugin(themeKey, utilityVariations = [ |
|
[ |
|
themeKey, |
|
[ |
|
themeKey |
|
] |
|
] |
|
], { filterDefault =false , ...options } = {}) { |
|
let transformValue = (0, _transformThemeValue.default)(themeKey); |
|
return function({ matchUtilities , theme }) { |
|
for (let utilityVariation of utilityVariations){ |
|
let group = Array.isArray(utilityVariation[0]) ? utilityVariation : [ |
|
utilityVariation |
|
]; |
|
var _theme; |
|
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 = theme(themeKey)) !== null && _theme !== void 0 ? _theme : {}).filter(([modifier])=>modifier !== "DEFAULT")) : theme(themeKey) |
|
}); |
|
} |
|
}; |
|
} |
|
|