@tamagui/core 1.0.1-beta.220 → 1.0.1-beta.221
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/addTheme.js +7 -10
- package/dist/cjs/addTheme.js.map +3 -3
- package/dist/cjs/config.js +8 -4
- package/dist/cjs/config.js.map +2 -2
- package/dist/cjs/{hooks/useUnmountEffect.js → contexts/ButtonNestingContext.js} +7 -9
- package/dist/cjs/contexts/ButtonNestingContext.js.map +7 -0
- package/dist/cjs/createComponent.js +63 -67
- package/dist/cjs/createComponent.js.map +3 -3
- package/dist/cjs/createTamagui.js +13 -12
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/createTokens.js.map +2 -2
- package/dist/cjs/createTokens.test.js +27 -0
- package/dist/cjs/createTokens.test.js.map +7 -0
- package/dist/cjs/createVariable.js +4 -9
- package/dist/cjs/createVariable.js.map +2 -2
- package/dist/cjs/createVariable.test.js +7 -0
- package/dist/cjs/createVariable.test.js.map +7 -0
- package/dist/cjs/createVariables.js +6 -7
- package/dist/cjs/createVariables.js.map +2 -2
- package/dist/cjs/helpers/ThemeManager.js +161 -147
- package/dist/cjs/helpers/ThemeManager.js.map +3 -3
- package/dist/cjs/helpers/ThemeManager.test.js +421 -34
- package/dist/cjs/helpers/ThemeManager.test.js.map +2 -2
- package/dist/cjs/helpers/{getTokens.js → ThemeManagerContext.js} +8 -8
- package/dist/cjs/helpers/ThemeManagerContext.js.map +7 -0
- package/dist/cjs/helpers/createPropMapper.js +4 -4
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/extendStaticConfig.js +2 -4
- package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
- package/dist/cjs/helpers/{assignNativePropsToWeb.native.js → getBoundingClientRect.js} +15 -8
- package/dist/cjs/helpers/getBoundingClientRect.js.map +7 -0
- package/dist/cjs/{hooks/useConstant.js → helpers/getRect.js} +14 -17
- package/dist/cjs/helpers/getRect.js.map +7 -0
- package/dist/cjs/helpers/getSplitStyles.js +82 -85
- package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
- package/dist/cjs/helpers/getThemeCSSRules.js +6 -2
- package/dist/cjs/helpers/getThemeCSSRules.js.map +2 -2
- package/dist/cjs/helpers/insertStyleRule.js +1 -1
- package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/mergeTransform.js +11 -8
- package/dist/cjs/helpers/mergeTransform.js.map +2 -2
- package/dist/cjs/helpers/pseudoDescriptors.js +1 -0
- package/dist/cjs/helpers/pseudoDescriptors.js.map +2 -2
- package/dist/cjs/helpers/themeable.js +9 -9
- package/dist/cjs/helpers/themeable.js.map +2 -2
- package/dist/cjs/hooks/useElementLayout.js +4 -12
- package/dist/cjs/hooks/useElementLayout.js.map +2 -2
- package/dist/cjs/hooks/useMedia.js +2 -1
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/useTheme.js +114 -156
- package/dist/cjs/hooks/useTheme.js.map +3 -3
- package/dist/cjs/hooks/{useIsMounted.js → useThemeName.js} +23 -14
- package/dist/cjs/hooks/useThemeName.js.map +7 -0
- package/dist/cjs/index.js +2 -5
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/setupReactNative.js +20 -7
- package/dist/cjs/setupReactNative.js.map +2 -2
- package/dist/cjs/styled.js +2 -19
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/updateTheme.js +9 -9
- package/dist/cjs/updateTheme.js.map +2 -2
- package/dist/cjs/views/TamaguiProvider.js +3 -3
- package/dist/cjs/views/TamaguiProvider.js.map +2 -2
- package/dist/cjs/views/Theme.js +39 -28
- package/dist/cjs/views/Theme.js.map +3 -3
- package/dist/cjs/views/ThemeProvider.js +8 -33
- package/dist/cjs/views/ThemeProvider.js.map +3 -3
- package/dist/esm/addTheme.js +7 -10
- package/dist/esm/addTheme.js.map +3 -3
- package/dist/esm/config.js +8 -3
- package/dist/esm/config.js.map +2 -2
- package/dist/esm/contexts/ButtonNestingContext.js +6 -0
- package/dist/esm/contexts/ButtonNestingContext.js.map +7 -0
- package/dist/esm/createComponent.js +65 -70
- package/dist/esm/createComponent.js.map +3 -3
- package/dist/esm/createTamagui.js +13 -12
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/createTokens.js.map +2 -2
- package/dist/esm/createTokens.test.js +26 -0
- package/dist/esm/createTokens.test.js.map +7 -0
- package/dist/esm/createVariable.js +4 -9
- package/dist/esm/createVariable.js.map +2 -2
- package/dist/esm/createVariable.test.js +6 -0
- package/dist/esm/createVariable.test.js.map +7 -0
- package/dist/esm/createVariables.js +6 -7
- package/dist/esm/createVariables.js.map +2 -2
- package/dist/esm/helpers/ThemeManager.js +140 -144
- package/dist/esm/helpers/ThemeManager.js.map +3 -3
- package/dist/esm/helpers/ThemeManager.test.js +421 -34
- package/dist/esm/helpers/ThemeManager.test.js.map +2 -2
- package/dist/esm/helpers/ThemeManagerContext.js +6 -0
- package/dist/esm/helpers/ThemeManagerContext.js.map +7 -0
- package/dist/esm/helpers/createPropMapper.js +4 -4
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/extendStaticConfig.js +2 -4
- package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
- package/dist/esm/helpers/getBoundingClientRect.js +13 -0
- package/dist/esm/helpers/getBoundingClientRect.js.map +7 -0
- package/dist/esm/helpers/getRect.js +12 -0
- package/dist/esm/helpers/getRect.js.map +7 -0
- package/dist/esm/helpers/getSplitStyles.js +90 -87
- package/dist/esm/helpers/getSplitStyles.js.map +3 -3
- package/dist/esm/helpers/getThemeCSSRules.js +6 -2
- package/dist/esm/helpers/getThemeCSSRules.js.map +2 -2
- package/dist/esm/helpers/insertStyleRule.js +1 -1
- package/dist/esm/helpers/insertStyleRule.js.map +2 -2
- package/dist/esm/helpers/mergeTransform.js +8 -6
- package/dist/esm/helpers/mergeTransform.js.map +2 -2
- package/dist/esm/helpers/pseudoDescriptors.js +1 -0
- package/dist/esm/helpers/pseudoDescriptors.js.map +2 -2
- package/dist/esm/helpers/themeable.js +9 -9
- package/dist/esm/helpers/themeable.js.map +2 -2
- package/dist/esm/hooks/useElementLayout.js +2 -9
- package/dist/esm/hooks/useElementLayout.js.map +2 -2
- package/dist/esm/hooks/useMedia.js +3 -2
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +114 -159
- package/dist/esm/hooks/useTheme.js.map +3 -3
- package/dist/esm/hooks/useThemeName.js +25 -0
- package/dist/esm/hooks/useThemeName.js.map +7 -0
- package/dist/esm/index.js +3 -5
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/setupReactNative.js +18 -6
- package/dist/esm/setupReactNative.js.map +2 -2
- package/dist/esm/styled.js +3 -20
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/updateTheme.js +9 -9
- package/dist/esm/updateTheme.js.map +2 -2
- package/dist/esm/views/TamaguiProvider.js +4 -4
- package/dist/esm/views/TamaguiProvider.js.map +2 -2
- package/dist/esm/views/Theme.js +40 -29
- package/dist/esm/views/Theme.js.map +3 -3
- package/dist/esm/views/ThemeProvider.js +8 -27
- package/dist/esm/views/ThemeProvider.js.map +2 -2
- package/package.json +12 -12
- package/src/__snapshots__/createTokens.test.ts.snap +877 -0
- package/src/addTheme.ts +9 -12
- package/src/config.ts +10 -2
- package/src/contexts/ButtonNestingContext.tsx +3 -0
- package/src/createComponent.tsx +117 -108
- package/src/createTamagui.ts +16 -14
- package/src/createTokens.test.ts +29 -0
- package/src/createTokens.ts +1 -1
- package/src/createVariable.test.ts +7 -0
- package/src/createVariable.ts +4 -10
- package/src/createVariables.ts +7 -7
- package/src/helpers/ThemeManager.test.tsx +480 -0
- package/src/helpers/ThemeManager.tsx +171 -166
- package/src/helpers/ThemeManagerContext.tsx +5 -0
- package/src/helpers/createPropMapper.ts +4 -4
- package/src/helpers/extendStaticConfig.ts +4 -4
- package/src/helpers/getBoundingClientRect.tsx +7 -0
- package/src/helpers/getRect.tsx +8 -0
- package/src/helpers/getSplitStyles.tsx +98 -93
- package/src/helpers/getThemeCSSRules.ts +9 -2
- package/src/helpers/insertStyleRule.tsx +2 -2
- package/src/helpers/mergeTransform.ts +13 -6
- package/src/helpers/pseudoDescriptors.ts +1 -0
- package/src/helpers/themeable.tsx +17 -9
- package/src/hooks/useElementLayout.tsx +3 -8
- package/src/hooks/useMedia.tsx +3 -3
- package/src/hooks/useTheme.tsx +138 -211
- package/src/hooks/useThemeName.tsx +25 -0
- package/src/index.ts +3 -4
- package/src/setupReactNative.ts +16 -5
- package/src/styled.tsx +4 -23
- package/src/types.tsx +42 -17
- package/src/updateTheme.ts +12 -9
- package/src/views/TamaguiProvider.tsx +5 -5
- package/src/views/Theme.tsx +48 -39
- package/src/views/ThemeProvider.tsx +11 -33
- package/types/Tamagui.d.ts +1 -1
- package/types/addTheme.d.ts +23 -2
- package/types/config.d.ts +0 -1
- package/types/contexts/ButtonNestingContext.d.ts +3 -0
- package/types/createTokens.test.d.ts +2 -0
- package/types/createVariable.d.ts +2 -2
- package/types/createVariable.test.d.ts +2 -0
- package/types/helpers/ThemeManager.d.ts +20 -30
- package/types/helpers/ThemeManager.test.d.ts +2 -0
- package/types/helpers/ThemeManagerContext.d.ts +4 -0
- package/types/helpers/getBoundingClientRect.d.ts +2 -0
- package/types/helpers/getRect.d.ts +9 -0
- package/types/helpers/insertStyleRule.d.ts +1 -1
- package/types/helpers/mergeTransform.d.ts +5 -3
- package/types/helpers/themeable.d.ts +3 -0
- package/types/hooks/useElementLayout.d.ts +0 -8
- package/types/hooks/useTheme.d.ts +10 -20
- package/types/hooks/useThemeName.d.ts +5 -0
- package/types/index.d.ts +3 -4
- package/types/setupReactNative.d.ts +4 -2
- package/types/types.d.ts +35 -10
- package/types/updateTheme.d.ts +23 -2
- package/types/views/Theme.d.ts +3 -4
- package/dist/cjs/constants/platform.js +0 -74
- package/dist/cjs/constants/platform.js.map +0 -7
- package/dist/cjs/constants/platform.native.js +0 -62
- package/dist/cjs/constants/platform.native.js.map +0 -7
- package/dist/cjs/helpers/assignNativePropsToWeb.js +0 -188
- package/dist/cjs/helpers/assignNativePropsToWeb.js.map +0 -7
- package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +0 -7
- package/dist/cjs/helpers/calc.js +0 -71
- package/dist/cjs/helpers/calc.js.map +0 -7
- package/dist/cjs/helpers/getFont.js +0 -66
- package/dist/cjs/helpers/getFont.js.map +0 -7
- package/dist/cjs/helpers/getStackSize.js +0 -46
- package/dist/cjs/helpers/getStackSize.js.map +0 -7
- package/dist/cjs/helpers/getTokens.js.map +0 -7
- package/dist/cjs/helpers/startTransition.js +0 -36
- package/dist/cjs/helpers/startTransition.js.map +0 -7
- package/dist/cjs/helpers/validate.js +0 -2
- package/dist/cjs/helpers/validate.js.map +0 -7
- package/dist/cjs/hooks/useConstant.js.map +0 -7
- package/dist/cjs/hooks/useIsMounted.js.map +0 -7
- package/dist/cjs/hooks/usePressable.js +0 -36
- package/dist/cjs/hooks/usePressable.js.map +0 -7
- package/dist/cjs/hooks/useUnmountEffect.js.map +0 -7
- package/dist/cjs/injectStyles.js +0 -40
- package/dist/cjs/injectStyles.js.map +0 -7
- package/dist/cjs/react-native.js +0 -22
- package/dist/cjs/react-native.js.map +0 -7
- package/dist/esm/constants/platform.js +0 -39
- package/dist/esm/constants/platform.js.map +0 -7
- package/dist/esm/constants/platform.native.js +0 -28
- package/dist/esm/constants/platform.native.js.map +0 -7
- package/dist/esm/helpers/assignNativePropsToWeb.js +0 -164
- package/dist/esm/helpers/assignNativePropsToWeb.js.map +0 -7
- package/dist/esm/helpers/assignNativePropsToWeb.native.js +0 -6
- package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +0 -7
- package/dist/esm/helpers/calc.js +0 -47
- package/dist/esm/helpers/calc.js.map +0 -7
- package/dist/esm/helpers/getFont.js +0 -42
- package/dist/esm/helpers/getFont.js.map +0 -7
- package/dist/esm/helpers/getStackSize.js +0 -22
- package/dist/esm/helpers/getStackSize.js.map +0 -7
- package/dist/esm/helpers/getTokens.js +0 -6
- package/dist/esm/helpers/getTokens.js.map +0 -7
- package/dist/esm/helpers/startTransition.js +0 -6
- package/dist/esm/helpers/startTransition.js.map +0 -7
- package/dist/esm/helpers/validate.js +0 -1
- package/dist/esm/helpers/validate.js.map +0 -7
- package/dist/esm/hooks/useConstant.js +0 -15
- package/dist/esm/hooks/useConstant.js.map +0 -7
- package/dist/esm/hooks/useIsMounted.js +0 -16
- package/dist/esm/hooks/useIsMounted.js.map +0 -7
- package/dist/esm/hooks/usePressable.js +0 -12
- package/dist/esm/hooks/usePressable.js.map +0 -7
- package/dist/esm/hooks/useUnmountEffect.js +0 -8
- package/dist/esm/hooks/useUnmountEffect.js.map +0 -7
- package/dist/esm/injectStyles.js +0 -16
- package/dist/esm/injectStyles.js.map +0 -7
- package/dist/esm/react-native.js +0 -3
- package/dist/esm/react-native.js.map +0 -7
- package/src/contexts/ButtonInsideButtonContext.tsx +0 -3
- package/src/contexts/ThemeContext.tsx +0 -5
- package/src/helpers/areEqualSets.tsx +0 -9
- package/src/views/ThemeInverse.tsx +0 -43
- package/src/views/ThemeReset.tsx +0 -43
- package/types/constants/platform.d.ts +0 -13
- package/types/constants/platform.native.d.ts +0 -13
- package/types/contexts/ButtonInsideButtonContext.d.ts +0 -3
- package/types/contexts/ThemeContext.d.ts +0 -7
- package/types/helpers/areEqualSets.d.ts +0 -2
- package/types/helpers/assignNativePropsToWeb.d.ts +0 -2
- package/types/helpers/assignNativePropsToWeb.native.d.ts +0 -2
- package/types/helpers/calc.d.ts +0 -1
- package/types/helpers/getFont.d.ts +0 -3
- package/types/helpers/getStackSize.d.ts +0 -8
- package/types/helpers/getTokens.d.ts +0 -2
- package/types/helpers/startTransition.d.ts +0 -3
- package/types/helpers/validate.d.ts +0 -1
- package/types/hooks/useConstant.d.ts +0 -2
- package/types/hooks/useIsMounted.d.ts +0 -3
- package/types/hooks/useMedia.test.d.ts +0 -1
- package/types/hooks/usePressable.d.ts +0 -3
- package/types/hooks/usePressablePressResponder.d.ts +0 -84
- package/types/hooks/useUnmountEffect.d.ts +0 -2
- package/types/injectStyles.d.ts +0 -7
- package/types/react-native.d.ts +0 -8
- package/types/views/AbsoluteFill.d.ts +0 -5
- package/types/views/AbsoluteFill.native.d.ts +0 -3
- package/types/views/ThemeInverse.d.ts +0 -9
- package/types/views/ThemeReset.d.ts +0 -4
|
@@ -3,60 +3,447 @@ var import_config_default_node = require("@tamagui/config-default-node");
|
|
|
3
3
|
var import_vitest = require("vitest");
|
|
4
4
|
var import_createTamagui = require("../createTamagui");
|
|
5
5
|
var import_ThemeManager = require("./ThemeManager");
|
|
6
|
+
const conf = (0, import_config_default_node.getDefaultTamaguiConfig)();
|
|
6
7
|
(0, import_vitest.describe)("ThemeManager", () => {
|
|
7
8
|
(0, import_vitest.beforeAll)(() => {
|
|
8
|
-
const conf = (0, import_config_default_node.getDefaultTamaguiConfig)();
|
|
9
9
|
(0, import_createTamagui.createTamagui)(conf);
|
|
10
10
|
});
|
|
11
11
|
(0, import_vitest.test)("Changes theme to dark", () => {
|
|
12
|
-
const manager = new import_ThemeManager.ThemeManager(
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
const manager = new import_ThemeManager.ThemeManager(
|
|
13
|
+
{
|
|
14
|
+
name: "dark"
|
|
15
|
+
},
|
|
16
|
+
"root"
|
|
17
|
+
);
|
|
15
18
|
(0, import_vitest.expect)(manager.state.name).toBe("dark");
|
|
16
19
|
});
|
|
17
20
|
(0, import_vitest.test)('Given parent theme "dark" and child theme "red" to return theme "dark_red"', () => {
|
|
18
|
-
const parent = new import_ThemeManager.ThemeManager(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
22
|
+
{
|
|
23
|
+
name: "dark"
|
|
24
|
+
},
|
|
25
|
+
"root"
|
|
26
|
+
);
|
|
27
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
28
|
+
{
|
|
29
|
+
name: "red"
|
|
30
|
+
},
|
|
31
|
+
parent
|
|
32
|
+
);
|
|
24
33
|
(0, import_vitest.expect)(parent.state.name).toBe("dark");
|
|
25
34
|
(0, import_vitest.expect)(child.state.name).toBe("dark_red");
|
|
26
35
|
});
|
|
27
36
|
(0, import_vitest.test)('Given parent theme "dark", child theme "red_alt2" and component "Button" returns "dark_red_alt2_Button"', () => {
|
|
28
|
-
const parent = new import_ThemeManager.ThemeManager(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
37
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
38
|
+
{
|
|
39
|
+
name: "dark"
|
|
40
|
+
},
|
|
41
|
+
"root"
|
|
42
|
+
);
|
|
43
|
+
const child1 = new import_ThemeManager.ThemeManager(
|
|
44
|
+
{
|
|
45
|
+
name: "red"
|
|
46
|
+
},
|
|
47
|
+
parent
|
|
48
|
+
);
|
|
34
49
|
(0, import_vitest.expect)(child1.state.name).toBe("dark_red");
|
|
35
|
-
const child2 = new import_ThemeManager.ThemeManager(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
50
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
51
|
+
{
|
|
52
|
+
name: "alt2",
|
|
53
|
+
componentName: "Button"
|
|
54
|
+
},
|
|
55
|
+
child1
|
|
56
|
+
);
|
|
39
57
|
(0, import_vitest.expect)(child2.state.name).toBe("dark_red_alt2_Button");
|
|
40
58
|
});
|
|
41
|
-
(0, import_vitest.test)('
|
|
42
|
-
const parent = new import_ThemeManager.ThemeManager(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
59
|
+
(0, import_vitest.test)('Given parent theme "dark", child theme "red" and component "Button" returns "dark_red_Button"', () => {
|
|
60
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
61
|
+
{
|
|
62
|
+
name: "dark"
|
|
63
|
+
},
|
|
64
|
+
"root"
|
|
65
|
+
);
|
|
66
|
+
const child1 = new import_ThemeManager.ThemeManager(
|
|
67
|
+
{
|
|
68
|
+
name: "red"
|
|
69
|
+
},
|
|
70
|
+
parent
|
|
71
|
+
);
|
|
72
|
+
(0, import_vitest.expect)(child1.state.name).toBe("dark_red");
|
|
73
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
74
|
+
{
|
|
75
|
+
componentName: "Button"
|
|
76
|
+
},
|
|
77
|
+
child1
|
|
78
|
+
);
|
|
79
|
+
(0, import_vitest.expect)(child2.state.name).toBe("dark_red_Button");
|
|
80
|
+
});
|
|
81
|
+
(0, import_vitest.test)('Given parent theme "dark", child theme "red" and missing component "Card" returns "dark_red"', () => {
|
|
82
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
83
|
+
{
|
|
84
|
+
name: "dark"
|
|
85
|
+
},
|
|
86
|
+
"root"
|
|
87
|
+
);
|
|
88
|
+
const child1 = new import_ThemeManager.ThemeManager(
|
|
89
|
+
{
|
|
90
|
+
name: "red"
|
|
91
|
+
},
|
|
92
|
+
parent
|
|
93
|
+
);
|
|
94
|
+
(0, import_vitest.expect)(child1.state.name).toBe("dark_red");
|
|
95
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
96
|
+
{
|
|
97
|
+
componentName: "Card"
|
|
98
|
+
},
|
|
99
|
+
child1
|
|
100
|
+
);
|
|
101
|
+
(0, import_vitest.expect)(child2.state.name).toBe("dark_red");
|
|
102
|
+
});
|
|
103
|
+
(0, import_vitest.test)('Changes "light" to "dark"', () => {
|
|
104
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
105
|
+
{
|
|
106
|
+
name: "light"
|
|
107
|
+
},
|
|
108
|
+
"root"
|
|
109
|
+
);
|
|
110
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
111
|
+
{
|
|
112
|
+
name: "dark"
|
|
113
|
+
},
|
|
114
|
+
parent
|
|
115
|
+
);
|
|
48
116
|
(0, import_vitest.expect)(parent.state.name).toBe("light");
|
|
49
117
|
(0, import_vitest.expect)(child.state.name).toBe("dark");
|
|
50
118
|
});
|
|
119
|
+
(0, import_vitest.test)('Inverts "light" to "dark"', () => {
|
|
120
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
121
|
+
{
|
|
122
|
+
name: "light"
|
|
123
|
+
},
|
|
124
|
+
"root"
|
|
125
|
+
);
|
|
126
|
+
const child1 = new import_ThemeManager.ThemeManager(
|
|
127
|
+
{
|
|
128
|
+
inverse: true
|
|
129
|
+
},
|
|
130
|
+
parent
|
|
131
|
+
);
|
|
132
|
+
(0, import_vitest.expect)(child1.state.name).toBe("dark");
|
|
133
|
+
});
|
|
51
134
|
(0, import_vitest.test)('Inverts "light_red" to "dark_red"', () => {
|
|
52
|
-
const parent = new import_ThemeManager.ThemeManager(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
135
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
136
|
+
{
|
|
137
|
+
name: "light"
|
|
138
|
+
},
|
|
139
|
+
"root"
|
|
140
|
+
);
|
|
141
|
+
const child1 = new import_ThemeManager.ThemeManager(
|
|
142
|
+
{
|
|
143
|
+
name: "red",
|
|
144
|
+
inverse: true
|
|
145
|
+
},
|
|
146
|
+
parent
|
|
147
|
+
);
|
|
59
148
|
(0, import_vitest.expect)(child1.state.name).toBe("dark_red");
|
|
60
149
|
});
|
|
150
|
+
(0, import_vitest.test)("Updates state", () => {
|
|
151
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
152
|
+
{
|
|
153
|
+
name: "light"
|
|
154
|
+
},
|
|
155
|
+
"root"
|
|
156
|
+
);
|
|
157
|
+
const newState = parent.updateState({
|
|
158
|
+
name: "dark"
|
|
159
|
+
});
|
|
160
|
+
(0, import_vitest.expect)(newState).toMatchInlineSnapshot(`
|
|
161
|
+
{
|
|
162
|
+
"className": "t_dark",
|
|
163
|
+
"name": "dark",
|
|
164
|
+
"parentName": "",
|
|
165
|
+
"theme": {
|
|
166
|
+
"background": {
|
|
167
|
+
"isVar": true,
|
|
168
|
+
"key": "color-2",
|
|
169
|
+
"name": "background",
|
|
170
|
+
"val": "#000",
|
|
171
|
+
"variable": "",
|
|
172
|
+
},
|
|
173
|
+
"color": {
|
|
174
|
+
"isVar": true,
|
|
175
|
+
"key": "color-1",
|
|
176
|
+
"name": "color",
|
|
177
|
+
"val": "#fff",
|
|
178
|
+
"variable": "",
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
}
|
|
182
|
+
`);
|
|
183
|
+
(0, import_vitest.expect)(parent.state.name).toBe("dark");
|
|
184
|
+
});
|
|
185
|
+
(0, import_vitest.test)("Returns parent on empty", () => {
|
|
186
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
187
|
+
{
|
|
188
|
+
name: "light"
|
|
189
|
+
},
|
|
190
|
+
"root"
|
|
191
|
+
);
|
|
192
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
193
|
+
{
|
|
194
|
+
name: null
|
|
195
|
+
},
|
|
196
|
+
parent
|
|
197
|
+
);
|
|
198
|
+
(0, import_vitest.expect)(child).toBe(parent);
|
|
199
|
+
});
|
|
200
|
+
(0, import_vitest.test)("Resets theme", () => {
|
|
201
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
202
|
+
{
|
|
203
|
+
name: "light"
|
|
204
|
+
},
|
|
205
|
+
"root"
|
|
206
|
+
);
|
|
207
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
208
|
+
{
|
|
209
|
+
name: "dark"
|
|
210
|
+
},
|
|
211
|
+
parent
|
|
212
|
+
);
|
|
213
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark");
|
|
214
|
+
(0, import_vitest.expect)(child.parentManager).toBe(parent);
|
|
215
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
216
|
+
{
|
|
217
|
+
reset: true
|
|
218
|
+
},
|
|
219
|
+
child
|
|
220
|
+
);
|
|
221
|
+
(0, import_vitest.expect)(child2.parentManager).toBe(child);
|
|
222
|
+
(0, import_vitest.expect)(child2.state.name).toBe("light");
|
|
223
|
+
});
|
|
224
|
+
(0, import_vitest.test)("Nested invert and reset", () => {
|
|
225
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
226
|
+
{
|
|
227
|
+
name: "light"
|
|
228
|
+
},
|
|
229
|
+
"root"
|
|
230
|
+
);
|
|
231
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
232
|
+
{
|
|
233
|
+
name: "dark"
|
|
234
|
+
},
|
|
235
|
+
parent
|
|
236
|
+
);
|
|
237
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
238
|
+
{
|
|
239
|
+
reset: true
|
|
240
|
+
},
|
|
241
|
+
child
|
|
242
|
+
);
|
|
243
|
+
const child3 = new import_ThemeManager.ThemeManager(
|
|
244
|
+
{
|
|
245
|
+
inverse: true
|
|
246
|
+
},
|
|
247
|
+
child2
|
|
248
|
+
);
|
|
249
|
+
(0, import_vitest.expect)(child3.state.name).toBe("dark");
|
|
250
|
+
});
|
|
251
|
+
(0, import_vitest.test)("Updates from null the new theme nested 3 themes", () => {
|
|
252
|
+
const a = new import_ThemeManager.ThemeManager(
|
|
253
|
+
{
|
|
254
|
+
name: "dark"
|
|
255
|
+
},
|
|
256
|
+
"root"
|
|
257
|
+
);
|
|
258
|
+
const b = new import_ThemeManager.ThemeManager(
|
|
259
|
+
{
|
|
260
|
+
name: "red"
|
|
261
|
+
},
|
|
262
|
+
a
|
|
263
|
+
);
|
|
264
|
+
(0, import_vitest.expect)(b.state.name).toBe("dark_red");
|
|
265
|
+
const c = new import_ThemeManager.ThemeManager(
|
|
266
|
+
{
|
|
267
|
+
name: "alt2"
|
|
268
|
+
},
|
|
269
|
+
b
|
|
270
|
+
);
|
|
271
|
+
(0, import_vitest.expect)(c.state.name).toBe("dark_red_alt2");
|
|
272
|
+
});
|
|
273
|
+
(0, import_vitest.test)("Ignored dup themes", () => {
|
|
274
|
+
const a = new import_ThemeManager.ThemeManager(
|
|
275
|
+
{
|
|
276
|
+
name: "dark"
|
|
277
|
+
},
|
|
278
|
+
"root"
|
|
279
|
+
);
|
|
280
|
+
const b = new import_ThemeManager.ThemeManager(
|
|
281
|
+
{
|
|
282
|
+
name: "dark"
|
|
283
|
+
},
|
|
284
|
+
a
|
|
285
|
+
);
|
|
286
|
+
(0, import_vitest.expect)(b === a).toBe(true);
|
|
287
|
+
});
|
|
288
|
+
(0, import_vitest.test)("Nested component themes fallback to grandparents", () => {
|
|
289
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
290
|
+
{
|
|
291
|
+
name: "dark"
|
|
292
|
+
},
|
|
293
|
+
"root"
|
|
294
|
+
);
|
|
295
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
296
|
+
{
|
|
297
|
+
name: "red",
|
|
298
|
+
componentName: "Button"
|
|
299
|
+
},
|
|
300
|
+
parent
|
|
301
|
+
);
|
|
302
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
303
|
+
{
|
|
304
|
+
name: "blue"
|
|
305
|
+
},
|
|
306
|
+
child
|
|
307
|
+
);
|
|
308
|
+
(0, import_vitest.expect)(child2.state.name).toBe("dark_blue");
|
|
309
|
+
const child3 = new import_ThemeManager.ThemeManager(
|
|
310
|
+
{
|
|
311
|
+
componentName: "Button"
|
|
312
|
+
},
|
|
313
|
+
child2
|
|
314
|
+
);
|
|
315
|
+
(0, import_vitest.expect)(child3.state.name).toBe("dark_blue_Button");
|
|
316
|
+
});
|
|
317
|
+
(0, import_vitest.test)(`Component theme with sub component that doesn't exist keeps same theme`, () => {
|
|
318
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
319
|
+
{
|
|
320
|
+
name: "dark"
|
|
321
|
+
},
|
|
322
|
+
"root"
|
|
323
|
+
);
|
|
324
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
325
|
+
{
|
|
326
|
+
name: "red",
|
|
327
|
+
componentName: "Button"
|
|
328
|
+
},
|
|
329
|
+
parent
|
|
330
|
+
);
|
|
331
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
332
|
+
{
|
|
333
|
+
componentName: "Spacer"
|
|
334
|
+
},
|
|
335
|
+
child
|
|
336
|
+
);
|
|
337
|
+
(0, import_vitest.expect)(child2).toBe(child);
|
|
338
|
+
});
|
|
339
|
+
(0, import_vitest.test)(`Doesn't find invalid parent when only passing component`, () => {
|
|
340
|
+
(0, import_vitest.expect)(!!conf.themes["dark_Card"]).toBeTruthy();
|
|
341
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
342
|
+
{
|
|
343
|
+
name: "dark_red"
|
|
344
|
+
},
|
|
345
|
+
"root"
|
|
346
|
+
);
|
|
347
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
348
|
+
{
|
|
349
|
+
componentName: "Card"
|
|
350
|
+
},
|
|
351
|
+
parent
|
|
352
|
+
);
|
|
353
|
+
(0, import_vitest.expect)(child.state.name).toBe(parent.state.name);
|
|
354
|
+
});
|
|
355
|
+
(0, import_vitest.test)(`Finds sub-theme when componentName and name are passed but componentName doesn't exist`, () => {
|
|
356
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
357
|
+
{
|
|
358
|
+
name: "dark"
|
|
359
|
+
},
|
|
360
|
+
"root"
|
|
361
|
+
);
|
|
362
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
363
|
+
{
|
|
364
|
+
name: "red",
|
|
365
|
+
componentName: "Missing"
|
|
366
|
+
},
|
|
367
|
+
parent
|
|
368
|
+
);
|
|
369
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark_red");
|
|
370
|
+
});
|
|
371
|
+
(0, import_vitest.test)(`Uses the full className without the light/dark prefix`, () => {
|
|
372
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
373
|
+
{
|
|
374
|
+
name: "dark"
|
|
375
|
+
},
|
|
376
|
+
"root"
|
|
377
|
+
);
|
|
378
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
379
|
+
{
|
|
380
|
+
name: "red_alt2"
|
|
381
|
+
},
|
|
382
|
+
parent
|
|
383
|
+
);
|
|
384
|
+
(0, import_vitest.expect)(child.state.className).toBe("t_red_alt2");
|
|
385
|
+
const child2 = new import_ThemeManager.ThemeManager(
|
|
386
|
+
{
|
|
387
|
+
name: "red"
|
|
388
|
+
},
|
|
389
|
+
parent
|
|
390
|
+
);
|
|
391
|
+
const child3 = new import_ThemeManager.ThemeManager(
|
|
392
|
+
{
|
|
393
|
+
name: "alt2"
|
|
394
|
+
},
|
|
395
|
+
child2
|
|
396
|
+
);
|
|
397
|
+
(0, import_vitest.expect)(child3.state.className).toBe("t_red_alt2");
|
|
398
|
+
});
|
|
399
|
+
(0, import_vitest.test)(`Finds component dark_red + Button`, () => {
|
|
400
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
401
|
+
{
|
|
402
|
+
name: "dark_red"
|
|
403
|
+
},
|
|
404
|
+
"root"
|
|
405
|
+
);
|
|
406
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
407
|
+
{
|
|
408
|
+
name: "dark_red",
|
|
409
|
+
componentName: "Button"
|
|
410
|
+
},
|
|
411
|
+
parent
|
|
412
|
+
);
|
|
413
|
+
(0, import_vitest.expect)(child.state.className).toBe("t_red_Button");
|
|
414
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark_red_Button");
|
|
415
|
+
});
|
|
416
|
+
(0, import_vitest.test)(`Drops componentName if only regular name found at stronger level`, () => {
|
|
417
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
418
|
+
{
|
|
419
|
+
name: "dark_red"
|
|
420
|
+
},
|
|
421
|
+
"root"
|
|
422
|
+
);
|
|
423
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
424
|
+
{
|
|
425
|
+
name: "alt1",
|
|
426
|
+
componentName: "Button"
|
|
427
|
+
},
|
|
428
|
+
parent
|
|
429
|
+
);
|
|
430
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark_red_alt1");
|
|
431
|
+
});
|
|
432
|
+
(0, import_vitest.test)(`Component name + theme change when nested already`, () => {
|
|
433
|
+
const parent = new import_ThemeManager.ThemeManager(
|
|
434
|
+
{
|
|
435
|
+
name: "dark_red"
|
|
436
|
+
},
|
|
437
|
+
"root"
|
|
438
|
+
);
|
|
439
|
+
const child = new import_ThemeManager.ThemeManager(
|
|
440
|
+
{
|
|
441
|
+
name: "yellow",
|
|
442
|
+
componentName: "Button"
|
|
443
|
+
},
|
|
444
|
+
parent
|
|
445
|
+
);
|
|
446
|
+
(0, import_vitest.expect)(child.state.name).toBe("dark_yellow_Button");
|
|
447
|
+
});
|
|
61
448
|
});
|
|
62
449
|
//# sourceMappingURL=ThemeManager.test.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/ThemeManager.test.tsx"],
|
|
4
|
-
"sourcesContent": ["import { getDefaultTamaguiConfig } from '@tamagui/config-default-node'\nimport { beforeAll, describe, expect, test } from 'vitest'\n\nimport { createTamagui } from '../createTamagui'\nimport { ThemeManager } from './ThemeManager'\n\ndescribe('ThemeManager', () => {\n beforeAll(() => {\n const conf = getDefaultTamaguiConfig()\n createTamagui(conf)\n })\n\n test('Changes theme to dark', () => {\n const manager = new ThemeManager(undefined, {\n name: 'dark',\n })\n expect(manager.state.name).toBe('dark')\n })\n\n test('Given parent theme \"dark\" and child theme \"red\" to return theme \"dark_red\"', () => {\n const parent = new ThemeManager(undefined, {\n name: 'dark',\n })\n const child = new ThemeManager(parent, {\n name: 'red',\n })\n expect(parent.state.name).toBe('dark')\n expect(child.state.name).toBe('dark_red')\n })\n\n test('Given parent theme \"dark\", child theme \"red_alt2\" and component \"Button\" returns \"dark_red_alt2_Button\"', () => {\n const parent = new ThemeManager(undefined, {\n name: 'dark',\n })\n const child1 = new ThemeManager(parent, {\n name: 'red',\n })\n expect(child1.state.name).toBe('dark_red')\n const child2 = new ThemeManager(child1, {\n name: 'alt2',\n componentName: 'Button',\n })\n expect(child2.state.name).toBe('dark_red_alt2_Button')\n })\n\n test('Inverts \"light\" to \"dark\"', () => {\n const parent = new ThemeManager(undefined, {\n name: 'light',\n })\n const child = new ThemeManager(parent, {\n name: 'dark',\n })\n expect(parent.state.name).toBe('light')\n expect(child.state.name).toBe('dark')\n })\n\n test('Inverts \"light_red\" to \"dark_red\"', () => {\n const parent = new ThemeManager(undefined, {\n name: 'light',\n })\n const child1 = new ThemeManager(parent, {\n name: 'red',\n inverse: true,\n })\n expect(child1.state.name).toBe('dark_red')\n })\n})\n"],
|
|
5
|
-
"mappings": ";AAAA,iCAAwC;AACxC,oBAAkD;AAElD,2BAA8B;AAC9B,0BAA6B;AAAA,
|
|
4
|
+
"sourcesContent": ["import { getDefaultTamaguiConfig } from '@tamagui/config-default-node'\nimport { beforeAll, describe, expect, test } from 'vitest'\n\nimport { createTamagui } from '../createTamagui'\nimport { ThemeManager } from './ThemeManager'\n\nconst conf = getDefaultTamaguiConfig()\n\ndescribe('ThemeManager', () => {\n beforeAll(() => {\n createTamagui(conf)\n })\n\n test('Changes theme to dark', () => {\n const manager = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n expect(manager.state.name).toBe('dark')\n })\n\n test('Given parent theme \"dark\" and child theme \"red\" to return theme \"dark_red\"', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'red',\n },\n parent\n )\n expect(parent.state.name).toBe('dark')\n expect(child.state.name).toBe('dark_red')\n })\n\n test('Given parent theme \"dark\", child theme \"red_alt2\" and component \"Button\" returns \"dark_red_alt2_Button\"', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child1 = new ThemeManager(\n {\n name: 'red',\n },\n parent\n )\n expect(child1.state.name).toBe('dark_red')\n const child2 = new ThemeManager(\n {\n name: 'alt2',\n componentName: 'Button',\n },\n child1\n )\n expect(child2.state.name).toBe('dark_red_alt2_Button')\n })\n\n test('Given parent theme \"dark\", child theme \"red\" and component \"Button\" returns \"dark_red_Button\"', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child1 = new ThemeManager(\n {\n name: 'red',\n },\n parent\n )\n expect(child1.state.name).toBe('dark_red')\n const child2 = new ThemeManager(\n {\n componentName: 'Button',\n },\n child1\n )\n expect(child2.state.name).toBe('dark_red_Button')\n })\n\n test('Given parent theme \"dark\", child theme \"red\" and missing component \"Card\" returns \"dark_red\"', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child1 = new ThemeManager(\n {\n name: 'red',\n },\n parent\n )\n expect(child1.state.name).toBe('dark_red')\n const child2 = new ThemeManager(\n {\n componentName: 'Card',\n },\n child1\n )\n expect(child2.state.name).toBe('dark_red')\n })\n\n test('Changes \"light\" to \"dark\"', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'dark',\n },\n parent\n )\n expect(parent.state.name).toBe('light')\n expect(child.state.name).toBe('dark')\n })\n\n test('Inverts \"light\" to \"dark\"', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child1 = new ThemeManager(\n {\n inverse: true,\n },\n parent\n )\n expect(child1.state.name).toBe('dark')\n })\n\n test('Inverts \"light_red\" to \"dark_red\"', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child1 = new ThemeManager(\n {\n name: 'red',\n inverse: true,\n },\n parent\n )\n expect(child1.state.name).toBe('dark_red')\n })\n\n test('Updates state', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const newState = parent.updateState({\n name: 'dark',\n })\n expect(newState).toMatchInlineSnapshot(`\n {\n \"className\": \"t_dark\",\n \"name\": \"dark\",\n \"parentName\": \"\",\n \"theme\": {\n \"background\": {\n \"isVar\": true,\n \"key\": \"color-2\",\n \"name\": \"background\",\n \"val\": \"#000\",\n \"variable\": \"\",\n },\n \"color\": {\n \"isVar\": true,\n \"key\": \"color-1\",\n \"name\": \"color\",\n \"val\": \"#fff\",\n \"variable\": \"\",\n },\n },\n }\n `)\n expect(parent.state.name).toBe('dark')\n })\n\n test('Returns parent on empty', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: null,\n },\n parent\n )\n expect(child).toBe(parent)\n })\n\n test('Resets theme', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'dark',\n },\n parent\n )\n expect(child.state.name).toBe('dark')\n expect(child.parentManager).toBe(parent)\n const child2 = new ThemeManager(\n {\n reset: true,\n },\n child\n )\n expect(child2.parentManager).toBe(child)\n expect(child2.state.name).toBe('light')\n })\n\n test('Nested invert and reset', () => {\n const parent = new ThemeManager(\n {\n name: 'light',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'dark',\n },\n parent\n )\n const child2 = new ThemeManager(\n {\n reset: true,\n },\n child\n )\n const child3 = new ThemeManager(\n {\n inverse: true,\n },\n child2\n )\n expect(child3.state.name).toBe('dark')\n })\n\n test('Updates from null the new theme nested 3 themes', () => {\n const a = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const b = new ThemeManager(\n {\n name: 'red',\n },\n a\n )\n expect(b.state.name).toBe('dark_red')\n const c = new ThemeManager(\n {\n name: 'alt2',\n },\n b\n )\n expect(c.state.name).toBe('dark_red_alt2')\n })\n\n test('Ignored dup themes', () => {\n const a = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const b = new ThemeManager(\n {\n name: 'dark',\n },\n a\n )\n expect(b === a).toBe(true)\n })\n\n test('Nested component themes fallback to grandparents', () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'red',\n componentName: 'Button',\n },\n parent\n )\n const child2 = new ThemeManager(\n {\n name: 'blue',\n },\n child\n )\n expect(child2.state.name).toBe('dark_blue')\n const child3 = new ThemeManager(\n {\n componentName: 'Button',\n },\n child2\n )\n expect(child3.state.name).toBe('dark_blue_Button')\n })\n\n test(`Component theme with sub component that doesn't exist keeps same theme`, () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'red',\n componentName: 'Button',\n },\n parent\n )\n const child2 = new ThemeManager(\n {\n componentName: 'Spacer',\n },\n child\n )\n expect(child2).toBe(child)\n })\n\n test(`Doesn't find invalid parent when only passing component`, () => {\n expect(!!conf.themes['dark_Card']).toBeTruthy()\n\n const parent = new ThemeManager(\n {\n name: 'dark_red',\n },\n 'root'\n )\n\n const child = new ThemeManager(\n {\n componentName: 'Card',\n },\n parent\n )\n\n // dont find dark_Card because dark_red is highest it should climb\n expect(child.state.name).toBe(parent.state.name)\n })\n\n test(`Finds sub-theme when componentName and name are passed but componentName doesn't exist`, () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n\n const child = new ThemeManager(\n {\n name: 'red',\n componentName: 'Missing',\n },\n parent\n )\n\n // dont find dark_Card because dark_red is highest it should climb\n expect(child.state.name).toBe('dark_red')\n })\n\n test(`Uses the full className without the light/dark prefix`, () => {\n const parent = new ThemeManager(\n {\n name: 'dark',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'red_alt2',\n },\n parent\n )\n expect(child.state.className).toBe('t_red_alt2')\n\n const child2 = new ThemeManager(\n {\n name: 'red',\n },\n parent\n )\n const child3 = new ThemeManager(\n {\n name: 'alt2',\n },\n child2\n )\n expect(child3.state.className).toBe('t_red_alt2')\n })\n\n test(`Finds component dark_red + Button`, () => {\n const parent = new ThemeManager(\n {\n name: 'dark_red',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'dark_red',\n componentName: 'Button',\n },\n parent\n )\n expect(child.state.className).toBe('t_red_Button')\n expect(child.state.name).toBe('dark_red_Button')\n })\n\n test(`Drops componentName if only regular name found at stronger level`, () => {\n const parent = new ThemeManager(\n {\n name: 'dark_red',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'alt1',\n componentName: 'Button',\n },\n parent\n )\n expect(child.state.name).toBe('dark_red_alt1')\n })\n\n test(`Component name + theme change when nested already`, () => {\n const parent = new ThemeManager(\n {\n name: 'dark_red',\n },\n 'root'\n )\n const child = new ThemeManager(\n {\n name: 'yellow',\n componentName: 'Button',\n },\n parent\n )\n expect(child.state.name).toBe('dark_yellow_Button')\n })\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -16,15 +16,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
19
|
+
var ThemeManagerContext_exports = {};
|
|
20
|
+
__export(ThemeManagerContext_exports, {
|
|
21
|
+
ThemeManagerContext: () => ThemeManagerContext
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
25
|
-
const
|
|
23
|
+
module.exports = __toCommonJS(ThemeManagerContext_exports);
|
|
24
|
+
var import_react = require("react");
|
|
25
|
+
const ThemeManagerContext = (0, import_react.createContext)(null);
|
|
26
26
|
// Annotate the CommonJS export names for ESM import in node:
|
|
27
27
|
0 && (module.exports = {
|
|
28
|
-
|
|
28
|
+
ThemeManagerContext
|
|
29
29
|
});
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=ThemeManagerContext.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/ThemeManagerContext.tsx"],
|
|
4
|
+
"sourcesContent": ["import { createContext } from 'react'\n\nimport { ThemeManager } from './ThemeManager'\n\nexport const ThemeManagerContext = createContext<ThemeManager | null>(null)\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8B;AAIvB,MAAM,0BAAsB,4BAAmC,IAAI;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -296,7 +296,7 @@ const getToken = (key, value, conf, theme, fontFamily = "$body", languageContext
|
|
|
296
296
|
const fontsParsed = languageContext ? (0, import_getVariantExtras.getFontsForLanguage)(conf.fontsParsed, languageContext) : conf.fontsParsed;
|
|
297
297
|
let valOrVar;
|
|
298
298
|
let hasSet = false;
|
|
299
|
-
if (theme
|
|
299
|
+
if (value in theme) {
|
|
300
300
|
valOrVar = theme[value];
|
|
301
301
|
hasSet = true;
|
|
302
302
|
} else {
|
|
@@ -332,14 +332,14 @@ const getToken = (key, value, conf, theme, fontFamily = "$body", languageContext
|
|
|
332
332
|
}
|
|
333
333
|
if (hasSet) {
|
|
334
334
|
if (process.env.NODE_ENV === "development" && import_isDevTools.isDevTools && debug === "verbose") {
|
|
335
|
-
console.log(` \uFE52 propMapper getToken`, key, valOrVar);
|
|
335
|
+
console.log(` \uFE52 propMapper getToken`, key, valOrVar, theme);
|
|
336
336
|
}
|
|
337
337
|
return resolveVariableValue(key, valOrVar, resolveAs);
|
|
338
338
|
}
|
|
339
339
|
if (process.env.NODE_ENV === "development") {
|
|
340
340
|
if (value && value[0] === "$") {
|
|
341
|
-
console.
|
|
342
|
-
`\u26A0\uFE0F You
|
|
341
|
+
console.warn(
|
|
342
|
+
`\u26A0\uFE0F You passed the value "${value}" to the style property "${key}", but there's no theme or token with the key "${value}". Using theme "${theme.name}".
|
|
343
343
|
|
|
344
344
|
Set the debug prop to true to see more detailed debug information.`
|
|
345
345
|
);
|