@tamagui/static 1.1.8 → 1.1.10
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/dist/{constants.js → cjs/constants.js} +4 -0
- package/dist/{constants.js.map → cjs/constants.js.map} +2 -2
- package/dist/{extractor → cjs/extractor}/accessSafe.js +7 -0
- package/dist/cjs/extractor/accessSafe.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/babelParse.js +4 -0
- package/dist/cjs/extractor/babelParse.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/buildClassName.js +9 -1
- package/dist/cjs/extractor/buildClassName.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/bundle.js +7 -3
- package/dist/cjs/extractor/bundle.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/createEvaluator.js +4 -0
- package/dist/cjs/extractor/createEvaluator.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/createExtractor.js +34 -6
- package/dist/cjs/extractor/createExtractor.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/ensureImportingConcat.js +4 -0
- package/dist/cjs/extractor/ensureImportingConcat.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/evaluateAstNode.js +4 -0
- package/dist/cjs/extractor/evaluateAstNode.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/extractHelpers.js +8 -1
- package/dist/cjs/extractor/extractHelpers.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/extractMediaStyle.js +4 -0
- package/dist/cjs/extractor/extractMediaStyle.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/extractToClassNames.js +6 -3
- package/dist/cjs/extractor/extractToClassNames.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/findTopmostFunction.js +0 -0
- package/dist/{extractor → cjs/extractor}/findTopmostFunction.js.map +1 -1
- package/dist/{extractor → cjs/extractor}/generatedUid.js +4 -0
- package/dist/cjs/extractor/generatedUid.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/getPrefixLogs.js +0 -0
- package/dist/{extractor → cjs/extractor}/getPrefixLogs.js.map +1 -1
- package/dist/{extractor → cjs/extractor}/getPropValueFromAttributes.js +8 -1
- package/dist/cjs/extractor/getPropValueFromAttributes.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/getSourceModule.js +9 -1
- package/dist/cjs/extractor/getSourceModule.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/getStaticBindingsForScope.js +4 -0
- package/dist/cjs/extractor/getStaticBindingsForScope.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/hoistClassNames.js +5 -0
- package/dist/cjs/extractor/hoistClassNames.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/literalToAst.js +5 -0
- package/dist/cjs/extractor/literalToAst.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/loadFile.js +0 -0
- package/dist/{extractor → cjs/extractor}/loadFile.js.map +1 -1
- package/dist/{extractor → cjs/extractor}/loadTamagui.js +12 -5
- package/dist/cjs/extractor/loadTamagui.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/logLines.js +0 -0
- package/dist/{extractor → cjs/extractor}/logLines.js.map +2 -2
- package/dist/{extractor → cjs/extractor}/normalizeTernaries.js +4 -0
- package/dist/cjs/extractor/normalizeTernaries.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/removeUnusedHooks.js +4 -0
- package/dist/cjs/extractor/removeUnusedHooks.js.map +7 -0
- package/dist/{extractor → cjs/extractor}/timer.js +0 -0
- package/dist/{extractor → cjs/extractor}/timer.js.map +1 -1
- package/dist/{extractor → cjs/extractor}/validHTMLAttributes.js +0 -0
- package/dist/{extractor → cjs/extractor}/validHTMLAttributes.js.map +1 -1
- package/dist/{getPragmaOptions.js → cjs/getPragmaOptions.js} +0 -0
- package/dist/{getPragmaOptions.js.map → cjs/getPragmaOptions.js.map} +2 -2
- package/dist/{helpers → cjs/helpers}/memoize.js +0 -0
- package/dist/{helpers → cjs/helpers}/memoize.js.map +2 -2
- package/dist/{index.js → cjs/index.js} +0 -0
- package/dist/{index.js.map → cjs/index.js.map} +1 -1
- package/dist/{require.js → cjs/require.js} +2 -1
- package/dist/{require.js.map → cjs/require.js.map} +2 -2
- package/dist/{types.js → cjs/types.js} +0 -0
- package/dist/cjs/types.js.map +7 -0
- package/dist/{webpackPlugin.js → cjs/webpackPlugin.js} +0 -0
- package/dist/{webpackPlugin.js.map → cjs/webpackPlugin.js.map} +1 -1
- package/dist/esm/constants.js +15 -0
- package/dist/esm/constants.js.map +7 -0
- package/dist/esm/extractor/accessSafe.js +19 -0
- package/dist/{extractor → esm/extractor}/accessSafe.js.map +2 -2
- package/dist/esm/extractor/babelParse.js +32 -0
- package/dist/{extractor → esm/extractor}/babelParse.js.map +2 -2
- package/dist/esm/extractor/buildClassName.js +65 -0
- package/dist/{extractor → esm/extractor}/buildClassName.js.map +2 -2
- package/dist/esm/extractor/bundle.js +86 -0
- package/dist/esm/extractor/bundle.js.map +7 -0
- package/dist/esm/extractor/createEvaluator.js +52 -0
- package/dist/esm/extractor/createEvaluator.js.map +7 -0
- package/dist/esm/extractor/createExtractor.js +1612 -0
- package/dist/esm/extractor/createExtractor.js.map +7 -0
- package/dist/esm/extractor/ensureImportingConcat.js +31 -0
- package/dist/{extractor → esm/extractor}/ensureImportingConcat.js.map +2 -2
- package/dist/esm/extractor/evaluateAstNode.js +97 -0
- package/dist/{extractor → esm/extractor}/evaluateAstNode.js.map +2 -2
- package/dist/esm/extractor/extractHelpers.js +162 -0
- package/dist/esm/extractor/extractHelpers.js.map +7 -0
- package/dist/esm/extractor/extractMediaStyle.js +159 -0
- package/dist/{extractor → esm/extractor}/extractMediaStyle.js.map +2 -2
- package/dist/esm/extractor/extractToClassNames.js +381 -0
- package/dist/esm/extractor/extractToClassNames.js.map +7 -0
- package/dist/esm/extractor/findTopmostFunction.js +20 -0
- package/dist/esm/extractor/findTopmostFunction.js.map +7 -0
- package/dist/esm/extractor/generatedUid.js +26 -0
- package/dist/{extractor → esm/extractor}/generatedUid.js.map +2 -2
- package/dist/esm/extractor/getPrefixLogs.js +8 -0
- package/dist/esm/extractor/getPrefixLogs.js.map +7 -0
- package/dist/esm/extractor/getPropValueFromAttributes.js +56 -0
- package/dist/{extractor → esm/extractor}/getPropValueFromAttributes.js.map +4 -4
- package/dist/esm/extractor/getSourceModule.js +70 -0
- package/dist/{extractor → esm/extractor}/getSourceModule.js.map +2 -2
- package/dist/esm/extractor/getStaticBindingsForScope.js +191 -0
- package/dist/{extractor → esm/extractor}/getStaticBindingsForScope.js.map +2 -2
- package/dist/esm/extractor/hoistClassNames.js +41 -0
- package/dist/{extractor → esm/extractor}/hoistClassNames.js.map +2 -2
- package/dist/esm/extractor/literalToAst.js +81 -0
- package/dist/{extractor → esm/extractor}/literalToAst.js.map +2 -2
- package/dist/esm/extractor/loadFile.js +20 -0
- package/dist/esm/extractor/loadFile.js.map +7 -0
- package/dist/esm/extractor/loadTamagui.js +411 -0
- package/dist/esm/extractor/loadTamagui.js.map +7 -0
- package/dist/esm/extractor/logLines.js +20 -0
- package/dist/esm/extractor/logLines.js.map +7 -0
- package/dist/esm/extractor/normalizeTernaries.js +52 -0
- package/dist/esm/extractor/normalizeTernaries.js.map +7 -0
- package/dist/esm/extractor/removeUnusedHooks.js +76 -0
- package/dist/{extractor → esm/extractor}/removeUnusedHooks.js.map +2 -2
- package/dist/esm/extractor/timer.js +29 -0
- package/dist/esm/extractor/timer.js.map +7 -0
- package/dist/esm/extractor/validHTMLAttributes.js +102 -0
- package/dist/esm/extractor/validHTMLAttributes.js.map +7 -0
- package/dist/esm/getPragmaOptions.js +44 -0
- package/dist/esm/getPragmaOptions.js.map +7 -0
- package/dist/esm/helpers/memoize.js +22 -0
- package/dist/esm/helpers/memoize.js.map +7 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/require.js +61 -0
- package/dist/esm/require.js.map +7 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +7 -0
- package/dist/esm/webpackPlugin.js +11 -0
- package/dist/esm/webpackPlugin.js.map +7 -0
- package/package.json +18 -18
- package/src/extractor/bundle.ts +2 -2
- package/src/extractor/createEvaluator.ts +1 -0
- package/src/extractor/createExtractor.ts +1 -0
- package/src/extractor/extractHelpers.ts +14 -5
- package/src/extractor/extractToClassNames.ts +2 -2
- package/src/extractor/getPropValueFromAttributes.ts +4 -1
- package/src/extractor/loadTamagui.ts +12 -7
- package/src/extractor/normalizeTernaries.ts +1 -0
- package/src/types.ts +7 -4
- package/types/extractor/bundle.d.ts +2 -2
- package/types/extractor/createExtractor.d.ts +1 -1
- package/types/extractor/extractHelpers.d.ts +2 -6
- package/types/extractor/getPrefixLogs.d.ts +1 -1
- package/types/types.d.ts +3 -3
- package/dist/extractor/bundle.js.map +0 -7
- package/dist/extractor/createEvaluator.js.map +0 -7
- package/dist/extractor/createExtractor.js.map +0 -7
- package/dist/extractor/extractHelpers.js.map +0 -7
- package/dist/extractor/extractToClassNames.js.map +0 -7
- package/dist/extractor/loadTamagui.js.map +0 -7
- package/dist/extractor/normalizeTernaries.js.map +0 -7
- package/dist/types.js.map +0 -7
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../src/constants.ts"],
|
|
4
4
|
"sourcesContent": ["import findCacheDir from 'find-cache-dir'\n\nexport const CSS_FILE_NAME = '__snack.css'\n\n// ENSURE THIS ISNT THE SAME AS THE SEPARATOR USED FOR STYLE KEYS\nexport const MEDIA_SEP = '_'\n\n// ensure cache dir\nexport const cacheDir = findCacheDir({ name: 'tamagui', create: true })\n\nexport const FAILED_EVAL = Symbol('failed_style_eval')\n\nexport const SHOULD_DEBUG = process.env.DEBUG === '*' || process.env.DEBUG?.startsWith('tamagui')\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAyB;AAAzB;AAEO,MAAM,gBAAgB;AAGtB,MAAM,YAAY;AAGlB,MAAM,eAAW,sBAAAA,SAAa,EAAE,MAAM,WAAW,QAAQ,KAAK,CAAC;AAE/D,MAAM,cAAc,OAAO,mBAAmB;AAE9C,MAAM,eAAe,QAAQ,IAAI,UAAU,SAAO,aAAQ,IAAI,UAAZ,mBAAmB,WAAW;",
|
|
6
6
|
"names": ["findCacheDir"]
|
|
7
7
|
}
|
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -33,9 +37,12 @@ function accessSafe(obj, member) {
|
|
|
33
37
|
"&&",
|
|
34
38
|
t.logicalExpression(
|
|
35
39
|
"&&",
|
|
40
|
+
// typeof obj === 'object
|
|
36
41
|
t.binaryExpression("===", t.unaryExpression("typeof", obj), t.stringLiteral("object")),
|
|
42
|
+
// obj !== null
|
|
37
43
|
t.binaryExpression("!==", obj, t.nullLiteral())
|
|
38
44
|
),
|
|
45
|
+
// obj.member
|
|
39
46
|
t.memberExpression(obj, t.identifier(member), false)
|
|
40
47
|
);
|
|
41
48
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extractor/accessSafe.ts"],
|
|
4
|
+
"sourcesContent": ["import * as t from '@babel/types'\n\n// accessSafe wraps memberExpressions in object/null checks\n// TODO: inject this as a function? this gets pretty repetitive\nexport function accessSafe(obj: t.Expression, member: string): t.LogicalExpression {\n return t.logicalExpression(\n '&&',\n t.logicalExpression(\n '&&',\n // typeof obj === 'object\n t.binaryExpression('===', t.unaryExpression('typeof', obj), t.stringLiteral('object')),\n // obj !== null\n t.binaryExpression('!==', obj, t.nullLiteral())\n ),\n // obj.member\n t.memberExpression(obj, t.identifier(member), false)\n )\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAmB;AAIZ,SAAS,WAAW,KAAmB,QAAqC;AACjF,SAAO,EAAE;AAAA,IACP;AAAA,IACA,EAAE;AAAA,MACA;AAAA;AAAA,MAEA,EAAE,iBAAiB,OAAO,EAAE,gBAAgB,UAAU,GAAG,GAAG,EAAE,cAAc,QAAQ,CAAC;AAAA;AAAA,MAErF,EAAE,iBAAiB,OAAO,KAAK,EAAE,YAAY,CAAC;AAAA,IAChD;AAAA;AAAA,IAEA,EAAE,iBAAiB,KAAK,EAAE,WAAW,MAAM,GAAG,KAAK;AAAA,EACrD;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extractor/babelParse.ts"],
|
|
4
|
+
"sourcesContent": ["import * as babelParser from '@babel/parser'\nimport * as t from '@babel/types'\n\nconst plugins: babelParser.ParserPlugin[] = [\n 'asyncGenerators',\n 'classProperties',\n 'dynamicImport',\n 'functionBind',\n 'jsx',\n 'numericSeparator',\n 'objectRestSpread',\n 'optionalCatchBinding',\n 'decorators-legacy',\n 'typescript',\n 'optionalChaining',\n 'nullishCoalescingOperator',\n]\n\nexport const parserOptions: babelParser.ParserOptions = Object.freeze({\n plugins,\n sourceType: 'module',\n})\n\nconst parser = babelParser.parse.bind(babelParser)\n\nexport function babelParse(code: string | Buffer): t.File {\n try {\n return parser(code.toString(), parserOptions) as any\n } catch (err) {\n throw new Error(`Error parsing babel: ${err} in code`)\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA6B;AAG7B,MAAM,UAAsC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,MAAM,gBAA2C,OAAO,OAAO;AAAA,EACpE;AAAA,EACA,YAAY;AACd,CAAC;AAED,MAAM,SAAS,YAAY,MAAM,KAAK,WAAW;AAE1C,SAAS,WAAW,MAA+B;AACxD,MAAI;AACF,WAAO,OAAO,KAAK,SAAS,GAAG,aAAa;AAAA,EAC9C,SAAS,KAAP;AACA,UAAM,IAAI,MAAM,wBAAwB,aAAa;AAAA,EACvD;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -43,7 +47,11 @@ const buildClassName = (objectsIn, extras = "") => {
|
|
|
43
47
|
const buildClassNameLogic = (objects) => {
|
|
44
48
|
return objects.reduce((acc, val) => {
|
|
45
49
|
if (acc == null) {
|
|
46
|
-
if (
|
|
50
|
+
if (
|
|
51
|
+
// pass conditional expressions through
|
|
52
|
+
t.isConditionalExpression(val) || // pass non-null literals through
|
|
53
|
+
t.isStringLiteral(val) || t.isNumericLiteral(val)
|
|
54
|
+
) {
|
|
47
55
|
return val;
|
|
48
56
|
}
|
|
49
57
|
return t.logicalExpression("||", val, t.stringLiteral(""));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extractor/buildClassName.ts"],
|
|
4
|
+
"sourcesContent": ["import * as t from '@babel/types'\n\nimport type { ClassNameObject } from '../types.js'\n\ntype Builder = (\n objects: ClassNameObject[],\n extras?: string\n) => t.Expression | t.StringLiteral | null\n\nexport const buildClassName: Builder = (objectsIn, extras = '') => {\n let objects = buildClassNameLogic(objectsIn)\n if (!objects) return null\n if (t.isStringLiteral(objects)) {\n // objects.value = objects.value\n objects.value = `${extras} ${objects.value}`\n } else {\n objects = t.binaryExpression('+', t.stringLiteral(extras), objects)\n }\n return objects\n}\n\nexport const buildClassNameLogic: Builder = (objects) => {\n return objects.reduce<t.Expression | null>((acc, val) => {\n if (acc == null) {\n if (\n // pass conditional expressions through\n t.isConditionalExpression(val) ||\n // pass non-null literals through\n t.isStringLiteral(val) ||\n t.isNumericLiteral(val)\n ) {\n return val\n }\n return t.logicalExpression('||', val, t.stringLiteral(''))\n }\n\n let inner: t.Expression\n if (t.isStringLiteral(val)) {\n if (t.isStringLiteral(acc)) {\n // join adjacent string literals\n return t.stringLiteral(`${acc.value} ${val.value}`)\n }\n inner = t.stringLiteral(` ${val.value}`)\n } else if (t.isLiteral(val)) {\n inner = t.binaryExpression('+', t.stringLiteral(' '), val)\n } else if (t.isConditionalExpression(val) || t.isBinaryExpression(val)) {\n if (t.isStringLiteral(acc)) {\n return t.binaryExpression('+', t.stringLiteral(`${acc.value} `), val)\n }\n inner = t.binaryExpression('+', t.stringLiteral(' '), val)\n } else if (t.isIdentifier(val) || t.isMemberExpression(val)) {\n // identifiers and member expressions make for reasonable ternaries\n inner = t.conditionalExpression(\n val,\n t.binaryExpression('+', t.stringLiteral(' '), val),\n t.stringLiteral('')\n )\n } else {\n if (t.isStringLiteral(acc)) {\n return t.binaryExpression(\n '+',\n t.stringLiteral(`${acc.value} `),\n t.logicalExpression('||', val, t.stringLiteral(''))\n )\n }\n // use a logical expression for more complex prop values\n inner = t.binaryExpression(\n '+',\n t.stringLiteral(' '),\n t.logicalExpression('||', val, t.stringLiteral(''))\n )\n }\n\n return t.binaryExpression('+', acc, inner)\n }, null)\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAmB;AASZ,MAAM,iBAA0B,CAAC,WAAW,SAAS,OAAO;AACjE,MAAI,UAAU,oBAAoB,SAAS;AAC3C,MAAI,CAAC;AAAS,WAAO;AACrB,MAAI,EAAE,gBAAgB,OAAO,GAAG;AAE9B,YAAQ,QAAQ,GAAG,UAAU,QAAQ;AAAA,EACvC,OAAO;AACL,cAAU,EAAE,iBAAiB,KAAK,EAAE,cAAc,MAAM,GAAG,OAAO;AAAA,EACpE;AACA,SAAO;AACT;AAEO,MAAM,sBAA+B,CAAC,YAAY;AACvD,SAAO,QAAQ,OAA4B,CAAC,KAAK,QAAQ;AACvD,QAAI,OAAO,MAAM;AACf;AAAA;AAAA,QAEE,EAAE,wBAAwB,GAAG;AAAA,QAE7B,EAAE,gBAAgB,GAAG,KACrB,EAAE,iBAAiB,GAAG;AAAA,QACtB;AACA,eAAO;AAAA,MACT;AACA,aAAO,EAAE,kBAAkB,MAAM,KAAK,EAAE,cAAc,EAAE,CAAC;AAAA,IAC3D;AAEA,QAAI;AACJ,QAAI,EAAE,gBAAgB,GAAG,GAAG;AAC1B,UAAI,EAAE,gBAAgB,GAAG,GAAG;AAE1B,eAAO,EAAE,cAAc,GAAG,IAAI,SAAS,IAAI,OAAO;AAAA,MACpD;AACA,cAAQ,EAAE,cAAc,IAAI,IAAI,OAAO;AAAA,IACzC,WAAW,EAAE,UAAU,GAAG,GAAG;AAC3B,cAAQ,EAAE,iBAAiB,KAAK,EAAE,cAAc,GAAG,GAAG,GAAG;AAAA,IAC3D,WAAW,EAAE,wBAAwB,GAAG,KAAK,EAAE,mBAAmB,GAAG,GAAG;AACtE,UAAI,EAAE,gBAAgB,GAAG,GAAG;AAC1B,eAAO,EAAE,iBAAiB,KAAK,EAAE,cAAc,GAAG,IAAI,QAAQ,GAAG,GAAG;AAAA,MACtE;AACA,cAAQ,EAAE,iBAAiB,KAAK,EAAE,cAAc,GAAG,GAAG,GAAG;AAAA,IAC3D,WAAW,EAAE,aAAa,GAAG,KAAK,EAAE,mBAAmB,GAAG,GAAG;AAE3D,cAAQ,EAAE;AAAA,QACR;AAAA,QACA,EAAE,iBAAiB,KAAK,EAAE,cAAc,GAAG,GAAG,GAAG;AAAA,QACjD,EAAE,cAAc,EAAE;AAAA,MACpB;AAAA,IACF,OAAO;AACL,UAAI,EAAE,gBAAgB,GAAG,GAAG;AAC1B,eAAO,EAAE;AAAA,UACP;AAAA,UACA,EAAE,cAAc,GAAG,IAAI,QAAQ;AAAA,UAC/B,EAAE,kBAAkB,MAAM,KAAK,EAAE,cAAc,EAAE,CAAC;AAAA,QACpD;AAAA,MACF;AAEA,cAAQ,EAAE;AAAA,QACR;AAAA,QACA,EAAE,cAAc,GAAG;AAAA,QACnB,EAAE,kBAAkB,MAAM,KAAK,EAAE,cAAc,EAAE,CAAC;AAAA,MACpD;AAAA,IACF;AAEA,WAAO,EAAE,iBAAiB,KAAK,KAAK,KAAK;AAAA,EAC3C,GAAG,IAAI;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -31,14 +35,14 @@ module.exports = __toCommonJS(bundle_exports);
|
|
|
31
35
|
var import_path = require("path");
|
|
32
36
|
var import_esbuild = __toESM(require("esbuild"));
|
|
33
37
|
var import_fs_extra = require("fs-extra");
|
|
34
|
-
var import_loadTamagui = require("./loadTamagui");
|
|
38
|
+
var import_loadTamagui = require("./loadTamagui.js");
|
|
35
39
|
function getESBuildConfig({ entryPoints, resolvePlatformSpecificEntries, ...options }, aliases) {
|
|
36
40
|
var _a;
|
|
37
41
|
const alias = require("@tamagui/core-node").aliasPlugin;
|
|
38
42
|
if ((_a = process.env.DEBUG) == null ? void 0 : _a.startsWith("tamagui")) {
|
|
39
43
|
console.log(`Building`, entryPoints);
|
|
40
44
|
}
|
|
41
|
-
const tsconfig = (0, import_path.join)(__dirname, "..", "..", "tamagui.tsconfig.json");
|
|
45
|
+
const tsconfig = (0, import_path.join)(__dirname, "..", "..", "..", "tamagui.tsconfig.json");
|
|
42
46
|
const resolvedEntryPoints = !resolvePlatformSpecificEntries ? entryPoints : entryPoints.map(import_loadTamagui.resolveWebOrNativeSpecificEntry);
|
|
43
47
|
const res = {
|
|
44
48
|
bundle: true,
|
|
@@ -93,7 +97,7 @@ async function asyncLock(props) {
|
|
|
93
97
|
const lockFile = (0, import_path.join)((0, import_path.dirname)(props.outfile), (0, import_path.basename)(props.outfile, ".lock"));
|
|
94
98
|
const lockStat = await (0, import_fs_extra.stat)(lockFile).catch(() => {
|
|
95
99
|
});
|
|
96
|
-
const lockedMsAgo = !lockStat ? Infinity : new Date().getTime() - new Date(lockStat.mtime).getTime();
|
|
100
|
+
const lockedMsAgo = !lockStat ? Infinity : (/* @__PURE__ */ new Date()).getTime() - new Date(lockStat.mtime).getTime();
|
|
97
101
|
if (lockedMsAgo < 500) {
|
|
98
102
|
if ((_a = process.env.DEBUG) == null ? void 0 : _a.startsWith("tamagui")) {
|
|
99
103
|
console.log(`Waiting for existing build`, props.entryPoints);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extractor/bundle.ts"],
|
|
4
|
+
"sourcesContent": ["import { basename, dirname, join } from 'path'\n\nimport esbuild from 'esbuild'\nimport { pathExists, stat, writeFile } from 'fs-extra'\n\nimport { resolveWebOrNativeSpecificEntry } from './loadTamagui.js'\n\n/**\n * For internal loading of new files\n */\n\ntype Props = Omit<Partial<esbuild.BuildOptions>, 'entryPoints'> & {\n outfile: string\n entryPoints: string[]\n resolvePlatformSpecificEntries?: boolean\n}\n\nfunction getESBuildConfig(\n { entryPoints, resolvePlatformSpecificEntries, ...options }: Props,\n aliases?: Record<string, string>\n) {\n const alias = require('@tamagui/core-node').aliasPlugin\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log(`Building`, entryPoints)\n }\n const tsconfig = join(__dirname, '..', '..', '..', 'tamagui.tsconfig.json')\n\n const resolvedEntryPoints = !resolvePlatformSpecificEntries\n ? entryPoints\n : entryPoints.map(resolveWebOrNativeSpecificEntry)\n\n const res: esbuild.BuildOptions = {\n bundle: true,\n entryPoints: resolvedEntryPoints,\n format: 'cjs',\n target: 'node18',\n jsx: 'transform',\n jsxFactory: 'react',\n allowOverwrite: true,\n keepNames: true,\n platform: 'node',\n tsconfig,\n loader: {\n '.js': 'jsx',\n },\n logLevel: 'warning',\n plugins: [\n {\n name: 'external',\n setup(build) {\n build.onResolve({ filter: /@tamagui\\/core/ }, (args) => {\n return {\n path: '@tamagui/core-node',\n external: true,\n }\n })\n\n build.onResolve({ filter: /^(react-native|react-native\\/.*)$/ }, (args) => {\n return {\n path: 'react-native-web-lite',\n external: true,\n }\n })\n },\n },\n alias({\n ...aliases,\n }),\n ],\n ...options,\n }\n\n return res\n}\n\nexport async function bundle(props: Props, aliases?: Record<string, string>) {\n await asyncLock(props)\n return esbuild.build(getESBuildConfig(props, aliases))\n}\n\nexport function bundleSync(props: Props, aliases?: Record<string, string>) {\n return esbuild.buildSync(getESBuildConfig(props, aliases))\n}\n\n// until i do fancier things w plugins:\nasync function asyncLock(props: Props) {\n const lockFile = join(dirname(props.outfile), basename(props.outfile, '.lock'))\n const lockStat = await stat(lockFile).catch(() => {\n /* ok */\n })\n const lockedMsAgo = !lockStat\n ? Infinity\n : new Date().getTime() - new Date(lockStat.mtime).getTime()\n if (lockedMsAgo < 500) {\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log(`Waiting for existing build`, props.entryPoints)\n }\n let tries = 5\n while (tries--) {\n if (await pathExists(props.outfile)) {\n return\n } else {\n await new Promise((res) => setTimeout(res, 50))\n }\n }\n }\n void writeFile(lockFile, '')\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwC;AAExC,qBAAoB;AACpB,sBAA4C;AAE5C,yBAAgD;AAYhD,SAAS,iBACP,EAAE,aAAa,gCAAgC,GAAG,QAAQ,GAC1D,SACA;AApBF;AAqBE,QAAM,QAAQ,QAAQ,oBAAoB,EAAE;AAC5C,OAAI,aAAQ,IAAI,UAAZ,mBAAmB,WAAW,YAAY;AAE5C,YAAQ,IAAI,YAAY,WAAW;AAAA,EACrC;AACA,QAAM,eAAW,kBAAK,WAAW,MAAM,MAAM,MAAM,uBAAuB;AAE1E,QAAM,sBAAsB,CAAC,iCACzB,cACA,YAAY,IAAI,kDAA+B;AAEnD,QAAM,MAA4B;AAAA,IAChC,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,UAAU;AAAA,IACV;AAAA,IACA,QAAQ;AAAA,MACN,OAAO;AAAA,IACT;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,MACP;AAAA,QACE,MAAM;AAAA,QACN,MAAM,OAAO;AACX,gBAAM,UAAU,EAAE,QAAQ,iBAAiB,GAAG,CAAC,SAAS;AACtD,mBAAO;AAAA,cACL,MAAM;AAAA,cACN,UAAU;AAAA,YACZ;AAAA,UACF,CAAC;AAED,gBAAM,UAAU,EAAE,QAAQ,oCAAoC,GAAG,CAAC,SAAS;AACzE,mBAAO;AAAA,cACL,MAAM;AAAA,cACN,UAAU;AAAA,YACZ;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,MACA,MAAM;AAAA,QACJ,GAAG;AAAA,MACL,CAAC;AAAA,IACH;AAAA,IACA,GAAG;AAAA,EACL;AAEA,SAAO;AACT;AAEA,eAAsB,OAAO,OAAc,SAAkC;AAC3E,QAAM,UAAU,KAAK;AACrB,SAAO,eAAAA,QAAQ,MAAM,iBAAiB,OAAO,OAAO,CAAC;AACvD;AAEO,SAAS,WAAW,OAAc,SAAkC;AACzE,SAAO,eAAAA,QAAQ,UAAU,iBAAiB,OAAO,OAAO,CAAC;AAC3D;AAGA,eAAe,UAAU,OAAc;AAtFvC;AAuFE,QAAM,eAAW,sBAAK,qBAAQ,MAAM,OAAO,OAAG,sBAAS,MAAM,SAAS,OAAO,CAAC;AAC9E,QAAM,WAAW,UAAM,sBAAK,QAAQ,EAAE,MAAM,MAAM;AAAA,EAElD,CAAC;AACD,QAAM,cAAc,CAAC,WACjB,YACA,oBAAI,KAAK,GAAE,QAAQ,IAAI,IAAI,KAAK,SAAS,KAAK,EAAE,QAAQ;AAC5D,MAAI,cAAc,KAAK;AACrB,SAAI,aAAQ,IAAI,UAAZ,mBAAmB,WAAW,YAAY;AAE5C,cAAQ,IAAI,8BAA8B,MAAM,WAAW;AAAA,IAC7D;AACA,QAAI,QAAQ;AACZ,WAAO,SAAS;AACd,UAAI,UAAM,4BAAW,MAAM,OAAO,GAAG;AACnC;AAAA,MACF,OAAO;AACL,cAAM,IAAI,QAAQ,CAAC,QAAQ,WAAW,KAAK,EAAE,CAAC;AAAA,MAChD;AAAA,IACF;AAAA,EACF;AACA,WAAK,2BAAU,UAAU,EAAE;AAC7B;",
|
|
6
|
+
"names": ["esbuild"]
|
|
7
|
+
}
|
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extractor/createEvaluator.ts"],
|
|
4
|
+
"sourcesContent": ["import vm from 'vm'\n\nimport generate from '@babel/generator'\nimport { NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\nimport { createCSSVariable } from '@tamagui/core-node'\nimport esbuild from 'esbuild'\n\nimport { FAILED_EVAL } from '../constants.js'\nimport { TamaguiOptionsWithFileInfo } from '../types.js'\nimport { evaluateAstNode } from './evaluateAstNode.js'\nimport { isValidThemeHook } from './extractHelpers.js'\n\nexport function createEvaluator({\n props,\n staticNamespace,\n sourcePath,\n traversePath,\n shouldPrintDebug,\n}: {\n props: TamaguiOptionsWithFileInfo\n staticNamespace: Record<string, any>\n sourcePath?: string\n traversePath?: NodePath<t.JSXElement>\n shouldPrintDebug: boolean | 'verbose'\n}) {\n // called when evaluateAstNode encounters a dynamic-looking prop\n const evalFn = (n: t.Node) => {\n // themes\n if (\n t.isMemberExpression(n) &&\n t.isIdentifier(n.property) &&\n traversePath &&\n isValidThemeHook(props, traversePath, n, sourcePath)\n ) {\n const key = n.property.name\n if (shouldPrintDebug) {\n // eslint-disable-next-line no-console\n console.log(' > found theme prop', key)\n }\n return createCSSVariable(key)\n }\n // variable\n if (t.isIdentifier(n) && typeof staticNamespace[n.name] !== 'undefined') {\n return staticNamespace[n.name]\n }\n const evalContext = vm.createContext(staticNamespace)\n // @ts-ignore\n const codeWithTypescriptAnnotations = `(${generate(n as any).code})`\n const code = esbuild\n .transformSync(codeWithTypescriptAnnotations, { loader: 'tsx' })\n .code.replace(/;\\n$/, '')\n\n if (shouldPrintDebug) {\n // eslint-disable-next-line no-console\n console.log('evaluating', code)\n }\n return vm.runInContext(code, evalContext)\n }\n\n return (n: t.Node) => {\n return evaluateAstNode(n, evalFn)\n }\n}\n\nexport function createSafeEvaluator(attemptEval: (n: t.Node) => any) {\n return (n: t.Node) => {\n try {\n return attemptEval(n)\n } catch (err) {\n return FAILED_EVAL\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AAEf,uBAAqB;AAErB,QAAmB;AACnB,uBAAkC;AAClC,qBAAoB;AAEpB,uBAA4B;AAE5B,6BAAgC;AAChC,4BAAiC;AAE1B,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMG;AAED,QAAM,SAAS,CAAC,MAAc;AAE5B,QACE,EAAE,mBAAmB,CAAC,KACtB,EAAE,aAAa,EAAE,QAAQ,KACzB,oBACA,wCAAiB,OAAO,cAAc,GAAG,UAAU,GACnD;AACA,YAAM,MAAM,EAAE,SAAS;AACvB,UAAI,kBAAkB;AAEpB,gBAAQ,IAAI,0BAA0B,GAAG;AAAA,MAC3C;AACA,iBAAO,oCAAkB,GAAG;AAAA,IAC9B;AAEA,QAAI,EAAE,aAAa,CAAC,KAAK,OAAO,gBAAgB,EAAE,IAAI,MAAM,aAAa;AACvE,aAAO,gBAAgB,EAAE,IAAI;AAAA,IAC/B;AACA,UAAM,cAAc,UAAAA,QAAG,cAAc,eAAe;AAEpD,UAAM,gCAAgC,QAAI,iBAAAC,SAAS,CAAQ,EAAE;AAC7D,UAAM,OAAO,eAAAC,QACV,cAAc,+BAA+B,EAAE,QAAQ,MAAM,CAAC,EAC9D,KAAK,QAAQ,QAAQ,EAAE;AAE1B,QAAI,kBAAkB;AAEpB,cAAQ,IAAI,cAAc,IAAI;AAAA,IAChC;AACA,WAAO,UAAAF,QAAG,aAAa,MAAM,WAAW;AAAA,EAC1C;AAEA,SAAO,CAAC,MAAc;AACpB,eAAO,wCAAgB,GAAG,MAAM;AAAA,EAClC;AACF;AAEO,SAAS,oBAAoB,aAAiC;AACnE,SAAO,CAAC,MAAc;AACpB,QAAI;AACF,aAAO,YAAY,CAAC;AAAA,IACtB,SAAS,KAAP;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;",
|
|
6
|
+
"names": ["vm", "generate", "esbuild"]
|
|
7
|
+
}
|
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -73,7 +77,10 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
73
77
|
console.log('\u26A0\uFE0F Please set process.env.TAMAGUI_TARGET to either "web" or "native"');
|
|
74
78
|
process.exit(1);
|
|
75
79
|
}
|
|
76
|
-
const shouldAddDebugProp =
|
|
80
|
+
const shouldAddDebugProp = (
|
|
81
|
+
// really basic disable this for next.js because it messes with ssr
|
|
82
|
+
!process.env.npm_package_dependencies_next && process.env.TAMAGUI_TARGET !== "native" && process.env.IDENTIFY_TAGS !== "false" && (process.env.NODE_ENV === "development" || process.env.DEBUG || process.env.IDENTIFY_TAGS)
|
|
83
|
+
);
|
|
77
84
|
let projectInfo = null;
|
|
78
85
|
function loadSync(props) {
|
|
79
86
|
return projectInfo || (projectInfo = (0, import_loadTamagui.loadTamaguiSync)({
|
|
@@ -154,7 +161,8 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
154
161
|
if (target === "native" && name[0] === "$" && import_core_node.mediaQueryConfig[name.slice(1)]) {
|
|
155
162
|
return false;
|
|
156
163
|
}
|
|
157
|
-
return !!(!!((_a2 = staticConfig.validStyles) == null ? void 0 : _a2[name]) || !!import_core_node.pseudoDescriptors[name] ||
|
|
164
|
+
return !!(!!((_a2 = staticConfig.validStyles) == null ? void 0 : _a2[name]) || !!import_core_node.pseudoDescriptors[name] || // dont disable variants or else you lose many things flattening
|
|
165
|
+
((_b = staticConfig.variants) == null ? void 0 : _b[name]) || (projectInfo == null ? void 0 : projectInfo.tamaguiConfig.shorthands[name]) || (name[0] === "$" ? !!import_core_node.mediaQueryConfig[name.slice(1)] : false));
|
|
158
166
|
}
|
|
159
167
|
const isTargetingHTML = target === "html";
|
|
160
168
|
const ogDebug = shouldPrintDebug;
|
|
@@ -294,11 +302,13 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
294
302
|
found: 0
|
|
295
303
|
};
|
|
296
304
|
callTraverse({
|
|
305
|
+
// @ts-ignore
|
|
297
306
|
Program: {
|
|
298
307
|
enter(path) {
|
|
299
308
|
programPath = path;
|
|
300
309
|
}
|
|
301
310
|
},
|
|
311
|
+
// styled() calls
|
|
302
312
|
CallExpression(path) {
|
|
303
313
|
var _a2;
|
|
304
314
|
if (disable || shouldDisableExtraction || extractStyledDefinitions === false) {
|
|
@@ -325,8 +335,10 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
325
335
|
...Component.staticConfig.inlineWhenUnflattened || [],
|
|
326
336
|
...Component.staticConfig.inlineProps || [],
|
|
327
337
|
...Component.staticConfig.deoptProps || [],
|
|
338
|
+
// for now skip variants, will return to them
|
|
328
339
|
"variants",
|
|
329
340
|
"defaultVariants",
|
|
341
|
+
// skip fontFamily its basically a "variant", important for theme use to be value always
|
|
330
342
|
"fontFamily",
|
|
331
343
|
"name"
|
|
332
344
|
]);
|
|
@@ -347,7 +359,8 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
347
359
|
});
|
|
348
360
|
const attemptEvalSafe = (0, import_createEvaluator.createSafeEvaluator)(attemptEval);
|
|
349
361
|
for (const property of definition.properties) {
|
|
350
|
-
if (!t.isObjectProperty(property) || !t.isIdentifier(property.key) || !isValidStyleKey(property.key.name, Component.staticConfig) ||
|
|
362
|
+
if (!t.isObjectProperty(property) || !t.isIdentifier(property.key) || !isValidStyleKey(property.key.name, Component.staticConfig) || // skip variants
|
|
363
|
+
((_a2 = Component.staticConfig.variants) == null ? void 0 : _a2[property.key.name]) || componentSkipProps.has(property.key.name)) {
|
|
351
364
|
skipped.push(property);
|
|
352
365
|
continue;
|
|
353
366
|
}
|
|
@@ -489,7 +502,13 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
489
502
|
const attr = { type: "attr", value: attribute };
|
|
490
503
|
if (t.isJSXSpreadAttribute(attribute)) {
|
|
491
504
|
const arg = attribute.argument;
|
|
492
|
-
const conditional = t.isConditionalExpression(arg) ?
|
|
505
|
+
const conditional = t.isConditionalExpression(arg) ? (
|
|
506
|
+
// <YStack {...isSmall ? { color: 'red } : { color: 'blue }}
|
|
507
|
+
[arg.test, arg.consequent, arg.alternate]
|
|
508
|
+
) : t.isLogicalExpression(arg) && arg.operator === "&&" ? (
|
|
509
|
+
// <YStack {...isSmall && { color: 'red }}
|
|
510
|
+
[arg.left, arg.right, null]
|
|
511
|
+
) : null;
|
|
493
512
|
if (conditional) {
|
|
494
513
|
const [test, alt, cons] = conditional;
|
|
495
514
|
if (!test)
|
|
@@ -664,7 +683,8 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
664
683
|
attr: path.node
|
|
665
684
|
};
|
|
666
685
|
}
|
|
667
|
-
if (import_validHTMLAttributes.validHTMLAttributes[key] || key.startsWith("aria-") || key.startsWith("data-") ||
|
|
686
|
+
if (import_validHTMLAttributes.validHTMLAttributes[key] || key.startsWith("aria-") || key.startsWith("data-") || // this is debug stuff added by vite / new jsx transform
|
|
687
|
+
key === "__source" || key === "__self") {
|
|
668
688
|
return attr;
|
|
669
689
|
}
|
|
670
690
|
if (shouldPrintDebug) {
|
|
@@ -869,6 +889,7 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
869
889
|
return ternaries2.map((value) => ({
|
|
870
890
|
...ternaryPartial,
|
|
871
891
|
...value,
|
|
892
|
+
// ensure media query test stays on left side (see getMediaQueryTernary)
|
|
872
893
|
test: t.logicalExpression("&&", value.test, test)
|
|
873
894
|
}));
|
|
874
895
|
} else {
|
|
@@ -980,11 +1001,13 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
980
1001
|
});
|
|
981
1002
|
const flatNode = getFlattenedNode == null ? void 0 : getFlattenedNode({ isTextView, tag: tagName });
|
|
982
1003
|
const inlineProps = /* @__PURE__ */ new Set([
|
|
1004
|
+
// adding some always inline props
|
|
983
1005
|
"dataSet",
|
|
984
1006
|
...restProps.inlineProps || [],
|
|
985
1007
|
...staticConfig.inlineProps || []
|
|
986
1008
|
]);
|
|
987
1009
|
const deoptProps = /* @__PURE__ */ new Set([
|
|
1010
|
+
// always de-opt animation
|
|
988
1011
|
"animation",
|
|
989
1012
|
...restProps.deoptProps || [],
|
|
990
1013
|
...staticConfig.deoptProps || []
|
|
@@ -1220,6 +1243,7 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
1220
1243
|
focus: false,
|
|
1221
1244
|
hover: false,
|
|
1222
1245
|
unmounted: false,
|
|
1246
|
+
// TODO match logic in createComponent
|
|
1223
1247
|
press: false,
|
|
1224
1248
|
pressIn: false
|
|
1225
1249
|
};
|
|
@@ -1357,7 +1381,11 @@ function createExtractor({ logger = console } = { logger: console }) {
|
|
|
1357
1381
|
if (cur.type === "style") {
|
|
1358
1382
|
const key = Object.keys(cur.value)[0];
|
|
1359
1383
|
const value = cur.value[key];
|
|
1360
|
-
const shouldKeepOriginalAttr =
|
|
1384
|
+
const shouldKeepOriginalAttr = (
|
|
1385
|
+
// !isStyleAndAttr[key] &&
|
|
1386
|
+
!shouldFlatten && // de-opt if non-style
|
|
1387
|
+
!validStyles[key] && !import_core_node.pseudoDescriptors[key] && !key.startsWith("data-")
|
|
1388
|
+
);
|
|
1361
1389
|
if (shouldKeepOriginalAttr) {
|
|
1362
1390
|
if (shouldPrintDebug) {
|
|
1363
1391
|
logger.info([" - keeping as non-style", key].join(" "));
|