@stylexjs/shared 0.2.0-beta.19 → 0.2.0-beta.21

Sign up to get free protection for your applications and to get access to all the features.
package/lib/index.d.ts CHANGED
@@ -25,6 +25,7 @@ import stylexFirstThatWorks from './stylex-first-that-works';
25
25
  import hash from './hash';
26
26
  import genFileBasedIdentifier from './utils/file-based-identifier';
27
27
  import * as m from './messages';
28
+ export * as types from './types';
28
29
  import type {
29
30
  InjectableStyle as _InjectableStyle,
30
31
  CompiledNamespaces as _CompiledNamespaces,
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.utils = exports.overrideVars = exports.messages = exports.keyframes = exports.include = exports.firstThatWorks = exports.createVars = exports.create = exports.IncludedStyles = void 0;
6
+ exports.utils = exports.types = exports.overrideVars = exports.messages = exports.keyframes = exports.include = exports.firstThatWorks = exports.createVars = exports.create = exports.IncludedStyles = void 0;
7
7
  var _stylexCreate = _interopRequireDefault(require("./stylex-create"));
8
8
  var _stylexCreateVars = _interopRequireDefault(require("./stylex-create-vars"));
9
9
  var _stylexOverrideVars = _interopRequireDefault(require("./stylex-override-vars"));
@@ -13,6 +13,8 @@ var _stylexFirstThatWorks = _interopRequireDefault(require("./stylex-first-that-
13
13
  var _hash = _interopRequireDefault(require("./hash"));
14
14
  var _fileBasedIdentifier = _interopRequireDefault(require("./utils/file-based-identifier"));
15
15
  var m = _interopRequireWildcard(require("./messages"));
16
+ var _types = _interopRequireWildcard(require("./types"));
17
+ exports.types = _types;
16
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
package/lib/index.js.flow CHANGED
@@ -31,6 +31,7 @@ import stylexFirstThatWorks from './stylex-first-that-works';
31
31
  import hash from './hash';
32
32
  import genFileBasedIdentifier from './utils/file-based-identifier';
33
33
  import * as m from './messages';
34
+ export * as types from './types';
34
35
 
35
36
  import type {
36
37
  InjectableStyle as _InjectableStyle,
@@ -209,6 +209,12 @@ declare const aliases: {
209
209
  borderEnd: any;
210
210
  borderBlockEnd: any;
211
211
  borderStart: any;
212
+ blockSize: (val: TStyleValue) => TReturn;
213
+ inlineSize: (val: TStyleValue) => TReturn;
214
+ minBlockSize: (val: TStyleValue) => TReturn;
215
+ minInlineSize: (val: TStyleValue) => TReturn;
216
+ maxBlockSize: (val: TStyleValue) => TReturn;
217
+ maxInlineSize: (val: TStyleValue) => TReturn;
212
218
  borderHorizontalWidth: any;
213
219
  borderHorizontalStyle: any;
214
220
  borderHorizontalColor: any;
@@ -249,7 +255,7 @@ declare const aliases: {
249
255
  end: any;
250
256
  };
251
257
  declare const $$EXPORT_DEFAULT_DECLARATION$$: Readonly</**
252
- * > 205 | ...typeof shorthands,
258
+ * > 211 | ...typeof shorthands,
253
259
  * | ^^^^^^^^^^^^^^^^^^^^ Unsupported feature: Translating "object types with complex spreads" is currently not supported.
254
260
  **/
255
261
  any>;
@@ -173,6 +173,12 @@ const aliases = {
173
173
  borderEnd: shorthands.borderInlineEnd,
174
174
  borderBlockEnd: shorthands.borderBottom,
175
175
  borderStart: shorthands.borderInlineStart,
176
+ blockSize: val => [["height", val]],
177
+ inlineSize: val => [["width", val]],
178
+ minBlockSize: val => [["minHeight", val]],
179
+ minInlineSize: val => [["minWidth", val]],
180
+ maxBlockSize: val => [["maxHeight", val]],
181
+ maxInlineSize: val => [["maxWidth", val]],
176
182
  borderHorizontalWidth: shorthands.borderInlineWidth,
177
183
  borderHorizontalStyle: shorthands.borderInlineStyle,
178
184
  borderHorizontalColor: shorthands.borderInlineColor,
@@ -161,6 +161,12 @@ declare const aliases: {
161
161
  borderEnd: $FlowFixMe,
162
162
  borderBlockEnd: $FlowFixMe,
163
163
  borderStart: $FlowFixMe,
164
+ blockSize: (val: TStyleValue) => TReturn,
165
+ inlineSize: (val: TStyleValue) => TReturn,
166
+ minBlockSize: (val: TStyleValue) => TReturn,
167
+ minInlineSize: (val: TStyleValue) => TReturn,
168
+ maxBlockSize: (val: TStyleValue) => TReturn,
169
+ maxInlineSize: (val: TStyleValue) => TReturn,
164
170
  borderHorizontalWidth: $FlowFixMe,
165
171
  borderHorizontalStyle: $FlowFixMe,
166
172
  borderHorizontalColor: $FlowFixMe,
@@ -103,21 +103,78 @@ import type { TStyleValue } from '../common-types';
103
103
  */
104
104
 
105
105
  type TReturn = ReadonlyArray<[string, TStyleValue]>;
106
- declare const expansions: {
106
+ declare const shorthands: {
107
107
  border: (rawValue: TStyleValue) => TReturn;
108
108
  borderColor: (rawValue: TStyleValue) => TReturn;
109
109
  borderHorizontal: (rawValue: TStyleValue) => TReturn;
110
110
  borderStyle: (rawValue: TStyleValue) => TReturn;
111
111
  borderVertical: (rawValue: TStyleValue) => TReturn;
112
112
  borderWidth: (rawValue: TStyleValue) => TReturn;
113
+ borderHorizontalColor: (rawValue: TStyleValue) => TReturn;
114
+ borderHorizontalStyle: (rawValue: TStyleValue) => TReturn;
115
+ borderHorizontalWidth: (rawValue: TStyleValue) => TReturn;
116
+ borderVerticalColor: (rawValue: TStyleValue) => TReturn;
117
+ borderVerticalStyle: (rawValue: TStyleValue) => TReturn;
118
+ borderVerticalWidth: (rawValue: TStyleValue) => TReturn;
113
119
  borderRadius: (rawValue: TStyleValue) => TReturn;
120
+ inset: (rawValue: TStyleValue) => TReturn;
121
+ insetInline: (rawValue: TStyleValue) => TReturn;
122
+ insetBlock: (rawValue: TStyleValue) => TReturn;
114
123
  margin: (rawValue: TStyleValue) => TReturn;
115
124
  marginHorizontal: (rawValue: TStyleValue) => TReturn;
116
125
  marginVertical: (rawValue: TStyleValue) => TReturn;
117
126
  overflow: (rawValue: TStyleValue) => TReturn;
118
127
  padding: (rawValue: TStyleValue) => TReturn;
119
- paddingHorizontal: (rawValue: TStyleValue) => TReturn;
120
- paddingVertical: (rawValue: TStyleValue) => TReturn;
128
+ paddingHorizontal: (val: TStyleValue) => TReturn;
129
+ paddingVertical: (val: TStyleValue) => TReturn;
121
130
  };
131
+ declare const aliases: {
132
+ insetBlockStart: (val: TStyleValue) => TReturn;
133
+ insetBlockEnd: (val: TStyleValue) => TReturn;
134
+ insetInlineStart: (val: TStyleValue) => TReturn;
135
+ insetInlineEnd: (val: TStyleValue) => TReturn;
136
+ blockSize: (val: TStyleValue) => TReturn;
137
+ inlineSize: (val: TStyleValue) => TReturn;
138
+ minBlockSize: (val: TStyleValue) => TReturn;
139
+ minInlineSize: (val: TStyleValue) => TReturn;
140
+ maxBlockSize: (val: TStyleValue) => TReturn;
141
+ maxInlineSize: (val: TStyleValue) => TReturn;
142
+ borderBlockWidth: any;
143
+ borderBlockStyle: any;
144
+ borderBlockColor: any;
145
+ borderBlockStartWidth: (val: TStyleValue) => TReturn;
146
+ borderBlockStartStyle: (val: TStyleValue) => TReturn;
147
+ borderBlockStartColor: (val: TStyleValue) => TReturn;
148
+ borderBlockEndWidth: (val: TStyleValue) => TReturn;
149
+ borderBlockEndStyle: (val: TStyleValue) => TReturn;
150
+ borderBlockEndColor: (val: TStyleValue) => TReturn;
151
+ borderInlineWidth: any;
152
+ borderInlineStyle: any;
153
+ borderInlineColor: any;
154
+ borderInlineStartWidth: (val: TStyleValue) => TReturn;
155
+ borderInlineStartStyle: (val: TStyleValue) => TReturn;
156
+ borderInlineStartColor: (val: TStyleValue) => TReturn;
157
+ borderInlineEndWidth: (val: TStyleValue) => TReturn;
158
+ borderInlineEndStyle: (val: TStyleValue) => TReturn;
159
+ borderInlineEndColor: (val: TStyleValue) => TReturn;
160
+ borderStartStartRadius: (val: TStyleValue) => TReturn;
161
+ borderStartEndRadius: (val: TStyleValue) => TReturn;
162
+ borderEndStartRadius: (val: TStyleValue) => TReturn;
163
+ borderEndEndRadius: (val: TStyleValue) => TReturn;
164
+ marginBlock: any;
165
+ marginBlockStart: (val: TStyleValue) => TReturn;
166
+ marginBlockEnd: (val: TStyleValue) => TReturn;
167
+ marginInline: any;
168
+ marginInlineStart: (val: TStyleValue) => TReturn;
169
+ marginInlineEnd: (val: TStyleValue) => TReturn;
170
+ paddingBlock: any;
171
+ paddingBlockStart: (val: TStyleValue) => TReturn;
172
+ paddingBlockEnd: (val: TStyleValue) => TReturn;
173
+ paddingInline: any;
174
+ paddingInlineStart: (val: TStyleValue) => TReturn;
175
+ paddingInlineEnd: (val: TStyleValue) => TReturn;
176
+ };
177
+ declare const expansions: Omit<shorthands, keyof (aliases | {})> &
178
+ Omit<aliases, keyof ({})> & {};
122
179
  declare const $$EXPORT_DEFAULT_DECLARATION$$: typeof expansions;
123
180
  export default $$EXPORT_DEFAULT_DECLARATION$$;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _splitCssValue = _interopRequireDefault(require("../utils/split-css-value"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- const expansions = {
9
+ const shorthands = {
10
10
  border: rawValue => {
11
11
  return [["borderTop", rawValue], ["borderEnd", rawValue], ["borderBottom", rawValue], ["borderStart", rawValue]];
12
12
  },
@@ -28,10 +28,19 @@ const expansions = {
28
28
  const [top, right = top, bottom = top, left = right] = (0, _splitCssValue.default)(rawValue);
29
29
  return [["borderTopWidth", top], ["borderEndWidth", right], ["borderBottomWidth", bottom], ["borderStartWidth", left]];
30
30
  },
31
+ borderHorizontalColor: rawValue => [["borderStartColor", rawValue], ["borderEndColor", rawValue]],
32
+ borderHorizontalStyle: rawValue => [["borderStartStyle", rawValue], ["borderEndStyle", rawValue]],
33
+ borderHorizontalWidth: rawValue => [["borderStartWidth", rawValue], ["borderEndWidth", rawValue]],
34
+ borderVerticalColor: rawValue => [["borderTopColor", rawValue], ["borderBottomColor", rawValue]],
35
+ borderVerticalStyle: rawValue => [["borderTopStyle", rawValue], ["borderBottomStyle", rawValue]],
36
+ borderVerticalWidth: rawValue => [["borderTopWidth", rawValue], ["borderBottomWidth", rawValue]],
31
37
  borderRadius: rawValue => {
32
38
  const [top, right = top, bottom = top, left = right] = (0, _splitCssValue.default)(rawValue);
33
39
  return [["borderTopStartRadius", top], ["borderTopEndRadius", right], ["borderBottomEndRadius", bottom], ["borderBottomStartRadius", left]];
34
40
  },
41
+ inset: rawValue => [["top", rawValue], ["end", rawValue], ["bottom", rawValue], ["start", rawValue]],
42
+ insetInline: rawValue => [["start", rawValue], ["end", rawValue]],
43
+ insetBlock: rawValue => [["top", rawValue], ["bottom", rawValue]],
35
44
  margin: rawValue => {
36
45
  const [top, right = top, bottom = top, left = right] = (0, _splitCssValue.default)(rawValue);
37
46
  return [["marginTop", top], ["marginEnd", right], ["marginBottom", bottom], ["marginStart", left]];
@@ -50,12 +59,62 @@ const expansions = {
50
59
  const [top, right = top, bottom = top, left = right] = (0, _splitCssValue.default)(rawValue);
51
60
  return [["paddingTop", top], ["paddingEnd", right], ["paddingBottom", bottom], ["paddingStart", left]];
52
61
  },
53
- paddingHorizontal: rawValue => {
54
- return [["paddingStart", rawValue], ["paddingEnd", rawValue]];
62
+ paddingHorizontal: val => {
63
+ return [["paddingStart", val], ["paddingEnd", val]];
55
64
  },
56
- paddingVertical: rawValue => {
57
- return [["paddingTop", rawValue], ["paddingBottom", rawValue]];
65
+ paddingVertical: val => {
66
+ return [["paddingTop", val], ["paddingBottom", val]];
58
67
  }
59
68
  };
69
+ const aliases = {
70
+ insetBlockStart: val => [["top", val]],
71
+ insetBlockEnd: val => [["bottom", val]],
72
+ insetInlineStart: val => [["start", val]],
73
+ insetInlineEnd: val => [["end", val]],
74
+ blockSize: val => [["height", val]],
75
+ inlineSize: val => [["width", val]],
76
+ minBlockSize: val => [["minHeight", val]],
77
+ minInlineSize: val => [["minWidth", val]],
78
+ maxBlockSize: val => [["maxHeight", val]],
79
+ maxInlineSize: val => [["maxWidth", val]],
80
+ borderBlockWidth: shorthands.borderVerticalWidth,
81
+ borderBlockStyle: shorthands.borderVerticalStyle,
82
+ borderBlockColor: shorthands.borderVerticalColor,
83
+ borderBlockStartWidth: val => [["borderTopWidth", val]],
84
+ borderBlockStartStyle: val => [["borderTopStyle", val]],
85
+ borderBlockStartColor: val => [["borderTopColor", val]],
86
+ borderBlockEndWidth: val => [["borderBottomWidth", val]],
87
+ borderBlockEndStyle: val => [["borderBottomStyle", val]],
88
+ borderBlockEndColor: val => [["borderBottomColor", val]],
89
+ borderInlineWidth: shorthands.borderHorizontalWidth,
90
+ borderInlineStyle: shorthands.borderHorizontalStyle,
91
+ borderInlineColor: shorthands.borderHorizontalColor,
92
+ borderInlineStartWidth: val => [["borderStartWidth", val]],
93
+ borderInlineStartStyle: val => [["borderStartStyle", val]],
94
+ borderInlineStartColor: val => [["borderStartColor", val]],
95
+ borderInlineEndWidth: val => [["borderEndWidth", val]],
96
+ borderInlineEndStyle: val => [["borderEndStyle", val]],
97
+ borderInlineEndColor: val => [["borderEndColor", val]],
98
+ borderStartStartRadius: val => [["borderTopStartRadius", val]],
99
+ borderStartEndRadius: val => [["borderTopEndRadius", val]],
100
+ borderEndStartRadius: val => [["borderBottomStartRadius", val]],
101
+ borderEndEndRadius: val => [["borderBottomEndRadius", val]],
102
+ marginBlock: shorthands.marginVertical,
103
+ marginBlockStart: val => [["marginTop", val]],
104
+ marginBlockEnd: val => [["marginBottom", val]],
105
+ marginInline: shorthands.marginHorizontal,
106
+ marginInlineStart: val => [["marginStart", val]],
107
+ marginInlineEnd: val => [["marginEnd", val]],
108
+ paddingBlock: shorthands.paddingVertical,
109
+ paddingBlockStart: val => [["paddingTop", val]],
110
+ paddingBlockEnd: val => [["paddingBottom", val]],
111
+ paddingInline: shorthands.paddingHorizontal,
112
+ paddingInlineStart: val => [["paddingStart", val]],
113
+ paddingInlineEnd: val => [["paddingEnd", val]]
114
+ };
115
+ const expansions = {
116
+ ...shorthands,
117
+ ...aliases
118
+ };
60
119
  var _default = expansions;
61
120
  exports.default = _default;
@@ -81,21 +81,79 @@ import type { TStyleValue } from '../common-types';
81
81
 
82
82
  type TReturn = $ReadOnlyArray<[string, TStyleValue]>;
83
83
 
84
- declare const expansions: {
84
+ declare const shorthands: {
85
85
  border: (rawValue: TStyleValue) => TReturn,
86
86
  borderColor: (rawValue: TStyleValue) => TReturn,
87
87
  borderHorizontal: (rawValue: TStyleValue) => TReturn,
88
88
  borderStyle: (rawValue: TStyleValue) => TReturn,
89
89
  borderVertical: (rawValue: TStyleValue) => TReturn,
90
90
  borderWidth: (rawValue: TStyleValue) => TReturn,
91
+ borderHorizontalColor: (rawValue: TStyleValue) => TReturn,
92
+ borderHorizontalStyle: (rawValue: TStyleValue) => TReturn,
93
+ borderHorizontalWidth: (rawValue: TStyleValue) => TReturn,
94
+ borderVerticalColor: (rawValue: TStyleValue) => TReturn,
95
+ borderVerticalStyle: (rawValue: TStyleValue) => TReturn,
96
+ borderVerticalWidth: (rawValue: TStyleValue) => TReturn,
91
97
  borderRadius: (rawValue: TStyleValue) => TReturn,
98
+ inset: (rawValue: TStyleValue) => TReturn,
99
+ insetInline: (rawValue: TStyleValue) => TReturn,
100
+ insetBlock: (rawValue: TStyleValue) => TReturn,
92
101
  margin: (rawValue: TStyleValue) => TReturn,
93
102
  marginHorizontal: (rawValue: TStyleValue) => TReturn,
94
103
  marginVertical: (rawValue: TStyleValue) => TReturn,
95
104
  overflow: (rawValue: TStyleValue) => TReturn,
96
105
  padding: (rawValue: TStyleValue) => TReturn,
97
- paddingHorizontal: (rawValue: TStyleValue) => TReturn,
98
- paddingVertical: (rawValue: TStyleValue) => TReturn,
106
+ paddingHorizontal: (val: TStyleValue) => TReturn,
107
+ paddingVertical: (val: TStyleValue) => TReturn,
99
108
  };
100
109
 
110
+ declare const aliases: {
111
+ insetBlockStart: (val: TStyleValue) => TReturn,
112
+ insetBlockEnd: (val: TStyleValue) => TReturn,
113
+ insetInlineStart: (val: TStyleValue) => TReturn,
114
+ insetInlineEnd: (val: TStyleValue) => TReturn,
115
+ blockSize: (val: TStyleValue) => TReturn,
116
+ inlineSize: (val: TStyleValue) => TReturn,
117
+ minBlockSize: (val: TStyleValue) => TReturn,
118
+ minInlineSize: (val: TStyleValue) => TReturn,
119
+ maxBlockSize: (val: TStyleValue) => TReturn,
120
+ maxInlineSize: (val: TStyleValue) => TReturn,
121
+ borderBlockWidth: $FlowFixMe,
122
+ borderBlockStyle: $FlowFixMe,
123
+ borderBlockColor: $FlowFixMe,
124
+ borderBlockStartWidth: (val: TStyleValue) => TReturn,
125
+ borderBlockStartStyle: (val: TStyleValue) => TReturn,
126
+ borderBlockStartColor: (val: TStyleValue) => TReturn,
127
+ borderBlockEndWidth: (val: TStyleValue) => TReturn,
128
+ borderBlockEndStyle: (val: TStyleValue) => TReturn,
129
+ borderBlockEndColor: (val: TStyleValue) => TReturn,
130
+ borderInlineWidth: $FlowFixMe,
131
+ borderInlineStyle: $FlowFixMe,
132
+ borderInlineColor: $FlowFixMe,
133
+ borderInlineStartWidth: (val: TStyleValue) => TReturn,
134
+ borderInlineStartStyle: (val: TStyleValue) => TReturn,
135
+ borderInlineStartColor: (val: TStyleValue) => TReturn,
136
+ borderInlineEndWidth: (val: TStyleValue) => TReturn,
137
+ borderInlineEndStyle: (val: TStyleValue) => TReturn,
138
+ borderInlineEndColor: (val: TStyleValue) => TReturn,
139
+ borderStartStartRadius: (val: TStyleValue) => TReturn,
140
+ borderStartEndRadius: (val: TStyleValue) => TReturn,
141
+ borderEndStartRadius: (val: TStyleValue) => TReturn,
142
+ borderEndEndRadius: (val: TStyleValue) => TReturn,
143
+ marginBlock: $FlowFixMe,
144
+ marginBlockStart: (val: TStyleValue) => TReturn,
145
+ marginBlockEnd: (val: TStyleValue) => TReturn,
146
+ marginInline: $FlowFixMe,
147
+ marginInlineStart: (val: TStyleValue) => TReturn,
148
+ marginInlineEnd: (val: TStyleValue) => TReturn,
149
+ paddingBlock: $FlowFixMe,
150
+ paddingBlockStart: (val: TStyleValue) => TReturn,
151
+ paddingBlockEnd: (val: TStyleValue) => TReturn,
152
+ paddingInline: $FlowFixMe,
153
+ paddingInlineStart: (val: TStyleValue) => TReturn,
154
+ paddingInlineEnd: (val: TStyleValue) => TReturn,
155
+ };
156
+
157
+ declare const expansions: { ...shorthands, ...aliases };
158
+
101
159
  declare export default typeof expansions;
@@ -32,6 +32,12 @@ declare const aliases: {
32
32
  borderEnd: any;
33
33
  borderBlockEnd: any;
34
34
  borderStart: any;
35
+ blockSize: (val: TStyleValue) => TReturn;
36
+ inlineSize: (val: TStyleValue) => TReturn;
37
+ minBlockSize: (val: TStyleValue) => TReturn;
38
+ minInlineSize: (val: TStyleValue) => TReturn;
39
+ maxBlockSize: (val: TStyleValue) => TReturn;
40
+ maxInlineSize: (val: TStyleValue) => TReturn;
35
41
  borderHorizontalWidth: (value: TStyleValue) => TReturn;
36
42
  borderHorizontalStyle: (value: TStyleValue) => TReturn;
37
43
  borderHorizontalColor: (value: TStyleValue) => TReturn;
@@ -72,7 +78,7 @@ declare const aliases: {
72
78
  end: (value: TStyleValue) => TReturn;
73
79
  };
74
80
  declare const $$EXPORT_DEFAULT_DECLARATION$$: Readonly</**
75
- * > 86 | ...typeof shorthands,
81
+ * > 92 | ...typeof shorthands,
76
82
  * | ^^^^^^^^^^^^^^^^^^^^ Unsupported feature: Translating "object types with complex spreads" is currently not supported.
77
83
  **/
78
84
  any>;
@@ -66,6 +66,12 @@ const aliases = {
66
66
  borderEnd: shorthands.borderInlineEnd,
67
67
  borderBlockEnd: shorthands.borderBottom,
68
68
  borderStart: shorthands.borderInlineStart,
69
+ blockSize: val => [["height", val]],
70
+ inlineSize: val => [["width", val]],
71
+ minBlockSize: val => [["minHeight", val]],
72
+ minInlineSize: val => [["minWidth", val]],
73
+ maxBlockSize: val => [["maxHeight", val]],
74
+ maxInlineSize: val => [["maxWidth", val]],
69
75
  borderHorizontalWidth: value => [["borderInlineWidth", value]],
70
76
  borderHorizontalStyle: value => [["borderInlineStyle", value]],
71
77
  borderHorizontalColor: value => [["borderInlineColor", value]],
@@ -42,6 +42,12 @@ declare const aliases: {
42
42
  borderEnd: $FlowFixMe,
43
43
  borderBlockEnd: $FlowFixMe,
44
44
  borderStart: $FlowFixMe,
45
+ blockSize: (val: TStyleValue) => TReturn,
46
+ inlineSize: (val: TStyleValue) => TReturn,
47
+ minBlockSize: (val: TStyleValue) => TReturn,
48
+ minInlineSize: (val: TStyleValue) => TReturn,
49
+ maxBlockSize: (val: TStyleValue) => TReturn,
50
+ maxInlineSize: (val: TStyleValue) => TReturn,
45
51
  borderHorizontalWidth: (value: TStyleValue) => TReturn,
46
52
  borderHorizontalStyle: (value: TStyleValue) => TReturn,
47
53
  borderHorizontalColor: (value: TStyleValue) => TReturn,
@@ -12,7 +12,7 @@ type VarsObject<
12
12
  Vars extends {
13
13
  readonly [$$Key$$: string]:
14
14
  | string
15
- | { default: string; readonly [$$Key$$: string]: string };
15
+ | { readonly default: string; readonly [$$Key$$: string]: string };
16
16
  },
17
17
  > = Readonly</**
18
18
  * > 15 | ...$ObjMapConst<Vars, string>,
@@ -23,7 +23,7 @@ declare function styleXCreateVars<
23
23
  Vars extends {
24
24
  readonly [$$Key$$: string]:
25
25
  | string
26
- | { default: string; readonly [$$Key$$: string]: string };
26
+ | { readonly default: string; readonly [$$Key$$: string]: string };
27
27
  },
28
28
  >(
29
29
  variables: Vars,
@@ -10,7 +10,7 @@
10
10
  import type { StyleXOptions } from './common-types';
11
11
 
12
12
  type VarsObject<
13
- Vars: { +[string]: string | { default: string, +[string]: string } },
13
+ Vars: { +[string]: string | { +default: string, +[string]: string } },
14
14
  > = $ReadOnly<{
15
15
  ...$ObjMapConst<Vars, string>,
16
16
  __themeName__: string,
@@ -19,8 +19,8 @@ type VarsObject<
19
19
  // Similar to `stylex.create` it takes an object of variables with their values
20
20
  // and returns a string after hashing it.
21
21
  declare export default function styleXCreateVars<
22
- +Vars: {
23
- +[string]: string | { default: string, +[string]: string },
22
+ Vars: {
23
+ +[string]: string | { +default: string, +[string]: string },
24
24
  },
25
25
  >(
26
26
  variables: Vars,
@@ -54,7 +54,7 @@ function styleXOverrideVars(themeVars, variables, options) {
54
54
  [themeVars.__themeName__]: overrideClassName
55
55
  }, {
56
56
  [overrideClassName]: {
57
- ltr: `.${overrideClassName}{${cssVariablesOverrideString}${atRulesCss}}`,
57
+ ltr: `.${overrideClassName}{${cssVariablesOverrideString}}${atRulesCss}`,
58
58
  priority: 0.99,
59
59
  rtl: undefined
60
60
  }
@@ -11,3 +11,6 @@
11
11
  */
12
12
  declare function transformValue(key: string, rawValue: string | number): string;
13
13
  export default transformValue;
14
+ export declare function getNumberSuffix(key: string): string;
15
+ export declare const timeUnits: Set<string>;
16
+ export declare const lengthUnits: Set<string>;
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = transformValue;
7
+ exports.getNumberSuffix = getNumberSuffix;
8
+ exports.timeUnits = exports.lengthUnits = void 0;
7
9
  var _normalizeValue = _interopRequireDefault(require("./utils/normalize-value"));
8
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
11
  function transformValue(key, rawValue) {
@@ -30,11 +32,15 @@ function getNumberSuffix(key) {
30
32
  return suffix;
31
33
  }
32
34
  }
33
- const unitlessNumberProperties = new Set(["animationIterationCount", "borderImageOutset", "borderImageSlice", "borderImageWidth", "columnCount", "flex", "flexGrow", "flexPositive", "flexShrink", "flexOrder", "gridRow", "gridColumn", "fontWeight", "lineClamp", "lineHeight", "opacity", "order", "orphans", "tabSize", "widows", "zIndex", "fillOpacity", "floodOpacity", "stopOpacity", "strokeDasharray", "strokeDashoffset", "strokeMiterlimit", "strokeOpacity", "strokeWidth"]);
35
+ const unitlessNumberProperties = new Set(["animationIterationCount", "aspectRatio", "borderImageOutset", "borderImageSlice", "borderImageWidth", "columnCount", "flex", "flexGrow", "flexPositive", "flexShrink", "flexOrder", "gridRow", "gridColumn", "fontWeight", "lineClamp", "lineHeight", "opacity", "order", "orphans", "tabSize", "widows", "zIndex", "fillOpacity", "floodOpacity", "stopOpacity", "strokeDasharray", "strokeDashoffset", "strokeMiterlimit", "strokeOpacity", "strokeWidth"]);
34
36
  const numberPropertySuffixes = {
35
37
  animationDelay: "ms",
36
38
  animationDuration: "ms",
37
39
  transitionDelay: "ms",
38
40
  transitionDuration: "ms",
39
41
  voiceDuration: "ms"
40
- };
42
+ };
43
+ const timeUnits = new Set(Object.keys(numberPropertySuffixes));
44
+ exports.timeUnits = timeUnits;
45
+ const lengthUnits = new Set(["backgroundPositionX", "backgroundPositionY", "blockSize", "borderBlockEndWidth", "borderBlockStartWidth", "borderBlockWidth", "borderVerticalWidth", "borderVerticalWidth", "borderBottomLeftRadius", "borderBottomRightRadius", "borderBottomWidth", "borderEndEndRadius", "borderEndStartRadius", "borderImageWidth", "borderInlineEndWidth", "borderEndWidth", "borderInlineStartWidth", "borderStartWidth", "borderInlineWidth", "borderHorizontalWidth", "borderLeftWidth", "borderRightWidth", "borderSpacing", "borderStartEndRadius", "borderStartStartRadius", "borderTopLeftRadius", "borderTopRightRadius", "borderTopWidth", "bottom", "columnGap", "columnRuleWidth", "columnWidth", "containIntrinsicBlockSize", "containIntrinsicHeight", "containIntrinsicInlineSize", "containIntrinsicWidth", "flexBasis", "fontSize", "fontSmooth", "height", "inlineSize", "insetBlockEnd", "insetBlockStart", "insetInlineEnd", "insetInlineStart", "left", "letterSpacing", "marginBlockEnd", "marginBlockStart", "marginBottom", "marginInlineEnd", "marginEnd", "marginInlineStart", "marginStart", "marginLeft", "marginRight", "marginTop", "maskBorderOutset", "maskBorderWidth", "maxBlockSize", "maxHeight", "maxInlineSize", "maxWidth", "minBlockSize", "minHeight", "minInlineSize", "minWidth", "offsetDistance", "outlineOffset", "outlineWidth", "overflowClipMargin", "paddingBlockEnd", "paddingBlockStart", "paddingBottom", "paddingInlineEnd", "paddingEnd", "paddingInlineStart", "paddingStart", "paddingLeft", "paddingRight", "paddingTop", "perspective", "right", "rowGap", "scrollMarginBlockEnd", "scrollMarginBlockStart", "scrollMarginBottom", "scrollMarginInlineEnd", "scrollMarginInlineStart", "scrollMarginLeft", "scrollMarginRight", "scrollMarginTop", "scrollPaddingBlockEnd", "scrollPaddingBlockStart", "scrollPaddingBottom", "scrollPaddingInlineEnd", "scrollPaddingInlineStart", "scrollPaddingLeft", "scrollPaddingRight", "scrollPaddingTop", "scrollSnapMarginBottom", "scrollSnapMarginLeft", "scrollSnapMarginRight", "scrollSnapMarginTop", "shapeMargin", "tabSize", "textDecorationThickness", "textIndent", "textUnderlineOffset", "top", "transformOrigin", "translate", "verticalAlign", "width", "wordSpacing", "border", "borderBlock", "borderBlockEnd", "borderBlockStart", "borderBottom", "borderLeft", "borderRadius", "borderRight", "borderTop", "borderWidth", "columnRule", "containIntrinsicSize", "gap", "inset", "insetBlock", "insetInline", "margin", "marginBlock", "marginVertical", "marginInline", "marginHorizontal", "offset", "outline", "padding", "paddingBlock", "paddingVertical", "paddingInline", "paddingHorizontal", "scrollMargin", "scrollMarginBlock", "scrollMarginInline", "scrollPadding", "scrollPaddingBlock", "scrollPaddingInline", "scrollSnapMargin"]);
46
+ exports.lengthUnits = lengthUnits;
@@ -13,3 +13,9 @@ declare export default function transformValue(
13
13
  key: string,
14
14
  rawValue: string | number,
15
15
  ): string;
16
+
17
+ declare export function getNumberSuffix(key: string): string;
18
+
19
+ declare export const timeUnits: Set<string>;
20
+
21
+ declare export const lengthUnits: Set<string>;
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ */
9
+
10
+ type ValueWithDefault<T> =
11
+ | T
12
+ | Readonly<{ default: T; [$$Key$$: string]: ValueWithDefault<T> }>;
13
+ type CSSSyntax =
14
+ | '*'
15
+ | '<length>'
16
+ | '<number>'
17
+ | '<percentage>'
18
+ | '<length-percentage>'
19
+ | '<color>'
20
+ | '<image>'
21
+ | '<url>'
22
+ | '<integer>'
23
+ | '<angle>'
24
+ | '<time>'
25
+ | '<resolution>'
26
+ | '<transform-function>'
27
+ | '<custom-ident>'
28
+ | '<transform-list>';
29
+ type CSSSyntaxType = CSSSyntax | ReadonlyArray<CSSSyntax>;
30
+ export declare class CSSType {}
31
+ export interface ICSSType<T extends string | number> {
32
+ readonly value: ValueWithDefault<T>;
33
+ readonly syntax: CSSSyntaxType;
34
+ }
35
+ type AnguleValue = string;
36
+ export declare class Angle<T extends AnguleValue>
37
+ extends CSSType
38
+ implements ICSSType<T>
39
+ {
40
+ readonly value: ValueWithDefault<T>;
41
+ readonly syntax: CSSSyntaxType;
42
+ static readonly syntax: CSSSyntaxType;
43
+ constructor(value: ValueWithDefault<T>);
44
+ static create<T extends AnguleValue = AnguleValue>(
45
+ value: ValueWithDefault<T>,
46
+ ): Angle<T>;
47
+ }
48
+ export declare const angle: any;
49
+ type ColorValue = string;
50
+ export declare class Color<T extends ColorValue>
51
+ extends CSSType
52
+ implements ICSSType<T>
53
+ {
54
+ readonly value: ValueWithDefault<T>;
55
+ readonly syntax: CSSSyntaxType;
56
+ constructor(value: ValueWithDefault<T>);
57
+ static create<T extends ColorValue = ColorValue>(
58
+ value: ValueWithDefault<T>,
59
+ ): Color<T>;
60
+ }
61
+ export declare const color: any;
62
+ type URLValue = string;
63
+ export declare class Url<T extends URLValue>
64
+ extends CSSType
65
+ implements ICSSType<T>
66
+ {
67
+ readonly value: ValueWithDefault<T>;
68
+ readonly syntax: CSSSyntaxType;
69
+ constructor(value: ValueWithDefault<T>);
70
+ static create<T extends URLValue = URLValue>(
71
+ value: ValueWithDefault<T>,
72
+ ): Url<T>;
73
+ }
74
+ export declare const url: any;
75
+ type ImageValue = string;
76
+ export declare class Image<T extends ImageValue>
77
+ extends Url<T>
78
+ implements ICSSType<T>
79
+ {
80
+ readonly value: ValueWithDefault<T>;
81
+ readonly syntax: CSSSyntaxType;
82
+ constructor(value: ValueWithDefault<T>);
83
+ static create<T extends ImageValue = ImageValue>(
84
+ value: ValueWithDefault<T>,
85
+ ): Image<T>;
86
+ }
87
+ export declare const image: any;
88
+ type IntegerValue = number;
89
+ export declare class Integer<T extends IntegerValue>
90
+ extends CSSType
91
+ implements ICSSType<T>
92
+ {
93
+ readonly value: ValueWithDefault<T>;
94
+ readonly syntax: CSSSyntaxType;
95
+ constructor(value: ValueWithDefault<T>);
96
+ static create<T extends IntegerValue = IntegerValue>(value: T): Integer<T>;
97
+ }
98
+ export declare const integer: any;
99
+ type LengthPercentageValue = string;
100
+ export declare class LengthPercentage<T extends LengthPercentageValue>
101
+ extends CSSType
102
+ implements ICSSType<string>
103
+ {
104
+ readonly value: ValueWithDefault<T>;
105
+ readonly syntax: CSSSyntaxType;
106
+ constructor(value: ValueWithDefault<T>);
107
+ static createLength<T extends LengthPercentageValue | number>(
108
+ value: ValueWithDefault<T>,
109
+ ): LengthPercentage<string>;
110
+ static createPercentage<T extends LengthPercentageValue | number>(
111
+ value: ValueWithDefault<T>,
112
+ ): LengthPercentage<string>;
113
+ }
114
+ export declare const lengthPercentage: any;
115
+ type LengthValue = number | string;
116
+ export declare class Length<T extends LengthValue>
117
+ extends LengthPercentage<string>
118
+ implements ICSSType<string>
119
+ {
120
+ readonly value: ValueWithDefault<string>;
121
+ readonly syntax: CSSSyntaxType;
122
+ constructor(value: ValueWithDefault<T>);
123
+ static create<T extends LengthValue = LengthValue>(
124
+ value: ValueWithDefault<T>,
125
+ ): Length<T>;
126
+ }
127
+ export declare const length: any;
128
+ type PercentageValue = string | number;
129
+ export declare class Percentage<T extends PercentageValue>
130
+ extends LengthPercentage<string>
131
+ implements ICSSType<string>
132
+ {
133
+ readonly value: ValueWithDefault<string>;
134
+ readonly syntax: CSSSyntaxType;
135
+ constructor(value: ValueWithDefault<T>);
136
+ static create<T extends PercentageValue = PercentageValue>(
137
+ value: ValueWithDefault<T>,
138
+ ): Percentage<T>;
139
+ }
140
+ export declare const percentage: any;
141
+ type NumberValue = number;
142
+ export declare class Num<T extends NumberValue>
143
+ extends CSSType
144
+ implements ICSSType<T>
145
+ {
146
+ readonly value: ValueWithDefault<T>;
147
+ readonly syntax: CSSSyntaxType;
148
+ constructor(value: ValueWithDefault<T>);
149
+ static create<T extends NumberValue = NumberValue>(
150
+ value: ValueWithDefault<T>,
151
+ ): Num<T>;
152
+ }
153
+ export declare const number: any;
154
+ type ResolutionValue = string | 0;
155
+ export declare class Resolution<T extends ResolutionValue>
156
+ extends CSSType
157
+ implements ICSSType<T>
158
+ {
159
+ readonly value: ValueWithDefault<T>;
160
+ readonly syntax: CSSSyntaxType;
161
+ constructor(value: ValueWithDefault<T>);
162
+ static create<T extends ResolutionValue = ResolutionValue>(
163
+ value: ValueWithDefault<T>,
164
+ ): Resolution<T>;
165
+ }
166
+ export declare const resolution: any;
167
+ type TimeValue = string | 0;
168
+ export declare class Time<T extends TimeValue>
169
+ extends CSSType
170
+ implements ICSSType<T>
171
+ {
172
+ readonly value: ValueWithDefault<T>;
173
+ readonly syntax: CSSSyntaxType;
174
+ constructor(value: ValueWithDefault<T>);
175
+ static create<T extends TimeValue = TimeValue>(
176
+ value: ValueWithDefault<T>,
177
+ ): Time<T>;
178
+ }
179
+ export declare const time: any;
180
+ type TransformFunctionValue = string;
181
+ export declare class TransformFunction<T extends TransformFunctionValue>
182
+ extends CSSType
183
+ implements ICSSType<T>
184
+ {
185
+ readonly value: ValueWithDefault<T>;
186
+ readonly syntax: CSSSyntaxType;
187
+ constructor(value: ValueWithDefault<T>);
188
+ static create<T extends TransformFunctionValue = TransformFunctionValue>(
189
+ value: ValueWithDefault<T>,
190
+ ): TransformFunction<T>;
191
+ }
192
+ export declare const transformFunction: any;
193
+ type TransformListValue = string;
194
+ export declare class TransformList<T extends TransformListValue>
195
+ extends CSSType
196
+ implements ICSSType<T>
197
+ {
198
+ readonly value: ValueWithDefault<T>;
199
+ readonly syntax: CSSSyntaxType;
200
+ constructor(value: ValueWithDefault<T>);
201
+ static create<T extends TransformListValue = TransformListValue>(
202
+ value: ValueWithDefault<T>,
203
+ ): TransformList<T>;
204
+ }
205
+ export declare const transformList: any;
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
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.CSSType = exports.Angle = void 0;
7
+ class CSSType {}
8
+ exports.CSSType = CSSType;
9
+ class Angle extends CSSType {
10
+ syntax = "<angle>";
11
+ static syntax = "<angle>";
12
+ constructor(value) {
13
+ super();
14
+ this.value = value;
15
+ }
16
+ static create(value) {
17
+ return new Angle(value);
18
+ }
19
+ }
20
+ exports.Angle = Angle;
21
+ const angle = Angle.create;
22
+ exports.angle = angle;
23
+ class Color extends CSSType {
24
+ syntax = "<color>";
25
+ constructor(value) {
26
+ super();
27
+ this.value = value;
28
+ }
29
+ static create(value) {
30
+ return new Color(value);
31
+ }
32
+ }
33
+ exports.Color = Color;
34
+ const color = Color.create;
35
+ exports.color = color;
36
+ class Url extends CSSType {
37
+ syntax = "<url>";
38
+ constructor(value) {
39
+ super();
40
+ this.value = value;
41
+ }
42
+ static create(value) {
43
+ return new Url(value);
44
+ }
45
+ }
46
+ exports.Url = Url;
47
+ const url = Url.create;
48
+ exports.url = url;
49
+ class Image extends Url {
50
+ syntax = "<image>";
51
+ constructor(value) {
52
+ super(value);
53
+ this.value = value;
54
+ }
55
+ static create(value) {
56
+ return new Image(value);
57
+ }
58
+ }
59
+ exports.Image = Image;
60
+ const image = Image.create;
61
+ exports.image = image;
62
+ class Integer extends CSSType {
63
+ syntax = "<integer>";
64
+ constructor(value) {
65
+ super();
66
+ this.value = value;
67
+ }
68
+ static create(value) {
69
+ return new Integer(value);
70
+ }
71
+ }
72
+ exports.Integer = Integer;
73
+ const integer = Integer.create;
74
+ exports.integer = integer;
75
+ class LengthPercentage extends CSSType {
76
+ syntax = "<length-percentage>";
77
+ constructor(value) {
78
+ super();
79
+ this.value = value;
80
+ }
81
+ static createLength(value) {
82
+ return new LengthPercentage(convertNumberToLength(value));
83
+ }
84
+ static createPercentage(value) {
85
+ return new LengthPercentage(convertNumberToPercentage(value));
86
+ }
87
+ }
88
+ exports.LengthPercentage = LengthPercentage;
89
+ const lengthPercentage = LengthPercentage.createLength;
90
+ exports.lengthPercentage = lengthPercentage;
91
+ class Length extends LengthPercentage {
92
+ syntax = "<length>";
93
+ constructor(value) {
94
+ super(convertNumberToLength(value));
95
+ }
96
+ static create(value) {
97
+ return new Length(value);
98
+ }
99
+ }
100
+ exports.Length = Length;
101
+ const length = Length.create;
102
+ exports.length = length;
103
+ class Percentage extends LengthPercentage {
104
+ syntax = "<percentage>";
105
+ constructor(value) {
106
+ super(convertNumberToPercentage(value));
107
+ }
108
+ static create(value) {
109
+ return new Percentage(value);
110
+ }
111
+ }
112
+ exports.Percentage = Percentage;
113
+ const percentage = Percentage.create;
114
+ exports.percentage = percentage;
115
+ class Num extends CSSType {
116
+ syntax = "<number>";
117
+ constructor(value) {
118
+ super();
119
+ this.value = value;
120
+ }
121
+ static create(value) {
122
+ return new Num(value);
123
+ }
124
+ }
125
+ exports.Num = Num;
126
+ const number = Num.create;
127
+ exports.number = number;
128
+ class Resolution extends CSSType {
129
+ syntax = "<resolution>";
130
+ constructor(value) {
131
+ super();
132
+ this.value = value;
133
+ }
134
+ static create(value) {
135
+ return new Resolution(value);
136
+ }
137
+ }
138
+ exports.Resolution = Resolution;
139
+ const resolution = Resolution.create;
140
+ exports.resolution = resolution;
141
+ class Time extends CSSType {
142
+ syntax = "<time>";
143
+ constructor(value) {
144
+ super();
145
+ this.value = value;
146
+ }
147
+ static create(value) {
148
+ return new Time(value);
149
+ }
150
+ }
151
+ exports.Time = Time;
152
+ const time = Time.create;
153
+ exports.time = time;
154
+ class TransformFunction extends CSSType {
155
+ syntax = "<transform-function>";
156
+ constructor(value) {
157
+ super();
158
+ this.value = value;
159
+ }
160
+ static create(value) {
161
+ return new TransformFunction(value);
162
+ }
163
+ }
164
+ exports.TransformFunction = TransformFunction;
165
+ const transformFunction = TransformFunction.create;
166
+ exports.transformFunction = transformFunction;
167
+ class TransformList extends CSSType {
168
+ syntax = "<transform-list>";
169
+ constructor(value) {
170
+ super();
171
+ this.value = value;
172
+ }
173
+ static create(value) {
174
+ return new TransformList(value);
175
+ }
176
+ }
177
+ exports.TransformList = TransformList;
178
+ const transformList = TransformList.create;
179
+ exports.transformList = transformList;
180
+ const convertNumberToStringUsing = (transformNumber, defaultStr) => value => {
181
+ if (typeof value === "number") {
182
+ return transformNumber(value);
183
+ }
184
+ if (typeof value === "string") {
185
+ return value;
186
+ }
187
+ if (typeof value === "object") {
188
+ const {
189
+ default: defaultValue,
190
+ ...rest
191
+ } = value;
192
+ const defaultResult = convertNumberToLength(defaultValue);
193
+ const result = {
194
+ default: typeof defaultResult === "string" ? defaultResult : defaultStr
195
+ };
196
+ for (const [key, value] of Object.entries(rest)) {
197
+ result[key] = convertNumberToLength(value);
198
+ }
199
+ return result;
200
+ }
201
+ return value;
202
+ };
203
+ const convertNumberToLength = convertNumberToStringUsing(value => value === 0 ? "0" : `${value}px`, "0px");
204
+ const convertNumberToPercentage = convertNumberToStringUsing(value => value === 0 ? "0" : `${value * 100}%`, "0");
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ */
9
+
10
+ // import type { Color as ColorType } from './stylex-types-color';
11
+
12
+ // We want all in one file?
13
+ // option 1, creat interface an implement it in the class
14
+ // why? All the types have a single base definition of props
15
+ // We want on type that defines CSS Types
16
+ // Option 2: Do a union type and make
17
+
18
+ // interface ICSSType {
19
+ // toString(): string;
20
+ // }
21
+
22
+ type ValueWithDefault<+T> =
23
+ | T
24
+ | $ReadOnly<{
25
+ default: T,
26
+ [string]: ValueWithDefault<T>,
27
+ }>;
28
+
29
+ type CSSSyntax =
30
+ | '*'
31
+ | '<length>'
32
+ | '<number>'
33
+ | '<percentage>'
34
+ | '<length-percentage>'
35
+ | '<color>'
36
+ | '<image>'
37
+ | '<url>'
38
+ | '<integer>'
39
+ | '<angle>'
40
+ | '<time>'
41
+ | '<resolution>'
42
+ | '<transform-function>'
43
+ | '<custom-ident>'
44
+ | '<transform-list>';
45
+
46
+ type CSSSyntaxType = CSSSyntax | $ReadOnlyArray<CSSSyntax>;
47
+
48
+ declare export class CSSType {}
49
+
50
+ export interface ICSSType<+T: string | number> {
51
+ +value: ValueWithDefault<T>;
52
+ +syntax: CSSSyntaxType;
53
+ }
54
+
55
+ type AnguleValue = string;
56
+ declare export class Angle<+T: AnguleValue>
57
+ extends CSSType
58
+ implements ICSSType<T>
59
+ {
60
+ +value: ValueWithDefault<T>;
61
+ +syntax: CSSSyntaxType;
62
+ static +syntax: CSSSyntaxType;
63
+ constructor(value: ValueWithDefault<T>): void;
64
+ static create<T: AnguleValue = AnguleValue>(
65
+ value: ValueWithDefault<T>,
66
+ ): Angle<T>;
67
+ }
68
+ declare export const angle: $FlowFixMe;
69
+
70
+ type ColorValue = string;
71
+ declare export class Color<+T: ColorValue>
72
+ extends CSSType
73
+ implements ICSSType<T>
74
+ {
75
+ +value: ValueWithDefault<T>;
76
+ +syntax: CSSSyntaxType;
77
+ constructor(value: ValueWithDefault<T>): void;
78
+ static create<T: ColorValue = ColorValue>(
79
+ value: ValueWithDefault<T>,
80
+ ): Color<T>;
81
+ }
82
+ declare export const color: $FlowFixMe;
83
+
84
+ type URLValue = string;
85
+
86
+ declare export class Url<+T: URLValue> extends CSSType implements ICSSType<T> {
87
+ +value: ValueWithDefault<T>;
88
+ +syntax: CSSSyntaxType;
89
+ constructor(value: ValueWithDefault<T>): void;
90
+ static create<T: URLValue = URLValue>(value: ValueWithDefault<T>): Url<T>;
91
+ }
92
+ declare export const url: $FlowFixMe;
93
+
94
+ type ImageValue = string;
95
+
96
+ declare export class Image<+T: ImageValue>
97
+ extends Url<T>
98
+ implements ICSSType<T>
99
+ {
100
+ +value: ValueWithDefault<T>;
101
+ +syntax: CSSSyntaxType;
102
+ constructor(value: ValueWithDefault<T>): void;
103
+ static create<T: ImageValue = ImageValue>(
104
+ value: ValueWithDefault<T>,
105
+ ): Image<T>;
106
+ }
107
+ declare export const image: $FlowFixMe;
108
+
109
+ type IntegerValue = number;
110
+
111
+ declare export class Integer<+T: IntegerValue>
112
+ extends CSSType
113
+ implements ICSSType<T>
114
+ {
115
+ +value: ValueWithDefault<T>;
116
+ +syntax: CSSSyntaxType;
117
+ constructor(value: ValueWithDefault<T>): void;
118
+ static create<T: IntegerValue = IntegerValue>(value: T): Integer<T>;
119
+ }
120
+ declare export const integer: $FlowFixMe;
121
+
122
+ type LengthPercentageValue = string;
123
+
124
+ declare export class LengthPercentage<+T: LengthPercentageValue>
125
+ extends CSSType
126
+ implements ICSSType<string>
127
+ {
128
+ +value: ValueWithDefault<T>;
129
+ +syntax: CSSSyntaxType;
130
+ constructor(value: ValueWithDefault<T>): void;
131
+ static createLength<T: LengthPercentageValue | number>(
132
+ value: ValueWithDefault<T>,
133
+ ): LengthPercentage<string>;
134
+ static createPercentage<T: LengthPercentageValue | number>(
135
+ value: ValueWithDefault<T>,
136
+ ): LengthPercentage<string>;
137
+ }
138
+ declare export const lengthPercentage: $FlowFixMe;
139
+
140
+ type LengthValue = number | string;
141
+
142
+ declare export class Length<+T: LengthValue>
143
+ extends LengthPercentage<string>
144
+ implements ICSSType<string>
145
+ {
146
+ +value: ValueWithDefault<string>;
147
+ +syntax: CSSSyntaxType;
148
+ constructor(value: ValueWithDefault<T>): void;
149
+ static create<T: LengthValue = LengthValue>(
150
+ value: ValueWithDefault<T>,
151
+ ): Length<T>;
152
+ }
153
+ declare export const length: $FlowFixMe;
154
+
155
+ type PercentageValue = string | number;
156
+
157
+ declare export class Percentage<+T: PercentageValue>
158
+ extends LengthPercentage<string>
159
+ implements ICSSType<string>
160
+ {
161
+ +value: ValueWithDefault<string>;
162
+ +syntax: CSSSyntaxType;
163
+ constructor(value: ValueWithDefault<T>): void;
164
+ static create<T: PercentageValue = PercentageValue>(
165
+ value: ValueWithDefault<T>,
166
+ ): Percentage<T>;
167
+ }
168
+ declare export const percentage: $FlowFixMe;
169
+
170
+ type NumberValue = number;
171
+
172
+ declare export class Num<+T: NumberValue>
173
+ extends CSSType
174
+ implements ICSSType<T>
175
+ {
176
+ +value: ValueWithDefault<T>;
177
+ +syntax: CSSSyntaxType;
178
+ constructor(value: ValueWithDefault<T>): void;
179
+ static create<T: NumberValue = NumberValue>(
180
+ value: ValueWithDefault<T>,
181
+ ): Num<T>;
182
+ }
183
+ declare export const number: $FlowFixMe;
184
+
185
+ type ResolutionValue = string | 0;
186
+
187
+ declare export class Resolution<+T: ResolutionValue>
188
+ extends CSSType
189
+ implements ICSSType<T>
190
+ {
191
+ +value: ValueWithDefault<T>;
192
+ +syntax: CSSSyntaxType;
193
+ constructor(value: ValueWithDefault<T>): void;
194
+ static create<T: ResolutionValue = ResolutionValue>(
195
+ value: ValueWithDefault<T>,
196
+ ): Resolution<T>;
197
+ }
198
+ declare export const resolution: $FlowFixMe;
199
+
200
+ type TimeValue = string | 0;
201
+
202
+ declare export class Time<+T: TimeValue>
203
+ extends CSSType
204
+ implements ICSSType<T>
205
+ {
206
+ +value: ValueWithDefault<T>;
207
+ +syntax: CSSSyntaxType;
208
+ constructor(value: ValueWithDefault<T>): void;
209
+ static create<T: TimeValue = TimeValue>(value: ValueWithDefault<T>): Time<T>;
210
+ }
211
+ declare export const time: $FlowFixMe;
212
+
213
+ type TransformFunctionValue = string;
214
+
215
+ declare export class TransformFunction<+T: TransformFunctionValue>
216
+ extends CSSType
217
+ implements ICSSType<T>
218
+ {
219
+ +value: ValueWithDefault<T>;
220
+ +syntax: CSSSyntaxType;
221
+ constructor(value: ValueWithDefault<T>): void;
222
+ static create<T: TransformFunctionValue = TransformFunctionValue>(
223
+ value: ValueWithDefault<T>,
224
+ ): TransformFunction<T>;
225
+ }
226
+ declare export const transformFunction: $FlowFixMe;
227
+
228
+ type TransformListValue = string;
229
+
230
+ declare export class TransformList<T: TransformListValue>
231
+ extends CSSType
232
+ implements ICSSType<T>
233
+ {
234
+ +value: ValueWithDefault<T>;
235
+ +syntax: CSSSyntaxType;
236
+ constructor(value: ValueWithDefault<T>): void;
237
+ static create<T: TransformListValue = TransformListValue>(
238
+ value: ValueWithDefault<T>,
239
+ ): TransformList<T>;
240
+ }
241
+ declare export const transformList: $FlowFixMe;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stylexjs/shared",
3
- "version": "0.2.0-beta.19",
3
+ "version": "0.2.0-beta.21",
4
4
  "main": "lib/index.js",
5
5
  "repository": "https://www.github.com/facebook/stylex",
6
6
  "license": "MIT",
@@ -13,12 +13,13 @@
13
13
  "postcss-value-parser": "^4.1.0"
14
14
  },
15
15
  "devDependencies": {
16
- "@stylexjs/scripts": "0.2.0-beta.19"
16
+ "@stylexjs/scripts": "0.2.0-beta.21"
17
17
  },
18
18
  "jest": {
19
19
  "snapshotFormat": {
20
20
  "printBasicPrototype": false
21
- }
21
+ },
22
+ "prettierPath": null
22
23
  },
23
24
  "files": [
24
25
  "lib/*"