@tamagui/core 1.0.0-alpha.1 → 1.0.0-alpha.10

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.
Files changed (228) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/constants/constants.js +50 -0
  3. package/{_ → dist/cjs}/constants/constants.js.map +2 -2
  4. package/dist/cjs/constants/platform.js +43 -0
  5. package/dist/cjs/constants/platform.js.map +7 -0
  6. package/dist/cjs/constants/pseudos.js +25 -0
  7. package/{_ → dist/cjs}/constants/pseudos.js.map +2 -2
  8. package/{_ → dist/cjs}/constants/rnw.js +9 -3
  9. package/{_ → dist/cjs}/constants/rnw.js.map +2 -2
  10. package/dist/cjs/createComponent.js +531 -0
  11. package/dist/cjs/createComponent.js.map +7 -0
  12. package/dist/cjs/createFont.js +50 -0
  13. package/dist/cjs/createFont.js.map +7 -0
  14. package/{_ → dist/cjs}/createShorthands.js +9 -3
  15. package/{_ → dist/cjs}/createShorthands.js.map +2 -2
  16. package/dist/cjs/createTamagui.js +206 -0
  17. package/dist/cjs/createTamagui.js.map +7 -0
  18. package/dist/cjs/createTheme.js +42 -0
  19. package/{_ → dist/cjs}/createTheme.js.map +2 -2
  20. package/dist/cjs/createTokens.js +55 -0
  21. package/dist/cjs/createTokens.js.map +7 -0
  22. package/dist/cjs/createVariable.js +47 -0
  23. package/dist/cjs/createVariable.js.map +7 -0
  24. package/dist/cjs/helpers/addStylesUsingClassname.js +79 -0
  25. package/dist/cjs/helpers/addStylesUsingClassname.js.map +7 -0
  26. package/dist/cjs/helpers/createMediaStyle.js +56 -0
  27. package/{_ → dist/cjs}/helpers/createMediaStyle.js.map +2 -2
  28. package/dist/cjs/helpers/createPropMapper.js +190 -0
  29. package/dist/cjs/helpers/createPropMapper.js.map +7 -0
  30. package/dist/cjs/helpers/createTamaguiProvider.js +74 -0
  31. package/dist/cjs/helpers/createTamaguiProvider.js.map +7 -0
  32. package/dist/cjs/helpers/extendStaticConfig.js +82 -0
  33. package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
  34. package/dist/cjs/helpers/fixNativeShadow.js +14 -0
  35. package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
  36. package/{_ → dist/cjs}/helpers/fixNativeShadow.native.js +9 -3
  37. package/{_ → dist/cjs}/helpers/fixNativeShadow.native.js.map +2 -2
  38. package/dist/cjs/helpers/getSplitStyles.js +180 -0
  39. package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
  40. package/dist/cjs/helpers/getStylesAtomic.js +117 -0
  41. package/{_ → dist/cjs}/helpers/getStylesAtomic.js.map +2 -2
  42. package/dist/cjs/helpers/getStylesAtomic.native.js +16 -0
  43. package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
  44. package/dist/cjs/helpers/insertStyleRule.js +46 -0
  45. package/{_ → dist/cjs}/helpers/insertStyleRule.js.map +2 -2
  46. package/dist/cjs/helpers/isObj.js +13 -0
  47. package/dist/cjs/helpers/isObj.js.map +7 -0
  48. package/dist/cjs/helpers/isTamaguiElement.js +33 -0
  49. package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
  50. package/dist/cjs/helpers/matchMedia.js +24 -0
  51. package/dist/cjs/helpers/matchMedia.js.map +7 -0
  52. package/dist/cjs/helpers/matchMedia.native.js +31 -0
  53. package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
  54. package/dist/cjs/helpers/themeable.js +78 -0
  55. package/{_ → dist/cjs}/helpers/themeable.js.map +2 -2
  56. package/dist/cjs/helpers/validate.js +82 -0
  57. package/dist/cjs/helpers/validate.js.map +7 -0
  58. package/dist/cjs/hooks/useConstant.js +37 -0
  59. package/{_ → dist/cjs}/hooks/useConstant.js.map +2 -2
  60. package/dist/cjs/hooks/useFeatures.js +100 -0
  61. package/dist/cjs/hooks/useFeatures.js.map +7 -0
  62. package/{_ → dist/cjs}/hooks/useMedia.js +59 -28
  63. package/dist/cjs/hooks/useMedia.js.map +7 -0
  64. package/dist/cjs/hooks/usePressable.js +50 -0
  65. package/{_ → dist/cjs}/hooks/usePressable.js.map +2 -2
  66. package/dist/cjs/hooks/useTheme.js +111 -0
  67. package/dist/cjs/hooks/useTheme.js.map +7 -0
  68. package/dist/cjs/index.js +55 -0
  69. package/dist/cjs/index.js.map +7 -0
  70. package/dist/cjs/static/postProcessStyles.js +40 -0
  71. package/{_ → dist/cjs}/static/postProcessStyles.js.map +2 -2
  72. package/dist/cjs/static.js +34 -0
  73. package/dist/cjs/static.js.map +7 -0
  74. package/dist/cjs/styled.js +72 -0
  75. package/dist/cjs/styled.js.map +7 -0
  76. package/dist/cjs/types.js +4 -0
  77. package/dist/cjs/types.js.map +7 -0
  78. package/dist/cjs/views/Animated.js +129 -0
  79. package/{_ → dist/cjs}/views/Animated.js.map +2 -2
  80. package/dist/cjs/views/Stack.js +51 -0
  81. package/{_ → dist/cjs}/views/Stack.js.map +2 -2
  82. package/dist/cjs/views/Text.js +93 -0
  83. package/{_ → dist/cjs}/views/Text.js.map +2 -2
  84. package/dist/cjs/views/TextAncestorContext.js +41 -0
  85. package/{_ → dist/cjs}/views/TextAncestorContext.js.map +2 -2
  86. package/dist/cjs/views/Theme.js +88 -0
  87. package/dist/cjs/views/Theme.js.map +7 -0
  88. package/dist/cjs/views/ThemeContext.js +29 -0
  89. package/{_ → dist/cjs}/views/ThemeContext.js.map +2 -2
  90. package/dist/cjs/views/ThemeInverse.js +48 -0
  91. package/{_ → dist/cjs}/views/ThemeInverse.js.map +3 -3
  92. package/dist/cjs/views/ThemeManagerContext.js +84 -0
  93. package/dist/cjs/views/ThemeManagerContext.js.map +7 -0
  94. package/dist/cjs/views/ThemeProvider.js +67 -0
  95. package/{_ → dist/cjs}/views/ThemeProvider.js.map +2 -2
  96. package/dist/createComponent.js +50 -32
  97. package/dist/createComponent.js.map +2 -2
  98. package/dist/createFont.js +4 -0
  99. package/dist/createFont.js.map +2 -2
  100. package/dist/createTamagui.js +11 -2
  101. package/dist/createTamagui.js.map +2 -2
  102. package/dist/createTokens.js +4 -0
  103. package/dist/createTokens.js.map +2 -2
  104. package/dist/createVariable.js +3 -0
  105. package/dist/createVariable.js.map +2 -2
  106. package/dist/helpers/createPropMapper.js +2 -2
  107. package/dist/helpers/createPropMapper.js.map +1 -1
  108. package/dist/helpers/getSplitStyles.js +13 -23
  109. package/dist/helpers/getSplitStyles.js.map +2 -2
  110. package/dist/helpers/isComponent.js +10 -0
  111. package/dist/helpers/isComponent.js.map +7 -0
  112. package/dist/helpers/isTamaguiComponent.js +10 -0
  113. package/dist/helpers/isTamaguiComponent.js.map +7 -0
  114. package/dist/helpers/isTamaguiElement.js +10 -0
  115. package/dist/helpers/isTamaguiElement.js.map +7 -0
  116. package/dist/helpers/matchMedia.js +3 -0
  117. package/dist/helpers/matchMedia.js.map +2 -2
  118. package/dist/helpers/matchMedia.native.js +1 -0
  119. package/dist/helpers/matchMedia.native.js.map +2 -2
  120. package/dist/helpers/validate.js +60 -0
  121. package/dist/helpers/validate.js.map +7 -0
  122. package/dist/helpers/validateConfig.js +46 -0
  123. package/dist/helpers/validateConfig.js.map +7 -0
  124. package/dist/helpers/validateTokens.js +29 -0
  125. package/dist/helpers/validateTokens.js.map +7 -0
  126. package/dist/hooks/useFeatures.js +39 -51
  127. package/dist/hooks/useFeatures.js.map +2 -2
  128. package/dist/hooks/useMedia.js +1 -1
  129. package/dist/hooks/useMedia.js.map +2 -2
  130. package/dist/hooks/useTheme.js +5 -9
  131. package/dist/hooks/useTheme.js.map +2 -2
  132. package/dist/index.cjs +273 -196
  133. package/dist/index.cjs.map +3 -3
  134. package/dist/index.js +1 -2
  135. package/dist/index.js.map +2 -2
  136. package/dist/views/Theme.js +16 -7
  137. package/dist/views/Theme.js.map +2 -2
  138. package/dist/views/ThemeInverse.js +0 -1
  139. package/dist/views/ThemeInverse.js.map +2 -2
  140. package/dist/views/ThemeManagerContext.js +11 -5
  141. package/dist/views/ThemeManagerContext.js.map +2 -2
  142. package/package.json +19 -10
  143. package/src/createComponent.tsx +57 -41
  144. package/src/createFont.ts +5 -0
  145. package/src/createTamagui.ts +11 -1
  146. package/src/createTokens.ts +6 -1
  147. package/src/createVariable.ts +4 -0
  148. package/src/helpers/createPropMapper.ts +2 -2
  149. package/src/helpers/getSplitStyles.tsx +16 -26
  150. package/src/helpers/isTamaguiElement.tsx +5 -0
  151. package/src/helpers/matchMedia.native.ts +3 -0
  152. package/src/helpers/matchMedia.ts +9 -1
  153. package/src/helpers/validate.ts +59 -0
  154. package/src/hooks/useFeatures.tsx +54 -53
  155. package/src/hooks/useMedia.tsx +2 -2
  156. package/src/hooks/useTheme.tsx +7 -8
  157. package/src/index.ts +1 -2
  158. package/src/types.tsx +3 -2
  159. package/src/views/Theme.tsx +26 -9
  160. package/src/views/ThemeInverse.tsx +0 -1
  161. package/src/views/ThemeManagerContext.tsx +18 -6
  162. package/types.d.ts +10 -9
  163. package/.ultra.cache.json +0 -1
  164. package/_/constants/constants.js +0 -14
  165. package/_/constants/platform.js +0 -20
  166. package/_/constants/platform.js.map +0 -7
  167. package/_/constants/pseudos.js +0 -18
  168. package/_/createComponent.js +0 -427
  169. package/_/createComponent.js.map +0 -7
  170. package/_/createTamagui.js +0 -122
  171. package/_/createTamagui.js.map +0 -7
  172. package/_/createTheme.js +0 -20
  173. package/_/createTokens.js +0 -29
  174. package/_/createTokens.js.map +0 -7
  175. package/_/createVariable.js +0 -22
  176. package/_/createVariable.js.map +0 -7
  177. package/_/helpers/addStylesUsingClassname.js +0 -32
  178. package/_/helpers/addStylesUsingClassname.js.map +0 -7
  179. package/_/helpers/createMediaStyle.js +0 -34
  180. package/_/helpers/createTamaguiProvider.js +0 -42
  181. package/_/helpers/createTamaguiProvider.js.map +0 -7
  182. package/_/helpers/extendStaticConfig.js +0 -176
  183. package/_/helpers/extendStaticConfig.js.map +0 -7
  184. package/_/helpers/fixNativeShadow.js +0 -8
  185. package/_/helpers/fixNativeShadow.js.map +0 -7
  186. package/_/helpers/getSplitStyles.js +0 -160
  187. package/_/helpers/getSplitStyles.js.map +0 -7
  188. package/_/helpers/getStylesAtomic.js +0 -84
  189. package/_/helpers/getStylesAtomic.native.js +0 -10
  190. package/_/helpers/getStylesAtomic.native.js.map +0 -7
  191. package/_/helpers/insertStyleRule.js +0 -24
  192. package/_/helpers/matchMedia.js +0 -15
  193. package/_/helpers/matchMedia.js.map +0 -7
  194. package/_/helpers/matchMedia.native.js +0 -8
  195. package/_/helpers/matchMedia.native.js.map +0 -7
  196. package/_/helpers/themeable.js +0 -26
  197. package/_/hooks/useConstant.js +0 -15
  198. package/_/hooks/useFeatures.js +0 -75
  199. package/_/hooks/useFeatures.js.map +0 -7
  200. package/_/hooks/useForceUpdate.js +0 -28
  201. package/_/hooks/useForceUpdate.js.map +0 -7
  202. package/_/hooks/useMedia.js.map +0 -7
  203. package/_/hooks/usePressable.js +0 -14
  204. package/_/hooks/useTheme.js +0 -94
  205. package/_/hooks/useTheme.js.map +0 -7
  206. package/_/index.js +0 -30
  207. package/_/index.js.map +0 -7
  208. package/_/static/postProcessStyles.js +0 -18
  209. package/_/static.js +0 -12
  210. package/_/static.js.map +0 -7
  211. package/_/styled.js +0 -21
  212. package/_/styled.js.map +0 -7
  213. package/_/types.js +0 -1
  214. package/_/types.js.map +0 -7
  215. package/_/views/Animated.js +0 -79
  216. package/_/views/Stack.js +0 -12
  217. package/_/views/Text.js +0 -60
  218. package/_/views/TextAncestorContext.js +0 -19
  219. package/_/views/Theme.js +0 -57
  220. package/_/views/Theme.js.map +0 -7
  221. package/_/views/ThemeContext.js +0 -6
  222. package/_/views/ThemeInverse.js +0 -27
  223. package/_/views/ThemeManagerContext.js +0 -56
  224. package/_/views/ThemeManagerContext.js.map +0 -7
  225. package/_/views/ThemeProvider.js +0 -45
  226. package/src/hooks/useForceUpdate.tsx +0 -26
  227. package/src/views/SafeAreaProvider.tsx +0 -33
  228. package/tsconfig.json +0 -8
@@ -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
@@ -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
- }
@@ -1,6 +0,0 @@
1
- import { createContext } from "react";
2
- const ThemeContext = createContext(null);
3
- export {
4
- ThemeContext
5
- };
6
- //# sourceMappingURL=ThemeContext.js.map
@@ -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
- }
@@ -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,26 +0,0 @@
1
- import { useEffect, useRef, useState } from 'react'
2
-
3
- // ensures no updates after unmount
4
-
5
- export function useForceUpdate() {
6
- const setState = useState(0)[1]
7
- const internal = useRef<{ update: Function; isMounted: boolean }>()
8
- if (!internal.current) {
9
- internal.current = {
10
- isMounted: true,
11
- update: () => {
12
- if (internal.current!.isMounted) {
13
- setState(Math.random())
14
- }
15
- },
16
- }
17
- }
18
-
19
- useEffect(() => {
20
- return () => {
21
- internal.current!.isMounted = false
22
- }
23
- }, [])
24
-
25
- return internal.current.update
26
- }
@@ -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
- }
package/tsconfig.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "extends": "../../tsconfig",
3
- "compilerOptions": {
4
- "rootDir": "../..",
5
- "jsx": "preserve"
6
- },
7
- "include": ["src"]
8
- }