summaryrefslogtreecommitdiff
path: root/node_modules/tailwindcss/src/featureFlags.js
diff options
context:
space:
mode:
authorPhilipp Tanlak <philipp.tanlak@gmail.com>2025-11-24 20:54:57 +0100
committerPhilipp Tanlak <philipp.tanlak@gmail.com>2025-11-24 20:57:48 +0100
commitb1e2c8fd5cb5dfa46bc440a12eafaf56cd844b1c (patch)
tree49d360fd6cbc6a2754efe93524ac47ff0fbe0f7d /node_modules/tailwindcss/src/featureFlags.js
Docs
Diffstat (limited to 'node_modules/tailwindcss/src/featureFlags.js')
-rw-r--r--node_modules/tailwindcss/src/featureFlags.js69
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