@tamagui/core 1.0.1-beta.19 → 1.0.1-beta.190

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