|
|
const tailwindColors = require("tailwindcss/colors")
|
|
|
|
|
|
const postcssJs = require("postcss-js")
|
|
|
const postcssPrefix = require("./lib/addPrefix")
|
|
|
|
|
|
const daisyuiInfo = require("../package.json")
|
|
|
const colors = require("./theming/index")
|
|
|
const utilities = require("../dist/utilities")
|
|
|
const base = require("../dist/base")
|
|
|
const unstyled = require("../dist/unstyled")
|
|
|
const unstyledRtl = require("../dist/unstyled.rtl")
|
|
|
const styled = require("../dist/styled")
|
|
|
const styledRtl = require("../dist/styled.rtl")
|
|
|
const utilitiesUnstyled = require("../dist/utilities-unstyled")
|
|
|
const utilitiesStyled = require("../dist/utilities-styled")
|
|
|
const themes = require("./theming/themes")
|
|
|
const colorFunctions = require("./theming/functions")
|
|
|
|
|
|
const mainFunction = ({ addBase, addComponents, config }) => {
|
|
|
let logs = false
|
|
|
if (config("daisyui.logs") != false) {
|
|
|
logs = true
|
|
|
}
|
|
|
if (logs) {
|
|
|
console.log()
|
|
|
console.log(
|
|
|
"\x1b[35m%s\x1b[0m",
|
|
|
"🌼 daisyUI " + daisyuiInfo.version,
|
|
|
"\x1b[0m" + daisyuiInfo.homepage
|
|
|
)
|
|
|
}
|
|
|
|
|
|
// inject @base style
|
|
|
if (config("daisyui.base") != false) {
|
|
|
addBase(base)
|
|
|
}
|
|
|
|
|
|
// inject components
|
|
|
// because rollupjs doesn't supprt dynamic require
|
|
|
let file = styled
|
|
|
if (config("daisyui.styled") == false && config("daisyui.rtl") != true) {
|
|
|
file = unstyled
|
|
|
} else if (config("daisyui.styled") == false && config("daisyui.rtl") == true) {
|
|
|
file = unstyledRtl
|
|
|
} else if (config("daisyui.styled") != false && config("daisyui.rtl") != true) {
|
|
|
file = styled
|
|
|
} else if (config("daisyui.styled") !== false && config("daisyui.rtl") == true) {
|
|
|
file = styledRtl
|
|
|
}
|
|
|
|
|
|
// add prefix to class names if specified
|
|
|
const prefix = config("daisyui.prefix")
|
|
|
let postcssJsProcess
|
|
|
if (prefix) {
|
|
|
try {
|
|
|
postcssJsProcess = postcssJs.sync(postcssPrefix({ prefix, ignore: [] }))
|
|
|
} catch (error) {
|
|
|
logs && console.error(`Error occurred and prevent applying the "prefix" option:`, error)
|
|
|
}
|
|
|
}
|
|
|
const shouldApplyPrefix = prefix && postcssJsProcess
|
|
|
if (shouldApplyPrefix) {
|
|
|
file = postcssJsProcess(file)
|
|
|
}
|
|
|
|
|
|
addComponents(file)
|
|
|
|
|
|
const themeInjectorHsl = colorFunctions.injectThemes(addBase, config, themes, "hsl")
|
|
|
themeInjectorHsl
|
|
|
|
|
|
// inject @utilities style needed by components
|
|
|
if (config("daisyui.utils") != false) {
|
|
|
addComponents(utilities, { variants: ["responsive"] })
|
|
|
|
|
|
let toAdd = utilitiesUnstyled // shadow clone here to avoid mutate the original
|
|
|
if (shouldApplyPrefix) {
|
|
|
toAdd = postcssJsProcess(toAdd)
|
|
|
}
|
|
|
addComponents(toAdd, { variants: ["responsive"] })
|
|
|
|
|
|
toAdd = utilitiesStyled
|
|
|
if (shouldApplyPrefix) {
|
|
|
toAdd = postcssJsProcess(toAdd)
|
|
|
}
|
|
|
addComponents(toAdd, { variants: ["responsive"] })
|
|
|
}
|
|
|
|
|
|
if (logs) {
|
|
|
console.log("╰╮")
|
|
|
if (config("daisyui.styled") == false) {
|
|
|
console.log(
|
|
|
" ├─",
|
|
|
"\x1b[33m" + "◆" + "\x1b[0m" + "\x1b[2m",
|
|
|
"daisyui.styled",
|
|
|
"\x1b[0m" + "config is",
|
|
|
"\x1b[2m" + "false" + "\x1b[0m",
|
|
|
"– your components will have no design decisions" + "\n │"
|
|
|
)
|
|
|
}
|
|
|
if (config("daisyui.utils") == false) {
|
|
|
console.log(
|
|
|
" ├─",
|
|
|
"\x1b[33m" + "◆" + "\x1b[0m" + "\x1b[2m",
|
|
|
"daisyui.utils",
|
|
|
"\x1b[0m" + "config is",
|
|
|
"\x1b[2m" + "false" + "\x1b[0m",
|
|
|
"– daisyUI modifier utility classes are disabled" + "\n │"
|
|
|
)
|
|
|
}
|
|
|
if (config("daisyui.prefix") && config("daisyui.prefix") !== "") {
|
|
|
console.log(
|
|
|
" ├─",
|
|
|
"\x1b[32m" + "✔︎" + "\x1b[0m",
|
|
|
"Prefix is enabled, daisyUI classnames must use",
|
|
|
"\x1b[2m" + `${config("daisyui.prefix")}`,
|
|
|
"\x1b[0m" + "prefix. like:",
|
|
|
"\x1b[2m" + `${config("daisyui.prefix")}btn`,
|
|
|
"\x1b[0m" + "\n │ https://daisyui.com/docs/config" + "\n │"
|
|
|
)
|
|
|
}
|
|
|
if (config("daisyui.rtl") == true) {
|
|
|
console.log(
|
|
|
" ├─",
|
|
|
"\x1b[32m" + "✔︎" + "\x1b[0m",
|
|
|
"Using RTL, make sure you're using",
|
|
|
"\x1b[2m" + "<html dir=rtl>" + "\x1b[0m",
|
|
|
"and you have",
|
|
|
"\x1b[2m",
|
|
|
"tailwindcss-flip",
|
|
|
"\x1b[0m",
|
|
|
"plugin",
|
|
|
"\n │ https://daisyui.com/docs/config" + "\n │"
|
|
|
)
|
|
|
}
|
|
|
if (themeInjectorHsl.themeOrder.length > 0) {
|
|
|
console.log(
|
|
|
" ╰─",
|
|
|
"\x1b[32m" + "✔︎" + "\x1b[0m",
|
|
|
"\x1b[2m" +
|
|
|
"[ " +
|
|
|
"\x1b[0m" +
|
|
|
`${themeInjectorHsl.themeOrder.length}` +
|
|
|
"\x1b[2m" +
|
|
|
" ]" +
|
|
|
"\x1b[0m" +
|
|
|
` ${themeInjectorHsl.themeOrder.length > 1 ? "themes are" : "theme is"}` +
|
|
|
` enabled. You can add more themes or make your own theme:` +
|
|
|
"\n https://daisyui.com/docs/themes"
|
|
|
)
|
|
|
}
|
|
|
if (themeInjectorHsl.themeOrder.length === 0) {
|
|
|
console.log(
|
|
|
" ╰─",
|
|
|
"\x1b[33m" + "◆" + "\x1b[0m",
|
|
|
`All themes are disabled in the config. You can add themes or make your own theme:` +
|
|
|
"\n https://daisyui.com/docs/themes"
|
|
|
)
|
|
|
}
|
|
|
console.log(
|
|
|
"\n\x1b[32m%s\x1b[0m",
|
|
|
" ❤︎ Support daisyUI" + "\x1b[0m" + `: ${daisyuiInfo.funding.url}`
|
|
|
)
|
|
|
console.log()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
module.exports = require("tailwindcss/plugin")(mainFunction, {
|
|
|
theme: {
|
|
|
extend: {
|
|
|
colors: {
|
|
|
...colors,
|
|
|
// adding all Tailwind `neutral` shades here so they don't get overridden by daisyUI `neutral` color
|
|
|
"neutral-50": tailwindColors.neutral[50],
|
|
|
"neutral-100": tailwindColors.neutral[100],
|
|
|
"neutral-200": tailwindColors.neutral[200],
|
|
|
"neutral-300": tailwindColors.neutral[300],
|
|
|
"neutral-400": tailwindColors.neutral[400],
|
|
|
"neutral-500": tailwindColors.neutral[500],
|
|
|
"neutral-600": tailwindColors.neutral[600],
|
|
|
"neutral-700": tailwindColors.neutral[700],
|
|
|
"neutral-800": tailwindColors.neutral[800],
|
|
|
"neutral-900": tailwindColors.neutral[900],
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
})
|