diff options
| author | Philipp Tanlak <philipp.tanlak@gmail.com> | 2025-11-24 20:54:57 +0100 |
|---|---|---|
| committer | Philipp Tanlak <philipp.tanlak@gmail.com> | 2025-11-24 20:57:48 +0100 |
| commit | b1e2c8fd5cb5dfa46bc440a12eafaf56cd844b1c (patch) | |
| tree | 49d360fd6cbc6a2754efe93524ac47ff0fbe0f7d /node_modules/tailwindcss/src/featureFlags.js | |
Docs
Diffstat (limited to 'node_modules/tailwindcss/src/featureFlags.js')
| -rw-r--r-- | node_modules/tailwindcss/src/featureFlags.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/node_modules/tailwindcss/src/featureFlags.js b/node_modules/tailwindcss/src/featureFlags.js new file mode 100644 index 0000000..76dd373 --- /dev/null +++ b/node_modules/tailwindcss/src/featureFlags.js @@ -0,0 +1,69 @@ +import colors from 'picocolors' +import log from './util/log' + +let defaults = { + optimizeUniversalDefaults: false, + generalizedModifiers: true, + get disableColorOpacityUtilitiesByDefault() { + return __OXIDE__ + }, + get relativeContentPathsByDefault() { + return __OXIDE__ + }, +} + +let featureFlags = { + future: [ + 'hoverOnlyWhenSupported', + 'respectDefaultRingColorOpacity', + 'disableColorOpacityUtilitiesByDefault', + 'relativeContentPathsByDefault', + ], + experimental: [ + 'optimizeUniversalDefaults', + 'generalizedModifiers', + ], +} + +export function flagEnabled(config, flag) { + if (featureFlags.future.includes(flag)) { + return config.future === 'all' || (config?.future?.[flag] ?? defaults[flag] ?? false) + } + + if (featureFlags.experimental.includes(flag)) { + return ( + config.experimental === 'all' || (config?.experimental?.[flag] ?? defaults[flag] ?? false) + ) + } + + return false +} + +function experimentalFlagsEnabled(config) { + if (config.experimental === 'all') { + return featureFlags.experimental + } + + return Object.keys(config?.experimental ?? {}).filter( + (flag) => featureFlags.experimental.includes(flag) && config.experimental[flag] + ) +} + +export function issueFlagNotices(config) { + if (process.env.JEST_WORKER_ID !== undefined) { + return + } + + if (experimentalFlagsEnabled(config).length > 0) { + let changes = experimentalFlagsEnabled(config) + .map((s) => colors.yellow(s)) + .join(', ') + + log.warn('experimental-flags-enabled', [ + `You have enabled experimental features: ${changes}`, + 'Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time.', + ]) + } +} + +export default featureFlags |