@tamagui/babel-plugin 1.79.7 → 1.79.9

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 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), ident = addSheetStyle(plain, props.node);
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 t.arrayExpression([ident, addThemedStyleExpression(themed)]);
117
+ themeKeysUsed.add(themed[key].split("$")[1]);
118
+ return addThemedStyleExpression(themed);
119
119
  } else
120
- return ident;
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, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate), styleExpr = t.conditionalExpression(
143
- attr.value.test,
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([t.returnStatement(stylesExpr)])
176
- ),
177
- t.arrayExpression(
178
- [...themeKeysUsed].map((k) => t.stringLiteral(k))
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(
@@ -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
  }
@@ -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), ident = addSheetStyle(plain, props.node);
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 t.arrayExpression([ident, addThemedStyleExpression(themed)]);
118
+ themeKeysUsed.add(themed[key].split("$")[1]);
119
+ return addThemedStyleExpression(themed);
120
120
  } else
121
- return ident;
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, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate), styleExpr = t.conditionalExpression(
144
- attr.value.test,
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([t.returnStatement(stylesExpr)])
177
- ),
178
- t.arrayExpression(
179
- [...themeKeysUsed].map((k) => t.stringLiteral(k))
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), ident = addSheetStyle(plain, props.node);
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 t.arrayExpression([ident, addThemedStyleExpression(themed)]);
99
+ themeKeysUsed.add(themed[key].split("$")[1]);
100
+ return addThemedStyleExpression(themed);
101
101
  } else
102
- return ident;
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, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate), styleExpr = t.conditionalExpression(
125
- attr.value.test,
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([t.returnStatement(stylesExpr)])
158
- ),
159
- t.arrayExpression(
160
- [...themeKeysUsed].map((k) => t.stringLiteral(k))
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
  }
@@ -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), ident = addSheetStyle(plain, props.node);
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 t.arrayExpression([ident, addThemedStyleExpression(themed)]);
99
+ themeKeysUsed.add(themed[key].split("$")[1]);
100
+ return addThemedStyleExpression(themed);
101
101
  } else
102
- return ident;
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, consExpr = getStyleExpression(consequent), altExpr = getStyleExpression(alternate), styleExpr = t.conditionalExpression(
125
- attr.value.test,
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([t.returnStatement(stylesExpr)])
158
- ),
159
- t.arrayExpression(
160
- [...themeKeysUsed].map((k) => t.stringLiteral(k))
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.7",
3
+ "version": "1.79.9",
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.7",
31
- "@tamagui/static": "1.79.7"
30
+ "@tamagui/simple-hash": "1.79.9",
31
+ "@tamagui/static": "1.79.9"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@babel/types": "^7.23.3",
35
- "@tamagui/build": "1.79.7"
35
+ "@tamagui/build": "1.79.9"
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
- const ident = addSheetStyle(plain, props.node)
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 t.arrayExpression([ident, addThemedStyleExpression(themed)])
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
- stylesExpr.elements.push(expr)
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
- attr.value.test,
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([t.returnStatement(stylesExpr)])
255
- ),
256
- t.arrayExpression(
257
- [...themeKeysUsed].map((k) => t.stringLiteral(k))
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(
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA+BA,wBAsSE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA+BA,wBAqWE"}