@tamagui/babel-plugin 1.89.20 → 1.89.22
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/cjs/index.js +40 -19
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +40 -19
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/index.js +40 -19
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +21 -17
- package/dist/esm/index.native.js +40 -19
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +53 -19
- package/types/index.d.ts.map +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -31,8 +31,8 @@ const __ReactNativeView = require('react-native').View;
|
|
|
31
31
|
const __ReactNativeText = require('react-native').Text;
|
|
32
32
|
`), importStyleSheet = (0, import_template.default)(`
|
|
33
33
|
const __ReactNativeStyleSheet = require('react-native').StyleSheet;
|
|
34
|
-
`),
|
|
35
|
-
const
|
|
34
|
+
`), importWithStyle = (0, import_template.default)(`
|
|
35
|
+
const __withStableStyle = require('@tamagui/core')._withStableStyle;
|
|
36
36
|
`), extractor = (0, import_static.createExtractor)({ platform: "native" });
|
|
37
37
|
var src_default = (0, import_helper_plugin_utils.declare)(function(api, options) {
|
|
38
38
|
return api.assertVersion(7), {
|
|
@@ -105,22 +105,24 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
105
105
|
if (!isFlattened)
|
|
106
106
|
return;
|
|
107
107
|
assertValidTag(props.node);
|
|
108
|
-
const stylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
108
|
+
const stylesExpr = t.arrayExpression([]), hocStylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
109
109
|
function getStyleExpression(style) {
|
|
110
110
|
if (!style)
|
|
111
111
|
return;
|
|
112
112
|
const { plain, themed } = splitThemeStyles(style);
|
|
113
|
+
let themeExpr = null;
|
|
113
114
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
114
115
|
for (const key in themed)
|
|
115
116
|
themeKeysUsed.add(themed[key].split("$")[1]);
|
|
116
|
-
|
|
117
|
+
themeExpr = getThemedStyleExpression(themed);
|
|
117
118
|
}
|
|
118
|
-
|
|
119
|
+
const ident = addSheetStyle(plain, props.node);
|
|
120
|
+
return themeExpr ? (addStyleExpression(ident), addStyleExpression(ident, !0), themeExpr) : ident;
|
|
119
121
|
}
|
|
120
|
-
function addStyleExpression(expr) {
|
|
121
|
-
Array.isArray(expr) ? stylesExpr.elements.push(...expr) : stylesExpr.elements.push(expr);
|
|
122
|
+
function addStyleExpression(expr, HOC = !1) {
|
|
123
|
+
Array.isArray(expr) ? (HOC ? hocStylesExpr : stylesExpr).elements.push(...expr) : (HOC ? hocStylesExpr : stylesExpr).elements.push(expr);
|
|
122
124
|
}
|
|
123
|
-
function
|
|
125
|
+
function getThemedStyleExpression(styles) {
|
|
124
126
|
const themedStylesAst = (0, import_static.literalToAst)(styles);
|
|
125
127
|
return themedStylesAst.properties.forEach((_) => {
|
|
126
128
|
const prop = _;
|
|
@@ -130,17 +132,26 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
130
132
|
));
|
|
131
133
|
}), themedStylesAst;
|
|
132
134
|
}
|
|
135
|
+
let hasDynamicStyle = !1;
|
|
133
136
|
for (const attr of props.attrs)
|
|
134
137
|
switch (attr.type) {
|
|
135
138
|
case "style": {
|
|
136
|
-
|
|
139
|
+
let styleExpr = getStyleExpression(attr.value);
|
|
140
|
+
addStyleExpression(styleExpr), options.experimentalFlattenThemesOnNative && addStyleExpression(styleExpr, !0);
|
|
137
141
|
break;
|
|
138
142
|
}
|
|
139
143
|
case "ternary": {
|
|
140
|
-
const { consequent, alternate } = attr.value, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate)
|
|
141
|
-
|
|
144
|
+
const { consequent, alternate } = attr.value, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate);
|
|
145
|
+
options.experimentalFlattenThemesOnNative && (expressions.push(attr.value.test), addStyleExpression(
|
|
146
|
+
t.conditionalExpression(
|
|
147
|
+
t.identifier(`_expressions[${expressions.length - 1}]`),
|
|
148
|
+
consExpr || t.nullLiteral(),
|
|
149
|
+
altExpr || t.nullLiteral()
|
|
150
|
+
),
|
|
151
|
+
!0
|
|
152
|
+
));
|
|
142
153
|
const styleExpr = t.conditionalExpression(
|
|
143
|
-
|
|
154
|
+
attr.value.test,
|
|
144
155
|
consExpr || t.nullLiteral(),
|
|
145
156
|
altExpr || t.nullLiteral()
|
|
146
157
|
);
|
|
@@ -152,26 +163,36 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
152
163
|
break;
|
|
153
164
|
}
|
|
154
165
|
case "dynamic-style": {
|
|
155
|
-
expressions.push(attr.value), addStyleExpression(
|
|
166
|
+
hasDynamicStyle = !0, expressions.push(attr.value), addStyleExpression(
|
|
156
167
|
t.objectExpression([
|
|
157
168
|
t.objectProperty(
|
|
158
169
|
t.identifier(attr.name),
|
|
159
170
|
t.identifier(`_expressions[${expressions.length - 1}]`)
|
|
160
171
|
)
|
|
172
|
+
]),
|
|
173
|
+
!0
|
|
174
|
+
), addStyleExpression(
|
|
175
|
+
t.objectExpression([
|
|
176
|
+
t.objectProperty(
|
|
177
|
+
t.identifier(attr.name),
|
|
178
|
+
attr.value
|
|
179
|
+
)
|
|
161
180
|
])
|
|
162
181
|
);
|
|
163
182
|
break;
|
|
164
183
|
}
|
|
165
184
|
case "attr": {
|
|
166
|
-
t.isJSXSpreadAttribute(attr.value) && (0, import_static.isSimpleSpread)(attr.value) && stylesExpr.elements.push(
|
|
185
|
+
t.isJSXSpreadAttribute(attr.value) && (0, import_static.isSimpleSpread)(attr.value) && (stylesExpr.elements.push(
|
|
186
|
+
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
187
|
+
), hocStylesExpr.elements.push(
|
|
167
188
|
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
168
|
-
), finalAttrs.push(attr.value);
|
|
189
|
+
)), finalAttrs.push(attr.value);
|
|
169
190
|
break;
|
|
170
191
|
}
|
|
171
192
|
}
|
|
172
193
|
if (props.node.attributes = finalAttrs, props.isFlattened)
|
|
173
|
-
if (themeKeysUsed.size) {
|
|
174
|
-
hasImportedViewWrapper || (root.unshiftContainer("body",
|
|
194
|
+
if (options.experimentalFlattenThemesOnNative && (themeKeysUsed.size || hocStylesExpr.elements.length > 1 || hasDynamicStyle)) {
|
|
195
|
+
hasImportedViewWrapper || (root.unshiftContainer("body", importWithStyle()), hasImportedViewWrapper = !0);
|
|
175
196
|
const name = props.node.name.name, WrapperIdentifier = root.scope.generateUidIdentifier(
|
|
176
197
|
name + "Wrapper"
|
|
177
198
|
);
|
|
@@ -180,7 +201,7 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
180
201
|
t.variableDeclaration("const", [
|
|
181
202
|
t.variableDeclarator(
|
|
182
203
|
WrapperIdentifier,
|
|
183
|
-
t.callExpression(t.identifier("
|
|
204
|
+
t.callExpression(t.identifier("__withStableStyle"), [
|
|
184
205
|
t.identifier(name),
|
|
185
206
|
t.arrowFunctionExpression(
|
|
186
207
|
[t.identifier("theme"), t.identifier("_expressions")],
|
|
@@ -203,7 +224,7 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
203
224
|
),
|
|
204
225
|
[
|
|
205
226
|
t.objectExpression([]),
|
|
206
|
-
...
|
|
227
|
+
...hocStylesExpr.elements
|
|
207
228
|
]
|
|
208
229
|
)
|
|
209
230
|
)
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["template", "generator"]
|
|
6
6
|
}
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -32,8 +32,8 @@ const __ReactNativeView = require('react-native').View;
|
|
|
32
32
|
const __ReactNativeText = require('react-native').Text;
|
|
33
33
|
`), importStyleSheet = (0, import_template.default)(`
|
|
34
34
|
const __ReactNativeStyleSheet = require('react-native').StyleSheet;
|
|
35
|
-
`),
|
|
36
|
-
const
|
|
35
|
+
`), importWithStyle = (0, import_template.default)(`
|
|
36
|
+
const __withStableStyle = require('@tamagui/core')._withStableStyle;
|
|
37
37
|
`), extractor = (0, import_static.createExtractor)({ platform: "native" });
|
|
38
38
|
var src_default = (0, import_helper_plugin_utils.declare)(function(api, options) {
|
|
39
39
|
return api.assertVersion(7), {
|
|
@@ -107,22 +107,24 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
107
107
|
if (!isFlattened)
|
|
108
108
|
return;
|
|
109
109
|
assertValidTag(props.node);
|
|
110
|
-
const stylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
110
|
+
const stylesExpr = t.arrayExpression([]), hocStylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
111
111
|
function getStyleExpression(style) {
|
|
112
112
|
if (!style)
|
|
113
113
|
return;
|
|
114
114
|
const { plain, themed } = splitThemeStyles(style);
|
|
115
|
+
let themeExpr = null;
|
|
115
116
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
116
117
|
for (const key in themed)
|
|
117
118
|
themeKeysUsed.add(themed[key].split("$")[1]);
|
|
118
|
-
|
|
119
|
+
themeExpr = getThemedStyleExpression(themed);
|
|
119
120
|
}
|
|
120
|
-
|
|
121
|
+
const ident = addSheetStyle(plain, props.node);
|
|
122
|
+
return themeExpr ? (addStyleExpression(ident), addStyleExpression(ident, !0), themeExpr) : ident;
|
|
121
123
|
}
|
|
122
|
-
function addStyleExpression(expr) {
|
|
123
|
-
Array.isArray(expr) ? stylesExpr.elements.push(...expr) : stylesExpr.elements.push(expr);
|
|
124
|
+
function addStyleExpression(expr, HOC = !1) {
|
|
125
|
+
Array.isArray(expr) ? (HOC ? hocStylesExpr : stylesExpr).elements.push(...expr) : (HOC ? hocStylesExpr : stylesExpr).elements.push(expr);
|
|
124
126
|
}
|
|
125
|
-
function
|
|
127
|
+
function getThemedStyleExpression(styles) {
|
|
126
128
|
const themedStylesAst = (0, import_static.literalToAst)(styles);
|
|
127
129
|
return themedStylesAst.properties.forEach((_) => {
|
|
128
130
|
const prop = _;
|
|
@@ -132,17 +134,26 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
132
134
|
));
|
|
133
135
|
}), themedStylesAst;
|
|
134
136
|
}
|
|
137
|
+
let hasDynamicStyle = !1;
|
|
135
138
|
for (const attr of props.attrs)
|
|
136
139
|
switch (attr.type) {
|
|
137
140
|
case "style": {
|
|
138
|
-
|
|
141
|
+
let styleExpr = getStyleExpression(attr.value);
|
|
142
|
+
addStyleExpression(styleExpr), options.experimentalFlattenThemesOnNative && addStyleExpression(styleExpr, !0);
|
|
139
143
|
break;
|
|
140
144
|
}
|
|
141
145
|
case "ternary": {
|
|
142
|
-
const { consequent, alternate } = attr.value, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate)
|
|
143
|
-
|
|
146
|
+
const { consequent, alternate } = attr.value, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate);
|
|
147
|
+
options.experimentalFlattenThemesOnNative && (expressions.push(attr.value.test), addStyleExpression(
|
|
148
|
+
t.conditionalExpression(
|
|
149
|
+
t.identifier(`_expressions[${expressions.length - 1}]`),
|
|
150
|
+
consExpr || t.nullLiteral(),
|
|
151
|
+
altExpr || t.nullLiteral()
|
|
152
|
+
),
|
|
153
|
+
!0
|
|
154
|
+
));
|
|
144
155
|
const styleExpr = t.conditionalExpression(
|
|
145
|
-
|
|
156
|
+
attr.value.test,
|
|
146
157
|
consExpr || t.nullLiteral(),
|
|
147
158
|
altExpr || t.nullLiteral()
|
|
148
159
|
);
|
|
@@ -154,26 +165,36 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
154
165
|
break;
|
|
155
166
|
}
|
|
156
167
|
case "dynamic-style": {
|
|
157
|
-
expressions.push(attr.value), addStyleExpression(
|
|
168
|
+
hasDynamicStyle = !0, expressions.push(attr.value), addStyleExpression(
|
|
158
169
|
t.objectExpression([
|
|
159
170
|
t.objectProperty(
|
|
160
171
|
t.identifier(attr.name),
|
|
161
172
|
t.identifier(`_expressions[${expressions.length - 1}]`)
|
|
162
173
|
)
|
|
174
|
+
]),
|
|
175
|
+
!0
|
|
176
|
+
), addStyleExpression(
|
|
177
|
+
t.objectExpression([
|
|
178
|
+
t.objectProperty(
|
|
179
|
+
t.identifier(attr.name),
|
|
180
|
+
attr.value
|
|
181
|
+
)
|
|
163
182
|
])
|
|
164
183
|
);
|
|
165
184
|
break;
|
|
166
185
|
}
|
|
167
186
|
case "attr": {
|
|
168
|
-
t.isJSXSpreadAttribute(attr.value) && (0, import_static.isSimpleSpread)(attr.value) && stylesExpr.elements.push(
|
|
187
|
+
t.isJSXSpreadAttribute(attr.value) && (0, import_static.isSimpleSpread)(attr.value) && (stylesExpr.elements.push(
|
|
188
|
+
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
189
|
+
), hocStylesExpr.elements.push(
|
|
169
190
|
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
170
|
-
), finalAttrs.push(attr.value);
|
|
191
|
+
)), finalAttrs.push(attr.value);
|
|
171
192
|
break;
|
|
172
193
|
}
|
|
173
194
|
}
|
|
174
195
|
if (props.node.attributes = finalAttrs, props.isFlattened)
|
|
175
|
-
if (themeKeysUsed.size) {
|
|
176
|
-
hasImportedViewWrapper || (root.unshiftContainer("body",
|
|
196
|
+
if (options.experimentalFlattenThemesOnNative && (themeKeysUsed.size || hocStylesExpr.elements.length > 1 || hasDynamicStyle)) {
|
|
197
|
+
hasImportedViewWrapper || (root.unshiftContainer("body", importWithStyle()), hasImportedViewWrapper = !0);
|
|
177
198
|
const name = props.node.name.name, WrapperIdentifier = root.scope.generateUidIdentifier(
|
|
178
199
|
name + "Wrapper"
|
|
179
200
|
);
|
|
@@ -182,7 +203,7 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
182
203
|
t.variableDeclaration("const", [
|
|
183
204
|
t.variableDeclarator(
|
|
184
205
|
WrapperIdentifier,
|
|
185
|
-
t.callExpression(t.identifier("
|
|
206
|
+
t.callExpression(t.identifier("__withStableStyle"), [
|
|
186
207
|
t.identifier(name),
|
|
187
208
|
t.arrowFunctionExpression(
|
|
188
209
|
[t.identifier("theme"), t.identifier("_expressions")],
|
|
@@ -205,7 +226,7 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
205
226
|
),
|
|
206
227
|
[
|
|
207
228
|
t.objectExpression([]),
|
|
208
|
-
...
|
|
229
|
+
...hocStylesExpr.elements
|
|
209
230
|
]
|
|
210
231
|
)
|
|
211
232
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["template", "generator"]
|
|
6
6
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -14,8 +14,8 @@ const __ReactNativeView = require('react-native').View;
|
|
|
14
14
|
const __ReactNativeText = require('react-native').Text;
|
|
15
15
|
`), importStyleSheet = template(`
|
|
16
16
|
const __ReactNativeStyleSheet = require('react-native').StyleSheet;
|
|
17
|
-
`),
|
|
18
|
-
const
|
|
17
|
+
`), importWithStyle = template(`
|
|
18
|
+
const __withStableStyle = require('@tamagui/core')._withStableStyle;
|
|
19
19
|
`), extractor = createExtractor({ platform: "native" });
|
|
20
20
|
var src_default = declare(function(api, options) {
|
|
21
21
|
return api.assertVersion(7), {
|
|
@@ -88,22 +88,24 @@ var src_default = declare(function(api, options) {
|
|
|
88
88
|
if (!isFlattened)
|
|
89
89
|
return;
|
|
90
90
|
assertValidTag(props.node);
|
|
91
|
-
const stylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
91
|
+
const stylesExpr = t.arrayExpression([]), hocStylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
92
92
|
function getStyleExpression(style) {
|
|
93
93
|
if (!style)
|
|
94
94
|
return;
|
|
95
95
|
const { plain, themed } = splitThemeStyles(style);
|
|
96
|
+
let themeExpr = null;
|
|
96
97
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
97
98
|
for (const key in themed)
|
|
98
99
|
themeKeysUsed.add(themed[key].split("$")[1]);
|
|
99
|
-
|
|
100
|
+
themeExpr = getThemedStyleExpression(themed);
|
|
100
101
|
}
|
|
101
|
-
|
|
102
|
+
const ident = addSheetStyle(plain, props.node);
|
|
103
|
+
return themeExpr ? (addStyleExpression(ident), addStyleExpression(ident, !0), themeExpr) : ident;
|
|
102
104
|
}
|
|
103
|
-
function addStyleExpression(expr) {
|
|
104
|
-
Array.isArray(expr) ? stylesExpr.elements.push(...expr) : stylesExpr.elements.push(expr);
|
|
105
|
+
function addStyleExpression(expr, HOC = !1) {
|
|
106
|
+
Array.isArray(expr) ? (HOC ? hocStylesExpr : stylesExpr).elements.push(...expr) : (HOC ? hocStylesExpr : stylesExpr).elements.push(expr);
|
|
105
107
|
}
|
|
106
|
-
function
|
|
108
|
+
function getThemedStyleExpression(styles) {
|
|
107
109
|
const themedStylesAst = literalToAst(styles);
|
|
108
110
|
return themedStylesAst.properties.forEach((_) => {
|
|
109
111
|
const prop = _;
|
|
@@ -113,17 +115,26 @@ var src_default = declare(function(api, options) {
|
|
|
113
115
|
));
|
|
114
116
|
}), themedStylesAst;
|
|
115
117
|
}
|
|
118
|
+
let hasDynamicStyle = !1;
|
|
116
119
|
for (const attr of props.attrs)
|
|
117
120
|
switch (attr.type) {
|
|
118
121
|
case "style": {
|
|
119
|
-
|
|
122
|
+
let styleExpr = getStyleExpression(attr.value);
|
|
123
|
+
addStyleExpression(styleExpr), options.experimentalFlattenThemesOnNative && addStyleExpression(styleExpr, !0);
|
|
120
124
|
break;
|
|
121
125
|
}
|
|
122
126
|
case "ternary": {
|
|
123
|
-
const { consequent, alternate } = attr.value, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate)
|
|
124
|
-
|
|
127
|
+
const { consequent, alternate } = attr.value, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate);
|
|
128
|
+
options.experimentalFlattenThemesOnNative && (expressions.push(attr.value.test), addStyleExpression(
|
|
129
|
+
t.conditionalExpression(
|
|
130
|
+
t.identifier(`_expressions[${expressions.length - 1}]`),
|
|
131
|
+
consExpr || t.nullLiteral(),
|
|
132
|
+
altExpr || t.nullLiteral()
|
|
133
|
+
),
|
|
134
|
+
!0
|
|
135
|
+
));
|
|
125
136
|
const styleExpr = t.conditionalExpression(
|
|
126
|
-
|
|
137
|
+
attr.value.test,
|
|
127
138
|
consExpr || t.nullLiteral(),
|
|
128
139
|
altExpr || t.nullLiteral()
|
|
129
140
|
);
|
|
@@ -135,26 +146,36 @@ var src_default = declare(function(api, options) {
|
|
|
135
146
|
break;
|
|
136
147
|
}
|
|
137
148
|
case "dynamic-style": {
|
|
138
|
-
expressions.push(attr.value), addStyleExpression(
|
|
149
|
+
hasDynamicStyle = !0, expressions.push(attr.value), addStyleExpression(
|
|
139
150
|
t.objectExpression([
|
|
140
151
|
t.objectProperty(
|
|
141
152
|
t.identifier(attr.name),
|
|
142
153
|
t.identifier(`_expressions[${expressions.length - 1}]`)
|
|
143
154
|
)
|
|
155
|
+
]),
|
|
156
|
+
!0
|
|
157
|
+
), addStyleExpression(
|
|
158
|
+
t.objectExpression([
|
|
159
|
+
t.objectProperty(
|
|
160
|
+
t.identifier(attr.name),
|
|
161
|
+
attr.value
|
|
162
|
+
)
|
|
144
163
|
])
|
|
145
164
|
);
|
|
146
165
|
break;
|
|
147
166
|
}
|
|
148
167
|
case "attr": {
|
|
149
|
-
t.isJSXSpreadAttribute(attr.value) && isSimpleSpread(attr.value) && stylesExpr.elements.push(
|
|
168
|
+
t.isJSXSpreadAttribute(attr.value) && isSimpleSpread(attr.value) && (stylesExpr.elements.push(
|
|
169
|
+
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
170
|
+
), hocStylesExpr.elements.push(
|
|
150
171
|
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
151
|
-
), finalAttrs.push(attr.value);
|
|
172
|
+
)), finalAttrs.push(attr.value);
|
|
152
173
|
break;
|
|
153
174
|
}
|
|
154
175
|
}
|
|
155
176
|
if (props.node.attributes = finalAttrs, props.isFlattened)
|
|
156
|
-
if (themeKeysUsed.size) {
|
|
157
|
-
hasImportedViewWrapper || (root.unshiftContainer("body",
|
|
177
|
+
if (options.experimentalFlattenThemesOnNative && (themeKeysUsed.size || hocStylesExpr.elements.length > 1 || hasDynamicStyle)) {
|
|
178
|
+
hasImportedViewWrapper || (root.unshiftContainer("body", importWithStyle()), hasImportedViewWrapper = !0);
|
|
158
179
|
const name = props.node.name.name, WrapperIdentifier = root.scope.generateUidIdentifier(
|
|
159
180
|
name + "Wrapper"
|
|
160
181
|
);
|
|
@@ -163,7 +184,7 @@ var src_default = declare(function(api, options) {
|
|
|
163
184
|
t.variableDeclaration("const", [
|
|
164
185
|
t.variableDeclarator(
|
|
165
186
|
WrapperIdentifier,
|
|
166
|
-
t.callExpression(t.identifier("
|
|
187
|
+
t.callExpression(t.identifier("__withStableStyle"), [
|
|
167
188
|
t.identifier(name),
|
|
168
189
|
t.arrowFunctionExpression(
|
|
169
190
|
[t.identifier("theme"), t.identifier("_expressions")],
|
|
@@ -186,7 +207,7 @@ var src_default = declare(function(api, options) {
|
|
|
186
207
|
),
|
|
187
208
|
[
|
|
188
209
|
t.objectExpression([]),
|
|
189
|
-
...
|
|
210
|
+
...hocStylesExpr.elements
|
|
190
211
|
]
|
|
191
212
|
)
|
|
192
213
|
)
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,gBAAgB;AAEzB,OAAO,eAAe;AACtB,SAAS,eAAe;AACxB,OAAO,cAAc;AAErB,YAAY,OAAO;AAEnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,MAAM,mBAAmB,SAAS;AAAA;AAAA;AAAA,CAGjC,GAEK,mBAAmB,SAAS;AAAA;AAAA,CAEjC,GAEK,kBAAkB,SAAS;AAAA;AAAA,CAEhC,GAEK,YAAY,gBAAgB,EAAE,UAAU,SAAS,CAAC;AAExD,IAAO,cAAQ,QAAQ,SACrB,KACA,SAIA;AACA,aAAI,cAAc,CAAC,GAEZ;AAAA,IACL,MAAM;AAAA,IAEN,SAAS;AAAA,MACP,SAAS;AAAA,QACP,MAAiB,MAAM;AACrB,cAAI,aAAa,KAAK,KAAK,KAAK;AAMhC,cAJI,YAAY,SAAS,cAAc,KAInC,CAAC,YAAY,SAAS,MAAM,KAAK,CAAC,YAAY,SAAS,MAAM;AAC/D;AAKF,UAAI,QAAQ,IAAI,aAAa,SAAS,KAAK,MACzC,aAAa,WAAW,QAAQ,QAAQ,EAAE;AAG5C,cAAI,kBAAkB,IAClB,yBAAyB;AAC7B,gBAAM,cAAc,CAAC,GACf,kBAAkB,KAAK,MAAM,sBAAsB,OAAO,GAC1D;AAAA;AAAA,YAEJ,KAAK,KAAK,KAAK,CAAC,GAAG,iBACf,IAAI,CAAC,YAAY,SAAS,SAAS,GAAG,EACvC,KAAK,GAAG,KAAK;AAAA,aAEZ,EAAE,kBAAkB,cAAc,IAAI,iBAAiB;AAAA,YAC3D,qBAAqB;AAAA,YACrB,QAAQ;AAAA,YACR,MAAM;AAAA,UACR,CAAC;AAED,cAAI;AACF;AAGF,mBAAS,cAAc,OAAY,MAA2B;AAE5D,gBAAI,MAAM,GADS,GAAG,OAAO,KAAK,WAAW,EAAE,MAAM,EAC9B;AACvB,gBAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,oBAAM,cAAc,KAAK,MACrB,KAAK,IAAI,MAAM,QACd,KAAK,IAAI,MAAM,SAAS,KAAK,IAAI,IAAI,OAClC,IAAI,KAAK,IAAI,IAAI,IAAI,KACrB,MACJ;AACJ,qBAAO,IAAI,SAAS,UAAU,CAAC,IAAI,WAAW;AAAA,YAChD;AACA,+BAAY,GAAG,IAAI,OACZ,cAAc,GAAG;AAAA,UAC1B;AAEA,mBAAS,cAAc,KAAa;AAClC,mBAAO,SAAS,cAAc,EAAE;AAAA,cAC9B,OAAO,gBAAgB;AAAA,cACvB,KAAK;AAAA,YACP,CAAC,EAAE;AAAA,UACL;AAEA,cAAI;AACF,sBAAU,UAAU,MAAM;AAAA;AAAA,cAExB,UAAU;AAAA,cACV;AAAA,cACA,kBAAkB,CAAC,gBAAgB,WAAW;AAAA,cAC9C,0BAA0B,QAAQ;AAAA,cAClC,cAAc,oBAAI,IAAI;AAAA,gBACpB;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF,CAAC;AAAA,cACD,GAAG;AAAA;AAAA;AAAA;AAAA,cAIH,2BAA2B;AAAA;AAAA,cAE3B,yBAAyB,QAAQ,oCAC7B,KACA;AAAA,cACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAQA,iBAAiB,EAAE,WAAW,GAAG;AAC/B,uBAAK,oBACH,kBAAkB,IAClB,KAAK,iBAAiB,QAAQ,iBAAiB,CAAC,IAE3C,aAAa,sBAAsB;AAAA,cAC5C;AAAA,cAEA,aAAa,OAAO;AAClB,sBAAM,EAAE,YAAY,IAAI;AAExB,oBAAI,CAAC;AAEH;AAGF,+BAAe,MAAM,IAAI;AACzB,sBAAM,aAAa,EAAE,gBAAgB,CAAC,CAAC,GACjC,cAA8B,CAAC,GAC/B,aAAwD,CAAC,GACzD,gBAAgB,oBAAI,IAAY;AAEtC,yBAAS,mBAAmB,OAAsB;AAChD,sBAAI,CAAC;AAAO;AAGZ,wBAAM,EAAE,OAAO,OAAO,IAAI,iBAAiB,KAAK;AAGhD,sBAAI,UAAU,QAAQ,mCAAmC;AACvD,+BAAW,OAAO;AAChB,oCAAc,IAAI,OAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AAI7C,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -11,8 +11,8 @@ const __ReactNativeText = require('react-native').Text;
|
|
|
11
11
|
importStyleSheet = template(`
|
|
12
12
|
const __ReactNativeStyleSheet = require('react-native').StyleSheet;
|
|
13
13
|
`),
|
|
14
|
-
|
|
15
|
-
const
|
|
14
|
+
importWithStyle = template(`
|
|
15
|
+
const __withStableStyle = require('@tamagui/core')._withStableStyle;
|
|
16
16
|
`),
|
|
17
17
|
extractor = createExtractor({
|
|
18
18
|
platform: "native"
|
|
@@ -89,6 +89,7 @@ var src_default = declare(function (api, options) {
|
|
|
89
89
|
if (!isFlattened) return;
|
|
90
90
|
assertValidTag(props.node);
|
|
91
91
|
const stylesExpr = t.arrayExpression([]),
|
|
92
|
+
hocStylesExpr = t.arrayExpression([]),
|
|
92
93
|
expressions = [],
|
|
93
94
|
finalAttrs = [],
|
|
94
95
|
themeKeysUsed = /* @__PURE__ */new Set();
|
|
@@ -98,26 +99,30 @@ var src_default = declare(function (api, options) {
|
|
|
98
99
|
plain,
|
|
99
100
|
themed
|
|
100
101
|
} = splitThemeStyles(style);
|
|
102
|
+
let themeExpr = null;
|
|
101
103
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
102
104
|
for (const key in themed) themeKeysUsed.add(themed[key].split("$")[1]);
|
|
103
|
-
|
|
105
|
+
themeExpr = getThemedStyleExpression(themed);
|
|
104
106
|
}
|
|
105
|
-
|
|
107
|
+
const ident = addSheetStyle(plain, props.node);
|
|
108
|
+
return themeExpr ? (addStyleExpression(ident), addStyleExpression(ident, !0), themeExpr) : ident;
|
|
106
109
|
}
|
|
107
|
-
function addStyleExpression(expr) {
|
|
108
|
-
Array.isArray(expr) ? stylesExpr.elements.push(...expr) : stylesExpr.elements.push(expr);
|
|
110
|
+
function addStyleExpression(expr, HOC = !1) {
|
|
111
|
+
Array.isArray(expr) ? (HOC ? hocStylesExpr : stylesExpr).elements.push(...expr) : (HOC ? hocStylesExpr : stylesExpr).elements.push(expr);
|
|
109
112
|
}
|
|
110
|
-
function
|
|
113
|
+
function getThemedStyleExpression(styles) {
|
|
111
114
|
const themedStylesAst = literalToAst(styles);
|
|
112
115
|
return themedStylesAst.properties.forEach(_ => {
|
|
113
116
|
const prop = _;
|
|
114
117
|
prop.value.type === "StringLiteral" && (prop.value = t.memberExpression(t.identifier("theme"), t.identifier(prop.value.value.slice(1))));
|
|
115
118
|
}), themedStylesAst;
|
|
116
119
|
}
|
|
120
|
+
let hasDynamicStyle = !1;
|
|
117
121
|
for (const attr of props.attrs) switch (attr.type) {
|
|
118
122
|
case "style":
|
|
119
123
|
{
|
|
120
|
-
|
|
124
|
+
let styleExpr = getStyleExpression(attr.value);
|
|
125
|
+
addStyleExpression(styleExpr), options.experimentalFlattenThemesOnNative && addStyleExpression(styleExpr, !0);
|
|
121
126
|
break;
|
|
122
127
|
}
|
|
123
128
|
case "ternary":
|
|
@@ -127,10 +132,9 @@ var src_default = declare(function (api, options) {
|
|
|
127
132
|
alternate
|
|
128
133
|
} = attr.value,
|
|
129
134
|
consExpr = getStyleExpression(consequent),
|
|
130
|
-
altExpr = getStyleExpression(alternate)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const styleExpr = t.conditionalExpression(willFlattenTheme ? t.identifier(`_expressions[${expressions.length - 1}]`) : attr.value.test, consExpr || t.nullLiteral(), altExpr || t.nullLiteral());
|
|
135
|
+
altExpr = getStyleExpression(alternate);
|
|
136
|
+
options.experimentalFlattenThemesOnNative && (expressions.push(attr.value.test), addStyleExpression(t.conditionalExpression(t.identifier(`_expressions[${expressions.length - 1}]`), consExpr || t.nullLiteral(), altExpr || t.nullLiteral()), !0));
|
|
137
|
+
const styleExpr = t.conditionalExpression(attr.value.test, consExpr || t.nullLiteral(), altExpr || t.nullLiteral());
|
|
134
138
|
addStyleExpression(styleExpr
|
|
135
139
|
// TODO: what is this for ?
|
|
136
140
|
// isFlattened ? simpleHash(JSON.stringify({ consequent, alternate })) : undefined
|
|
@@ -140,20 +144,20 @@ var src_default = declare(function (api, options) {
|
|
|
140
144
|
}
|
|
141
145
|
case "dynamic-style":
|
|
142
146
|
{
|
|
143
|
-
expressions.push(attr.value), addStyleExpression(t.objectExpression([t.objectProperty(t.identifier(attr.name), t.identifier(`_expressions[${expressions.length - 1}]`))]));
|
|
147
|
+
hasDynamicStyle = !0, expressions.push(attr.value), addStyleExpression(t.objectExpression([t.objectProperty(t.identifier(attr.name), t.identifier(`_expressions[${expressions.length - 1}]`))]), !0), addStyleExpression(t.objectExpression([t.objectProperty(t.identifier(attr.name), attr.value)]));
|
|
144
148
|
break;
|
|
145
149
|
}
|
|
146
150
|
case "attr":
|
|
147
151
|
{
|
|
148
|
-
t.isJSXSpreadAttribute(attr.value) && isSimpleSpread(attr.value) && stylesExpr.elements.push(t.memberExpression(attr.value.argument, t.identifier("style"))), finalAttrs.push(attr.value);
|
|
152
|
+
t.isJSXSpreadAttribute(attr.value) && isSimpleSpread(attr.value) && (stylesExpr.elements.push(t.memberExpression(attr.value.argument, t.identifier("style"))), hocStylesExpr.elements.push(t.memberExpression(attr.value.argument, t.identifier("style")))), finalAttrs.push(attr.value);
|
|
149
153
|
break;
|
|
150
154
|
}
|
|
151
155
|
}
|
|
152
|
-
if (props.node.attributes = finalAttrs, props.isFlattened) if (themeKeysUsed.size) {
|
|
153
|
-
hasImportedViewWrapper || (root.unshiftContainer("body",
|
|
156
|
+
if (props.node.attributes = finalAttrs, props.isFlattened) if (options.experimentalFlattenThemesOnNative && (themeKeysUsed.size || hocStylesExpr.elements.length > 1 || hasDynamicStyle)) {
|
|
157
|
+
hasImportedViewWrapper || (root.unshiftContainer("body", importWithStyle()), hasImportedViewWrapper = !0);
|
|
154
158
|
const name = props.node.name.name,
|
|
155
159
|
WrapperIdentifier = root.scope.generateUidIdentifier(name + "Wrapper");
|
|
156
|
-
root.pushContainer("body", t.variableDeclaration("const", [t.variableDeclarator(WrapperIdentifier, t.callExpression(t.identifier("
|
|
160
|
+
root.pushContainer("body", t.variableDeclaration("const", [t.variableDeclarator(WrapperIdentifier, t.callExpression(t.identifier("__withStableStyle"), [t.identifier(name), t.arrowFunctionExpression([t.identifier("theme"), t.identifier("_expressions")], t.blockStatement([t.returnStatement(t.callExpression(t.memberExpression(t.identifier("React"), t.identifier("useMemo")), [t.arrowFunctionExpression([], t.blockStatement([t.returnStatement(t.callExpression(t.memberExpression(t.identifier("Object"), t.identifier("assign")), [t.objectExpression([]), ...hocStylesExpr.elements]))])), t.arrayExpression([...[...themeKeysUsed].map(k => t.memberExpression(t.identifier("theme"), t.identifier(k))), t.spreadElement(t.identifier("_expressions"))])]))]))]))])), props.node.name = WrapperIdentifier, expressions.length && props.node.attributes.push(t.jsxAttribute(t.jsxIdentifier("expressions"), t.jsxExpressionContainer(t.arrayExpression(expressions))));
|
|
157
161
|
} else props.node.attributes.push(t.jsxAttribute(t.jsxIdentifier("style"), t.jsxExpressionContainer(stylesExpr.elements.length === 1 ? stylesExpr.elements[0] : stylesExpr)));
|
|
158
162
|
}
|
|
159
163
|
});
|
package/dist/esm/index.native.js
CHANGED
|
@@ -14,8 +14,8 @@ const __ReactNativeView = require('react-native').View;
|
|
|
14
14
|
const __ReactNativeText = require('react-native').Text;
|
|
15
15
|
`), importStyleSheet = template(`
|
|
16
16
|
const __ReactNativeStyleSheet = require('react-native').StyleSheet;
|
|
17
|
-
`),
|
|
18
|
-
const
|
|
17
|
+
`), importWithStyle = template(`
|
|
18
|
+
const __withStableStyle = require('@tamagui/core')._withStableStyle;
|
|
19
19
|
`), extractor = createExtractor({ platform: "native" });
|
|
20
20
|
var src_default = declare(function(api, options) {
|
|
21
21
|
return api.assertVersion(7), {
|
|
@@ -89,22 +89,24 @@ var src_default = declare(function(api, options) {
|
|
|
89
89
|
if (!isFlattened)
|
|
90
90
|
return;
|
|
91
91
|
assertValidTag(props.node);
|
|
92
|
-
const stylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
92
|
+
const stylesExpr = t.arrayExpression([]), hocStylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
93
93
|
function getStyleExpression(style) {
|
|
94
94
|
if (!style)
|
|
95
95
|
return;
|
|
96
96
|
const { plain, themed } = splitThemeStyles(style);
|
|
97
|
+
let themeExpr = null;
|
|
97
98
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
98
99
|
for (const key in themed)
|
|
99
100
|
themeKeysUsed.add(themed[key].split("$")[1]);
|
|
100
|
-
|
|
101
|
+
themeExpr = getThemedStyleExpression(themed);
|
|
101
102
|
}
|
|
102
|
-
|
|
103
|
+
const ident = addSheetStyle(plain, props.node);
|
|
104
|
+
return themeExpr ? (addStyleExpression(ident), addStyleExpression(ident, !0), themeExpr) : ident;
|
|
103
105
|
}
|
|
104
|
-
function addStyleExpression(expr) {
|
|
105
|
-
Array.isArray(expr) ? stylesExpr.elements.push(...expr) : stylesExpr.elements.push(expr);
|
|
106
|
+
function addStyleExpression(expr, HOC = !1) {
|
|
107
|
+
Array.isArray(expr) ? (HOC ? hocStylesExpr : stylesExpr).elements.push(...expr) : (HOC ? hocStylesExpr : stylesExpr).elements.push(expr);
|
|
106
108
|
}
|
|
107
|
-
function
|
|
109
|
+
function getThemedStyleExpression(styles) {
|
|
108
110
|
const themedStylesAst = literalToAst(styles);
|
|
109
111
|
return themedStylesAst.properties.forEach((_) => {
|
|
110
112
|
const prop = _;
|
|
@@ -114,17 +116,26 @@ var src_default = declare(function(api, options) {
|
|
|
114
116
|
));
|
|
115
117
|
}), themedStylesAst;
|
|
116
118
|
}
|
|
119
|
+
let hasDynamicStyle = !1;
|
|
117
120
|
for (const attr of props.attrs)
|
|
118
121
|
switch (attr.type) {
|
|
119
122
|
case "style": {
|
|
120
|
-
|
|
123
|
+
let styleExpr = getStyleExpression(attr.value);
|
|
124
|
+
addStyleExpression(styleExpr), options.experimentalFlattenThemesOnNative && addStyleExpression(styleExpr, !0);
|
|
121
125
|
break;
|
|
122
126
|
}
|
|
123
127
|
case "ternary": {
|
|
124
|
-
const { consequent, alternate } = attr.value, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate)
|
|
125
|
-
|
|
128
|
+
const { consequent, alternate } = attr.value, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate);
|
|
129
|
+
options.experimentalFlattenThemesOnNative && (expressions.push(attr.value.test), addStyleExpression(
|
|
130
|
+
t.conditionalExpression(
|
|
131
|
+
t.identifier(`_expressions[${expressions.length - 1}]`),
|
|
132
|
+
consExpr || t.nullLiteral(),
|
|
133
|
+
altExpr || t.nullLiteral()
|
|
134
|
+
),
|
|
135
|
+
!0
|
|
136
|
+
));
|
|
126
137
|
const styleExpr = t.conditionalExpression(
|
|
127
|
-
|
|
138
|
+
attr.value.test,
|
|
128
139
|
consExpr || t.nullLiteral(),
|
|
129
140
|
altExpr || t.nullLiteral()
|
|
130
141
|
);
|
|
@@ -136,26 +147,36 @@ var src_default = declare(function(api, options) {
|
|
|
136
147
|
break;
|
|
137
148
|
}
|
|
138
149
|
case "dynamic-style": {
|
|
139
|
-
expressions.push(attr.value), addStyleExpression(
|
|
150
|
+
hasDynamicStyle = !0, expressions.push(attr.value), addStyleExpression(
|
|
140
151
|
t.objectExpression([
|
|
141
152
|
t.objectProperty(
|
|
142
153
|
t.identifier(attr.name),
|
|
143
154
|
t.identifier(`_expressions[${expressions.length - 1}]`)
|
|
144
155
|
)
|
|
156
|
+
]),
|
|
157
|
+
!0
|
|
158
|
+
), addStyleExpression(
|
|
159
|
+
t.objectExpression([
|
|
160
|
+
t.objectProperty(
|
|
161
|
+
t.identifier(attr.name),
|
|
162
|
+
attr.value
|
|
163
|
+
)
|
|
145
164
|
])
|
|
146
165
|
);
|
|
147
166
|
break;
|
|
148
167
|
}
|
|
149
168
|
case "attr": {
|
|
150
|
-
t.isJSXSpreadAttribute(attr.value) && isSimpleSpread(attr.value) && stylesExpr.elements.push(
|
|
169
|
+
t.isJSXSpreadAttribute(attr.value) && isSimpleSpread(attr.value) && (stylesExpr.elements.push(
|
|
170
|
+
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
171
|
+
), hocStylesExpr.elements.push(
|
|
151
172
|
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
152
|
-
), finalAttrs.push(attr.value);
|
|
173
|
+
)), finalAttrs.push(attr.value);
|
|
153
174
|
break;
|
|
154
175
|
}
|
|
155
176
|
}
|
|
156
177
|
if (props.node.attributes = finalAttrs, props.isFlattened)
|
|
157
|
-
if (themeKeysUsed.size) {
|
|
158
|
-
hasImportedViewWrapper || (root.unshiftContainer("body",
|
|
178
|
+
if (options.experimentalFlattenThemesOnNative && (themeKeysUsed.size || hocStylesExpr.elements.length > 1 || hasDynamicStyle)) {
|
|
179
|
+
hasImportedViewWrapper || (root.unshiftContainer("body", importWithStyle()), hasImportedViewWrapper = !0);
|
|
159
180
|
const name = props.node.name.name, WrapperIdentifier = root.scope.generateUidIdentifier(
|
|
160
181
|
name + "Wrapper"
|
|
161
182
|
);
|
|
@@ -164,7 +185,7 @@ var src_default = declare(function(api, options) {
|
|
|
164
185
|
t.variableDeclaration("const", [
|
|
165
186
|
t.variableDeclarator(
|
|
166
187
|
WrapperIdentifier,
|
|
167
|
-
t.callExpression(t.identifier("
|
|
188
|
+
t.callExpression(t.identifier("__withStableStyle"), [
|
|
168
189
|
t.identifier(name),
|
|
169
190
|
t.arrowFunctionExpression(
|
|
170
191
|
[t.identifier("theme"), t.identifier("_expressions")],
|
|
@@ -187,7 +208,7 @@ var src_default = declare(function(api, options) {
|
|
|
187
208
|
),
|
|
188
209
|
[
|
|
189
210
|
t.objectExpression([]),
|
|
190
|
-
...
|
|
211
|
+
...hocStylesExpr.elements
|
|
191
212
|
]
|
|
192
213
|
)
|
|
193
214
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/babel-plugin",
|
|
3
|
-
"version": "1.89.
|
|
3
|
+
"version": "1.89.22",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"@babel/helper-plugin-utils": "^7.22.5",
|
|
28
28
|
"@babel/template": "^7.22.15",
|
|
29
29
|
"@babel/traverse": "^7.23.3",
|
|
30
|
-
"@tamagui/static": "1.89.
|
|
30
|
+
"@tamagui/static": "1.89.22"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@babel/types": "^7.23.3",
|
|
34
|
-
"@tamagui/build": "1.89.
|
|
34
|
+
"@tamagui/build": "1.89.22"
|
|
35
35
|
},
|
|
36
36
|
"gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14"
|
|
37
37
|
}
|
package/src/index.ts
CHANGED
|
@@ -22,8 +22,8 @@ const importStyleSheet = template(`
|
|
|
22
22
|
const __ReactNativeStyleSheet = require('react-native').StyleSheet;
|
|
23
23
|
`)
|
|
24
24
|
|
|
25
|
-
const
|
|
26
|
-
const
|
|
25
|
+
const importWithStyle = template(`
|
|
26
|
+
const __withStableStyle = require('@tamagui/core')._withStableStyle;
|
|
27
27
|
`)
|
|
28
28
|
|
|
29
29
|
const extractor = createExtractor({ platform: 'native' })
|
|
@@ -152,6 +152,7 @@ export default declare(function snackBabelPlugin(
|
|
|
152
152
|
|
|
153
153
|
assertValidTag(props.node)
|
|
154
154
|
const stylesExpr = t.arrayExpression([])
|
|
155
|
+
const hocStylesExpr = t.arrayExpression([])
|
|
155
156
|
const expressions: t.Expression[] = []
|
|
156
157
|
const finalAttrs: (t.JSXAttribute | t.JSXSpreadAttribute)[] = []
|
|
157
158
|
const themeKeysUsed = new Set<string>()
|
|
@@ -163,28 +164,34 @@ export default declare(function snackBabelPlugin(
|
|
|
163
164
|
const { plain, themed } = splitThemeStyles(style)
|
|
164
165
|
|
|
165
166
|
// TODO: themed is not a good name, because it's not just theme it also includes tokens
|
|
167
|
+
let themeExpr: t.ObjectExpression | null = null
|
|
166
168
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
167
169
|
for (const key in themed) {
|
|
168
170
|
themeKeysUsed.add(themed[key].split('$')[1])
|
|
169
171
|
}
|
|
170
172
|
|
|
171
173
|
// make a sub-array
|
|
172
|
-
|
|
174
|
+
themeExpr = getThemedStyleExpression(themed)
|
|
173
175
|
}
|
|
174
176
|
const ident = addSheetStyle(plain, props.node)
|
|
177
|
+
if (themeExpr) {
|
|
178
|
+
addStyleExpression(ident)
|
|
179
|
+
addStyleExpression(ident, true)
|
|
180
|
+
return themeExpr
|
|
181
|
+
}
|
|
175
182
|
// since we only do flattened disabling this path
|
|
176
183
|
return ident
|
|
177
184
|
}
|
|
178
185
|
|
|
179
|
-
function addStyleExpression(expr: any) {
|
|
186
|
+
function addStyleExpression(expr: any, HOC = false) {
|
|
180
187
|
if (Array.isArray(expr)) {
|
|
181
|
-
stylesExpr.elements.push(...expr)
|
|
188
|
+
;(HOC ? hocStylesExpr : stylesExpr).elements.push(...expr)
|
|
182
189
|
} else {
|
|
183
|
-
stylesExpr.elements.push(expr)
|
|
190
|
+
;(HOC ? hocStylesExpr : stylesExpr).elements.push(expr)
|
|
184
191
|
}
|
|
185
192
|
}
|
|
186
193
|
|
|
187
|
-
function
|
|
194
|
+
function getThemedStyleExpression(styles: Object) {
|
|
188
195
|
const themedStylesAst = literalToAst(styles) as t.ObjectExpression
|
|
189
196
|
themedStylesAst.properties.forEach((_) => {
|
|
190
197
|
const prop = _ as t.ObjectProperty
|
|
@@ -198,29 +205,38 @@ export default declare(function snackBabelPlugin(
|
|
|
198
205
|
return themedStylesAst
|
|
199
206
|
}
|
|
200
207
|
|
|
208
|
+
let hasDynamicStyle = false
|
|
209
|
+
|
|
201
210
|
for (const attr of props.attrs) {
|
|
202
211
|
switch (attr.type) {
|
|
203
212
|
case 'style': {
|
|
204
|
-
|
|
213
|
+
let styleExpr = getStyleExpression(attr.value)
|
|
214
|
+
addStyleExpression(styleExpr)
|
|
215
|
+
if (options.experimentalFlattenThemesOnNative) {
|
|
216
|
+
addStyleExpression(styleExpr, true)
|
|
217
|
+
}
|
|
205
218
|
break
|
|
206
219
|
}
|
|
207
220
|
|
|
208
221
|
case 'ternary': {
|
|
209
222
|
const { consequent, alternate } = attr.value
|
|
210
|
-
|
|
211
223
|
const consExpr = getStyleExpression(consequent)
|
|
212
224
|
const altExpr = getStyleExpression(alternate)
|
|
213
225
|
|
|
214
|
-
|
|
215
|
-
options.experimentalFlattenThemesOnNative && themeKeysUsed.size
|
|
216
|
-
if (willFlattenTheme) {
|
|
226
|
+
if (options.experimentalFlattenThemesOnNative) {
|
|
217
227
|
expressions.push(attr.value.test)
|
|
228
|
+
addStyleExpression(
|
|
229
|
+
t.conditionalExpression(
|
|
230
|
+
t.identifier(`_expressions[${expressions.length - 1}]`),
|
|
231
|
+
consExpr || t.nullLiteral(),
|
|
232
|
+
altExpr || t.nullLiteral()
|
|
233
|
+
),
|
|
234
|
+
true
|
|
235
|
+
)
|
|
218
236
|
}
|
|
219
237
|
|
|
220
238
|
const styleExpr = t.conditionalExpression(
|
|
221
|
-
|
|
222
|
-
? t.identifier(`_expressions[${expressions.length - 1}]`)
|
|
223
|
-
: attr.value.test,
|
|
239
|
+
attr.value.test,
|
|
224
240
|
consExpr || t.nullLiteral(),
|
|
225
241
|
altExpr || t.nullLiteral()
|
|
226
242
|
)
|
|
@@ -233,6 +249,7 @@ export default declare(function snackBabelPlugin(
|
|
|
233
249
|
}
|
|
234
250
|
|
|
235
251
|
case 'dynamic-style': {
|
|
252
|
+
hasDynamicStyle = true
|
|
236
253
|
expressions.push(attr.value as t.Expression)
|
|
237
254
|
addStyleExpression(
|
|
238
255
|
t.objectExpression([
|
|
@@ -240,6 +257,15 @@ export default declare(function snackBabelPlugin(
|
|
|
240
257
|
t.identifier(attr.name as string),
|
|
241
258
|
t.identifier(`_expressions[${expressions.length - 1}]`)
|
|
242
259
|
),
|
|
260
|
+
]),
|
|
261
|
+
true
|
|
262
|
+
)
|
|
263
|
+
addStyleExpression(
|
|
264
|
+
t.objectExpression([
|
|
265
|
+
t.objectProperty(
|
|
266
|
+
t.identifier(attr.name as string),
|
|
267
|
+
attr.value as t.Expression
|
|
268
|
+
),
|
|
243
269
|
])
|
|
244
270
|
)
|
|
245
271
|
break
|
|
@@ -251,6 +277,9 @@ export default declare(function snackBabelPlugin(
|
|
|
251
277
|
stylesExpr.elements.push(
|
|
252
278
|
t.memberExpression(attr.value.argument, t.identifier('style'))
|
|
253
279
|
)
|
|
280
|
+
hocStylesExpr.elements.push(
|
|
281
|
+
t.memberExpression(attr.value.argument, t.identifier('style'))
|
|
282
|
+
)
|
|
254
283
|
}
|
|
255
284
|
}
|
|
256
285
|
finalAttrs.push(attr.value)
|
|
@@ -262,9 +291,14 @@ export default declare(function snackBabelPlugin(
|
|
|
262
291
|
props.node.attributes = finalAttrs
|
|
263
292
|
|
|
264
293
|
if (props.isFlattened) {
|
|
265
|
-
if (
|
|
294
|
+
if (
|
|
295
|
+
options.experimentalFlattenThemesOnNative &&
|
|
296
|
+
(themeKeysUsed.size ||
|
|
297
|
+
hocStylesExpr.elements.length > 1 ||
|
|
298
|
+
hasDynamicStyle)
|
|
299
|
+
) {
|
|
266
300
|
if (!hasImportedViewWrapper) {
|
|
267
|
-
root.unshiftContainer('body',
|
|
301
|
+
root.unshiftContainer('body', importWithStyle())
|
|
268
302
|
hasImportedViewWrapper = true
|
|
269
303
|
}
|
|
270
304
|
|
|
@@ -278,7 +312,7 @@ export default declare(function snackBabelPlugin(
|
|
|
278
312
|
t.variableDeclaration('const', [
|
|
279
313
|
t.variableDeclarator(
|
|
280
314
|
WrapperIdentifier,
|
|
281
|
-
t.callExpression(t.identifier('
|
|
315
|
+
t.callExpression(t.identifier('__withStableStyle'), [
|
|
282
316
|
t.identifier(name),
|
|
283
317
|
t.arrowFunctionExpression(
|
|
284
318
|
[t.identifier('theme'), t.identifier('_expressions')],
|
|
@@ -301,7 +335,7 @@ export default declare(function snackBabelPlugin(
|
|
|
301
335
|
),
|
|
302
336
|
[
|
|
303
337
|
t.objectExpression([]),
|
|
304
|
-
...
|
|
338
|
+
...hocStylesExpr.elements,
|
|
305
339
|
...[],
|
|
306
340
|
] as any[]
|
|
307
341
|
)
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA8BA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA8BA,wBAmZE"}
|