@tamagui/core 1.0.1-beta.20 → 1.0.1-beta.200

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 (788) hide show
  1. package/dist/cjs/Tamagui.js +16 -12
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/addTheme.js +80 -0
  4. package/dist/cjs/addTheme.js.map +7 -0
  5. package/dist/cjs/{conf.js → config.js} +34 -21
  6. package/dist/cjs/config.js.map +7 -0
  7. package/dist/cjs/constants/constants.js +17 -24
  8. package/dist/cjs/constants/constants.js.map +2 -2
  9. package/dist/cjs/{helpers/nativeGestureHandler.js → constants/isDevTools.js} +8 -8
  10. package/dist/cjs/constants/isDevTools.js.map +7 -0
  11. package/dist/cjs/constants/platform.js +32 -16
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/platform.native.js +62 -0
  14. package/dist/cjs/constants/platform.native.js.map +7 -0
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +1 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +1 -1
  17. package/dist/cjs/contexts/FontLanguageContext.js +30 -0
  18. package/dist/cjs/contexts/FontLanguageContext.js.map +7 -0
  19. package/dist/cjs/contexts/TextAncestorContext.js +30 -0
  20. package/dist/cjs/contexts/TextAncestorContext.js.map +7 -0
  21. package/dist/cjs/{ThemeContext.js → contexts/ThemeContext.js} +1 -0
  22. package/dist/cjs/contexts/ThemeContext.js.map +7 -0
  23. package/dist/cjs/createComponent.js +876 -509
  24. package/dist/cjs/createComponent.js.map +3 -3
  25. package/dist/cjs/createFont.js +5 -8
  26. package/dist/cjs/createFont.js.map +2 -2
  27. package/dist/cjs/createShorthands.js +1 -2
  28. package/dist/cjs/createShorthands.js.map +2 -2
  29. package/dist/cjs/createTamagui.js +135 -184
  30. package/dist/cjs/createTamagui.js.map +3 -3
  31. package/dist/cjs/createTheme.js +4 -2
  32. package/dist/cjs/createTheme.js.map +2 -2
  33. package/dist/cjs/createTokens.js +5 -25
  34. package/dist/cjs/createTokens.js.map +2 -2
  35. package/dist/cjs/createVariable.js +51 -28
  36. package/dist/cjs/createVariable.js.map +2 -2
  37. package/dist/cjs/createVariables.js +52 -0
  38. package/dist/cjs/createVariables.js.map +7 -0
  39. package/dist/cjs/helpers/RNComponents.js +12 -11
  40. package/dist/cjs/helpers/RNComponents.js.map +2 -2
  41. package/dist/cjs/{ThemeManager.js → helpers/ThemeManager.js} +55 -60
  42. package/dist/cjs/helpers/ThemeManager.js.map +7 -0
  43. package/dist/cjs/helpers/areEqualSets.js +3 -3
  44. package/dist/cjs/helpers/areEqualSets.js.map +1 -1
  45. package/dist/cjs/helpers/assignNativePropsToWeb.js +188 -0
  46. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +7 -0
  47. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +30 -0
  48. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +7 -0
  49. package/dist/cjs/helpers/cache.js +43 -0
  50. package/dist/cjs/helpers/cache.js.map +7 -0
  51. package/dist/cjs/helpers/calc.js +71 -0
  52. package/dist/cjs/helpers/calc.js.map +7 -0
  53. package/dist/cjs/helpers/createMediaStyle.js +26 -12
  54. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  55. package/dist/cjs/helpers/createPropMapper.js +272 -122
  56. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  57. package/dist/cjs/helpers/createProxy.js +43 -0
  58. package/dist/cjs/helpers/createProxy.js.map +7 -0
  59. package/dist/cjs/helpers/expandStyle.js +90 -0
  60. package/dist/cjs/helpers/expandStyle.js.map +7 -0
  61. package/dist/cjs/helpers/expandStyles.js +115 -0
  62. package/dist/cjs/helpers/expandStyles.js.map +7 -0
  63. package/dist/cjs/helpers/extendStaticConfig.js +48 -37
  64. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  65. package/dist/cjs/helpers/fixNativeShadow.js +3 -3
  66. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  67. package/dist/cjs/helpers/getAnimationDriver.js +32 -0
  68. package/dist/cjs/helpers/getAnimationDriver.js.map +7 -0
  69. package/dist/cjs/helpers/getExpandedShorthands.js +4 -5
  70. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  71. package/dist/cjs/helpers/{getTextSize.js → getFont.js} +22 -12
  72. package/dist/cjs/helpers/getFont.js.map +7 -0
  73. package/dist/cjs/helpers/getFontLanguage.js +29 -0
  74. package/dist/cjs/helpers/getFontLanguage.js.map +7 -0
  75. package/dist/cjs/helpers/getSize.js +19 -10
  76. package/dist/cjs/helpers/getSize.js.map +2 -2
  77. package/dist/cjs/helpers/getSplitStyles.js +503 -210
  78. package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
  79. package/dist/cjs/helpers/getStackSize.js +46 -0
  80. package/dist/cjs/helpers/getStackSize.js.map +7 -0
  81. package/dist/cjs/helpers/getStylesAtomic.js +177 -131
  82. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  83. package/dist/cjs/helpers/getStylesAtomic.native.js +1 -2
  84. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  85. package/dist/cjs/helpers/getThemeCSSRules.js +103 -0
  86. package/dist/cjs/helpers/getThemeCSSRules.js.map +7 -0
  87. package/dist/cjs/{nativeGestureHandler.native.js → helpers/getThemeCSSRules.native.js} +18 -5
  88. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +7 -0
  89. package/dist/cjs/helpers/getVariantExtras.js +89 -0
  90. package/dist/cjs/helpers/getVariantExtras.js.map +7 -0
  91. package/dist/cjs/helpers/insertStyleRule.js +90 -51
  92. package/dist/cjs/helpers/insertStyleRule.js.map +3 -3
  93. package/dist/cjs/helpers/isObj.js +2 -2
  94. package/dist/cjs/helpers/isObj.js.map +1 -1
  95. package/dist/cjs/helpers/isTamaguiComponent.js +37 -0
  96. package/dist/cjs/helpers/isTamaguiComponent.js.map +7 -0
  97. package/dist/cjs/helpers/isTamaguiElement.js +5 -5
  98. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  99. package/dist/cjs/helpers/matchMedia.js +7 -6
  100. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  101. package/dist/cjs/helpers/matchMedia.native.js +6 -3
  102. package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
  103. package/dist/cjs/helpers/mergeProps.js +54 -0
  104. package/dist/cjs/helpers/mergeProps.js.map +7 -0
  105. package/dist/cjs/helpers/mergeTransform.js +42 -0
  106. package/dist/cjs/helpers/mergeTransform.js.map +7 -0
  107. package/dist/cjs/helpers/normalizeColor.js +80 -0
  108. package/dist/cjs/helpers/normalizeColor.js.map +7 -0
  109. package/dist/cjs/helpers/normalizeValueWithProperty.js +123 -0
  110. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
  111. package/dist/cjs/helpers/proxyThemeVariables.js +4 -4
  112. package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
  113. package/dist/cjs/helpers/pseudoDescriptors.js +42 -0
  114. package/dist/cjs/helpers/pseudoDescriptors.js.map +7 -0
  115. package/dist/cjs/helpers/registerCSSVariable.js +40 -0
  116. package/dist/cjs/helpers/registerCSSVariable.js.map +7 -0
  117. package/dist/cjs/helpers/{wrapThemeManagerContext.js → startTransition.js} +12 -15
  118. package/dist/cjs/helpers/startTransition.js.map +7 -0
  119. package/dist/cjs/helpers/themeable.js +17 -40
  120. package/dist/cjs/helpers/themeable.js.map +3 -3
  121. package/dist/cjs/helpers/themes.js +79 -0
  122. package/dist/cjs/helpers/themes.js.map +7 -0
  123. package/dist/cjs/helpers/useShallowSetState.js +44 -0
  124. package/dist/cjs/helpers/useShallowSetState.js.map +7 -0
  125. package/dist/cjs/helpers/validate.js +1 -122
  126. package/dist/cjs/helpers/validate.js.map +3 -3
  127. package/dist/cjs/helpers/withStaticProperties.js +3 -3
  128. package/dist/cjs/helpers/withStaticProperties.js.map +1 -1
  129. package/dist/cjs/hooks/getThemeUnwrapped.js +37 -0
  130. package/dist/cjs/hooks/getThemeUnwrapped.js.map +7 -0
  131. package/dist/cjs/hooks/useConstant.js +4 -2
  132. package/dist/cjs/hooks/useConstant.js.map +2 -2
  133. package/dist/cjs/hooks/useElementLayout.js +92 -0
  134. package/dist/cjs/hooks/useElementLayout.js.map +7 -0
  135. package/dist/cjs/hooks/useId.js +3 -33
  136. package/dist/cjs/hooks/useId.js.map +2 -2
  137. package/dist/cjs/hooks/useIsMounted.js +3 -4
  138. package/dist/cjs/hooks/useIsMounted.js.map +2 -2
  139. package/dist/cjs/hooks/useIsTouchDevice.js +6 -12
  140. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  141. package/dist/cjs/hooks/useMedia.js +166 -123
  142. package/dist/cjs/hooks/useMedia.js.map +3 -3
  143. package/dist/cjs/hooks/usePressable.js +4 -18
  144. package/dist/cjs/hooks/usePressable.js.map +1 -1
  145. package/dist/cjs/hooks/useSafeRef.js +58 -0
  146. package/dist/cjs/hooks/useSafeRef.js.map +7 -0
  147. package/dist/cjs/hooks/useServerHooks.js +36 -0
  148. package/dist/cjs/hooks/useServerHooks.js.map +7 -0
  149. package/dist/cjs/hooks/useTheme.js +168 -134
  150. package/dist/cjs/hooks/useTheme.js.map +3 -3
  151. package/dist/cjs/hooks/useUnmountEffect.js +1 -2
  152. package/dist/cjs/hooks/useUnmountEffect.js.map +1 -1
  153. package/dist/cjs/index.js +49 -26
  154. package/dist/cjs/index.js.map +2 -2
  155. package/dist/cjs/inject-styles.js +40 -0
  156. package/dist/cjs/inject-styles.js.map +7 -0
  157. package/dist/cjs/injectStyles.js +40 -0
  158. package/dist/cjs/injectStyles.js.map +7 -0
  159. package/dist/cjs/insertFont.js +93 -0
  160. package/dist/cjs/insertFont.js.map +7 -0
  161. package/dist/cjs/react-native.js +22 -0
  162. package/dist/cjs/react-native.js.map +7 -0
  163. package/dist/cjs/setupReactNative.js +37 -0
  164. package/dist/cjs/setupReactNative.js.map +7 -0
  165. package/dist/cjs/static.js +2 -15
  166. package/dist/cjs/static.js.map +2 -2
  167. package/dist/cjs/styled.js +57 -51
  168. package/dist/cjs/styled.js.map +2 -2
  169. package/dist/cjs/types-rnw.js +1 -0
  170. package/dist/cjs/types-rnw.js.map +2 -2
  171. package/dist/cjs/types.js +1 -0
  172. package/dist/cjs/types.js.map +2 -2
  173. package/dist/cjs/updateTheme.js +47 -0
  174. package/dist/cjs/updateTheme.js.map +7 -0
  175. package/dist/cjs/vendor/Pressability.js +32 -0
  176. package/dist/cjs/vendor/Pressability.js.map +7 -0
  177. package/dist/cjs/vendor/Pressability.native.js +32 -0
  178. package/dist/cjs/vendor/Pressability.native.js.map +7 -0
  179. package/dist/cjs/views/FontLanguage.js +38 -0
  180. package/dist/cjs/views/FontLanguage.js.map +7 -0
  181. package/dist/cjs/views/FontLanguage.native.js +38 -0
  182. package/dist/cjs/views/FontLanguage.native.js.map +7 -0
  183. package/dist/cjs/{helpers/nativeGestureHandler.native.js → views/FontLanguage.types.js} +4 -5
  184. package/dist/cjs/views/FontLanguage.types.js.map +7 -0
  185. package/dist/cjs/views/Slot.js +64 -72
  186. package/dist/cjs/views/Slot.js.map +2 -2
  187. package/dist/cjs/views/Stack.js +4 -19
  188. package/dist/cjs/views/Stack.js.map +2 -2
  189. package/dist/cjs/views/TamaguiProvider.js +83 -0
  190. package/dist/cjs/views/TamaguiProvider.js.map +7 -0
  191. package/dist/cjs/views/Text.js +29 -29
  192. package/dist/cjs/views/Text.js.map +2 -2
  193. package/dist/cjs/views/Theme.js +43 -21
  194. package/dist/cjs/views/Theme.js.map +3 -3
  195. package/dist/cjs/views/ThemeInverse.js +25 -25
  196. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  197. package/dist/cjs/views/ThemeProvider.js +35 -23
  198. package/dist/cjs/views/ThemeProvider.js.map +3 -3
  199. package/dist/cjs/views/ThemeReset.js +26 -20
  200. package/dist/cjs/views/ThemeReset.js.map +3 -3
  201. package/dist/esm/Tamagui.js +11 -12
  202. package/dist/esm/Tamagui.js.map +2 -2
  203. package/dist/esm/addTheme.js +56 -0
  204. package/dist/esm/addTheme.js.map +7 -0
  205. package/dist/esm/config.js +44 -0
  206. package/dist/esm/config.js.map +7 -0
  207. package/dist/esm/constants/constants.js +12 -8
  208. package/dist/esm/constants/constants.js.map +2 -2
  209. package/dist/esm/constants/isDevTools.js +5 -0
  210. package/dist/esm/constants/isDevTools.js.map +7 -0
  211. package/dist/esm/constants/platform.js +25 -12
  212. package/dist/esm/constants/platform.js.map +2 -2
  213. package/dist/esm/constants/platform.native.js +28 -0
  214. package/dist/esm/constants/platform.native.js.map +7 -0
  215. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  216. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +1 -1
  217. package/dist/esm/contexts/FontLanguageContext.js +6 -0
  218. package/dist/esm/contexts/FontLanguageContext.js.map +7 -0
  219. package/dist/esm/contexts/TextAncestorContext.js +6 -0
  220. package/dist/esm/contexts/TextAncestorContext.js.map +7 -0
  221. package/dist/esm/{ThemeContext.js → contexts/ThemeContext.js} +0 -0
  222. package/dist/esm/contexts/ThemeContext.js.map +7 -0
  223. package/dist/esm/createComponent.js +840 -415
  224. package/dist/esm/createComponent.js.map +3 -3
  225. package/dist/esm/createFont.js +4 -9
  226. package/dist/esm/createFont.js.map +2 -2
  227. package/dist/esm/createShorthands.js +0 -3
  228. package/dist/esm/createShorthands.js.map +2 -2
  229. package/dist/esm/createTamagui.js +134 -165
  230. package/dist/esm/createTamagui.js.map +3 -3
  231. package/dist/esm/createTheme.js +3 -3
  232. package/dist/esm/createTheme.js.map +2 -2
  233. package/dist/esm/createTokens.js +3 -24
  234. package/dist/esm/createTokens.js.map +2 -2
  235. package/dist/esm/createVariable.js +46 -26
  236. package/dist/esm/createVariable.js.map +2 -2
  237. package/dist/esm/createVariables.js +28 -0
  238. package/dist/esm/createVariables.js.map +7 -0
  239. package/dist/esm/helpers/RNComponents.js +11 -8
  240. package/dist/esm/helpers/RNComponents.js.map +2 -2
  241. package/dist/esm/{ThemeManager.js → helpers/ThemeManager.js} +54 -61
  242. package/dist/esm/helpers/ThemeManager.js.map +7 -0
  243. package/dist/esm/helpers/areEqualSets.js +2 -4
  244. package/dist/esm/helpers/areEqualSets.js.map +1 -1
  245. package/dist/esm/helpers/assignNativePropsToWeb.js +164 -0
  246. package/dist/esm/helpers/assignNativePropsToWeb.js.map +7 -0
  247. package/dist/esm/helpers/assignNativePropsToWeb.native.js +6 -0
  248. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +7 -0
  249. package/dist/esm/helpers/cache.js +18 -0
  250. package/dist/esm/helpers/cache.js.map +7 -0
  251. package/dist/esm/helpers/calc.js +47 -0
  252. package/dist/esm/helpers/calc.js.map +7 -0
  253. package/dist/esm/helpers/createMediaStyle.js +25 -13
  254. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  255. package/dist/esm/helpers/createPropMapper.js +267 -123
  256. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  257. package/dist/esm/helpers/createProxy.js +19 -0
  258. package/dist/esm/helpers/createProxy.js.map +7 -0
  259. package/dist/esm/helpers/expandStyle.js +66 -0
  260. package/dist/esm/helpers/expandStyle.js.map +7 -0
  261. package/dist/esm/helpers/expandStyles.js +89 -0
  262. package/dist/esm/helpers/expandStyles.js.map +7 -0
  263. package/dist/esm/helpers/extendStaticConfig.js +34 -28
  264. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  265. package/dist/esm/helpers/fixNativeShadow.js +2 -4
  266. package/dist/esm/helpers/fixNativeShadow.js.map +1 -1
  267. package/dist/esm/helpers/getAnimationDriver.js +8 -0
  268. package/dist/esm/helpers/getAnimationDriver.js.map +7 -0
  269. package/dist/esm/helpers/getExpandedShorthands.js +2 -5
  270. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  271. package/dist/esm/helpers/{getTextSize.js → getFont.js} +17 -9
  272. package/dist/esm/helpers/getFont.js.map +7 -0
  273. package/dist/esm/helpers/getFontLanguage.js +5 -0
  274. package/dist/esm/helpers/getFontLanguage.js.map +7 -0
  275. package/dist/esm/helpers/getSize.js +16 -10
  276. package/dist/esm/helpers/getSize.js.map +2 -2
  277. package/dist/esm/helpers/getSplitStyles.js +498 -194
  278. package/dist/esm/helpers/getSplitStyles.js.map +3 -3
  279. package/dist/esm/helpers/getStackSize.js +22 -0
  280. package/dist/esm/helpers/getStackSize.js.map +7 -0
  281. package/dist/esm/helpers/getStylesAtomic.js +174 -108
  282. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  283. package/dist/esm/helpers/getStylesAtomic.native.js +0 -3
  284. package/dist/esm/helpers/getStylesAtomic.native.js.map +1 -1
  285. package/dist/esm/helpers/getThemeCSSRules.js +79 -0
  286. package/dist/esm/helpers/getThemeCSSRules.js.map +7 -0
  287. package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
  288. package/dist/esm/helpers/getThemeCSSRules.native.js.map +7 -0
  289. package/dist/esm/helpers/getVariantExtras.js +64 -0
  290. package/dist/esm/helpers/getVariantExtras.js.map +7 -0
  291. package/dist/esm/helpers/insertStyleRule.js +85 -49
  292. package/dist/esm/helpers/insertStyleRule.js.map +3 -3
  293. package/dist/esm/helpers/isObj.js +1 -3
  294. package/dist/esm/helpers/isObj.js.map +1 -1
  295. package/dist/esm/helpers/isTamaguiComponent.js +13 -0
  296. package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
  297. package/dist/esm/helpers/isTamaguiElement.js +4 -6
  298. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  299. package/dist/esm/helpers/matchMedia.js +6 -7
  300. package/dist/esm/helpers/matchMedia.js.map +2 -2
  301. package/dist/esm/helpers/matchMedia.native.js +1 -3
  302. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  303. package/dist/esm/helpers/mergeProps.js +30 -0
  304. package/dist/esm/helpers/mergeProps.js.map +7 -0
  305. package/dist/esm/helpers/mergeTransform.js +17 -0
  306. package/dist/esm/helpers/mergeTransform.js.map +7 -0
  307. package/dist/esm/helpers/normalizeColor.js +49 -0
  308. package/dist/esm/helpers/normalizeColor.js.map +7 -0
  309. package/dist/esm/helpers/normalizeValueWithProperty.js +98 -0
  310. package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
  311. package/dist/esm/helpers/proxyThemeVariables.js +3 -5
  312. package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
  313. package/dist/esm/helpers/pseudoDescriptors.js +18 -0
  314. package/dist/esm/helpers/pseudoDescriptors.js.map +7 -0
  315. package/dist/esm/helpers/registerCSSVariable.js +14 -0
  316. package/dist/esm/helpers/registerCSSVariable.js.map +7 -0
  317. package/dist/esm/helpers/startTransition.js +6 -0
  318. package/dist/esm/helpers/startTransition.js.map +7 -0
  319. package/dist/esm/helpers/themeable.js +11 -9
  320. package/dist/esm/helpers/themeable.js.map +2 -2
  321. package/dist/esm/helpers/themes.js +54 -0
  322. package/dist/esm/helpers/themes.js.map +7 -0
  323. package/dist/esm/helpers/useShallowSetState.js +20 -0
  324. package/dist/esm/helpers/useShallowSetState.js.map +7 -0
  325. package/dist/esm/helpers/validate.js +0 -75
  326. package/dist/esm/helpers/validate.js.map +3 -3
  327. package/dist/esm/helpers/withStaticProperties.js +2 -4
  328. package/dist/esm/helpers/withStaticProperties.js.map +1 -1
  329. package/dist/esm/hooks/getThemeUnwrapped.js +12 -0
  330. package/dist/esm/hooks/getThemeUnwrapped.js.map +7 -0
  331. package/dist/esm/hooks/useConstant.js +4 -4
  332. package/dist/esm/hooks/useConstant.js.map +2 -2
  333. package/dist/esm/hooks/useElementLayout.js +66 -0
  334. package/dist/esm/hooks/useElementLayout.js.map +7 -0
  335. package/dist/esm/hooks/useId.js +1 -31
  336. package/dist/esm/hooks/useId.js.map +2 -2
  337. package/dist/esm/hooks/useIsMounted.js +1 -4
  338. package/dist/esm/hooks/useIsMounted.js.map +2 -2
  339. package/dist/esm/hooks/useIsTouchDevice.js +5 -13
  340. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  341. package/dist/esm/hooks/useMedia.js +159 -113
  342. package/dist/esm/hooks/useMedia.js.map +3 -3
  343. package/dist/esm/hooks/usePressable.js +2 -4
  344. package/dist/esm/hooks/usePressable.js.map +1 -1
  345. package/dist/esm/hooks/useSafeRef.js +34 -0
  346. package/dist/esm/hooks/useSafeRef.js.map +7 -0
  347. package/dist/esm/hooks/useServerHooks.js +11 -0
  348. package/dist/esm/hooks/useServerHooks.js.map +7 -0
  349. package/dist/esm/hooks/useTheme.js +161 -111
  350. package/dist/esm/hooks/useTheme.js.map +3 -3
  351. package/dist/esm/hooks/useUnmountEffect.js +0 -3
  352. package/dist/esm/hooks/useUnmountEffect.js.map +1 -1
  353. package/dist/esm/index.js +44 -18
  354. package/dist/esm/index.js.map +2 -2
  355. package/dist/esm/inject-styles.js +16 -0
  356. package/dist/esm/inject-styles.js.map +7 -0
  357. package/dist/esm/injectStyles.js +16 -0
  358. package/dist/esm/injectStyles.js.map +7 -0
  359. package/dist/esm/insertFont.js +67 -0
  360. package/dist/esm/insertFont.js.map +7 -0
  361. package/dist/esm/react-native.js +3 -0
  362. package/dist/esm/react-native.js.map +7 -0
  363. package/dist/esm/setupReactNative.js +12 -0
  364. package/dist/esm/setupReactNative.js.map +7 -0
  365. package/dist/esm/static.js +1 -15
  366. package/dist/esm/static.js.map +2 -2
  367. package/dist/esm/styled.js +50 -19
  368. package/dist/esm/styled.js.map +2 -2
  369. package/dist/esm/types-rnw.js +0 -0
  370. package/dist/esm/types-rnw.js.map +0 -0
  371. package/dist/esm/types.js +0 -0
  372. package/dist/esm/types.js.map +0 -0
  373. package/dist/esm/updateTheme.js +23 -0
  374. package/dist/esm/updateTheme.js.map +7 -0
  375. package/dist/esm/vendor/Pressability.js +7 -0
  376. package/dist/esm/vendor/Pressability.js.map +7 -0
  377. package/dist/esm/vendor/Pressability.native.js +7 -0
  378. package/dist/esm/vendor/Pressability.native.js.map +7 -0
  379. package/dist/esm/views/FontLanguage.js +14 -0
  380. package/dist/esm/views/FontLanguage.js.map +7 -0
  381. package/dist/esm/views/FontLanguage.native.js +14 -0
  382. package/dist/esm/views/FontLanguage.native.js.map +7 -0
  383. package/dist/esm/views/FontLanguage.types.js +1 -0
  384. package/dist/{cjs/defaultComponentState.js.map → esm/views/FontLanguage.types.js.map} +0 -0
  385. package/dist/esm/views/Slot.js +55 -37
  386. package/dist/esm/views/Slot.js.map +2 -2
  387. package/dist/esm/views/Stack.js +0 -0
  388. package/dist/esm/views/Stack.js.map +2 -2
  389. package/dist/esm/views/TamaguiProvider.js +53 -0
  390. package/dist/esm/views/TamaguiProvider.js.map +7 -0
  391. package/dist/esm/views/Text.js +14 -5
  392. package/dist/esm/views/Text.js.map +2 -2
  393. package/dist/esm/views/Theme.js +35 -19
  394. package/dist/esm/views/Theme.js.map +3 -3
  395. package/dist/esm/views/ThemeInverse.js +22 -20
  396. package/dist/esm/views/ThemeInverse.js.map +2 -2
  397. package/dist/esm/views/ThemeProvider.js +28 -21
  398. package/dist/esm/views/ThemeProvider.js.map +2 -2
  399. package/dist/esm/views/ThemeReset.js +21 -20
  400. package/dist/esm/views/ThemeReset.js.map +2 -2
  401. package/package.json +52 -16
  402. package/reset.css +25 -4
  403. package/src/Tamagui.ts +48 -0
  404. package/src/addTheme.ts +68 -0
  405. package/src/config.ts +44 -0
  406. package/src/constants/constants.ts +19 -0
  407. package/src/constants/isDevTools.ts +6 -0
  408. package/src/contexts/ButtonInsideButtonContext.tsx +3 -0
  409. package/src/contexts/FontLanguageContext.tsx +5 -0
  410. package/src/contexts/TextAncestorContext.tsx +3 -0
  411. package/src/contexts/ThemeContext.tsx +5 -0
  412. package/src/createComponent.tsx +1460 -0
  413. package/src/createFont.ts +29 -0
  414. package/src/createShorthands.ts +7 -0
  415. package/src/createTamagui.ts +226 -0
  416. package/src/createTheme.ts +13 -0
  417. package/src/createTokens.ts +35 -0
  418. package/src/createVariable.ts +83 -0
  419. package/src/createVariables.ts +42 -0
  420. package/src/helpers/RNComponents.tsx +14 -0
  421. package/src/helpers/ThemeManager.tsx +227 -0
  422. package/src/helpers/areEqualSets.tsx +9 -0
  423. package/src/helpers/assignNativePropsToWeb.native.tsx +1 -0
  424. package/src/helpers/cache.ts +18 -0
  425. package/src/helpers/createMediaStyle.ts +55 -0
  426. package/src/helpers/createPropMapper.ts +526 -0
  427. package/src/helpers/createProxy.ts +16 -0
  428. package/src/helpers/expandStyle.ts +81 -0
  429. package/src/helpers/expandStyles.ts +106 -0
  430. package/src/helpers/extendStaticConfig.ts +75 -0
  431. package/src/helpers/fixNativeShadow.tsx +2 -0
  432. package/src/helpers/getAnimationDriver.tsx +5 -0
  433. package/src/helpers/getExpandedShorthands.ts +15 -0
  434. package/src/helpers/getFontLanguage.ts +2 -0
  435. package/src/helpers/getSize.ts +22 -0
  436. package/src/helpers/getSplitStyles.tsx +844 -0
  437. package/src/helpers/getStylesAtomic.native.ts +3 -0
  438. package/src/helpers/getStylesAtomic.ts +272 -0
  439. package/src/helpers/getThemeCSSRules.native.ts +3 -0
  440. package/src/helpers/getThemeCSSRules.ts +105 -0
  441. package/src/helpers/getVariantExtras.tsx +85 -0
  442. package/src/helpers/insertStyleRule.tsx +158 -0
  443. package/src/helpers/isObj.ts +1 -0
  444. package/src/helpers/isTamaguiComponent.tsx +15 -0
  445. package/src/helpers/isTamaguiElement.tsx +12 -0
  446. package/src/helpers/matchMedia.native.ts +6 -0
  447. package/src/helpers/matchMedia.ts +17 -0
  448. package/src/helpers/mergeProps.ts +56 -0
  449. package/src/helpers/mergeTransform.ts +16 -0
  450. package/src/helpers/normalizeColor.ts +53 -0
  451. package/src/helpers/normalizeValueWithProperty.ts +110 -0
  452. package/src/helpers/proxyThemeVariables.tsx +15 -0
  453. package/src/helpers/pseudoDescriptors.ts +18 -0
  454. package/src/helpers/registerCSSVariable.ts +11 -0
  455. package/src/helpers/themeable.tsx +45 -0
  456. package/src/helpers/themes.ts +69 -0
  457. package/src/helpers/useShallowSetState.tsx +19 -0
  458. package/src/helpers/withStaticProperties.tsx +7 -0
  459. package/src/hooks/getThemeUnwrapped.tsx +7 -0
  460. package/src/hooks/useElementLayout.tsx +90 -0
  461. package/src/hooks/useId.tsx +1 -0
  462. package/src/hooks/useIsTouchDevice.tsx +6 -0
  463. package/src/hooks/useMedia.tsx +260 -0
  464. package/src/hooks/useSafeRef.ts +48 -0
  465. package/src/hooks/useServerHooks.tsx +12 -0
  466. package/src/hooks/useTheme.tsx +300 -0
  467. package/src/index.ts +74 -0
  468. package/src/inject-styles.ts +20 -0
  469. package/src/insertFont.ts +70 -0
  470. package/src/setupReactNative.ts +9 -0
  471. package/src/static.ts +5 -0
  472. package/src/styled.tsx +204 -0
  473. package/src/types-rnw.tsx +162 -0
  474. package/src/types.tsx +1324 -0
  475. package/src/updateTheme.ts +23 -0
  476. package/src/vendor/Pressability.native.tsx +3 -0
  477. package/src/vendor/Pressability.tsx +2 -0
  478. package/src/views/FontLanguage.native.tsx +10 -0
  479. package/src/views/FontLanguage.tsx +18 -0
  480. package/src/views/FontLanguage.types.ts +13 -0
  481. package/src/views/Slot.tsx +147 -0
  482. package/src/views/Stack.tsx +24 -0
  483. package/src/views/TamaguiProvider.tsx +56 -0
  484. package/src/views/Text.tsx +81 -0
  485. package/src/views/Theme.tsx +72 -0
  486. package/src/views/ThemeInverse.tsx +33 -0
  487. package/src/views/ThemeProvider.tsx +63 -0
  488. package/src/views/ThemeReset.tsx +43 -0
  489. package/types/Tamagui.d.ts +11 -11
  490. package/types/addTheme.d.ts +11 -0
  491. package/types/config.d.ts +47 -0
  492. package/types/constants/constants.d.ts +15 -4
  493. package/types/constants/isDevTools.d.ts +2 -0
  494. package/types/constants/platform.d.ts +7 -6
  495. package/types/constants/platform.native.d.ts +13 -0
  496. package/types/contexts/FontLanguageContext.d.ts +5 -0
  497. package/types/contexts/TextAncestorContext.d.ts +3 -0
  498. package/types/{ThemeContext.d.ts → contexts/ThemeContext.d.ts} +1 -1
  499. package/types/createComponent.d.ts +17 -15
  500. package/types/createShorthands.d.ts +2 -1
  501. package/types/createTamagui.d.ts +2 -17
  502. package/types/createTheme.d.ts +1 -1
  503. package/types/createTokens.d.ts +5 -6
  504. package/types/createVariable.d.ts +24 -12
  505. package/types/createVariables.d.ts +10 -0
  506. package/types/helpers/RNComponents.d.ts +1 -1
  507. package/types/helpers/ThemeManager.d.ts +45 -0
  508. package/types/helpers/assignNativePropsToWeb.d.ts +2 -0
  509. package/types/helpers/assignNativePropsToWeb.native.d.ts +2 -0
  510. package/types/helpers/cache.d.ts +12 -0
  511. package/types/helpers/calc.d.ts +1 -0
  512. package/types/helpers/createMediaStyle.d.ts +2 -4
  513. package/types/helpers/createPropMapper.d.ts +6 -3
  514. package/types/helpers/createProxy.d.ts +2 -0
  515. package/types/helpers/expandStyle.d.ts +6 -0
  516. package/types/helpers/expandStyles.d.ts +26 -0
  517. package/types/helpers/getAnimationDriver.d.ts +6 -0
  518. package/types/helpers/getFont.d.ts +3 -0
  519. package/types/helpers/getFontLanguage.d.ts +2 -0
  520. package/types/helpers/getSize.d.ts +3 -2
  521. package/types/helpers/getSplitStyles.d.ts +15 -12
  522. package/types/helpers/getStackSize.d.ts +8 -0
  523. package/types/helpers/getStylesAtomic.d.ts +14 -23
  524. package/types/helpers/getThemeCSSRules.d.ts +8 -0
  525. package/types/helpers/getThemeCSSRules.native.d.ts +2 -0
  526. package/types/helpers/getVariantExtras.d.ts +5 -0
  527. package/types/helpers/insertStyleRule.d.ts +8 -4
  528. package/types/helpers/isTamaguiComponent.d.ts +5 -0
  529. package/types/helpers/isTamaguiElement.d.ts +5 -1
  530. package/types/helpers/matchMedia.d.ts +1 -1
  531. package/types/helpers/mergeProps.d.ts +17 -0
  532. package/types/helpers/mergeTransform.d.ts +7 -0
  533. package/types/helpers/normalizeColor.d.ts +3 -0
  534. package/types/helpers/normalizeValueWithProperty.d.ts +7 -0
  535. package/types/helpers/pseudoDescriptors.d.ts +16 -0
  536. package/types/helpers/registerCSSVariable.d.ts +5 -0
  537. package/types/helpers/startTransition.d.ts +3 -0
  538. package/types/helpers/themes.d.ts +4 -0
  539. package/types/helpers/useShallowSetState.d.ts +3 -0
  540. package/types/helpers/validate.d.ts +0 -3
  541. package/types/hooks/getThemeUnwrapped.d.ts +3 -0
  542. package/types/hooks/useElementLayout.d.ts +27 -0
  543. package/types/hooks/useId.d.ts +1 -8
  544. package/types/hooks/useMedia.d.ts +22 -6
  545. package/types/hooks/useMedia.test.d.ts +1 -0
  546. package/types/hooks/usePressablePressResponder.d.ts +84 -0
  547. package/types/hooks/useSafeRef.d.ts +4 -0
  548. package/types/hooks/useServerHooks.d.ts +4 -0
  549. package/types/hooks/useTheme.d.ts +21 -31
  550. package/types/index.d.ts +25 -14
  551. package/types/inject-styles.d.ts +7 -0
  552. package/types/injectStyles.d.ts +7 -0
  553. package/types/insertFont.d.ts +9 -0
  554. package/types/react-native.d.ts +8 -0
  555. package/types/setupReactNative.d.ts +3 -0
  556. package/types/static.d.ts +1 -15
  557. package/types/styled.d.ts +7 -3
  558. package/types/types.d.ts +311 -106
  559. package/types/updateTheme.d.ts +9 -0
  560. package/types/vendor/Pressability.d.ts +3 -0
  561. package/types/vendor/Pressability.native.d.ts +3 -0
  562. package/types/views/AbsoluteFill.d.ts +5 -0
  563. package/types/views/AbsoluteFill.native.d.ts +3 -0
  564. package/types/views/FontLanguage.d.ts +4 -0
  565. package/types/views/FontLanguage.native.d.ts +4 -0
  566. package/types/views/FontLanguage.types.d.ts +11 -0
  567. package/types/views/Slot.d.ts +5 -4
  568. package/types/views/Stack.d.ts +1 -1
  569. package/types/views/TamaguiProvider.d.ts +4 -0
  570. package/types/views/Text.d.ts +1 -1
  571. package/types/views/Theme.d.ts +3 -9
  572. package/types/views/ThemeInverse.d.ts +4 -8
  573. package/types/views/ThemeProvider.d.ts +2 -1
  574. package/dist/cjs/ThemeContext.js.map +0 -7
  575. package/dist/cjs/ThemeManager.js.map +0 -7
  576. package/dist/cjs/conf.js.map +0 -7
  577. package/dist/cjs/constants/rnw.js +0 -46
  578. package/dist/cjs/constants/rnw.js.map +0 -7
  579. package/dist/cjs/defaultComponentState.js +0 -1
  580. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -87
  581. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
  582. package/dist/cjs/helpers/createShallowUpdate.js +0 -55
  583. package/dist/cjs/helpers/createShallowUpdate.js.map +0 -7
  584. package/dist/cjs/helpers/createTamaguiProvider.js +0 -93
  585. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  586. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -53
  587. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  588. package/dist/cjs/helpers/getButtonSize.js +0 -45
  589. package/dist/cjs/helpers/getButtonSize.js.map +0 -7
  590. package/dist/cjs/helpers/getTextSize.js.map +0 -7
  591. package/dist/cjs/helpers/nativeGestureHandler.js.map +0 -7
  592. package/dist/cjs/helpers/nativeGestureHandler.native.js.map +0 -7
  593. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +0 -7
  594. package/dist/cjs/hooks/useFeatures.js +0 -228
  595. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  596. package/dist/cjs/hooks/usePrevious.js +0 -1
  597. package/dist/cjs/hooks/usePrevious.js.map +0 -7
  598. package/dist/cjs/nativeGestureHandler.native.js.map +0 -7
  599. package/dist/cjs/views/TextAncestorContext.js +0 -45
  600. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  601. package/dist/esm/ThemeContext.js.map +0 -7
  602. package/dist/esm/ThemeManager.js.map +0 -7
  603. package/dist/esm/conf.js +0 -36
  604. package/dist/esm/conf.js.map +0 -7
  605. package/dist/esm/constants/rnw.js +0 -24
  606. package/dist/esm/constants/rnw.js.map +0 -7
  607. package/dist/esm/defaultComponentState.js +0 -1
  608. package/dist/esm/defaultComponentState.js.map +0 -7
  609. package/dist/esm/helpers/addStylesUsingClassname.js +0 -64
  610. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
  611. package/dist/esm/helpers/createShallowUpdate.js +0 -19
  612. package/dist/esm/helpers/createShallowUpdate.js.map +0 -7
  613. package/dist/esm/helpers/createTamaguiProvider.js +0 -40
  614. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  615. package/dist/esm/helpers/fixNativeShadow.native.js +0 -32
  616. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  617. package/dist/esm/helpers/getButtonSize.js +0 -24
  618. package/dist/esm/helpers/getButtonSize.js.map +0 -7
  619. package/dist/esm/helpers/getTextSize.js.map +0 -7
  620. package/dist/esm/helpers/nativeGestureHandler.js +0 -7
  621. package/dist/esm/helpers/nativeGestureHandler.js.map +0 -7
  622. package/dist/esm/helpers/nativeGestureHandler.native.js +0 -2
  623. package/dist/esm/helpers/nativeGestureHandler.native.js.map +0 -7
  624. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -14
  625. package/dist/esm/helpers/wrapThemeManagerContext.js.map +0 -7
  626. package/dist/esm/hooks/useFeatures.js +0 -173
  627. package/dist/esm/hooks/useFeatures.js.map +0 -7
  628. package/dist/esm/hooks/usePrevious.js +0 -1
  629. package/dist/esm/hooks/usePrevious.js.map +0 -7
  630. package/dist/esm/nativeGestureHandler.native.js +0 -2
  631. package/dist/esm/nativeGestureHandler.native.js.map +0 -7
  632. package/dist/esm/views/TextAncestorContext.js +0 -18
  633. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  634. package/dist/jsx/Tamagui.js +0 -41
  635. package/dist/jsx/ThemeContext.js +0 -5
  636. package/dist/jsx/ThemeManager.js +0 -186
  637. package/dist/jsx/conf.js +0 -35
  638. package/dist/jsx/constants/constants.js +0 -17
  639. package/dist/jsx/constants/platform.js +0 -25
  640. package/dist/jsx/constants/rnw.js +0 -23
  641. package/dist/jsx/contexts/ButtonInsideButtonContext.js +0 -5
  642. package/dist/jsx/createComponent.js +0 -636
  643. package/dist/jsx/createFont.js +0 -27
  644. package/dist/jsx/createShorthands.js +0 -9
  645. package/dist/jsx/createTamagui.js +0 -201
  646. package/dist/jsx/createTheme.js +0 -6
  647. package/dist/jsx/createTokens.js +0 -28
  648. package/dist/jsx/createVariable.js +0 -48
  649. package/dist/jsx/defaultComponentState.js +0 -0
  650. package/dist/jsx/helpers/RNComponents.js +0 -11
  651. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -63
  652. package/dist/jsx/helpers/areEqualSets.js +0 -15
  653. package/dist/jsx/helpers/createMediaStyle.js +0 -30
  654. package/dist/jsx/helpers/createPropMapper.js +0 -237
  655. package/dist/jsx/helpers/createShallowUpdate.js +0 -18
  656. package/dist/jsx/helpers/createTamaguiProvider.js +0 -34
  657. package/dist/jsx/helpers/extendStaticConfig.js +0 -61
  658. package/dist/jsx/helpers/fixNativeShadow.js +0 -7
  659. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -31
  660. package/dist/jsx/helpers/getButtonSize.js +0 -23
  661. package/dist/jsx/helpers/getExpandedShorthands.js +0 -18
  662. package/dist/jsx/helpers/getSize.js +0 -12
  663. package/dist/jsx/helpers/getSplitStyles.js +0 -322
  664. package/dist/jsx/helpers/getStylesAtomic.js +0 -130
  665. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
  666. package/dist/jsx/helpers/getTextSize.js +0 -33
  667. package/dist/jsx/helpers/insertStyleRule.js +0 -94
  668. package/dist/jsx/helpers/isObj.js +0 -6
  669. package/dist/jsx/helpers/isTamaguiElement.js +0 -10
  670. package/dist/jsx/helpers/matchMedia.js +0 -17
  671. package/dist/jsx/helpers/matchMedia.native.js +0 -8
  672. package/dist/jsx/helpers/nativeGestureHandler.js +0 -6
  673. package/dist/jsx/helpers/nativeGestureHandler.native.js +0 -1
  674. package/dist/jsx/helpers/proxyThemeVariables.js +0 -17
  675. package/dist/jsx/helpers/themeable.js +0 -24
  676. package/dist/jsx/helpers/validate.js +0 -75
  677. package/dist/jsx/helpers/withStaticProperties.js +0 -9
  678. package/dist/jsx/helpers/wrapThemeManagerContext.js +0 -10
  679. package/dist/jsx/hooks/useConstant.js +0 -14
  680. package/dist/jsx/hooks/useFeatures.js +0 -167
  681. package/dist/jsx/hooks/useId.js +0 -34
  682. package/dist/jsx/hooks/useIsMounted.js +0 -18
  683. package/dist/jsx/hooks/useIsTouchDevice.js +0 -16
  684. package/dist/jsx/hooks/useMedia.js +0 -158
  685. package/dist/jsx/hooks/usePressable.js +0 -13
  686. package/dist/jsx/hooks/usePrevious.js +0 -0
  687. package/dist/jsx/hooks/useTheme.js +0 -177
  688. package/dist/jsx/hooks/useUnmountEffect.js +0 -10
  689. package/dist/jsx/index.js +0 -54
  690. package/dist/jsx/nativeGestureHandler.native.js +0 -1
  691. package/dist/jsx/static.js +0 -16
  692. package/dist/jsx/styled.js +0 -47
  693. package/dist/jsx/types-rnw.js +0 -0
  694. package/dist/jsx/types.js +0 -0
  695. package/dist/jsx/views/Slot.js +0 -75
  696. package/dist/jsx/views/Stack.js +0 -12
  697. package/dist/jsx/views/Text.js +0 -56
  698. package/dist/jsx/views/TextAncestorContext.js +0 -15
  699. package/dist/jsx/views/Theme.js +0 -31
  700. package/dist/jsx/views/ThemeInverse.js +0 -27
  701. package/dist/jsx/views/ThemeProvider.js +0 -35
  702. package/dist/jsx/views/ThemeReset.js +0 -34
  703. package/types/Tamagui.d.ts.map +0 -1
  704. package/types/ThemeContext.d.ts.map +0 -1
  705. package/types/ThemeManager.d.ts +0 -49
  706. package/types/ThemeManager.d.ts.map +0 -1
  707. package/types/conf.d.ts +0 -27
  708. package/types/conf.d.ts.map +0 -1
  709. package/types/constants/constants.d.ts.map +0 -1
  710. package/types/constants/platform.d.ts.map +0 -1
  711. package/types/constants/rnw.d.ts +0 -2
  712. package/types/constants/rnw.d.ts.map +0 -1
  713. package/types/contexts/ButtonInsideButtonContext.d.ts.map +0 -1
  714. package/types/createComponent.d.ts.map +0 -1
  715. package/types/createFont.d.ts.map +0 -1
  716. package/types/createShorthands.d.ts.map +0 -1
  717. package/types/createTamagui.d.ts.map +0 -1
  718. package/types/createTheme.d.ts.map +0 -1
  719. package/types/createTokens.d.ts.map +0 -1
  720. package/types/createVariable.d.ts.map +0 -1
  721. package/types/defaultComponentState.d.ts +0 -1
  722. package/types/defaultComponentState.d.ts.map +0 -1
  723. package/types/helpers/RNComponents.d.ts.map +0 -1
  724. package/types/helpers/addStylesUsingClassname.d.ts +0 -3
  725. package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
  726. package/types/helpers/areEqualSets.d.ts.map +0 -1
  727. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  728. package/types/helpers/createPropMapper.d.ts.map +0 -1
  729. package/types/helpers/createShallowUpdate.d.ts +0 -4
  730. package/types/helpers/createShallowUpdate.d.ts.map +0 -1
  731. package/types/helpers/createTamaguiProvider.d.ts +0 -7
  732. package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
  733. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  734. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  735. package/types/helpers/fixNativeShadow.native.d.ts +0 -3
  736. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  737. package/types/helpers/getButtonSize.d.ts +0 -8
  738. package/types/helpers/getButtonSize.d.ts.map +0 -1
  739. package/types/helpers/getExpandedShorthands.d.ts.map +0 -1
  740. package/types/helpers/getSize.d.ts.map +0 -1
  741. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  742. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  743. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  744. package/types/helpers/getTextSize.d.ts +0 -3
  745. package/types/helpers/getTextSize.d.ts.map +0 -1
  746. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  747. package/types/helpers/isObj.d.ts.map +0 -1
  748. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  749. package/types/helpers/matchMedia.d.ts.map +0 -1
  750. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  751. package/types/helpers/nativeGestureHandler.d.ts +0 -2
  752. package/types/helpers/nativeGestureHandler.d.ts.map +0 -1
  753. package/types/helpers/nativeGestureHandler.native.d.ts +0 -2
  754. package/types/helpers/nativeGestureHandler.native.d.ts.map +0 -1
  755. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  756. package/types/helpers/themeable.d.ts.map +0 -1
  757. package/types/helpers/validate.d.ts.map +0 -1
  758. package/types/helpers/withStaticProperties.d.ts.map +0 -1
  759. package/types/helpers/wrapThemeManagerContext.d.ts +0 -3
  760. package/types/helpers/wrapThemeManagerContext.d.ts.map +0 -1
  761. package/types/hooks/useConstant.d.ts.map +0 -1
  762. package/types/hooks/useFeatures.d.ts +0 -18
  763. package/types/hooks/useFeatures.d.ts.map +0 -1
  764. package/types/hooks/useId.d.ts.map +0 -1
  765. package/types/hooks/useIsMounted.d.ts.map +0 -1
  766. package/types/hooks/useIsTouchDevice.d.ts.map +0 -1
  767. package/types/hooks/useMedia.d.ts.map +0 -1
  768. package/types/hooks/usePressable.d.ts.map +0 -1
  769. package/types/hooks/usePrevious.d.ts +0 -1
  770. package/types/hooks/usePrevious.d.ts.map +0 -1
  771. package/types/hooks/useTheme.d.ts.map +0 -1
  772. package/types/hooks/useUnmountEffect.d.ts.map +0 -1
  773. package/types/index.d.ts.map +0 -1
  774. package/types/nativeGestureHandler.native.d.ts +0 -2
  775. package/types/nativeGestureHandler.native.d.ts.map +0 -1
  776. package/types/static.d.ts.map +0 -1
  777. package/types/styled.d.ts.map +0 -1
  778. package/types/types-rnw.d.ts.map +0 -1
  779. package/types/types.d.ts.map +0 -1
  780. package/types/views/Slot.d.ts.map +0 -1
  781. package/types/views/Stack.d.ts.map +0 -1
  782. package/types/views/Text.d.ts.map +0 -1
  783. package/types/views/TextAncestorContext.d.ts +0 -5
  784. package/types/views/TextAncestorContext.d.ts.map +0 -1
  785. package/types/views/Theme.d.ts.map +0 -1
  786. package/types/views/ThemeInverse.d.ts.map +0 -1
  787. package/types/views/ThemeProvider.d.ts.map +0 -1
  788. package/types/views/ThemeReset.d.ts.map +0 -1
package/src/types.tsx ADDED
@@ -0,0 +1,1324 @@
1
+ // TODO split this into own package @tamagui/types to share with animations packages
2
+
3
+ import type {
4
+ GestureResponderEvent,
5
+ Image,
6
+ PressableProps,
7
+ TextProps as ReactTextProps,
8
+ Text,
9
+ TextInput,
10
+ TextStyle,
11
+ View,
12
+ ViewProps,
13
+ ViewStyle,
14
+ } from '@tamagui/types-react-native'
15
+ import type { Properties } from 'csstype'
16
+ import type {
17
+ Component,
18
+ ForwardRefExoticComponent,
19
+ FunctionComponent,
20
+ ReactNode,
21
+ RefAttributes,
22
+ RefObject,
23
+ } from 'react'
24
+
25
+ import type { Variable } from './createVariable'
26
+ import type { ResolveVariableTypes } from './helpers/createPropMapper'
27
+ import type { TamaguiReactElement } from './static'
28
+ import type { RNWTextProps, RNWViewProps } from './types-rnw'
29
+ import type { FontLanguageProps } from './views/FontLanguage.types'
30
+ import type { ThemeProviderProps } from './views/ThemeProvider'
31
+
32
+ export type SpaceDirection = 'vertical' | 'horizontal' | 'both'
33
+
34
+ export type TamaguiElement = HTMLElement | View
35
+
36
+ export type DebugProp = boolean | 'break' | 'verbose'
37
+
38
+ // base props that are accepted by createComponent (additional to react-native-web)
39
+
40
+ export type TamaguiComponentPropsBase = {
41
+ hitSlop?: PressableProps['hitSlop']
42
+ asChild?: boolean
43
+ space?: SpaceTokens | null
44
+ spaceDirection?: SpaceDirection
45
+ separator?: ReactNode
46
+ dangerouslySetInnerHTML?: { __html: string }
47
+ animation?: AnimationProp
48
+ animateOnly?: string[]
49
+ children?: any | any[]
50
+ debug?: DebugProp
51
+ disabled?: boolean
52
+ className?: string
53
+ themeShallow?: boolean
54
+ id?: string
55
+ tag?: string
56
+ theme?: ThemeName | null
57
+ componentName?: string
58
+ /**
59
+ * Forces the pseudo style state to be on
60
+ */
61
+ forceStyle?: 'hover' | 'press' | 'focus'
62
+ onHoverIn?: (e: MouseEvent) => any
63
+ onHoverOut?: (e: MouseEvent) => any
64
+ onPress?: (e: GestureResponderEvent) => any
65
+ onPressIn?: (e: GestureResponderEvent) => any
66
+ onPressOut?: (e: GestureResponderEvent) => any
67
+ // WEB ONLY
68
+ onMouseEnter?: (e: MouseEvent) => any
69
+ onMouseLeave?: (e: MouseEvent) => any
70
+ onMouseDown?: (e: MouseEvent) => any
71
+ }
72
+
73
+ export type ReactComponentWithRef<Props, Ref> = ForwardRefExoticComponent<
74
+ Props & RefAttributes<Ref>
75
+ >
76
+
77
+ export type ConfigListener = (conf: TamaguiInternalConfig) => void
78
+
79
+ // to prevent things from going circular, hoisting some types in this file
80
+ // to generally order them as building up towards TamaguiConfig
81
+
82
+ export type VariableVal = number | string | Variable
83
+ export type VariableColorVal = string | Variable
84
+
85
+ type GenericKey = string | number | symbol
86
+
87
+ export interface CreateTokens<Val extends VariableVal = VariableVal> {
88
+ color: { [key: GenericKey]: Val }
89
+ space: { [key: GenericKey]: Val }
90
+ size: { [key: GenericKey]: Val }
91
+ radius: { [key: GenericKey]: Val }
92
+ zIndex: { [key: GenericKey]: Val }
93
+ }
94
+
95
+ export type TamaguiBaseTheme = {
96
+ // defined for our tamagui kit , we could do this inside `tamagui`
97
+ // but maybe helpful to have some sort of universally shared things +
98
+ // + enforce if they want their own, redefine in their design sys
99
+ background: VariableColorVal
100
+ backgroundHover: VariableColorVal
101
+ backgroundPress: VariableColorVal
102
+ backgroundFocus: VariableColorVal
103
+ color: VariableColorVal
104
+ colorHover: VariableColorVal
105
+ colorPress: VariableColorVal
106
+ colorFocus: VariableColorVal
107
+ borderColor: VariableColorVal
108
+ borderColorHover: VariableColorVal
109
+ borderColorPress: VariableColorVal
110
+ borderColorFocus: VariableColorVal
111
+ shadowColor: VariableColorVal
112
+ shadowColorHover: VariableColorVal
113
+ shadowColorPress: VariableColorVal
114
+ shadowColorFocus: VariableColorVal
115
+ }
116
+
117
+ type GenericTokens = CreateTokens
118
+ type GenericThemes = {
119
+ [key: string]:
120
+ | Partial<TamaguiBaseTheme> & {
121
+ [key: string]: VariableVal
122
+ }
123
+ }
124
+
125
+ type AllStyleKeys = keyof StackStylePropsBase | keyof TextStylePropsBase
126
+
127
+ export type CreateShorthands = {
128
+ [key: string]: AllStyleKeys
129
+ }
130
+
131
+ export type GenericShorthands = {}
132
+
133
+ // sm: { minWidth: 100 }
134
+ type GenericMedia = {
135
+ [key: string]: {
136
+ [key: string]: number | string
137
+ }
138
+ }
139
+
140
+ export type GenericFonts = Record<string, GenericFont>
141
+
142
+ type GenericAnimations = {
143
+ [key: string]:
144
+ | string
145
+ | {
146
+ [key: string]: any
147
+ }
148
+ | any[]
149
+ }
150
+
151
+ // this is the "main" typed object, which users re-define
152
+ // (internal) keep all types directly on this object and reference them from elsewhere
153
+ //
154
+ // const config = createTamagui(...)
155
+ // type MyConfig = typeof config
156
+ // declare module 'tamagui' {
157
+ // export interface TamaguiCustomConfig extends MyConfig {}
158
+ // }
159
+ // now your whole app/kit should be typed correctly
160
+ //
161
+ export interface TamaguiCustomConfig {}
162
+
163
+ export interface TamaguiConfig
164
+ extends Omit<GenericTamaguiConfig, keyof TamaguiCustomConfig>,
165
+ TamaguiCustomConfig {}
166
+
167
+ export type CreateTamaguiConfig<
168
+ A extends GenericTokens,
169
+ B extends GenericThemes,
170
+ C extends GenericShorthands = GenericShorthands,
171
+ D extends GenericMedia = GenericMedia,
172
+ E extends GenericAnimations = GenericAnimations,
173
+ F extends GenericFonts = GenericFonts
174
+ > = {
175
+ fonts: RemoveLanguagePostfixes<F>
176
+ fontLanguages: GetLanguagePostfixes<F> extends never ? string[] : GetLanguagePostfixes<F>[]
177
+ tokens: A
178
+ // parsed
179
+ themes: {
180
+ [Name in keyof B]: {
181
+ [Key in keyof B[Name]]: Variable
182
+ }
183
+ }
184
+ shorthands: C
185
+ media: D
186
+ animations: AnimationDriver<E>
187
+ }
188
+
189
+ type GetLanguagePostfix<Set> = Set extends string
190
+ ? Set extends `${string}_${infer Postfix}`
191
+ ? Postfix
192
+ : never
193
+ : never
194
+
195
+ type OmitLanguagePostfix<Set> = Set extends string
196
+ ? Set extends `${infer Prefix}_${string}`
197
+ ? Prefix
198
+ : Set
199
+ : never
200
+
201
+ type RemoveLanguagePostfixes<F extends GenericFonts> = {
202
+ [Key in OmitLanguagePostfix<keyof F>]: F[Key]
203
+ }
204
+
205
+ type GetLanguagePostfixes<F extends GenericFonts> = GetLanguagePostfix<keyof F>
206
+
207
+ // test RemoveLanguagePostfixes
208
+ // type x = CreateTamaguiConfig<any, any, any, any, any, {
209
+ // body: any,
210
+ // body_en: any
211
+ // }>['fonts']
212
+
213
+ type ConfProps<
214
+ A extends GenericTokens,
215
+ B extends GenericThemes,
216
+ C extends GenericShorthands = GenericShorthands,
217
+ D extends GenericMedia = GenericMedia,
218
+ E extends GenericAnimations = GenericAnimations,
219
+ F extends GenericFonts = GenericFonts
220
+ > = {
221
+ tokens: A
222
+ themes: B
223
+ shorthands?: C
224
+ media?: D
225
+ animations?: AnimationDriver<E>
226
+ fonts: F
227
+ }
228
+
229
+ export type InferTamaguiConfig<Conf> = Conf extends ConfProps<
230
+ infer A,
231
+ infer B,
232
+ infer C,
233
+ infer D,
234
+ infer E,
235
+ infer F
236
+ >
237
+ ? TamaguiInternalConfig<A, B, C, D, E, F>
238
+ : unknown
239
+
240
+ // for use in creation functions so it doesnt get overwrtitten
241
+ export type GenericTamaguiConfig = CreateTamaguiConfig<
242
+ GenericTokens,
243
+ GenericThemes,
244
+ GenericShorthands,
245
+ GenericMedia,
246
+ GenericAnimations,
247
+ GenericFonts
248
+ >
249
+
250
+ // since TamaguiConfig will be re-declared, these will all be typed globally
251
+ export type ThemeDefinition = TamaguiConfig['themes'][keyof TamaguiConfig['themes']]
252
+ export type ThemeKeys = keyof ThemeDefinition
253
+ export type ThemeParsed = {
254
+ [key in ThemeKeys]: Variable<any>
255
+ }
256
+ export type Tokens = TamaguiConfig['tokens']
257
+ export type Shorthands = TamaguiConfig['shorthands']
258
+ export type Media = TamaguiConfig['media']
259
+ export type Themes = TamaguiConfig['themes']
260
+ export type ThemeName = GetAltThemeNames<keyof Themes>
261
+ export type ThemeTokens = `$${ThemeKeys}`
262
+ export type AnimationKeys = TamaguiConfig['animations'] extends AnimationDriver<infer Config>
263
+ ? keyof Config
264
+ : string
265
+ export type FontLanguages = ArrayIntersection<TamaguiConfig['fontLanguages']>
266
+
267
+ type ArrayIntersection<A extends any[]> = A[keyof A]
268
+
269
+ type GetAltThemeNames<S> = (S extends `${string}_${infer Alt}` ? GetAltThemeNames<Alt> : S) | S
270
+
271
+ type SpacerPropsBase = {
272
+ size?: number | SpaceTokens | null
273
+ flex?: boolean | number
274
+ direction?: SpaceDirection
275
+ }
276
+ type SpacerOwnProps = SpacerPropsBase &
277
+ //
278
+ WithThemeShorthandsPseudosMediaAnimation<SpacerPropsBase>
279
+
280
+ export type SpacerProps = Omit<StackProps, 'flex' | 'direction' | 'size'> &
281
+ //
282
+ SpacerOwnProps
283
+
284
+ export type CreateTamaguiProps = {
285
+ reactNative?: any
286
+ shorthands?: CreateShorthands
287
+ media?: GenericTamaguiConfig['media']
288
+ animations?: AnimationDriver<any>
289
+ fonts: GenericTamaguiConfig['fonts']
290
+ tokens: GenericTamaguiConfig['tokens']
291
+ themes: {
292
+ [key: string]: {
293
+ [key: string]: string | number | Variable
294
+ }
295
+ }
296
+
297
+ defaultTheme?: string
298
+
299
+ /**
300
+ * *Advanced use case* For all CSS extracted views, this has no effect.
301
+ *
302
+ * For SSR compatibility on the web, Tamagui will render once with the settings
303
+ * from `mediaQueryDefaultActive` set for all media queries. Then, it will render
304
+ * again after the initial render using the proper media query values. This is so that
305
+ * hydration will match perfectly with the server.
306
+ *
307
+ * Setting disableSSR will avoid this second render by setting the media query state
308
+ * to the actual browser dimensions on initial load. This is only useful for client-only
309
+ * apps.
310
+ *
311
+ */
312
+ disableSSR?: boolean
313
+
314
+ /**
315
+ * Disable inserting a theme class in the DOM or context, allowing you to manually place it higher.
316
+ * For custom use cases like integration with next-theme.
317
+ */
318
+ disableRootThemeClass?: boolean
319
+
320
+ defaultProps?: Record<string, any> & {
321
+ Stack?: StackProps
322
+ Text?: TextProps
323
+ Spacer?: SpacerProps
324
+ }
325
+
326
+ // for the first render, determines which media queries are true
327
+ // useful for SSR
328
+ mediaQueryDefaultActive?: Record<MediaQueryKey, boolean>
329
+
330
+ // what's between each CSS style rule, set to "\n" to be easier to read
331
+ // defaults: "\n" when NODE_ENV=development, "" otherwise
332
+ cssStyleSeparator?: string
333
+
334
+ // (Advanced)
335
+ // on the web, tamagui treats `dark` and `light` themes as special and
336
+ // generates extra CSS to avoid having to re-render the entire page.
337
+ // this CSS relies on specificity hacks that multiply by your sub-themes.
338
+ // this sets the maxiumum number of nested dark/light themes you can do
339
+ // defaults to 3 for a balance, but can be higher if you nest them deeply.
340
+ maxDarkLightNesting?: number
341
+
342
+ // adds @media(prefers-color-scheme) media queries for dark/light
343
+ shouldAddPrefersColorThemes?: boolean
344
+
345
+ // only if you put the theme classname on the html element we have to generate diff
346
+ themeClassNameOnRoot?: boolean
347
+ }
348
+
349
+ // this is the config generated via createTamagui()
350
+ export type TamaguiInternalConfig<
351
+ A extends GenericTokens = GenericTokens,
352
+ B extends GenericThemes = GenericThemes,
353
+ C extends GenericShorthands = GenericShorthands,
354
+ D extends GenericMedia = GenericMedia,
355
+ E extends GenericAnimations = GenericAnimations,
356
+ F extends GenericFonts = GenericFonts
357
+ > = Omit<CreateTamaguiProps, keyof GenericTamaguiConfig> &
358
+ CreateTamaguiConfig<A, B, C, D, E, F> & {
359
+ // TODO need to make it this but this breaks types, revisit
360
+ // animations: E //AnimationDriver<E>
361
+ // with $ prefixes for fast lookups (one time cost at startup vs every render)
362
+ tokensParsed: CreateTokens<Variable>
363
+ themeConfig: any
364
+ fontsParsed: GenericFonts
365
+ getCSS: () => string
366
+ parsed: boolean
367
+ inverseShorthands: Record<string, string>
368
+ reactNative?: any
369
+ }
370
+
371
+ export type GetAnimationKeys<A extends GenericTamaguiConfig> = keyof A['animations']
372
+
373
+ // prevents const intersections from being clobbered into string, keeping the consts
374
+ export type UnionableString = string & {}
375
+ export type UnionableNumber = number & {}
376
+ export type PropTypes<A extends TamaguiComponent> = A extends FunctionComponent<infer Props>
377
+ ? Props
378
+ : unknown
379
+
380
+ export type GenericFont<Key extends number | string = number | string> = {
381
+ size: { [key in Key]: number | Variable }
382
+ lineHeight: Partial<{ [key in Key]: number | Variable }>
383
+ letterSpacing: Partial<{ [key in Key]: number | Variable }>
384
+ weight: Partial<{ [key in Key]: number | string | Variable }>
385
+ family: string | Variable
386
+ style?: Partial<{ [key in Key]: TextStyle['fontStyle'] | Variable }>
387
+ transform?: Partial<{ [key in Key]: TextStyle['textTransform'] | Variable }>
388
+ color?: Partial<{ [key in Key]: string | Variable }>
389
+ // for native use only, lets you map to alternative fonts
390
+ face?: { [key in FontWeightSteps]: { normal?: string; italic?: string } }
391
+ }
392
+
393
+ // media
394
+ export type MediaQueryObject = { [key: string]: string | number | string }
395
+ export type MediaQueryKey = keyof Media
396
+ export type MediaPropKeys = `$${MediaQueryKey}`
397
+ export type MediaQueryState = { [key in MediaPropKeys]: boolean }
398
+ export type MediaProps<A> = {
399
+ [key in MediaPropKeys]?: A
400
+ }
401
+ export type MediaQueries = {
402
+ [key in MediaQueryKey]: MediaQueryObject
403
+ }
404
+
405
+ export type TransformStyleProps = {
406
+ x?: number
407
+ y?: number
408
+ perspective?: number
409
+ scale?: number
410
+ scaleX?: number
411
+ scaleY?: number
412
+ skewX?: string
413
+ skewY?: string
414
+ matrix?: number[]
415
+ rotate?: string
416
+ rotateY?: string
417
+ rotateX?: string
418
+ rotateZ?: string
419
+ }
420
+
421
+ // createComponent props helpers
422
+
423
+ // animation="bouncy"
424
+ // animation={['bouncy', { }]}
425
+ // { all: 'name' }
426
+
427
+ // TODO can override for better types
428
+ export type AnimationConfigType = any
429
+
430
+ export type AnimationProp =
431
+ | AnimationKeys
432
+ | {
433
+ [key: string]:
434
+ | AnimationKeys
435
+ | {
436
+ type: AnimationKeys
437
+ [key: string]: any
438
+ }
439
+ }
440
+ | [
441
+ AnimationKeys,
442
+ {
443
+ [key: string]:
444
+ | AnimationKeys
445
+ | {
446
+ type?: AnimationKeys
447
+ [key: string]: any
448
+ }
449
+ }
450
+ ]
451
+
452
+ type GetTokenFontKeysFor<
453
+ A extends
454
+ | 'size'
455
+ | 'weight'
456
+ | 'letterSpacing'
457
+ | 'family'
458
+ | 'lineHeight'
459
+ | 'transform'
460
+ | 'style'
461
+ | 'color'
462
+ > = keyof TamaguiConfig['fonts']['body'][A]
463
+
464
+ type GetTokenString<A> = A extends string | number ? `$${A}` : `$${string}`
465
+
466
+ // base tokens
467
+ export type SizeTokens = GetTokenString<keyof Tokens['size']> | number
468
+ export type SpaceTokens = GetTokenString<keyof Tokens['space']> | number | boolean
469
+ export type ColorTokens =
470
+ | GetTokenString<keyof Tokens['color']>
471
+ | GetTokenString<keyof ThemeParsed>
472
+ | CSSColorNames
473
+ export type ZIndexTokens = GetTokenString<keyof Tokens['zIndex']> | number
474
+ export type RadiusTokens = GetTokenString<keyof Tokens['radius']> | number
475
+
476
+ // font tokens
477
+ export type FontTokens = GetTokenString<keyof TamaguiConfig['fonts']>
478
+ export type FontSizeTokens = GetTokenString<GetTokenFontKeysFor<'size'>> | number
479
+ export type FontLineHeightTokens = `$${GetTokenFontKeysFor<'lineHeight'>}` | number
480
+ export type FontWeightSteps = `${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}00`
481
+ export type FontWeightTokens = `$${GetTokenFontKeysFor<'weight'>}` | FontWeightSteps
482
+ export type FontColorTokens = `$${GetTokenFontKeysFor<'color'>}` | number
483
+ export type FontLetterSpacingTokens = `$${GetTokenFontKeysFor<'letterSpacing'>}` | number
484
+ export type FontStyleTokens = `$${GetTokenFontKeysFor<'style'>}` | TextStyle['fontStyle']
485
+ export type FontTransformTokens =
486
+ | `$${GetTokenFontKeysFor<'transform'>}`
487
+ | TextStyle['textTransform']
488
+
489
+ //
490
+ // adds theme short values to relevant props
491
+ //
492
+
493
+ export type ThemeValueByCategory<K extends string | number | symbol> = K extends 'theme'
494
+ ? ThemeTokens
495
+ : K extends 'size'
496
+ ? SizeTokens
497
+ : K extends 'font'
498
+ ? FontTokens
499
+ : K extends 'fontSize'
500
+ ? FontSizeTokens
501
+ : K extends 'space'
502
+ ? SpaceTokens
503
+ : K extends 'color'
504
+ ? ColorTokens
505
+ : K extends 'zIndex'
506
+ ? ZIndexTokens
507
+ : K extends 'lineHeight'
508
+ ? FontLineHeightTokens
509
+ : K extends 'fontWeight'
510
+ ? FontWeightTokens
511
+ : K extends 'letterSpacing'
512
+ ? FontLetterSpacingTokens
513
+ : {}
514
+
515
+ type FontKeys = 'fontFamily'
516
+ type FontSizeKeys = 'fontSize'
517
+ type FontWeightKeys = 'fontWeight'
518
+ type FontLetterSpacingKeys = 'letterSpacing'
519
+ type LineHeightKeys = 'lineHeight'
520
+ type ZIndexKeys = 'zIndex'
521
+
522
+ export type ThemeValueGet<K extends string | number | symbol> = K extends 'theme'
523
+ ? ThemeTokens
524
+ : K extends SizeKeys
525
+ ? SizeTokens
526
+ : K extends FontKeys
527
+ ? FontTokens
528
+ : K extends FontSizeKeys
529
+ ? FontSizeTokens
530
+ : K extends SpaceKeys
531
+ ? K extends 'shadowOffset'
532
+ ? { width: SpaceTokens; height: SpaceTokens }
533
+ : SpaceTokens
534
+ : K extends ColorKeys
535
+ ? ColorTokens
536
+ : K extends ZIndexKeys
537
+ ? ZIndexTokens
538
+ : K extends LineHeightKeys
539
+ ? FontLineHeightTokens
540
+ : K extends FontWeightKeys
541
+ ? FontWeightTokens
542
+ : K extends FontLetterSpacingKeys
543
+ ? FontLetterSpacingTokens
544
+ : never
545
+
546
+ export type ThemeValueFallback = UnionableString | Variable
547
+
548
+ export type WithThemeValues<T extends object> = {
549
+ [K in keyof T]: ThemeValueGet<K> extends never
550
+ ? T[K]
551
+ : ThemeValueGet<K> | Exclude<T[K], string> | ThemeValueFallback
552
+ }
553
+
554
+ // adds shorthand props
555
+ export type WithShorthands<StyleProps> = {
556
+ [Key in keyof Shorthands]?: Shorthands[Key] extends keyof StyleProps
557
+ ? StyleProps[Shorthands[Key]] | null
558
+ : undefined
559
+ }
560
+
561
+ // adds pseudo props
562
+ export type PseudoProps<A> = {
563
+ hoverStyle?: A | null
564
+ pressStyle?: A | null
565
+ focusStyle?: A | null
566
+ exitStyle?: A | null
567
+ enterStyle?: A | null
568
+ }
569
+
570
+ export type PseudoPropKeys = keyof PseudoProps<any>
571
+
572
+ export type PseudoStyles = {
573
+ hoverStyle?: ViewStyle
574
+ pressStyle?: ViewStyle
575
+ focusStyle?: ViewStyle
576
+ enterStyle?: ViewStyle
577
+ exitStyle?: ViewStyle
578
+ }
579
+
580
+ //
581
+ // add both theme and shorthands
582
+ //
583
+ type WithThemeAndShorthands<A extends object> = WithThemeValues<A> &
584
+ WithShorthands<WithThemeValues<A>>
585
+
586
+ //
587
+ // combines all of theme, shorthands, pseudos...
588
+ //
589
+ type WithThemeShorthandsAndPseudos<A extends object> =
590
+ | WithThemeAndShorthands<A> & PseudoProps<WithThemeAndShorthands<A>>
591
+
592
+ //
593
+ // ... media queries and animations
594
+ //
595
+ type WithThemeShorthandsPseudosMediaAnimation<A extends object> = WithThemeShorthandsAndPseudos<A> &
596
+ MediaProps<WithThemeShorthandsAndPseudos<A>>
597
+
598
+ /**
599
+ * Base style-only props (no media, pseudo):
600
+ */
601
+
602
+ type StylePropsWebOnly = {
603
+ // we make this a style prop as it is on web
604
+ pointerEvents?: ViewProps['pointerEvents']
605
+ // WEB ONLY
606
+ cursor?: Properties['cursor']
607
+ // WEB ONLY
608
+ contain?: Properties['contain']
609
+ // WEB ONLY values: inherit, inline, block, content
610
+ display?: 'inherit' | 'none' | 'inline' | 'block' | 'contents' | 'flex' | 'inline-flex'
611
+ // WEB ONLY
612
+ userSelect?: Properties['userSelect']
613
+ }
614
+
615
+ export type StackStylePropsBase = Omit<ViewStyle, 'display' | 'backfaceVisibility' | 'elevation'> &
616
+ TransformStyleProps &
617
+ StylePropsWebOnly
618
+
619
+ export type TextStylePropsBase = Omit<TextStyle, 'display' | 'backfaceVisibility'> &
620
+ TransformStyleProps &
621
+ StylePropsWebOnly & {
622
+ ellipse?: boolean
623
+ selectable?: boolean
624
+ textDecorationDistance?: number
625
+ textOverflow?: Properties['textOverflow']
626
+ whiteSpace?: Properties['whiteSpace']
627
+ wordWrap?: Properties['wordWrap']
628
+ }
629
+
630
+ //
631
+ // Stack
632
+ //
633
+
634
+ export type StackNonStyleProps = Omit<ViewProps, 'display' | 'children'> &
635
+ RNWViewProps &
636
+ TamaguiComponentPropsBase
637
+
638
+ export type StackStyleProps = WithThemeShorthandsPseudosMediaAnimation<StackStylePropsBase>
639
+ export type StackPropsBase = StackNonStyleProps & WithThemeAndShorthands<StackStylePropsBase>
640
+ export type StackProps = StackNonStyleProps & StackStyleProps
641
+
642
+ //
643
+ // Text props
644
+ //
645
+
646
+ export type TextNonStyleProps = Omit<ReactTextProps, 'children'> &
647
+ RNWTextProps &
648
+ TamaguiComponentPropsBase
649
+
650
+ export type TextPropsBase = TextNonStyleProps & WithThemeAndShorthands<TextStylePropsBase>
651
+ export type TextStyleProps = WithThemeShorthandsPseudosMediaAnimation<TextStylePropsBase>
652
+ export type TextProps = TextNonStyleProps & TextStyleProps
653
+
654
+ // could actually infer from parent
655
+ export type ViewOrTextProps = WithThemeShorthandsPseudosMediaAnimation<
656
+ Omit<TextStylePropsBase, keyof StackStylePropsBase> & StackStylePropsBase
657
+ >
658
+
659
+ //
660
+ // StaticComponent
661
+ //
662
+
663
+ export type TamaguiComponent<
664
+ Props = any,
665
+ Ref = any,
666
+ BaseProps = {},
667
+ VariantProps = {}
668
+ > = ReactComponentWithRef<Props, Ref> & StaticComponentObject
669
+
670
+ type StaticComponentObject = {
671
+ staticConfig: StaticConfig
672
+ /*
673
+ * Only needed for more complex components
674
+ * If you create a styled frame component this is a HoC to extract
675
+ * styles from all parents.
676
+ */
677
+ extractable: <X>(a: X, opts?: Partial<StaticConfig>) => X
678
+ }
679
+
680
+ export type TamaguiProviderProps = Partial<Omit<ThemeProviderProps, 'children'>> & {
681
+ config: TamaguiInternalConfig
682
+ disableInjectCSS?: boolean
683
+ children?: ReactNode
684
+ }
685
+
686
+ export type PropMapper = (
687
+ key: string,
688
+ value: any,
689
+ theme: ThemeParsed,
690
+ props: Record<string, any>,
691
+ state: Partial<SplitStyleState>,
692
+ languageContext?: FontLanguageProps,
693
+ avoidDefaultProps?: boolean,
694
+ debug?: DebugProp
695
+ ) => undefined | [string, any][]
696
+
697
+ export type StaticConfigParsed = StaticConfig & {
698
+ parsed: true
699
+ propMapper: PropMapper
700
+ variantsParsed?: {
701
+ [key: string]: {
702
+ [key: string]: any
703
+ }
704
+ }
705
+ }
706
+
707
+ export type GenericVariantDefinitions = {
708
+ [key: string]: {
709
+ [key: string]:
710
+ | ((a: any, b: any) => any)
711
+ | {
712
+ [key: string]: any
713
+ }
714
+ }
715
+ }
716
+
717
+ export type StaticConfigPublic = {
718
+ /**
719
+ * (compiler) If you need to pass context or something, prevents from ever
720
+ * flattening. The 'jsx' option means it will never flatten. if you
721
+ * pass JSX as a children (if its purely string, it will still flatten).
722
+ */
723
+ neverFlatten?: boolean | 'jsx'
724
+
725
+ /**
726
+ * Determines ultimate output tag (Text vs View)
727
+ */
728
+ isText?: boolean
729
+
730
+ /**
731
+ * Which style keys are allowed to be extracted.
732
+ */
733
+ validStyles?: { [key: string]: boolean }
734
+
735
+ /**
736
+ * (compiler) If these props are encountered, bail on all optimization.
737
+ */
738
+ deoptProps?: Set<string>
739
+
740
+ /**
741
+ * (compiler) If these props are encountered, leave them un-extracted.
742
+ */
743
+ inlineProps?: Set<string>
744
+
745
+ /**
746
+ * (compiler) If not flattening, leave this prop as original value.
747
+ * Only applies to style attributes
748
+ */
749
+ inlineWhenUnflattened?: Set<string>
750
+
751
+ /**
752
+ * (compiler) A bit odd, only for more advanced heirarchies.
753
+ * Indicates that the component will set this prop so the
754
+ * static extraction can ensure it sets them to ={undefined}
755
+ * so they get overriddent. In the future, this can be smarter.
756
+ */
757
+ ensureOverriddenProp?: { [key: string]: boolean }
758
+
759
+ /**
760
+ * Auto-detected, but can ovverride. Wraps children to space them on top
761
+ */
762
+ isZStack?: boolean
763
+
764
+ /**
765
+ * Auto-detect, but can override, passes styles properly to react-native-web
766
+ */
767
+ isReactNative?: boolean
768
+
769
+ /**
770
+ * By default if styled() doesn't recognize a parent Tamagui compoent or specific react-native views,
771
+ * it will assume the passed in component only accepts style={} for react-native compatibility.
772
+ * Setting `acceptsClassName: true` indicates Tamagui can pass in className props.
773
+ */
774
+ acceptsClassName?: boolean
775
+ }
776
+
777
+ export type StaticConfig = StaticConfigPublic & {
778
+ Component?: FunctionComponent<any> & StaticComponentObject
779
+
780
+ variants?: GenericVariantDefinitions
781
+
782
+ /**
783
+ * Used for applying sub theme style
784
+ */
785
+ componentName?: string
786
+
787
+ /**
788
+ * Same as React.defaultProps, be sure to sync
789
+ */
790
+ defaultProps: Record<string, any>
791
+
792
+ /**
793
+ * Merges into defaultProps later on, used internally yonly
794
+ */
795
+ defaultVariants?: { [key: string]: any }
796
+
797
+ /**
798
+ * Memoize the component
799
+ */
800
+ memo?: boolean
801
+
802
+ /**
803
+ * Used internally to handle extractable HoC separate
804
+ */
805
+ isHOC?: boolean
806
+
807
+ /**
808
+ * Used insternally to attach default props to names
809
+ */
810
+ parentNames?: string[]
811
+
812
+ /**
813
+ * By default if styled() doesn't recognize a parent Tamagui compoent or specific react-native views,
814
+ * it will assume the passed in component only accepts style={} for react-native compatibility.
815
+ * Setting `acceptsClassName: true` indicates Tamagui can pass in className props.
816
+ */
817
+ acceptsClassName?: boolean
818
+ }
819
+
820
+ /**
821
+ * --------------------------------------------
822
+ * variants
823
+ * --------------------------------------------
824
+ */
825
+
826
+ export type StylableComponent =
827
+ | TamaguiComponent
828
+ // * excessively deep type instantiation
829
+ // | TamaguiReactElement
830
+ | Component
831
+ | ForwardRefExoticComponent<any>
832
+ | ReactComponentWithRef<any, any>
833
+ | (new (props: any) => any)
834
+ | typeof View
835
+ | typeof Text
836
+ | typeof TextInput
837
+ | typeof Image
838
+
839
+ export type GetStyledVariants<A extends TamaguiComponent> = A extends TamaguiComponent<
840
+ any,
841
+ any,
842
+ any,
843
+ infer Variants
844
+ >
845
+ ? Variants
846
+ : never
847
+
848
+ export type GetBaseProps<A extends StylableComponent> = A extends TamaguiComponent<
849
+ any,
850
+ any,
851
+ infer BaseProps
852
+ >
853
+ ? BaseProps
854
+ : never
855
+
856
+ export type GetProps<A extends StylableComponent> = A extends TamaguiComponent<infer Props>
857
+ ? Props
858
+ : A extends TamaguiReactElement<infer Props>
859
+ ? Props
860
+ : A extends Component<infer Props>
861
+ ? GetGenericComponentTamaguiProps<Props>
862
+ : A extends new (props: infer Props) => any
863
+ ? GetGenericComponentTamaguiProps<Props>
864
+ : {}
865
+
866
+ type GetGenericComponentTamaguiProps<P> = P &
867
+ Omit<'textAlign' extends keyof P ? TextProps : StackProps, keyof P>
868
+
869
+ export type SpreadKeys =
870
+ | '...fontSize'
871
+ | '...fontStyle'
872
+ | '...fontTransform'
873
+ | '...lineHeight'
874
+ | '...letterSpacing'
875
+ | '...size'
876
+ | '...space'
877
+ | '...color'
878
+ | '...zIndex'
879
+ | '...theme'
880
+ | '...radius'
881
+
882
+ export type VariantDefinitions<
883
+ Parent extends StylableComponent = TamaguiComponent,
884
+ MyProps extends Object = GetProps<Parent>,
885
+ Val = any
886
+ > = VariantDefinitionFromProps<MyProps, Val>
887
+
888
+ export type VariantDefinitionFromProps<MyProps, Val> = MyProps extends Object
889
+ ? {
890
+ [propName: string]:
891
+ | VariantSpreadFunction<MyProps, Val>
892
+ | ({
893
+ [Key in SpreadKeys]?: Key extends '...fontSize'
894
+ ? FontSizeVariantSpreadFunction<MyProps>
895
+ : Key extends '...size'
896
+ ? SizeVariantSpreadFunction<MyProps>
897
+ : Key extends '...space'
898
+ ? SpaceVariantSpreadFunction<MyProps>
899
+ : Key extends '...color'
900
+ ? ColorVariantSpreadFunction<MyProps>
901
+ : Key extends '...lineHeight'
902
+ ? FontLineHeightVariantSpreadFunction<MyProps>
903
+ : Key extends '...fontTransform'
904
+ ? FontTransformVariantSpreadFunction<MyProps>
905
+ : Key extends '...fontStyle'
906
+ ? FontStyleVariantSpreadFunction<MyProps>
907
+ : Key extends '...letterSpacing'
908
+ ? FontLetterSpacingVariantSpreadFunction<MyProps>
909
+ : Key extends '...zIndex'
910
+ ? ZIndexVariantSpreadFunction<MyProps>
911
+ : Key extends '...radius'
912
+ ? RadiusVariantSpreadFunction<MyProps>
913
+ : Key extends '...theme'
914
+ ? ThemeVariantSpreadFunction<MyProps>
915
+ : never
916
+ } & {
917
+ [Key in string | number | 'true' | 'false']?:
918
+ | MyProps
919
+ | VariantSpreadFunction<MyProps, Val>
920
+ } & {
921
+ [Key in VariantTypeKeys]?: Key extends ':number'
922
+ ? VariantSpreadFunction<MyProps, number>
923
+ : Key extends ':boolean'
924
+ ? VariantSpreadFunction<MyProps, boolean>
925
+ : Key extends ':string'
926
+ ? VariantSpreadFunction<MyProps, string>
927
+ : never
928
+ })
929
+ }
930
+ : never
931
+
932
+ export type GenericStackVariants = VariantDefinitionFromProps<StackProps, any>
933
+ export type GenericTextVariants = VariantDefinitionFromProps<StackProps, any>
934
+
935
+ export type GetVariantProps<Variants> = {
936
+ [Key in keyof Variants]?: Variants[Key] extends VariantSpreadFunction<any, infer Val>
937
+ ? Val
938
+ : GetVariantValues<keyof Variants[Key]>
939
+ }
940
+
941
+ export type VariantSpreadExtras<Props> = {
942
+ fonts: TamaguiConfig['fonts']
943
+ tokens: TamaguiConfig['tokens']
944
+ theme: Themes extends { [key: string]: infer B } ? B : unknown
945
+ props: Props
946
+ }
947
+
948
+ type PropLike = { [key: string]: any }
949
+
950
+ export type VariantSpreadFunction<Props extends PropLike, Val = any> = (
951
+ val: Val,
952
+ config: VariantSpreadExtras<Props>
953
+ ) =>
954
+ | {
955
+ [Key in keyof Props]: Props[Key] | Variable
956
+ }
957
+ | null
958
+ | undefined
959
+
960
+ export type VariantTypeKeys = ':string' | ':boolean' | ':number'
961
+
962
+ export type GetVariantValues<Key> = Key extends `...${infer VariantSpread}`
963
+ ? ThemeValueByCategory<VariantSpread>
964
+ : Key extends 'true' | 'false'
965
+ ? boolean
966
+ : Key extends ':string'
967
+ ? string
968
+ : Key extends ':boolean'
969
+ ? boolean
970
+ : Key extends ':number'
971
+ ? number
972
+ : Key
973
+
974
+ export type FontSizeVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<
975
+ A,
976
+ FontSizeTokens
977
+ >
978
+ export type SizeVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, SizeTokens>
979
+ export type SpaceVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, SpaceTokens>
980
+ export type ColorVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, ColorTokens>
981
+ export type FontLineHeightVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<
982
+ A,
983
+ FontLineHeightTokens
984
+ >
985
+ export type FontLetterSpacingVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<
986
+ A,
987
+ FontLetterSpacingTokens
988
+ >
989
+ export type FontStyleVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<
990
+ A,
991
+ FontStyleTokens
992
+ >
993
+ export type FontTransformVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<
994
+ A,
995
+ FontTransformTokens
996
+ >
997
+ export type ZIndexVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, ZIndexTokens>
998
+ export type RadiusVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, RadiusTokens>
999
+ export type ThemeVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, ThemeTokens>
1000
+
1001
+ /**
1002
+ * --------------------------------------------
1003
+ * end variants
1004
+ * --------------------------------------------
1005
+ */
1006
+
1007
+ type SizeKeys =
1008
+ | 'width'
1009
+ | 'height'
1010
+ | 'minWidth'
1011
+ | 'minHeight'
1012
+ | 'maxWidth'
1013
+ | 'maxHeight'
1014
+ | 'shadowRadius'
1015
+
1016
+ type ColorKeys =
1017
+ | 'color'
1018
+ | 'backgroundColor'
1019
+ | 'borderColor'
1020
+ | 'borderBottomColor'
1021
+ | 'borderTopColor'
1022
+ | 'borderLeftColor'
1023
+ | 'borderRightColor'
1024
+ | 'shadowColor'
1025
+ | 'textShadowColor'
1026
+
1027
+ type SpaceKeys =
1028
+ | 'space'
1029
+ | 'padding'
1030
+ | 'paddingHorizontal'
1031
+ | 'paddingVertical'
1032
+ | 'paddingLeft'
1033
+ | 'paddingTop'
1034
+ | 'paddingBottom'
1035
+ | 'paddingLeft'
1036
+ | 'paddingRight'
1037
+ | 'paddingEnd'
1038
+ | 'paddingStart'
1039
+ | 'margin'
1040
+ | 'marginHorizontal'
1041
+ | 'marginVertical'
1042
+ | 'marginLeft'
1043
+ | 'marginTop'
1044
+ | 'marginBottom'
1045
+ | 'marginLeft'
1046
+ | 'marginRight'
1047
+ | 'marginEnd'
1048
+ | 'marginStart'
1049
+ | 'x'
1050
+ | 'y'
1051
+ | 'scale'
1052
+ | 'scaleX'
1053
+ | 'scaleY'
1054
+ | 'borderTopEndRadius'
1055
+ | 'borderTopLeftRadius'
1056
+ | 'borderTopRightRadius'
1057
+ | 'borderTopStartRadius'
1058
+ | 'borderBottomEndRadius'
1059
+ | 'borderBottomLeftRadius'
1060
+ | 'borderBottomRightRadius'
1061
+ | 'borderBottomStartRadius'
1062
+ | 'borderBottomWidth'
1063
+ | 'borderLeftWidth'
1064
+ | 'borderRadius'
1065
+ | 'borderRightWidth'
1066
+ | 'borderTopEndRadius'
1067
+ | 'borderTopLeftRadius'
1068
+ | 'borderTopRightRadius'
1069
+ | 'borderEndWidth'
1070
+ | 'borderStartWidth'
1071
+ | 'borderTopStartRadius'
1072
+ | 'borderTopWidth'
1073
+ | 'borderWidth'
1074
+ | 'left'
1075
+ | 'top'
1076
+ | 'right'
1077
+ | 'bottom'
1078
+ | 'shadowOffset'
1079
+
1080
+ type CSSColorNames =
1081
+ | 'aliceblue'
1082
+ | 'antiquewhite'
1083
+ | 'aqua'
1084
+ | 'aquamarine'
1085
+ | 'azure'
1086
+ | 'beige'
1087
+ | 'bisque'
1088
+ | 'black'
1089
+ | 'blanchedalmond'
1090
+ | 'blue'
1091
+ | 'blueviolet'
1092
+ | 'brown'
1093
+ | 'burlywood'
1094
+ | 'cadetblue'
1095
+ | 'chartreuse'
1096
+ | 'chocolate'
1097
+ | 'coral'
1098
+ | 'cornflowerblue'
1099
+ | 'cornsilk'
1100
+ | 'crimson'
1101
+ | 'cyan'
1102
+ | 'darkblue'
1103
+ | 'darkcyan'
1104
+ | 'darkgoldenrod'
1105
+ | 'darkgray'
1106
+ | 'darkgreen'
1107
+ | 'darkkhaki'
1108
+ | 'darkmagenta'
1109
+ | 'darkolivegreen'
1110
+ | 'darkorange'
1111
+ | 'darkorchid'
1112
+ | 'darkred'
1113
+ | 'darksalmon'
1114
+ | 'darkseagreen'
1115
+ | 'darkslateblue'
1116
+ | 'darkslategray'
1117
+ | 'darkturquoise'
1118
+ | 'darkviolet'
1119
+ | 'deeppink'
1120
+ | 'deepskyblue'
1121
+ | 'dimgray'
1122
+ | 'dodgerblue'
1123
+ | 'firebrick'
1124
+ | 'floralwhite'
1125
+ | 'forestgreen'
1126
+ | 'fuchsia'
1127
+ | 'gainsboro'
1128
+ | 'ghostwhite'
1129
+ | 'gold'
1130
+ | 'goldenrod'
1131
+ | 'gray'
1132
+ | 'green'
1133
+ | 'greenyellow'
1134
+ | 'honeydew'
1135
+ | 'hotpink'
1136
+ | 'indianred '
1137
+ | 'indigo '
1138
+ | 'ivory'
1139
+ | 'khaki'
1140
+ | 'lavender'
1141
+ | 'lavenderblush'
1142
+ | 'lawngreen'
1143
+ | 'lemonchiffon'
1144
+ | 'lightblue'
1145
+ | 'lightcoral'
1146
+ | 'lightcyan'
1147
+ | 'lightgoldenrodyellow'
1148
+ | 'lightgrey'
1149
+ | 'lightgreen'
1150
+ | 'lightpink'
1151
+ | 'lightsalmon'
1152
+ | 'lightseagreen'
1153
+ | 'lightskyblue'
1154
+ | 'lightslategray'
1155
+ | 'lightsteelblue'
1156
+ | 'lightyellow'
1157
+ | 'lime'
1158
+ | 'limegreen'
1159
+ | 'linen'
1160
+ | 'magenta'
1161
+ | 'maroon'
1162
+ | 'mediumaquamarine'
1163
+ | 'mediumblue'
1164
+ | 'mediumorchid'
1165
+ | 'mediumpurple'
1166
+ | 'mediumseagreen'
1167
+ | 'mediumslateblue'
1168
+ | 'mediumspringgreen'
1169
+ | 'mediumturquoise'
1170
+ | 'mediumvioletred'
1171
+ | 'midnightblue'
1172
+ | 'mintcream'
1173
+ | 'mistyrose'
1174
+ | 'moccasin'
1175
+ | 'navajowhite'
1176
+ | 'navy'
1177
+ | 'oldlace'
1178
+ | 'olive'
1179
+ | 'olivedrab'
1180
+ | 'orange'
1181
+ | 'orangered'
1182
+ | 'orchid'
1183
+ | 'palegoldenrod'
1184
+ | 'palegreen'
1185
+ | 'paleturquoise'
1186
+ | 'palevioletred'
1187
+ | 'papayawhip'
1188
+ | 'peachpuff'
1189
+ | 'peru'
1190
+ | 'pink'
1191
+ | 'plum'
1192
+ | 'powderblue'
1193
+ | 'purple'
1194
+ | 'red'
1195
+ | 'rosybrown'
1196
+ | 'royalblue'
1197
+ | 'saddlebrown'
1198
+ | 'salmon'
1199
+ | 'sandybrown'
1200
+ | 'seagreen'
1201
+ | 'seashell'
1202
+ | 'sienna'
1203
+ | 'silver'
1204
+ | 'skyblue'
1205
+ | 'slateblue'
1206
+ | 'slategray'
1207
+ | 'snow'
1208
+ | 'springgreen'
1209
+ | 'steelblue'
1210
+ | 'tan'
1211
+ | 'teal'
1212
+ | 'thistle'
1213
+ | 'tomato'
1214
+ | 'turquoise'
1215
+ | 'violet'
1216
+ | 'wheat'
1217
+ | 'white'
1218
+ | 'whitesmoke'
1219
+ | 'yellow'
1220
+ | 'yellowgreen'
1221
+
1222
+ export type TamaguiComponentState = {
1223
+ hover: boolean
1224
+ press: boolean
1225
+ pressIn: boolean
1226
+ focus: boolean
1227
+ mounted: boolean
1228
+ mediaState?: null | Record<string, boolean>
1229
+ hasAnimation?: boolean
1230
+ animation?: null | {
1231
+ style?: any
1232
+ avoidClasses?: boolean
1233
+ }
1234
+ }
1235
+
1236
+ export type SplitStyleState = TamaguiComponentState & {
1237
+ noClassNames?: boolean
1238
+ dynamicStylesInline?: boolean
1239
+ resolveVariablesAs?: ResolveVariableTypes
1240
+ fallbackProps?: Record<string, any>
1241
+ keepVariantsAsProps?: boolean
1242
+ hasTextAncestor?: boolean
1243
+ }
1244
+
1245
+ // Animations:
1246
+
1247
+ type AnimationConfig = {
1248
+ [key: string]: any
1249
+ }
1250
+
1251
+ // includes a very limited adapter between various impls for number => style
1252
+ // this is useful only in limited scenarios like `Sheet`, but necessary in those cases
1253
+
1254
+ export type AnimatedNumberStrategy =
1255
+ // only values shared between reanimated/react-native for now
1256
+ | {
1257
+ type: 'spring'
1258
+ stiffness?: number
1259
+ damping?: number
1260
+ mass?: number
1261
+ overshootClamping?: boolean
1262
+ restSpeedThreshold?: number
1263
+ restDisplacementThreshold?: number
1264
+ }
1265
+ | { type: 'timing'; duration: number }
1266
+ | { type: 'direct' }
1267
+
1268
+ export type UniversalAnimatedNumber<A> = {
1269
+ getInstance(): A
1270
+ getValue(): number
1271
+ setValue(next: number, config?: AnimatedNumberStrategy): void
1272
+ stop(): void
1273
+ }
1274
+
1275
+ export type AnimationDriver<A extends AnimationConfig = AnimationConfig> = {
1276
+ isReactNative?: boolean
1277
+ useAnimations: UseAnimationHook
1278
+ useAnimatedNumber: (initial: number) => UniversalAnimatedNumber<any>
1279
+ useAnimatedNumberStyle: <V extends UniversalAnimatedNumber<any>>(
1280
+ val: V,
1281
+ getStyle: (current: any) => any
1282
+ ) => any
1283
+ useAnimatedNumberReaction: (
1284
+ val: UniversalAnimatedNumber<any>,
1285
+ onValue: (current: number) => void
1286
+ ) => void
1287
+ animations: A
1288
+ View?: any
1289
+ Text?: any
1290
+ }
1291
+
1292
+ export type UseAnimationProps = TamaguiComponentPropsBase & Record<string, any>
1293
+
1294
+ export type UseAnimationHelpers = {
1295
+ hostRef: RefObject<HTMLElement | View>
1296
+ staticConfig: StaticConfigParsed
1297
+ getStyle: (props?: {
1298
+ isEntering?: boolean
1299
+ isExiting?: boolean
1300
+ exitVariant?: string | null
1301
+ enterVariant?: string | null
1302
+ }) => ViewStyle
1303
+ state: SplitStyleState
1304
+ pseudos: PseudoProps<ViewStyle>
1305
+ // style: ViewStyle | null | undefined
1306
+ // isMounted: boolean
1307
+ // exitStyle?: ViewStyle | null
1308
+ onDidAnimate?: any
1309
+ delay?: number
1310
+ // mergedStyles(props?: { isExiting?: boolean }): ViewStyle
1311
+ }
1312
+
1313
+ export type UseAnimationHook = (
1314
+ props: UseAnimationProps,
1315
+ helpers: UseAnimationHelpers
1316
+ ) => null | {
1317
+ style?: StackStylePropsBase | StackStylePropsBase[]
1318
+ }
1319
+
1320
+ export type GestureReponderEvent = Exclude<View['props']['onResponderMove'], void> extends (
1321
+ event: infer Event
1322
+ ) => void
1323
+ ? Event
1324
+ : never