@tamagui/core 1.0.0-alpha.4 → 1.0.0-alpha.8
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/constants/constants.js +50 -0
- package/{_ → dist/cjs}/constants/constants.js.map +2 -2
- package/dist/cjs/constants/platform.js +43 -0
- package/dist/cjs/constants/platform.js.map +7 -0
- package/dist/cjs/constants/pseudos.js +25 -0
- package/{_ → dist/cjs}/constants/pseudos.js.map +2 -2
- package/{_ → dist/cjs}/constants/rnw.js +9 -3
- package/{_ → dist/cjs}/constants/rnw.js.map +2 -2
- package/dist/cjs/createComponent.js +531 -0
- package/dist/cjs/createComponent.js.map +7 -0
- package/dist/cjs/createFont.js +50 -0
- package/dist/cjs/createFont.js.map +7 -0
- package/{_ → dist/cjs}/createShorthands.js +9 -3
- package/{_ → dist/cjs}/createShorthands.js.map +2 -2
- package/dist/cjs/createTamagui.js +206 -0
- package/dist/cjs/createTamagui.js.map +7 -0
- package/dist/cjs/createTheme.js +42 -0
- package/{_ → dist/cjs}/createTheme.js.map +2 -2
- package/dist/cjs/createTokens.js +55 -0
- package/dist/cjs/createTokens.js.map +7 -0
- package/dist/cjs/createVariable.js +47 -0
- package/dist/cjs/createVariable.js.map +7 -0
- package/dist/cjs/helpers/addStylesUsingClassname.js +79 -0
- package/dist/cjs/helpers/addStylesUsingClassname.js.map +7 -0
- package/dist/cjs/helpers/createMediaStyle.js +56 -0
- package/{_ → dist/cjs}/helpers/createMediaStyle.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +190 -0
- package/dist/cjs/helpers/createPropMapper.js.map +7 -0
- package/dist/cjs/helpers/createTamaguiProvider.js +74 -0
- package/dist/cjs/helpers/createTamaguiProvider.js.map +7 -0
- package/dist/cjs/helpers/extendStaticConfig.js +82 -0
- package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
- package/dist/cjs/helpers/fixNativeShadow.js +14 -0
- package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
- package/{_ → dist/cjs}/helpers/fixNativeShadow.native.js +9 -3
- package/{_ → dist/cjs}/helpers/fixNativeShadow.native.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +180 -0
- package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
- package/dist/cjs/helpers/getStylesAtomic.js +117 -0
- package/{_ → dist/cjs}/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.native.js +16 -0
- package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
- package/dist/cjs/helpers/insertStyleRule.js +46 -0
- package/{_ → dist/cjs}/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/isObj.js +13 -0
- package/dist/cjs/helpers/isObj.js.map +7 -0
- package/dist/cjs/helpers/isTamaguiElement.js +33 -0
- package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
- package/dist/cjs/helpers/matchMedia.js +24 -0
- package/dist/cjs/helpers/matchMedia.js.map +7 -0
- package/dist/cjs/helpers/matchMedia.native.js +31 -0
- package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
- package/dist/cjs/helpers/themeable.js +78 -0
- package/{_ → dist/cjs}/helpers/themeable.js.map +2 -2
- package/dist/cjs/helpers/validate.js +82 -0
- package/dist/cjs/helpers/validate.js.map +7 -0
- package/dist/cjs/hooks/useConstant.js +37 -0
- package/{_ → dist/cjs}/hooks/useConstant.js.map +2 -2
- package/dist/cjs/hooks/useFeatures.js +100 -0
- package/dist/cjs/hooks/useFeatures.js.map +7 -0
- package/{_ → dist/cjs}/hooks/useMedia.js +59 -28
- package/dist/cjs/hooks/useMedia.js.map +7 -0
- package/dist/cjs/hooks/usePressable.js +50 -0
- package/{_ → dist/cjs}/hooks/usePressable.js.map +2 -2
- package/dist/cjs/hooks/useTheme.js +111 -0
- package/dist/cjs/hooks/useTheme.js.map +7 -0
- package/dist/cjs/index.js +55 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/static/postProcessStyles.js +40 -0
- package/{_ → dist/cjs}/static/postProcessStyles.js.map +2 -2
- package/dist/cjs/static.js +34 -0
- package/dist/cjs/static.js.map +7 -0
- package/dist/cjs/styled.js +72 -0
- package/dist/cjs/styled.js.map +7 -0
- package/dist/cjs/types.js +4 -0
- package/dist/cjs/types.js.map +7 -0
- package/dist/cjs/views/Animated.js +129 -0
- package/{_ → dist/cjs}/views/Animated.js.map +2 -2
- package/dist/cjs/views/Stack.js +51 -0
- package/{_ → dist/cjs}/views/Stack.js.map +2 -2
- package/dist/cjs/views/Text.js +93 -0
- package/{_ → dist/cjs}/views/Text.js.map +2 -2
- package/dist/cjs/views/TextAncestorContext.js +41 -0
- package/{_ → dist/cjs}/views/TextAncestorContext.js.map +2 -2
- package/dist/cjs/views/Theme.js +88 -0
- package/dist/cjs/views/Theme.js.map +7 -0
- package/dist/cjs/views/ThemeContext.js +29 -0
- package/{_ → dist/cjs}/views/ThemeContext.js.map +2 -2
- package/dist/cjs/views/ThemeInverse.js +48 -0
- package/{_ → dist/cjs}/views/ThemeInverse.js.map +3 -3
- package/dist/cjs/views/ThemeManagerContext.js +84 -0
- package/dist/cjs/views/ThemeManagerContext.js.map +7 -0
- package/dist/cjs/views/ThemeProvider.js +67 -0
- package/{_ → dist/cjs}/views/ThemeProvider.js.map +2 -2
- package/dist/createComponent.js +49 -31
- package/dist/createComponent.js.map +2 -2
- package/dist/createFont.js +4 -0
- package/dist/createFont.js.map +2 -2
- package/dist/createTamagui.js +11 -2
- package/dist/createTamagui.js.map +2 -2
- package/dist/createTokens.js +4 -0
- package/dist/createTokens.js.map +2 -2
- package/dist/createVariable.js +3 -0
- package/dist/createVariable.js.map +2 -2
- package/dist/helpers/createPropMapper.js +2 -2
- package/dist/helpers/createPropMapper.js.map +1 -1
- package/dist/helpers/getSplitStyles.js +13 -23
- package/dist/helpers/getSplitStyles.js.map +2 -2
- package/dist/helpers/isComponent.js +10 -0
- package/dist/helpers/isComponent.js.map +7 -0
- package/dist/helpers/isTamaguiComponent.js +10 -0
- package/dist/helpers/isTamaguiComponent.js.map +7 -0
- package/dist/helpers/isTamaguiElement.js +10 -0
- package/dist/helpers/isTamaguiElement.js.map +7 -0
- package/dist/helpers/matchMedia.js +3 -0
- package/dist/helpers/matchMedia.js.map +2 -2
- package/dist/helpers/matchMedia.native.js +1 -0
- package/dist/helpers/matchMedia.native.js.map +2 -2
- package/dist/helpers/validate.js +60 -0
- package/dist/helpers/validate.js.map +7 -0
- package/dist/helpers/validateConfig.js +46 -0
- package/dist/helpers/validateConfig.js.map +7 -0
- package/dist/helpers/validateTokens.js +29 -0
- package/dist/helpers/validateTokens.js.map +7 -0
- package/dist/hooks/useFeatures.js +39 -51
- package/dist/hooks/useFeatures.js.map +2 -2
- package/dist/hooks/useMedia.js.map +1 -1
- package/dist/hooks/useTheme.js +5 -9
- package/dist/hooks/useTheme.js.map +2 -2
- package/dist/index.cjs +234 -135
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +2 -2
- package/dist/views/Theme.js +16 -7
- package/dist/views/Theme.js.map +2 -2
- package/dist/views/ThemeInverse.js +0 -1
- package/dist/views/ThemeInverse.js.map +2 -2
- package/dist/views/ThemeManagerContext.js +11 -5
- package/dist/views/ThemeManagerContext.js.map +2 -2
- package/package.json +18 -12
- package/src/createComponent.tsx +55 -40
- package/src/createFont.ts +5 -0
- package/src/createTamagui.ts +11 -1
- package/src/createTokens.ts +6 -1
- package/src/createVariable.ts +4 -0
- package/src/helpers/createPropMapper.ts +2 -2
- package/src/helpers/getSplitStyles.tsx +16 -26
- package/src/helpers/isTamaguiElement.tsx +5 -0
- package/src/helpers/matchMedia.native.ts +3 -0
- package/src/helpers/matchMedia.ts +9 -1
- package/src/helpers/validate.ts +59 -0
- package/src/hooks/useFeatures.tsx +54 -53
- package/src/hooks/useMedia.tsx +1 -1
- package/src/hooks/useTheme.tsx +7 -8
- package/src/index.ts +1 -1
- package/src/types.tsx +3 -2
- package/src/views/Theme.tsx +26 -9
- package/src/views/ThemeInverse.tsx +0 -1
- package/src/views/ThemeManagerContext.tsx +18 -6
- package/types.d.ts +10 -8
- package/.ultra.cache.json +0 -1
- package/_/constants/constants.js +0 -14
- package/_/constants/platform.js +0 -20
- package/_/constants/platform.js.map +0 -7
- package/_/constants/pseudos.js +0 -18
- package/_/createComponent.js +0 -427
- package/_/createComponent.js.map +0 -7
- package/_/createTamagui.js +0 -122
- package/_/createTamagui.js.map +0 -7
- package/_/createTheme.js +0 -20
- package/_/createTokens.js +0 -29
- package/_/createTokens.js.map +0 -7
- package/_/createVariable.js +0 -22
- package/_/createVariable.js.map +0 -7
- package/_/helpers/addStylesUsingClassname.js +0 -32
- package/_/helpers/addStylesUsingClassname.js.map +0 -7
- package/_/helpers/createMediaStyle.js +0 -34
- package/_/helpers/createTamaguiProvider.js +0 -42
- package/_/helpers/createTamaguiProvider.js.map +0 -7
- package/_/helpers/extendStaticConfig.js +0 -176
- package/_/helpers/extendStaticConfig.js.map +0 -7
- package/_/helpers/fixNativeShadow.js +0 -8
- package/_/helpers/fixNativeShadow.js.map +0 -7
- package/_/helpers/getSplitStyles.js +0 -160
- package/_/helpers/getSplitStyles.js.map +0 -7
- package/_/helpers/getStylesAtomic.js +0 -84
- package/_/helpers/getStylesAtomic.native.js +0 -10
- package/_/helpers/getStylesAtomic.native.js.map +0 -7
- package/_/helpers/insertStyleRule.js +0 -24
- package/_/helpers/matchMedia.js +0 -15
- package/_/helpers/matchMedia.js.map +0 -7
- package/_/helpers/matchMedia.native.js +0 -8
- package/_/helpers/matchMedia.native.js.map +0 -7
- package/_/helpers/themeable.js +0 -26
- package/_/hooks/useConstant.js +0 -15
- package/_/hooks/useFeatures.js +0 -75
- package/_/hooks/useFeatures.js.map +0 -7
- package/_/hooks/useForceUpdate.js +0 -28
- package/_/hooks/useForceUpdate.js.map +0 -7
- package/_/hooks/useMedia.js.map +0 -7
- package/_/hooks/usePressable.js +0 -14
- package/_/hooks/useTheme.js +0 -94
- package/_/hooks/useTheme.js.map +0 -7
- package/_/index.js +0 -30
- package/_/index.js.map +0 -7
- package/_/static/postProcessStyles.js +0 -18
- package/_/static.js +0 -12
- package/_/static.js.map +0 -7
- package/_/styled.js +0 -21
- package/_/styled.js.map +0 -7
- package/_/types.js +0 -1
- package/_/types.js.map +0 -7
- package/_/views/Animated.js +0 -79
- package/_/views/Stack.js +0 -12
- package/_/views/Text.js +0 -60
- package/_/views/TextAncestorContext.js +0 -19
- package/_/views/Theme.js +0 -57
- package/_/views/Theme.js.map +0 -7
- package/_/views/ThemeContext.js +0 -6
- package/_/views/ThemeInverse.js +0 -27
- package/_/views/ThemeManagerContext.js +0 -56
- package/_/views/ThemeManagerContext.js.map +0 -7
- package/_/views/ThemeProvider.js +0 -45
- package/src/views/SafeAreaProvider.tsx +0 -33
- package/tsconfig.json +0 -8
package/_/views/Animated.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import React, { useMemo } from "react";
|
|
4
|
-
import {
|
|
5
|
-
Animated
|
|
6
|
-
} from "react-native";
|
|
7
|
-
import { useIsomorphicLayoutEffect } from "../constants/platform";
|
|
8
|
-
import { useConstant } from "../hooks/useConstant";
|
|
9
|
-
import { Stack } from "./Stack";
|
|
10
|
-
const defaultAnimation = {
|
|
11
|
-
from: {
|
|
12
|
-
opacity: 0,
|
|
13
|
-
translateY: 12
|
|
14
|
-
},
|
|
15
|
-
to: {
|
|
16
|
-
opacity: 1,
|
|
17
|
-
translateY: 0
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
const styleKeys = {
|
|
21
|
-
opacity: true,
|
|
22
|
-
backgroundColor: true,
|
|
23
|
-
borderColor: true
|
|
24
|
-
};
|
|
25
|
-
const AnimatedStack = /* @__PURE__ */ __name(({
|
|
26
|
-
animateState = "in",
|
|
27
|
-
animation = defaultAnimation,
|
|
28
|
-
velocity = 6,
|
|
29
|
-
children,
|
|
30
|
-
animated,
|
|
31
|
-
...props
|
|
32
|
-
}) => {
|
|
33
|
-
const driver = useConstant(() => {
|
|
34
|
-
return new Animated.Value(0);
|
|
35
|
-
});
|
|
36
|
-
const animatedProps = useMemo(() => {
|
|
37
|
-
if (!animated) {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
const styleProps = {};
|
|
41
|
-
const transform = [];
|
|
42
|
-
for (const key in animation.from) {
|
|
43
|
-
const fromVal = animation.from[key];
|
|
44
|
-
const toVal = animation.to[key];
|
|
45
|
-
const interpolatedVal = driver.interpolate({
|
|
46
|
-
inputRange: [0, 1],
|
|
47
|
-
outputRange: [fromVal, toVal]
|
|
48
|
-
});
|
|
49
|
-
if (styleKeys[key]) {
|
|
50
|
-
styleProps[key] = interpolatedVal;
|
|
51
|
-
} else {
|
|
52
|
-
transform.push({
|
|
53
|
-
[key]: interpolatedVal
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return { transform, ...styleProps };
|
|
58
|
-
}, [animated, animateState]);
|
|
59
|
-
useIsomorphicLayoutEffect(() => {
|
|
60
|
-
if (!animated) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
Animated.spring(driver, {
|
|
64
|
-
useNativeDriver: true,
|
|
65
|
-
velocity,
|
|
66
|
-
toValue: animateState === "in" ? 1 : 0
|
|
67
|
-
}).start();
|
|
68
|
-
}, [animated, animateState]);
|
|
69
|
-
const childrenMemo = useMemo(() => children, [children]);
|
|
70
|
-
return /* @__PURE__ */ React.createElement(Stack, {
|
|
71
|
-
animated,
|
|
72
|
-
...props,
|
|
73
|
-
...animatedProps
|
|
74
|
-
}, childrenMemo);
|
|
75
|
-
}, "AnimatedStack");
|
|
76
|
-
export {
|
|
77
|
-
AnimatedStack
|
|
78
|
-
};
|
|
79
|
-
//# sourceMappingURL=Animated.js.map
|
package/_/views/Stack.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { stackDefaultStyles } from "../constants/constants";
|
|
2
|
-
import { createComponent } from "../createComponent";
|
|
3
|
-
const Stack = createComponent({
|
|
4
|
-
defaultProps: {
|
|
5
|
-
...stackDefaultStyles,
|
|
6
|
-
flexDirection: "column"
|
|
7
|
-
}
|
|
8
|
-
});
|
|
9
|
-
export {
|
|
10
|
-
Stack
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=Stack.js.map
|
package/_/views/Text.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { isWeb } from "../constants/platform";
|
|
2
|
-
import { createComponent } from "../createComponent";
|
|
3
|
-
import { stylePropsTextOnly, validStyles } from "../static";
|
|
4
|
-
const ellipseStyle = {
|
|
5
|
-
maxWidth: "100%",
|
|
6
|
-
overflow: "hidden",
|
|
7
|
-
textOverflow: "ellipsis",
|
|
8
|
-
whiteSpace: "nowrap"
|
|
9
|
-
};
|
|
10
|
-
const Text = createComponent({
|
|
11
|
-
isText: true,
|
|
12
|
-
defaultProps: {
|
|
13
|
-
display: isWeb ? "inline" : "inline-flex",
|
|
14
|
-
boxSizing: "border-box",
|
|
15
|
-
fontFamily: "System",
|
|
16
|
-
wordWrap: "break-word"
|
|
17
|
-
},
|
|
18
|
-
variants: {
|
|
19
|
-
numberOfLines: {
|
|
20
|
-
1: ellipseStyle,
|
|
21
|
-
"[number]": (lines) => lines > 1 ? { WebkitLineClamp: 1 } : null
|
|
22
|
-
},
|
|
23
|
-
selectable: {
|
|
24
|
-
true: {
|
|
25
|
-
userSelect: "text"
|
|
26
|
-
},
|
|
27
|
-
false: {
|
|
28
|
-
userSelect: "none"
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
pressable: {
|
|
32
|
-
true: {
|
|
33
|
-
cursor: "pointer"
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
ellipse: {
|
|
37
|
-
true: isWeb ? ellipseStyle : {
|
|
38
|
-
numberOfLines: 1,
|
|
39
|
-
lineBreakMode: "clip"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
deoptProps: new Set(isWeb ? [] : ["ellipse"]),
|
|
44
|
-
validStyles: {
|
|
45
|
-
...validStyles,
|
|
46
|
-
...stylePropsTextOnly,
|
|
47
|
-
...isWeb && {
|
|
48
|
-
userSelect: true,
|
|
49
|
-
textOverflow: true,
|
|
50
|
-
whiteSpace: true,
|
|
51
|
-
wordWrap: true,
|
|
52
|
-
selectable: true,
|
|
53
|
-
cursor: true
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
export {
|
|
58
|
-
Text
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=Text.js.map
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
var _a;
|
|
4
|
-
import React from "react";
|
|
5
|
-
import { rnw } from "../constants/rnw";
|
|
6
|
-
const TextAncestorContext = (_a = rnw) == null ? void 0 : _a.TextAncestorContext;
|
|
7
|
-
const TextAncestorProvider = /* @__PURE__ */ __name((props) => {
|
|
8
|
-
if (TextAncestorContext) {
|
|
9
|
-
return /* @__PURE__ */ React.createElement(TextAncestorContext.Provider, {
|
|
10
|
-
value: false
|
|
11
|
-
}, props.children);
|
|
12
|
-
}
|
|
13
|
-
return props.children;
|
|
14
|
-
}, "TextAncestorProvider");
|
|
15
|
-
export {
|
|
16
|
-
TextAncestorContext,
|
|
17
|
-
TextAncestorProvider
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=TextAncestorContext.js.map
|
package/_/views/Theme.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import React, { useContext, useState } from "react";
|
|
4
|
-
import { isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
|
|
5
|
-
import { getThemeParentClassName } from "../createTamagui";
|
|
6
|
-
import { useConstant } from "../hooks/useConstant";
|
|
7
|
-
import { ThemeContext } from "./ThemeContext";
|
|
8
|
-
import { ThemeManager, ThemeManagerContext } from "./ThemeManagerContext";
|
|
9
|
-
const Theme = /* @__PURE__ */ __name((props) => {
|
|
10
|
-
var _a, _b;
|
|
11
|
-
const parent = useContext(ThemeManagerContext);
|
|
12
|
-
const themes = useContext(ThemeContext);
|
|
13
|
-
const [parentName, setParentName] = useState(parent.name || "light");
|
|
14
|
-
if (!themes) {
|
|
15
|
-
console.warn("no themes???", props);
|
|
16
|
-
return props.children;
|
|
17
|
-
}
|
|
18
|
-
const name = props.name;
|
|
19
|
-
const theme = themes[name] || themes[`${name}-${parentName}`];
|
|
20
|
-
const themeManager = useConstant(() => {
|
|
21
|
-
const manager = new ThemeManager();
|
|
22
|
-
if (name) {
|
|
23
|
-
manager.setActiveTheme(name, themes[name]);
|
|
24
|
-
}
|
|
25
|
-
return manager;
|
|
26
|
-
});
|
|
27
|
-
useIsomorphicLayoutEffect(() => {
|
|
28
|
-
themeManager.setActiveTheme(name, theme);
|
|
29
|
-
return parent.onChangeTheme((next) => {
|
|
30
|
-
if (next) {
|
|
31
|
-
themeManager.setActiveTheme(next, themes[next]);
|
|
32
|
-
setParentName(next);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}, [themes, name]);
|
|
36
|
-
if (!name) {
|
|
37
|
-
return props.children;
|
|
38
|
-
}
|
|
39
|
-
const contents = themeManager ? /* @__PURE__ */ React.createElement(ThemeManagerContext.Provider, {
|
|
40
|
-
value: themeManager
|
|
41
|
-
}, props.children) : props.children;
|
|
42
|
-
if (isWeb) {
|
|
43
|
-
if (props.disableThemeClass) {
|
|
44
|
-
return contents;
|
|
45
|
-
}
|
|
46
|
-
const color = (_b = (_a = themes[name]) == null ? void 0 : _a["color"]) == null ? void 0 : _b["variable"];
|
|
47
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
48
|
-
className: getThemeParentClassName(name),
|
|
49
|
-
style: { display: "contents", color }
|
|
50
|
-
}, contents);
|
|
51
|
-
}
|
|
52
|
-
return contents;
|
|
53
|
-
}, "Theme");
|
|
54
|
-
export {
|
|
55
|
-
Theme
|
|
56
|
-
};
|
|
57
|
-
//# sourceMappingURL=Theme.js.map
|
package/_/views/Theme.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
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 if (!themes) {\n console.warn('no themes???', props)\n return props.children\n }\n const name = props.name as string\n const theme = themes[name] || themes[`${name}-${parentName}`]\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}>\n {props.children}\n </ThemeManagerContext.Provider>\n ) : (\n props.children\n )\n\n if (isWeb) {\n if (props.disableThemeClass) {\n return contents\n }\n const color = themes[name]?.['color']?.['variable']\n return (\n <div\n className={getThemeParentClassName(name)}\n // in order to provide currentColor, set color by default\n style={{ display: 'contents', color }}\n >\n {contents}\n </div>\n )\n }\n\n return contents\n}\n"],
|
|
5
|
-
"mappings": ";;AAAA;AAEA;AACA;AACA;AAEA;AACA;AAQO,MAAM,QAAQ,wBAAC,UAAsB;AAf5C;AAgBE,QAAM,SAAS,WAAW;AAC1B,QAAM,SAAS,WAAW;AAC1B,QAAM,CAAC,YAAY,iBAAiB,SAAS,OAAO,QAAQ;AAC5D,MAAI,CAAC,QAAQ;AACX,YAAQ,KAAK,gBAAgB;AAC7B,WAAO,MAAM;AAAA;AAEf,QAAM,OAAO,MAAM;AACnB,QAAM,QAAQ,OAAO,SAAS,OAAO,GAAG,QAAQ;AAChD,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,KAClC,MAAM,YAGT,MAAM;AAGR,MAAI,OAAO;AACT,QAAI,MAAM,mBAAmB;AAC3B,aAAO;AAAA;AAET,UAAM,QAAQ,mBAAO,UAAP,mBAAe,aAAf,mBAA0B;AACxC,WACE,oCAAC,OAAD;AAAA,MACE,WAAW,wBAAwB;AAAA,MAEnC,OAAO,EAAE,SAAS,YAAY;AAAA,OAE7B;AAAA;AAKP,SAAO;AAAA,GAxDY;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/_/views/ThemeContext.js
DELETED
package/_/views/ThemeInverse.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import React from "react";
|
|
4
|
-
import { useDefaultThemeName, useThemeName } from "../hooks/useTheme";
|
|
5
|
-
import { Theme } from "./Theme";
|
|
6
|
-
let inversions = {
|
|
7
|
-
light: "dark",
|
|
8
|
-
dark: "light"
|
|
9
|
-
};
|
|
10
|
-
function setThemeInversions(next) {
|
|
11
|
-
inversions = next;
|
|
12
|
-
}
|
|
13
|
-
__name(setThemeInversions, "setThemeInversions");
|
|
14
|
-
const ThemeInverse = /* @__PURE__ */ __name((props) => {
|
|
15
|
-
const themeName = useThemeName();
|
|
16
|
-
const defaultTheme = useDefaultThemeName();
|
|
17
|
-
const name = inversions[themeName] || inversions[defaultTheme] || null;
|
|
18
|
-
console.log("todo fixme invert", { themeName, defaultTheme, next: name });
|
|
19
|
-
return /* @__PURE__ */ React.createElement(Theme, {
|
|
20
|
-
name
|
|
21
|
-
}, props.children);
|
|
22
|
-
}, "ThemeInverse");
|
|
23
|
-
export {
|
|
24
|
-
ThemeInverse,
|
|
25
|
-
setThemeInversions
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=ThemeInverse.js.map
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import { createContext } from "react";
|
|
4
|
-
class ThemeManager {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.name = "light";
|
|
7
|
-
this.keys = new Map();
|
|
8
|
-
this.listeners = new Map();
|
|
9
|
-
this.callbacks = new Set();
|
|
10
|
-
this.theme = null;
|
|
11
|
-
}
|
|
12
|
-
setActiveTheme(name, theme) {
|
|
13
|
-
if (name === this.name)
|
|
14
|
-
return;
|
|
15
|
-
this.name = name;
|
|
16
|
-
this.theme = theme;
|
|
17
|
-
this.update();
|
|
18
|
-
}
|
|
19
|
-
track(uuid, keys) {
|
|
20
|
-
if (!this.name)
|
|
21
|
-
return;
|
|
22
|
-
this.keys.set(uuid, keys);
|
|
23
|
-
}
|
|
24
|
-
update() {
|
|
25
|
-
var _a;
|
|
26
|
-
if (!this.name) {
|
|
27
|
-
this.keys.clear();
|
|
28
|
-
}
|
|
29
|
-
for (const [uuid, keys] of this.keys.entries()) {
|
|
30
|
-
if (keys.size) {
|
|
31
|
-
(_a = this.listeners.get(uuid)) == null ? void 0 : _a();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
this.callbacks.forEach((cb) => cb(this.name));
|
|
35
|
-
}
|
|
36
|
-
onChangeTheme(cb) {
|
|
37
|
-
this.callbacks.add(cb);
|
|
38
|
-
return () => {
|
|
39
|
-
this.callbacks.delete(cb);
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
onUpdate(uuid, cb) {
|
|
43
|
-
this.listeners.set(uuid, cb);
|
|
44
|
-
return () => {
|
|
45
|
-
this.listeners.delete(uuid);
|
|
46
|
-
this.keys.delete(uuid);
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
__name(ThemeManager, "ThemeManager");
|
|
51
|
-
const ThemeManagerContext = createContext(new ThemeManager());
|
|
52
|
-
export {
|
|
53
|
-
ThemeManager,
|
|
54
|
-
ThemeManagerContext
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=ThemeManagerContext.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
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;AArBX;AAsBI,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,KAAK;AAAA;AAEZ,eAAW,CAAC,MAAM,SAAS,KAAK,KAAK,WAAW;AAC9C,UAAI,KAAK,MAAM;AACb,mBAAK,UAAU,IAAI,UAAnB;AAAA;AAAA;AAGJ,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
|
-
}
|
package/_/views/ThemeProvider.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
import React, { useMemo } from "react";
|
|
4
|
-
import { useIsomorphicLayoutEffect } from "../constants/platform";
|
|
5
|
-
import { getHasConfigured, getThemeParentClassName } from "../createTamagui";
|
|
6
|
-
import { Theme } from "./Theme";
|
|
7
|
-
import { ThemeContext } from "./ThemeContext";
|
|
8
|
-
const GET_DEFAULT_THEME = "___TGUI";
|
|
9
|
-
const ThemeProvider = /* @__PURE__ */ __name((props) => {
|
|
10
|
-
if (!getHasConfigured()) {
|
|
11
|
-
throw new Error(`Missing configureThemes() call, add to your root file`);
|
|
12
|
-
}
|
|
13
|
-
useIsomorphicLayoutEffect(() => {
|
|
14
|
-
if (props.disableRootThemeClass) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
if (typeof document !== "undefined") {
|
|
18
|
-
const cns = getThemeParentClassName(`${props.defaultTheme}`).split(" ");
|
|
19
|
-
cns.forEach((cn) => document.body.classList.add(cn));
|
|
20
|
-
return () => {
|
|
21
|
-
cns.forEach((cn) => document.body.classList.remove(cn));
|
|
22
|
-
};
|
|
23
|
-
}
|
|
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
|
-
return /* @__PURE__ */ React.createElement(ThemeContext.Provider, {
|
|
35
|
-
value: themeContext
|
|
36
|
-
}, /* @__PURE__ */ React.createElement(Theme, {
|
|
37
|
-
name: props.defaultTheme,
|
|
38
|
-
disableThemeClass: props.disableRootThemeClass
|
|
39
|
-
}, props.children));
|
|
40
|
-
}, "ThemeProvider");
|
|
41
|
-
export {
|
|
42
|
-
GET_DEFAULT_THEME,
|
|
43
|
-
ThemeProvider
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { Platform } from 'react-native'
|
|
3
|
-
import {
|
|
4
|
-
Metrics,
|
|
5
|
-
SafeAreaProvider as RNSafeAreaProvider,
|
|
6
|
-
initialWindowMetrics as defaultInitialWindowMetrics,
|
|
7
|
-
} from 'react-native-safe-area-context'
|
|
8
|
-
|
|
9
|
-
let defaultMetrics: Metrics | null = null
|
|
10
|
-
|
|
11
|
-
export const SafeAreaProvider = ({
|
|
12
|
-
initialWindowMetrics,
|
|
13
|
-
children,
|
|
14
|
-
}: {
|
|
15
|
-
children?: any
|
|
16
|
-
initialWindowMetrics?: any
|
|
17
|
-
}) => {
|
|
18
|
-
if (!initialWindowMetrics && !defaultMetrics) {
|
|
19
|
-
defaultMetrics = Platform.select({
|
|
20
|
-
web: {
|
|
21
|
-
frame: { x: 0, y: 0, width: 0, height: 0 },
|
|
22
|
-
insets: { top: 0, left: 0, right: 0, bottom: 0 },
|
|
23
|
-
},
|
|
24
|
-
default: defaultInitialWindowMetrics,
|
|
25
|
-
})
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return (
|
|
29
|
-
<RNSafeAreaProvider initialMetrics={initialWindowMetrics ?? defaultMetrics}>
|
|
30
|
-
{children}
|
|
31
|
-
</RNSafeAreaProvider>
|
|
32
|
-
)
|
|
33
|
-
}
|