When using compoundVariants with a boolean variant, it does not recognize undefined as a false equivalent.
On the other hand, including undefined as an array will be caught by typescript as an error.
To Reproduce
Having a component with a tag, you usually do not add false as value, but just skip the tag entirely:
const element = tv({
base: '',
variants: {
color: {
red: 'text-red-600',
blue: 'text-blue-600'
},
monochrome: {
true: 'text-black'
}
},
compoundVariants: [{
color: 'blue',
monochrome: false, // will not recognize the missing tag, if it is undefined
class: 'bg-red-600'
}, {
color: 'blue',
monochrome: [false, undefined], // will be caught by typescript, because of non-boolean value
class: 'bg-red-600'
}]
})
Expected behavior
The compoundVariant should treat undefined as false for boolean variants.
The typescript definition for boolean variants should include undefined.
Desktop (please complete the following information):
Describe the bug
When using compoundVariants with a boolean variant, it does not recognize
undefined
as afalse
equivalent. On the other hand, includingundefined
as an array will be caught by typescript as an error.To Reproduce
Having a component with a tag, you usually do not add
false
as value, but just skip the tag entirely:Defining a compoundVariant could look like this:
Expected behavior
undefined
asfalse
for boolean variants.undefined
.Desktop (please complete the following information):