- Add npm scripts for CSS/JS compilation (build:css, build:js, build) - Create PowerShell build automation script - Document development workflow in README - Add troubleshooting guide for build issues - Specify proper file structure and compilation process Supports Tailwind CSS v3.4.0 and esbuild bundling with source maps.
63 lines
1.6 KiB
JavaScript
63 lines
1.6 KiB
JavaScript
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
|
|
}
|
|
}
|