@tamagui/core 1.2.3 → 1.2.4

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.
@@ -286,37 +286,49 @@ const resolveTokensAndVariants: StyleResolver = (
286
286
  const fKey = conf.shorthands[rKey] || rKey
287
287
  const val = value[rKey]
288
288
 
289
- if (isVariable(val)) {
290
- res[fKey] = !isWeb || returnVariablesAs === 'value' ? val.val : val.variable
291
- } else if (variants[fKey]) {
289
+ if (fKey in variants) {
292
290
  // avoids infinite loop if variant is matching a style prop
293
291
  // eg: { variants: { flex: { true: { flex: 2 } } } }
294
- if (parentVariantKey === key) {
292
+ if (parentVariantKey && parentVariantKey === key) {
295
293
  res[fKey] = val
296
294
  } else {
297
- Object.assign(
298
- res,
299
- Object.fromEntries(
300
- resolveVariants(
301
- fKey,
302
- val,
303
- props,
304
- defaultProps,
305
- theme,
306
- variants,
307
- fontFamily,
308
- conf,
309
- returnVariablesAs,
310
- staticConfig,
311
- key,
312
- languageContext,
313
- avoidDefaultProps,
314
- debug
315
- )
316
- )
295
+ const variantOut = resolveVariants(
296
+ fKey,
297
+ val,
298
+ props,
299
+ defaultProps,
300
+ theme,
301
+ variants,
302
+ fontFamily,
303
+ conf,
304
+ returnVariablesAs,
305
+ staticConfig,
306
+ key,
307
+ languageContext,
308
+ avoidDefaultProps,
309
+ debug
317
310
  )
311
+
312
+ const { pressStyle, hoverStyle, focusStyle, enterStyle, exitStyle, ...rest } =
313
+ Object.fromEntries(variantOut)
314
+ const subs = { pressStyle, hoverStyle, focusStyle, enterStyle, exitStyle }
315
+ Object.assign(res, rest)
316
+ for (const key in subs) {
317
+ if (subs[key]) {
318
+ res[key] ??= {}
319
+ Object.assign(res[key], subs[key])
320
+ }
321
+ }
318
322
  }
319
- } else if (typeof val === 'string') {
323
+ continue
324
+ }
325
+
326
+ if (isVariable(val)) {
327
+ res[fKey] = !isWeb || returnVariablesAs === 'value' ? val.val : val.variable
328
+ continue
329
+ }
330
+
331
+ if (typeof val === 'string') {
320
332
  const fVal =
321
333
  val[0] === '$'
322
334
  ? getToken(
@@ -331,10 +343,15 @@ const resolveTokensAndVariants: StyleResolver = (
331
343
  )
332
344
  : val
333
345
  res[fKey] = fVal
334
- } else {
335
- if (isObj(val)) {
336
- // sub-objects: media queries, pseudos, shadowOffset
337
- res[fKey] = resolveTokensAndVariants(
346
+ continue
347
+ }
348
+
349
+ if (isObj(val)) {
350
+ // sub-objects: media queries, pseudos, shadowOffset
351
+ res[fKey] ??= {}
352
+ Object.assign(
353
+ res[fKey],
354
+ resolveTokensAndVariants(
338
355
  fKey,
339
356
  val,
340
357
  props,
@@ -350,11 +367,12 @@ const resolveTokensAndVariants: StyleResolver = (
350
367
  avoidDefaultProps,
351
368
  debug
352
369
  )
353
- } else {
354
- // nullish values cant be tokens, need no extra parsing
355
- res[fKey] = val
356
- }
370
+ )
371
+ } else {
372
+ // nullish values cant be tokens, need no extra parsing
373
+ res[fKey] = val
357
374
  }
375
+
358
376
  if (process.env.NODE_ENV === 'development') {
359
377
  if (debug) {
360
378
  if (res[fKey]?.[0] === '$') {
@@ -1 +1 @@
1
- {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAeA,OAAO,KAWN,MAAM,OAAO,CAAA;AAkBd,OAAO,EACL,SAAS,EACT,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EAErB,cAAc,EAIf,MAAM,SAAS,CAAA;AAoBhB,eAAO,MAAM,qBAAqB,EAAE,qBAMnC,CAAA;AAeD,eAAO,MAAM,QAAQ,eAAsB,CAAA;AAkC3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,GAAG,EAAE,EACtC,GAAG,GAAG,cAAc,EACpB,SAAS,GAAG,KAAK,EAEjB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,EACpD,eAAe,CAAC,EAAE,iBAAiB,4DAs3BpC;AAGD,eAAO,MAAM,QAAQ;YAAW;QAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE;;CAEjD,CAAA;AAMD,eAAO,MAAM,MAAM,0DA8CjB,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,mBAiGxD"}
1
+ {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAeA,OAAO,KAWN,MAAM,OAAO,CAAA;AAkBd,OAAO,EACL,SAAS,EACT,cAAc,EACd,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EAErB,cAAc,EAIf,MAAM,SAAS,CAAA;AAoBhB,eAAO,MAAM,qBAAqB,EAAE,qBAMnC,CAAA;AAeD,eAAO,MAAM,QAAQ,eAAsB,CAAA;AAkC3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,GAAG,EAAE,EACtC,GAAG,GAAG,cAAc,EACpB,SAAS,GAAG,KAAK,EAEjB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,EACpD,eAAe,CAAC,EAAE,iBAAiB,4DAw3BpC;AAGD,eAAO,MAAM,QAAQ;YAAW;QAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE;;CAEjD,CAAA;AAMD,eAAO,MAAM,MAAM,0DA8CjB,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B,SAAS,CAAC,EAAE,cAAc,CAAA;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,mBAiGxD"}