@stylexjs/shared 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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');
|