@tamagui/web 1.9.13 → 1.9.15
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/createTokens.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +7 -0
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +45 -32
- package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
- package/dist/esm/createTokens.js.map +2 -2
- package/dist/esm/createTokens.mjs.map +2 -2
- package/dist/esm/helpers/createPropMapper.js +7 -0
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/createPropMapper.mjs +7 -0
- package/dist/esm/helpers/createPropMapper.mjs.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +46 -32
- package/dist/esm/helpers/getSplitStyles.js.map +3 -3
- package/dist/esm/helpers/getSplitStyles.mjs +46 -32
- package/dist/esm/helpers/getSplitStyles.mjs.map +3 -3
- package/package.json +9 -9
- package/src/createTokens.ts +1 -0
- package/src/helpers/createPropMapper.ts +13 -0
- package/src/helpers/getSplitStyles.tsx +56 -30
- package/types/helpers/createPropMapper.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
useIsomorphicLayoutEffect,
|
|
7
7
|
} from '@tamagui/constants'
|
|
8
8
|
import {
|
|
9
|
+
stylePropsFont,
|
|
9
10
|
stylePropsText,
|
|
10
11
|
stylePropsTransform,
|
|
11
12
|
validPseudoKeys,
|
|
@@ -295,11 +296,20 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
295
296
|
}
|
|
296
297
|
}
|
|
297
298
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
299
|
+
/**
|
|
300
|
+
* Need to process these after done with flattening the rest of the props + variants/mediam when we have the final font family.
|
|
301
|
+
*
|
|
302
|
+
* We use this because fonts are grouped together and cannot be processed correctly without the correct font family.
|
|
303
|
+
*/
|
|
304
|
+
const specialProps: [string, any][] = []
|
|
305
|
+
|
|
306
|
+
function processProp(
|
|
307
|
+
keyInit: string,
|
|
308
|
+
valInit: any,
|
|
309
|
+
special = false,
|
|
310
|
+
fontFamilyOverride: any = null
|
|
311
|
+
) {
|
|
312
|
+
if (keyInit === 'className') return // handled above
|
|
303
313
|
|
|
304
314
|
// normalize shorthands up front
|
|
305
315
|
if (keyInit in shorthands) {
|
|
@@ -312,18 +322,18 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
312
322
|
keyInit = 'selectable'
|
|
313
323
|
valInit = valInit === 'none' ? false : true
|
|
314
324
|
} else if (keyInit.startsWith('data-') || keyInit.startsWith('aria-')) {
|
|
315
|
-
|
|
325
|
+
return
|
|
316
326
|
}
|
|
317
327
|
}
|
|
318
328
|
|
|
319
329
|
if (!staticConfig.isHOC) {
|
|
320
330
|
if (keyInit in skipProps) {
|
|
321
|
-
|
|
331
|
+
return
|
|
322
332
|
}
|
|
323
333
|
}
|
|
324
334
|
|
|
325
335
|
if (keyInit in usedKeys) {
|
|
326
|
-
|
|
336
|
+
return
|
|
327
337
|
}
|
|
328
338
|
|
|
329
339
|
if (typeof valInit === 'string' && valInit[0] === '_') {
|
|
@@ -334,7 +344,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
334
344
|
style[keyInit] = reverseMapClassNameToValue(keyInit, valInit)
|
|
335
345
|
}
|
|
336
346
|
usedKeys[keyInit] = 1
|
|
337
|
-
|
|
347
|
+
return
|
|
338
348
|
}
|
|
339
349
|
}
|
|
340
350
|
|
|
@@ -342,26 +352,26 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
342
352
|
for (const key in valInit) {
|
|
343
353
|
viewProps[`data-${hyphenate(key)}`] = valInit[key]
|
|
344
354
|
}
|
|
345
|
-
|
|
355
|
+
return
|
|
346
356
|
}
|
|
347
357
|
|
|
348
358
|
const isMainStyle = keyInit === 'style'
|
|
349
359
|
if (isMainStyle || keyInit.startsWith('_style')) {
|
|
350
|
-
if (!valInit)
|
|
360
|
+
if (!valInit) return
|
|
351
361
|
const styles = Array.isArray(valInit) ? valInit : [valInit]
|
|
352
362
|
const styleLen = styles.length
|
|
353
363
|
for (let j = styleLen; j >= 0; j--) {
|
|
354
364
|
const cur = styles[j]
|
|
355
|
-
if (!cur)
|
|
365
|
+
if (!cur) return
|
|
356
366
|
for (const key in cur) {
|
|
357
367
|
if (!isMainStyle && usedKeys[key]) {
|
|
358
|
-
|
|
368
|
+
return
|
|
359
369
|
}
|
|
360
370
|
usedKeys[key] = 1
|
|
361
371
|
style[key] = cur[key]
|
|
362
372
|
}
|
|
363
373
|
}
|
|
364
|
-
|
|
374
|
+
return
|
|
365
375
|
}
|
|
366
376
|
|
|
367
377
|
if (process.env.TAMAGUI_TARGET === 'web') {
|
|
@@ -383,14 +393,14 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
383
393
|
viewProps.disabled = true
|
|
384
394
|
}
|
|
385
395
|
if (!variants?.disabled) {
|
|
386
|
-
|
|
396
|
+
return
|
|
387
397
|
}
|
|
388
398
|
}
|
|
389
399
|
|
|
390
400
|
if (keyInit === 'testID') {
|
|
391
401
|
usedKeys[keyInit] = 1
|
|
392
402
|
viewProps[isReactNative ? 'testId' : 'data-testid'] = valInit
|
|
393
|
-
|
|
403
|
+
return
|
|
394
404
|
}
|
|
395
405
|
|
|
396
406
|
if (keyInit === 'id' || keyInit === 'nativeID') {
|
|
@@ -400,7 +410,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
400
410
|
} else {
|
|
401
411
|
viewProps.id = valInit
|
|
402
412
|
}
|
|
403
|
-
|
|
413
|
+
return
|
|
404
414
|
}
|
|
405
415
|
|
|
406
416
|
let didUseKeyInit = false
|
|
@@ -410,7 +420,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
410
420
|
if (accessibilityDirectMap[keyInit] || keyInit.startsWith('accessibility')) {
|
|
411
421
|
viewProps[keyInit] = valInit
|
|
412
422
|
usedKeys[keyInit] = 1
|
|
413
|
-
|
|
423
|
+
return
|
|
414
424
|
}
|
|
415
425
|
} else {
|
|
416
426
|
didUseKeyInit = true
|
|
@@ -425,7 +435,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
425
435
|
} else {
|
|
426
436
|
viewProps.role = accessibilityRoleToWebRole[valInit] || valInit
|
|
427
437
|
}
|
|
428
|
-
|
|
438
|
+
return
|
|
429
439
|
}
|
|
430
440
|
case 'accessibilityLabelledBy':
|
|
431
441
|
case 'accessibilityFlowTo':
|
|
@@ -433,17 +443,17 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
433
443
|
case 'accessibilityDescribedBy': {
|
|
434
444
|
viewProps[`aria-${keyInit.replace('accessibility', '').toLowerCase()}`] =
|
|
435
445
|
processIDRefList(valInit)
|
|
436
|
-
|
|
446
|
+
return
|
|
437
447
|
}
|
|
438
448
|
case 'accessibilityKeyShortcuts': {
|
|
439
449
|
if (Array.isArray(valInit)) {
|
|
440
450
|
viewProps['aria-keyshortcuts'] = valInit.join(' ')
|
|
441
451
|
}
|
|
442
|
-
|
|
452
|
+
return
|
|
443
453
|
}
|
|
444
454
|
case 'accessibilityLiveRegion': {
|
|
445
455
|
viewProps['aria-live'] = valInit === 'none' ? 'off' : valInit
|
|
446
|
-
|
|
456
|
+
return
|
|
447
457
|
}
|
|
448
458
|
case 'accessibilityReadOnly': {
|
|
449
459
|
viewProps['aria-readonly'] = valInit
|
|
@@ -455,7 +465,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
455
465
|
) {
|
|
456
466
|
viewProps.readOnly = true
|
|
457
467
|
}
|
|
458
|
-
|
|
468
|
+
return
|
|
459
469
|
}
|
|
460
470
|
case 'accessibilityRequired': {
|
|
461
471
|
viewProps['aria-required'] = valInit
|
|
@@ -467,7 +477,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
467
477
|
) {
|
|
468
478
|
viewProps.required = valInit
|
|
469
479
|
}
|
|
470
|
-
|
|
480
|
+
return
|
|
471
481
|
}
|
|
472
482
|
default: {
|
|
473
483
|
didUseKeyInit = false
|
|
@@ -478,7 +488,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
478
488
|
|
|
479
489
|
if (didUseKeyInit) {
|
|
480
490
|
usedKeys[keyInit] = 1
|
|
481
|
-
|
|
491
|
+
return
|
|
482
492
|
}
|
|
483
493
|
|
|
484
494
|
if (valInit && valInit[0] === '_') {
|
|
@@ -497,7 +507,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
497
507
|
console.log('tamagui classname props', keyInit, valInit)
|
|
498
508
|
}
|
|
499
509
|
mergeClassName(transforms, classNames, keyInit, valInit, isMediaOrPseudo)
|
|
500
|
-
|
|
510
|
+
return
|
|
501
511
|
}
|
|
502
512
|
}
|
|
503
513
|
}
|
|
@@ -546,7 +556,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
546
556
|
// which now has it's own unstyled + the child unstyled...
|
|
547
557
|
// so *don't* skip applying the styles, but also pass `unstyled` to children
|
|
548
558
|
if (!isVariant) {
|
|
549
|
-
|
|
559
|
+
return
|
|
550
560
|
}
|
|
551
561
|
}
|
|
552
562
|
|
|
@@ -562,7 +572,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
562
572
|
keyInit,
|
|
563
573
|
valInit,
|
|
564
574
|
theme,
|
|
565
|
-
props,
|
|
575
|
+
special ? { ...props, fontFamily: fontFamilyOverride } : props,
|
|
566
576
|
state,
|
|
567
577
|
languageContext,
|
|
568
578
|
undefined,
|
|
@@ -583,11 +593,14 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
583
593
|
// eslint-disable-next-line no-console
|
|
584
594
|
console.groupEnd()
|
|
585
595
|
}
|
|
586
|
-
|
|
587
|
-
if (!expanded) continue
|
|
596
|
+
if (!expanded) return
|
|
588
597
|
|
|
589
598
|
for (const [key, val] of expanded) {
|
|
590
599
|
if (val === undefined) continue
|
|
600
|
+
if (key in stylePropsFont && !special && key !== 'fontFamily') {
|
|
601
|
+
specialProps.push([key, val])
|
|
602
|
+
continue
|
|
603
|
+
}
|
|
591
604
|
|
|
592
605
|
isMedia = isMediaKey(key)
|
|
593
606
|
isPseudo = key in validPseudoKeys
|
|
@@ -825,6 +838,19 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
825
838
|
}
|
|
826
839
|
}
|
|
827
840
|
|
|
841
|
+
// loop backwards so we can skip already-used props
|
|
842
|
+
for (let i = len - 1; i >= 0; i--) {
|
|
843
|
+
const keyInit = propKeys[i]
|
|
844
|
+
const valInit = props[keyInit]
|
|
845
|
+
processProp(keyInit, valInit)
|
|
846
|
+
}
|
|
847
|
+
// loop the special props once again
|
|
848
|
+
// this one doesn't need to be backwards since it was pushed in the backwards loop (is already reversed)
|
|
849
|
+
for (let i = 0; i < specialProps.length; i++) {
|
|
850
|
+
const [key, value] = specialProps[i]
|
|
851
|
+
processProp(key, value, true, fontFamily)
|
|
852
|
+
}
|
|
853
|
+
|
|
828
854
|
fixStyles(style)
|
|
829
855
|
if (isWeb) {
|
|
830
856
|
styleToCSS(style)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPropMapper.d.ts","sourceRoot":"","sources":["../../src/helpers/createPropMapper.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EAEtB,MAAM,aAAa,CAAA;AAQpB,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,OAAO,GACP,UAAU,GACV,MAAM,GACN,iBAAiB,CAAA;AAErB,eAAO,MAAM,oBAAoB,UAAW,GAAG,SAAS,QAAQ,eAAe,CAAC,qBAE/E,CAAA;AAED,eAAO,MAAM,gBAAgB,iBAAkB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"createPropMapper.d.ts","sourceRoot":"","sources":["../../src/helpers/createPropMapper.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAGV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EAEtB,MAAM,aAAa,CAAA;AAQpB,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,OAAO,GACP,UAAU,GACV,MAAM,GACN,iBAAiB,CAAA;AAErB,eAAO,MAAM,oBAAoB,UAAW,GAAG,SAAS,QAAQ,eAAe,CAAC,qBAE/E,CAAA;AAED,eAAO,MAAM,gBAAgB,iBAAkB,kBAAkB,eAgGhE,CAAA;AA+GD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,qBAAqB,sBA2BtF;AAMD,eAAO,MAAM,uBAAuB,cAAe,GAAG,QAErD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EACT,cAAc,EAMd,eAAe,EACf,kBAAkB,EAElB,qBAAqB,EACrB,cAAc,EACd,WAAW,EAEZ,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gCAAgC,CAAA;AAkBvC,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,cAAc,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,UAAU,EAAE,gBAAgB,CAAA;IAC5B,YAAY,EAAE,kBAAkB,CAAA;IAChC,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,KAAK,EAAE,eAAe,CAAA;IACtB,IAAI,EAAE,qBAAqB,CAAA;IAC3B,eAAe,CAAC,EAAE,iBAAiB,CAAA;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAsFhE,KAAK,aAAa,GAAG,CACnB,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,kBAAkB,EAChC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,eAAe,EACtB,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,eAAe,CAAC,EAAE,mBAAmB,EAErC,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,SAAS,KACd,cAAc,CAAA;AAEnB,eAAO,MAAM,UAAU,MAAM,CAAA;AAqB7B,eAAO,MAAM,cAAc,EAAE,aAgyB5B,CAAA;AA0FD,eAAO,MAAM,WAAW,eACV,aAAa,UACjB,MAAM,WACL,MAAM,sBACK,OAAO,wBACL,OAAO,KAC5B,cA6BF,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,aAI/B,CAAA;AAOD,eAAO,MAAM,cAAc,EAAE,aAU5B,CAAA;AA2BD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA"}
|