@tamagui/core 1.0.0-alpha.31 → 1.0.0-alpha.38
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/constants/constants.js +32 -0
- package/dist/constants/constants.js.map +7 -0
- package/dist/{esm/constants → constants}/platform.js +2 -2
- package/dist/constants/platform.js.map +7 -0
- package/dist/constants/rnw.js +10 -0
- package/dist/constants/rnw.js.map +7 -0
- package/dist/constants/styleConstants.js +59 -0
- package/dist/constants/styleConstants.js.map +7 -0
- package/dist/{esm/createComponent.js → createComponent.js} +125 -191
- package/dist/createComponent.js.map +7 -0
- package/dist/{esm/createShorthands.js → createShorthands.js} +0 -0
- package/dist/createShorthands.js.map +7 -0
- package/dist/createTamagui.js +107 -0
- package/dist/createTamagui.js.map +7 -0
- package/dist/{esm/createTokens.js → createTokens.js} +0 -4
- package/dist/createTokens.js.map +7 -0
- package/dist/{esm/createVariable.js → createVariable.js} +2 -6
- package/dist/createVariable.js.map +7 -0
- package/dist/helpers/addStylesUsingClassname.js +28 -0
- package/dist/helpers/addStylesUsingClassname.js.map +7 -0
- package/dist/{esm/helpers → helpers}/createMediaStyle.js +0 -0
- package/dist/{esm/helpers → helpers}/createMediaStyle.js.map +1 -1
- package/dist/{esm/helpers → helpers}/createTamaguiProvider.js +20 -2
- package/dist/helpers/createTamaguiProvider.js.map +7 -0
- package/dist/helpers/extendStaticConfig.js +158 -0
- package/dist/helpers/extendStaticConfig.js.map +7 -0
- package/dist/helpers/fixNativeShadow.js +38 -0
- package/dist/helpers/fixNativeShadow.js.map +7 -0
- package/dist/{esm/helpers → helpers}/getSplitStyles.js +40 -43
- package/dist/helpers/getSplitStyles.js.map +7 -0
- package/dist/{esm/helpers → helpers}/insertStyleRule.js +0 -7
- package/dist/helpers/insertStyleRule.js.map +7 -0
- package/dist/{esm/helpers → helpers}/matchMedia.js +0 -3
- package/dist/helpers/matchMedia.js.map +7 -0
- package/dist/{esm/helpers → helpers}/matchMedia.native.js +0 -1
- package/dist/{esm/helpers → helpers}/matchMedia.native.js.map +3 -3
- package/dist/helpers/setIfChanged.js +17 -0
- package/dist/helpers/setIfChanged.js.map +7 -0
- package/dist/{esm/helpers → helpers}/themeable.js +0 -0
- package/dist/{esm/helpers → helpers}/themeable.js.map +3 -3
- package/dist/{esm/hooks → hooks}/useConstant.js +0 -0
- package/dist/{esm/hooks → hooks}/useConstant.js.map +1 -1
- package/dist/{esm/hooks → hooks}/useFeatures.js +51 -39
- package/dist/hooks/useFeatures.js.map +7 -0
- package/dist/hooks/useForceUpdate.js +28 -0
- package/dist/hooks/useForceUpdate.js.map +7 -0
- package/dist/{esm/hooks → hooks}/useMedia.js +16 -16
- package/dist/hooks/useMedia.js.map +7 -0
- package/dist/{esm/hooks → hooks}/usePressable.js +0 -0
- package/dist/{esm/hooks → hooks}/usePressable.js.map +1 -1
- package/dist/{esm/hooks → hooks}/useTheme.js +24 -26
- package/dist/hooks/useTheme.js.map +7 -0
- package/dist/index.cjs +1837 -0
- package/dist/index.cjs.map +7 -0
- package/dist/{esm/index.js → index.js} +4 -6
- package/dist/index.js.map +7 -0
- package/dist/{esm/static → static}/postProcessStyles.js +3 -3
- package/dist/static/postProcessStyles.js.map +7 -0
- package/dist/{esm/static.js → static.js} +1 -6
- package/dist/static.js.map +7 -0
- package/dist/styled.js +28 -0
- package/dist/styled.js.map +7 -0
- package/dist/testtypes.js +1 -0
- package/dist/{esm/types.js.map → testtypes.js.map} +0 -0
- package/dist/{esm/types.js → types.js} +0 -0
- package/dist/types.js.map +7 -0
- package/dist/{esm/views → views}/Animated.js +0 -0
- package/dist/{esm/views → views}/Animated.js.map +3 -3
- package/dist/{esm/views → views}/Stack.js +1 -1
- package/dist/views/Stack.js.map +7 -0
- package/dist/views/Text.js +36 -0
- package/dist/views/Text.js.map +7 -0
- package/dist/{esm/views → views}/TextAncestorContext.js +8 -7
- package/dist/views/TextAncestorContext.js.map +7 -0
- package/dist/{esm/views → views}/Theme.js +23 -28
- package/dist/views/Theme.js.map +7 -0
- package/dist/{esm/views → views}/ThemeContext.js +0 -0
- package/dist/{esm/views → views}/ThemeContext.js.map +1 -1
- package/dist/{esm/views → views}/ThemeInverse.js +1 -0
- package/dist/{esm/views → views}/ThemeInverse.js.map +3 -3
- package/dist/{esm/views → views}/ThemeManagerContext.js +5 -11
- package/dist/views/ThemeManagerContext.js.map +7 -0
- package/dist/{esm/views → views}/ThemeProvider.js +10 -10
- package/dist/views/ThemeProvider.js.map +7 -0
- package/package.json +6 -9
- package/types/createTheme.d.ts +1 -1
- package/types/helpers/fixNativeShadow.native.d.ts +1 -1
- package/types/styled.d.ts +1 -1
- package/types/types.d.ts +1 -1
- package/dist/cjs/constants/constants.js +0 -50
- package/dist/cjs/constants/constants.js.map +0 -7
- package/dist/cjs/constants/platform.js +0 -43
- package/dist/cjs/constants/platform.js.map +0 -7
- package/dist/cjs/constants/pseudos.js +0 -25
- package/dist/cjs/constants/pseudos.js.map +0 -7
- package/dist/cjs/constants/rnw.js +0 -28
- package/dist/cjs/constants/rnw.js.map +0 -7
- package/dist/cjs/createComponent.js +0 -529
- package/dist/cjs/createComponent.js.map +0 -7
- package/dist/cjs/createFont.js +0 -50
- package/dist/cjs/createFont.js.map +0 -7
- package/dist/cjs/createShorthands.js +0 -16
- package/dist/cjs/createShorthands.js.map +0 -7
- package/dist/cjs/createTamagui.js +0 -223
- package/dist/cjs/createTamagui.js.map +0 -7
- package/dist/cjs/createTheme.js +0 -13
- package/dist/cjs/createTheme.js.map +0 -7
- package/dist/cjs/createTokens.js +0 -55
- package/dist/cjs/createTokens.js.map +0 -7
- package/dist/cjs/createVariable.js +0 -47
- package/dist/cjs/createVariable.js.map +0 -7
- package/dist/cjs/helpers/addStylesUsingClassname.js +0 -79
- package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
- package/dist/cjs/helpers/createMediaStyle.js +0 -56
- package/dist/cjs/helpers/createMediaStyle.js.map +0 -7
- package/dist/cjs/helpers/createPropMapper.js +0 -197
- package/dist/cjs/helpers/createPropMapper.js.map +0 -7
- package/dist/cjs/helpers/createTamaguiProvider.js +0 -74
- package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
- package/dist/cjs/helpers/extendStaticConfig.js +0 -82
- package/dist/cjs/helpers/extendStaticConfig.js.map +0 -7
- package/dist/cjs/helpers/fixNativeShadow.js +0 -14
- package/dist/cjs/helpers/fixNativeShadow.js.map +0 -7
- package/dist/cjs/helpers/fixNativeShadow.native.js +0 -36
- package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
- package/dist/cjs/helpers/getSplitStyles.js +0 -180
- package/dist/cjs/helpers/getSplitStyles.js.map +0 -7
- package/dist/cjs/helpers/getStylesAtomic.js +0 -117
- package/dist/cjs/helpers/getStylesAtomic.js.map +0 -7
- package/dist/cjs/helpers/getStylesAtomic.native.js +0 -16
- package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -7
- package/dist/cjs/helpers/insertStyleRule.js +0 -46
- package/dist/cjs/helpers/insertStyleRule.js.map +0 -7
- package/dist/cjs/helpers/isObj.js +0 -13
- package/dist/cjs/helpers/isObj.js.map +0 -7
- package/dist/cjs/helpers/isTamaguiElement.js +0 -33
- package/dist/cjs/helpers/isTamaguiElement.js.map +0 -7
- package/dist/cjs/helpers/matchMedia.js +0 -24
- package/dist/cjs/helpers/matchMedia.js.map +0 -7
- package/dist/cjs/helpers/matchMedia.native.js +0 -31
- package/dist/cjs/helpers/matchMedia.native.js.map +0 -7
- package/dist/cjs/helpers/themeable.js +0 -78
- package/dist/cjs/helpers/themeable.js.map +0 -7
- package/dist/cjs/helpers/validate.js +0 -82
- package/dist/cjs/helpers/validate.js.map +0 -7
- package/dist/cjs/hooks/useConstant.js +0 -37
- package/dist/cjs/hooks/useConstant.js.map +0 -7
- package/dist/cjs/hooks/useFeatures.js +0 -100
- package/dist/cjs/hooks/useFeatures.js.map +0 -7
- package/dist/cjs/hooks/useMedia.js +0 -207
- package/dist/cjs/hooks/useMedia.js.map +0 -7
- package/dist/cjs/hooks/usePressable.js +0 -50
- package/dist/cjs/hooks/usePressable.js.map +0 -7
- package/dist/cjs/hooks/useTheme.js +0 -118
- package/dist/cjs/hooks/useTheme.js.map +0 -7
- package/dist/cjs/index.js +0 -55
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/static/postProcessStyles.js +0 -40
- package/dist/cjs/static/postProcessStyles.js.map +0 -7
- package/dist/cjs/static.js +0 -34
- package/dist/cjs/static.js.map +0 -7
- package/dist/cjs/styled.js +0 -72
- package/dist/cjs/styled.js.map +0 -7
- package/dist/cjs/types.js +0 -4
- package/dist/cjs/types.js.map +0 -7
- package/dist/cjs/views/Animated.js +0 -129
- package/dist/cjs/views/Animated.js.map +0 -7
- package/dist/cjs/views/Stack.js +0 -51
- package/dist/cjs/views/Stack.js.map +0 -7
- package/dist/cjs/views/Text.js +0 -93
- package/dist/cjs/views/Text.js.map +0 -7
- package/dist/cjs/views/TextAncestorContext.js +0 -40
- package/dist/cjs/views/TextAncestorContext.js.map +0 -7
- package/dist/cjs/views/Theme.js +0 -91
- package/dist/cjs/views/Theme.js.map +0 -7
- package/dist/cjs/views/ThemeContext.js +0 -29
- package/dist/cjs/views/ThemeContext.js.map +0 -7
- package/dist/cjs/views/ThemeInverse.js +0 -48
- package/dist/cjs/views/ThemeInverse.js.map +0 -7
- package/dist/cjs/views/ThemeManagerContext.js +0 -84
- package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
- package/dist/cjs/views/ThemeProvider.js +0 -67
- package/dist/cjs/views/ThemeProvider.js.map +0 -7
- package/dist/esm/constants/constants.js +0 -14
- package/dist/esm/constants/constants.js.map +0 -7
- package/dist/esm/constants/platform.js.map +0 -7
- package/dist/esm/constants/pseudos.js +0 -18
- package/dist/esm/constants/pseudos.js.map +0 -7
- package/dist/esm/constants/rnw.js +0 -22
- package/dist/esm/constants/rnw.js.map +0 -7
- package/dist/esm/createComponent.js.map +0 -7
- package/dist/esm/createFont.js +0 -28
- package/dist/esm/createFont.js.map +0 -7
- package/dist/esm/createShorthands.js.map +0 -7
- package/dist/esm/createTamagui.js +0 -184
- package/dist/esm/createTamagui.js.map +0 -7
- package/dist/esm/createTheme.js +0 -7
- package/dist/esm/createTheme.js.map +0 -7
- package/dist/esm/createTokens.js.map +0 -7
- package/dist/esm/createVariable.js.map +0 -7
- package/dist/esm/helpers/addStylesUsingClassname.js +0 -57
- package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
- package/dist/esm/helpers/createPropMapper.js +0 -160
- package/dist/esm/helpers/createPropMapper.js.map +0 -7
- package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
- package/dist/esm/helpers/extendStaticConfig.js +0 -59
- package/dist/esm/helpers/extendStaticConfig.js.map +0 -7
- package/dist/esm/helpers/fixNativeShadow.js +0 -8
- package/dist/esm/helpers/fixNativeShadow.js.map +0 -7
- package/dist/esm/helpers/fixNativeShadow.native.js +0 -30
- package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
- package/dist/esm/helpers/getSplitStyles.js.map +0 -7
- package/dist/esm/helpers/getStylesAtomic.js +0 -83
- package/dist/esm/helpers/getStylesAtomic.js.map +0 -7
- package/dist/esm/helpers/getStylesAtomic.native.js +0 -10
- package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -7
- package/dist/esm/helpers/insertStyleRule.js.map +0 -7
- package/dist/esm/helpers/isObj.js +0 -7
- package/dist/esm/helpers/isObj.js.map +0 -7
- package/dist/esm/helpers/isTamaguiElement.js +0 -10
- package/dist/esm/helpers/isTamaguiElement.js.map +0 -7
- package/dist/esm/helpers/matchMedia.js.map +0 -7
- package/dist/esm/helpers/validate.js +0 -60
- package/dist/esm/helpers/validate.js.map +0 -7
- package/dist/esm/hooks/useFeatures.js.map +0 -7
- package/dist/esm/hooks/useMedia.js.map +0 -7
- package/dist/esm/hooks/useTheme.js.map +0 -7
- package/dist/esm/index.js.map +0 -7
- package/dist/esm/static/postProcessStyles.js.map +0 -7
- package/dist/esm/static.js.map +0 -7
- package/dist/esm/styled.js +0 -21
- package/dist/esm/styled.js.map +0 -7
- package/dist/esm/views/Stack.js.map +0 -7
- package/dist/esm/views/Text.js +0 -60
- package/dist/esm/views/Text.js.map +0 -7
- package/dist/esm/views/TextAncestorContext.js.map +0 -7
- package/dist/esm/views/Theme.js.map +0 -7
- package/dist/esm/views/ThemeManagerContext.js.map +0 -7
- package/dist/esm/views/ThemeProvider.js.map +0 -7
- package/dist/jsx/constants/constants.js +0 -13
- package/dist/jsx/constants/platform.js +0 -18
- package/dist/jsx/constants/pseudos.js +0 -17
- package/dist/jsx/constants/rnw.js +0 -21
- package/dist/jsx/createComponent.js +0 -455
- package/dist/jsx/createFont.js +0 -27
- package/dist/jsx/createShorthands.js +0 -9
- package/dist/jsx/createTamagui.js +0 -183
- package/dist/jsx/createTheme.js +0 -6
- package/dist/jsx/createTokens.js +0 -32
- package/dist/jsx/createVariable.js +0 -24
- package/dist/jsx/helpers/addStylesUsingClassname.js +0 -56
- package/dist/jsx/helpers/createMediaStyle.js +0 -33
- package/dist/jsx/helpers/createPropMapper.js +0 -159
- package/dist/jsx/helpers/createTamaguiProvider.js +0 -19
- package/dist/jsx/helpers/extendStaticConfig.js +0 -58
- package/dist/jsx/helpers/fixNativeShadow.js +0 -7
- package/dist/jsx/helpers/fixNativeShadow.native.js +0 -29
- package/dist/jsx/helpers/getSplitStyles.js +0 -149
- package/dist/jsx/helpers/getStylesAtomic.js +0 -82
- package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
- package/dist/jsx/helpers/insertStyleRule.js +0 -23
- package/dist/jsx/helpers/isObj.js +0 -6
- package/dist/jsx/helpers/isTamaguiElement.js +0 -9
- package/dist/jsx/helpers/matchMedia.js +0 -17
- package/dist/jsx/helpers/matchMedia.native.js +0 -8
- package/dist/jsx/helpers/themeable.js +0 -23
- package/dist/jsx/helpers/validate.js +0 -59
- package/dist/jsx/hooks/useConstant.js +0 -14
- package/dist/jsx/hooks/useFeatures.js +0 -57
- package/dist/jsx/hooks/useMedia.js +0 -172
- package/dist/jsx/hooks/usePressable.js +0 -12
- package/dist/jsx/hooks/useTheme.js +0 -95
- package/dist/jsx/index.js +0 -31
- package/dist/jsx/static/postProcessStyles.js +0 -17
- package/dist/jsx/static.js +0 -14
- package/dist/jsx/styled.js +0 -20
- package/dist/jsx/types.js +0 -0
- package/dist/jsx/views/Animated.js +0 -74
- package/dist/jsx/views/Stack.js +0 -11
- package/dist/jsx/views/Text.js +0 -59
- package/dist/jsx/views/TextAncestorContext.js +0 -14
- package/dist/jsx/views/Theme.js +0 -62
- package/dist/jsx/views/ThemeContext.js +0 -5
- package/dist/jsx/views/ThemeInverse.js +0 -22
- package/dist/jsx/views/ThemeManagerContext.js +0 -60
- package/dist/jsx/views/ThemeProvider.js +0 -39
- package/types/constants/constants.d.ts.map +0 -1
- package/types/constants/platform.d.ts.map +0 -1
- package/types/constants/pseudos.d.ts.map +0 -1
- package/types/constants/rnw.d.ts.map +0 -1
- package/types/createComponent.d.ts.map +0 -1
- package/types/createFont.d.ts.map +0 -1
- package/types/createShorthands.d.ts.map +0 -1
- package/types/createTamagui.d.ts.map +0 -1
- package/types/createTheme.d.ts.map +0 -1
- package/types/createTokens.d.ts.map +0 -1
- package/types/createVariable.d.ts.map +0 -1
- package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
- package/types/helpers/createMediaStyle.d.ts.map +0 -1
- package/types/helpers/createPropMapper.d.ts.map +0 -1
- package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
- package/types/helpers/extendStaticConfig.d.ts.map +0 -1
- package/types/helpers/fixNativeShadow.d.ts.map +0 -1
- package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
- package/types/helpers/getSplitStyles.d.ts.map +0 -1
- package/types/helpers/getStylesAtomic.d.ts.map +0 -1
- package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
- package/types/helpers/insertStyleRule.d.ts.map +0 -1
- package/types/helpers/isObj.d.ts.map +0 -1
- package/types/helpers/isTamaguiElement.d.ts.map +0 -1
- package/types/helpers/matchMedia.d.ts.map +0 -1
- package/types/helpers/matchMedia.native.d.ts.map +0 -1
- package/types/helpers/themeable.d.ts.map +0 -1
- package/types/helpers/validate.d.ts.map +0 -1
- package/types/hooks/useConstant.d.ts.map +0 -1
- package/types/hooks/useFeatures.d.ts.map +0 -1
- package/types/hooks/useMedia.d.ts.map +0 -1
- package/types/hooks/usePressable.d.ts.map +0 -1
- package/types/hooks/useTheme.d.ts.map +0 -1
- package/types/index.d.ts.map +0 -1
- package/types/static/postProcessStyles.d.ts.map +0 -1
- package/types/static.d.ts.map +0 -1
- package/types/styled.d.ts.map +0 -1
- package/types/types.d.ts.map +0 -1
- package/types/views/Animated.d.ts.map +0 -1
- package/types/views/Stack.d.ts.map +0 -1
- package/types/views/Text.d.ts.map +0 -1
- package/types/views/TextAncestorContext.d.ts.map +0 -1
- package/types/views/Theme.d.ts.map +0 -1
- package/types/views/ThemeContext.d.ts.map +0 -1
- package/types/views/ThemeInverse.d.ts.map +0 -1
- package/types/views/ThemeManagerContext.d.ts.map +0 -1
- package/types/views/ThemeProvider.d.ts.map +0 -1
|
@@ -10,39 +10,24 @@ const Theme = /* @__PURE__ */ __name((props) => {
|
|
|
10
10
|
const parent = useContext(ThemeManagerContext);
|
|
11
11
|
const themes = useContext(ThemeContext);
|
|
12
12
|
const [parentName, setParentName] = useState(parent.name || "light");
|
|
13
|
-
|
|
14
|
-
console.warn("Error, no themes in context", props);
|
|
15
|
-
return props.children;
|
|
16
|
-
}
|
|
17
|
-
const nextNameParent = `${props.name}-${parentName}`;
|
|
18
|
-
const nextNameParentParent = `${props.name}-${parent.parentName}`;
|
|
19
|
-
const name = !props.name ? null : props.name in themes ? props.name : nextNameParent in themes ? nextNameParent : nextNameParentParent in themes ? nextNameParentParent : null;
|
|
20
|
-
const theme = name ? themes[name] : null;
|
|
13
|
+
const { name, theme } = getTheme(props.name, parentName, themes);
|
|
21
14
|
const themeManager = useConstant(() => {
|
|
22
|
-
if (!theme) {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
15
|
const manager = new ThemeManager();
|
|
26
16
|
if (name) {
|
|
27
|
-
manager.setActiveTheme(
|
|
17
|
+
manager.setActiveTheme(name, themes[name]);
|
|
28
18
|
}
|
|
29
19
|
return manager;
|
|
30
20
|
});
|
|
31
21
|
useIsomorphicLayoutEffect(() => {
|
|
32
|
-
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
if (name) {
|
|
36
|
-
themeManager.setActiveTheme({ name, theme, parentName });
|
|
37
|
-
}
|
|
22
|
+
themeManager.setActiveTheme(name, theme);
|
|
38
23
|
return parent.onChangeTheme((next) => {
|
|
39
24
|
if (next) {
|
|
40
|
-
themeManager.setActiveTheme(
|
|
25
|
+
themeManager.setActiveTheme(next, themes[next]);
|
|
41
26
|
setParentName(next);
|
|
42
27
|
}
|
|
43
28
|
});
|
|
44
|
-
}, [themes, name
|
|
45
|
-
if (!name
|
|
29
|
+
}, [themes, name]);
|
|
30
|
+
if (!name) {
|
|
46
31
|
return props.children;
|
|
47
32
|
}
|
|
48
33
|
const contents = themeManager ? /* @__PURE__ */ React.createElement(ThemeManagerContext.Provider, {
|
|
@@ -52,16 +37,26 @@ const Theme = /* @__PURE__ */ __name((props) => {
|
|
|
52
37
|
if (props.disableThemeClass) {
|
|
53
38
|
return contents;
|
|
54
39
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
style: { display: "contents", color }
|
|
60
|
-
}, contents);
|
|
61
|
-
}
|
|
40
|
+
return /* @__PURE__ */ React.createElement("div", {
|
|
41
|
+
className: getThemeParentClassName(name),
|
|
42
|
+
style: { display: "contents", color: themes[name]?.["color"] }
|
|
43
|
+
}, contents);
|
|
62
44
|
}
|
|
63
45
|
return contents;
|
|
64
46
|
}, "Theme");
|
|
47
|
+
function getTheme(name, parentName, themes) {
|
|
48
|
+
let fullName = name || parentName || "";
|
|
49
|
+
let nextTheme = themes[fullName];
|
|
50
|
+
if (name && !nextTheme) {
|
|
51
|
+
const themeSchemeName = `${fullName}-${parentName}`;
|
|
52
|
+
if (themes[themeSchemeName]) {
|
|
53
|
+
fullName = themeSchemeName;
|
|
54
|
+
nextTheme = themes[themeSchemeName];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return { name: fullName, theme: nextTheme };
|
|
58
|
+
}
|
|
59
|
+
__name(getTheme, "getTheme");
|
|
65
60
|
export {
|
|
66
61
|
Theme
|
|
67
62
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/views/Theme.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useContext, useState } from 'react'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getThemeParentClassName } from '../createTamagui'\nimport { useConstant } from '../hooks/useConstant'\nimport { ThemeName, Themes } from '../types'\nimport { ThemeContext } from './ThemeContext'\nimport { ThemeManager, ThemeManagerContext } from './ThemeManagerContext'\n\nexport type ThemeProps = {\n disableThemeClass?: boolean\n name: ThemeName | null\n children?: any\n}\n\nexport const Theme = (props: ThemeProps) => {\n const parent = useContext(ThemeManagerContext)\n const themes = useContext(ThemeContext)\n const [parentName, setParentName] = useState(parent.name || 'light')\n const { name, theme } = getTheme(props.name as string, parentName, themes)\n const themeManager = useConstant<ThemeManager>(() => {\n const manager = new ThemeManager()\n if (name) {\n manager.setActiveTheme(name, themes[name])\n }\n return manager\n })\n\n useIsomorphicLayoutEffect(() => {\n themeManager.setActiveTheme(name, theme)\n return parent.onChangeTheme((next) => {\n if (next) {\n themeManager.setActiveTheme(next, themes[next])\n setParentName(next)\n }\n })\n }, [themes, name])\n\n if (!name) {\n return props.children\n }\n\n const contents = themeManager ? (\n <ThemeManagerContext.Provider value={themeManager}>{props.children}</ThemeManagerContext.Provider>\n ) : (\n props.children\n )\n\n if (isWeb) {\n if (props.disableThemeClass) {\n return contents\n }\n return (\n <div\n className={getThemeParentClassName(name)}\n // in order to provide currentColor, set color by default\n // @ts-ignore TODO\n style={{ display: 'contents', color: themes[name]?.['color'] }}\n >\n {contents}\n </div>\n )\n }\n\n return contents\n}\n\n// this will get the theme, but if there is none, will try and find a \"parent matching\" theme:\n// so if you parent theme name is \"light\", and you pass in \"purple\" and there's no purple theme,\n// this will check if \"purple-light\" exists and if so use that.\nfunction getTheme(name: string, parentName: string, themes: Themes) {\n let fullName = name || parentName || ''\n let nextTheme = themes[fullName]\n if (name && !nextTheme) {\n const themeSchemeName = `${fullName}-${parentName}`\n if (themes[themeSchemeName]) {\n fullName = themeSchemeName\n nextTheme = themes[themeSchemeName]\n }\n }\n return { name: fullName, theme: nextTheme }\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAQO,MAAM,QAAQ,wBAAC,UAAsB;AAC1C,QAAM,SAAS,WAAW;AAC1B,QAAM,SAAS,WAAW;AAC1B,QAAM,CAAC,YAAY,iBAAiB,SAAS,OAAO,QAAQ;AAC5D,QAAM,EAAE,MAAM,UAAU,SAAS,MAAM,MAAgB,YAAY;AACnE,QAAM,eAAe,YAA0B,MAAM;AACnD,UAAM,UAAU,IAAI;AACpB,QAAI,MAAM;AACR,cAAQ,eAAe,MAAM,OAAO;AAAA;AAEtC,WAAO;AAAA;AAGT,4BAA0B,MAAM;AAC9B,iBAAa,eAAe,MAAM;AAClC,WAAO,OAAO,cAAc,CAAC,SAAS;AACpC,UAAI,MAAM;AACR,qBAAa,eAAe,MAAM,OAAO;AACzC,sBAAc;AAAA;AAAA;AAAA,KAGjB,CAAC,QAAQ;AAEZ,MAAI,CAAC,MAAM;AACT,WAAO,MAAM;AAAA;AAGf,QAAM,WAAW,eACf,oCAAC,oBAAoB,UAArB;AAAA,IAA8B,OAAO;AAAA,KAAe,MAAM,YAE1D,MAAM;AAGR,MAAI,OAAO;AACT,QAAI,MAAM,mBAAmB;AAC3B,aAAO;AAAA;AAET,WACE,oCAAC,OAAD;AAAA,MACE,WAAW,wBAAwB;AAAA,MAGnC,OAAO,EAAE,SAAS,YAAY,OAAO,OAAO,QAAQ;AAAA,OAEnD;AAAA;AAKP,SAAO;AAAA,GAjDY;AAuDrB,kBAAkB,MAAc,YAAoB,QAAgB;AAClE,MAAI,WAAW,QAAQ,cAAc;AACrC,MAAI,YAAY,OAAO;AACvB,MAAI,QAAQ,CAAC,WAAW;AACtB,UAAM,kBAAkB,GAAG,YAAY;AACvC,QAAI,OAAO,kBAAkB;AAC3B,iBAAW;AACX,kBAAY,OAAO;AAAA;AAAA;AAGvB,SAAO,EAAE,MAAM,UAAU,OAAO;AAAA;AAVzB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../src/views/ThemeContext.tsx"],
|
|
4
4
|
"sourcesContent": ["import { createContext } from 'react'\n\nimport { Themes } from '../types'\n\nexport const ThemeContext = createContext<Themes>(null as any)\n"],
|
|
5
5
|
"mappings": "AAAA;AAIO,MAAM,eAAe,cAAsB;",
|
|
6
6
|
"names": []
|
|
@@ -15,6 +15,7 @@ const ThemeInverse = /* @__PURE__ */ __name((props) => {
|
|
|
15
15
|
const themeName = useThemeName();
|
|
16
16
|
const defaultTheme = useDefaultThemeName();
|
|
17
17
|
const name = inversions[themeName] || inversions[defaultTheme] || null;
|
|
18
|
+
console.log("todo fixme invert", { themeName, defaultTheme, next: name });
|
|
18
19
|
return /* @__PURE__ */ React.createElement(Theme, {
|
|
19
20
|
name
|
|
20
21
|
}, props.children);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
4
|
-
"sourcesContent": ["import React from 'react'\n\nimport { useDefaultThemeName, useThemeName } from '../hooks/useTheme'\nimport { Theme } from './Theme'\n\ntype StringRecord = { [key: string]: string }\n\nlet inversions: StringRecord = {\n light: 'dark',\n dark: 'light',\n}\n\nexport function setThemeInversions(next: StringRecord) {\n inversions = next\n}\n\nexport const ThemeInverse = (props: { children: any }) => {\n const themeName = useThemeName()\n const defaultTheme = useDefaultThemeName()\n const name = inversions[themeName] || inversions[defaultTheme] || null\n return <Theme name={name}>{props.children}</Theme>\n}\n"],
|
|
5
|
-
"mappings": ";;AAAA;AAEA;AACA;AAIA,IAAI,aAA2B;AAAA,EAC7B,OAAO;AAAA,EACP,MAAM;AAAA;AAGD,4BAA4B,MAAoB;AACrD,eAAa;AAAA;AADC;AAIT,MAAM,eAAe,wBAAC,UAA6B;AACxD,QAAM,YAAY;AAClB,QAAM,eAAe;AACrB,QAAM,OAAO,WAAW,cAAc,WAAW,iBAAiB;AAClE,SAAO,oCAAC,OAAD;AAAA,IAAO;AAAA,KAAa,MAAM;AAAA,
|
|
3
|
+
"sources": ["../../src/views/ThemeInverse.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from 'react'\n\nimport { useDefaultThemeName, useThemeName } from '../hooks/useTheme'\nimport { Theme } from './Theme'\n\ntype StringRecord = { [key: string]: string }\n\nlet inversions: StringRecord = {\n light: 'dark',\n dark: 'light',\n}\n\nexport function setThemeInversions(next: StringRecord) {\n inversions = next\n}\n\nexport const ThemeInverse = (props: { children: any }) => {\n const themeName = useThemeName()\n const defaultTheme = useDefaultThemeName()\n const name = inversions[themeName] || inversions[defaultTheme] || null\n console.log('todo fixme invert', { themeName, defaultTheme, next: name })\n return <Theme name={name}>{props.children}</Theme>\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEA;AACA;AAIA,IAAI,aAA2B;AAAA,EAC7B,OAAO;AAAA,EACP,MAAM;AAAA;AAGD,4BAA4B,MAAoB;AACrD,eAAa;AAAA;AADC;AAIT,MAAM,eAAe,wBAAC,UAA6B;AACxD,QAAM,YAAY;AAClB,QAAM,eAAe;AACrB,QAAM,OAAO,WAAW,cAAc,WAAW,iBAAiB;AAClE,UAAQ,IAAI,qBAAqB,EAAE,WAAW,cAAc,MAAM;AAClE,SAAO,oCAAC,OAAD;AAAA,IAAO;AAAA,KAAa,MAAM;AAAA,GALP;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,22 +4,16 @@ import { createContext } from "react";
|
|
|
4
4
|
class ThemeManager {
|
|
5
5
|
constructor() {
|
|
6
6
|
this.name = "light";
|
|
7
|
-
this.parentName = null;
|
|
8
7
|
this.keys = new Map();
|
|
9
8
|
this.listeners = new Map();
|
|
10
|
-
this.
|
|
9
|
+
this.callbacks = new Set();
|
|
11
10
|
this.theme = null;
|
|
12
11
|
}
|
|
13
|
-
setActiveTheme({
|
|
14
|
-
name,
|
|
15
|
-
theme,
|
|
16
|
-
parentName
|
|
17
|
-
}) {
|
|
12
|
+
setActiveTheme(name, theme) {
|
|
18
13
|
if (name === this.name)
|
|
19
14
|
return;
|
|
20
15
|
this.name = name;
|
|
21
16
|
this.theme = theme;
|
|
22
|
-
this.parentName = parentName || null;
|
|
23
17
|
this.update();
|
|
24
18
|
}
|
|
25
19
|
track(uuid, keys) {
|
|
@@ -36,12 +30,12 @@ class ThemeManager {
|
|
|
36
30
|
this.listeners.get(uuid)?.();
|
|
37
31
|
}
|
|
38
32
|
}
|
|
39
|
-
this.
|
|
33
|
+
this.callbacks.forEach((cb) => cb(this.name));
|
|
40
34
|
}
|
|
41
35
|
onChangeTheme(cb) {
|
|
42
|
-
this.
|
|
36
|
+
this.callbacks.add(cb);
|
|
43
37
|
return () => {
|
|
44
|
-
this.
|
|
38
|
+
this.callbacks.delete(cb);
|
|
45
39
|
};
|
|
46
40
|
}
|
|
47
41
|
onUpdate(uuid, cb) {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/views/ThemeManagerContext.tsx"],
|
|
4
|
+
"sourcesContent": ["import { createContext } from 'react'\n\nexport class ThemeManager {\n name: string | null = 'light'\n keys = new Map<any, Set<string>>()\n listeners = new Map<any, Function>()\n callbacks = new Set<Function>()\n theme = null\n\n setActiveTheme(name: string | null, theme?: any) {\n if (name === this.name) return\n this.name = name\n this.theme = theme\n this.update()\n }\n\n track(uuid: any, keys: Set<string>) {\n if (!this.name) return\n this.keys.set(uuid, keys)\n }\n\n update() {\n if (!this.name) {\n this.keys.clear()\n }\n for (const [uuid, keys] of this.keys.entries()) {\n if (keys.size) {\n this.listeners.get(uuid)?.()\n }\n }\n this.callbacks.forEach((cb) => cb(this.name))\n }\n\n onChangeTheme(cb: (name: string | null) => void) {\n this.callbacks.add(cb)\n return () => {\n this.callbacks.delete(cb)\n }\n }\n\n onUpdate(uuid: any, cb: Function) {\n this.listeners.set(uuid, cb)\n return () => {\n this.listeners.delete(uuid)\n this.keys.delete(uuid)\n }\n }\n}\n\nexport const ThemeManagerContext = createContext<ThemeManager>(new ThemeManager())\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEO,mBAAmB;AAAA,EAAnB,cAFP;AAGE,gBAAsB;AACtB,gBAAO,IAAI;AACX,qBAAY,IAAI;AAChB,qBAAY,IAAI;AAChB,iBAAQ;AAAA;AAAA,EAER,eAAe,MAAqB,OAAa;AAC/C,QAAI,SAAS,KAAK;AAAM;AACxB,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK;AAAA;AAAA,EAGP,MAAM,MAAW,MAAmB;AAClC,QAAI,CAAC,KAAK;AAAM;AAChB,SAAK,KAAK,IAAI,MAAM;AAAA;AAAA,EAGtB,SAAS;AACP,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,KAAK;AAAA;AAEZ,eAAW,CAAC,MAAM,SAAS,KAAK,KAAK,WAAW;AAC9C,UAAI,KAAK,MAAM;AACb,aAAK,UAAU,IAAI;AAAA;AAAA;AAGvB,SAAK,UAAU,QAAQ,CAAC,OAAO,GAAG,KAAK;AAAA;AAAA,EAGzC,cAAc,IAAmC;AAC/C,SAAK,UAAU,IAAI;AACnB,WAAO,MAAM;AACX,WAAK,UAAU,OAAO;AAAA;AAAA;AAAA,EAI1B,SAAS,MAAW,IAAc;AAChC,SAAK,UAAU,IAAI,MAAM;AACzB,WAAO,MAAM;AACX,WAAK,UAAU,OAAO;AACtB,WAAK,KAAK,OAAO;AAAA;AAAA;AAAA;AA1ChB;AA+CA,MAAM,sBAAsB,cAA4B,IAAI;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -22,17 +22,17 @@ const ThemeProvider = /* @__PURE__ */ __name((props) => {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
}, []);
|
|
25
|
-
const themeContext = useMemo(() => {
|
|
26
|
-
return new Proxy(props.themes, {
|
|
27
|
-
get(target, key) {
|
|
28
|
-
if (key === GET_DEFAULT_THEME)
|
|
29
|
-
return props.defaultTheme;
|
|
30
|
-
return Reflect.get(target, key);
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}, [props.themes]);
|
|
34
25
|
return /* @__PURE__ */ React.createElement(ThemeContext.Provider, {
|
|
35
|
-
value:
|
|
26
|
+
value: useMemo(() => {
|
|
27
|
+
console.log("wut are", props.themes);
|
|
28
|
+
return new Proxy(props.themes, {
|
|
29
|
+
get(target, key) {
|
|
30
|
+
if (key === GET_DEFAULT_THEME)
|
|
31
|
+
return props.defaultTheme;
|
|
32
|
+
return Reflect.get(target, key);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}, [props.themes])
|
|
36
36
|
}, /* @__PURE__ */ React.createElement(Theme, {
|
|
37
37
|
name: props.defaultTheme,
|
|
38
38
|
disableThemeClass: props.disableRootThemeClass
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/views/ThemeProvider.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useMemo } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getHasConfigured, getThemeParentClassName } from '../createTamagui'\nimport { ThemeName, Themes } from '../types'\nimport { Theme } from './Theme'\nimport { ThemeContext } from './ThemeContext'\n\nexport type ThemeProviderProps = {\n themes: any\n defaultTheme: string\n disableRootThemeClass?: boolean\n children?: any\n}\n\nexport const GET_DEFAULT_THEME = '___TGUI'\n\nexport const ThemeProvider = (props: ThemeProviderProps) => {\n if (!getHasConfigured()) {\n throw new Error(`Missing configureThemes() call, add to your root file`)\n }\n\n // ensure theme is attached to root body node as well to work with modals by default\n useIsomorphicLayoutEffect(() => {\n if (props.disableRootThemeClass) {\n return\n }\n if (typeof document !== 'undefined') {\n const cns = getThemeParentClassName(`${props.defaultTheme}`).split(' ')\n cns.forEach((cn) => document.body.classList.add(cn))\n return () => {\n cns.forEach((cn) => document.body.classList.remove(cn))\n }\n }\n }, [])\n\n return (\n <ThemeContext.Provider\n value={useMemo(() => {\n console.log('wut are', props.themes)\n return new Proxy(props.themes, {\n get(target, key) {\n if (key === GET_DEFAULT_THEME) return props.defaultTheme\n return Reflect.get(target, key)\n },\n })\n }, [props.themes])}\n >\n <Theme name={props.defaultTheme} disableThemeClass={props.disableRootThemeClass}>\n {props.children}\n </Theme>\n </ThemeContext.Provider>\n )\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEA;AACA;AAEA;AACA;AASO,MAAM,oBAAoB;AAE1B,MAAM,gBAAgB,wBAAC,UAA8B;AAC1D,MAAI,CAAC,oBAAoB;AACvB,UAAM,IAAI,MAAM;AAAA;AAIlB,4BAA0B,MAAM;AAC9B,QAAI,MAAM,uBAAuB;AAC/B;AAAA;AAEF,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,MAAM,wBAAwB,GAAG,MAAM,gBAAgB,MAAM;AACnE,UAAI,QAAQ,CAAC,OAAO,SAAS,KAAK,UAAU,IAAI;AAChD,aAAO,MAAM;AACX,YAAI,QAAQ,CAAC,OAAO,SAAS,KAAK,UAAU,OAAO;AAAA;AAAA;AAAA,KAGtD;AAEH,SACE,oCAAC,aAAa,UAAd;AAAA,IACE,OAAO,QAAQ,MAAM;AACnB,cAAQ,IAAI,WAAW,MAAM;AAC7B,aAAO,IAAI,MAAM,MAAM,QAAQ;AAAA,QAC7B,IAAI,QAAQ,KAAK;AACf,cAAI,QAAQ;AAAmB,mBAAO,MAAM;AAC5C,iBAAO,QAAQ,IAAI,QAAQ;AAAA;AAAA;AAAA,OAG9B,CAAC,MAAM;AAAA,KAEV,oCAAC,OAAD;AAAA,IAAO,MAAM,MAAM;AAAA,IAAc,mBAAmB,MAAM;AAAA,KACvD,MAAM;AAAA,GAhCc;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/core",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.38",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
"dist"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@tamagui/helpers": "^1.0.0-alpha.
|
|
17
|
+
"@tamagui/helpers": "^1.0.0-alpha.38",
|
|
18
18
|
"@tamagui/ow": "^0.28.1",
|
|
19
|
-
"@tamagui/use-debounce": "^1.0.0-alpha.
|
|
20
|
-
"@tamagui/use-force-update": "^1.0.0-alpha.
|
|
19
|
+
"@tamagui/use-debounce": "^1.0.0-alpha.38",
|
|
20
|
+
"@tamagui/use-force-update": "^1.0.0-alpha.38",
|
|
21
21
|
"react": "*",
|
|
22
22
|
"react-dom": "*"
|
|
23
23
|
},
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"react-native-web": "*"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@tamagui/build": "^1.0.0-alpha.
|
|
28
|
+
"@tamagui/build": "^1.0.0-alpha.38",
|
|
29
29
|
"@types/react": "^17.0.35",
|
|
30
30
|
"esbuild": "^0.13.12",
|
|
31
31
|
"react-native-web": "^0.17.5",
|
|
@@ -34,8 +34,5 @@
|
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "public"
|
|
36
36
|
},
|
|
37
|
-
"
|
|
38
|
-
"node": ">=16"
|
|
39
|
-
},
|
|
40
|
-
"gitHead": "3593d13742ae284776db7fbe0486d622312c7c15"
|
|
37
|
+
"gitHead": "155f989a05a70b2a9181cf820363f170a293f78b"
|
|
41
38
|
}
|
package/types/createTheme.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import { Variable } from './createVariable';
|
|
|
2
2
|
declare type GenericTheme = {
|
|
3
3
|
[key: string]: string | Variable;
|
|
4
4
|
};
|
|
5
|
-
export declare const createTheme: <Theme extends GenericTheme>(theme: Theme) => Theme;
|
|
5
|
+
export declare const createTheme: <Theme extends GenericTheme>(theme: Theme) => { [K in keyof Theme]: string | Variable | Theme[K]; };
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=createTheme.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function fixNativeShadow(props: any):
|
|
1
|
+
export declare function fixNativeShadow(props: any): void;
|
|
2
2
|
//# sourceMappingURL=fixNativeShadow.native.d.ts.map
|
package/types/styled.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { MediaProps, StaticComponent, StaticConfig, TamaguiConfig, Themes, Tokens } from './types';
|
|
3
3
|
export declare function styled<ParentComponent extends StaticComponent | React.Component<any>, Variants extends GetVariants<ParentComponent>>(Component: ParentComponent, options?: GetProps<ParentComponent> & {
|
|
4
4
|
variants?: Variants;
|
|
5
|
-
}, staticExtractionOptions?: StaticConfig): StaticComponent<Omit<GetProps<ParentComponent>, keyof GetVariantProps<Variants>> & GetVariantProps<Variants> & MediaProps<GetVariantProps<Variants>>,
|
|
5
|
+
}, staticExtractionOptions?: StaticConfig): StaticComponent<keyof GetVariantProps<Variants> extends never ? GetProps<ParentComponent> : Omit<GetProps<ParentComponent>, keyof GetVariantProps<Variants>> & GetVariantProps<Variants> & MediaProps<GetVariantProps<Variants>>, void, import("./types").StaticConfigParsed, any>;
|
|
6
6
|
export declare type GetProps<A> = A extends StaticComponent<infer Props> ? Props : A extends React.Component<infer Props> ? Props : {};
|
|
7
7
|
export declare type GetVariants<ParentComponent extends StaticComponent | React.Component<any>> = void | {
|
|
8
8
|
[key: string]: {
|
package/types/types.d.ts
CHANGED
|
@@ -171,7 +171,7 @@ declare type WebOnlyStyleProps = {
|
|
|
171
171
|
};
|
|
172
172
|
export declare type StackStylePropsBase = Omit<ViewStyle, 'display' | 'backfaceVisibility' | 'elevation'> & TransformStyleProps & WebOnlyStyleProps;
|
|
173
173
|
export declare type StackStyleProps = WithThemeShorthandsPseudosAndMedia<StackStylePropsBase>;
|
|
174
|
-
export declare type StackProps = Omit<RNWInternalProps, 'children'> &
|
|
174
|
+
export declare type StackProps = Omit<RNWInternalProps, 'children'> & StackStyleProps & ComponentPropsBase & {
|
|
175
175
|
ref?: RefObject<View | HTMLElement> | ((node: View | HTMLElement) => any);
|
|
176
176
|
children?: any | any[];
|
|
177
177
|
};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __spreadValues = (a, b) => {
|
|
11
|
-
for (var prop in b || (b = {}))
|
|
12
|
-
if (__hasOwnProp.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
if (__getOwnPropSymbols)
|
|
15
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
}
|
|
19
|
-
return a;
|
|
20
|
-
};
|
|
21
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
22
|
-
var __export = (target, all) => {
|
|
23
|
-
__markAsModule(target);
|
|
24
|
-
for (var name in all)
|
|
25
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
26
|
-
};
|
|
27
|
-
var __reExport = (target, module2, desc) => {
|
|
28
|
-
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
29
|
-
for (let key of __getOwnPropNames(module2))
|
|
30
|
-
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
31
|
-
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
32
|
-
}
|
|
33
|
-
return target;
|
|
34
|
-
};
|
|
35
|
-
var __toModule = (module2) => {
|
|
36
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
37
|
-
};
|
|
38
|
-
__export(exports, {
|
|
39
|
-
stackDefaultStyles: () => stackDefaultStyles
|
|
40
|
-
});
|
|
41
|
-
var import_platform = __toModule(require("./platform"));
|
|
42
|
-
const stackDefaultStyles = __spreadValues({
|
|
43
|
-
alignItems: "stretch",
|
|
44
|
-
flexShrink: 0
|
|
45
|
-
}, import_platform.isWeb && {
|
|
46
|
-
display: "flex",
|
|
47
|
-
flexBasis: "auto",
|
|
48
|
-
boxSizing: "border-box"
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/constants/constants.ts"],
|
|
4
|
-
"sourcesContent": ["import { isWeb } from './platform'\n\nexport const stackDefaultStyles = {\n alignItems: 'stretch',\n flexShrink: 0,\n // more accurately match react-native defaults on web\n ...(isWeb && {\n display: 'flex',\n flexBasis: 'auto',\n boxSizing: 'border-box',\n }),\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,sBAAsB;AAEf,MAAM,qBAAqB;AAAA,EAChC,YAAY;AAAA,EACZ,YAAY;AAAA,GAER,yBAAS;AAAA,EACX,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AAAA;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
|
-
for (var name in all)
|
|
11
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
-
};
|
|
13
|
-
var __reExport = (target, module2, desc) => {
|
|
14
|
-
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(module2))
|
|
16
|
-
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
-
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
18
|
-
}
|
|
19
|
-
return target;
|
|
20
|
-
};
|
|
21
|
-
var __toModule = (module2) => {
|
|
22
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
23
|
-
};
|
|
24
|
-
__export(exports, {
|
|
25
|
-
isChrome: () => isChrome,
|
|
26
|
-
isSSR: () => isSSR,
|
|
27
|
-
isTouchDevice: () => isTouchDevice,
|
|
28
|
-
isWeb: () => isWeb,
|
|
29
|
-
isWebIOS: () => isWebIOS,
|
|
30
|
-
supportsTouchWeb: () => supportsTouchWeb,
|
|
31
|
-
useIsomorphicLayoutEffect: () => useIsomorphicLayoutEffect
|
|
32
|
-
});
|
|
33
|
-
var import_react = __toModule(require("react"));
|
|
34
|
-
var import_react_native = __toModule(require("react-native"));
|
|
35
|
-
var _a;
|
|
36
|
-
const isWeb = process.env.TAMAGUI_TARGET === "web" ? true : ((_a = import_react_native.Platform) == null ? void 0 : _a.OS) === "web";
|
|
37
|
-
const isSSR = isWeb && typeof window === "undefined";
|
|
38
|
-
const useIsomorphicLayoutEffect = isSSR ? import_react.useEffect : import_react.useLayoutEffect;
|
|
39
|
-
const isChrome = typeof navigator !== "undefined" && /Chrome/.test(navigator.userAgent || "");
|
|
40
|
-
const supportsTouchWeb = typeof window !== "undefined" && "ontouchstart" in window;
|
|
41
|
-
const isTouchDevice = !isWeb || supportsTouchWeb;
|
|
42
|
-
const isWebIOS = isWeb && typeof navigator !== "undefined" && (/iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) && !window["MSStream"];
|
|
43
|
-
//# sourceMappingURL=platform.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/constants/platform.ts"],
|
|
4
|
-
"sourcesContent": ["import { useEffect, useLayoutEffect } from 'react'\nimport { Platform } from 'react-native'\n\nexport const isWeb = process.env.TAMAGUI_TARGET === 'web' ? true : Platform?.OS === 'web'\nexport const isSSR = isWeb && typeof window === 'undefined'\nexport const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect\nexport const isChrome = typeof navigator !== 'undefined' && /Chrome/.test(navigator.userAgent || '')\nexport const supportsTouchWeb = typeof window !== 'undefined' && 'ontouchstart' in window\nexport const isTouchDevice = !isWeb || supportsTouchWeb\nexport const isWebIOS =\n isWeb &&\n typeof navigator !== 'undefined' &&\n (/iPad|iPhone|iPod/.test(navigator.platform) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n !window['MSStream']\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2C;AAC3C,0BAAyB;AADzB;AAGO,MAAM,QAAQ,QAAQ,IAAI,mBAAmB,QAAQ,OAAO,2DAAU,QAAO;AAC7E,MAAM,QAAQ,SAAS,OAAO,WAAW;AACzC,MAAM,4BAA4B,QAAQ,yBAAY;AACtD,MAAM,WAAW,OAAO,cAAc,eAAe,SAAS,KAAK,UAAU,aAAa;AAC1F,MAAM,mBAAmB,OAAO,WAAW,eAAe,kBAAkB;AAC5E,MAAM,gBAAgB,CAAC,SAAS;AAChC,MAAM,WACX,SACA,OAAO,cAAc,eACpB,oBAAmB,KAAK,UAAU,aAChC,UAAU,aAAa,cAAc,UAAU,iBAAiB,MACnE,CAAC,OAAO;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
3
|
-
var __export = (target, all) => {
|
|
4
|
-
__markAsModule(target);
|
|
5
|
-
for (var name in all)
|
|
6
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
7
|
-
};
|
|
8
|
-
__export(exports, {
|
|
9
|
-
pseudos: () => pseudos
|
|
10
|
-
});
|
|
11
|
-
const pseudos = {
|
|
12
|
-
focusStyle: {
|
|
13
|
-
name: "focus",
|
|
14
|
-
priority: 3
|
|
15
|
-
},
|
|
16
|
-
pressStyle: {
|
|
17
|
-
name: "active",
|
|
18
|
-
priority: 2
|
|
19
|
-
},
|
|
20
|
-
hoverStyle: {
|
|
21
|
-
name: "hover",
|
|
22
|
-
priority: 1
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
//# sourceMappingURL=pseudos.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/constants/pseudos.ts"],
|
|
4
|
-
"sourcesContent": ["export const pseudos = {\n focusStyle: {\n name: 'focus',\n priority: 3,\n },\n pressStyle: {\n name: 'active',\n priority: 2,\n },\n hoverStyle: {\n name: 'hover',\n priority: 1,\n },\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAAA;AAAA;AAAA;AAAO,MAAM,UAAU;AAAA,EACrB,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
3
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
4
|
-
var __export = (target, all) => {
|
|
5
|
-
__markAsModule(target);
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
__export(exports, {
|
|
10
|
-
rnw: () => rnw
|
|
11
|
-
});
|
|
12
|
-
const interopRequire = /* @__PURE__ */ __name((src) => "default" in src ? src.default : src, "interopRequire");
|
|
13
|
-
const rnw = {};
|
|
14
|
-
if (process.env.IS_STATIC === "is_static") {
|
|
15
|
-
const createCompileableStyle = require("react-native-web/dist/cjs/exports/StyleSheet/createCompileableStyle");
|
|
16
|
-
const createReactDOMStyle = require("react-native-web/dist/cjs/exports/StyleSheet/createReactDOMStyle");
|
|
17
|
-
const i18Style = require("react-native-web/dist/cjs/exports/StyleSheet/i18nStyle");
|
|
18
|
-
const atomic = require("react-native-web/dist/cjs/exports/StyleSheet/compile").atomic;
|
|
19
|
-
Object.assign(rnw, {
|
|
20
|
-
createCompileableStyle,
|
|
21
|
-
createReactDOMStyle,
|
|
22
|
-
i18Style,
|
|
23
|
-
atomic
|
|
24
|
-
});
|
|
25
|
-
} else if (process.env.TAMAGUI_TARGET === "web") {
|
|
26
|
-
Object.assign(rnw, interopRequire(require("react-native-web").TamaguiExports));
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=rnw.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/constants/rnw.tsx"],
|
|
4
|
-
"sourcesContent": ["const interopRequire = (src: any) => ('default' in src ? src.default : src)\n\nexport const rnw: Record<string, any> = {}\n\n// in static mode, require them directly since we can't import react-native-web at all (it has flow stuff in it)\nif (process.env.IS_STATIC === 'is_static') {\n const createCompileableStyle = require('react-native-web/dist/cjs/exports/StyleSheet/createCompileableStyle')\n const createReactDOMStyle = require('react-native-web/dist/cjs/exports/StyleSheet/createReactDOMStyle')\n const i18Style = require('react-native-web/dist/cjs/exports/StyleSheet/i18nStyle')\n const atomic = require('react-native-web/dist/cjs/exports/StyleSheet/compile').atomic\n Object.assign(rnw, {\n createCompileableStyle,\n createReactDOMStyle,\n i18Style,\n atomic,\n })\n} else if (process.env.TAMAGUI_TARGET === 'web') {\n // when targeting web (client) import it like so\n Object.assign(rnw, interopRequire(require('react-native-web').TamaguiExports))\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAAA;AAAA;AAAA;AAAA,MAAM,iBAAiB,wBAAC,QAAc,aAAa,MAAM,IAAI,UAAU,KAAhD;AAEhB,MAAM,MAA2B;AAGxC,IAAI,QAAQ,IAAI,cAAc,aAAa;AACzC,QAAM,yBAAyB,QAAQ;AACvC,QAAM,sBAAsB,QAAQ;AACpC,QAAM,WAAW,QAAQ;AACzB,QAAM,SAAS,QAAQ,wDAAwD;AAC/E,SAAO,OAAO,KAAK;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,WAEO,QAAQ,IAAI,mBAAmB,OAAO;AAE/C,SAAO,OAAO,KAAK,eAAe,QAAQ,oBAAoB;AAAA;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|