From ba6551db0f2726461371b4f3c6cd4c7090888504 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Fri, 21 Oct 2022 16:33:39 +0200 Subject: [PATCH] ensure we also check wether the modifier exists in the modifiers object Before we were just checking if the `modifiers` option is `any` or an object, without actually checking that in case it is an object, the value actually existed. --- src/util/pluginUtils.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/util/pluginUtils.js b/src/util/pluginUtils.js index d5ad3fa3142b..6295bd2bfff2 100644 --- a/src/util/pluginUtils.js +++ b/src/util/pluginUtils.js @@ -233,14 +233,20 @@ export function coerceValue(types, modifier, options, tailwindConfig) { export function* getMatchingTypes(types, rawModifier, options, tailwindConfig) { let modifiersEnabled = flagEnabled(tailwindConfig, 'generalizedModifiers') + let [modifier, utilityModifier] = splitUtilityModifier(rawModifier) + let canUseUtilityModifier = modifiersEnabled && options.modifiers != null && - (options.modifiers === 'any' || typeof options.modifiers === 'object') - - let [modifier, utilityModifier] = canUseUtilityModifier - ? splitUtilityModifier(rawModifier) - : [rawModifier, undefined] + (options.modifiers === 'any' || + (typeof options.modifiers === 'object' && + ((utilityModifier && isArbitraryValue(utilityModifier)) || + utilityModifier in options.modifiers))) + + if (!canUseUtilityModifier) { + modifier = rawModifier + utilityModifier = undefined + } if (utilityModifier !== undefined && modifier === '') { modifier = 'DEFAULT'