@stylexjs/shared 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/convert-to-className.d.ts +5 -1
- package/lib/convert-to-className.js +33 -1
- package/lib/convert-to-className.js.flow +5 -1
- package/lib/messages.d.ts +1 -0
- package/lib/messages.js +3 -2
- package/lib/messages.js.flow +1 -0
- package/lib/stylex-create-theme.js +30 -40
- package/lib/stylex-define-vars.d.ts +2 -6
- package/lib/stylex-define-vars.js +40 -21
- package/lib/stylex-define-vars.js.flow +1 -4
- package/lib/stylex-first-that-works.d.ts +1 -1
- package/lib/stylex-first-that-works.js.flow +1 -1
- package/lib/stylex-vars-utils.d.ts +27 -0
- package/lib/stylex-vars-utils.js +69 -0
- package/lib/stylex-vars-utils.js.flow +31 -0
- package/lib/types/index.d.ts +79 -76
- package/lib/types/index.js +28 -72
- package/lib/types/index.js.flow +82 -82
- package/lib/utils/normalize-value.js +1 -2
- package/lib/utils/normalizers/zero-dimensions.d.ts +2 -2
- package/lib/utils/normalizers/zero-dimensions.js +6 -0
- package/lib/utils/normalizers/zero-dimensions.js.flow +2 -2
- package/package.json +2 -2
package/lib/types/index.d.ts
CHANGED
@@ -7,9 +7,19 @@
|
|
7
7
|
*
|
8
8
|
*/
|
9
9
|
|
10
|
-
type
|
11
|
-
|
|
12
|
-
|
|
10
|
+
type NestedWithNumbers =
|
11
|
+
| number
|
12
|
+
| string
|
13
|
+
| Readonly<{
|
14
|
+
default: NestedWithNumbers;
|
15
|
+
[$$Key$$: string]: NestedWithNumbers;
|
16
|
+
}>;
|
17
|
+
type ValueWithDefault =
|
18
|
+
| string
|
19
|
+
| Readonly<{
|
20
|
+
default: ValueWithDefault;
|
21
|
+
[$$Key$$: string]: ValueWithDefault;
|
22
|
+
}>;
|
13
23
|
type CSSSyntax =
|
14
24
|
| '*'
|
15
25
|
| '<length>'
|
@@ -26,180 +36,173 @@ type CSSSyntax =
|
|
26
36
|
| '<transform-function>'
|
27
37
|
| '<custom-ident>'
|
28
38
|
| '<transform-list>';
|
29
|
-
type CSSSyntaxType = CSSSyntax
|
30
|
-
|
31
|
-
|
32
|
-
readonly value: ValueWithDefault<T>;
|
39
|
+
type CSSSyntaxType = CSSSyntax;
|
40
|
+
declare class BaseCSSType {
|
41
|
+
readonly value: ValueWithDefault;
|
33
42
|
readonly syntax: CSSSyntaxType;
|
43
|
+
constructor(value: ValueWithDefault);
|
34
44
|
}
|
45
|
+
export interface CSSType<_T extends string | number = string | number> {
|
46
|
+
readonly value: ValueWithDefault;
|
47
|
+
readonly syntax: CSSSyntaxType;
|
48
|
+
}
|
49
|
+
export declare const isCSSType: (
|
50
|
+
value: unknown,
|
51
|
+
) => value is CSSType<string | number>;
|
35
52
|
type AnguleValue = string;
|
36
53
|
export declare class Angle<T extends AnguleValue>
|
37
|
-
extends
|
38
|
-
implements
|
54
|
+
extends BaseCSSType
|
55
|
+
implements CSSType<T>
|
39
56
|
{
|
40
|
-
readonly value: ValueWithDefault
|
57
|
+
readonly value: ValueWithDefault;
|
41
58
|
readonly syntax: CSSSyntaxType;
|
42
59
|
static readonly syntax: CSSSyntaxType;
|
43
|
-
constructor(value: ValueWithDefault<T>);
|
44
60
|
static create<T extends AnguleValue = AnguleValue>(
|
45
|
-
value: ValueWithDefault
|
61
|
+
value: ValueWithDefault,
|
46
62
|
): Angle<T>;
|
47
63
|
}
|
48
64
|
export declare const angle: any;
|
49
65
|
type ColorValue = string;
|
50
66
|
export declare class Color<T extends ColorValue>
|
51
|
-
extends
|
52
|
-
implements
|
67
|
+
extends BaseCSSType
|
68
|
+
implements CSSType<T>
|
53
69
|
{
|
54
|
-
readonly value: ValueWithDefault
|
70
|
+
readonly value: ValueWithDefault;
|
55
71
|
readonly syntax: CSSSyntaxType;
|
56
|
-
constructor(value: ValueWithDefault<T>);
|
57
72
|
static create<T extends ColorValue = ColorValue>(
|
58
|
-
value: ValueWithDefault
|
73
|
+
value: ValueWithDefault,
|
59
74
|
): Color<T>;
|
60
75
|
}
|
61
76
|
export declare const color: any;
|
62
77
|
type URLValue = string;
|
63
78
|
export declare class Url<T extends URLValue>
|
64
|
-
extends
|
65
|
-
implements
|
79
|
+
extends BaseCSSType
|
80
|
+
implements CSSType<T>
|
66
81
|
{
|
67
|
-
readonly value: ValueWithDefault
|
82
|
+
readonly value: ValueWithDefault;
|
68
83
|
readonly syntax: CSSSyntaxType;
|
69
|
-
|
70
|
-
static create<T extends URLValue = URLValue>(
|
71
|
-
value: ValueWithDefault<T>,
|
72
|
-
): Url<T>;
|
84
|
+
static create<T extends URLValue = URLValue>(value: ValueWithDefault): Url<T>;
|
73
85
|
}
|
74
86
|
export declare const url: any;
|
75
87
|
type ImageValue = string;
|
76
88
|
export declare class Image<T extends ImageValue>
|
77
89
|
extends Url<T>
|
78
|
-
implements
|
90
|
+
implements CSSType<T>
|
79
91
|
{
|
80
|
-
readonly value: ValueWithDefault
|
92
|
+
readonly value: ValueWithDefault;
|
81
93
|
readonly syntax: CSSSyntaxType;
|
82
|
-
constructor(value: ValueWithDefault
|
94
|
+
constructor(value: ValueWithDefault);
|
83
95
|
static create<T extends ImageValue = ImageValue>(
|
84
|
-
value: ValueWithDefault
|
96
|
+
value: ValueWithDefault,
|
85
97
|
): Image<T>;
|
86
98
|
}
|
87
99
|
export declare const image: any;
|
88
100
|
type IntegerValue = number;
|
89
101
|
export declare class Integer<T extends IntegerValue>
|
90
|
-
extends
|
91
|
-
implements
|
102
|
+
extends BaseCSSType
|
103
|
+
implements CSSType<T>
|
92
104
|
{
|
93
|
-
readonly value: ValueWithDefault
|
105
|
+
readonly value: ValueWithDefault;
|
94
106
|
readonly syntax: CSSSyntaxType;
|
95
|
-
constructor(value: ValueWithDefault<T>);
|
96
107
|
static create<T extends IntegerValue = IntegerValue>(value: T): Integer<T>;
|
97
108
|
}
|
98
109
|
export declare const integer: any;
|
99
110
|
type LengthPercentageValue = string;
|
100
|
-
export declare class LengthPercentage<
|
101
|
-
extends
|
102
|
-
implements
|
111
|
+
export declare class LengthPercentage<_T extends LengthPercentageValue>
|
112
|
+
extends BaseCSSType
|
113
|
+
implements CSSType<string>
|
103
114
|
{
|
104
|
-
readonly value: ValueWithDefault
|
115
|
+
readonly value: ValueWithDefault;
|
105
116
|
readonly syntax: CSSSyntaxType;
|
106
|
-
|
107
|
-
|
108
|
-
value: ValueWithDefault<T>,
|
117
|
+
static createLength<_T extends LengthPercentageValue | number>(
|
118
|
+
value: ValueWithDefault,
|
109
119
|
): LengthPercentage<string>;
|
110
|
-
static createPercentage<
|
111
|
-
value: ValueWithDefault
|
120
|
+
static createPercentage<_T extends LengthPercentageValue | number>(
|
121
|
+
value: ValueWithDefault,
|
112
122
|
): LengthPercentage<string>;
|
113
123
|
}
|
114
124
|
export declare const lengthPercentage: any;
|
115
125
|
type LengthValue = number | string;
|
116
|
-
export declare class Length<
|
126
|
+
export declare class Length<_T extends LengthValue>
|
117
127
|
extends LengthPercentage<string>
|
118
|
-
implements
|
128
|
+
implements CSSType<string>
|
119
129
|
{
|
120
|
-
readonly value: ValueWithDefault
|
130
|
+
readonly value: ValueWithDefault;
|
121
131
|
readonly syntax: CSSSyntaxType;
|
122
|
-
constructor(value: ValueWithDefault<T>);
|
123
132
|
static create<T extends LengthValue = LengthValue>(
|
124
|
-
value:
|
133
|
+
value: NestedWithNumbers,
|
125
134
|
): Length<T>;
|
126
135
|
}
|
127
136
|
export declare const length: any;
|
128
137
|
type PercentageValue = string | number;
|
129
|
-
export declare class Percentage<
|
138
|
+
export declare class Percentage<_T extends PercentageValue>
|
130
139
|
extends LengthPercentage<string>
|
131
|
-
implements
|
140
|
+
implements CSSType<string>
|
132
141
|
{
|
133
|
-
readonly value: ValueWithDefault
|
142
|
+
readonly value: ValueWithDefault;
|
134
143
|
readonly syntax: CSSSyntaxType;
|
135
|
-
constructor(value: ValueWithDefault<T>);
|
136
144
|
static create<T extends PercentageValue = PercentageValue>(
|
137
|
-
value:
|
145
|
+
value: NestedWithNumbers,
|
138
146
|
): Percentage<T>;
|
139
147
|
}
|
140
148
|
export declare const percentage: any;
|
141
149
|
type NumberValue = number;
|
142
150
|
export declare class Num<T extends NumberValue>
|
143
|
-
extends
|
144
|
-
implements
|
151
|
+
extends BaseCSSType
|
152
|
+
implements CSSType<T>
|
145
153
|
{
|
146
|
-
readonly value: ValueWithDefault
|
154
|
+
readonly value: ValueWithDefault;
|
147
155
|
readonly syntax: CSSSyntaxType;
|
148
|
-
constructor(value: ValueWithDefault<T>);
|
149
156
|
static create<T extends NumberValue = NumberValue>(
|
150
|
-
value:
|
157
|
+
value: NestedWithNumbers,
|
151
158
|
): Num<T>;
|
152
159
|
}
|
153
160
|
export declare const number: any;
|
154
161
|
type ResolutionValue = string | 0;
|
155
162
|
export declare class Resolution<T extends ResolutionValue>
|
156
|
-
extends
|
157
|
-
implements
|
163
|
+
extends BaseCSSType
|
164
|
+
implements CSSType<T>
|
158
165
|
{
|
159
|
-
readonly value: ValueWithDefault
|
166
|
+
readonly value: ValueWithDefault;
|
160
167
|
readonly syntax: CSSSyntaxType;
|
161
|
-
constructor(value: ValueWithDefault<T>);
|
162
168
|
static create<T extends ResolutionValue = ResolutionValue>(
|
163
|
-
value: ValueWithDefault
|
169
|
+
value: ValueWithDefault,
|
164
170
|
): Resolution<T>;
|
165
171
|
}
|
166
172
|
export declare const resolution: any;
|
167
173
|
type TimeValue = string | 0;
|
168
174
|
export declare class Time<T extends TimeValue>
|
169
|
-
extends
|
170
|
-
implements
|
175
|
+
extends BaseCSSType
|
176
|
+
implements CSSType<T>
|
171
177
|
{
|
172
|
-
readonly value: ValueWithDefault
|
178
|
+
readonly value: ValueWithDefault;
|
173
179
|
readonly syntax: CSSSyntaxType;
|
174
|
-
constructor(value: ValueWithDefault<T>);
|
175
180
|
static create<T extends TimeValue = TimeValue>(
|
176
|
-
value: ValueWithDefault
|
181
|
+
value: ValueWithDefault,
|
177
182
|
): Time<T>;
|
178
183
|
}
|
179
184
|
export declare const time: any;
|
180
185
|
type TransformFunctionValue = string;
|
181
186
|
export declare class TransformFunction<T extends TransformFunctionValue>
|
182
|
-
extends
|
183
|
-
implements
|
187
|
+
extends BaseCSSType
|
188
|
+
implements CSSType<T>
|
184
189
|
{
|
185
|
-
readonly value: ValueWithDefault
|
190
|
+
readonly value: ValueWithDefault;
|
186
191
|
readonly syntax: CSSSyntaxType;
|
187
|
-
constructor(value: ValueWithDefault<T>);
|
188
192
|
static create<T extends TransformFunctionValue = TransformFunctionValue>(
|
189
|
-
value: ValueWithDefault
|
193
|
+
value: ValueWithDefault,
|
190
194
|
): TransformFunction<T>;
|
191
195
|
}
|
192
196
|
export declare const transformFunction: any;
|
193
197
|
type TransformListValue = string;
|
194
198
|
export declare class TransformList<T extends TransformListValue>
|
195
|
-
extends
|
196
|
-
implements
|
199
|
+
extends BaseCSSType
|
200
|
+
implements CSSType<T>
|
197
201
|
{
|
198
|
-
readonly value: ValueWithDefault
|
202
|
+
readonly value: ValueWithDefault;
|
199
203
|
readonly syntax: CSSSyntaxType;
|
200
|
-
constructor(value: ValueWithDefault<T>);
|
201
204
|
static create<T extends TransformListValue = TransformListValue>(
|
202
|
-
value: ValueWithDefault
|
205
|
+
value: ValueWithDefault,
|
203
206
|
): TransformList<T>;
|
204
207
|
}
|
205
208
|
export declare const transformList: any;
|
package/lib/types/index.js
CHANGED
@@ -3,40 +3,35 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.url = exports.transformList = exports.transformFunction = exports.time = exports.resolution = exports.percentage = exports.number = exports.lengthPercentage = exports.length = exports.integer = exports.image = exports.color = exports.angle = exports.Url = exports.TransformList = exports.TransformFunction = exports.Time = exports.Resolution = exports.Percentage = exports.Num = exports.LengthPercentage = exports.Length = exports.Integer = exports.Image = exports.Color = exports.
|
7
|
-
class
|
8
|
-
exports.CSSType = CSSType;
|
9
|
-
class Angle extends CSSType {
|
10
|
-
syntax = '<angle>';
|
11
|
-
static syntax = '<angle>';
|
6
|
+
exports.url = exports.transformList = exports.transformFunction = exports.time = exports.resolution = exports.percentage = exports.number = exports.lengthPercentage = exports.length = exports.isCSSType = exports.integer = exports.image = exports.color = exports.angle = exports.Url = exports.TransformList = exports.TransformFunction = exports.Time = exports.Resolution = exports.Percentage = exports.Num = exports.LengthPercentage = exports.Length = exports.Integer = exports.Image = exports.Color = exports.Angle = void 0;
|
7
|
+
class BaseCSSType {
|
12
8
|
constructor(value) {
|
13
|
-
super();
|
14
9
|
this.value = value;
|
15
10
|
}
|
11
|
+
}
|
12
|
+
const isCSSType = value => {
|
13
|
+
return value instanceof BaseCSSType && value.value != null && typeof value.syntax === 'string';
|
14
|
+
};
|
15
|
+
exports.isCSSType = isCSSType;
|
16
|
+
class Angle extends BaseCSSType {
|
17
|
+
syntax = '<angle>';
|
18
|
+
static syntax = '<angle>';
|
16
19
|
static create(value) {
|
17
20
|
return new Angle(value);
|
18
21
|
}
|
19
22
|
}
|
20
23
|
exports.Angle = Angle;
|
21
24
|
const angle = exports.angle = Angle.create;
|
22
|
-
class Color extends
|
25
|
+
class Color extends BaseCSSType {
|
23
26
|
syntax = '<color>';
|
24
|
-
constructor(value) {
|
25
|
-
super();
|
26
|
-
this.value = value;
|
27
|
-
}
|
28
27
|
static create(value) {
|
29
28
|
return new Color(value);
|
30
29
|
}
|
31
30
|
}
|
32
31
|
exports.Color = Color;
|
33
32
|
const color = exports.color = Color.create;
|
34
|
-
class Url extends
|
33
|
+
class Url extends BaseCSSType {
|
35
34
|
syntax = '<url>';
|
36
|
-
constructor(value) {
|
37
|
-
super();
|
38
|
-
this.value = value;
|
39
|
-
}
|
40
35
|
static create(value) {
|
41
36
|
return new Url(value);
|
42
37
|
}
|
@@ -55,24 +50,16 @@ class Image extends Url {
|
|
55
50
|
}
|
56
51
|
exports.Image = Image;
|
57
52
|
const image = exports.image = Image.create;
|
58
|
-
class Integer extends
|
53
|
+
class Integer extends BaseCSSType {
|
59
54
|
syntax = '<integer>';
|
60
|
-
constructor(value) {
|
61
|
-
super();
|
62
|
-
this.value = value;
|
63
|
-
}
|
64
55
|
static create(value) {
|
65
|
-
return new Integer(value);
|
56
|
+
return new Integer(convertNumberToStringUsing(String, '0')(value));
|
66
57
|
}
|
67
58
|
}
|
68
59
|
exports.Integer = Integer;
|
69
60
|
const integer = exports.integer = Integer.create;
|
70
|
-
class LengthPercentage extends
|
61
|
+
class LengthPercentage extends BaseCSSType {
|
71
62
|
syntax = '<length-percentage>';
|
72
|
-
constructor(value) {
|
73
|
-
super();
|
74
|
-
this.value = value;
|
75
|
-
}
|
76
63
|
static createLength(value) {
|
77
64
|
return new LengthPercentage(convertNumberToLength(value));
|
78
65
|
}
|
@@ -84,80 +71,54 @@ exports.LengthPercentage = LengthPercentage;
|
|
84
71
|
const lengthPercentage = exports.lengthPercentage = LengthPercentage.createLength;
|
85
72
|
class Length extends LengthPercentage {
|
86
73
|
syntax = '<length>';
|
87
|
-
constructor(value) {
|
88
|
-
super(convertNumberToLength(value));
|
89
|
-
}
|
90
74
|
static create(value) {
|
91
|
-
return new Length(value);
|
75
|
+
return new Length(convertNumberToLength(value));
|
92
76
|
}
|
93
77
|
}
|
94
78
|
exports.Length = Length;
|
95
79
|
const length = exports.length = Length.create;
|
96
80
|
class Percentage extends LengthPercentage {
|
97
81
|
syntax = '<percentage>';
|
98
|
-
constructor(value) {
|
99
|
-
super(convertNumberToPercentage(value));
|
100
|
-
}
|
101
82
|
static create(value) {
|
102
|
-
return new Percentage(value);
|
83
|
+
return new Percentage(convertNumberToPercentage(value));
|
103
84
|
}
|
104
85
|
}
|
105
86
|
exports.Percentage = Percentage;
|
106
87
|
const percentage = exports.percentage = Percentage.create;
|
107
|
-
class Num extends
|
88
|
+
class Num extends BaseCSSType {
|
108
89
|
syntax = '<number>';
|
109
|
-
constructor(value) {
|
110
|
-
super();
|
111
|
-
this.value = value;
|
112
|
-
}
|
113
90
|
static create(value) {
|
114
|
-
return new Num(value);
|
91
|
+
return new Num(convertNumberToBareString(value));
|
115
92
|
}
|
116
93
|
}
|
117
94
|
exports.Num = Num;
|
118
95
|
const number = exports.number = Num.create;
|
119
|
-
class Resolution extends
|
96
|
+
class Resolution extends BaseCSSType {
|
120
97
|
syntax = '<resolution>';
|
121
|
-
constructor(value) {
|
122
|
-
super();
|
123
|
-
this.value = value;
|
124
|
-
}
|
125
98
|
static create(value) {
|
126
99
|
return new Resolution(value);
|
127
100
|
}
|
128
101
|
}
|
129
102
|
exports.Resolution = Resolution;
|
130
103
|
const resolution = exports.resolution = Resolution.create;
|
131
|
-
class Time extends
|
104
|
+
class Time extends BaseCSSType {
|
132
105
|
syntax = '<time>';
|
133
|
-
constructor(value) {
|
134
|
-
super();
|
135
|
-
this.value = value;
|
136
|
-
}
|
137
106
|
static create(value) {
|
138
107
|
return new Time(value);
|
139
108
|
}
|
140
109
|
}
|
141
110
|
exports.Time = Time;
|
142
111
|
const time = exports.time = Time.create;
|
143
|
-
class TransformFunction extends
|
112
|
+
class TransformFunction extends BaseCSSType {
|
144
113
|
syntax = '<transform-function>';
|
145
|
-
constructor(value) {
|
146
|
-
super();
|
147
|
-
this.value = value;
|
148
|
-
}
|
149
114
|
static create(value) {
|
150
115
|
return new TransformFunction(value);
|
151
116
|
}
|
152
117
|
}
|
153
118
|
exports.TransformFunction = TransformFunction;
|
154
119
|
const transformFunction = exports.transformFunction = TransformFunction.create;
|
155
|
-
class TransformList extends
|
120
|
+
class TransformList extends BaseCSSType {
|
156
121
|
syntax = '<transform-list>';
|
157
|
-
constructor(value) {
|
158
|
-
super();
|
159
|
-
this.value = value;
|
160
|
-
}
|
161
122
|
static create(value) {
|
162
123
|
return new TransformList(value);
|
163
124
|
}
|
@@ -172,20 +133,15 @@ const convertNumberToStringUsing = (transformNumber, defaultStr) => value => {
|
|
172
133
|
return value;
|
173
134
|
}
|
174
135
|
if (typeof value === 'object') {
|
175
|
-
const
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
const defaultResult = convertNumberToLength(defaultValue);
|
180
|
-
const result = {
|
181
|
-
default: typeof defaultResult === 'string' ? defaultResult : defaultStr
|
182
|
-
};
|
183
|
-
for (const [key, value] of Object.entries(rest)) {
|
184
|
-
result[key] = convertNumberToLength(value);
|
136
|
+
const val = value;
|
137
|
+
const result = {};
|
138
|
+
for (const key of Object.keys(val)) {
|
139
|
+
result[key] = convertNumberToStringUsing(transformNumber, defaultStr)(val[key]);
|
185
140
|
}
|
186
141
|
return result;
|
187
142
|
}
|
188
143
|
return value;
|
189
144
|
};
|
145
|
+
const convertNumberToBareString = convertNumberToStringUsing(value => String(value), '0');
|
190
146
|
const convertNumberToLength = convertNumberToStringUsing(value => value === 0 ? '0' : `${value}px`, '0px');
|
191
147
|
const convertNumberToPercentage = convertNumberToStringUsing(value => value === 0 ? '0' : `${value * 100}%`, '0');
|