Skip to content

Commit 9edf2df

Browse files
authored
Allow readonly arrays for responsive array properties (#100)
1 parent fbc1392 commit 9edf2df

File tree

4 files changed

+28
-8
lines changed

4 files changed

+28
-8
lines changed

.changeset/tricky-coins-hug.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@vanilla-extract/sprinkles': patch
3+
---
4+
5+
Allow readonly arrays for responsive array properties

packages/sprinkles/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ type ConditionalAtomicOptions<
5252

5353
type Values<Property, Result> = {
5454
[Value in Property extends ReadonlyArray<any>
55+
? Property[number]
56+
: Property extends Array<any>
5557
? Property[number]
5658
: keyof Property]: Result;
5759
};

packages/sprinkles/src/types.ts

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
1-
export type RA1<Value> = [Value];
2-
export type RA2<Value> = [Value, Value];
3-
export type RA3<Value> = [Value, Value, Value];
4-
export type RA4<Value> = [Value, Value, Value, Value];
5-
export type RA5<Value> = [Value, Value, Value, Value, Value];
6-
export type RA6<Value> = [Value, Value, Value, Value, Value, Value];
7-
export type RA7<Value> = [Value, Value, Value, Value, Value, Value, Value];
8-
export type RA8<Value> = [
1+
export type RA1<Value> = readonly [Value];
2+
export type RA2<Value> = readonly [Value, Value];
3+
export type RA3<Value> = readonly [Value, Value, Value];
4+
export type RA4<Value> = readonly [Value, Value, Value, Value];
5+
export type RA5<Value> = readonly [Value, Value, Value, Value, Value];
6+
export type RA6<Value> = readonly [Value, Value, Value, Value, Value, Value];
7+
export type RA7<Value> = readonly [
8+
Value,
9+
Value,
10+
Value,
11+
Value,
12+
Value,
13+
Value,
14+
Value,
15+
];
16+
export type RA8<Value> = readonly [
917
Value,
1018
Value,
1119
Value,

tests/sprinkles/spinkles-type-tests.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ import {
7979
paddingY: ['medium', 'smalll'],
8080
});
8181

82+
// Valid value - Accept readonly arrays
83+
atoms({
84+
paddingY: ['medium', 'small'] as const,
85+
});
86+
8287
// Valid value
8388
atoms({
8489
transform: {

0 commit comments

Comments
 (0)