@tamagui/core 1.0.1-beta.21 → 1.0.1-beta.210

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