-
Notifications
You must be signed in to change notification settings - Fork 81
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
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:
<Element color='red' monochrome />
<Element color='blue' monochrome={false} />
<Element color='blue' />Defining a compoundVariant could look like this:
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
undefinedasfalsefor boolean variants. - The typescript definition for boolean variants should include
undefined.
Desktop (please complete the following information):
- Windows 11
- Chrome: 126.0.6478.127
- NextJS: 14.2.5
- Typescript: 5.5.3
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working