UNPKG

@poupe/tailwindcss

Version:

TailwindCSS v4 plugin for Poupe UI framework with theme customization support

66 lines (63 loc) 3.03 kB
import { m as makeThemeBases, a as makeThemeVariants, d as defaultPersistentColors, b as makeShadowRules, c as makeThemeComponents } from './shared/tailwindcss.BlKYX9OC.mjs'; export { e as defaultColors, o as defaultPrimaryColor, i as defaultShades, y as defaultShapePrefix, x as defaultSurfacePrefix, s as defaultThemeContrastLevel, q as defaultThemeDarkSuffix, r as defaultThemeLightSuffix, p as defaultThemePrefix, u as defaultThemeScheme, g as makeConfig, j as makeHexShades, k as makeShades, l as makeShadows, n as makeTheme, h as makeThemeFromPartialOptions, g as themeConfigFunction, t as themePlugin, f as themePluginFunction, v as validShade, w as withDefaultThemeOptions } from './shared/tailwindcss.BlKYX9OC.mjs'; export { Hct } from '@poupe/theme-builder'; export { colorFormatter } from '@poupe/theme-builder/core'; import { interleavedRules, formatCSSRulesArray, renameRules, keys } from '@poupe/css'; import 'tailwindcss/colors'; import './shared/tailwindcss.CwibpYHY.mjs'; const utilityName = (name) => `@utility ${name.startsWith(".") ? name.slice(1) : name}`; const variantName = (name) => `@custom-variant ${name}`; const prepareComponents = (components) => components.map((group) => renameRules(group, utilityName)); const prepareVariants = (variants) => variants.map((group) => renameRules(group, variantName)); function formatTheme(theme, darkMode = "class", indent = " ", stringify) { const { extendColors = false } = theme.options; const bases = makeThemeBases(theme, darkMode, stringify); const variants = makeThemeVariants(theme, darkMode); const rules = [ // variants ...prepareVariants(variants), // bases ...bases.length > 0 ? [{ "@layer base": bases }] : [], // theme { "@theme": interleavedRules([ // colors ...themeColors(theme.colors, extendColors), // shadows ...makeShadowRules(theme) ]) }, // components ...prepareComponents(makeThemeComponents(theme)) ]; return formatCSSRulesArray(interleavedRules(rules), { indent }); } function themeColors(colors, extendColors = false, persistentColors = defaultPersistentColors) { const rules = []; if (!extendColors) { rules.push({ "--color-*": "initial" }); const colorRules = {}; for (const key of [...keys(persistentColors)].sort((a, b) => a.localeCompare(b))) { if (!(key in colors)) { colorRules[`--color-${key}`] = persistentColors[key]; } } rules.push(colorRules); } const themeColors2 = {}; for (const key of [...keys(colors)].sort((a, b) => a.localeCompare(b))) { const c = colors[key]; themeColors2[`--color-${key}`] = `var(${c.value})`; if (c.shades) { for (const shade of [...keys(c.shades)].sort((a, b) => a - b)) { themeColors2[`--color-${key}-${shade}`] = `var(${c.shades[shade]})`; } } } rules.push(themeColors2); return rules; } export { formatTheme, makeShadowRules, makeThemeBases, makeThemeComponents }; //# sourceMappingURL=theme.mjs.map