@tamagui/babel-plugin 1.79.7 → 1.79.8
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 +65 -15
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +65 -15
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/index.js +65 -15
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.native.js +65 -15
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +75 -12
- package/types/index.d.ts.map +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -107,20 +107,20 @@ 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([]), finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
110
|
+
const stylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
111
111
|
function getStyleExpression(style) {
|
|
112
112
|
if (!style)
|
|
113
113
|
return;
|
|
114
|
-
const { plain, themed } = splitThemeStyles(style)
|
|
114
|
+
const { plain, themed } = splitThemeStyles(style);
|
|
115
115
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
116
116
|
for (const key in themed)
|
|
117
|
-
themeKeysUsed.add(key);
|
|
118
|
-
return
|
|
117
|
+
themeKeysUsed.add(themed[key].split("$")[1]);
|
|
118
|
+
return addThemedStyleExpression(themed);
|
|
119
119
|
} else
|
|
120
|
-
return
|
|
120
|
+
return addSheetStyle(plain, props.node);
|
|
121
121
|
}
|
|
122
122
|
function addStyleExpression(expr) {
|
|
123
|
-
stylesExpr.elements.push(expr);
|
|
123
|
+
Array.isArray(expr) ? stylesExpr.elements.push(...expr) : stylesExpr.elements.push(expr);
|
|
124
124
|
}
|
|
125
125
|
function addThemedStyleExpression(styles) {
|
|
126
126
|
const themedStylesAst = (0, import_static.literalToAst)(styles);
|
|
@@ -139,17 +139,31 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
139
139
|
break;
|
|
140
140
|
}
|
|
141
141
|
case "ternary": {
|
|
142
|
-
const { consequent, alternate } = attr.value
|
|
143
|
-
|
|
142
|
+
const { consequent, alternate } = attr.value;
|
|
143
|
+
options.experimentalFlattenThemesOnNative && expressions.push(attr.value.test);
|
|
144
|
+
const consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate), styleExpr = t.conditionalExpression(
|
|
145
|
+
options.experimentalFlattenThemesOnNative ? t.identifier(`expressions[${expressions.length - 1}]`) : attr.value.test,
|
|
144
146
|
consExpr || t.nullLiteral(),
|
|
145
147
|
altExpr || t.nullLiteral()
|
|
146
148
|
);
|
|
147
149
|
addStyleExpression(
|
|
148
150
|
styleExpr
|
|
151
|
+
// TODO: what is this for ?
|
|
149
152
|
// isFlattened ? simpleHash(JSON.stringify({ consequent, alternate })) : undefined
|
|
150
153
|
);
|
|
151
154
|
break;
|
|
152
155
|
}
|
|
156
|
+
case "dynamic-style": {
|
|
157
|
+
expressions.push(attr.value), addStyleExpression(
|
|
158
|
+
t.objectExpression([
|
|
159
|
+
t.objectProperty(
|
|
160
|
+
t.identifier(attr.name),
|
|
161
|
+
t.identifier(`expressions[${expressions.length - 1}]`)
|
|
162
|
+
)
|
|
163
|
+
])
|
|
164
|
+
);
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
153
167
|
case "attr": {
|
|
154
168
|
t.isJSXSpreadAttribute(attr.value) && (0, import_static.isSimpleSpread)(attr.value) && stylesExpr.elements.push(
|
|
155
169
|
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
@@ -158,7 +172,7 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
158
172
|
}
|
|
159
173
|
}
|
|
160
174
|
if (props.node.attributes = finalAttrs, props.isFlattened)
|
|
161
|
-
if (themeKeysUsed.size) {
|
|
175
|
+
if (themeKeysUsed.size || expressions.length) {
|
|
162
176
|
hasImportedViewWrapper || (root.unshiftContainer("body", importWithTheme()), hasImportedViewWrapper = !0);
|
|
163
177
|
const name = props.node.name.name, WrapperIdentifier = root.scope.generateUidIdentifier(
|
|
164
178
|
name + "Wrapper"
|
|
@@ -171,16 +185,52 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
171
185
|
t.callExpression(t.identifier("__internalWithTheme"), [
|
|
172
186
|
t.identifier(name),
|
|
173
187
|
t.arrowFunctionExpression(
|
|
174
|
-
[t.identifier("theme")],
|
|
175
|
-
t.blockStatement([
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
188
|
+
[t.identifier("theme"), t.identifier("expressions")],
|
|
189
|
+
t.blockStatement([
|
|
190
|
+
t.returnStatement(
|
|
191
|
+
t.callExpression(
|
|
192
|
+
t.memberExpression(
|
|
193
|
+
t.identifier("React"),
|
|
194
|
+
t.identifier("useMemo")
|
|
195
|
+
),
|
|
196
|
+
[
|
|
197
|
+
t.arrowFunctionExpression(
|
|
198
|
+
[],
|
|
199
|
+
t.blockStatement([
|
|
200
|
+
t.returnStatement(
|
|
201
|
+
t.callExpression(
|
|
202
|
+
t.memberExpression(
|
|
203
|
+
t.identifier("Object"),
|
|
204
|
+
t.identifier("assign")
|
|
205
|
+
),
|
|
206
|
+
[...stylesExpr.elements]
|
|
207
|
+
)
|
|
208
|
+
)
|
|
209
|
+
])
|
|
210
|
+
),
|
|
211
|
+
t.arrayExpression([
|
|
212
|
+
...[...themeKeysUsed].map(
|
|
213
|
+
(k) => t.memberExpression(
|
|
214
|
+
t.identifier("theme"),
|
|
215
|
+
t.identifier(k)
|
|
216
|
+
)
|
|
217
|
+
),
|
|
218
|
+
t.spreadElement(t.identifier("expressions"))
|
|
219
|
+
])
|
|
220
|
+
]
|
|
221
|
+
)
|
|
222
|
+
)
|
|
223
|
+
])
|
|
179
224
|
)
|
|
180
225
|
])
|
|
181
226
|
)
|
|
182
227
|
])
|
|
183
|
-
), props.node.name = WrapperIdentifier
|
|
228
|
+
), props.node.name = WrapperIdentifier, expressions.length && props.node.attributes.push(
|
|
229
|
+
t.jsxAttribute(
|
|
230
|
+
t.jsxIdentifier("expressions"),
|
|
231
|
+
t.jsxExpressionContainer(t.arrayExpression(expressions))
|
|
232
|
+
)
|
|
233
|
+
);
|
|
184
234
|
} else
|
|
185
235
|
props.node.attributes.push(
|
|
186
236
|
t.jsxAttribute(
|
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
|
@@ -108,20 +108,20 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
108
108
|
if (!isFlattened)
|
|
109
109
|
return;
|
|
110
110
|
assertValidTag(props.node);
|
|
111
|
-
const stylesExpr = t.arrayExpression([]), finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
111
|
+
const stylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
112
112
|
function getStyleExpression(style) {
|
|
113
113
|
if (!style)
|
|
114
114
|
return;
|
|
115
|
-
const { plain, themed } = splitThemeStyles(style)
|
|
115
|
+
const { plain, themed } = splitThemeStyles(style);
|
|
116
116
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
117
117
|
for (const key in themed)
|
|
118
|
-
themeKeysUsed.add(key);
|
|
119
|
-
return
|
|
118
|
+
themeKeysUsed.add(themed[key].split("$")[1]);
|
|
119
|
+
return addThemedStyleExpression(themed);
|
|
120
120
|
} else
|
|
121
|
-
return
|
|
121
|
+
return addSheetStyle(plain, props.node);
|
|
122
122
|
}
|
|
123
123
|
function addStyleExpression(expr) {
|
|
124
|
-
stylesExpr.elements.push(expr);
|
|
124
|
+
Array.isArray(expr) ? stylesExpr.elements.push(...expr) : stylesExpr.elements.push(expr);
|
|
125
125
|
}
|
|
126
126
|
function addThemedStyleExpression(styles) {
|
|
127
127
|
const themedStylesAst = (0, import_static.literalToAst)(styles);
|
|
@@ -140,17 +140,31 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
140
140
|
break;
|
|
141
141
|
}
|
|
142
142
|
case "ternary": {
|
|
143
|
-
const { consequent, alternate } = attr.value
|
|
144
|
-
|
|
143
|
+
const { consequent, alternate } = attr.value;
|
|
144
|
+
options.experimentalFlattenThemesOnNative && expressions.push(attr.value.test);
|
|
145
|
+
const consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate), styleExpr = t.conditionalExpression(
|
|
146
|
+
options.experimentalFlattenThemesOnNative ? t.identifier(`expressions[${expressions.length - 1}]`) : attr.value.test,
|
|
145
147
|
consExpr || t.nullLiteral(),
|
|
146
148
|
altExpr || t.nullLiteral()
|
|
147
149
|
);
|
|
148
150
|
addStyleExpression(
|
|
149
151
|
styleExpr
|
|
152
|
+
// TODO: what is this for ?
|
|
150
153
|
// isFlattened ? simpleHash(JSON.stringify({ consequent, alternate })) : undefined
|
|
151
154
|
);
|
|
152
155
|
break;
|
|
153
156
|
}
|
|
157
|
+
case "dynamic-style": {
|
|
158
|
+
expressions.push(attr.value), addStyleExpression(
|
|
159
|
+
t.objectExpression([
|
|
160
|
+
t.objectProperty(
|
|
161
|
+
t.identifier(attr.name),
|
|
162
|
+
t.identifier(`expressions[${expressions.length - 1}]`)
|
|
163
|
+
)
|
|
164
|
+
])
|
|
165
|
+
);
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
154
168
|
case "attr": {
|
|
155
169
|
t.isJSXSpreadAttribute(attr.value) && (0, import_static.isSimpleSpread)(attr.value) && stylesExpr.elements.push(
|
|
156
170
|
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
@@ -159,7 +173,7 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
159
173
|
}
|
|
160
174
|
}
|
|
161
175
|
if (props.node.attributes = finalAttrs, props.isFlattened)
|
|
162
|
-
if (themeKeysUsed.size) {
|
|
176
|
+
if (themeKeysUsed.size || expressions.length) {
|
|
163
177
|
hasImportedViewWrapper || (root.unshiftContainer("body", importWithTheme()), hasImportedViewWrapper = !0);
|
|
164
178
|
const name = props.node.name.name, WrapperIdentifier = root.scope.generateUidIdentifier(
|
|
165
179
|
name + "Wrapper"
|
|
@@ -172,16 +186,52 @@ var src_default = (0, import_helper_plugin_utils.declare)(function(api, options)
|
|
|
172
186
|
t.callExpression(t.identifier("__internalWithTheme"), [
|
|
173
187
|
t.identifier(name),
|
|
174
188
|
t.arrowFunctionExpression(
|
|
175
|
-
[t.identifier("theme")],
|
|
176
|
-
t.blockStatement([
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
189
|
+
[t.identifier("theme"), t.identifier("expressions")],
|
|
190
|
+
t.blockStatement([
|
|
191
|
+
t.returnStatement(
|
|
192
|
+
t.callExpression(
|
|
193
|
+
t.memberExpression(
|
|
194
|
+
t.identifier("React"),
|
|
195
|
+
t.identifier("useMemo")
|
|
196
|
+
),
|
|
197
|
+
[
|
|
198
|
+
t.arrowFunctionExpression(
|
|
199
|
+
[],
|
|
200
|
+
t.blockStatement([
|
|
201
|
+
t.returnStatement(
|
|
202
|
+
t.callExpression(
|
|
203
|
+
t.memberExpression(
|
|
204
|
+
t.identifier("Object"),
|
|
205
|
+
t.identifier("assign")
|
|
206
|
+
),
|
|
207
|
+
[...stylesExpr.elements]
|
|
208
|
+
)
|
|
209
|
+
)
|
|
210
|
+
])
|
|
211
|
+
),
|
|
212
|
+
t.arrayExpression([
|
|
213
|
+
...[...themeKeysUsed].map(
|
|
214
|
+
(k) => t.memberExpression(
|
|
215
|
+
t.identifier("theme"),
|
|
216
|
+
t.identifier(k)
|
|
217
|
+
)
|
|
218
|
+
),
|
|
219
|
+
t.spreadElement(t.identifier("expressions"))
|
|
220
|
+
])
|
|
221
|
+
]
|
|
222
|
+
)
|
|
223
|
+
)
|
|
224
|
+
])
|
|
180
225
|
)
|
|
181
226
|
])
|
|
182
227
|
)
|
|
183
228
|
])
|
|
184
|
-
), props.node.name = WrapperIdentifier
|
|
229
|
+
), props.node.name = WrapperIdentifier, expressions.length && props.node.attributes.push(
|
|
230
|
+
t.jsxAttribute(
|
|
231
|
+
t.jsxIdentifier("expressions"),
|
|
232
|
+
t.jsxExpressionContainer(t.arrayExpression(expressions))
|
|
233
|
+
)
|
|
234
|
+
);
|
|
185
235
|
} else
|
|
186
236
|
props.node.attributes.push(
|
|
187
237
|
t.jsxAttribute(
|
|
@@ -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
|
@@ -89,20 +89,20 @@ var src_default = declare(function(api, options) {
|
|
|
89
89
|
if (!isFlattened)
|
|
90
90
|
return;
|
|
91
91
|
assertValidTag(props.node);
|
|
92
|
-
const stylesExpr = t.arrayExpression([]), finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
92
|
+
const stylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
93
93
|
function getStyleExpression(style) {
|
|
94
94
|
if (!style)
|
|
95
95
|
return;
|
|
96
|
-
const { plain, themed } = splitThemeStyles(style)
|
|
96
|
+
const { plain, themed } = splitThemeStyles(style);
|
|
97
97
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
98
98
|
for (const key in themed)
|
|
99
|
-
themeKeysUsed.add(key);
|
|
100
|
-
return
|
|
99
|
+
themeKeysUsed.add(themed[key].split("$")[1]);
|
|
100
|
+
return addThemedStyleExpression(themed);
|
|
101
101
|
} else
|
|
102
|
-
return
|
|
102
|
+
return addSheetStyle(plain, props.node);
|
|
103
103
|
}
|
|
104
104
|
function addStyleExpression(expr) {
|
|
105
|
-
stylesExpr.elements.push(expr);
|
|
105
|
+
Array.isArray(expr) ? stylesExpr.elements.push(...expr) : stylesExpr.elements.push(expr);
|
|
106
106
|
}
|
|
107
107
|
function addThemedStyleExpression(styles) {
|
|
108
108
|
const themedStylesAst = literalToAst(styles);
|
|
@@ -121,17 +121,31 @@ var src_default = declare(function(api, options) {
|
|
|
121
121
|
break;
|
|
122
122
|
}
|
|
123
123
|
case "ternary": {
|
|
124
|
-
const { consequent, alternate } = attr.value
|
|
125
|
-
|
|
124
|
+
const { consequent, alternate } = attr.value;
|
|
125
|
+
options.experimentalFlattenThemesOnNative && expressions.push(attr.value.test);
|
|
126
|
+
const consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate), styleExpr = t.conditionalExpression(
|
|
127
|
+
options.experimentalFlattenThemesOnNative ? t.identifier(`expressions[${expressions.length - 1}]`) : attr.value.test,
|
|
126
128
|
consExpr || t.nullLiteral(),
|
|
127
129
|
altExpr || t.nullLiteral()
|
|
128
130
|
);
|
|
129
131
|
addStyleExpression(
|
|
130
132
|
styleExpr
|
|
133
|
+
// TODO: what is this for ?
|
|
131
134
|
// isFlattened ? simpleHash(JSON.stringify({ consequent, alternate })) : undefined
|
|
132
135
|
);
|
|
133
136
|
break;
|
|
134
137
|
}
|
|
138
|
+
case "dynamic-style": {
|
|
139
|
+
expressions.push(attr.value), addStyleExpression(
|
|
140
|
+
t.objectExpression([
|
|
141
|
+
t.objectProperty(
|
|
142
|
+
t.identifier(attr.name),
|
|
143
|
+
t.identifier(`expressions[${expressions.length - 1}]`)
|
|
144
|
+
)
|
|
145
|
+
])
|
|
146
|
+
);
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
135
149
|
case "attr": {
|
|
136
150
|
t.isJSXSpreadAttribute(attr.value) && isSimpleSpread(attr.value) && stylesExpr.elements.push(
|
|
137
151
|
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
@@ -140,7 +154,7 @@ var src_default = declare(function(api, options) {
|
|
|
140
154
|
}
|
|
141
155
|
}
|
|
142
156
|
if (props.node.attributes = finalAttrs, props.isFlattened)
|
|
143
|
-
if (themeKeysUsed.size) {
|
|
157
|
+
if (themeKeysUsed.size || expressions.length) {
|
|
144
158
|
hasImportedViewWrapper || (root.unshiftContainer("body", importWithTheme()), hasImportedViewWrapper = !0);
|
|
145
159
|
const name = props.node.name.name, WrapperIdentifier = root.scope.generateUidIdentifier(
|
|
146
160
|
name + "Wrapper"
|
|
@@ -153,16 +167,52 @@ var src_default = declare(function(api, options) {
|
|
|
153
167
|
t.callExpression(t.identifier("__internalWithTheme"), [
|
|
154
168
|
t.identifier(name),
|
|
155
169
|
t.arrowFunctionExpression(
|
|
156
|
-
[t.identifier("theme")],
|
|
157
|
-
t.blockStatement([
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
170
|
+
[t.identifier("theme"), t.identifier("expressions")],
|
|
171
|
+
t.blockStatement([
|
|
172
|
+
t.returnStatement(
|
|
173
|
+
t.callExpression(
|
|
174
|
+
t.memberExpression(
|
|
175
|
+
t.identifier("React"),
|
|
176
|
+
t.identifier("useMemo")
|
|
177
|
+
),
|
|
178
|
+
[
|
|
179
|
+
t.arrowFunctionExpression(
|
|
180
|
+
[],
|
|
181
|
+
t.blockStatement([
|
|
182
|
+
t.returnStatement(
|
|
183
|
+
t.callExpression(
|
|
184
|
+
t.memberExpression(
|
|
185
|
+
t.identifier("Object"),
|
|
186
|
+
t.identifier("assign")
|
|
187
|
+
),
|
|
188
|
+
[...stylesExpr.elements]
|
|
189
|
+
)
|
|
190
|
+
)
|
|
191
|
+
])
|
|
192
|
+
),
|
|
193
|
+
t.arrayExpression([
|
|
194
|
+
...[...themeKeysUsed].map(
|
|
195
|
+
(k) => t.memberExpression(
|
|
196
|
+
t.identifier("theme"),
|
|
197
|
+
t.identifier(k)
|
|
198
|
+
)
|
|
199
|
+
),
|
|
200
|
+
t.spreadElement(t.identifier("expressions"))
|
|
201
|
+
])
|
|
202
|
+
]
|
|
203
|
+
)
|
|
204
|
+
)
|
|
205
|
+
])
|
|
161
206
|
)
|
|
162
207
|
])
|
|
163
208
|
)
|
|
164
209
|
])
|
|
165
|
-
), props.node.name = WrapperIdentifier
|
|
210
|
+
), props.node.name = WrapperIdentifier, expressions.length && props.node.attributes.push(
|
|
211
|
+
t.jsxAttribute(
|
|
212
|
+
t.jsxIdentifier("expressions"),
|
|
213
|
+
t.jsxExpressionContainer(t.arrayExpression(expressions))
|
|
214
|
+
)
|
|
215
|
+
);
|
|
166
216
|
} else
|
|
167
217
|
props.node.attributes.push(
|
|
168
218
|
t.jsxAttribute(
|
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": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/index.native.js
CHANGED
|
@@ -89,20 +89,20 @@ var src_default = declare(function(api, options) {
|
|
|
89
89
|
if (!isFlattened)
|
|
90
90
|
return;
|
|
91
91
|
assertValidTag(props.node);
|
|
92
|
-
const stylesExpr = t.arrayExpression([]), finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
92
|
+
const stylesExpr = t.arrayExpression([]), expressions = [], finalAttrs = [], themeKeysUsed = /* @__PURE__ */ new Set();
|
|
93
93
|
function getStyleExpression(style) {
|
|
94
94
|
if (!style)
|
|
95
95
|
return;
|
|
96
|
-
const { plain, themed } = splitThemeStyles(style)
|
|
96
|
+
const { plain, themed } = splitThemeStyles(style);
|
|
97
97
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
98
98
|
for (const key in themed)
|
|
99
|
-
themeKeysUsed.add(key);
|
|
100
|
-
return
|
|
99
|
+
themeKeysUsed.add(themed[key].split("$")[1]);
|
|
100
|
+
return addThemedStyleExpression(themed);
|
|
101
101
|
} else
|
|
102
|
-
return
|
|
102
|
+
return addSheetStyle(plain, props.node);
|
|
103
103
|
}
|
|
104
104
|
function addStyleExpression(expr) {
|
|
105
|
-
stylesExpr.elements.push(expr);
|
|
105
|
+
Array.isArray(expr) ? stylesExpr.elements.push(...expr) : stylesExpr.elements.push(expr);
|
|
106
106
|
}
|
|
107
107
|
function addThemedStyleExpression(styles) {
|
|
108
108
|
const themedStylesAst = literalToAst(styles);
|
|
@@ -121,17 +121,31 @@ var src_default = declare(function(api, options) {
|
|
|
121
121
|
break;
|
|
122
122
|
}
|
|
123
123
|
case "ternary": {
|
|
124
|
-
const { consequent, alternate } = attr.value
|
|
125
|
-
|
|
124
|
+
const { consequent, alternate } = attr.value;
|
|
125
|
+
options.experimentalFlattenThemesOnNative && expressions.push(attr.value.test);
|
|
126
|
+
const consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate), styleExpr = t.conditionalExpression(
|
|
127
|
+
options.experimentalFlattenThemesOnNative ? t.identifier(`expressions[${expressions.length - 1}]`) : attr.value.test,
|
|
126
128
|
consExpr || t.nullLiteral(),
|
|
127
129
|
altExpr || t.nullLiteral()
|
|
128
130
|
);
|
|
129
131
|
addStyleExpression(
|
|
130
132
|
styleExpr
|
|
133
|
+
// TODO: what is this for ?
|
|
131
134
|
// isFlattened ? simpleHash(JSON.stringify({ consequent, alternate })) : undefined
|
|
132
135
|
);
|
|
133
136
|
break;
|
|
134
137
|
}
|
|
138
|
+
case "dynamic-style": {
|
|
139
|
+
expressions.push(attr.value), addStyleExpression(
|
|
140
|
+
t.objectExpression([
|
|
141
|
+
t.objectProperty(
|
|
142
|
+
t.identifier(attr.name),
|
|
143
|
+
t.identifier(`expressions[${expressions.length - 1}]`)
|
|
144
|
+
)
|
|
145
|
+
])
|
|
146
|
+
);
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
135
149
|
case "attr": {
|
|
136
150
|
t.isJSXSpreadAttribute(attr.value) && isSimpleSpread(attr.value) && stylesExpr.elements.push(
|
|
137
151
|
t.memberExpression(attr.value.argument, t.identifier("style"))
|
|
@@ -140,7 +154,7 @@ var src_default = declare(function(api, options) {
|
|
|
140
154
|
}
|
|
141
155
|
}
|
|
142
156
|
if (props.node.attributes = finalAttrs, props.isFlattened)
|
|
143
|
-
if (themeKeysUsed.size) {
|
|
157
|
+
if (themeKeysUsed.size || expressions.length) {
|
|
144
158
|
hasImportedViewWrapper || (root.unshiftContainer("body", importWithTheme()), hasImportedViewWrapper = !0);
|
|
145
159
|
const name = props.node.name.name, WrapperIdentifier = root.scope.generateUidIdentifier(
|
|
146
160
|
name + "Wrapper"
|
|
@@ -153,16 +167,52 @@ var src_default = declare(function(api, options) {
|
|
|
153
167
|
t.callExpression(t.identifier("__internalWithTheme"), [
|
|
154
168
|
t.identifier(name),
|
|
155
169
|
t.arrowFunctionExpression(
|
|
156
|
-
[t.identifier("theme")],
|
|
157
|
-
t.blockStatement([
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
170
|
+
[t.identifier("theme"), t.identifier("expressions")],
|
|
171
|
+
t.blockStatement([
|
|
172
|
+
t.returnStatement(
|
|
173
|
+
t.callExpression(
|
|
174
|
+
t.memberExpression(
|
|
175
|
+
t.identifier("React"),
|
|
176
|
+
t.identifier("useMemo")
|
|
177
|
+
),
|
|
178
|
+
[
|
|
179
|
+
t.arrowFunctionExpression(
|
|
180
|
+
[],
|
|
181
|
+
t.blockStatement([
|
|
182
|
+
t.returnStatement(
|
|
183
|
+
t.callExpression(
|
|
184
|
+
t.memberExpression(
|
|
185
|
+
t.identifier("Object"),
|
|
186
|
+
t.identifier("assign")
|
|
187
|
+
),
|
|
188
|
+
[...stylesExpr.elements]
|
|
189
|
+
)
|
|
190
|
+
)
|
|
191
|
+
])
|
|
192
|
+
),
|
|
193
|
+
t.arrayExpression([
|
|
194
|
+
...[...themeKeysUsed].map(
|
|
195
|
+
(k) => t.memberExpression(
|
|
196
|
+
t.identifier("theme"),
|
|
197
|
+
t.identifier(k)
|
|
198
|
+
)
|
|
199
|
+
),
|
|
200
|
+
t.spreadElement(t.identifier("expressions"))
|
|
201
|
+
])
|
|
202
|
+
]
|
|
203
|
+
)
|
|
204
|
+
)
|
|
205
|
+
])
|
|
161
206
|
)
|
|
162
207
|
])
|
|
163
208
|
)
|
|
164
209
|
])
|
|
165
|
-
), props.node.name = WrapperIdentifier
|
|
210
|
+
), props.node.name = WrapperIdentifier, expressions.length && props.node.attributes.push(
|
|
211
|
+
t.jsxAttribute(
|
|
212
|
+
t.jsxIdentifier("expressions"),
|
|
213
|
+
t.jsxExpressionContainer(t.arrayExpression(expressions))
|
|
214
|
+
)
|
|
215
|
+
);
|
|
166
216
|
} else
|
|
167
217
|
props.node.attributes.push(
|
|
168
218
|
t.jsxAttribute(
|
|
@@ -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.79.
|
|
3
|
+
"version": "1.79.8",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -27,12 +27,12 @@
|
|
|
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/simple-hash": "1.79.
|
|
31
|
-
"@tamagui/static": "1.79.
|
|
30
|
+
"@tamagui/simple-hash": "1.79.8",
|
|
31
|
+
"@tamagui/static": "1.79.8"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@babel/types": "^7.23.3",
|
|
35
|
-
"@tamagui/build": "1.79.
|
|
35
|
+
"@tamagui/build": "1.79.8"
|
|
36
36
|
},
|
|
37
37
|
"gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14"
|
|
38
38
|
}
|
package/src/index.ts
CHANGED
|
@@ -147,6 +147,7 @@ export default declare(function snackBabelPlugin(
|
|
|
147
147
|
|
|
148
148
|
assertValidTag(props.node)
|
|
149
149
|
const stylesExpr = t.arrayExpression([])
|
|
150
|
+
const expressions: t.Expression[] = []
|
|
150
151
|
const finalAttrs: (t.JSXAttribute | t.JSXSpreadAttribute)[] = []
|
|
151
152
|
const themeKeysUsed = new Set<string>()
|
|
152
153
|
|
|
@@ -156,16 +157,16 @@ export default declare(function snackBabelPlugin(
|
|
|
156
157
|
// split theme properties and leave them as props since RN has no concept of theme
|
|
157
158
|
const { plain, themed } = splitThemeStyles(style)
|
|
158
159
|
|
|
159
|
-
|
|
160
|
-
|
|
160
|
+
// TODO: themed is not a good name, because it's not just theme it also includes tokens
|
|
161
161
|
if (themed && options.experimentalFlattenThemesOnNative) {
|
|
162
162
|
for (const key in themed) {
|
|
163
|
-
themeKeysUsed.add(key)
|
|
163
|
+
themeKeysUsed.add(themed[key].split('$')[1])
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
// make a sub-array
|
|
167
|
-
return
|
|
167
|
+
return addThemedStyleExpression(themed)
|
|
168
168
|
} else {
|
|
169
|
+
const ident = addSheetStyle(plain, props.node)
|
|
169
170
|
// since we only do flattened disabling this path
|
|
170
171
|
return ident
|
|
171
172
|
// when we supported extracting non-flattened
|
|
@@ -174,7 +175,11 @@ export default declare(function snackBabelPlugin(
|
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
function addStyleExpression(expr: any) {
|
|
177
|
-
|
|
178
|
+
if (Array.isArray(expr)) {
|
|
179
|
+
stylesExpr.elements.push(...expr)
|
|
180
|
+
} else {
|
|
181
|
+
stylesExpr.elements.push(expr)
|
|
182
|
+
}
|
|
178
183
|
}
|
|
179
184
|
|
|
180
185
|
function addThemedStyleExpression(styles: Object) {
|
|
@@ -200,20 +205,39 @@ export default declare(function snackBabelPlugin(
|
|
|
200
205
|
case 'ternary': {
|
|
201
206
|
const { consequent, alternate } = attr.value
|
|
202
207
|
|
|
208
|
+
if (options.experimentalFlattenThemesOnNative) {
|
|
209
|
+
expressions.push(attr.value.test)
|
|
210
|
+
}
|
|
211
|
+
|
|
203
212
|
const consExpr = getStyleExpression(consequent)
|
|
204
213
|
const altExpr = getStyleExpression(alternate)
|
|
205
214
|
|
|
206
215
|
const styleExpr = t.conditionalExpression(
|
|
207
|
-
|
|
216
|
+
options.experimentalFlattenThemesOnNative
|
|
217
|
+
? t.identifier(`expressions[${expressions.length - 1}]`)
|
|
218
|
+
: attr.value.test,
|
|
208
219
|
consExpr || t.nullLiteral(),
|
|
209
220
|
altExpr || t.nullLiteral()
|
|
210
221
|
)
|
|
211
222
|
addStyleExpression(
|
|
212
223
|
styleExpr
|
|
224
|
+
// TODO: what is this for ?
|
|
213
225
|
// isFlattened ? simpleHash(JSON.stringify({ consequent, alternate })) : undefined
|
|
214
226
|
)
|
|
215
227
|
break
|
|
216
228
|
}
|
|
229
|
+
case 'dynamic-style': {
|
|
230
|
+
expressions.push(attr.value as t.Expression)
|
|
231
|
+
addStyleExpression(
|
|
232
|
+
t.objectExpression([
|
|
233
|
+
t.objectProperty(
|
|
234
|
+
t.identifier(attr.name as string),
|
|
235
|
+
t.identifier(`expressions[${expressions.length - 1}]`)
|
|
236
|
+
),
|
|
237
|
+
])
|
|
238
|
+
)
|
|
239
|
+
break
|
|
240
|
+
}
|
|
217
241
|
case 'attr': {
|
|
218
242
|
if (t.isJSXSpreadAttribute(attr.value)) {
|
|
219
243
|
if (isSimpleSpread(attr.value)) {
|
|
@@ -231,7 +255,7 @@ export default declare(function snackBabelPlugin(
|
|
|
231
255
|
props.node.attributes = finalAttrs
|
|
232
256
|
|
|
233
257
|
if (props.isFlattened) {
|
|
234
|
-
if (themeKeysUsed.size) {
|
|
258
|
+
if (themeKeysUsed.size || expressions.length) {
|
|
235
259
|
if (!hasImportedViewWrapper) {
|
|
236
260
|
root.unshiftContainer('body', importWithTheme())
|
|
237
261
|
hasImportedViewWrapper = true
|
|
@@ -250,11 +274,42 @@ export default declare(function snackBabelPlugin(
|
|
|
250
274
|
t.callExpression(t.identifier('__internalWithTheme'), [
|
|
251
275
|
t.identifier(name),
|
|
252
276
|
t.arrowFunctionExpression(
|
|
253
|
-
[t.identifier('theme')],
|
|
254
|
-
t.blockStatement([
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
277
|
+
[t.identifier('theme'), t.identifier('expressions')],
|
|
278
|
+
t.blockStatement([
|
|
279
|
+
t.returnStatement(
|
|
280
|
+
t.callExpression(
|
|
281
|
+
t.memberExpression(
|
|
282
|
+
t.identifier('React'),
|
|
283
|
+
t.identifier('useMemo')
|
|
284
|
+
),
|
|
285
|
+
[
|
|
286
|
+
t.arrowFunctionExpression(
|
|
287
|
+
[],
|
|
288
|
+
t.blockStatement([
|
|
289
|
+
t.returnStatement(
|
|
290
|
+
t.callExpression(
|
|
291
|
+
t.memberExpression(
|
|
292
|
+
t.identifier('Object'),
|
|
293
|
+
t.identifier('assign')
|
|
294
|
+
),
|
|
295
|
+
[...stylesExpr.elements, ...[]] as any[]
|
|
296
|
+
)
|
|
297
|
+
),
|
|
298
|
+
])
|
|
299
|
+
),
|
|
300
|
+
t.arrayExpression([
|
|
301
|
+
...[...themeKeysUsed].map((k) =>
|
|
302
|
+
t.memberExpression(
|
|
303
|
+
t.identifier('theme'),
|
|
304
|
+
t.identifier(k)
|
|
305
|
+
)
|
|
306
|
+
),
|
|
307
|
+
t.spreadElement(t.identifier('expressions')),
|
|
308
|
+
]),
|
|
309
|
+
]
|
|
310
|
+
)
|
|
311
|
+
),
|
|
312
|
+
])
|
|
258
313
|
),
|
|
259
314
|
])
|
|
260
315
|
),
|
|
@@ -263,6 +318,14 @@ export default declare(function snackBabelPlugin(
|
|
|
263
318
|
|
|
264
319
|
// @ts-ignore
|
|
265
320
|
props.node.name = WrapperIdentifier
|
|
321
|
+
if (expressions.length) {
|
|
322
|
+
props.node.attributes.push(
|
|
323
|
+
t.jsxAttribute(
|
|
324
|
+
t.jsxIdentifier('expressions'),
|
|
325
|
+
t.jsxExpressionContainer(t.arrayExpression(expressions))
|
|
326
|
+
)
|
|
327
|
+
)
|
|
328
|
+
}
|
|
266
329
|
} else {
|
|
267
330
|
props.node.attributes.push(
|
|
268
331
|
t.jsxAttribute(
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA+BA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA+BA,wBAqWE"}
|