Skip to content

Commit 8365959

Browse files
authored
sprinkles: Allow undefined property values at the type level (#1034)
1 parent 4e8377b commit 8365959

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

.changeset/silver-pianos-cover.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
'@vanilla-extract/sprinkles': patch
3+
---
4+
5+
Allow `undefined` property values at the type level.
6+
This change enables better compatibility with projects that set the [`exactOptionalPropertyTypes`][exactOptionalPropertyTypes] flag to `true`.
7+
8+
[exactOptionalPropertyTypes]: https://www.typescriptlang.org/tsconfig#exactOptionalPropertyTypes

packages/sprinkles/src/createSprinkles.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ type ConditionalStyle<
1919
| (Values[keyof Values]['defaultClass'] extends string ? keyof Values : never)
2020
| {
2121
[Condition in keyof Values[keyof Values]['conditions']]?: keyof Values;
22-
};
22+
}
23+
| undefined;
2324

2425
type ConditionalStyleWithResponsiveArray<
2526
Values extends { [key: string]: ConditionalPropertyValue },
@@ -45,10 +46,12 @@ type ChildSprinkleProps<Sprinkles extends SprinklesProperties['styles']> = {
4546
Sprinkles[Sprinkles[Prop]['mappings'][number]]['values']
4647
>
4748
: Sprinkles[Sprinkles[Prop]['mappings'][number]] extends UnconditionalProperty
48-
? keyof Sprinkles[Sprinkles[Prop]['mappings'][number]]['values']
49+
?
50+
| keyof Sprinkles[Sprinkles[Prop]['mappings'][number]]['values']
51+
| undefined
4952
: never
5053
: Sprinkles[Prop] extends UnconditionalProperty
51-
? keyof Sprinkles[Prop]['values']
54+
? keyof Sprinkles[Prop]['values'] | undefined
5255
: never;
5356
};
5457

0 commit comments

Comments
 (0)