@tamagui/web 2.0.0-1768636514428 → 2.0.0-1768696252732
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/animationDriverTypes.test-d.cjs +49 -0
- package/dist/cjs/animationDriverTypes.test-d.js +51 -0
- package/dist/cjs/animationDriverTypes.test-d.js.map +6 -0
- package/dist/cjs/animationDriverTypes.test-d.native.js +52 -0
- package/dist/cjs/animationDriverTypes.test-d.native.js.map +1 -0
- package/dist/cjs/config.cjs +14 -0
- package/dist/cjs/config.js +14 -0
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/config.native.js +14 -0
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/createComponent.cjs +25 -7
- package/dist/cjs/createComponent.js +23 -7
- package/dist/cjs/createComponent.js.map +1 -1
- package/dist/cjs/createComponent.native.js +34 -8
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/createTamagui.cjs +3 -2
- package/dist/cjs/createTamagui.js +3 -2
- package/dist/cjs/createTamagui.js.map +1 -1
- package/dist/cjs/createTamagui.native.js +1 -1
- package/dist/cjs/createTamagui.native.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.cjs +2 -1
- package/dist/cjs/helpers/getSplitStyles.js +1 -1
- package/dist/cjs/helpers/getSplitStyles.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.native.js +1 -0
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/getThemeCSSRules.cjs +23 -26
- package/dist/cjs/helpers/getThemeCSSRules.js +2 -4
- package/dist/cjs/helpers/getThemeCSSRules.js.map +1 -1
- package/dist/cjs/helpers/mergeRenderElementProps.cjs +32 -0
- package/dist/cjs/helpers/mergeRenderElementProps.js +25 -0
- package/dist/cjs/helpers/mergeRenderElementProps.js.map +6 -0
- package/dist/cjs/helpers/mergeRenderElementProps.native.js +35 -0
- package/dist/cjs/helpers/mergeRenderElementProps.native.js.map +1 -0
- package/dist/cjs/helpers/mergeSlotStyleProps.cjs +39 -0
- package/dist/cjs/helpers/mergeSlotStyleProps.js +29 -0
- package/dist/cjs/helpers/mergeSlotStyleProps.js.map +6 -0
- package/dist/cjs/helpers/mergeSlotStyleProps.native.js +42 -0
- package/dist/cjs/helpers/mergeSlotStyleProps.native.js.map +1 -0
- package/dist/cjs/helpers/skipProps.cjs +1 -1
- package/dist/cjs/helpers/skipProps.js +1 -1
- package/dist/cjs/helpers/skipProps.js.map +1 -1
- package/dist/cjs/helpers/skipProps.native.js +1 -1
- package/dist/cjs/helpers/skipProps.native.js.map +1 -1
- package/dist/cjs/helpers/useRenderElement.cjs +48 -0
- package/dist/cjs/helpers/useRenderElement.js +42 -0
- package/dist/cjs/helpers/useRenderElement.js.map +6 -0
- package/dist/cjs/helpers/useRenderElement.native.js +52 -0
- package/dist/cjs/helpers/useRenderElement.native.js.map +1 -0
- package/dist/cjs/hooks/getThemeProxied.js.map +1 -1
- package/dist/cjs/hooks/getThemeProxied.native.js +1 -1
- package/dist/cjs/hooks/getThemeProxied.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/styled.js.map +1 -1
- package/dist/cjs/styled.native.js.map +1 -1
- package/dist/cjs/views/Configuration.js.map +1 -1
- package/dist/cjs/views/Configuration.native.js.map +1 -1
- package/dist/cjs/views/Slot.cjs +7 -21
- package/dist/cjs/views/Slot.js +9 -13
- package/dist/cjs/views/Slot.js.map +1 -1
- package/dist/cjs/views/Slot.native.js +5 -21
- package/dist/cjs/views/Slot.native.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.cjs +6 -2
- package/dist/cjs/views/TamaguiProvider.js +5 -2
- package/dist/cjs/views/TamaguiProvider.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.native.js +5 -1
- package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
- package/dist/cjs/views/Theme.js.map +1 -1
- package/dist/cjs/views/Theme.native.js.map +1 -1
- package/dist/esm/animationDriverTypes.test-d.js +51 -0
- package/dist/esm/animationDriverTypes.test-d.js.map +6 -0
- package/dist/esm/animationDriverTypes.test-d.mjs +50 -0
- package/dist/esm/animationDriverTypes.test-d.mjs.map +1 -0
- package/dist/esm/animationDriverTypes.test-d.native.js +50 -0
- package/dist/esm/animationDriverTypes.test-d.native.js.map +1 -0
- package/dist/esm/config.js +14 -0
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/config.mjs +14 -1
- package/dist/esm/config.mjs.map +1 -1
- package/dist/esm/config.native.js +14 -1
- package/dist/esm/config.native.js.map +1 -1
- package/dist/esm/createComponent.js +23 -6
- package/dist/esm/createComponent.js.map +1 -1
- package/dist/esm/createComponent.mjs +25 -7
- package/dist/esm/createComponent.mjs.map +1 -1
- package/dist/esm/createComponent.native.js +34 -8
- package/dist/esm/createComponent.native.js.map +1 -1
- package/dist/esm/createTamagui.js +3 -2
- package/dist/esm/createTamagui.js.map +1 -1
- package/dist/esm/createTamagui.mjs +3 -2
- package/dist/esm/createTamagui.mjs.map +1 -1
- package/dist/esm/createTamagui.native.js +1 -1
- package/dist/esm/createTamagui.native.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.js +1 -1
- package/dist/esm/helpers/getSplitStyles.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +2 -1
- package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
- package/dist/esm/helpers/getSplitStyles.native.js +1 -0
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/getThemeCSSRules.js +2 -4
- package/dist/esm/helpers/getThemeCSSRules.js.map +1 -1
- package/dist/esm/helpers/getThemeCSSRules.mjs +23 -26
- package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
- package/dist/esm/helpers/mergeRenderElementProps.js +9 -0
- package/dist/esm/helpers/mergeRenderElementProps.js.map +6 -0
- package/dist/esm/helpers/mergeRenderElementProps.mjs +9 -0
- package/dist/esm/helpers/mergeRenderElementProps.mjs.map +1 -0
- package/dist/esm/helpers/mergeRenderElementProps.native.js +9 -0
- package/dist/esm/helpers/mergeRenderElementProps.native.js.map +1 -0
- package/dist/esm/helpers/mergeSlotStyleProps.js +14 -0
- package/dist/esm/helpers/mergeSlotStyleProps.js.map +6 -0
- package/dist/esm/helpers/mergeSlotStyleProps.mjs +16 -0
- package/dist/esm/helpers/mergeSlotStyleProps.mjs.map +1 -0
- package/dist/esm/helpers/mergeSlotStyleProps.native.js +16 -0
- package/dist/esm/helpers/mergeSlotStyleProps.native.js.map +1 -0
- package/dist/esm/helpers/skipProps.js +1 -1
- package/dist/esm/helpers/skipProps.js.map +1 -1
- package/dist/esm/helpers/skipProps.mjs +1 -1
- package/dist/esm/helpers/skipProps.mjs.map +1 -1
- package/dist/esm/helpers/skipProps.native.js +1 -1
- package/dist/esm/helpers/skipProps.native.js.map +1 -1
- package/dist/esm/helpers/useRenderElement.js +28 -0
- package/dist/esm/helpers/useRenderElement.js.map +6 -0
- package/dist/esm/helpers/useRenderElement.mjs +25 -0
- package/dist/esm/helpers/useRenderElement.mjs.map +1 -0
- package/dist/esm/helpers/useRenderElement.native.js +26 -0
- package/dist/esm/helpers/useRenderElement.native.js.map +1 -0
- package/dist/esm/hooks/getThemeProxied.js.map +1 -1
- package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
- package/dist/esm/hooks/getThemeProxied.native.js +1 -1
- package/dist/esm/hooks/getThemeProxied.native.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/styled.js.map +1 -1
- package/dist/esm/styled.mjs.map +1 -1
- package/dist/esm/styled.native.js.map +1 -1
- package/dist/esm/views/Configuration.js.map +1 -1
- package/dist/esm/views/Configuration.mjs.map +1 -1
- package/dist/esm/views/Configuration.native.js.map +1 -1
- package/dist/esm/views/Slot.js +10 -14
- package/dist/esm/views/Slot.js.map +1 -1
- package/dist/esm/views/Slot.mjs +7 -21
- package/dist/esm/views/Slot.mjs.map +1 -1
- package/dist/esm/views/Slot.native.js +7 -23
- package/dist/esm/views/Slot.native.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.js +5 -2
- package/dist/esm/views/TamaguiProvider.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.mjs +6 -2
- package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
- package/dist/esm/views/TamaguiProvider.native.js +5 -1
- package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
- package/dist/esm/views/Theme.js.map +1 -1
- package/dist/esm/views/Theme.mjs.map +1 -1
- package/dist/esm/views/Theme.native.js.map +1 -1
- package/package.json +12 -12
- package/src/animationDriverTypes.test-d.ts +256 -0
- package/src/config.ts +41 -0
- package/src/createComponent.tsx +45 -10
- package/src/createTamagui.ts +2 -2
- package/src/helpers/getSplitStyles.tsx +4 -2
- package/src/helpers/getThemeCSSRules.ts +2 -9
- package/src/helpers/mergeRenderElementProps.ts +17 -0
- package/src/helpers/mergeSlotStyleProps.ts +46 -0
- package/src/helpers/skipProps.ts +1 -1
- package/src/helpers/useRenderElement.tsx +66 -0
- package/src/hooks/getThemeProxied.ts +2 -1
- package/src/index.ts +1 -0
- package/src/interfaces/TamaguiComponentPropsBaseBase.tsx +19 -4
- package/src/styled.tsx +4 -3
- package/src/types.tsx +85 -25
- package/src/views/Configuration.tsx +0 -2
- package/src/views/Slot.tsx +14 -32
- package/src/views/TamaguiProvider.tsx +12 -1
- package/src/views/Theme.tsx +0 -6
- package/types/animationDriverTypes.type-test.d.ts +37 -0
- package/types/config.d.ts +15 -1
- package/types/config.d.ts.map +1 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
- package/types/helpers/mergeRenderElementProps.d.ts +7 -0
- package/types/helpers/mergeRenderElementProps.d.ts.map +1 -0
- package/types/helpers/mergeSlotStyleProps.d.ts +10 -0
- package/types/helpers/mergeSlotStyleProps.d.ts.map +1 -0
- package/types/helpers/skipProps.d.ts +1 -1
- package/types/helpers/useRenderElement.d.ts +13 -0
- package/types/helpers/useRenderElement.d.ts.map +1 -0
- package/types/hooks/getThemeProxied.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/interfaces/TamaguiComponentPropsBaseBase.d.ts +8 -4
- package/types/interfaces/TamaguiComponentPropsBaseBase.d.ts.map +1 -1
- package/types/styled.d.ts +1 -0
- package/types/styled.d.ts.map +1 -1
- package/types/types.d.ts +50 -22
- package/types/types.d.ts.map +1 -1
- package/types/views/Configuration.d.ts +0 -2
- package/types/views/Configuration.d.ts.map +1 -1
- package/types/views/Slot.d.ts.map +1 -1
- package/types/views/TamaguiProvider.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isWeb","React","Children","cloneElement","forwardRef","isValidElement","useRef","variableToString","useThemeWithState","getThemeState","hasThemeUpdatingProps","ThemeStateContext","ThemeDebug","jsx","Theme","props","ref","disable","children","passThrough","isRoot","_isRoot","_","themeState","finalChildren","map","child","only","stateRef","hasEverThemed","getThemedChildren","avoidForwardRef","shallow","forceClassName","state","current","shouldRenderChildrenWithTheme","isNew","process","env","NODE_ENV","debug","themeProps","Provider","value","id","isInverse","name","requiresExtraWrapper","parentId","parentState","Error","toArray","console","warn","themeSpanProps","getThemeClassNameAndColor","baseStyle","contain","inertContainedStyle","inertStyle","className","color","style","className2","startsWith","display","empty","themeColor","theme","themeClassName","replace","schemePrefix","themeNameParts","split","themeClasses","length","hierarchyClasses","i","push","slice","join"],"sources":["../../../src/views/Theme.tsx"],"sourcesContent":[null],"mappings":"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
|
|
1
|
+
{"version":3,"names":["isWeb","React","Children","cloneElement","forwardRef","isValidElement","useRef","variableToString","useThemeWithState","getThemeState","hasThemeUpdatingProps","ThemeStateContext","ThemeDebug","jsx","Theme","props","ref","disable","children","passThrough","isRoot","_isRoot","_","themeState","finalChildren","map","child","only","stateRef","hasEverThemed","getThemedChildren","avoidForwardRef","shallow","forceClassName","state","current","shouldRenderChildrenWithTheme","isNew","process","env","NODE_ENV","debug","themeProps","Provider","value","id","isInverse","name","requiresExtraWrapper","parentId","parentState","Error","toArray","console","warn","themeSpanProps","getThemeClassNameAndColor","baseStyle","contain","inertContainedStyle","inertStyle","className","color","style","className2","startsWith","display","empty","themeColor","theme","themeClassName","replace","schemePrefix","themeNameParts","split","themeClasses","length","hierarchyClasses","i","push","slice","join"],"sources":["../../../src/views/Theme.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","isWeb","React","Children","cloneElement","forwardRef","isValidElement","useRef","variableToString","useThemeWithState","getThemeState","hasThemeUpdatingProps","ThemeStateContext","ThemeDebug","Theme","props","ref","disable","children","passThrough","isRoot","_isRoot","_","themeState","disableDirectChildTheme","finalChildren","map","child","only","stateRef","hasEverThemed","getThemedChildren","avoidForwardRef","arguments","length","shallow","forceClassName","state","current","shouldRenderChildrenWithTheme","isNew","process","env","NODE_ENV","debug","themeProps","Provider","value","id","isInverse","name","requiresExtraWrapper","parentId","parentState","Error","toArray","console","warn","themeSpanProps","getThemeClassNameAndColor","baseStyle","contain","inertContainedStyle","inertStyle","className","color","style","className1","startsWith","display","empty","themeColor","theme","themeClassName","replace","schemePrefix","themeNameParts","split","themeClasses","hierarchyClasses","i","push","slice","join"],"sources":["../../../src/views/Theme.tsx"],"sourcesContent":[null],"mappings":"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
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","isWeb","React","Children","cloneElement","forwardRef","isValidElement","useRef","variableToString","useThemeWithState","getThemeState","hasThemeUpdatingProps","ThemeStateContext","ThemeDebug","Theme","props","ref","disable","children","passThrough","isRoot","_isRoot","_","themeState","disableDirectChildTheme","finalChildren","map","child","only","stateRef","hasEverThemed","getThemedChildren","avoidForwardRef","arguments","length","shallow","forceClassName","state","current","shouldRenderChildrenWithTheme","isNew","process","env","NODE_ENV","debug","themeProps","Provider","value","id","isInverse","name","requiresExtraWrapper","parentId","parentState","Error","toArray","console","warn","themeSpanProps","getThemeClassNameAndColor","baseStyle","contain","inertContainedStyle","inertStyle","className","color","style","className1","startsWith","display","empty","themeColor","theme","themeClassName","replace","schemePrefix","themeNameParts","split","themeClasses","hierarchyClasses","i","push","slice","join"],"sources":["../../../src/views/Theme.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-1768696252732",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -28,16 +28,16 @@
|
|
|
28
28
|
"reset.css"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@tamagui/compose-refs": "2.0.0-
|
|
32
|
-
"@tamagui/constants": "2.0.0-
|
|
33
|
-
"@tamagui/helpers": "2.0.0-
|
|
34
|
-
"@tamagui/is-equal-shallow": "2.0.0-
|
|
35
|
-
"@tamagui/normalize-css-color": "2.0.0-
|
|
36
|
-
"@tamagui/timer": "2.0.0-
|
|
37
|
-
"@tamagui/types": "2.0.0-
|
|
38
|
-
"@tamagui/use-did-finish-ssr": "2.0.0-
|
|
39
|
-
"@tamagui/use-event": "2.0.0-
|
|
40
|
-
"@tamagui/use-force-update": "2.0.0-
|
|
31
|
+
"@tamagui/compose-refs": "2.0.0-1768696252732",
|
|
32
|
+
"@tamagui/constants": "2.0.0-1768696252732",
|
|
33
|
+
"@tamagui/helpers": "2.0.0-1768696252732",
|
|
34
|
+
"@tamagui/is-equal-shallow": "2.0.0-1768696252732",
|
|
35
|
+
"@tamagui/normalize-css-color": "2.0.0-1768696252732",
|
|
36
|
+
"@tamagui/timer": "2.0.0-1768696252732",
|
|
37
|
+
"@tamagui/types": "2.0.0-1768696252732",
|
|
38
|
+
"@tamagui/use-did-finish-ssr": "2.0.0-1768696252732",
|
|
39
|
+
"@tamagui/use-event": "2.0.0-1768696252732",
|
|
40
|
+
"@tamagui/use-force-update": "2.0.0-1768696252732"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"react": "*",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"react-native": "*"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@tamagui/build": "2.0.0-
|
|
48
|
+
"@tamagui/build": "2.0.0-1768696252732",
|
|
49
49
|
"@testing-library/react": "^16.1.0",
|
|
50
50
|
"csstype": "^3.0.10",
|
|
51
51
|
"react": "*",
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type tests for animatedBy prop and animation driver configuration.
|
|
3
|
+
*
|
|
4
|
+
* These tests ensure type-safe inference for:
|
|
5
|
+
* 1. Single animation driver config
|
|
6
|
+
* 2. Multiple animation drivers config
|
|
7
|
+
* 3. TypeOverride for lazy-loaded drivers
|
|
8
|
+
* 4. Combination scenarios
|
|
9
|
+
*
|
|
10
|
+
* Run with: yarn test:types
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { expectTypeOf, describe, test } from 'vitest'
|
|
14
|
+
import type {
|
|
15
|
+
AnimationDriver,
|
|
16
|
+
AnimationDriverKeys,
|
|
17
|
+
AnimationsConfig,
|
|
18
|
+
AnimationsConfigObject,
|
|
19
|
+
CreateTamaguiConfig,
|
|
20
|
+
TransitionKeys,
|
|
21
|
+
TypeOverride,
|
|
22
|
+
TamaguiComponentPropsBaseBase,
|
|
23
|
+
} from './types'
|
|
24
|
+
|
|
25
|
+
// =============================================================================
|
|
26
|
+
// Mock types for testing
|
|
27
|
+
// =============================================================================
|
|
28
|
+
|
|
29
|
+
type MockCSSAnimations = { slow: any; fast: any }
|
|
30
|
+
type MockSpringAnimations = { bouncy: any; stiff: any }
|
|
31
|
+
|
|
32
|
+
type MockCSSDriver = AnimationDriver<MockCSSAnimations>
|
|
33
|
+
type MockSpringDriver = AnimationDriver<MockSpringAnimations>
|
|
34
|
+
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// Test: AnimationsConfig types
|
|
37
|
+
// =============================================================================
|
|
38
|
+
|
|
39
|
+
describe('AnimationsConfig types', () => {
|
|
40
|
+
test('AnimationsConfig accepts single driver', () => {
|
|
41
|
+
expectTypeOf<MockCSSDriver>().toMatchTypeOf<AnimationsConfig>()
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
test('AnimationsConfig accepts multi-driver object', () => {
|
|
45
|
+
type MultiDriver = {
|
|
46
|
+
default: MockCSSDriver
|
|
47
|
+
spring: MockSpringDriver
|
|
48
|
+
}
|
|
49
|
+
expectTypeOf<MultiDriver>().toMatchTypeOf<AnimationsConfig>()
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
test('AnimationsConfigObject requires default key', () => {
|
|
53
|
+
type ValidConfig = {
|
|
54
|
+
default: MockCSSDriver
|
|
55
|
+
spring: MockSpringDriver
|
|
56
|
+
}
|
|
57
|
+
expectTypeOf<ValidConfig>().toMatchTypeOf<AnimationsConfigObject>()
|
|
58
|
+
|
|
59
|
+
// This should fail - no default key
|
|
60
|
+
type InvalidConfig = {
|
|
61
|
+
spring: MockSpringDriver
|
|
62
|
+
}
|
|
63
|
+
// @ts-expect-error - missing default key
|
|
64
|
+
expectTypeOf<InvalidConfig>().toMatchTypeOf<AnimationsConfigObject>()
|
|
65
|
+
})
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
// =============================================================================
|
|
69
|
+
// Test: CreateTamaguiConfig preserves animation shape
|
|
70
|
+
// =============================================================================
|
|
71
|
+
|
|
72
|
+
describe('CreateTamaguiConfig animation types', () => {
|
|
73
|
+
test('CreateTamaguiConfig.animations accepts single driver', () => {
|
|
74
|
+
type Config = CreateTamaguiConfig<any, any, any, any, MockCSSAnimations, any>
|
|
75
|
+
type Animations = Config['animations']
|
|
76
|
+
|
|
77
|
+
// Should be a union of AnimationDriver<E> | AnimationsConfigObject
|
|
78
|
+
// Single driver should be assignable to this union
|
|
79
|
+
const _driver: Animations = {} as MockCSSDriver
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
test('CreateTamaguiConfig.animations accepts multi-driver object', () => {
|
|
83
|
+
type Config = CreateTamaguiConfig<any, any, any, any, MockCSSAnimations, any>
|
|
84
|
+
type Animations = Config['animations']
|
|
85
|
+
|
|
86
|
+
// Multi-driver object should also be assignable
|
|
87
|
+
type MultiDriver = {
|
|
88
|
+
default: MockCSSDriver
|
|
89
|
+
spring: MockSpringDriver
|
|
90
|
+
}
|
|
91
|
+
const _multi: Animations = {} as MultiDriver
|
|
92
|
+
})
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
// =============================================================================
|
|
96
|
+
// Test: TransitionKeys inference
|
|
97
|
+
// =============================================================================
|
|
98
|
+
|
|
99
|
+
describe('TransitionKeys inference', () => {
|
|
100
|
+
test('TransitionKeys type exists and is string-based', () => {
|
|
101
|
+
// TransitionKeys should be a string union of animation names
|
|
102
|
+
expectTypeOf<TransitionKeys>().toMatchTypeOf<string>()
|
|
103
|
+
})
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
// =============================================================================
|
|
107
|
+
// Test: AnimationDriverKeys inference
|
|
108
|
+
// =============================================================================
|
|
109
|
+
|
|
110
|
+
describe('AnimationDriverKeys inference', () => {
|
|
111
|
+
test('AnimationDriverKeys is string or string union', () => {
|
|
112
|
+
// Should be at least 'default'
|
|
113
|
+
expectTypeOf<'default'>().toMatchTypeOf<AnimationDriverKeys>()
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
test('TypeOverride.animationDrivers exists in interface', () => {
|
|
117
|
+
// TypeOverride should have animationDrivers method
|
|
118
|
+
type AnimDriversFn = TypeOverride['animationDrivers']
|
|
119
|
+
expectTypeOf<AnimDriversFn>().toBeFunction()
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* FIXED: AnimationDriverKeys now combines inferred keys with TypeOverride.
|
|
124
|
+
*
|
|
125
|
+
* New implementation:
|
|
126
|
+
* 'default'
|
|
127
|
+
* | InferredAnimationDriverKeys
|
|
128
|
+
* | (ReturnType<TypeOverride['animationDrivers']> extends 1 ? never : ReturnType<...>)
|
|
129
|
+
*
|
|
130
|
+
* This ensures both config-defined drivers AND lazy-loaded drivers are available.
|
|
131
|
+
*/
|
|
132
|
+
test('AnimationDriverKeys always includes default', () => {
|
|
133
|
+
// 'default' is always available regardless of config
|
|
134
|
+
expectTypeOf<'default'>().toMatchTypeOf<AnimationDriverKeys>()
|
|
135
|
+
})
|
|
136
|
+
})
|
|
137
|
+
|
|
138
|
+
// =============================================================================
|
|
139
|
+
// Test: animatedBy prop on components
|
|
140
|
+
// =============================================================================
|
|
141
|
+
|
|
142
|
+
describe('animatedBy prop', () => {
|
|
143
|
+
test('animatedBy exists on TamaguiComponentPropsBaseBase', () => {
|
|
144
|
+
type Props = TamaguiComponentPropsBaseBase
|
|
145
|
+
expectTypeOf<Props>().toHaveProperty('animatedBy')
|
|
146
|
+
})
|
|
147
|
+
|
|
148
|
+
test('animatedBy accepts null', () => {
|
|
149
|
+
type Props = TamaguiComponentPropsBaseBase
|
|
150
|
+
type AnimatedBy = Props['animatedBy']
|
|
151
|
+
expectTypeOf<null>().toMatchTypeOf<AnimatedBy>()
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
test('animatedBy accepts "default"', () => {
|
|
155
|
+
type Props = TamaguiComponentPropsBaseBase
|
|
156
|
+
type AnimatedBy = NonNullable<Props['animatedBy']>
|
|
157
|
+
expectTypeOf<'default'>().toMatchTypeOf<AnimatedBy>()
|
|
158
|
+
})
|
|
159
|
+
})
|
|
160
|
+
|
|
161
|
+
// =============================================================================
|
|
162
|
+
// Test: Type regression scenarios
|
|
163
|
+
// =============================================================================
|
|
164
|
+
|
|
165
|
+
describe('Type regression scenarios', () => {
|
|
166
|
+
/**
|
|
167
|
+
* Scenario 1: Single driver config
|
|
168
|
+
* User sets: animations: cssDriver
|
|
169
|
+
* Expected animatedBy values: 'default' only
|
|
170
|
+
* Expected transition values: keys from cssDriver's animations
|
|
171
|
+
*/
|
|
172
|
+
test('single driver config scenario', () => {
|
|
173
|
+
// animatedBy should only allow 'default' since there's one driver
|
|
174
|
+
// This is correct behavior
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Scenario 2: Multiple drivers config
|
|
179
|
+
* User sets: animations: { default: css, spring: moti, physics: reanimated }
|
|
180
|
+
* Expected animatedBy values: 'default' | 'spring' | 'physics'
|
|
181
|
+
* Expected transition values: keys from default driver's animations
|
|
182
|
+
*
|
|
183
|
+
* FIXED: CreateTamaguiConfig.animations now accepts AnimationsConfigObject
|
|
184
|
+
* which preserves the multi-driver shape for type inference.
|
|
185
|
+
*/
|
|
186
|
+
test('multiple drivers config scenario - CreateTamaguiConfig accepts it', () => {
|
|
187
|
+
type Config = CreateTamaguiConfig<any, any, any, any, MockCSSAnimations, any>
|
|
188
|
+
type Animations = Config['animations']
|
|
189
|
+
|
|
190
|
+
// Multi-driver config is now accepted
|
|
191
|
+
type MultiDriverConfig = {
|
|
192
|
+
default: MockCSSDriver
|
|
193
|
+
spring: MockSpringDriver
|
|
194
|
+
}
|
|
195
|
+
const _config: Animations = {} as MultiDriverConfig
|
|
196
|
+
})
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Scenario 3: TypeOverride for lazy loading
|
|
200
|
+
* User uses TypeOverride to add 'lazySpring' driver loaded at runtime
|
|
201
|
+
* Expected animatedBy values: inferred keys + 'lazySpring'
|
|
202
|
+
*
|
|
203
|
+
* FIXED: AnimationDriverKeys now always includes:
|
|
204
|
+
* - 'default' (always)
|
|
205
|
+
* - InferredAnimationDriverKeys (from config)
|
|
206
|
+
* - TypeOverride keys (when defined)
|
|
207
|
+
*/
|
|
208
|
+
test('TypeOverride combines with inferred', () => {
|
|
209
|
+
// Both inferred and override keys should be included
|
|
210
|
+
// 'default' is always available
|
|
211
|
+
expectTypeOf<'default'>().toMatchTypeOf<AnimationDriverKeys>()
|
|
212
|
+
})
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Scenario 4: Both multiple drivers + TypeOverride
|
|
216
|
+
* Config: { default: css, spring: moti }
|
|
217
|
+
* Override: 'physics'
|
|
218
|
+
* Expected: 'default' | 'spring' | 'physics'
|
|
219
|
+
*
|
|
220
|
+
* FIXED: The union type combines all sources
|
|
221
|
+
*/
|
|
222
|
+
test('combined multiple drivers and override', () => {
|
|
223
|
+
// All keys should be available from both sources
|
|
224
|
+
// Note: actual inference depends on user's TamaguiConfig setup
|
|
225
|
+
expectTypeOf<'default'>().toMatchTypeOf<AnimationDriverKeys>()
|
|
226
|
+
})
|
|
227
|
+
})
|
|
228
|
+
|
|
229
|
+
// =============================================================================
|
|
230
|
+
// Documentation: Applied fixes
|
|
231
|
+
// =============================================================================
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* SUMMARY OF APPLIED TYPE FIXES:
|
|
235
|
+
*
|
|
236
|
+
* 1. CreateTamaguiConfig (line ~737):
|
|
237
|
+
* FIXED: Changed from `animations: AnimationDriver<E>`
|
|
238
|
+
* To: `animations: AnimationDriver<E> | AnimationsConfigObject`
|
|
239
|
+
* This preserves the multi-driver object shape for type inference.
|
|
240
|
+
*
|
|
241
|
+
* 2. AnimationDriverKeys (line ~888-895):
|
|
242
|
+
* FIXED: Changed from conditional (inferred OR override)
|
|
243
|
+
* To: Union of all sources:
|
|
244
|
+
* | 'default'
|
|
245
|
+
* | InferredAnimationDriverKeys
|
|
246
|
+
* | (TypeOverride extends 1 ? never : TypeOverride)
|
|
247
|
+
* This ensures both config-defined AND lazy-loaded drivers are available.
|
|
248
|
+
*
|
|
249
|
+
* 3. InferredAnimationDriverKeys (line 879-886):
|
|
250
|
+
* No changes needed - works correctly with the above fixes.
|
|
251
|
+
* Properly infers 'default' for single driver and keyof for multi-driver.
|
|
252
|
+
*
|
|
253
|
+
* 4. TransitionKeys (line 868-876):
|
|
254
|
+
* No changes needed - already handles both single and multi-driver cases.
|
|
255
|
+
* Uses default driver's config for animation names.
|
|
256
|
+
*/
|
package/src/config.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isWeb } from '@tamagui/constants'
|
|
2
2
|
import { MISSING_THEME_MESSAGE } from './constants/constants'
|
|
3
3
|
import type {
|
|
4
|
+
AnimationDriver,
|
|
4
5
|
ConfigListener,
|
|
5
6
|
GenericTamaguiSettings,
|
|
6
7
|
TamaguiInternalConfig,
|
|
@@ -196,3 +197,43 @@ export function setupDev(conf: DevConfig) {
|
|
|
196
197
|
devConfig = conf
|
|
197
198
|
}
|
|
198
199
|
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Dynamically load an animation driver at runtime.
|
|
203
|
+
* Useful for lazy loading heavier animation drivers after initial page load.
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```tsx
|
|
207
|
+
* // import loadAnimationDriver from tamagui
|
|
208
|
+
* // import createAnimations from your preferred driver (e.g. animations-reanimated)
|
|
209
|
+
*
|
|
210
|
+
* const driver = createAnimations({ bouncy: { type: 'spring', damping: 10 } })
|
|
211
|
+
* loadAnimationDriver('spring', driver)
|
|
212
|
+
* ```
|
|
213
|
+
*/
|
|
214
|
+
export function loadAnimationDriver(name: string, driver: AnimationDriver) {
|
|
215
|
+
const config = getConfigFromGlobalOrLocal()
|
|
216
|
+
if (!config) {
|
|
217
|
+
if (process.env.NODE_ENV === 'development') {
|
|
218
|
+
console.warn('loadAnimationDriver called before createTamagui')
|
|
219
|
+
}
|
|
220
|
+
return
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// Convert single driver to object format if needed
|
|
224
|
+
if (config.animations && !('default' in config.animations)) {
|
|
225
|
+
;(config as any).animations = {
|
|
226
|
+
default: config.animations,
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Add the new driver
|
|
231
|
+
if (config.animations) {
|
|
232
|
+
;(config.animations as Record<string, any>)[name] = driver
|
|
233
|
+
} else {
|
|
234
|
+
;(config as any).animations = {
|
|
235
|
+
default: driver,
|
|
236
|
+
[name]: driver,
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
package/src/createComponent.tsx
CHANGED
|
@@ -18,6 +18,7 @@ import { defaultComponentStateMounted } from './defaultComponentState'
|
|
|
18
18
|
import { getSplitStyles, useSplitStyles } from './helpers/getSplitStyles'
|
|
19
19
|
import { log } from './helpers/log'
|
|
20
20
|
import { type GenericProps, mergeComponentProps } from './helpers/mergeProps'
|
|
21
|
+
import { mergeRenderElementProps } from './helpers/mergeRenderElementProps'
|
|
21
22
|
import { objectIdentityKey } from './helpers/objectIdentityKey'
|
|
22
23
|
import { setElementProps } from './helpers/setElementProps'
|
|
23
24
|
import { subscribeToContextGroup } from './helpers/subscribeToContextGroup'
|
|
@@ -414,7 +415,23 @@ export function createComponent<
|
|
|
414
415
|
}
|
|
415
416
|
|
|
416
417
|
const groupContextParent = React.useContext(GroupContext)
|
|
417
|
-
|
|
418
|
+
|
|
419
|
+
// Get animation driver - either from animatedBy prop lookup or context
|
|
420
|
+
const animationDriver = (() => {
|
|
421
|
+
if (props.animatedBy && config?.animations) {
|
|
422
|
+
const animations = config.animations
|
|
423
|
+
// If animations is an object with named drivers (has 'default' key)
|
|
424
|
+
if ('default' in animations) {
|
|
425
|
+
return (
|
|
426
|
+
(animations as Record<string, any>)[props.animatedBy] ?? animations.default
|
|
427
|
+
)
|
|
428
|
+
}
|
|
429
|
+
// Single driver config - only 'default' makes sense
|
|
430
|
+
return props.animatedBy === 'default' ? animations : null
|
|
431
|
+
}
|
|
432
|
+
return componentContext.animationDriver
|
|
433
|
+
})()
|
|
434
|
+
|
|
418
435
|
const useAnimations = animationDriver?.useAnimations as UseAnimationHook | undefined
|
|
419
436
|
|
|
420
437
|
const componentState = useComponentState(
|
|
@@ -497,7 +514,7 @@ export function createComponent<
|
|
|
497
514
|
}
|
|
498
515
|
}, [stateRef, groupName, groupContextParent])
|
|
499
516
|
|
|
500
|
-
// if our animation driver supports
|
|
517
|
+
// if our animation driver supports avoidReRenders, we'll replace this below with
|
|
501
518
|
// a version that essentially uses an internall emitter rather than setting state
|
|
502
519
|
// but still stores the current state and applies if it it needs to during render
|
|
503
520
|
let setStateShallow = componentState.setStateShallow
|
|
@@ -505,9 +522,9 @@ export function createComponent<
|
|
|
505
522
|
if (process.env.NODE_ENV === 'development' && time) time`use-state`
|
|
506
523
|
|
|
507
524
|
const isTaggable = !Component || typeof Component === 'string'
|
|
508
|
-
const
|
|
509
|
-
// default to
|
|
510
|
-
const element = isWeb ? (isTaggable ?
|
|
525
|
+
const renderProp = props.render
|
|
526
|
+
// default to render prop, fallback to component (when both strings)
|
|
527
|
+
const element = isWeb ? (isTaggable ? renderProp || Component : Component) : Component
|
|
511
528
|
|
|
512
529
|
const BaseTextComponent = BaseText || element || 'span'
|
|
513
530
|
const BaseViewComponent = BaseView || element || (hasTextAncestor ? 'span' : 'div')
|
|
@@ -626,7 +643,7 @@ export function createComponent<
|
|
|
626
643
|
|
|
627
644
|
if (process.env.NODE_ENV === 'development' && time) time`theme`
|
|
628
645
|
|
|
629
|
-
elementType =
|
|
646
|
+
elementType = element || elementType
|
|
630
647
|
const isStringElement = typeof elementType === 'string'
|
|
631
648
|
|
|
632
649
|
const mediaState = useMedia(componentContext, debugProp)
|
|
@@ -918,8 +935,8 @@ export function createComponent<
|
|
|
918
935
|
}
|
|
919
936
|
}
|
|
920
937
|
|
|
921
|
-
if (
|
|
922
|
-
viewProps.
|
|
938
|
+
if (renderProp && elementType['acceptTagProp']) {
|
|
939
|
+
viewProps.render = renderProp
|
|
923
940
|
}
|
|
924
941
|
|
|
925
942
|
// once you set animation prop don't remove it, you can set to undefined/false
|
|
@@ -949,6 +966,7 @@ export function createComponent<
|
|
|
949
966
|
componentState: state,
|
|
950
967
|
styleProps,
|
|
951
968
|
theme,
|
|
969
|
+
themeName,
|
|
952
970
|
pseudos: pseudos || null,
|
|
953
971
|
staticConfig,
|
|
954
972
|
stateRef,
|
|
@@ -1384,11 +1402,28 @@ export function createComponent<
|
|
|
1384
1402
|
if (useChildrenResult) {
|
|
1385
1403
|
content = useChildrenResult
|
|
1386
1404
|
} else {
|
|
1387
|
-
|
|
1405
|
+
// Handle render prop variants: function, JSX element, or string
|
|
1406
|
+
if (typeof renderProp === 'function') {
|
|
1407
|
+
// Render function: full control with props and state
|
|
1408
|
+
const renderProps = { ...viewProps, children: content }
|
|
1409
|
+
content = renderProp(renderProps, state)
|
|
1410
|
+
} else if (
|
|
1411
|
+
renderProp &&
|
|
1412
|
+
typeof renderProp === 'object' &&
|
|
1413
|
+
React.isValidElement(renderProp)
|
|
1414
|
+
) {
|
|
1415
|
+
// JSX element: clone with merged props
|
|
1416
|
+
const elementProps = (renderProp as React.ReactElement).props || {}
|
|
1417
|
+
const mergedProps = mergeRenderElementProps(elementProps, viewProps, content)
|
|
1418
|
+
content = React.cloneElement(renderProp as React.ReactElement, mergedProps)
|
|
1419
|
+
} else {
|
|
1420
|
+
content = React.createElement(elementType, viewProps, content)
|
|
1421
|
+
}
|
|
1388
1422
|
}
|
|
1389
1423
|
|
|
1390
1424
|
// needs to reset the presence state for nested children
|
|
1391
|
-
|
|
1425
|
+
// Use the resolved animationDriver (handles multi-driver config)
|
|
1426
|
+
const ResetPresence = animationDriver?.ResetPresence
|
|
1392
1427
|
const needsReset = Boolean(
|
|
1393
1428
|
// not when passing down to child
|
|
1394
1429
|
!asChild &&
|
package/src/createTamagui.ts
CHANGED
|
@@ -166,9 +166,9 @@ export function createTamagui<Conf extends CreateTamaguiProps>(
|
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
const sep =
|
|
169
|
+
const sep = ` `
|
|
170
170
|
function declarationsToRuleSet(decs: string[], selector = '') {
|
|
171
|
-
return `:root${selector} {${sep}${[...decs].join(`;${sep}`)}
|
|
171
|
+
return `:root${selector} {${sep}${[...decs].join(`;${sep}`)}\n}`
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
// non-font
|
|
@@ -37,6 +37,7 @@ import type {
|
|
|
37
37
|
GetStyleState,
|
|
38
38
|
PseudoStyles,
|
|
39
39
|
RulesToInsert,
|
|
40
|
+
SpaceTokens,
|
|
40
41
|
SplitStyleProps,
|
|
41
42
|
StaticConfig,
|
|
42
43
|
StyleObject,
|
|
@@ -203,6 +204,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
203
204
|
process.env.TAMAGUI_TARGET === 'native' ? (undefined as any) : {}
|
|
204
205
|
const classNames: ClassNamesObject = {}
|
|
205
206
|
|
|
207
|
+
let space: SpaceTokens | null = props.space
|
|
206
208
|
let pseudos: PseudoStyles | null = null
|
|
207
209
|
let hasMedia: boolean | Set<string> = false
|
|
208
210
|
let dynamicThemeAccess: boolean | undefined
|
|
@@ -923,10 +925,10 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
923
925
|
dynamicThemeAccess = true
|
|
924
926
|
// only apply if this is the current theme
|
|
925
927
|
if (isCurrentScheme) {
|
|
926
|
-
// update
|
|
928
|
+
// update mediaStyle so the later merge loop uses correct value
|
|
927
929
|
mediaStyle[subKey] = val
|
|
928
930
|
} else {
|
|
929
|
-
//
|
|
931
|
+
// remove from mediaStyle so it doesn't get merged with wrong theme's value
|
|
930
932
|
delete mediaStyle[subKey]
|
|
931
933
|
}
|
|
932
934
|
continue
|
|
@@ -36,8 +36,6 @@ export function getThemeCSSRules(props: {
|
|
|
36
36
|
const CNP = `.${THEME_CLASSNAME_PREFIX}`
|
|
37
37
|
let vars = ''
|
|
38
38
|
|
|
39
|
-
// themeToVariableToValueMap.set(theme, {})
|
|
40
|
-
// const varToValMap = themeToVariableToValueMap.get(theme)
|
|
41
39
|
for (const themeKey in theme) {
|
|
42
40
|
const variable = theme[themeKey] as Variable
|
|
43
41
|
let value: any = null
|
|
@@ -60,9 +58,9 @@ export function getThemeCSSRules(props: {
|
|
|
60
58
|
const selectorsSet = new Set(isDarkBase || isLightBase ? baseSelectors : [])
|
|
61
59
|
|
|
62
60
|
// since we dont specify dark/light in classnames we have to do an awkward specificity war
|
|
63
|
-
//
|
|
61
|
+
// hardcoded to support 2 levels of nesting (e.g. light > dark or dark > light)
|
|
64
62
|
if (hasDarkLight) {
|
|
65
|
-
const maxDepth =
|
|
63
|
+
const maxDepth = 2
|
|
66
64
|
|
|
67
65
|
for (const subName of names) {
|
|
68
66
|
const isDark = isDarkBase || subName.startsWith('dark_')
|
|
@@ -83,7 +81,6 @@ export function getThemeCSSRules(props: {
|
|
|
83
81
|
for (let depth = 0; depth < numSelectors; depth++) {
|
|
84
82
|
const isOdd = depth % 2 === 1
|
|
85
83
|
|
|
86
|
-
// wtf is this continue:
|
|
87
84
|
if (isOdd && depth < 3) {
|
|
88
85
|
continue
|
|
89
86
|
}
|
|
@@ -106,9 +103,6 @@ export function getThemeCSSRules(props: {
|
|
|
106
103
|
// for light/dark/light:
|
|
107
104
|
const parentSelectorString = parentSelectors.join(' ')
|
|
108
105
|
selectorsSet.add(`${parentSelectorString} ${nextChildSelector}`)
|
|
109
|
-
// selectorsSet.add(
|
|
110
|
-
// `${parentSelectors.join(' ')} ${nextChildSelector}.is_inversed`.trim()
|
|
111
|
-
// )
|
|
112
106
|
}
|
|
113
107
|
}
|
|
114
108
|
}
|
|
@@ -116,7 +110,6 @@ export function getThemeCSSRules(props: {
|
|
|
116
110
|
const selectors = [...selectorsSet].sort(sortString)
|
|
117
111
|
|
|
118
112
|
// only do our :root attach if it's not light/dark - not support sub themes on root saves a lot of effort/size
|
|
119
|
-
// this isBaseTheme logic could probably be done more efficiently above
|
|
120
113
|
const selectorsString =
|
|
121
114
|
selectors
|
|
122
115
|
.map((x) => {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { mergeSlotStyleProps } from './mergeSlotStyleProps'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Merges props from a render element with viewProps from Tamagui.
|
|
5
|
+
* viewProps takes precedence, elementProps provides fallbacks.
|
|
6
|
+
* Style/className are merged, refs and event handlers are composed.
|
|
7
|
+
*/
|
|
8
|
+
export function mergeRenderElementProps(
|
|
9
|
+
elementProps: Record<string, any>,
|
|
10
|
+
viewProps: Record<string, any>,
|
|
11
|
+
children: any
|
|
12
|
+
): Record<string, any> {
|
|
13
|
+
// elementProps as base, viewProps as overlay (viewProps wins)
|
|
14
|
+
const merged = mergeSlotStyleProps({ ...elementProps }, viewProps)
|
|
15
|
+
merged.children = children
|
|
16
|
+
return merged
|
|
17
|
+
}
|