@stylexjs/babel-plugin 0.16.1 → 0.16.3
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/index.d.ts +4 -5
- package/lib/index.js +96 -31
- package/lib/index.js.flow +1 -1
- package/lib/shared/common-types.d.ts +3 -4
- package/lib/shared/stylex-create-theme.d.ts +1 -1
- package/lib/shared/stylex-define-vars.d.ts +3 -3
- package/lib/shared/types/index.js.flow +11 -11
- package/lib/utils/add-sourcemap-data.js.flow +2 -2
- package/lib/utils/ast-helpers.js.flow +3 -3
- package/lib/utils/evaluate-path.js.flow +2 -2
- package/lib/utils/js-to-ast.js.flow +1 -1
- package/lib/utils/state-manager.d.ts +36 -19
- package/lib/utils/state-manager.js.flow +36 -22
- package/lib/utils/validate.d.ts +1 -0
- package/lib/utils/validate.js.flow +2 -0
- package/lib/visitors/imports.js.flow +2 -2
- package/lib/visitors/parse-stylex-create-arg.js.flow +2 -2
- package/lib/visitors/stylex-create-theme.js.flow +2 -2
- package/lib/visitors/stylex-create.js.flow +2 -2
- package/lib/visitors/stylex-default-marker.js.flow +2 -2
- package/lib/visitors/stylex-define-consts.js.flow +2 -2
- package/lib/visitors/stylex-define-vars.js.flow +2 -2
- package/lib/visitors/stylex-keyframes.js.flow +2 -2
- package/lib/visitors/stylex-merge.js.flow +2 -2
- package/lib/visitors/stylex-position-try.js.flow +2 -2
- package/lib/visitors/stylex-props.js.flow +2 -2
- package/lib/visitors/stylex-view-transition-class.js.flow +2 -2
- package/package.json +3 -3
- package/flow_modules/@babel/core/index.js.flow +0 -854
- package/flow_modules/@babel/generator/index.js.flow +0 -216
- package/flow_modules/@babel/helper-module-imports/index.js.flow +0 -182
- package/flow_modules/@babel/parser/index.js.flow +0 -253
- package/flow_modules/@babel/traverse/index.js.flow +0 -1007
- package/flow_modules/@babel/types/index.js.flow +0 -5225
package/lib/index.d.ts
CHANGED
|
@@ -39,10 +39,9 @@ declare function processStylexRules(
|
|
|
39
39
|
config?:
|
|
40
40
|
| boolean
|
|
41
41
|
| {
|
|
42
|
-
useLayers?: boolean
|
|
43
|
-
enableLTRRTLComments?: boolean
|
|
44
|
-
legacyDisableLayers?: boolean
|
|
45
|
-
...
|
|
42
|
+
useLayers?: boolean;
|
|
43
|
+
enableLTRRTLComments?: boolean;
|
|
44
|
+
legacyDisableLayers?: boolean;
|
|
46
45
|
},
|
|
47
46
|
): string;
|
|
48
47
|
export type StyleXTransformObj = Readonly<{
|
|
@@ -51,4 +50,4 @@ export type StyleXTransformObj = Readonly<{
|
|
|
51
50
|
processStylexRules: typeof processStylexRules;
|
|
52
51
|
}>;
|
|
53
52
|
declare const $$EXPORT_DEFAULT_DECLARATION$$: StyleXTransformObj;
|
|
54
|
-
export
|
|
53
|
+
export default $$EXPORT_DEFAULT_DECLARATION$$;
|
package/lib/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var t = require('@babel/types');
|
|
4
|
-
var path = require('path');
|
|
5
|
-
var fs = require('fs');
|
|
6
|
-
var url$1 = require('url');
|
|
4
|
+
var path = require('node:path');
|
|
5
|
+
var fs = require('node:fs');
|
|
6
|
+
var url$1 = require('node:url');
|
|
7
7
|
var importMetaResolve = require('@dual-bundle/import-meta-resolve');
|
|
8
8
|
var require$$0 = require('assert');
|
|
9
9
|
var core = require('@babel/core');
|
|
@@ -48,6 +48,12 @@ const boolean = (message = defaultMessage('a boolean')) => (value, name) => {
|
|
|
48
48
|
}
|
|
49
49
|
return value;
|
|
50
50
|
};
|
|
51
|
+
const func = (message = defaultMessage('a function')) => (value, name) => {
|
|
52
|
+
if (typeof value !== 'function') {
|
|
53
|
+
return new Error(message(value, name));
|
|
54
|
+
}
|
|
55
|
+
return value;
|
|
56
|
+
};
|
|
51
57
|
const literal = (expected, message = defaultMessage(`the literal ${JSON.stringify(expected)}`)) => (value, name) => {
|
|
52
58
|
if (value === expected) {
|
|
53
59
|
return expected;
|
|
@@ -128,6 +134,25 @@ const unionOf3 = (a, b, c, message = defaultUnionMessage('one of')) => (value, n
|
|
|
128
134
|
}
|
|
129
135
|
return new Error(`${message(value, name)}${indent(resultA.message)}${indent(resultB.message)}${indent(resultC.message)}\nBut got: ${JSON.stringify(value)}`);
|
|
130
136
|
};
|
|
137
|
+
const unionOf4 = (a, b, c, d, message = defaultUnionMessage('one of')) => (value, name) => {
|
|
138
|
+
const resultA = a(value);
|
|
139
|
+
if (!(resultA instanceof Error)) {
|
|
140
|
+
return resultA;
|
|
141
|
+
}
|
|
142
|
+
const resultB = b(value);
|
|
143
|
+
if (!(resultB instanceof Error)) {
|
|
144
|
+
return resultB;
|
|
145
|
+
}
|
|
146
|
+
const resultC = c(value);
|
|
147
|
+
if (!(resultC instanceof Error)) {
|
|
148
|
+
return resultC;
|
|
149
|
+
}
|
|
150
|
+
const resultD = d(value);
|
|
151
|
+
if (!(resultD instanceof Error)) {
|
|
152
|
+
return resultD;
|
|
153
|
+
}
|
|
154
|
+
return new Error(`${message(value, name)}${indent(resultA.message)}${indent(resultB.message)}${indent(resultC.message)}${indent(resultD.message)}\nBut got: ${JSON.stringify(value)}`);
|
|
155
|
+
};
|
|
131
156
|
const logAndDefault = (check, value, def, name) => {
|
|
132
157
|
const result = check(value, name);
|
|
133
158
|
if (result instanceof Error) {
|
|
@@ -770,13 +795,18 @@ function getProgramStatement(path) {
|
|
|
770
795
|
return programPath;
|
|
771
796
|
}
|
|
772
797
|
|
|
773
|
-
const CheckModuleResolution =
|
|
798
|
+
const CheckModuleResolution = unionOf4(object({
|
|
774
799
|
type: literal('commonJS'),
|
|
775
800
|
rootDir: unionOf(nullish(), string()),
|
|
776
801
|
themeFileExtension: unionOf(nullish(), string())
|
|
777
802
|
}), object({
|
|
778
803
|
type: literal('haste'),
|
|
779
804
|
themeFileExtension: unionOf(nullish(), string())
|
|
805
|
+
}), object({
|
|
806
|
+
type: literal('custom'),
|
|
807
|
+
themeFileExtension: unionOf(nullish(), string()),
|
|
808
|
+
filePathResolver: func(),
|
|
809
|
+
getCanonicalFilePath: func()
|
|
780
810
|
}), object({
|
|
781
811
|
type: literal('experimental_crossFileParsing'),
|
|
782
812
|
rootDir: string(),
|
|
@@ -828,7 +858,7 @@ class StateManager {
|
|
|
828
858
|
const enableFontSizePxToRem = logAndDefault(boolean(), options.enableFontSizePxToRem ?? false, false, 'options.enableFontSizePxToRem');
|
|
829
859
|
const enableInlinedConditionalMerge = logAndDefault(boolean(), options.enableInlinedConditionalMerge ?? true, true, 'options.enableInlinedConditionalMerge');
|
|
830
860
|
const enableMinifiedKeys = logAndDefault(boolean(), options.enableMinifiedKeys ?? true, true, 'options.enableMinifiedKeys');
|
|
831
|
-
const enableMediaQueryOrder = logAndDefault(boolean(), options.enableMediaQueryOrder ??
|
|
861
|
+
const enableMediaQueryOrder = logAndDefault(boolean(), options.enableMediaQueryOrder ?? true, true, 'options.enableMediaQueryOrder');
|
|
832
862
|
const enableLegacyValueFlipping = logAndDefault(boolean(), options.enableLegacyValueFlipping ?? false, false, 'options.enableLegacyValueFlipping');
|
|
833
863
|
const enableLogicalStylesPolyfill = logAndDefault(boolean(), options.enableLogicalStylesPolyfill ?? false, false, 'options.enableLogicalStylesPolyfill');
|
|
834
864
|
const enableLTRRTLComments = logAndDefault(boolean(), options.enableLTRRTLComments ?? false, false, 'options.enableLTRRTLComments');
|
|
@@ -935,12 +965,20 @@ class StateManager {
|
|
|
935
965
|
get fileNameForHashing() {
|
|
936
966
|
const filename = this.filename;
|
|
937
967
|
const themeFileExtension = this.options.unstable_moduleResolution?.themeFileExtension ?? '.stylex';
|
|
938
|
-
|
|
968
|
+
const constsFileExtension = `${themeFileExtension}.const`;
|
|
969
|
+
if (filename == null || this.options.unstable_moduleResolution == null) {
|
|
939
970
|
return null;
|
|
940
971
|
}
|
|
941
|
-
|
|
972
|
+
const isThemeFile = matchesFileSuffix(themeFileExtension)(filename);
|
|
973
|
+
const isConstsOnlyFile = matchesFileSuffix(constsFileExtension)(filename);
|
|
974
|
+
if (!isThemeFile && !isConstsOnlyFile) {
|
|
975
|
+
return null;
|
|
976
|
+
}
|
|
977
|
+
switch (this.options.unstable_moduleResolution?.type) {
|
|
942
978
|
case 'haste':
|
|
943
979
|
return path.basename(filename);
|
|
980
|
+
case 'custom':
|
|
981
|
+
return this.options.unstable_moduleResolution.getCanonicalFilePath(filename);
|
|
944
982
|
default:
|
|
945
983
|
return this.getCanonicalFilePath(filename);
|
|
946
984
|
}
|
|
@@ -983,10 +1021,12 @@ class StateManager {
|
|
|
983
1021
|
return false;
|
|
984
1022
|
}
|
|
985
1023
|
const themeFileExtension = this.options.unstable_moduleResolution?.themeFileExtension ?? '.stylex';
|
|
1024
|
+
const constsFileExtension = `${themeFileExtension}.const`;
|
|
986
1025
|
const transformedVarsFileExtension = '.transformed';
|
|
987
1026
|
const isValidStylexFile = matchesFileSuffix(themeFileExtension)(importPath);
|
|
988
1027
|
const isValidTransformedVarsFile = matchesFileSuffix(transformedVarsFileExtension)(importPath);
|
|
989
|
-
|
|
1028
|
+
const isValidConstsOnlyFile = matchesFileSuffix(constsFileExtension)(importPath);
|
|
1029
|
+
if (!isValidStylexFile && !isValidTransformedVarsFile && !isValidConstsOnlyFile) {
|
|
990
1030
|
return false;
|
|
991
1031
|
}
|
|
992
1032
|
switch (this.options.unstable_moduleResolution?.type) {
|
|
@@ -1000,6 +1040,13 @@ class StateManager {
|
|
|
1000
1040
|
{
|
|
1001
1041
|
return ['themeNameRef', addFileExtension(importPath, sourceFilePath)];
|
|
1002
1042
|
}
|
|
1043
|
+
case 'custom':
|
|
1044
|
+
{
|
|
1045
|
+
const aliases = this.options.aliases;
|
|
1046
|
+
const moduleResolution = this.options.unstable_moduleResolution;
|
|
1047
|
+
const result = moduleResolution.filePathResolver(importPath, sourceFilePath, aliases);
|
|
1048
|
+
return result ? ['themeNameRef', moduleResolution.getCanonicalFilePath(result)] : false;
|
|
1049
|
+
}
|
|
1003
1050
|
case 'experimental_crossFileParsing':
|
|
1004
1051
|
{
|
|
1005
1052
|
const aliases = this.options.aliases;
|
|
@@ -4018,7 +4065,7 @@ function requireMediaQuery () {
|
|
|
4018
4065
|
})), mediaAndRulesParser, mediaOrRulesParser, simplePairParser, mediaWordRuleParser, () => notParser, () => mediaOrRulesParser.surroundedBy(_tokenParser.TokenParser.tokens.OpenParen, _tokenParser.TokenParser.tokens.CloseParen), () => mediaAndRulesParser.surroundedBy(_tokenParser.TokenParser.tokens.OpenParen, _tokenParser.TokenParser.tokens.CloseParen)).skip(_tokenParser.TokenParser.tokens.Whitespace.optional);
|
|
4019
4066
|
notParser = _tokenParser.TokenParser.sequence(_tokenParser.TokenParser.tokens.OpenParen, _tokenParser.TokenParser.string('not'), _tokenParser.TokenParser.tokens.Whitespace, getNormalRuleParser(), _tokenParser.TokenParser.tokens.CloseParen).map(([_openParen, _not, _space, rule, _closeParen]) => ({
|
|
4020
4067
|
type: 'not',
|
|
4021
|
-
rule
|
|
4068
|
+
rule: rule
|
|
4022
4069
|
}));
|
|
4023
4070
|
function isNumericLength(val) {
|
|
4024
4071
|
return typeof val === 'object' && val !== null && !Array.isArray(val) && typeof val.value === 'number' && typeof val.unit === 'string' && (val.type === 'integer' || val.type === 'number');
|
|
@@ -5403,6 +5450,13 @@ const AT_RULE_PRIORITIES = {
|
|
|
5403
5450
|
'@container': 300
|
|
5404
5451
|
};
|
|
5405
5452
|
const PSEUDO_ELEMENT_PRIORITY = 5000;
|
|
5453
|
+
const RELATIONAL_SELECTORS = {
|
|
5454
|
+
ANCESTOR: /^:where\(\.[0-9a-zA-Z_-]+(:[a-zA-Z-]+)\s+\*\)$/,
|
|
5455
|
+
DESCENDANT: /^:where\(:has\(\.[0-9a-zA-Z_-]+(:[a-zA-Z-]+)\)\)$/,
|
|
5456
|
+
SIBLING_BEFORE: /^:where\(\.[0-9a-zA-Z_-]+(:[a-zA-Z-]+)\s+~\s+\*\)$/,
|
|
5457
|
+
SIBLING_AFTER: /^:where\(:has\(~\s\.[0-9a-zA-Z_-]+(:[a-zA-Z-]+)\)\)$/,
|
|
5458
|
+
ANY_SIBLING: /^:where\(\.[0-9a-zA-Z_-]+(:[a-zA-Z-]+)\s+~\s+\*,\s+:has\(~\s\.[0-9a-zA-Z_-]+(:[a-zA-Z-]+)\)\)$/
|
|
5459
|
+
};
|
|
5406
5460
|
function getPriority(key) {
|
|
5407
5461
|
if (key.startsWith('--')) {
|
|
5408
5462
|
return 1;
|
|
@@ -5419,6 +5473,25 @@ function getPriority(key) {
|
|
|
5419
5473
|
if (key.startsWith('::')) {
|
|
5420
5474
|
return PSEUDO_ELEMENT_PRIORITY;
|
|
5421
5475
|
}
|
|
5476
|
+
const pseudoBase = p => (PSEUDO_CLASS_PRIORITIES[p] ?? 40) / 100;
|
|
5477
|
+
const ancestorMatch = RELATIONAL_SELECTORS.ANCESTOR.exec(key);
|
|
5478
|
+
if (ancestorMatch) {
|
|
5479
|
+
return 10 + pseudoBase(ancestorMatch[1]);
|
|
5480
|
+
}
|
|
5481
|
+
const descendantMatch = RELATIONAL_SELECTORS.DESCENDANT.exec(key);
|
|
5482
|
+
if (descendantMatch) {
|
|
5483
|
+
return 15 + pseudoBase(descendantMatch[1]);
|
|
5484
|
+
}
|
|
5485
|
+
const anySiblingMatch = RELATIONAL_SELECTORS.ANY_SIBLING.exec(key);
|
|
5486
|
+
if (anySiblingMatch) return 20 + Math.max(pseudoBase(anySiblingMatch[1]), pseudoBase(anySiblingMatch[2]));
|
|
5487
|
+
const siblingBeforeMatch = RELATIONAL_SELECTORS.SIBLING_BEFORE.exec(key);
|
|
5488
|
+
if (siblingBeforeMatch) {
|
|
5489
|
+
return 30 + pseudoBase(siblingBeforeMatch[1]);
|
|
5490
|
+
}
|
|
5491
|
+
const siblingAfterMatch = RELATIONAL_SELECTORS.SIBLING_AFTER.exec(key);
|
|
5492
|
+
if (siblingAfterMatch) {
|
|
5493
|
+
return 40 + pseudoBase(siblingAfterMatch[1]);
|
|
5494
|
+
}
|
|
5422
5495
|
if (key.startsWith(':')) {
|
|
5423
5496
|
const prop = key.startsWith(':') && key.includes('(') ? key.slice(0, key.indexOf('(')) : key;
|
|
5424
5497
|
return PSEUDO_CLASS_PRIORITIES[prop] ?? 40;
|
|
@@ -6060,7 +6133,7 @@ function priorityForAtRule(atRule) {
|
|
|
6060
6133
|
if (atRule === 'default') {
|
|
6061
6134
|
return 1;
|
|
6062
6135
|
}
|
|
6063
|
-
return atRule.split(SPLIT_TOKEN).length;
|
|
6136
|
+
return 1 + atRule.split(SPLIT_TOKEN).length;
|
|
6064
6137
|
}
|
|
6065
6138
|
function getDefaultValue(value) {
|
|
6066
6139
|
if (typeof value === 'string' || typeof value === 'number') {
|
|
@@ -6154,7 +6227,7 @@ function constructCssVariablesString(variables, varGroupHash) {
|
|
|
6154
6227
|
result[varGroupHash + suffix] = {
|
|
6155
6228
|
ltr,
|
|
6156
6229
|
rtl: null,
|
|
6157
|
-
priority: priorityForAtRule(atRule)
|
|
6230
|
+
priority: priorityForAtRule(atRule) / 10
|
|
6158
6231
|
};
|
|
6159
6232
|
}
|
|
6160
6233
|
return result;
|
|
@@ -6217,19 +6290,14 @@ function styleXCreateTheme(themeVars, variables, options) {
|
|
|
6217
6290
|
for (const atRule of sortedAtRules) {
|
|
6218
6291
|
const decls = rulesByAtRule[atRule].join('');
|
|
6219
6292
|
const rule = `.${overrideClassName}, .${overrideClassName}:root{${decls}}`;
|
|
6220
|
-
|
|
6221
|
-
|
|
6222
|
-
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
|
|
6227
|
-
|
|
6228
|
-
ltr: wrapWithAtRules(rule, atRule),
|
|
6229
|
-
priority: 0.5 + 0.1 * priorityForAtRule(atRule),
|
|
6230
|
-
rtl: null
|
|
6231
|
-
};
|
|
6232
|
-
}
|
|
6293
|
+
const priority = 0.4 + priorityForAtRule(atRule) / 10;
|
|
6294
|
+
const suffix = atRule === 'default' ? '' : `-${hash(atRule)}`;
|
|
6295
|
+
const ltr = atRule === 'default' ? rule : wrapWithAtRules(rule, atRule);
|
|
6296
|
+
stylesToInject[overrideClassName + suffix] = {
|
|
6297
|
+
ltr: ltr,
|
|
6298
|
+
priority: priority,
|
|
6299
|
+
rtl: null
|
|
6300
|
+
};
|
|
6233
6301
|
}
|
|
6234
6302
|
const themeClass = `${overrideClassName} ${themeVars.__varGroupHash__}`;
|
|
6235
6303
|
return [{
|
|
@@ -6349,7 +6417,7 @@ function ancestor(pseudo, options = defaultOptions) {
|
|
|
6349
6417
|
function descendant(pseudo, options = defaultOptions) {
|
|
6350
6418
|
validatePseudoSelector(pseudo);
|
|
6351
6419
|
const defaultMarker = typeof options === 'string' ? options : getDefaultMarkerClassName(options);
|
|
6352
|
-
return `:has(.${defaultMarker}${pseudo})`;
|
|
6420
|
+
return `:where(:has(.${defaultMarker}${pseudo}))`;
|
|
6353
6421
|
}
|
|
6354
6422
|
function siblingBefore(pseudo, options = defaultOptions) {
|
|
6355
6423
|
validatePseudoSelector(pseudo);
|
|
@@ -6359,7 +6427,7 @@ function siblingBefore(pseudo, options = defaultOptions) {
|
|
|
6359
6427
|
function siblingAfter(pseudo, options = defaultOptions) {
|
|
6360
6428
|
validatePseudoSelector(pseudo);
|
|
6361
6429
|
const defaultMarker = typeof options === 'string' ? options : getDefaultMarkerClassName(options);
|
|
6362
|
-
return `:has(~ .${defaultMarker}${pseudo})`;
|
|
6430
|
+
return `:where(:has(~ .${defaultMarker}${pseudo}))`;
|
|
6363
6431
|
}
|
|
6364
6432
|
function anySibling(pseudo, options = defaultOptions) {
|
|
6365
6433
|
validatePseudoSelector(pseudo);
|
|
@@ -6486,14 +6554,11 @@ function convertToTestStyles(obj, varName, state) {
|
|
|
6486
6554
|
}
|
|
6487
6555
|
|
|
6488
6556
|
function convertObjectToAST(obj) {
|
|
6489
|
-
return t__namespace.objectExpression(Object.entries(obj).map(([key, value]) => t__namespace.objectProperty(
|
|
6557
|
+
return t__namespace.objectExpression(Object.entries(obj).map(([key, value]) => t__namespace.objectProperty(t__namespace.isValidIdentifier(key, false) ? t__namespace.identifier(key) : t__namespace.stringLiteral(key), typeof value === 'string' ? t__namespace.stringLiteral(value) : typeof value === 'number' ? t__namespace.numericLiteral(value) : typeof value === 'boolean' ? t__namespace.booleanLiteral(value) : value === null ? t__namespace.nullLiteral() : convertObjectToAST(value))));
|
|
6490
6558
|
}
|
|
6491
6559
|
function removeObjectsWithSpreads(obj) {
|
|
6492
6560
|
return Object.fromEntries(Object.entries(obj).filter(Boolean));
|
|
6493
6561
|
}
|
|
6494
|
-
function canBeIdentifier(str) {
|
|
6495
|
-
return str.match(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/) != null;
|
|
6496
|
-
}
|
|
6497
6562
|
|
|
6498
6563
|
const IMPORT_FILE_PARSING_ERROR = `There was error when attempting to parse the imported file.
|
|
6499
6564
|
Please ensure that the 'babelrc' file is configured to be able to parse this file.
|
|
@@ -6536,7 +6601,7 @@ function deopt(path, state, reason) {
|
|
|
6536
6601
|
state.deoptReason = reason;
|
|
6537
6602
|
}
|
|
6538
6603
|
function evaluateImportedFile(filePath, namedExport, state, bindingPath) {
|
|
6539
|
-
const fs = require('fs');
|
|
6604
|
+
const fs = require('node:fs');
|
|
6540
6605
|
const fileContents = fs.readFileSync(filePath, 'utf8');
|
|
6541
6606
|
const ast = core.parseSync(fileContents, {
|
|
6542
6607
|
babelrc: true
|
package/lib/index.js.flow
CHANGED
|
@@ -33,10 +33,9 @@ export type CompiledStyles = Readonly<{
|
|
|
33
33
|
| string
|
|
34
34
|
| Readonly<{ [$$Key$$: string]: null | string }>;
|
|
35
35
|
}>;
|
|
36
|
-
export type FlatCompiledStyles = Readonly<
|
|
37
|
-
[$$Key$$: string]: string | null
|
|
38
|
-
|
|
39
|
-
}>;
|
|
36
|
+
export type FlatCompiledStyles = Readonly<
|
|
37
|
+
{ [$$Key$$: string]: string | null } & { $$css: true | string }
|
|
38
|
+
>;
|
|
40
39
|
export type StyleXOptions = Readonly<{
|
|
41
40
|
classNamePrefix: string;
|
|
42
41
|
debug: null | undefined | boolean;
|
|
@@ -20,7 +20,7 @@ declare function styleXCreateTheme(
|
|
|
20
20
|
},
|
|
21
21
|
options?: StyleXOptions,
|
|
22
22
|
): [
|
|
23
|
-
{ $$css: true
|
|
23
|
+
{ $$css: true } & { readonly [$$Key$$: string]: string },
|
|
24
24
|
{ [$$Key$$: string]: InjectableStyle },
|
|
25
25
|
];
|
|
26
26
|
export default styleXCreateTheme;
|
|
@@ -10,17 +10,17 @@
|
|
|
10
10
|
import type { InjectableStyle, StyleXOptions } from './common-types';
|
|
11
11
|
import type { VarsConfig } from './stylex-vars-utils';
|
|
12
12
|
type VarsKeysWithStringValues<Vars extends VarsConfig> = Readonly<{
|
|
13
|
-
[$$Key
|
|
13
|
+
[$$Key$$ in keyof Vars]: string;
|
|
14
14
|
}>;
|
|
15
15
|
type VarsObject<Vars extends VarsConfig> = Readonly<
|
|
16
|
-
Omit<VarsKeysWithStringValues<Vars>, keyof
|
|
16
|
+
Omit<VarsKeysWithStringValues<Vars>, keyof { __varGroupHash__: string }> & {
|
|
17
17
|
__varGroupHash__: string;
|
|
18
18
|
}
|
|
19
19
|
>;
|
|
20
20
|
declare function styleXDefineVars<Vars extends VarsConfig>(
|
|
21
21
|
variables: Vars,
|
|
22
22
|
options: Readonly<
|
|
23
|
-
Omit<Partial<StyleXOptions>, keyof
|
|
23
|
+
Omit<Partial<StyleXOptions>, keyof { exportId: string }> & {
|
|
24
24
|
exportId: string;
|
|
25
25
|
}
|
|
26
26
|
>,
|
|
@@ -79,7 +79,7 @@ declare export class Angle<+T: AngleValue>
|
|
|
79
79
|
}
|
|
80
80
|
declare export const angle: <T: AngleValue = AngleValue>(
|
|
81
81
|
value: ValueWithDefault,
|
|
82
|
-
// $
|
|
82
|
+
// $FlowFixMe[method-unbinding]
|
|
83
83
|
) => Angle<T>;
|
|
84
84
|
|
|
85
85
|
type ColorValue = string;
|
|
@@ -93,7 +93,7 @@ declare export class Color<+T: ColorValue>
|
|
|
93
93
|
}
|
|
94
94
|
declare export const color: <T: ColorValue = ColorValue>(
|
|
95
95
|
value: ValueWithDefault,
|
|
96
|
-
// $
|
|
96
|
+
// $FlowFixMe[method-unbinding]
|
|
97
97
|
) => Color<T>;
|
|
98
98
|
|
|
99
99
|
type URLValue = string;
|
|
@@ -123,7 +123,7 @@ declare export class Image<+T: ImageValue>
|
|
|
123
123
|
}
|
|
124
124
|
declare export const image: <T: ImageValue = ImageValue>(
|
|
125
125
|
value: ValueWithDefault,
|
|
126
|
-
// $
|
|
126
|
+
// $FlowFixMe[method-unbinding]
|
|
127
127
|
) => Image<T>;
|
|
128
128
|
|
|
129
129
|
type IntegerValue = number;
|
|
@@ -157,7 +157,7 @@ declare export class LengthPercentage<+_T: LengthPercentageValue>
|
|
|
157
157
|
}
|
|
158
158
|
declare export const lengthPercentage: <_T: LengthPercentageValue | number>(
|
|
159
159
|
value: ValueWithDefault,
|
|
160
|
-
// $
|
|
160
|
+
// $FlowFixMe[method-unbinding]
|
|
161
161
|
) => LengthPercentage<string>;
|
|
162
162
|
|
|
163
163
|
type LengthValue = number | string;
|
|
@@ -174,7 +174,7 @@ declare export class Length<+_T: LengthValue>
|
|
|
174
174
|
}
|
|
175
175
|
declare export const length: <T: LengthValue = LengthValue>(
|
|
176
176
|
value: NestedWithNumbers,
|
|
177
|
-
// $
|
|
177
|
+
// $FlowFixMe[method-unbinding]
|
|
178
178
|
) => Length<T>;
|
|
179
179
|
|
|
180
180
|
type PercentageValue = string | number;
|
|
@@ -191,7 +191,7 @@ declare export class Percentage<+_T: PercentageValue>
|
|
|
191
191
|
}
|
|
192
192
|
declare export const percentage: <T: PercentageValue = PercentageValue>(
|
|
193
193
|
value: NestedWithNumbers,
|
|
194
|
-
// $
|
|
194
|
+
// $FlowFixMe[method-unbinding]
|
|
195
195
|
) => Percentage<T>;
|
|
196
196
|
|
|
197
197
|
type NumberValue = number;
|
|
@@ -206,7 +206,7 @@ declare export class Num<+T: NumberValue>
|
|
|
206
206
|
}
|
|
207
207
|
declare export const number: <T: NumberValue = NumberValue>(
|
|
208
208
|
value: NestedWithNumbers,
|
|
209
|
-
// $
|
|
209
|
+
// $FlowFixMe[method-unbinding]
|
|
210
210
|
) => Num<T>;
|
|
211
211
|
|
|
212
212
|
type ResolutionValue = string | 0;
|
|
@@ -223,7 +223,7 @@ declare export class Resolution<+T: ResolutionValue>
|
|
|
223
223
|
}
|
|
224
224
|
declare export const resolution: <T: ResolutionValue = ResolutionValue>(
|
|
225
225
|
value: ValueWithDefault,
|
|
226
|
-
// $
|
|
226
|
+
// $FlowFixMe[method-unbinding]
|
|
227
227
|
) => Resolution<T>;
|
|
228
228
|
|
|
229
229
|
type TimeValue = string | 0;
|
|
@@ -238,7 +238,7 @@ declare export class Time<+T: TimeValue>
|
|
|
238
238
|
}
|
|
239
239
|
declare export const time: <T: TimeValue = TimeValue>(
|
|
240
240
|
value: ValueWithDefault,
|
|
241
|
-
// $
|
|
241
|
+
// $FlowFixMe[method-unbinding]
|
|
242
242
|
) => Time<T>;
|
|
243
243
|
|
|
244
244
|
type TransformFunctionValue = string;
|
|
@@ -257,7 +257,7 @@ declare export const transformFunction: <
|
|
|
257
257
|
T: TransformFunctionValue = TransformFunctionValue,
|
|
258
258
|
>(
|
|
259
259
|
value: ValueWithDefault,
|
|
260
|
-
// $
|
|
260
|
+
// $FlowFixMe[method-unbinding]
|
|
261
261
|
) => TransformFunction<T>;
|
|
262
262
|
|
|
263
263
|
type TransformListValue = string;
|
|
@@ -276,5 +276,5 @@ declare export const transformList: <
|
|
|
276
276
|
T: TransformListValue = TransformListValue,
|
|
277
277
|
>(
|
|
278
278
|
value: ValueWithDefault,
|
|
279
|
-
// $
|
|
279
|
+
// $FlowFixMe[method-unbinding]
|
|
280
280
|
) => TransformList<T>;
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type { NodePath } from '
|
|
10
|
+
import type { NodePath } from '@babel/traverse';
|
|
11
11
|
import type { CompiledNamespaces } from '../shared';
|
|
12
12
|
|
|
13
|
-
import * as t from '
|
|
13
|
+
import * as t from '@babel/types';
|
|
14
14
|
import StateManager from './state-manager';
|
|
15
15
|
|
|
16
16
|
/**
|
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type { ImportOptions } from '
|
|
11
|
-
import type { NodePath } from '
|
|
10
|
+
import type { ImportOptions } from '@babel/helper-module-imports';
|
|
11
|
+
import type { NodePath } from '@babel/traverse';
|
|
12
12
|
type ImportAdditionOptions = Omit<
|
|
13
13
|
Partial<ImportOptions>,
|
|
14
14
|
'ensureLiveReference' | 'ensureNoContext',
|
|
15
15
|
>;
|
|
16
16
|
|
|
17
|
-
import * as t from '
|
|
17
|
+
import * as t from '@babel/types';
|
|
18
18
|
|
|
19
19
|
declare export function hoistExpression(
|
|
20
20
|
path: NodePath<>,
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
* - It can handle object spreads when the spread value itself is statically evaluated.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
import type { NodePath } from '
|
|
24
|
+
import type { NodePath } from '@babel/traverse';
|
|
25
25
|
|
|
26
|
-
import * as t from '
|
|
26
|
+
import * as t from '@babel/types';
|
|
27
27
|
import StateManager from './state-manager';
|
|
28
28
|
export type FunctionConfig = {
|
|
29
29
|
identifiers: {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
import type { FlatCompiledStyles } from '../shared/common-types';
|
|
11
11
|
|
|
12
|
-
import * as t from '
|
|
12
|
+
import * as t from '@babel/types';
|
|
13
13
|
|
|
14
14
|
type NestedStringObject = $ReadOnly<{
|
|
15
15
|
[key: string]: string | number | null | boolean | NestedStringObject,
|
|
@@ -28,6 +28,19 @@ type ModuleResolution =
|
|
|
28
28
|
type: 'experimental_crossFileParsing';
|
|
29
29
|
rootDir?: string;
|
|
30
30
|
themeFileExtension?: null | undefined | string;
|
|
31
|
+
}>
|
|
32
|
+
| Readonly<{
|
|
33
|
+
type: 'custom';
|
|
34
|
+
themeFileExtension?: null | undefined | string;
|
|
35
|
+
filePathResolver: (
|
|
36
|
+
importPath: string,
|
|
37
|
+
sourceFilePath: string,
|
|
38
|
+
aliases:
|
|
39
|
+
| null
|
|
40
|
+
| undefined
|
|
41
|
+
| Readonly<{ [$$Key$$: string]: ReadonlyArray<string> }>,
|
|
42
|
+
) => string | void;
|
|
43
|
+
getCanonicalFilePath: (filePath: string) => string;
|
|
31
44
|
}>;
|
|
32
45
|
export type StyleXOptions = Readonly<
|
|
33
46
|
Omit<
|
|
@@ -158,36 +171,40 @@ declare class StateManager {
|
|
|
158
171
|
getCanonicalFilePath(filePath: string): string;
|
|
159
172
|
importPathResolver(importPath: string): ImportPathResolution;
|
|
160
173
|
addStyle(
|
|
161
|
-
style:
|
|
162
|
-
string,
|
|
163
|
-
(
|
|
164
|
-
| { ltr: string; rtl?: string | null }
|
|
165
|
-
| {
|
|
166
|
-
constKey: string;
|
|
167
|
-
constVal: string | number;
|
|
168
|
-
rtl?: string | null;
|
|
169
|
-
ltr: string;
|
|
170
|
-
}
|
|
171
|
-
),
|
|
172
|
-
number,
|
|
173
|
-
],
|
|
174
|
-
): void;
|
|
175
|
-
registerStyles(
|
|
176
|
-
styles: ReadonlyArray<
|
|
174
|
+
style: Readonly<
|
|
177
175
|
[
|
|
178
176
|
string,
|
|
179
177
|
(
|
|
180
|
-
| { ltr: string; rtl?: string | null }
|
|
181
|
-
| {
|
|
178
|
+
| Readonly<{ ltr: string; rtl?: string | null }>
|
|
179
|
+
| Readonly<{
|
|
182
180
|
constKey: string;
|
|
183
181
|
constVal: string | number;
|
|
184
182
|
rtl?: string | null;
|
|
185
183
|
ltr: string;
|
|
186
|
-
}
|
|
184
|
+
}>
|
|
187
185
|
),
|
|
188
186
|
number,
|
|
189
187
|
]
|
|
190
188
|
>,
|
|
189
|
+
): void;
|
|
190
|
+
registerStyles(
|
|
191
|
+
styles: ReadonlyArray<
|
|
192
|
+
Readonly<
|
|
193
|
+
[
|
|
194
|
+
string,
|
|
195
|
+
(
|
|
196
|
+
| Readonly<{ ltr: string; rtl?: string | null }>
|
|
197
|
+
| Readonly<{
|
|
198
|
+
constKey: string;
|
|
199
|
+
constVal: string | number;
|
|
200
|
+
rtl?: string | null;
|
|
201
|
+
ltr: string;
|
|
202
|
+
}>
|
|
203
|
+
),
|
|
204
|
+
number,
|
|
205
|
+
]
|
|
206
|
+
>
|
|
207
|
+
>,
|
|
191
208
|
path?: null | undefined | NodePath,
|
|
192
209
|
): void;
|
|
193
210
|
markComposedNamespace(
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type { PluginPass } from '
|
|
11
|
-
import type { NodePath } from '
|
|
10
|
+
import type { PluginPass } from '@babel/core';
|
|
11
|
+
import type { NodePath } from '@babel/traverse';
|
|
12
12
|
import type {
|
|
13
13
|
CompiledNamespaces,
|
|
14
14
|
StyleXOptions as RuntimeOptions,
|
|
15
15
|
} from '../shared';
|
|
16
|
-
import * as t from '
|
|
16
|
+
import * as t from '@babel/types';
|
|
17
17
|
export type ImportPathResolution =
|
|
18
18
|
| false
|
|
19
19
|
| ['themeNameRef' | 'filePath', string];
|
|
@@ -32,6 +32,16 @@ type ModuleResolution =
|
|
|
32
32
|
type: 'experimental_crossFileParsing',
|
|
33
33
|
rootDir?: string,
|
|
34
34
|
themeFileExtension?: ?string,
|
|
35
|
+
}>
|
|
36
|
+
| $ReadOnly<{
|
|
37
|
+
type: 'custom',
|
|
38
|
+
themeFileExtension?: ?string,
|
|
39
|
+
filePathResolver: (
|
|
40
|
+
importPath: string,
|
|
41
|
+
sourceFilePath: string,
|
|
42
|
+
aliases: ?$ReadOnly<{ [string]: $ReadOnlyArray<string> }>,
|
|
43
|
+
) => string | void,
|
|
44
|
+
getCanonicalFilePath: (filePath: string) => string,
|
|
35
45
|
}>;
|
|
36
46
|
|
|
37
47
|
export type StyleXOptions = $ReadOnly<{
|
|
@@ -110,36 +120,40 @@ declare export default class StateManager {
|
|
|
110
120
|
getCanonicalFilePath(filePath: string): string;
|
|
111
121
|
importPathResolver(importPath: string): ImportPathResolution;
|
|
112
122
|
addStyle(
|
|
113
|
-
style:
|
|
114
|
-
string,
|
|
115
|
-
(
|
|
116
|
-
| { ltr: string, rtl?: string | null }
|
|
117
|
-
| {
|
|
118
|
-
constKey: string,
|
|
119
|
-
constVal: string | number,
|
|
120
|
-
rtl?: string | null,
|
|
121
|
-
ltr: string,
|
|
122
|
-
}
|
|
123
|
-
),
|
|
124
|
-
number,
|
|
125
|
-
],
|
|
126
|
-
): void;
|
|
127
|
-
registerStyles(
|
|
128
|
-
styles: $ReadOnlyArray<
|
|
123
|
+
style: $ReadOnly<
|
|
129
124
|
[
|
|
130
125
|
string,
|
|
131
126
|
(
|
|
132
|
-
| { ltr: string, rtl?: string | null }
|
|
133
|
-
| {
|
|
127
|
+
| $ReadOnly<{ ltr: string, rtl?: string | null }>
|
|
128
|
+
| $ReadOnly<{
|
|
134
129
|
constKey: string,
|
|
135
130
|
constVal: string | number,
|
|
136
131
|
rtl?: string | null,
|
|
137
132
|
ltr: string,
|
|
138
|
-
}
|
|
133
|
+
}>
|
|
139
134
|
),
|
|
140
135
|
number,
|
|
141
136
|
],
|
|
142
137
|
>,
|
|
138
|
+
): void;
|
|
139
|
+
registerStyles(
|
|
140
|
+
styles: $ReadOnlyArray<
|
|
141
|
+
$ReadOnly<
|
|
142
|
+
[
|
|
143
|
+
string,
|
|
144
|
+
(
|
|
145
|
+
| $ReadOnly<{ ltr: string, rtl?: string | null }>
|
|
146
|
+
| $ReadOnly<{
|
|
147
|
+
constKey: string,
|
|
148
|
+
constVal: string | number,
|
|
149
|
+
rtl?: string | null,
|
|
150
|
+
ltr: string,
|
|
151
|
+
}>
|
|
152
|
+
),
|
|
153
|
+
number,
|
|
154
|
+
],
|
|
155
|
+
>,
|
|
156
|
+
>,
|
|
143
157
|
path?: ?NodePath<>,
|
|
144
158
|
): void;
|
|
145
159
|
markComposedNamespace(
|
package/lib/utils/validate.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export declare const string: PrimitiveChecker<string>;
|
|
|
22
22
|
export declare const nullish: PrimitiveChecker<null | void>;
|
|
23
23
|
export declare const boolean: PrimitiveChecker<boolean>;
|
|
24
24
|
export declare const number: PrimitiveChecker<number>;
|
|
25
|
+
export declare const func: <T extends Function>(msg?: Msg) => Check<T>;
|
|
25
26
|
export declare const literal: <T extends string | number | boolean>(
|
|
26
27
|
$$PARAM_0$$: T,
|
|
27
28
|
msg?: Msg,
|