summaryrefslogtreecommitdiff
path: root/node_modules/tailwindcss/src/util/transformThemeValue.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/tailwindcss/src/util/transformThemeValue.js')
-rw-r--r--node_modules/tailwindcss/src/util/transformThemeValue.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/node_modules/tailwindcss/src/util/transformThemeValue.js b/node_modules/tailwindcss/src/util/transformThemeValue.js
new file mode 100644
index 0000000..2469612
--- /dev/null
+++ b/node_modules/tailwindcss/src/util/transformThemeValue.js
@@ -0,0 +1,62 @@
+import postcss from 'postcss'
+import isPlainObject from './isPlainObject'
+
+export default function transformThemeValue(themeSection) {
+ if (['fontSize', 'outline'].includes(themeSection)) {
+ return (value) => {
+ if (typeof value === 'function') value = value({})
+ if (Array.isArray(value)) value = value[0]
+
+ return value
+ }
+ }
+
+ if (themeSection === 'fontFamily') {
+ return (value) => {
+ if (typeof value === 'function') value = value({})
+ let families = Array.isArray(value) && isPlainObject(value[1]) ? value[0] : value
+ return Array.isArray(families) ? families.join(', ') : families
+ }
+ }
+
+ if (
+ [
+ 'boxShadow',
+ 'transitionProperty',
+ 'transitionDuration',
+ 'transitionDelay',
+ 'transitionTimingFunction',
+ 'backgroundImage',
+ 'backgroundSize',
+ 'backgroundColor',
+ 'cursor',
+ 'animation',
+ ].includes(themeSection)
+ ) {
+ return (value) => {
+ if (typeof value === 'function') value = value({})
+ if (Array.isArray(value)) value = value.join(', ')
+
+ return value
+ }
+ }
+
+ // For backwards compatibility reasons, before we switched to underscores
+ // instead of commas for arbitrary values.
+ if (['gridTemplateColumns', 'gridTemplateRows', 'objectPosition'].includes(themeSection)) {
+ return (value) => {
+ if (typeof value === 'function') value = value({})
+ if (typeof value === 'string') value = postcss.list.comma(value).join(' ')
+
+ return value
+ }
+ }
+
+ return (value, opts = {}) => {
+ if (typeof value === 'function') {
+ value = value(opts)
+ }
+
+ return value
+ }
+}