@tamagui/core 1.0.0-beta.179 → 1.0.0-beta.181

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 (244) hide show
  1. package/dist/cjs/Tamagui.js +18 -1
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/ThemeContext.js +4 -0
  4. package/dist/cjs/ThemeManager.js +30 -14
  5. package/dist/cjs/ThemeManager.js.map +2 -2
  6. package/dist/cjs/conf.js +10 -1
  7. package/dist/cjs/conf.js.map +2 -2
  8. package/dist/cjs/constants/constants.js +6 -0
  9. package/dist/cjs/constants/platform.js +12 -0
  10. package/dist/cjs/constants/pseudos.js +37 -0
  11. package/dist/cjs/constants/pseudos.js.map +7 -0
  12. package/dist/cjs/constants/rnw.js +4 -0
  13. package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
  14. package/dist/cjs/createComponent.js +132 -126
  15. package/dist/cjs/createComponent.js.map +2 -2
  16. package/dist/cjs/createFont.js +4 -0
  17. package/dist/cjs/createShallowUpdate.js +1 -0
  18. package/dist/cjs/createShallowUpdate.js.map +7 -0
  19. package/dist/cjs/createShorthands.js +4 -0
  20. package/dist/cjs/createTamagui.js +12 -0
  21. package/dist/cjs/createTamagui.js.map +2 -2
  22. package/dist/cjs/createTheme.js +4 -0
  23. package/dist/cjs/createTokens.js +5 -0
  24. package/dist/cjs/createTokens.js.map +1 -1
  25. package/dist/cjs/createVariable.js +9 -0
  26. package/dist/cjs/defaultComponentState.js +0 -30
  27. package/dist/cjs/defaultComponentState.js.map +3 -3
  28. package/dist/cjs/devtools.js +32 -0
  29. package/dist/cjs/devtools.js.map +7 -0
  30. package/dist/cjs/helpers/RNComponents.js +38 -0
  31. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  32. package/dist/cjs/helpers/addStylesUsingClassname.js +8 -0
  33. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  34. package/dist/cjs/helpers/areEqualSets.js +4 -0
  35. package/dist/cjs/helpers/createMediaStyle.js +8 -6
  36. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  37. package/dist/cjs/helpers/createPropMapper.js +57 -56
  38. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  39. package/dist/cjs/helpers/createShallowUpdate.js +55 -0
  40. package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
  41. package/dist/cjs/helpers/createTamaguiProvider.js +5 -5
  42. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  43. package/dist/cjs/helpers/extendStaticConfig.js +8 -6
  44. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  45. package/dist/cjs/helpers/fixNativeShadow.js +4 -0
  46. package/dist/cjs/helpers/fixNativeShadow.native.js +6 -2
  47. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  48. package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
  49. package/dist/cjs/helpers/getSplitStyles.js +94 -47
  50. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  51. package/dist/cjs/helpers/getStylesAtomic.js +20 -2
  52. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  53. package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
  54. package/dist/cjs/helpers/insertStyleRule.js +46 -26
  55. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  56. package/dist/cjs/helpers/isObj.js +4 -0
  57. package/dist/cjs/helpers/isTamaguiElement.js +4 -0
  58. package/dist/cjs/helpers/matchMedia.js +4 -0
  59. package/dist/cjs/helpers/matchMedia.native.js +4 -0
  60. package/dist/cjs/helpers/themeable.js +8 -2
  61. package/dist/cjs/helpers/themeable.js.map +2 -2
  62. package/dist/cjs/helpers/validate.js +46 -5
  63. package/dist/cjs/helpers/validate.js.map +2 -2
  64. package/dist/cjs/helpers/withStaticProperties.js +4 -0
  65. package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
  66. package/dist/cjs/hooks/useConstant.js +4 -0
  67. package/dist/cjs/hooks/useFeatures.js +101 -12
  68. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  69. package/dist/cjs/hooks/useIsMounted.js +4 -0
  70. package/dist/cjs/hooks/useIsTouchDevice.js +4 -0
  71. package/dist/cjs/hooks/useMedia.js +36 -43
  72. package/dist/cjs/hooks/useMedia.js.map +2 -2
  73. package/dist/cjs/hooks/usePressable.js +4 -0
  74. package/dist/cjs/hooks/useTheme.js +28 -13
  75. package/dist/cjs/hooks/useTheme.js.map +2 -2
  76. package/dist/cjs/hooks/useUnmountEffect.js +4 -0
  77. package/dist/cjs/index.js +14 -0
  78. package/dist/cjs/index.js.map +2 -2
  79. package/dist/cjs/styled.js +8 -15
  80. package/dist/cjs/styled.js.map +2 -2
  81. package/dist/cjs/tamagui-base.css +8 -0
  82. package/dist/cjs/tamagui-base.css.map +7 -0
  83. package/dist/cjs/types-rnw.js.map +1 -1
  84. package/dist/cjs/types.js.map +1 -1
  85. package/dist/cjs/views/Stack.js +5 -0
  86. package/dist/cjs/views/Stack.js.map +2 -2
  87. package/dist/cjs/views/Text.js +5 -0
  88. package/dist/cjs/views/Text.js.map +2 -2
  89. package/dist/cjs/views/TextAncestorContext.js +6 -0
  90. package/dist/cjs/views/Theme.js +17 -19
  91. package/dist/cjs/views/Theme.js.map +2 -2
  92. package/dist/cjs/views/ThemeInverse.js +5 -0
  93. package/dist/cjs/views/ThemeProvider.js +4 -0
  94. package/dist/cjs/views/ThemeReset.js +4 -0
  95. package/dist/esm/Tamagui.js +10 -2
  96. package/dist/esm/Tamagui.js.map +2 -2
  97. package/dist/esm/ThemeManager.js +21 -11
  98. package/dist/esm/ThemeManager.js.map +2 -2
  99. package/dist/esm/conf.js +0 -1
  100. package/dist/esm/conf.js.map +2 -2
  101. package/dist/esm/constants/pseudos.js +18 -0
  102. package/dist/esm/constants/pseudos.js.map +7 -0
  103. package/dist/esm/createComponent.js +122 -129
  104. package/dist/esm/createComponent.js.map +2 -2
  105. package/dist/esm/createShallowUpdate.js +1 -0
  106. package/dist/esm/createShallowUpdate.js.map +7 -0
  107. package/dist/esm/createTamagui.js +8 -0
  108. package/dist/esm/createTamagui.js.map +2 -2
  109. package/dist/esm/createTokens.js.map +1 -1
  110. package/dist/esm/defaultComponentState.js +0 -11
  111. package/dist/esm/defaultComponentState.js.map +3 -3
  112. package/dist/esm/devtools.js +14 -0
  113. package/dist/esm/devtools.js.map +7 -0
  114. package/dist/esm/helpers/RNComponents.js +12 -0
  115. package/dist/esm/helpers/RNComponents.js.map +7 -0
  116. package/dist/esm/helpers/addStylesUsingClassname.js +4 -1
  117. package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
  118. package/dist/esm/helpers/createMediaStyle.js +3 -6
  119. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  120. package/dist/esm/helpers/createPropMapper.js +53 -56
  121. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  122. package/dist/esm/helpers/createShallowUpdate.js +19 -0
  123. package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
  124. package/dist/esm/helpers/createTamaguiProvider.js +1 -4
  125. package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
  126. package/dist/esm/helpers/extendStaticConfig.js +5 -6
  127. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  128. package/dist/esm/helpers/fixNativeShadow.native.js +2 -2
  129. package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
  130. package/dist/esm/helpers/getSplitStyles.js +89 -48
  131. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  132. package/dist/esm/helpers/getStylesAtomic.js +15 -2
  133. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  134. package/dist/esm/helpers/insertStyleRule.js +36 -26
  135. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  136. package/dist/esm/helpers/themeable.js +4 -2
  137. package/dist/esm/helpers/themeable.js.map +2 -2
  138. package/dist/esm/helpers/validate.js +17 -5
  139. package/dist/esm/helpers/validate.js.map +2 -2
  140. package/dist/esm/hooks/useFeatures.js +96 -17
  141. package/dist/esm/hooks/useFeatures.js.map +2 -2
  142. package/dist/esm/hooks/useMedia.js +25 -43
  143. package/dist/esm/hooks/useMedia.js.map +2 -2
  144. package/dist/esm/hooks/useTheme.js +20 -13
  145. package/dist/esm/hooks/useTheme.js.map +2 -2
  146. package/dist/esm/index.js +3 -0
  147. package/dist/esm/index.js.map +2 -2
  148. package/dist/esm/styled.js +4 -12
  149. package/dist/esm/styled.js.map +2 -2
  150. package/dist/esm/tamagui-base.css +8 -0
  151. package/dist/esm/tamagui-base.css.map +7 -0
  152. package/dist/esm/views/Stack.js +1 -0
  153. package/dist/esm/views/Stack.js.map +2 -2
  154. package/dist/esm/views/Text.js +1 -0
  155. package/dist/esm/views/Text.js.map +2 -2
  156. package/dist/esm/views/Theme.js +13 -19
  157. package/dist/esm/views/Theme.js.map +2 -2
  158. package/dist/jsx/Tamagui.js +10 -2
  159. package/dist/jsx/ThemeManager.js +21 -11
  160. package/dist/jsx/conf.js +0 -1
  161. package/dist/jsx/constants/pseudos.js +17 -0
  162. package/dist/jsx/createComponent.js +115 -123
  163. package/dist/jsx/createShallowUpdate.js +0 -0
  164. package/dist/jsx/createTamagui.js +8 -0
  165. package/dist/jsx/defaultComponentState.js +0 -11
  166. package/dist/jsx/devtools.js +13 -0
  167. package/dist/jsx/helpers/RNComponents.js +11 -0
  168. package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
  169. package/dist/jsx/helpers/createMediaStyle.js +3 -6
  170. package/dist/jsx/helpers/createPropMapper.js +53 -56
  171. package/dist/jsx/helpers/createShallowUpdate.js +18 -0
  172. package/dist/jsx/helpers/createTamaguiProvider.js +1 -2
  173. package/dist/jsx/helpers/extendStaticConfig.js +5 -6
  174. package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
  175. package/dist/jsx/helpers/getSplitStyles.js +89 -48
  176. package/dist/jsx/helpers/getStylesAtomic.js +15 -2
  177. package/dist/jsx/helpers/insertStyleRule.js +36 -26
  178. package/dist/jsx/helpers/themeable.js +4 -3
  179. package/dist/jsx/helpers/validate.js +17 -5
  180. package/dist/jsx/hooks/useFeatures.js +96 -17
  181. package/dist/jsx/hooks/useMedia.js +25 -43
  182. package/dist/jsx/hooks/useTheme.js +20 -13
  183. package/dist/jsx/index.js +3 -0
  184. package/dist/jsx/styled.js +4 -12
  185. package/dist/jsx/tamagui-base.css +7 -0
  186. package/dist/jsx/views/Stack.js +1 -0
  187. package/dist/jsx/views/Text.js +1 -0
  188. package/dist/jsx/views/Theme.js +13 -19
  189. package/package.json +6 -6
  190. package/types/Tamagui.d.ts +16 -1
  191. package/types/Tamagui.d.ts.map +1 -1
  192. package/types/ThemeManager.d.ts +3 -3
  193. package/types/ThemeManager.d.ts.map +1 -1
  194. package/types/conf.d.ts.map +1 -1
  195. package/types/createComponent.d.ts +5 -7
  196. package/types/createComponent.d.ts.map +1 -1
  197. package/types/createFont.d.ts +1 -1
  198. package/types/createFont.d.ts.map +1 -1
  199. package/types/createTamagui.d.ts.map +1 -1
  200. package/types/createTokens.d.ts +8 -0
  201. package/types/createTokens.d.ts.map +1 -1
  202. package/types/defaultComponentState.d.ts +0 -12
  203. package/types/defaultComponentState.d.ts.map +1 -1
  204. package/types/helpers/RNComponents.d.ts +2 -0
  205. package/types/helpers/RNComponents.d.ts.map +1 -0
  206. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
  207. package/types/helpers/createMediaStyle.d.ts +1 -1
  208. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  209. package/types/helpers/createPropMapper.d.ts +2 -2
  210. package/types/helpers/createPropMapper.d.ts.map +1 -1
  211. package/types/helpers/createShallowUpdate.d.ts +4 -0
  212. package/types/helpers/createShallowUpdate.d.ts.map +1 -0
  213. package/types/helpers/createTamaguiProvider.d.ts +1 -1
  214. package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
  215. package/types/helpers/extendStaticConfig.d.ts +2 -2
  216. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  217. package/types/helpers/getSplitStyles.d.ts +4 -14
  218. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  219. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  220. package/types/helpers/insertStyleRule.d.ts +2 -1
  221. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  222. package/types/helpers/themeable.d.ts +3 -1
  223. package/types/helpers/themeable.d.ts.map +1 -1
  224. package/types/helpers/validate.d.ts.map +1 -1
  225. package/types/hooks/useFeatures.d.ts +7 -5
  226. package/types/hooks/useFeatures.d.ts.map +1 -1
  227. package/types/hooks/useMedia.d.ts +3 -3
  228. package/types/hooks/useMedia.d.ts.map +1 -1
  229. package/types/hooks/useTheme.d.ts +1 -1
  230. package/types/hooks/useTheme.d.ts.map +1 -1
  231. package/types/index.d.ts +1 -0
  232. package/types/index.d.ts.map +1 -1
  233. package/types/styled.d.ts +13 -8
  234. package/types/styled.d.ts.map +1 -1
  235. package/types/types-rnw.d.ts +0 -5
  236. package/types/types-rnw.d.ts.map +1 -1
  237. package/types/types.d.ts +124 -90
  238. package/types/types.d.ts.map +1 -1
  239. package/types/views/Stack.d.ts +2 -2
  240. package/types/views/Stack.d.ts.map +1 -1
  241. package/types/views/Text.d.ts +2 -2
  242. package/types/views/Text.d.ts.map +1 -1
  243. package/types/views/Theme.d.ts +1 -0
  244. package/types/views/Theme.d.ts.map +1 -1
@@ -3,7 +3,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
  const { default: ow } = require("@tamagui/ow/dev-only");
4
4
  let Config;
5
5
  let Tokens;
6
- let Font;
6
+ let FontRequired;
7
+ let FontOptional;
7
8
  const validateConfig = /* @__PURE__ */ __name((conf) => {
8
9
  if (!conf) {
9
10
  console.warn("no conf?");
@@ -24,7 +25,9 @@ const validateTokens = /* @__PURE__ */ __name((tokens) => {
24
25
  }, "validateTokens");
25
26
  const validateFont = /* @__PURE__ */ __name((font) => {
26
27
  try {
27
- ow(font, Font);
28
+ const { style, transform, ...required } = font;
29
+ ow(required, FontRequired);
30
+ ow({ style, transform }, FontOptional);
28
31
  } catch (err) {
29
32
  console.warn("Given font:\n", JSON.stringify(font, null, 2), err);
30
33
  }
@@ -39,15 +42,24 @@ if (process.env.NODE_ENV === "development") {
39
42
  media: ow.object.valuesOfType(ow.object),
40
43
  animations: ow.object.valuesOfType(ow.object)
41
44
  });
42
- Font = ow.object.exactShape({
45
+ const fontReq = {
43
46
  family: ow.string,
44
47
  size: ow.object.nonEmpty.valuesOfType(ow.number),
45
48
  lineHeight: ow.object.nonEmpty.valuesOfType(ow.number),
46
49
  weight: ow.object.nonEmpty.valuesOfType(ow.string),
47
50
  letterSpacing: ow.object.nonEmpty.valuesOfType(ow.number)
48
- });
51
+ };
52
+ const fontOpt = {
53
+ style: ow.optional.object.valuesOfType(ow.string),
54
+ transform: ow.optional.object.valuesOfType(ow.string)
55
+ };
56
+ FontRequired = ow.object.exactShape(fontReq);
57
+ FontOptional = ow.object.partialShape(fontOpt);
49
58
  Tokens = ow.object.exactShape({
50
- font: ow.object.valuesOfType(Font),
59
+ font: ow.object.valuesOfType(ow.object.partialShape({
60
+ ...fontReq,
61
+ ...fontOpt
62
+ })),
51
63
  size: ow.object.nonEmpty.valuesOfType(ow.number),
52
64
  space: ow.object.nonEmpty.valuesOfType(ow.number),
53
65
  zIndex: ow.object.nonEmpty.valuesOfType(ow.number),
@@ -1,6 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
3
+ import { useIsomorphicLayoutEffect } from "../constants/platform";
4
+ import { getSubStyle } from "../helpers/getSplitStyles";
4
5
  import { addMediaQueryListener, mediaState, removeMediaQueryListener } from "./useMedia";
5
6
  const createDefinition = /* @__PURE__ */ __name(({
6
7
  Component,
@@ -26,47 +27,125 @@ const useFeatures = /* @__PURE__ */ __name((props, utils) => {
26
27
  function loadFeatures() {
27
28
  return {
28
29
  animation: loadAnimationFeature(),
29
- ...!isWeb && {
30
- mediaQuery: loadMediaQueryFeature()
31
- }
30
+ mediaQuery: loadMediaQueryFeature()
32
31
  };
33
32
  }
34
33
  __name(loadFeatures, "loadFeatures");
35
34
  function loadAnimationFeature() {
36
35
  return createDefinition({
37
36
  Component: ({ _utils, ...props }) => {
38
- const { state, useAnimations, pseudos, style, setStateShallow } = _utils;
37
+ const {
38
+ state,
39
+ useAnimations,
40
+ pseudos,
41
+ style: inStyle,
42
+ setStateShallow,
43
+ staticConfig,
44
+ theme,
45
+ onDidAnimate
46
+ } = _utils;
39
47
  if (!useAnimations) {
40
48
  console.error("no useAnimations hook provided");
41
49
  return null;
42
50
  }
43
- const animatedStyleIn = {
44
- ...style,
45
- ...state.hover && pseudos.hoverStyle,
46
- ...state.focus && pseudos.focusStyle,
47
- ...state.press && pseudos.pressStyle
48
- };
49
- const res = useAnimations(props, {
50
- isMounted: state.mounted,
51
- style: animatedStyleIn,
52
- exitStyle: pseudos == null ? void 0 : pseudos.exitStyle
51
+ const propsWithAnimation = props;
52
+ const res = useAnimations(propsWithAnimation, {
53
+ state,
54
+ pseudos,
55
+ onDidAnimate,
56
+ staticConfig,
57
+ getStyle({ isEntering, exitVariant, enterVariant } = {}) {
58
+ var _a, _b, _c, _d;
59
+ const style = inStyle || {};
60
+ const enterStyle = isEntering === true || state.mounted === false ? enterVariant && ((_a = staticConfig.variants) == null ? void 0 : _a[enterVariant]["true"]) ? getSubStyle((_b = staticConfig.variants) == null ? void 0 : _b[enterVariant]["true"], staticConfig, theme, props, state) || pseudos.enterStyle : pseudos.enterStyle : null;
61
+ const exitStyle = isEntering === false ? exitVariant && ((_c = staticConfig.variants) == null ? void 0 : _c[exitVariant]["true"]) ? getSubStyle((_d = staticConfig.variants) == null ? void 0 : _d[exitVariant]["true"], staticConfig, theme, props, state) || pseudos.exitStyle : pseudos.exitStyle : null;
62
+ ensureBaseHasDefaults(style, enterStyle, pseudos.hoverStyle, pseudos.focusStyle, pseudos.pressStyle, pseudos.pressStyle);
63
+ enterStyle && merge(style, enterStyle);
64
+ state.hover && pseudos.hoverStyle && merge(style, pseudos.hoverStyle);
65
+ state.focus && pseudos.focusStyle && merge(style, pseudos.focusStyle);
66
+ state.press && pseudos.pressStyle && merge(style, pseudos.pressStyle);
67
+ exitStyle && merge(style, exitStyle);
68
+ return style;
69
+ }
53
70
  });
54
71
  useIsomorphicLayoutEffect(() => {
55
72
  setStateShallow({
56
73
  animation: res
57
74
  });
58
- }, [JSON.stringify(style)]);
75
+ }, [res]);
59
76
  return null;
60
77
  },
61
78
  propNames: ["animation"]
62
79
  });
63
80
  }
64
81
  __name(loadAnimationFeature, "loadAnimationFeature");
82
+ const defaults = {
83
+ left: 0,
84
+ right: 0,
85
+ top: 0,
86
+ bottom: 0,
87
+ opacity: 1,
88
+ translateX: 0,
89
+ translateY: 0,
90
+ skew: 0,
91
+ skewX: 0,
92
+ skewY: 0,
93
+ scale: 1,
94
+ rotate: "0deg",
95
+ rotateY: "0deg",
96
+ rotateX: "0deg"
97
+ };
98
+ function ensureBaseHasDefaults(base, ...pseudos) {
99
+ for (const pseudo of pseudos) {
100
+ if (!pseudo)
101
+ continue;
102
+ for (const key in pseudo) {
103
+ const val = pseudo[key];
104
+ if (key === "transform") {
105
+ for (const t of val) {
106
+ const tkey = Object.keys(t)[0];
107
+ const defaultVal = defaults[tkey];
108
+ const tDefaultVal = { [tkey]: defaultVal };
109
+ if (!base.transform) {
110
+ base.transform = [tDefaultVal];
111
+ } else {
112
+ if (!base.transform.find((x) => x[tkey])) {
113
+ base.transform.push(tDefaultVal);
114
+ }
115
+ }
116
+ }
117
+ } else {
118
+ if (!(key in base)) {
119
+ base[key] = defaults[key];
120
+ }
121
+ }
122
+ }
123
+ }
124
+ }
125
+ __name(ensureBaseHasDefaults, "ensureBaseHasDefaults");
126
+ function merge(base, next) {
127
+ if (!next.transform || !base.transform) {
128
+ Object.assign(base, next);
129
+ return;
130
+ }
131
+ const { transform, ...rest } = next;
132
+ Object.assign(base, rest);
133
+ for (const t of transform) {
134
+ const key = Object.keys(t)[0];
135
+ const existing = base.transform.find((x) => key in x);
136
+ if (existing) {
137
+ existing[key] = t[key];
138
+ } else {
139
+ base.transform.push(t);
140
+ }
141
+ }
142
+ }
143
+ __name(merge, "merge");
65
144
  function loadMediaQueryFeature() {
66
145
  const mediaPropNames = Object.keys(mediaState);
67
146
  return createDefinition({
68
147
  Component: (props) => {
69
- const keys = mediaPropNames.flatMap((x) => x in props ? x.slice(1) : []);
148
+ const keys = mediaPropNames.filter((x) => x in props);
70
149
  useIsomorphicLayoutEffect(() => {
71
150
  for (const key of keys) {
72
151
  addMediaQueryListener(key, props._utils.forceUpdate);
@@ -15,36 +15,9 @@ const removeMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
15
15
  var _a;
16
16
  (_a = mediaQueryListeners[key]) == null ? void 0 : _a.delete(cb);
17
17
  }, "removeMediaQueryListener");
18
- let conf = null;
19
- const mediaQueryConfig = new Proxy({}, {
20
- get(target, key) {
21
- if (key === "$$typeof") {
22
- return Reflect.get(target, key);
23
- }
24
- if (!conf) {
25
- console.warn("Tamagui: accessing media query before init");
26
- return null;
27
- }
28
- return Reflect.get(conf, key);
29
- },
30
- ownKeys() {
31
- if (!conf) {
32
- console.warn("Tamagui: accessing media query before init");
33
- return [];
34
- }
35
- return Object.keys(conf);
36
- },
37
- getOwnPropertyDescriptor() {
38
- return {
39
- enumerable: true,
40
- configurable: true
41
- };
42
- }
43
- });
18
+ let hasConfigured = false;
19
+ const mediaQueryConfig = {};
44
20
  const getMedia = /* @__PURE__ */ __name(() => {
45
- if (!conf) {
46
- throw new Error(`not configured yet`);
47
- }
48
21
  return mediaState;
49
22
  }, "getMedia");
50
23
  const configureMedia = /* @__PURE__ */ __name(({
@@ -52,37 +25,42 @@ const configureMedia = /* @__PURE__ */ __name(({
52
25
  defaultActive = ["sm", "xs"]
53
26
  } = {}) => {
54
27
  var _a;
55
- if (conf) {
28
+ if (hasConfigured) {
56
29
  console.warn(`Already configured mediaQueries once (you may have called getMedia() before configureMedia())`);
57
30
  }
58
31
  if (queries) {
59
- conf = queries;
32
+ Object.assign(mediaQueryConfig, queries);
33
+ hasConfigured = true;
60
34
  }
61
35
  for (const key in queries) {
62
36
  const str = mediaObjectToString(queries[key]);
37
+ const propKey = `$${key}`;
63
38
  try {
64
- const getMatch = /* @__PURE__ */ __name(() => matchMedia(str), "getMatch");
65
- const match = getMatch();
66
- if (!match || typeof match.addListener !== "function") {
67
- throw new Error("\u26A0\uFE0F No match (seeing this in RN sometimes)");
68
- }
69
- mediaState[key] = !!match.matches;
70
- match.addListener(() => {
39
+ let update = function() {
71
40
  const next = !!getMatch().matches;
72
- if (next === mediaState[key])
41
+ if (next === mediaState[propKey])
73
42
  return;
74
- mediaState[key] = next;
75
- const listeners = mediaQueryListeners[key];
43
+ mediaState[propKey] = next;
44
+ const listeners = mediaQueryListeners[propKey];
76
45
  if (listeners == null ? void 0 : listeners.size) {
77
46
  for (const cb of [...listeners]) {
78
47
  cb();
79
48
  }
80
49
  }
81
- });
50
+ };
51
+ __name(update, "update");
52
+ const getMatch = /* @__PURE__ */ __name(() => matchMedia(str), "getMatch");
53
+ const match = getMatch();
54
+ if (!match || typeof match.addListener !== "function") {
55
+ throw new Error("\u26A0\uFE0F No match (seeing this in RN sometimes)");
56
+ }
57
+ mediaState[propKey] = !!match.matches;
58
+ match.addListener(update);
59
+ update();
82
60
  } catch (err) {
83
61
  console.error("Error running media query", str, err.message, err.stack);
84
62
  const isDefaultActive = (_a = defaultActive == null ? void 0 : defaultActive.includes(key)) != null ? _a : true;
85
- mediaState[key] = isDefaultActive;
63
+ mediaState[propKey] = isDefaultActive;
86
64
  }
87
65
  }
88
66
  }, "configureMedia");
@@ -108,6 +86,7 @@ const useMedia = /* @__PURE__ */ __name(() => {
108
86
  }
109
87
  for (const key in st.nextSelections) {
110
88
  if (!(key in st.selections)) {
89
+ console.log("lsiten", key);
111
90
  addMediaQueryListener(key, forceUpdate);
112
91
  }
113
92
  }
@@ -129,6 +108,9 @@ const useMedia = /* @__PURE__ */ __name(() => {
129
108
  const st = state.current;
130
109
  return new Proxy(mediaState, {
131
110
  get(target, key) {
111
+ if (key[0] !== "$") {
112
+ key = `$${key}`;
113
+ }
132
114
  if (!(key in mediaState)) {
133
115
  return Reflect.get(target, key);
134
116
  }
@@ -49,14 +49,22 @@ const useTheme = /* @__PURE__ */ __name((themeName, componentName, props, forceU
49
49
  return Reflect.has(theme, key);
50
50
  },
51
51
  get(_, key) {
52
- if (!name || key === "__proto__") {
52
+ if (!name || key === "__proto__" || typeof key === "symbol") {
53
+ if (key === GetThemeManager) {
54
+ if (process.env.NODE_ENV === "development") {
55
+ if (props["debug"]) {
56
+ console.log("did change", { themeName, didChangeTheme, name, componentName }, themeManager == null ? void 0 : themeManager.parentName);
57
+ }
58
+ }
59
+ if (!didChangeTheme) {
60
+ return null;
61
+ }
62
+ return themeManager;
63
+ }
53
64
  return Reflect.get(_, key);
54
65
  }
55
- if (key === GetThemeManager) {
56
- if (!didChangeTheme) {
57
- return null;
58
- }
59
- return themeManager;
66
+ if (typeof key !== "string" || key === "$typeof") {
67
+ return Reflect.get(_, key);
60
68
  }
61
69
  if (process.env.NODE_ENV === "development") {
62
70
  if (key === "__state") {
@@ -73,11 +81,6 @@ const useTheme = /* @__PURE__ */ __name((themeName, componentName, props, forceU
73
81
  console.error("No themeManager");
74
82
  return;
75
83
  }
76
- if (process.env.NODE_ENV === "development") {
77
- if ((props == null ? void 0 : props["debug"]) === "verbose") {
78
- console.log(" \xBB accessing theme val", key, { ...state.current });
79
- }
80
- }
81
84
  if (typeof key === "string") {
82
85
  if (key[0] === "$") {
83
86
  key = key.slice(1);
@@ -86,12 +89,16 @@ const useTheme = /* @__PURE__ */ __name((themeName, componentName, props, forceU
86
89
  if (val) {
87
90
  if (state.current.isRendering) {
88
91
  state.current.keys.add(key);
92
+ if (process.env.NODE_ENV === "development") {
93
+ if ((props == null ? void 0 : props["debug"]) === "verbose") {
94
+ console.log(" \xBB tracking theme key", key);
95
+ }
96
+ }
89
97
  }
90
98
  return val;
91
99
  }
92
100
  if (process.env.NODE_ENV === "development") {
93
- console.warn(`No theme value "${String(key)}" in ${name}`);
94
- return null;
101
+ console.log(`No theme value "${String(key)}" in ${name}`);
95
102
  }
96
103
  }
97
104
  return Reflect.get(_, key);
package/dist/jsx/index.js CHANGED
@@ -8,6 +8,7 @@ import { createTokens } from "./createTokens";
8
8
  export * from "./createVariable";
9
9
  export * from "./styled";
10
10
  export * from "./types";
11
+ import { RNWTextProps, RNWViewProps } from "./types-rnw";
11
12
  import { getHasConfigured, getConfig, getThemes, getTokens, onConfiguredOnce } from "./conf";
12
13
  export * from "./constants/constants";
13
14
  export * from "./constants/platform";
@@ -38,6 +39,8 @@ export * from "./views/ThemeProvider";
38
39
  export * from "./views/TextAncestorContext";
39
40
  export * from "@tamagui/helpers";
40
41
  export {
42
+ RNWTextProps,
43
+ RNWViewProps,
41
44
  createTokens,
42
45
  getConfig,
43
46
  getHasConfigured,
@@ -1,16 +1,8 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import * as ReactNative from "react-native";
4
3
  import { Image, Text, TextInput } from "react-native";
5
4
  import { createComponent } from "./createComponent";
6
- import { extendStaticConfig } from "./helpers/extendStaticConfig";
7
- const RNComponents = /* @__PURE__ */ new WeakMap();
8
- for (const key of ["Image", "TextInput", "Text", "View"]) {
9
- const val = ReactNative[key];
10
- if (val && typeof val === "object") {
11
- RNComponents.set(val, true);
12
- }
13
- }
5
+ import { RNComponents } from "./helpers/RNComponents";
14
6
  function styled(Component, options, staticExtractionOptions) {
15
7
  const staticConfigProps = (() => {
16
8
  if (options) {
@@ -18,7 +10,7 @@ function styled(Component, options, staticExtractionOptions) {
18
10
  if (defaultVariants) {
19
11
  Object.assign(defaultProps, defaultVariants);
20
12
  }
21
- const isReactNativeWeb = RNComponents.has(Component);
13
+ const isReactNativeWeb = "staticConfig" in Component ? Component.staticConfig.isReactNativeWeb : RNComponents.has(Component);
22
14
  const isTamagui = !isReactNativeWeb && "staticConfig" in Component;
23
15
  const Comp = Component;
24
16
  const isImage = !!(defaultProps.isImage || (!isTamagui ? Comp === Image : false));
@@ -32,6 +24,7 @@ function styled(Component, options, staticExtractionOptions) {
32
24
  isTamagui,
33
25
  variants,
34
26
  defaultProps,
27
+ defaultVariants,
35
28
  componentName: name,
36
29
  isReactNativeWeb,
37
30
  isInput,
@@ -42,8 +35,7 @@ function styled(Component, options, staticExtractionOptions) {
42
35
  }
43
36
  return {};
44
37
  })();
45
- const config = extendStaticConfig(Component, staticConfigProps);
46
- const component = createComponent(config);
38
+ const component = createComponent(staticConfigProps, Component);
47
39
  return component;
48
40
  }
49
41
  __name(styled, "styled");
@@ -0,0 +1,7 @@
1
+ .tamagui-absolute-fill {
2
+ position: absolute;
3
+ top: 0;
4
+ left: 0;
5
+ right: 0;
6
+ bottom: 0;
7
+ }
@@ -1,6 +1,7 @@
1
1
  import { stackDefaultStyles } from "../constants/constants";
2
2
  import { createComponent } from "../createComponent";
3
3
  const Stack = createComponent({
4
+ componentName: "Stack",
4
5
  defaultProps: {
5
6
  ...stackDefaultStyles,
6
7
  flexDirection: "column"
@@ -8,6 +8,7 @@ const ellipseStyle = {
8
8
  whiteSpace: "nowrap"
9
9
  };
10
10
  const Text = createComponent({
11
+ componentName: "Text",
11
12
  isText: true,
12
13
  defaultProps: {
13
14
  display: isWeb ? "inline" : "flex",
@@ -3,35 +3,29 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
  import React, { memo, useMemo } from "react";
4
4
  import { isWeb } from "../constants/platform";
5
5
  import { wrapThemeManagerContext } from "../helpers/wrapThemeManagerContext";
6
- import { useChangeThemeEffect } from "../static";
6
+ import { useChangeThemeEffect } from "../hooks/useTheme";
7
7
  React["createElement"];
8
8
  const Theme = memo(/* @__PURE__ */ __name(function Theme2(props) {
9
9
  var _a, _b;
10
- const { name, theme, themeManager, themes, className } = useChangeThemeEffect(props.name, void 0, props);
11
- const contents = useMemo(() => {
12
- if (!name || !theme) {
13
- return props.children;
14
- }
15
- return wrapThemeManagerContext(props.children, themeManager);
16
- }, [props.children, themeManager]);
17
- if (!themes) {
18
- console.warn("Error, no themes in context", props);
19
- return props.children;
20
- }
21
- if (!name || !theme) {
22
- if (process.env.NODE_ENV === "development" && name && !theme) {
10
+ const { name, theme, themeManager, themes, className } = useChangeThemeEffect(props.name, props.componentName, props);
11
+ if (!themes || !name || !theme) {
12
+ if (name && !theme && process.env.NODE_ENV === "development") {
23
13
  console.warn(`No theme found by name ${name}`);
24
14
  }
25
15
  return props.children;
26
16
  }
17
+ const contents = useMemo(() => wrapThemeManagerContext(props.children, themeManager), [props.children, themeManager]);
18
+ if (props.componentName === "Drawer") {
19
+ console.log("ok?", className, themeManager);
20
+ }
27
21
  if (isWeb) {
28
- if (props.disableThemeClass) {
29
- return contents;
30
- }
31
- return <div className={props.className ? `${className || ""} ${props.className || ""}` : className || ""} style={{
22
+ return <span className={[
23
+ `tui_Theme`,
24
+ ...!props.disableThemeClass ? [props.className, className].filter(Boolean) : []
25
+ ].join(" ")} style={{
32
26
  display: "contents",
33
27
  color: (_b = (_a = themes[name]) == null ? void 0 : _a.color) == null ? void 0 : _b.toString()
34
- }}>{contents}</div>;
28
+ }}>{contents}</span>;
35
29
  }
36
30
  return contents;
37
31
  }, "Theme"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/core",
3
- "version": "1.0.0-beta.179+a2bba1a8",
3
+ "version": "1.0.0-beta.181+fff2a5b2",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -19,10 +19,10 @@
19
19
  "dist"
20
20
  ],
21
21
  "dependencies": {
22
- "@tamagui/helpers": "^1.0.0-beta.179+a2bba1a8",
22
+ "@tamagui/helpers": "^1.0.0-beta.181+fff2a5b2",
23
23
  "@tamagui/ow": "^0.28.1",
24
- "@tamagui/use-debounce": "^1.0.0-beta.179+a2bba1a8",
25
- "@tamagui/use-force-update": "^1.0.0-beta.179+a2bba1a8",
24
+ "@tamagui/use-debounce": "^1.0.0-beta.181+fff2a5b2",
25
+ "@tamagui/use-force-update": "^1.0.0-beta.181+fff2a5b2",
26
26
  "react": "*",
27
27
  "react-dom": "*"
28
28
  },
@@ -30,7 +30,7 @@
30
30
  "react-native-web": "*"
31
31
  },
32
32
  "devDependencies": {
33
- "@tamagui/build": "^1.0.0-beta.179+a2bba1a8",
33
+ "@tamagui/build": "^1.0.0-beta.181+fff2a5b2",
34
34
  "@types/react": "^17.0.35",
35
35
  "csstype": "^3.0.10",
36
36
  "esbuild": "^0.14.36",
@@ -40,5 +40,5 @@
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  },
43
- "gitHead": "a2bba1a86895896d70f8d1b91a5faf94adf776e4"
43
+ "gitHead": "fff2a5b25ea3881d499e5376cd166f58556acaba"
44
44
  }
@@ -1,7 +1,22 @@
1
+ import * as Helpers from '@tamagui/helpers';
1
2
  import { TamaguiInternalConfig } from './types';
2
3
  declare class TamaguiManager {
3
- config: TamaguiInternalConfig | null;
4
4
  rnw: Record<string, any>;
5
+ Helpers: typeof Helpers;
6
+ get config(): TamaguiInternalConfig<import("./types").CreateTokens<import("./types").VariableVal>, {
7
+ [key: string]: Partial<import("./types").TamaguiBaseTheme> & {
8
+ [key: string]: import("./types").VariableVal;
9
+ };
10
+ }, {}, {
11
+ [x: string]: {
12
+ [key: string]: string | number;
13
+ };
14
+ }, {
15
+ [key: string]: string | {
16
+ [key: string]: any;
17
+ };
18
+ }>;
19
+ get insertedRules(): unknown[];
5
20
  get allSelectors(): {};
6
21
  get allTransforms(): {};
7
22
  get identifierToValue(): Map<string, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"Tamagui.d.ts","sourceRoot":"","sources":["../src/Tamagui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAI/C,cAAM,cAAc;IAClB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAO;IAC3C,GAAG,sBAAM;IAET,IAAI,YAAY,OAEf;IAED,IAAI,aAAa,OAEhB;IAED,IAAI,iBAAiB,qBAEpB;CACF;AAED,eAAO,MAAM,OAAO,gBAAuB,CAAA;AAI3C,eAAO,MAAM,sBAAsB,eAAgB,MAAM,QAExD,CAAA;AAED,eAAO,MAAM,kBAAkB,eAAgB,MAAM,SAAS,GAAG,SAEhE,CAAA"}
1
+ {"version":3,"file":"Tamagui.d.ts","sourceRoot":"","sources":["../src/Tamagui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAK3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAI/C,cAAM,cAAc;IAClB,GAAG,sBAAM;IACT,OAAO,iBAAU;IAEjB,IAAI,MAAM;;;;;;;;;;;;OAET;IAED,IAAI,aAAa,cAEhB;IAED,IAAI,YAAY,OAEf;IAED,IAAI,aAAa,OAEhB;IAED,IAAI,iBAAiB,qBAEpB;CACF;AAED,eAAO,MAAM,OAAO,gBAAuB,CAAA;AAI3C,eAAO,MAAM,sBAAsB,eAAgB,MAAM,QAExD,CAAA;AAED,eAAO,MAAM,kBAAkB,eAAgB,MAAM,SAAS,GAAG,SAEhE,CAAA"}
@@ -9,14 +9,14 @@ export declare type SetActiveThemeProps = {
9
9
  };
10
10
  export declare class ThemeManager {
11
11
  #private;
12
- name: string | null;
12
+ name: string;
13
13
  theme: ThemeObject | null;
14
14
  parentManager: ThemeManager | null;
15
15
  keys: Map<any, Set<string>>;
16
16
  listeners: Map<any, Function>;
17
17
  themeListeners: Set<ThemeListener>;
18
18
  className: string | null;
19
- constructor(name?: string | null, theme?: ThemeObject | null, parentManager?: ThemeManager | null);
19
+ constructor(name?: string, theme?: ThemeObject | null, parentManager?: ThemeManager | null);
20
20
  get parentName(): string | null;
21
21
  get fullName(): string;
22
22
  getValue(key: string): import("./types").VariableVal | undefined;
@@ -32,7 +32,7 @@ export declare class ThemeManager {
32
32
  };
33
33
  className: string;
34
34
  } | {
35
- name: string | null;
35
+ name: string;
36
36
  theme: (Partial<import("./types").TamaguiBaseTheme> & {
37
37
  [key: string]: import("./types").VariableVal;
38
38
  }) | null;
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../src/ThemeManager.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAE7C,aAAK,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,YAAY,KAAK,IAAI,CAAA;AAE9E,oBAAY,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,GAAG,CAAA;CACZ,CAAA;AAED,qBAAa,YAAY;;IAOd,IAAI,EAAE,MAAM,GAAG,IAAI;IACnB,KAAK,EAAE,WAAW,GAAG,IAAI;IACzB,aAAa,EAAE,YAAY,GAAG,IAAI;IAR3C,IAAI,wBAA8B;IAClC,SAAS,qBAA2B;IACpC,cAAc,qBAA2B;IACzC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAO;gBAGtB,IAAI,GAAE,MAAM,GAAG,IAAW,EAC1B,KAAK,GAAE,WAAW,GAAG,IAAW,EAChC,aAAa,GAAE,YAAY,GAAG,IAAW;IAqBlD,IAAI,UAAU,kBAEb;IAED,IAAI,QAAQ,IAAI,MAAM,CAMrB;IAGD,QAAQ,CAAC,GAAG,EAAE,MAAM;IAmBpB,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAE,mBAAwB;IAgB3D,YAAY,CACV,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,EACnF,KAAK,CAAC,EAAE,GAAG;;;;;;;;;;;;;IAiEb,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;IAKlC,eAAe;IAYf,aAAa,CAAC,EAAE,EAAE,aAAa;IAO/B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ;CAOjC;AAED,eAAO,MAAM,mBAAmB,8CAA2C,CAAA;AAC3E,eAAO,MAAM,YAAY,cAAqB,CAAA"}
1
+ {"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../src/ThemeManager.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAE7C,aAAK,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,YAAY,KAAK,IAAI,CAAA;AAE9E,oBAAY,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,GAAG,CAAA;CACZ,CAAA;AAED,qBAAa,YAAY;;IAOd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,WAAW,GAAG,IAAI;IACzB,aAAa,EAAE,YAAY,GAAG,IAAI;IAR3C,IAAI,wBAA8B;IAClC,SAAS,qBAA2B;IACpC,cAAc,qBAA2B;IACzC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAO;gBAGtB,IAAI,GAAE,MAAW,EACjB,KAAK,GAAE,WAAW,GAAG,IAAW,EAChC,aAAa,GAAE,YAAY,GAAG,IAAW;IAqBlD,IAAI,UAAU,kBAEb;IAED,IAAI,QAAQ,IAAI,MAAM,CAMrB;IAGD,QAAQ,CAAC,GAAG,EAAE,MAAM;IAmBpB,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAE,mBAAwB;IAgB3D,YAAY,CACV,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,EACnF,KAAK,CAAC,EAAE,GAAG;;;;;;;;;;;;;IA4Eb,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;IAKlC,eAAe;IAYf,aAAa,CAAC,EAAE,EAAE,aAAa;IAO/B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ;CAOjC;AAED,eAAO,MAAM,mBAAmB,8CAA2C,CAAA;AAC3E,eAAO,MAAM,YAAY,cAAqB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"conf.d.ts","sourceRoot":"","sources":["../src/conf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAI/D,eAAO,MAAM,SAAS,SAAU,qBAAqB,SAMpD,CAAA;AAED,eAAO,MAAM,gBAAgB,eAAe,CAAA;AAC5C,eAAO,MAAM,SAAS;;;;;;;;;;;;EAAc,CAAA;AACpC,eAAO,MAAM,SAAS,2EAA2B,CAAA;AACjD,eAAO,MAAM,SAAS;;;;CAAqB,CAAA;AAE3C,eAAO,MAAM,eAAe,qBAA4B,CAAA;AAExD,eAAO,MAAM,gBAAgB,OAAQ,cAAc,SAWlD,CAAA"}
1
+ {"version":3,"file":"conf.d.ts","sourceRoot":"","sources":["../src/conf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAI/D,eAAO,MAAM,SAAS,SAAU,qBAAqB,SAMpD,CAAA;AAED,eAAO,MAAM,gBAAgB,eAAe,CAAA;AAC5C,eAAO,MAAM,SAAS;;;;;;;;;;;;EAAc,CAAA;AACpC,eAAO,MAAM,SAAS,2EAA2B,CAAA;AACjD,eAAO,MAAM,SAAS;;;;CAAqB,CAAA;AAE3C,eAAO,MAAM,eAAe,qBAA4B,CAAA;AAExD,eAAO,MAAM,gBAAgB,OAAQ,cAAc,SAUlD,CAAA"}
@@ -1,14 +1,13 @@
1
1
  /// <reference types="react" />
2
2
  import { View, ViewStyle } from 'react-native';
3
- import { SpaceTokens, StackProps, StaticComponent, StaticConfig, StaticConfigParsed } from './types';
3
+ import { SpaceTokens, StackProps, StaticConfig, StaticConfigParsed, StylableComponent, TamaguiComponent } from './types';
4
4
  export declare const mouseUps: Set<Function>;
5
- declare type DefaultProps = {};
6
- export declare function createComponent<ComponentPropTypes extends Object = DefaultProps, Ref = View>(configIn: Partial<StaticConfig> | StaticConfigParsed): StaticComponent<ComponentPropTypes, {}, Ref, StaticConfigParsed>;
7
- export declare const Spacer: StaticComponent<Omit<StackProps, "flex" | "direction"> & {
5
+ export declare function createComponent<ComponentPropTypes extends Object = {}, Ref = View, BaseProps = never>(configIn: Partial<StaticConfig> | StaticConfigParsed, ParentComponent?: StylableComponent): TamaguiComponent<ComponentPropTypes, Ref, BaseProps, {}>;
6
+ export declare const Spacer: TamaguiComponent<Omit<StackProps, "flex" | "direction"> & {
8
7
  size?: SpaceTokens | undefined;
9
8
  flex?: number | boolean | undefined;
10
9
  direction?: "horizontal" | "vertical" | undefined;
11
- }, {}, View, StaticConfigParsed>;
10
+ }, View, never, {}>;
12
11
  export declare function spacedChildren({ isZStack, children, space, flexDirection, spaceFlex, }: {
13
12
  isZStack?: boolean;
14
13
  children: any;
@@ -16,6 +15,5 @@ export declare function spacedChildren({ isZStack, children, space, flexDirectio
16
15
  spaceFlex?: boolean | number;
17
16
  flexDirection?: ViewStyle['flexDirection'];
18
17
  }): any[];
19
- export declare const AbsoluteFill: (props: any) => JSX.Element;
20
- export {};
18
+ export declare function AbsoluteFill(props: any): JSX.Element;
21
19
  //# sourceMappingURL=createComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":";AAcA,OAAO,EAAoB,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAmBhE,OAAO,EACL,WAAW,EACX,UAAU,EACV,eAAe,EACf,YAAY,EACZ,kBAAkB,EAGnB,MAAM,SAAS,CAAA;AAGhB,eAAO,MAAM,QAAQ,eAAsB,CAAA;AAS3C,aAAK,YAAY,GAAG,EAAE,CAAA;AAetB,wBAAgB,eAAe,CAAC,kBAAkB,SAAS,MAAM,GAAG,YAAY,EAAE,GAAG,GAAG,IAAI,EAC1F,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,oEA2lBrD;AAKD,eAAO,MAAM,MAAM;;;;gCA2CjB,CAAA;AAEF,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,aAAa,EACb,SAAS,GACV,EAAE;IACD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,GAAG,CAAA;IACb,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAA;CAC3C,SA2CA;AA4CD,eAAO,MAAM,YAAY,UAAW,GAAG,gBAepC,CAAA"}
1
+ {"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":";AAaA,OAAO,EAAoB,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAehE,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAKjB,MAAM,SAAS,CAAA;AAehB,eAAO,MAAM,QAAQ,eAAsB,CAAA;AAgB3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,GAAG,EAAE,EACtC,GAAG,GAAG,IAAI,EACV,SAAS,GAAG,KAAK,EACjB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,EAAE,eAAe,CAAC,EAAE,iBAAiB,4DAymB1F;AAKD,eAAO,MAAM,MAAM;;;;mBA4CjB,CAAA;AAEF,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,aAAa,EACb,SAAS,GACV,EAAE;IACD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,GAAG,CAAA;IACb,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAA;CAC3C,SA2CA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,eAkBtC"}