@tamagui/core 1.0.1-beta.98 → 1.0.1-rc.0

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 (747) hide show
  1. package/dist/cjs/Tamagui.js +12 -6
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/addTheme.js +77 -0
  4. package/dist/cjs/addTheme.js.map +7 -0
  5. package/dist/cjs/{conf.js → config.js} +25 -13
  6. package/dist/cjs/config.js.map +7 -0
  7. package/dist/cjs/constants/constants.js +16 -23
  8. package/dist/cjs/constants/constants.js.map +2 -2
  9. package/dist/cjs/constants/isDevTools.js +37 -0
  10. package/dist/cjs/constants/isDevTools.js.map +7 -0
  11. package/dist/cjs/constants/platform.js +16 -9
  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/ButtonNestingContext.js +30 -0
  18. package/dist/cjs/contexts/ButtonNestingContext.js.map +7 -0
  19. package/dist/cjs/contexts/FontLanguageContext.js +30 -0
  20. package/dist/cjs/contexts/FontLanguageContext.js.map +7 -0
  21. package/dist/cjs/contexts/TextAncestorContext.js +30 -0
  22. package/dist/cjs/contexts/TextAncestorContext.js.map +7 -0
  23. package/dist/cjs/{ThemeContext.js → contexts/ThemeContext.js} +1 -0
  24. package/dist/cjs/contexts/ThemeContext.js.map +7 -0
  25. package/dist/cjs/createComponent.js +583 -644
  26. package/dist/cjs/createComponent.js.map +3 -3
  27. package/dist/cjs/createFont.js +39 -19
  28. package/dist/cjs/createFont.js.map +2 -2
  29. package/dist/cjs/createFont.test.js +125 -0
  30. package/dist/cjs/createFont.test.js.map +7 -0
  31. package/dist/cjs/createShorthands.js +1 -0
  32. package/dist/cjs/createShorthands.js.map +2 -2
  33. package/dist/cjs/createTamagui.js +98 -193
  34. package/dist/cjs/createTamagui.js.map +3 -3
  35. package/dist/cjs/createTheme.js +1 -0
  36. package/dist/cjs/createTheme.js.map +2 -2
  37. package/dist/cjs/createTokens.js +1 -4
  38. package/dist/cjs/createTokens.js.map +2 -2
  39. package/dist/cjs/createTokens.test.js +27 -0
  40. package/dist/cjs/createTokens.test.js.map +7 -0
  41. package/dist/cjs/createVariable.js +36 -40
  42. package/dist/cjs/createVariable.js.map +2 -2
  43. package/dist/cjs/createVariable.test.js +7 -0
  44. package/dist/cjs/createVariable.test.js.map +7 -0
  45. package/dist/cjs/createVariables.js +15 -19
  46. package/dist/cjs/createVariables.js.map +2 -2
  47. package/dist/cjs/helpers/RNComponents.js +12 -11
  48. package/dist/cjs/helpers/RNComponents.js.map +2 -2
  49. package/dist/cjs/helpers/ThemeManager.js +230 -0
  50. package/dist/cjs/helpers/ThemeManager.js.map +7 -0
  51. package/dist/cjs/helpers/ThemeManager.test.js +465 -0
  52. package/dist/cjs/helpers/ThemeManager.test.js.map +7 -0
  53. package/dist/cjs/helpers/ThemeManagerContext.js +30 -0
  54. package/dist/cjs/helpers/ThemeManagerContext.js.map +7 -0
  55. package/dist/cjs/helpers/areEqualSets.js +1 -0
  56. package/dist/cjs/helpers/areEqualSets.js.map +1 -1
  57. package/dist/cjs/helpers/assignNativePropsToWeb.js +1 -0
  58. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +1 -1
  59. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +1 -0
  60. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +1 -1
  61. package/dist/cjs/helpers/cache.js +43 -0
  62. package/dist/cjs/helpers/cache.js.map +7 -0
  63. package/dist/cjs/helpers/calc.js +1 -0
  64. package/dist/cjs/helpers/calc.js.map +3 -3
  65. package/dist/cjs/helpers/createMediaStyle.js +23 -9
  66. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  67. package/dist/cjs/helpers/createPropMapper.js +185 -57
  68. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  69. package/dist/cjs/helpers/createProxy.js +43 -0
  70. package/dist/cjs/helpers/createProxy.js.map +7 -0
  71. package/dist/cjs/helpers/createShallowUpdate.js +13 -23
  72. package/dist/cjs/helpers/createShallowUpdate.js.map +2 -2
  73. package/dist/cjs/helpers/expandStyle.js +9 -39
  74. package/dist/cjs/helpers/expandStyle.js.map +3 -3
  75. package/dist/cjs/helpers/expandStyles.js +33 -44
  76. package/dist/cjs/helpers/expandStyles.js.map +2 -2
  77. package/dist/cjs/helpers/extendStaticConfig.js +35 -34
  78. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  79. package/dist/cjs/helpers/fixNativeShadow.js +1 -0
  80. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  81. package/dist/cjs/helpers/getAnimationDriver.js +32 -0
  82. package/dist/cjs/helpers/getAnimationDriver.js.map +7 -0
  83. package/dist/cjs/helpers/getBoundingClientRect.js +37 -0
  84. package/dist/cjs/helpers/getBoundingClientRect.js.map +7 -0
  85. package/dist/cjs/helpers/getExpandedShorthands.js +4 -3
  86. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  87. package/dist/cjs/helpers/getFont.js +7 -2
  88. package/dist/cjs/helpers/getFont.js.map +2 -2
  89. package/dist/cjs/helpers/getFontLanguage.js +29 -0
  90. package/dist/cjs/helpers/getFontLanguage.js.map +7 -0
  91. package/dist/cjs/helpers/getRect.js +36 -0
  92. package/dist/cjs/helpers/getRect.js.map +7 -0
  93. package/dist/cjs/helpers/getSize.js +3 -2
  94. package/dist/cjs/helpers/getSize.js.map +2 -2
  95. package/dist/cjs/helpers/getSplitStyles.js +538 -228
  96. package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
  97. package/dist/cjs/helpers/getStackSize.js +1 -0
  98. package/dist/cjs/helpers/getStackSize.js.map +1 -1
  99. package/dist/cjs/helpers/getStylesAtomic.js +57 -66
  100. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  101. package/dist/cjs/helpers/getStylesAtomic.native.js +1 -0
  102. package/dist/cjs/helpers/getStylesAtomic.native.js.map +2 -2
  103. package/dist/cjs/helpers/getThemeCSSRules.js +107 -0
  104. package/dist/cjs/helpers/getThemeCSSRules.js.map +7 -0
  105. package/dist/cjs/helpers/getThemeCSSRules.native.js +31 -0
  106. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +7 -0
  107. package/dist/cjs/helpers/getVariantExtras.js +50 -7
  108. package/dist/cjs/helpers/getVariantExtras.js.map +2 -2
  109. package/dist/cjs/helpers/insertStyleRule.js +53 -28
  110. package/dist/cjs/helpers/insertStyleRule.js.map +3 -3
  111. package/dist/cjs/helpers/isObj.js +1 -0
  112. package/dist/cjs/helpers/isObj.js.map +1 -1
  113. package/dist/cjs/helpers/isTamaguiComponent.js +1 -0
  114. package/dist/cjs/helpers/isTamaguiComponent.js.map +2 -2
  115. package/dist/cjs/helpers/isTamaguiElement.js +1 -0
  116. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  117. package/dist/cjs/helpers/matchMedia.js +7 -5
  118. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  119. package/dist/cjs/helpers/matchMedia.native.js +5 -1
  120. package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
  121. package/dist/cjs/helpers/mergeProps.js +19 -14
  122. package/dist/cjs/helpers/mergeProps.js.map +2 -2
  123. package/dist/cjs/helpers/mergeTransform.js +12 -8
  124. package/dist/cjs/helpers/mergeTransform.js.map +2 -2
  125. package/dist/cjs/helpers/normalizeColor.js +6 -2
  126. package/dist/cjs/helpers/normalizeColor.js.map +3 -3
  127. package/dist/cjs/helpers/normalizeValueWithProperty.js +48 -6
  128. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +2 -2
  129. package/dist/cjs/helpers/proxyThemeVariables.js +3 -1
  130. package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
  131. package/dist/cjs/helpers/pseudoDescriptors.js +12 -0
  132. package/dist/cjs/helpers/pseudoDescriptors.js.map +2 -2
  133. package/dist/cjs/helpers/registerCSSVariable.js +8 -8
  134. package/dist/cjs/helpers/registerCSSVariable.js.map +2 -2
  135. package/dist/cjs/{constants/rnw.js → helpers/startTransition.js} +13 -9
  136. package/dist/cjs/helpers/startTransition.js.map +7 -0
  137. package/dist/cjs/helpers/themeable.js +17 -43
  138. package/dist/cjs/helpers/themeable.js.map +3 -3
  139. package/dist/cjs/helpers/themes.js +79 -0
  140. package/dist/cjs/helpers/themes.js.map +7 -0
  141. package/dist/cjs/{constants/rnw.native.js → helpers/timer.js} +14 -7
  142. package/dist/cjs/helpers/timer.js.map +7 -0
  143. package/dist/cjs/helpers/useShallowSetState.js +49 -0
  144. package/dist/cjs/helpers/useShallowSetState.js.map +7 -0
  145. package/dist/cjs/helpers/validate.js +1 -124
  146. package/dist/cjs/helpers/validate.js.map +3 -3
  147. package/dist/cjs/helpers/withStaticProperties.js +1 -0
  148. package/dist/cjs/helpers/withStaticProperties.js.map +1 -1
  149. package/dist/cjs/hooks/getThemeUnwrapped.js +37 -0
  150. package/dist/cjs/hooks/getThemeUnwrapped.js.map +7 -0
  151. package/dist/cjs/hooks/useConstant.js +4 -0
  152. package/dist/cjs/hooks/useConstant.js.map +2 -2
  153. package/dist/cjs/hooks/useElementLayout.js +84 -0
  154. package/dist/cjs/hooks/useElementLayout.js.map +7 -0
  155. package/dist/cjs/hooks/useId.js +3 -32
  156. package/dist/cjs/hooks/useId.js.map +2 -2
  157. package/dist/cjs/hooks/useIsMounted.js +1 -0
  158. package/dist/cjs/hooks/useIsMounted.js.map +1 -1
  159. package/dist/cjs/hooks/useIsSSR.js +46 -0
  160. package/dist/cjs/hooks/useIsSSR.js.map +7 -0
  161. package/dist/cjs/hooks/useIsTouchDevice.js +4 -9
  162. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  163. package/dist/cjs/hooks/useMedia.js +165 -120
  164. package/dist/cjs/hooks/useMedia.js.map +3 -3
  165. package/dist/cjs/hooks/usePressable.js +2 -15
  166. package/dist/cjs/hooks/usePressable.js.map +1 -1
  167. package/dist/cjs/hooks/useSafeRef.js +58 -0
  168. package/dist/cjs/hooks/useSafeRef.js.map +7 -0
  169. package/dist/cjs/hooks/useServerHooks.js +36 -0
  170. package/dist/cjs/hooks/useServerHooks.js.map +7 -0
  171. package/dist/cjs/hooks/useTheme.js +182 -163
  172. package/dist/cjs/hooks/useTheme.js.map +3 -3
  173. package/dist/cjs/hooks/useThemeName.js +52 -0
  174. package/dist/cjs/hooks/useThemeName.js.map +7 -0
  175. package/dist/cjs/hooks/useUnmountEffect.js +1 -0
  176. package/dist/cjs/hooks/useUnmountEffect.js.map +1 -1
  177. package/dist/cjs/index.js +41 -30
  178. package/dist/cjs/index.js.map +2 -2
  179. package/dist/cjs/inject-styles.js +40 -0
  180. package/dist/cjs/inject-styles.js.map +7 -0
  181. package/dist/cjs/injectStyles.js +40 -0
  182. package/dist/cjs/injectStyles.js.map +7 -0
  183. package/dist/cjs/insertFont.js +19 -15
  184. package/dist/cjs/insertFont.js.map +2 -2
  185. package/dist/cjs/setupReactNative.js +50 -0
  186. package/dist/cjs/setupReactNative.js.map +7 -0
  187. package/dist/cjs/static.js +2 -17
  188. package/dist/cjs/static.js.map +2 -2
  189. package/dist/cjs/styled.js +30 -49
  190. package/dist/cjs/styled.js.map +2 -2
  191. package/dist/cjs/types-rnw.js +1 -0
  192. package/dist/cjs/types-rnw.js.map +1 -1
  193. package/dist/cjs/types.js +1 -0
  194. package/dist/cjs/types.js.map +2 -2
  195. package/dist/cjs/updateTheme.js +47 -0
  196. package/dist/cjs/updateTheme.js.map +7 -0
  197. package/dist/cjs/{Pressability.js → vendor/Pressability.js} +6 -2
  198. package/dist/cjs/vendor/Pressability.js.map +7 -0
  199. package/dist/cjs/{Pressability.native.js → vendor/Pressability.native.js} +6 -2
  200. package/dist/cjs/vendor/Pressability.native.js.map +7 -0
  201. package/dist/cjs/views/FontLanguage.js +38 -0
  202. package/dist/cjs/views/FontLanguage.js.map +7 -0
  203. package/dist/cjs/views/FontLanguage.native.js +38 -0
  204. package/dist/cjs/views/FontLanguage.native.js.map +7 -0
  205. package/dist/cjs/{helpers/nativeGestureHandler.native.js → views/FontLanguage.types.js} +4 -5
  206. package/dist/cjs/views/FontLanguage.types.js.map +7 -0
  207. package/dist/cjs/views/Slot.js +49 -52
  208. package/dist/cjs/views/Slot.js.map +2 -2
  209. package/dist/cjs/views/Stack.js +4 -19
  210. package/dist/cjs/views/Stack.js.map +2 -2
  211. package/dist/cjs/views/TamaguiProvider.js +83 -0
  212. package/dist/cjs/views/TamaguiProvider.js.map +7 -0
  213. package/dist/cjs/views/Text.js +32 -29
  214. package/dist/cjs/views/Text.js.map +2 -2
  215. package/dist/cjs/views/Theme.js +55 -23
  216. package/dist/cjs/views/Theme.js.map +3 -3
  217. package/dist/cjs/views/ThemeInverse.js +22 -20
  218. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  219. package/dist/cjs/views/ThemeProvider.js +14 -27
  220. package/dist/cjs/views/ThemeProvider.js.map +3 -3
  221. package/dist/cjs/views/ThemeReset.js +11 -5
  222. package/dist/cjs/views/ThemeReset.js.map +3 -3
  223. package/dist/esm/Tamagui.js +7 -5
  224. package/dist/esm/Tamagui.js.map +2 -2
  225. package/dist/esm/addTheme.js +53 -0
  226. package/dist/esm/addTheme.js.map +7 -0
  227. package/dist/esm/{conf.js → config.js} +18 -8
  228. package/dist/esm/config.js.map +7 -0
  229. package/dist/esm/constants/constants.js +13 -24
  230. package/dist/esm/constants/constants.js.map +2 -2
  231. package/dist/esm/constants/isDevTools.js +13 -0
  232. package/dist/esm/constants/isDevTools.js.map +7 -0
  233. package/dist/esm/constants/platform.js +11 -7
  234. package/dist/esm/constants/platform.js.map +2 -2
  235. package/dist/esm/constants/platform.native.js +28 -0
  236. package/dist/esm/constants/platform.native.js.map +7 -0
  237. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  238. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +1 -1
  239. package/dist/esm/contexts/ButtonNestingContext.js +6 -0
  240. package/dist/esm/contexts/ButtonNestingContext.js.map +7 -0
  241. package/dist/esm/contexts/FontLanguageContext.js +6 -0
  242. package/dist/esm/contexts/FontLanguageContext.js.map +7 -0
  243. package/dist/esm/contexts/TextAncestorContext.js +6 -0
  244. package/dist/esm/contexts/TextAncestorContext.js.map +7 -0
  245. package/dist/esm/{ThemeContext.js → contexts/ThemeContext.js} +0 -0
  246. package/dist/esm/contexts/ThemeContext.js.map +7 -0
  247. package/dist/esm/createComponent.js +583 -648
  248. package/dist/esm/createComponent.js.map +3 -3
  249. package/dist/esm/createFont.js +38 -19
  250. package/dist/esm/createFont.js.map +2 -2
  251. package/dist/esm/createFont.test.js +124 -0
  252. package/dist/esm/createFont.test.js.map +7 -0
  253. package/dist/esm/createShorthands.js +0 -0
  254. package/dist/esm/createShorthands.js.map +2 -2
  255. package/dist/esm/createTamagui.js +95 -192
  256. package/dist/esm/createTamagui.js.map +3 -3
  257. package/dist/esm/createTheme.js +0 -0
  258. package/dist/esm/createTheme.js.map +2 -2
  259. package/dist/esm/createTokens.js +0 -4
  260. package/dist/esm/createTokens.js.map +2 -2
  261. package/dist/esm/createTokens.test.js +26 -0
  262. package/dist/esm/createTokens.test.js.map +7 -0
  263. package/dist/esm/createVariable.js +32 -38
  264. package/dist/esm/createVariable.js.map +2 -2
  265. package/dist/esm/createVariable.test.js +6 -0
  266. package/dist/esm/createVariable.test.js.map +7 -0
  267. package/dist/esm/createVariables.js +14 -19
  268. package/dist/esm/createVariables.js.map +2 -2
  269. package/dist/esm/helpers/RNComponents.js +11 -8
  270. package/dist/esm/helpers/RNComponents.js.map +2 -2
  271. package/dist/esm/helpers/ThemeManager.js +186 -0
  272. package/dist/esm/helpers/ThemeManager.js.map +7 -0
  273. package/dist/esm/helpers/ThemeManager.test.js +464 -0
  274. package/dist/esm/helpers/ThemeManager.test.js.map +7 -0
  275. package/dist/esm/helpers/ThemeManagerContext.js +6 -0
  276. package/dist/esm/helpers/ThemeManagerContext.js.map +7 -0
  277. package/dist/esm/helpers/areEqualSets.js +0 -0
  278. package/dist/esm/helpers/areEqualSets.js.map +0 -0
  279. package/dist/esm/helpers/assignNativePropsToWeb.js +0 -0
  280. package/dist/esm/helpers/assignNativePropsToWeb.js.map +1 -1
  281. package/dist/esm/helpers/assignNativePropsToWeb.native.js +0 -0
  282. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +1 -1
  283. package/dist/esm/helpers/cache.js +18 -0
  284. package/dist/esm/helpers/cache.js.map +7 -0
  285. package/dist/esm/helpers/calc.js +0 -0
  286. package/dist/esm/helpers/calc.js.map +3 -3
  287. package/dist/esm/helpers/createMediaStyle.js +22 -9
  288. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  289. package/dist/esm/helpers/createPropMapper.js +180 -55
  290. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  291. package/dist/esm/helpers/createProxy.js +19 -0
  292. package/dist/esm/helpers/createProxy.js.map +7 -0
  293. package/dist/esm/helpers/createShallowUpdate.js +12 -25
  294. package/dist/esm/helpers/createShallowUpdate.js.map +2 -2
  295. package/dist/esm/helpers/expandStyle.js +8 -41
  296. package/dist/esm/helpers/expandStyle.js.map +3 -3
  297. package/dist/esm/helpers/expandStyles.js +32 -46
  298. package/dist/esm/helpers/expandStyles.js.map +2 -2
  299. package/dist/esm/helpers/extendStaticConfig.js +34 -36
  300. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  301. package/dist/esm/helpers/fixNativeShadow.js +0 -0
  302. package/dist/esm/helpers/fixNativeShadow.js.map +0 -0
  303. package/dist/esm/helpers/getAnimationDriver.js +8 -0
  304. package/dist/esm/helpers/getAnimationDriver.js.map +7 -0
  305. package/dist/esm/helpers/getBoundingClientRect.js +13 -0
  306. package/dist/esm/helpers/getBoundingClientRect.js.map +7 -0
  307. package/dist/esm/helpers/getExpandedShorthands.js +2 -2
  308. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  309. package/dist/esm/helpers/getFont.js +6 -2
  310. package/dist/esm/helpers/getFont.js.map +2 -2
  311. package/dist/esm/helpers/getFontLanguage.js +5 -0
  312. package/dist/esm/helpers/getFontLanguage.js.map +7 -0
  313. package/dist/esm/helpers/getRect.js +12 -0
  314. package/dist/esm/helpers/getRect.js.map +7 -0
  315. package/dist/esm/helpers/getSize.js +2 -2
  316. package/dist/esm/helpers/getSize.js.map +2 -2
  317. package/dist/esm/helpers/getSplitStyles.js +551 -229
  318. package/dist/esm/helpers/getSplitStyles.js.map +3 -3
  319. package/dist/esm/helpers/getStackSize.js +0 -0
  320. package/dist/esm/helpers/getStackSize.js.map +1 -1
  321. package/dist/esm/helpers/getStylesAtomic.js +53 -60
  322. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  323. package/dist/esm/helpers/getStylesAtomic.native.js +0 -0
  324. package/dist/esm/helpers/getStylesAtomic.native.js.map +2 -2
  325. package/dist/esm/helpers/getThemeCSSRules.js +83 -0
  326. package/dist/esm/helpers/getThemeCSSRules.js.map +7 -0
  327. package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
  328. package/dist/esm/helpers/getThemeCSSRules.native.js.map +7 -0
  329. package/dist/esm/helpers/getVariantExtras.js +47 -6
  330. package/dist/esm/helpers/getVariantExtras.js.map +2 -2
  331. package/dist/esm/helpers/insertStyleRule.js +48 -25
  332. package/dist/esm/helpers/insertStyleRule.js.map +3 -3
  333. package/dist/esm/helpers/isObj.js +0 -0
  334. package/dist/esm/helpers/isObj.js.map +0 -0
  335. package/dist/esm/helpers/isTamaguiComponent.js +0 -0
  336. package/dist/esm/helpers/isTamaguiComponent.js.map +2 -2
  337. package/dist/esm/helpers/isTamaguiElement.js +0 -0
  338. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  339. package/dist/esm/helpers/matchMedia.js +6 -5
  340. package/dist/esm/helpers/matchMedia.js.map +2 -2
  341. package/dist/esm/helpers/matchMedia.native.js +0 -0
  342. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  343. package/dist/esm/helpers/mergeProps.js +18 -14
  344. package/dist/esm/helpers/mergeProps.js.map +2 -2
  345. package/dist/esm/helpers/mergeTransform.js +8 -6
  346. package/dist/esm/helpers/mergeTransform.js.map +2 -2
  347. package/dist/esm/helpers/normalizeColor.js +1 -1
  348. package/dist/esm/helpers/normalizeColor.js.map +2 -2
  349. package/dist/esm/helpers/normalizeValueWithProperty.js +45 -5
  350. package/dist/esm/helpers/normalizeValueWithProperty.js.map +2 -2
  351. package/dist/esm/helpers/proxyThemeVariables.js +2 -1
  352. package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
  353. package/dist/esm/helpers/pseudoDescriptors.js +11 -0
  354. package/dist/esm/helpers/pseudoDescriptors.js.map +2 -2
  355. package/dist/esm/helpers/registerCSSVariable.js +5 -6
  356. package/dist/esm/helpers/registerCSSVariable.js.map +2 -2
  357. package/dist/esm/helpers/startTransition.js +6 -0
  358. package/dist/esm/helpers/startTransition.js.map +7 -0
  359. package/dist/esm/helpers/themeable.js +12 -44
  360. package/dist/esm/helpers/themeable.js.map +2 -2
  361. package/dist/esm/helpers/themes.js +54 -0
  362. package/dist/esm/helpers/themes.js.map +7 -0
  363. package/dist/esm/helpers/timer.js +11 -0
  364. package/dist/esm/helpers/timer.js.map +7 -0
  365. package/dist/esm/helpers/useShallowSetState.js +25 -0
  366. package/dist/esm/helpers/useShallowSetState.js.map +7 -0
  367. package/dist/esm/helpers/validate.js +0 -98
  368. package/dist/esm/helpers/validate.js.map +3 -3
  369. package/dist/esm/helpers/withStaticProperties.js +0 -0
  370. package/dist/esm/helpers/withStaticProperties.js.map +0 -0
  371. package/dist/esm/hooks/getThemeUnwrapped.js +12 -0
  372. package/dist/esm/hooks/getThemeUnwrapped.js.map +7 -0
  373. package/dist/esm/hooks/useConstant.js +4 -1
  374. package/dist/esm/hooks/useConstant.js.map +2 -2
  375. package/dist/esm/hooks/useElementLayout.js +59 -0
  376. package/dist/esm/hooks/useElementLayout.js.map +7 -0
  377. package/dist/esm/hooks/useId.js +1 -28
  378. package/dist/esm/hooks/useId.js.map +2 -2
  379. package/dist/esm/hooks/useIsMounted.js +0 -0
  380. package/dist/esm/hooks/useIsMounted.js.map +1 -1
  381. package/dist/esm/hooks/useIsSSR.js +22 -0
  382. package/dist/esm/hooks/useIsSSR.js.map +7 -0
  383. package/dist/esm/hooks/useIsTouchDevice.js +3 -9
  384. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  385. package/dist/esm/hooks/useMedia.js +159 -122
  386. package/dist/esm/hooks/useMedia.js.map +3 -3
  387. package/dist/esm/hooks/usePressable.js +1 -16
  388. package/dist/esm/hooks/usePressable.js.map +1 -1
  389. package/dist/esm/hooks/useSafeRef.js +34 -0
  390. package/dist/esm/hooks/useSafeRef.js.map +7 -0
  391. package/dist/esm/hooks/useServerHooks.js +11 -0
  392. package/dist/esm/hooks/useServerHooks.js.map +7 -0
  393. package/dist/esm/hooks/useTheme.js +178 -162
  394. package/dist/esm/hooks/useTheme.js.map +3 -3
  395. package/dist/esm/hooks/useThemeName.js +28 -0
  396. package/dist/esm/hooks/useThemeName.js.map +7 -0
  397. package/dist/esm/hooks/useUnmountEffect.js +0 -0
  398. package/dist/esm/hooks/useUnmountEffect.js.map +1 -1
  399. package/dist/esm/index.js +37 -22
  400. package/dist/esm/index.js.map +2 -2
  401. package/dist/esm/inject-styles.js +16 -0
  402. package/dist/esm/inject-styles.js.map +7 -0
  403. package/dist/esm/injectStyles.js +16 -0
  404. package/dist/esm/injectStyles.js.map +7 -0
  405. package/dist/esm/insertFont.js +18 -15
  406. package/dist/esm/insertFont.js.map +2 -2
  407. package/dist/esm/setupReactNative.js +24 -0
  408. package/dist/esm/setupReactNative.js.map +7 -0
  409. package/dist/esm/static.js +1 -17
  410. package/dist/esm/static.js.map +2 -2
  411. package/dist/esm/styled.js +29 -51
  412. package/dist/esm/styled.js.map +2 -2
  413. package/dist/esm/types-rnw.js +0 -0
  414. package/dist/esm/types-rnw.js.map +0 -0
  415. package/dist/esm/types.js +0 -0
  416. package/dist/esm/types.js.map +0 -0
  417. package/dist/esm/updateTheme.js +23 -0
  418. package/dist/esm/updateTheme.js.map +7 -0
  419. package/dist/esm/{Pressability.js → vendor/Pressability.js} +3 -1
  420. package/dist/esm/vendor/Pressability.js.map +7 -0
  421. package/dist/esm/{Pressability.native.js → vendor/Pressability.native.js} +3 -1
  422. package/dist/esm/vendor/Pressability.native.js.map +7 -0
  423. package/dist/esm/views/FontLanguage.js +14 -0
  424. package/dist/esm/views/FontLanguage.js.map +7 -0
  425. package/dist/esm/views/FontLanguage.native.js +14 -0
  426. package/dist/esm/views/FontLanguage.native.js.map +7 -0
  427. package/dist/esm/views/FontLanguage.types.js +1 -0
  428. package/dist/{cjs/defaultComponentState.js.map → esm/views/FontLanguage.types.js.map} +0 -0
  429. package/dist/esm/views/Slot.js +47 -50
  430. package/dist/esm/views/Slot.js.map +2 -2
  431. package/dist/esm/views/Stack.js +3 -21
  432. package/dist/esm/views/Stack.js.map +2 -2
  433. package/dist/esm/views/TamaguiProvider.js +53 -0
  434. package/dist/esm/views/TamaguiProvider.js.map +7 -0
  435. package/dist/esm/views/Text.js +29 -29
  436. package/dist/esm/views/Text.js.map +2 -2
  437. package/dist/esm/views/Theme.js +48 -21
  438. package/dist/esm/views/Theme.js.map +2 -2
  439. package/dist/esm/views/ThemeInverse.js +20 -15
  440. package/dist/esm/views/ThemeInverse.js.map +2 -2
  441. package/dist/esm/views/ThemeProvider.js +11 -22
  442. package/dist/esm/views/ThemeProvider.js.map +2 -2
  443. package/dist/esm/views/ThemeReset.js +6 -4
  444. package/dist/esm/views/ThemeReset.js.map +2 -2
  445. package/package.json +51 -19
  446. package/reset.css +1 -9
  447. package/src/Tamagui.ts +48 -0
  448. package/src/__snapshots__/createTokens.test.ts.snap +877 -0
  449. package/src/addTheme.ts +65 -0
  450. package/src/config.ts +52 -0
  451. package/src/constants/constants.ts +19 -0
  452. package/src/constants/isDevTools.ts +12 -0
  453. package/src/contexts/ButtonNestingContext.tsx +3 -0
  454. package/src/contexts/FontLanguageContext.tsx +5 -0
  455. package/src/contexts/TextAncestorContext.tsx +3 -0
  456. package/src/createComponent.tsx +1280 -0
  457. package/src/createFont.test.ts +129 -0
  458. package/src/createFont.ts +52 -0
  459. package/src/createShorthands.ts +7 -0
  460. package/src/createTamagui.ts +230 -0
  461. package/src/createTheme.ts +13 -0
  462. package/src/createTokens.test.ts +29 -0
  463. package/src/createTokens.ts +35 -0
  464. package/src/createVariable.test.ts +7 -0
  465. package/src/createVariable.ts +79 -0
  466. package/src/createVariables.ts +42 -0
  467. package/src/helpers/RNComponents.tsx +14 -0
  468. package/src/helpers/ThemeManager.test.tsx +497 -0
  469. package/src/helpers/ThemeManager.tsx +252 -0
  470. package/src/helpers/ThemeManagerContext.tsx +5 -0
  471. package/src/helpers/cache.ts +18 -0
  472. package/src/helpers/createMediaStyle.ts +55 -0
  473. package/src/helpers/createPropMapper.ts +526 -0
  474. package/src/helpers/createProxy.ts +16 -0
  475. package/src/helpers/expandStyle.ts +81 -0
  476. package/src/helpers/expandStyles.ts +106 -0
  477. package/src/helpers/extendStaticConfig.ts +75 -0
  478. package/src/helpers/fixNativeShadow.tsx +2 -0
  479. package/src/helpers/getAnimationDriver.tsx +5 -0
  480. package/src/helpers/getBoundingClientRect.tsx +7 -0
  481. package/src/helpers/getExpandedShorthands.ts +15 -0
  482. package/src/helpers/getFontLanguage.ts +2 -0
  483. package/src/helpers/getRect.tsx +8 -0
  484. package/src/helpers/getSize.ts +22 -0
  485. package/src/helpers/getSplitStyles.tsx +980 -0
  486. package/src/helpers/getStylesAtomic.native.ts +4 -0
  487. package/src/helpers/getStylesAtomic.ts +275 -0
  488. package/src/helpers/getThemeCSSRules.native.ts +3 -0
  489. package/src/helpers/getThemeCSSRules.ts +112 -0
  490. package/src/helpers/getVariantExtras.tsx +85 -0
  491. package/src/helpers/insertStyleRule.tsx +163 -0
  492. package/src/helpers/isObj.ts +1 -0
  493. package/src/helpers/isTamaguiComponent.tsx +15 -0
  494. package/src/helpers/isTamaguiElement.tsx +12 -0
  495. package/src/helpers/matchMedia.native.ts +6 -0
  496. package/src/helpers/matchMedia.ts +17 -0
  497. package/src/helpers/mergeProps.ts +56 -0
  498. package/src/helpers/mergeTransform.ts +23 -0
  499. package/src/helpers/normalizeColor.ts +53 -0
  500. package/src/helpers/normalizeValueWithProperty.ts +123 -0
  501. package/src/helpers/proxyThemeVariables.tsx +15 -0
  502. package/src/helpers/pseudoDescriptors.ts +40 -0
  503. package/src/helpers/registerCSSVariable.ts +11 -0
  504. package/src/helpers/themeable.tsx +44 -0
  505. package/src/helpers/themes.ts +69 -0
  506. package/src/helpers/timer.ts +9 -0
  507. package/src/helpers/useShallowSetState.tsx +29 -0
  508. package/src/helpers/withStaticProperties.tsx +7 -0
  509. package/src/hooks/getThemeUnwrapped.tsx +7 -0
  510. package/src/hooks/useElementLayout.tsx +85 -0
  511. package/src/hooks/useId.tsx +1 -0
  512. package/src/hooks/useIsTouchDevice.tsx +6 -0
  513. package/src/hooks/useMedia.tsx +265 -0
  514. package/src/hooks/useSafeRef.ts +48 -0
  515. package/src/hooks/useServerHooks.tsx +12 -0
  516. package/src/hooks/useTheme.tsx +243 -0
  517. package/src/hooks/useThemeName.tsx +27 -0
  518. package/src/index.ts +73 -0
  519. package/src/inject-styles.ts +20 -0
  520. package/src/insertFont.ts +70 -0
  521. package/src/setupReactNative.ts +20 -0
  522. package/src/static.ts +5 -0
  523. package/src/styled.tsx +172 -0
  524. package/src/types-rnw.tsx +162 -0
  525. package/src/types.tsx +1350 -0
  526. package/src/updateTheme.ts +26 -0
  527. package/src/vendor/Pressability.native.tsx +3 -0
  528. package/src/vendor/Pressability.tsx +2 -0
  529. package/src/views/FontLanguage.native.tsx +10 -0
  530. package/src/views/FontLanguage.tsx +18 -0
  531. package/src/views/FontLanguage.types.ts +13 -0
  532. package/src/views/Slot.tsx +147 -0
  533. package/src/views/Stack.tsx +24 -0
  534. package/src/views/TamaguiProvider.tsx +59 -0
  535. package/src/views/Text.tsx +87 -0
  536. package/src/views/Theme.tsx +77 -0
  537. package/src/views/ThemeProvider.tsx +41 -0
  538. package/types/Tamagui.d.ts +9 -7
  539. package/types/addTheme.d.ts +32 -0
  540. package/types/config.d.ts +46 -0
  541. package/types/constants/constants.d.ts +14 -3
  542. package/types/constants/isDevTools.d.ts +2 -0
  543. package/types/contexts/ButtonNestingContext.d.ts +3 -0
  544. package/types/contexts/FontLanguageContext.d.ts +5 -0
  545. package/types/contexts/TextAncestorContext.d.ts +3 -0
  546. package/types/createComponent.d.ts +4 -27
  547. package/types/createFont.d.ts +0 -0
  548. package/types/createFont.test.d.ts +2 -0
  549. package/types/createShorthands.d.ts +2 -1
  550. package/types/createTamagui.d.ts +2 -25
  551. package/types/createTheme.d.ts +1 -1
  552. package/types/createTokens.d.ts +5 -5
  553. package/types/createTokens.test.d.ts +2 -0
  554. package/types/createVariable.d.ts +15 -10
  555. package/types/createVariable.test.d.ts +2 -0
  556. package/types/createVariables.d.ts +1 -1
  557. package/types/helpers/RNComponents.d.ts +1 -1
  558. package/types/helpers/ThemeManager.d.ts +36 -0
  559. package/types/helpers/ThemeManager.test.d.ts +2 -0
  560. package/types/helpers/ThemeManagerContext.d.ts +4 -0
  561. package/types/helpers/cache.d.ts +12 -0
  562. package/types/helpers/createMediaStyle.d.ts +2 -4
  563. package/types/helpers/createPropMapper.d.ts +3 -1
  564. package/types/helpers/createProxy.d.ts +2 -0
  565. package/types/helpers/expandStyle.d.ts +4 -0
  566. package/types/helpers/expandStyles.d.ts +20 -1
  567. package/types/helpers/extendStaticConfig.d.ts +0 -0
  568. package/types/helpers/fixNativeShadow.d.ts +0 -0
  569. package/types/helpers/getAnimationDriver.d.ts +6 -0
  570. package/types/helpers/getBoundingClientRect.d.ts +2 -0
  571. package/types/helpers/getExpandedShorthands.d.ts +0 -0
  572. package/types/helpers/getFontLanguage.d.ts +2 -0
  573. package/types/helpers/getRect.d.ts +9 -0
  574. package/types/helpers/getSize.d.ts +0 -0
  575. package/types/helpers/getSplitStyles.d.ts +32 -16
  576. package/types/helpers/getStylesAtomic.d.ts +11 -10
  577. package/types/helpers/getStylesAtomic.native.d.ts +0 -0
  578. package/types/helpers/getThemeCSSRules.d.ts +8 -0
  579. package/types/helpers/getThemeCSSRules.native.d.ts +2 -0
  580. package/types/helpers/getVariantExtras.d.ts +4 -6
  581. package/types/helpers/insertStyleRule.d.ts +8 -4
  582. package/types/helpers/isObj.d.ts +0 -0
  583. package/types/helpers/isTamaguiComponent.d.ts +1 -1
  584. package/types/helpers/isTamaguiElement.d.ts +5 -1
  585. package/types/helpers/matchMedia.d.ts +1 -1
  586. package/types/helpers/matchMedia.native.d.ts +0 -0
  587. package/types/helpers/mergeProps.d.ts +16 -1
  588. package/types/helpers/mergeTransform.d.ts +6 -4
  589. package/types/helpers/normalizeColor.d.ts +0 -0
  590. package/types/helpers/normalizeValueWithProperty.d.ts +5 -0
  591. package/types/helpers/proxyThemeVariables.d.ts +0 -0
  592. package/types/helpers/pseudoDescriptors.d.ts +8 -14
  593. package/types/helpers/registerCSSVariable.d.ts +3 -3
  594. package/types/helpers/themeable.d.ts +7 -7
  595. package/types/helpers/themes.d.ts +4 -0
  596. package/types/helpers/timer.d.ts +2 -0
  597. package/types/helpers/useShallowSetState.d.ts +4 -0
  598. package/types/helpers/withStaticProperties.d.ts +0 -0
  599. package/types/hooks/getThemeUnwrapped.d.ts +3 -0
  600. package/types/hooks/useElementLayout.d.ts +19 -0
  601. package/types/hooks/useId.d.ts +1 -8
  602. package/types/hooks/useIsTouchDevice.d.ts +0 -0
  603. package/types/hooks/useMedia.d.ts +22 -6
  604. package/types/hooks/useSafeRef.d.ts +4 -0
  605. package/types/hooks/useServerHooks.d.ts +4 -0
  606. package/types/hooks/useTheme.d.ts +11 -41
  607. package/types/hooks/useThemeName.d.ts +5 -0
  608. package/types/index.d.ts +17 -17
  609. package/types/inject-styles.d.ts +7 -0
  610. package/types/insertFont.d.ts +4 -1
  611. package/types/setupReactNative.d.ts +5 -0
  612. package/types/static.d.ts +1 -17
  613. package/types/styled.d.ts +6 -2
  614. package/types/types-rnw.d.ts +0 -0
  615. package/types/types.d.ts +299 -90
  616. package/types/updateTheme.d.ts +30 -0
  617. package/types/vendor/Pressability.d.ts +3 -0
  618. package/types/vendor/Pressability.native.d.ts +3 -0
  619. package/types/views/FontLanguage.d.ts +4 -0
  620. package/types/views/FontLanguage.native.d.ts +4 -0
  621. package/types/views/FontLanguage.types.d.ts +11 -0
  622. package/types/views/Slot.d.ts +4 -4
  623. package/types/views/Stack.d.ts +1 -1
  624. package/types/views/TamaguiProvider.d.ts +4 -0
  625. package/types/views/Text.d.ts +1 -1
  626. package/types/views/Theme.d.ts +4 -3
  627. package/types/views/ThemeProvider.d.ts +0 -1
  628. package/dist/cjs/Pressability.js.map +0 -7
  629. package/dist/cjs/Pressability.native.js.map +0 -7
  630. package/dist/cjs/ThemeContext.js.map +0 -7
  631. package/dist/cjs/ThemeManager.js +0 -204
  632. package/dist/cjs/ThemeManager.js.map +0 -7
  633. package/dist/cjs/conf.js.map +0 -7
  634. package/dist/cjs/constants/rnw.js.map +0 -7
  635. package/dist/cjs/constants/rnw.native.js.map +0 -7
  636. package/dist/cjs/defaultComponentState.js +0 -1
  637. package/dist/cjs/helpers/createTamaguiProvider.js +0 -91
  638. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  639. package/dist/cjs/helpers/getTextSize.js +0 -55
  640. package/dist/cjs/helpers/getTextSize.js.map +0 -7
  641. package/dist/cjs/helpers/nativeGestureHandler.native.js.map +0 -7
  642. package/dist/cjs/helpers/wrapThemeManagerContext.js +0 -37
  643. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +0 -7
  644. package/dist/cjs/hooks/useFeatures.js +0 -230
  645. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  646. package/dist/cjs/hooks/usePrevious.js +0 -1
  647. package/dist/cjs/hooks/usePrevious.js.map +0 -7
  648. package/dist/cjs/views/TextAncestorContext.js +0 -43
  649. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  650. package/dist/esm/Pressability.js.map +0 -7
  651. package/dist/esm/Pressability.native.js.map +0 -7
  652. package/dist/esm/ThemeContext.js.map +0 -7
  653. package/dist/esm/ThemeManager.js +0 -179
  654. package/dist/esm/ThemeManager.js.map +0 -7
  655. package/dist/esm/conf.js.map +0 -7
  656. package/dist/esm/constants/rnw.js +0 -6
  657. package/dist/esm/constants/rnw.js.map +0 -7
  658. package/dist/esm/constants/rnw.native.js +0 -5
  659. package/dist/esm/constants/rnw.native.js.map +0 -7
  660. package/dist/esm/defaultComponentState.js +0 -1
  661. package/dist/esm/defaultComponentState.js.map +0 -7
  662. package/dist/esm/helpers/createTamaguiProvider.js +0 -67
  663. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  664. package/dist/esm/helpers/getTextSize.js +0 -32
  665. package/dist/esm/helpers/getTextSize.js.map +0 -7
  666. package/dist/esm/helpers/nativeGestureHandler.native.js +0 -2
  667. package/dist/esm/helpers/nativeGestureHandler.native.js.map +0 -7
  668. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -11
  669. package/dist/esm/helpers/wrapThemeManagerContext.js.map +0 -7
  670. package/dist/esm/hooks/useFeatures.js +0 -206
  671. package/dist/esm/hooks/useFeatures.js.map +0 -7
  672. package/dist/esm/hooks/usePrevious.js +0 -1
  673. package/dist/esm/hooks/usePrevious.js.map +0 -7
  674. package/dist/esm/views/TextAncestorContext.js +0 -15
  675. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  676. package/types/Pressability.d.ts +0 -2
  677. package/types/Pressability.native.d.ts +0 -2
  678. package/types/Tamagui.d.ts.map +0 -1
  679. package/types/ThemeContext.d.ts +0 -7
  680. package/types/ThemeContext.d.ts.map +0 -1
  681. package/types/ThemeManager.d.ts +0 -52
  682. package/types/ThemeManager.d.ts.map +0 -1
  683. package/types/conf.d.ts +0 -26
  684. package/types/conf.d.ts.map +0 -1
  685. package/types/constants/platform.d.ts +0 -12
  686. package/types/constants/rnw.d.ts +0 -2
  687. package/types/constants/rnw.d.ts.map +0 -1
  688. package/types/constants/rnw.native.d.ts +0 -2
  689. package/types/contexts/ButtonInsideButtonContext.d.ts +0 -3
  690. package/types/createComponent.d.ts.map +0 -1
  691. package/types/createFont.d.ts.map +0 -1
  692. package/types/createTamagui.d.ts.map +0 -1
  693. package/types/createTokens.d.ts.map +0 -1
  694. package/types/defaultComponentState.d.ts +0 -1
  695. package/types/helpers/areEqualSets.d.ts +0 -2
  696. package/types/helpers/assignNativePropsToWeb.d.ts +0 -2
  697. package/types/helpers/assignNativePropsToWeb.d.ts.map +0 -1
  698. package/types/helpers/assignNativePropsToWeb.native.d.ts +0 -2
  699. package/types/helpers/calc.d.ts +0 -12
  700. package/types/helpers/calc.d.ts.map +0 -1
  701. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  702. package/types/helpers/createPropMapper.d.ts.map +0 -1
  703. package/types/helpers/createShallowUpdate.d.ts +0 -3
  704. package/types/helpers/createTamaguiProvider.d.ts +0 -4
  705. package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
  706. package/types/helpers/expandStyles.d.ts.map +0 -1
  707. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  708. package/types/helpers/getExpandedShorthands.d.ts.map +0 -1
  709. package/types/helpers/getFont.d.ts +0 -3
  710. package/types/helpers/getFont.d.ts.map +0 -1
  711. package/types/helpers/getSize.d.ts.map +0 -1
  712. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  713. package/types/helpers/getStackSize.d.ts +0 -8
  714. package/types/helpers/getStackSize.d.ts.map +0 -1
  715. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  716. package/types/helpers/getVariantExtras.d.ts.map +0 -1
  717. package/types/helpers/isTamaguiComponent.d.ts.map +0 -1
  718. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  719. package/types/helpers/nativeGestureHandler.native.d.ts +0 -2
  720. package/types/helpers/themeable.d.ts.map +0 -1
  721. package/types/helpers/validate.d.ts +0 -4
  722. package/types/helpers/wrapThemeManagerContext.d.ts +0 -3
  723. package/types/helpers/wrapThemeManagerContext.d.ts.map +0 -1
  724. package/types/hooks/useConstant.d.ts +0 -2
  725. package/types/hooks/useFeatures.d.ts +0 -24
  726. package/types/hooks/useFeatures.d.ts.map +0 -1
  727. package/types/hooks/useIsMounted.d.ts +0 -3
  728. package/types/hooks/useMedia.d.ts.map +0 -1
  729. package/types/hooks/usePressable.d.ts +0 -3
  730. package/types/hooks/usePrevious.d.ts +0 -1
  731. package/types/hooks/useTheme.d.ts.map +0 -1
  732. package/types/hooks/useUnmountEffect.d.ts +0 -2
  733. package/types/index.d.ts.map +0 -1
  734. package/types/insertFont.d.ts.map +0 -1
  735. package/types/static.d.ts.map +0 -1
  736. package/types/styled.d.ts.map +0 -1
  737. package/types/types.d.ts.map +0 -1
  738. package/types/views/Stack.d.ts.map +0 -1
  739. package/types/views/Text.d.ts.map +0 -1
  740. package/types/views/TextAncestorContext.d.ts +0 -5
  741. package/types/views/TextAncestorContext.d.ts.map +0 -1
  742. package/types/views/Theme.d.ts.map +0 -1
  743. package/types/views/ThemeInverse.d.ts +0 -10
  744. package/types/views/ThemeInverse.d.ts.map +0 -1
  745. package/types/views/ThemeProvider.d.ts.map +0 -1
  746. package/types/views/ThemeReset.d.ts +0 -4
  747. package/types/views/ThemeReset.d.ts.map +0 -1
@@ -1,42 +1,13 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
32
- import { composeEventHandlers, stylePropsView, validStyles } from "@tamagui/helpers";
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useComposedRefs } from "@tamagui/compose-refs";
3
+ import { isClient, isRSC, isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
33
4
  import {
34
- useElementLayout,
35
- useMergeRefs,
36
- usePlatformMethods,
37
- useResponderEvents
38
- } from "@tamagui/rnw";
39
- import { useForceUpdate } from "@tamagui/use-force-update";
5
+ composeEventHandlers,
6
+ stylePropsView,
7
+ validPseudoKeys,
8
+ validStyles
9
+ } from "@tamagui/helpers";
10
+ import { useResponderEvents } from "@tamagui/react-native-use-responder-events";
40
11
  import React, {
41
12
  Children,
42
13
  Fragment,
@@ -45,145 +16,250 @@ import React, {
45
16
  memo,
46
17
  useCallback,
47
18
  useContext,
48
- useMemo,
49
- useRef,
50
- useState
19
+ useEffect,
20
+ useRef
51
21
  } from "react";
52
- import { StyleSheet, Text, View } from "react-native";
53
- import { getConfig, onConfiguredOnce } from "./conf";
22
+ import { onConfiguredOnce } from "./config";
54
23
  import { stackDefaultStyles } from "./constants/constants";
55
- import { isWeb, useIsomorphicLayoutEffect } from "./constants/platform";
56
- import { assignNativePropsToWeb } from "./helpers/assignNativePropsToWeb";
57
- import { getReturnVariablesAs } from "./helpers/createPropMapper";
58
- import { createShallowUpdate } from "./helpers/createShallowUpdate";
24
+ import { FontLanguageContext } from "./contexts/FontLanguageContext";
25
+ import { TextAncestorContext } from "./contexts/TextAncestorContext";
59
26
  import { extendStaticConfig, parseStaticConfig } from "./helpers/extendStaticConfig";
60
- import { insertSplitStyles, useSplitStyles } from "./helpers/getSplitStyles";
27
+ import { getRect } from "./helpers/getRect";
28
+ import { useSplitStyles } from "./helpers/getSplitStyles";
61
29
  import { getAllSelectors } from "./helpers/insertStyleRule";
62
30
  import { mergeProps } from "./helpers/mergeProps";
63
31
  import { proxyThemeVariables } from "./helpers/proxyThemeVariables";
64
- import { wrapThemeManagerContext } from "./helpers/wrapThemeManagerContext";
65
- import { useFeatures } from "./hooks/useFeatures";
66
- import { useIsTouchDevice } from "./hooks/useIsTouchDevice";
67
- import { mediaState } from "./hooks/useMedia";
68
- import { usePressable } from "./hooks/usePressable";
69
- import { getThemeManagerIfChanged, useTheme } from "./hooks/useTheme";
70
- import { Pressability } from "./Pressability";
32
+ import { useShallowSetState } from "./helpers/useShallowSetState";
33
+ import { measureLayout, useElementLayout } from "./hooks/useElementLayout";
34
+ import { addMediaQueryListener, getInitialMediaState } from "./hooks/useMedia";
35
+ import { useServerRef, useServerState } from "./hooks/useServerHooks";
36
+ import { getThemeIsNewTheme, getThemeManager, useTheme } from "./hooks/useTheme";
37
+ import { usePressability } from "./vendor/Pressability";
71
38
  import { Slot, mergeEvent } from "./views/Slot";
72
- import { TextAncestorContext } from "./views/TextAncestorContext";
73
- React["keep"];
74
- const defaultComponentState = Object.freeze({
75
- hover: false,
76
- press: false,
77
- pressIn: false,
78
- focus: false,
79
- mounted: false,
80
- animation: null
81
- });
39
+ import { wrapThemeManagerContext } from "./views/Theme";
40
+ process.env.TAMAGUI_TARGET;
41
+ let defaultComponentState = null;
42
+ let defaultComponentStateMounted = null;
43
+ let tamaguiConfig;
44
+ let AnimatedText;
45
+ let AnimatedView;
46
+ let initialTheme;
82
47
  const mouseUps = /* @__PURE__ */ new Set();
83
48
  if (typeof document !== "undefined") {
84
- document.addEventListener("mouseup", () => {
85
- mouseUps.forEach((x) => x());
86
- mouseUps.clear();
87
- });
88
- document.addEventListener("touchend", () => {
89
- mouseUps.forEach((x) => x());
90
- mouseUps.clear();
91
- });
92
- document.addEventListener("touchcancel", () => {
49
+ const cancelTouches = () => {
93
50
  mouseUps.forEach((x) => x());
94
51
  mouseUps.clear();
95
- });
52
+ };
53
+ addEventListener("mouseup", cancelTouches);
54
+ addEventListener("touchend", cancelTouches);
55
+ addEventListener("touchcancel", cancelTouches);
96
56
  }
97
57
  function mergeShorthands({ defaultProps }, { shorthands }) {
98
- for (const key in defaultProps) {
58
+ for (const key of Object.keys(defaultProps)) {
99
59
  defaultProps[shorthands[key] || key] = defaultProps[key];
100
60
  }
101
61
  }
102
- let initialTheme;
62
+ let BaseText;
63
+ let BaseView;
64
+ if (process.env.TAMAGUI_TARGET === "native") {
65
+ const native = require("react-native");
66
+ BaseText = native.Text || native.default.Text;
67
+ BaseView = native.View || native.default.View;
68
+ }
103
69
  function createComponent(configIn, ParentComponent) {
104
70
  const staticConfig = (() => {
105
- const config = extendStaticConfig(configIn, ParentComponent);
106
- if ("parsed" in config) {
107
- return config;
71
+ const next = extendStaticConfig(configIn, ParentComponent);
72
+ if ("parsed" in next) {
73
+ return next;
108
74
  } else {
109
- return parseStaticConfig(config);
75
+ return parseStaticConfig(next);
110
76
  }
111
77
  })();
112
78
  const defaultComponentClassName = `is_${staticConfig.componentName}`;
113
- let tamaguiConfig;
114
- let AnimatedText;
115
- let AnimatedView;
116
- let avoidClasses = true;
117
79
  let defaultNativeStyle;
118
- let defaultNativeStyleSheet;
119
80
  let tamaguiDefaultProps;
120
- let initialSplitStyles;
81
+ let defaultTag;
121
82
  const component = forwardRef((propsIn, forwardedRef) => {
122
- var _a, _d, _e, _f;
83
+ var _a, _b, _c, _d, _e, _f, _g;
123
84
  let props;
124
85
  if (tamaguiDefaultProps && !propsIn.asChild) {
125
86
  props = mergeProps(tamaguiDefaultProps, propsIn)[0];
126
87
  } else {
127
88
  props = propsIn;
128
89
  }
129
- const hostRef = useRef(null);
90
+ const debugProp = props["debug"];
130
91
  const { Component, isText, isZStack } = staticConfig;
131
92
  const componentName = props.componentName || staticConfig.componentName;
132
93
  const componentClassName = props.asChild ? "" : props.componentName ? `is_${props.componentName}` : defaultComponentClassName;
94
+ const animationsConfig = tamaguiConfig.animations;
95
+ const useAnimations = animationsConfig == null ? void 0 : animationsConfig.useAnimations;
96
+ const avoidClassesWhileAnimating = animationsConfig.isReactNative;
97
+ const hasEnterStyle = !!props.enterStyle;
98
+ const needsMount = Boolean((isWeb ? isClient : true) && (hasEnterStyle || props.animation));
99
+ const states = useServerState(
100
+ needsMount ? defaultComponentState : defaultComponentStateMounted
101
+ );
102
+ const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0];
103
+ const setState = states[1];
104
+ const setStateShallow = useShallowSetState(setState, debugProp, componentName);
105
+ const stateRef = useRef(
106
+ void 0
107
+ );
108
+ stateRef.current ??= {};
109
+ const isAnimated = (() => {
110
+ const next = !!(useAnimations && props.animation);
111
+ if (next && !stateRef.current.hasAnimated) {
112
+ stateRef.current.hasAnimated = true;
113
+ }
114
+ return next || stateRef.current.hasAnimated;
115
+ })();
116
+ const usePresence = (_a = tamaguiConfig.animations) == null ? void 0 : _a.usePresence;
117
+ const presence = !isRSC && isAnimated ? usePresence() : null;
118
+ if (isAnimated && presence) {
119
+ const presenceState = presence[2];
120
+ if (presenceState) {
121
+ if (state.unmounted && presenceState.enterVariant) {
122
+ props[presenceState.enterVariant] = true;
123
+ }
124
+ if (!presenceState.isPresent && presenceState.exitVariant) {
125
+ props[presenceState.exitVariant] = true;
126
+ }
127
+ }
128
+ }
129
+ const isReactNative = Boolean(
130
+ staticConfig.isReactNative || isAnimated && tamaguiConfig.animations.isReactNative
131
+ );
133
132
  if (process.env.NODE_ENV === "development") {
134
- if (props["debug"]) {
133
+ if (debugProp) {
135
134
  const name = `${componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]"}`;
136
- const banner = `${name} ${propsIn["data-is"] || ""}`;
137
- console.group(`%c \u{1F41B} ${banner}`, "background: yellow;");
138
- console.log("props", propsIn);
139
- console.log("ref", hostRef);
140
- if (props["debug"] === "break") {
141
- debugger;
135
+ const type = isReactNative ? "(rnw)" : "";
136
+ const dataIs = propsIn["data-is"] || "";
137
+ const banner = `${name}${dataIs ? ` ${dataIs}` : ""} ${type}`;
138
+ console.group(`%c ${banner}`, "background: yellow;");
139
+ if (!isServer) {
140
+ console.log(`state`, state);
142
141
  }
143
142
  }
144
143
  }
145
- const forceUpdate = useForceUpdate();
146
- const theme = useTheme(props.theme, componentName, props, forceUpdate);
147
- const statesUsed = useState(defaultComponentState);
148
- const setStateShallow = createShallowUpdate(statesUsed[1]);
149
- let state = statesUsed[0];
150
- if (propsIn.forceStyle) {
151
- state = __spreadProps(__spreadValues({}, state), {
152
- [propsIn.forceStyle]: true
153
- });
154
- }
155
- const shouldAvoidClasses = !!(props.animation && avoidClasses);
144
+ const shouldAvoidClasses = !isWeb || !!(props.animation && avoidClassesWhileAnimating) || !staticConfig.acceptsClassName;
156
145
  const shouldForcePseudo = !!propsIn.forceStyle;
157
- const hasTextAncestor = !!(isWeb ? useContext(TextAncestorContext) : false);
158
- const splitStyleState = !shouldAvoidClasses && !shouldForcePseudo ? __spreadProps(__spreadValues({}, state), {
159
- hasTextAncestor,
160
- dynamicStylesInline: true
161
- }) : __spreadProps(__spreadValues({}, state), {
162
- noClassNames: true,
163
- dynamicStylesInline: true,
164
- hasTextAncestor,
165
- resolveVariablesAs: "value"
146
+ const noClassNames = shouldAvoidClasses || shouldForcePseudo;
147
+ const theme = useTheme({
148
+ name: props.theme,
149
+ componentName,
150
+ reset: props.reset,
151
+ inverse: props.themeInverse,
152
+ disable: props["data-themeable"],
153
+ debug: props.debug
166
154
  });
167
- const splitStyles = useSplitStyles(props, staticConfig, theme, splitStyleState, props.asChild ? null : initialSplitStyles.classNames, props["debug"]);
168
- const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitStyles;
169
- const useAnimations = (_a = tamaguiConfig.animations) == null ? void 0 : _a.useAnimations;
170
- const isAnimated = !!(useAnimations && props.animation);
171
- const hasEnterStyle = !!props.enterStyle;
172
- const animationFeatureStylesIn = props.animation ? __spreadValues(__spreadValues({}, defaultNativeStyle), style) : null;
173
- const features = useFeatures(props, {
174
- forceUpdate,
175
- setStateShallow,
176
- useAnimations,
177
- state,
178
- style: animationFeatureStylesIn,
179
- pseudos,
155
+ const themeManager = getThemeManager(theme);
156
+ const themeIsNew = getThemeIsNewTheme(theme);
157
+ const shouldSetMounted = needsMount && state.unmounted;
158
+ const setMounted = shouldSetMounted ? () => {
159
+ setTimeout(
160
+ () => {
161
+ setStateShallow({
162
+ unmounted: false
163
+ });
164
+ },
165
+ isWeb ? 10 : 0
166
+ );
167
+ } : void 0;
168
+ const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false);
169
+ const languageContext = isRSC ? null : useContext(FontLanguageContext);
170
+ const isDisabled = props.disabled ?? ((_b = props.accessibilityState) == null ? void 0 : _b.disabled);
171
+ const isTaggable = !Component || typeof Component === "string";
172
+ const element = isWeb ? isTaggable ? props.tag || defaultTag || Component : Component : Component;
173
+ const BaseTextComponent = BaseText || element || "span";
174
+ const BaseViewComponent = BaseView || element || (hasTextAncestor ? "span" : "div");
175
+ let elementType = isText ? (isAnimated ? AnimatedText : null) || BaseTextComponent : (isAnimated ? AnimatedView : null) || BaseViewComponent;
176
+ elementType = Component || elementType;
177
+ const isStringElement = typeof elementType === "string";
178
+ const isExiting = (presence == null ? void 0 : presence[0]) === false;
179
+ const splitStyles = useSplitStyles(
180
+ props,
180
181
  staticConfig,
181
182
  theme,
182
- hostRef,
183
- onDidAnimate: props.onDidAnimate
184
- });
185
- const _b = viewPropsIn, {
186
- tag,
183
+ {
184
+ ...state,
185
+ noClassNames,
186
+ dynamicStylesInline: noClassNames,
187
+ hasTextAncestor,
188
+ resolveVariablesAs: "value",
189
+ isExiting
190
+ },
191
+ null,
192
+ languageContext || void 0,
193
+ elementType,
194
+ debugProp
195
+ );
196
+ const hostRef = useServerRef(null);
197
+ const isAnimatedReactNativeWeb = isAnimated && avoidClassesWhileAnimating;
198
+ if (process.env.NODE_ENV === "development") {
199
+ if (!process.env.TAMAGUI_TARGET) {
200
+ console.error(`No process.env.TAMAGUI_TARGET set, please set it to "native" or "web".`);
201
+ }
202
+ if (debugProp) {
203
+ console.groupCollapsed("props");
204
+ console.log("props in", propsIn, "mapped to", props, "in order", Object.keys(props));
205
+ console.log("splitStyles", splitStyles);
206
+ console.log("className", Object.values(splitStyles.classNames));
207
+ if (isClient) {
208
+ console.log("ref", hostRef, "(click to view)");
209
+ }
210
+ console.groupEnd();
211
+ if (debugProp === "break") {
212
+ debugger;
213
+ }
214
+ }
215
+ }
216
+ const {
217
+ viewProps: viewPropsIn,
218
+ pseudos,
219
+ medias,
220
+ style: splitStylesStyle,
221
+ classNames,
222
+ mediaKeys
223
+ } = splitStyles;
224
+ const propsWithAnimation = props;
225
+ let animationStyles;
226
+ if (!isRSC && isAnimated && useAnimations) {
227
+ const animations = useAnimations({
228
+ props: propsWithAnimation,
229
+ style: splitStylesStyle,
230
+ presence,
231
+ state,
232
+ pseudos,
233
+ onDidAnimate: props.onDidAnimate,
234
+ hostRef,
235
+ staticConfig
236
+ });
237
+ if (animations) {
238
+ animationStyles = animations.style;
239
+ }
240
+ }
241
+ useIsomorphicLayoutEffect(() => {
242
+ const disposers = mediaKeys.map((key) => {
243
+ return addMediaQueryListener(key, (next) => {
244
+ setState((prev) => {
245
+ if (prev.mediaState[key] !== next) {
246
+ return {
247
+ ...prev,
248
+ mediaState: getMediaStateObject({
249
+ ...prev.mediaState,
250
+ [key]: next
251
+ })
252
+ };
253
+ }
254
+ return prev;
255
+ });
256
+ });
257
+ });
258
+ return () => {
259
+ disposers.forEach((d) => d());
260
+ };
261
+ }, [mediaKeys.join(",")]);
262
+ const {
187
263
  hitSlop,
188
264
  asChild,
189
265
  children,
@@ -192,6 +268,7 @@ function createComponent(configIn, ParentComponent) {
192
268
  onPressOut,
193
269
  onHoverIn,
194
270
  onHoverOut,
271
+ themeShallow,
195
272
  space: spaceProp,
196
273
  spaceDirection: _spaceDirection,
197
274
  disabled: disabledProp,
@@ -204,42 +281,13 @@ function createComponent(configIn, ParentComponent) {
204
281
  forceStyle: _forceStyle,
205
282
  onClick,
206
283
  theme: _themeProp,
207
- defaultVariants
208
- } = _b, nonTamaguiProps = __objRest(_b, [
209
- "tag",
210
- "hitSlop",
211
- "asChild",
212
- "children",
213
- "onPress",
214
- "onPressIn",
215
- "onPressOut",
216
- "onHoverIn",
217
- "onHoverOut",
218
- "space",
219
- "spaceDirection",
220
- "disabled",
221
- "onMouseUp",
222
- "onMouseDown",
223
- "onMouseEnter",
224
- "onMouseLeave",
225
- "hrefAttrs",
226
- "separator",
227
- "forceStyle",
228
- "onClick",
229
- "theme",
230
- "defaultVariants"
231
- ]);
232
- const isTaggable = !Component || typeof Component === "string";
233
- const element = isWeb ? isTaggable ? tag || Component : Component : Component;
234
- const BaseTextComponent = !isWeb ? Text : element || "span";
235
- const BaseViewComponent = !isWeb ? View : element || (hasTextAncestor ? "span" : "div");
236
- let elementType = isText ? (isAnimated ? AnimatedText || Text : null) || BaseTextComponent : (isAnimated ? AnimatedView || View : null) || BaseViewComponent;
237
- elementType = Component || elementType;
238
- const isStringElement = typeof elementType === "string";
284
+ defaultVariants,
285
+ ...nonTamaguiProps
286
+ } = viewPropsIn;
239
287
  const disabled = props.accessibilityState != null && props.accessibilityState.disabled === true || props.accessibilityDisabled;
240
288
  let viewProps;
241
- if (process.env.TAMAGUI_TARGET === "web" && !staticConfig.isReactNativeWeb) {
242
- const _c = nonTamaguiProps, {
289
+ if (process.env.TAMAGUI_TARGET === "web" && !isReactNative) {
290
+ const {
243
291
  onMoveShouldSetResponder,
244
292
  onMoveShouldSetResponderCapture,
245
293
  onResponderEnd,
@@ -256,154 +304,36 @@ function createComponent(configIn, ParentComponent) {
256
304
  onSelectionChangeShouldSetResponderCapture,
257
305
  onStartShouldSetResponder,
258
306
  onStartShouldSetResponderCapture,
259
- nativeID,
260
- accessibilityActiveDescendant,
261
- accessibilityAtomic,
262
- accessibilityAutoComplete,
263
- accessibilityBusy,
264
- accessibilityChecked,
265
- accessibilityColumnCount,
266
- accessibilityColumnIndex,
267
- accessibilityColumnSpan,
268
- accessibilityControls,
269
- accessibilityCurrent,
270
- accessibilityDescribedBy,
271
- accessibilityDetails,
272
- accessibilityDisabled,
273
- accessibilityErrorMessage,
274
- accessibilityExpanded,
275
- accessibilityFlowTo,
276
- accessibilityHasPopup,
277
- accessibilityHidden,
278
- accessibilityInvalid,
279
- accessibilityKeyShortcuts,
280
- accessibilityLabel,
281
- accessibilityLabelledBy,
282
- accessibilityLevel,
283
- accessibilityLiveRegion,
284
- accessibilityModal,
285
- accessibilityMultiline,
286
- accessibilityMultiSelectable,
287
- accessibilityOrientation,
288
- accessibilityOwns,
289
- accessibilityPlaceholder,
290
- accessibilityPosInSet,
291
- accessibilityPressed,
292
- accessibilityReadOnly,
293
- accessibilityRequired,
294
- accessibilityRole,
295
- accessibilityRoleDescription,
296
- accessibilityRowCount,
297
- accessibilityRowIndex,
298
- accessibilityRowSpan,
299
- accessibilitySelected,
300
- accessibilitySetSize,
301
- accessibilitySort,
302
- accessibilityValueMax,
303
- accessibilityValueMin,
304
- accessibilityValueNow,
305
- accessibilityValueText,
306
- accessible,
307
- accessibilityState,
308
- accessibilityValue,
309
307
  collapsable,
310
308
  focusable,
311
- onLayout
312
- } = _c, webProps = __objRest(_c, [
313
- "onMoveShouldSetResponder",
314
- "onMoveShouldSetResponderCapture",
315
- "onResponderEnd",
316
- "onResponderGrant",
317
- "onResponderMove",
318
- "onResponderReject",
319
- "onResponderRelease",
320
- "onResponderStart",
321
- "onResponderTerminate",
322
- "onResponderTerminationRequest",
323
- "onScrollShouldSetResponder",
324
- "onScrollShouldSetResponderCapture",
325
- "onSelectionChangeShouldSetResponder",
326
- "onSelectionChangeShouldSetResponderCapture",
327
- "onStartShouldSetResponder",
328
- "onStartShouldSetResponderCapture",
329
- "nativeID",
330
- "accessibilityActiveDescendant",
331
- "accessibilityAtomic",
332
- "accessibilityAutoComplete",
333
- "accessibilityBusy",
334
- "accessibilityChecked",
335
- "accessibilityColumnCount",
336
- "accessibilityColumnIndex",
337
- "accessibilityColumnSpan",
338
- "accessibilityControls",
339
- "accessibilityCurrent",
340
- "accessibilityDescribedBy",
341
- "accessibilityDetails",
342
- "accessibilityDisabled",
343
- "accessibilityErrorMessage",
344
- "accessibilityExpanded",
345
- "accessibilityFlowTo",
346
- "accessibilityHasPopup",
347
- "accessibilityHidden",
348
- "accessibilityInvalid",
349
- "accessibilityKeyShortcuts",
350
- "accessibilityLabel",
351
- "accessibilityLabelledBy",
352
- "accessibilityLevel",
353
- "accessibilityLiveRegion",
354
- "accessibilityModal",
355
- "accessibilityMultiline",
356
- "accessibilityMultiSelectable",
357
- "accessibilityOrientation",
358
- "accessibilityOwns",
359
- "accessibilityPlaceholder",
360
- "accessibilityPosInSet",
361
- "accessibilityPressed",
362
- "accessibilityReadOnly",
363
- "accessibilityRequired",
364
- "accessibilityRole",
365
- "accessibilityRoleDescription",
366
- "accessibilityRowCount",
367
- "accessibilityRowIndex",
368
- "accessibilityRowSpan",
369
- "accessibilitySelected",
370
- "accessibilitySetSize",
371
- "accessibilitySort",
372
- "accessibilityValueMax",
373
- "accessibilityValueMin",
374
- "accessibilityValueNow",
375
- "accessibilityValueText",
376
- "accessible",
377
- "accessibilityState",
378
- "accessibilityValue",
379
- "collapsable",
380
- "focusable",
381
- "onLayout"
382
- ]);
309
+ accessible,
310
+ accessibilityDisabled,
311
+ onLayout,
312
+ ...webProps
313
+ } = nonTamaguiProps;
383
314
  viewProps = webProps;
384
- assignNativePropsToWeb(elementType, viewProps, nonTamaguiProps);
385
- useElementLayout(hostRef, onLayout);
386
- useResponderEvents(hostRef, {
387
- onMoveShouldSetResponder,
388
- onMoveShouldSetResponderCapture,
389
- onResponderEnd,
390
- onResponderGrant,
391
- onResponderMove,
392
- onResponderReject,
393
- onResponderRelease,
394
- onResponderStart,
395
- onResponderTerminate,
396
- onResponderTerminationRequest,
397
- onScrollShouldSetResponder,
398
- onScrollShouldSetResponderCapture,
399
- onSelectionChangeShouldSetResponder,
400
- onSelectionChangeShouldSetResponderCapture,
401
- onStartShouldSetResponder,
402
- onStartShouldSetResponderCapture
403
- });
404
- const platformMethodsRef = usePlatformMethods(viewProps);
405
- const setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);
406
- viewProps.ref = setRef;
315
+ if (!isRSC) {
316
+ usePlatformMethods(hostRef);
317
+ useElementLayout(hostRef, onLayout);
318
+ useResponderEvents(hostRef, {
319
+ onMoveShouldSetResponder,
320
+ onMoveShouldSetResponderCapture,
321
+ onResponderEnd,
322
+ onResponderGrant,
323
+ onResponderMove,
324
+ onResponderReject,
325
+ onResponderRelease,
326
+ onResponderStart,
327
+ onResponderTerminate,
328
+ onResponderTerminationRequest,
329
+ onScrollShouldSetResponder,
330
+ onScrollShouldSetResponderCapture,
331
+ onSelectionChangeShouldSetResponder,
332
+ onSelectionChangeShouldSetResponderCapture,
333
+ onStartShouldSetResponder,
334
+ onStartShouldSetResponderCapture
335
+ });
336
+ }
407
337
  if (props.href != void 0 && hrefAttrs != void 0) {
408
338
  const { download, rel, target } = hrefAttrs;
409
339
  if (download != null) {
@@ -435,10 +365,8 @@ function createComponent(configIn, ParentComponent) {
435
365
  }
436
366
  } else {
437
367
  viewProps = nonTamaguiProps;
438
- if (forwardedRef) {
439
- viewProps.ref = forwardedRef;
440
- }
441
368
  }
369
+ viewProps.ref = useComposedRefs(hostRef, forwardedRef, setMounted);
442
370
  if (process.env.NODE_ENV === "development" && !isText && isWeb) {
443
371
  Children.toArray(props.children).forEach((item) => {
444
372
  if (typeof item === "string") {
@@ -446,211 +374,211 @@ function createComponent(configIn, ParentComponent) {
446
374
  }
447
375
  });
448
376
  }
449
- const internal = useRef();
450
- if (!internal.current) {
451
- internal.current = {
452
- isMounted: true
453
- };
377
+ const unPress = useCallback(() => {
378
+ setStateShallow({
379
+ press: false,
380
+ pressIn: false
381
+ });
382
+ }, [setStateShallow]);
383
+ if (!isRSC) {
384
+ useEffect(() => {
385
+ return () => {
386
+ mouseUps.delete(unPress);
387
+ };
388
+ }, [unPress]);
454
389
  }
455
- useIsomorphicLayoutEffect(() => {
456
- if (typeof window !== "undefined" && (hasEnterStyle || props.animation)) {
457
- setStateShallow({
458
- mounted: true
459
- });
460
- }
461
- internal.current.isMounted = true;
462
- return () => {
463
- var _a2;
464
- mouseUps.delete(unPress);
465
- internal.current.isMounted = false;
466
- (_a2 = internal.current.unmountEffects) == null ? void 0 : _a2.forEach((cb) => cb());
467
- };
468
- }, [hasEnterStyle, props.animation]);
469
390
  let styles;
470
- const animationStyles = state.animation ? state.animation.style : null;
471
391
  if (isStringElement && shouldAvoidClasses && !shouldForcePseudo) {
472
- styles = __spreadValues(__spreadValues(__spreadValues({}, defaultNativeStyle), animationStyles ?? style), medias);
392
+ styles = {
393
+ ...defaultNativeStyle,
394
+ ...animationStyles ?? splitStylesStyle,
395
+ ...medias
396
+ };
473
397
  } else {
474
- styles = [
475
- isWeb ? null : defaultNativeStyleSheet ? defaultNativeStyleSheet.base : null,
476
- animationStyles ?? style,
477
- medias
478
- ];
479
- if (!animationStyles) {
480
- const initPseudos = initialSplitStyles.pseudos;
481
- const force = shouldForcePseudo;
482
- !state.mounted && addPseudoToStyles(styles, initPseudos, pseudos, "enterStyle");
483
- state.hover && addPseudoToStyles(styles, initPseudos, pseudos, "hoverStyle", force);
484
- state.focus && addPseudoToStyles(styles, initPseudos, pseudos, "focusStyle", force);
485
- state.press && addPseudoToStyles(styles, initPseudos, pseudos, "pressStyle", force);
486
- }
398
+ styles = [isWeb ? null : defaultNativeStyle, animationStyles ?? splitStylesStyle, medias];
487
399
  if (shouldForcePseudo) {
488
400
  const next = {};
489
- for (const style2 of styles) {
490
- if (style2) {
491
- Object.assign(next, style2);
492
- }
493
- }
401
+ styles.forEach((style) => Object.assign(next, style));
494
402
  Object.assign(splitStyles.style, next);
495
403
  }
496
404
  }
405
+ let fontFamily = isText ? splitStyles.fontFamily || staticConfig.defaultProps.fontFamily : null;
406
+ if (fontFamily && fontFamily[0] === "$") {
407
+ fontFamily = fontFamily.slice(1);
408
+ }
409
+ const fontFamilyClassName = fontFamily ? `font_${fontFamily}` : "";
410
+ const classList = [
411
+ componentName ? componentClassName : "",
412
+ fontFamilyClassName,
413
+ themeIsNew ? theme.className : "",
414
+ classNames ? Object.values(classNames).join(" ") : ""
415
+ ];
416
+ const className = classList.join(" ");
497
417
  if (process.env.TAMAGUI_TARGET === "web") {
498
- const fontFamilyName = isText ? props.fontFamily || staticConfig.defaultProps.fontFamily : null;
499
- const fontFamily = fontFamilyName && fontFamilyName[0] === "$" ? fontFamilyName.slice(1) : null;
500
- const classList = [
501
- componentName ? componentClassName : "",
502
- fontFamily ? `font_${fontFamily}` : "",
503
- theme.className,
504
- classNames ? Object.values(classNames).join(" ") : ""
505
- ];
506
- const className = classList.join(" ");
507
- const style2 = animationStyles ?? splitStyles.style;
508
- const isAnimatedReactNativeWeb = props.animation && avoidClasses;
509
- if (staticConfig.isReactNativeWeb || isAnimatedReactNativeWeb) {
510
- viewProps.dataSet = __spreadProps(__spreadValues({}, viewProps.dataSet), {
511
- className,
512
- id: props.id
513
- });
514
- if (props["data-is"]) {
515
- viewProps.dataSet.is = props["data-is"];
418
+ const style = animationStyles ?? splitStyles.style;
419
+ if (isAnimatedReactNativeWeb) {
420
+ viewProps.style = style;
421
+ } else if (isReactNative) {
422
+ const rnwStyle = { $$css: true };
423
+ for (const name of className.split(" ")) {
424
+ rnwStyle[name] = name;
425
+ }
426
+ viewProps.style = [rnwStyle, ...Array.isArray(style) ? style : [style]];
427
+ if (process.env.NODE_ENV === "development") {
428
+ Object.keys(viewProps).forEach((key) => {
429
+ if (key.startsWith("data-")) {
430
+ viewProps.dataSet ??= {};
431
+ viewProps.dataSet[key.replace("data-", "")] = viewProps[key];
432
+ delete viewProps[key];
433
+ }
434
+ });
516
435
  }
517
436
  } else {
518
437
  viewProps.className = className;
438
+ viewProps.style = style;
439
+ }
440
+ }
441
+ if (process.env.TAMAGUI_TARGET === "native") {
442
+ if (splitStyles.fontFamily) {
443
+ const faceInfo = (_c = tamaguiConfig.fontsParsed[splitStyles.fontFamily]) == null ? void 0 : _c.face;
444
+ if (faceInfo) {
445
+ const [weight, style] = (() => {
446
+ var _a2, _b2;
447
+ let weight2;
448
+ let style2;
449
+ for (let i = styles.length; i >= 0; i--) {
450
+ weight2 ??= (_a2 = styles[i]) == null ? void 0 : _a2.fontWeight;
451
+ style2 ??= (_b2 = styles[i]) == null ? void 0 : _b2.fontStyle;
452
+ }
453
+ return [weight2 || "400", style2 || "normal"];
454
+ })();
455
+ const overrideFace = (_e = (_d = faceInfo[weight]) == null ? void 0 : _d[style]) == null ? void 0 : _e.val;
456
+ if (overrideFace) {
457
+ for (const style2 of styles) {
458
+ if (style2 == null ? void 0 : style2.fontFamily) {
459
+ style2.fontFamily = overrideFace;
460
+ delete style2.fontWeight;
461
+ delete style2.fontStyle;
462
+ }
463
+ }
464
+ }
465
+ }
519
466
  }
520
- viewProps.style = style2;
521
- } else {
522
467
  viewProps.style = styles;
523
468
  }
524
- const initialPseudos = initialSplitStyles.pseudos;
525
- const attachPress = !!((pseudos == null ? void 0 : pseudos.pressStyle) || (initialPseudos == null ? void 0 : initialPseudos.pressStyle) || onPress || onPressOut || onPressIn || onClick);
526
- const isTouch = useIsTouchDevice();
527
- const isHoverable = isWeb && !isTouch;
528
- const attachHover = isHoverable && !!(pseudos && pseudos.hoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
529
- const handlesPressEvents = !isStringElement && !asChild;
530
- const pressKey = handlesPressEvents ? "onPress" : "onClick";
531
- const pressInKey = handlesPressEvents ? "onPressIn" : "onMouseDown";
532
- const pressOutKey = handlesPressEvents ? "onPressOut" : "onMouseUp";
533
- const shouldAttach = !asChild && (attachPress || attachHover || "pressStyle" in props || "onPress" in props || "onPressIn" in props || "onPressOut" in props || isWeb && ("hoverStyle" in props || "onHoverIn" in props || "onHoverOut" in props || "onMouseEnter" in props || "onMouseLeave" in props));
534
- const unPress = useCallback(() => {
535
- if (!internal.current.isMounted)
536
- return;
537
- setStateShallow({
538
- press: false,
539
- pressIn: false
540
- });
541
- }, []);
542
- const events = shouldAttach ? __spreadValues(__spreadProps(__spreadValues({
543
- [pressOutKey]: attachPress ? (e) => {
469
+ const runtimePressStyle = !disabled && noClassNames && (pseudos == null ? void 0 : pseudos.pressStyle);
470
+ const attachPress = !!(runtimePressStyle || onPress || onPressOut || onPressIn || onClick);
471
+ const runtimeHoverStyle = !disabled && noClassNames && (pseudos == null ? void 0 : pseudos.hoverStyle);
472
+ const isHoverable = isWeb && !!(runtimeHoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
473
+ const handlesPressEvents = !isWeb && !asChild;
474
+ const shouldAttach = asChild ? false : Boolean(
475
+ attachPress || isHoverable || "pressStyle" in props || "onPress" in props || "onPressIn" in props || "onPressOut" in props || isWeb && ("hoverStyle" in props || "onHoverIn" in props || "onHoverOut" in props || "onMouseEnter" in props || "onMouseLeave" in props)
476
+ );
477
+ const events = shouldAttach && !isRSC && !isDisabled ? {
478
+ onPressOut: attachPress ? (e) => {
544
479
  unPress();
545
480
  onPressOut == null ? void 0 : onPressOut(e);
546
481
  onMouseUp == null ? void 0 : onMouseUp(e);
547
- } : void 0
548
- }, isHoverable && {
549
- onMouseEnter: attachHover ? (e) => {
550
- const next = {};
551
- if (attachHover) {
552
- next.hover = true;
553
- }
554
- if (state.pressIn) {
555
- next.press = true;
556
- }
557
- if (Object.keys(next).length) {
558
- setStateShallow(next);
559
- }
560
- onHoverIn == null ? void 0 : onHoverIn(e);
561
- onMouseEnter == null ? void 0 : onMouseEnter(e);
562
482
  } : void 0,
563
- onMouseLeave: attachHover ? (e) => {
564
- const next = {};
565
- mouseUps.add(unPress);
566
- if (attachHover) {
567
- next.hover = false;
568
- }
569
- if (state.pressIn) {
570
- next.press = false;
571
- next.pressIn = false;
572
- }
573
- if (Object.keys(next).length) {
574
- setStateShallow(next);
575
- }
576
- onHoverOut == null ? void 0 : onHoverOut(e);
577
- onMouseLeave == null ? void 0 : onMouseLeave(e);
578
- } : void 0
579
- }), {
580
- [pressInKey]: attachPress ? (e) => {
483
+ ...isHoverable && {
484
+ onMouseEnter: isHoverable ? (e) => {
485
+ const next = {};
486
+ if (isHoverable) {
487
+ next.hover = true;
488
+ }
489
+ if (state.pressIn) {
490
+ next.press = true;
491
+ }
492
+ if (isHoverable || state.pressIn) {
493
+ setStateShallow(next);
494
+ }
495
+ onHoverIn == null ? void 0 : onHoverIn(e);
496
+ onMouseEnter == null ? void 0 : onMouseEnter(e);
497
+ } : void 0,
498
+ onMouseLeave: isHoverable ? (e) => {
499
+ const next = {};
500
+ mouseUps.add(unPress);
501
+ if (isHoverable) {
502
+ next.hover = false;
503
+ }
504
+ if (state.pressIn) {
505
+ next.press = false;
506
+ next.pressIn = false;
507
+ }
508
+ if (Object.keys(next).length) {
509
+ setStateShallow(next);
510
+ }
511
+ onHoverOut == null ? void 0 : onHoverOut(e);
512
+ onMouseLeave == null ? void 0 : onMouseLeave(e);
513
+ } : void 0
514
+ },
515
+ onPressIn: attachPress ? (e) => {
581
516
  setStateShallow({
582
517
  press: true,
583
- pressIn: true
518
+ pressIn: true,
519
+ hover: false
584
520
  });
585
521
  onPressIn == null ? void 0 : onPressIn(e);
586
522
  onMouseDown == null ? void 0 : onMouseDown(e);
587
523
  if (isWeb) {
588
524
  mouseUps.add(unPress);
589
525
  }
590
- } : null,
591
- [pressKey]: attachPress ? (e) => {
526
+ } : void 0,
527
+ onPress: attachPress ? (e) => {
592
528
  unPress();
593
529
  onClick == null ? void 0 : onClick(e);
594
530
  onPress == null ? void 0 : onPress(e);
595
- } : null
596
- }), !isWeb && {
597
- cancelable: !props.rejectResponderTermination,
598
- disabled: props.disabled !== null ? props.disabled : (_d = props.accessibilityState) == null ? void 0 : _d.disabled,
599
- hitSlop: props.hitSlop,
600
- delayLongPress: props.delayLongPress,
601
- delayPressIn: props.delayPressIn,
602
- delayPressOut: props.delayPressOut,
603
- focusable: viewProps.focusable ?? true,
604
- minPressDuration: 0
605
- }) : null;
531
+ } : void 0,
532
+ ...!isWeb && {
533
+ cancelable: !props.rejectResponderTermination,
534
+ disabled: isDisabled,
535
+ hitSlop: props.hitSlop,
536
+ delayLongPress: props.delayLongPress,
537
+ delayPressIn: props.delayPressIn,
538
+ delayPressOut: props.delayPressOut,
539
+ focusable: viewProps.focusable ?? true,
540
+ minPressDuration: 0
541
+ }
542
+ } : null;
606
543
  let space = spaceProp;
607
- if (features.enabled.mediaQuery) {
608
- for (const key in mediaState) {
609
- if (!mediaState[key])
610
- continue;
611
- if (props[key] && props[key].space !== void 0) {
544
+ if (state.mediaState && mediaKeys.length) {
545
+ for (const key in state.mediaState) {
546
+ if (key in state.mediaState && key in props && props[key].space !== void 0) {
612
547
  space = props[key].space;
613
548
  }
614
549
  }
615
550
  }
616
- const childEls = !children || asChild ? children : wrapThemeManagerContext(spacedChildren({
617
- separator,
618
- children,
619
- space,
620
- direction: props.spaceDirection || "both",
621
- isZStack
622
- }), getThemeManagerIfChanged(theme));
551
+ const themeShouldReset = Boolean(themeShallow && themeManager && themeIsNew);
552
+ const shouldProvideThemeManager = themeShouldReset || themeManager && themeIsNew;
553
+ if (shouldProvideThemeManager) {
554
+ stateRef.current.hasProvidedThemeManager = true;
555
+ }
556
+ if (themeShouldReset) {
557
+ stateRef.current.themeShouldReset = true;
558
+ }
559
+ const childEls = !children || asChild ? children : wrapThemeManagerContext(
560
+ spacedChildren({
561
+ separator,
562
+ children,
563
+ space,
564
+ direction: props.spaceDirection || "both",
565
+ isZStack
566
+ }),
567
+ stateRef.current.hasProvidedThemeManager ? themeManager : void 0,
568
+ stateRef.current.themeShouldReset
569
+ );
623
570
  let content;
624
571
  if (asChild) {
625
572
  elementType = Slot;
626
- viewProps = __spreadProps(__spreadValues({}, viewProps), {
573
+ viewProps = {
574
+ ...viewProps,
627
575
  onPress,
628
576
  onPressIn,
629
577
  onPressOut
630
- });
631
- }
632
- if (isWeb) {
633
- const [pressableProps] = usePressable(events ? __spreadProps(__spreadValues({
634
- disabled
635
- }, hitSlop && {
636
- hitSlop
637
- }), {
638
- onPressOut: events[pressOutKey],
639
- onPressIn: events[pressInKey],
640
- onPress: events[pressKey]
641
- }) : {
642
- disabled: true
643
- });
644
- if (events) {
645
- if (handlesPressEvents) {
646
- Object.assign(viewProps, pressableProps);
647
- } else {
648
- Object.assign(viewProps, events);
649
- }
650
- }
578
+ };
651
579
  }
652
580
  if (process.env.TAMAGUI_TARGET === "native") {
653
- const attachFocus = !!(pseudos && pseudos.focusStyle || initialPseudos && initialPseudos.focusStyle);
581
+ const attachFocus = !!pseudos.focusStyle;
654
582
  if (attachFocus) {
655
583
  viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {
656
584
  setStateShallow({ focus: true });
@@ -659,110 +587,114 @@ function createComponent(configIn, ParentComponent) {
659
587
  setStateShallow({ focus: false });
660
588
  });
661
589
  }
662
- }
663
- if (process.env.TAMAGUI_TARGET === "native") {
664
- const pressability = useMemo(() => {
665
- if (attachPress && events) {
666
- const pressability2 = new Pressability(events);
667
- internal.current.unmountEffects = [
668
- () => {
669
- pressability2.reset();
670
- }
671
- ];
672
- return pressability2;
673
- }
674
- }, []);
590
+ const pressability = usePressability(events ? { ...events, hitSlop } : {});
675
591
  if (attachPress && events) {
676
- pressability.configure(events);
677
- const eventHandlers = pressability.getEventHandlers();
678
- for (const key in eventHandlers) {
679
- if (key === "onBlur" || key === "onFocus") {
680
- continue;
681
- }
592
+ for (const key in pressability) {
682
593
  const og = props[key];
683
- const val = eventHandlers[key];
684
- viewProps[key] = og ? composeEventHandlers(og, val) : val;
594
+ const val = pressability[key];
595
+ viewProps[key] = og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val;
685
596
  }
686
597
  }
687
598
  }
688
599
  content = createElement(elementType, viewProps, childEls);
689
600
  if (process.env.TAMAGUI_TARGET === "web") {
690
- const isAnimatedRNWView = isAnimated && typeof elementType !== "string";
691
- const shouldWrapWithComponentTheme = isAnimatedRNWView && getReturnVariablesAs(props, splitStyleState) === "non-color-value";
692
- const shouldWrapWithHover = events && attachHover;
693
- if (shouldWrapWithHover || shouldWrapWithComponentTheme) {
694
- const themeClassName = shouldWrapWithComponentTheme ? `${theme.className}` : "";
695
- const hoverClassName = shouldWrapWithHover ? "t_Hoverable" : "";
696
- content = /* @__PURE__ */ React.createElement("span", __spreadValues({
697
- className: `${hoverClassName} ${themeClassName}`,
698
- style: {
699
- display: "contents"
700
- }
701
- }, shouldWrapWithHover && {
702
- onMouseEnter: events.onMouseEnter,
703
- onMouseLeave: events.onMouseLeave
704
- }), content);
601
+ if (events || isAnimatedReactNativeWeb) {
602
+ content = /* @__PURE__ */ jsx("span", {
603
+ className: (isAnimatedReactNativeWeb ? className : "") + ` _dsp_contents`,
604
+ ...events && {
605
+ onMouseEnter: events.onMouseEnter,
606
+ onMouseLeave: events.onMouseLeave,
607
+ onClick: events.onPress,
608
+ onMouseDown: events.onPressIn,
609
+ onMouseUp: events.onPressOut,
610
+ onTouchStart: events.onPressIn,
611
+ onTouchEnd: events.onPressOut
612
+ },
613
+ children: content
614
+ });
705
615
  }
706
616
  }
707
- if (process.env.NODE_ENV === "development") {
708
- if (props["debug"]) {
709
- console.groupCollapsed(elementType, `props out`, viewProps);
617
+ if (process.env.NODE_ENV === "development" && process.env.DEBUG !== "tamagui") {
618
+ if (debugProp) {
619
+ const element2 = typeof elementType === "string" ? elementType : "Component";
620
+ console.groupCollapsed(`render <${element2} /> with props`, viewProps);
710
621
  for (const key in viewProps) {
711
622
  console.log(key, viewProps[key]);
712
623
  }
624
+ console.log("children", content);
713
625
  console.groupEnd();
714
626
  if (typeof window !== "undefined") {
715
- console.log(__spreadValues({ state, viewProps, splitStyles, animationStyles, isStringElement, classNamesIn: (_e = props.className) == null ? void 0 : _e.split(" "), classNamesOut: (_f = viewProps.className) == null ? void 0 : _f.split(" "), events, shouldAttach, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses, animation: props.animation, style, defaultNativeStyle, initialSplitStyles }, typeof window !== "undefined" ? { theme, themeClassName: theme.className, staticConfig, tamaguiConfig, events, shouldAvoidClasses, shouldForcePseudo, classNames: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) } : null));
627
+ console.log({ state, shouldProvideThemeManager, isAnimated, isAnimatedReactNativeWeb, tamaguiDefaultProps, viewProps, splitStyles, animationStyles, handlesPressEvents, isStringElement, classNamesIn: (_f = props.className) == null ? void 0 : _f.split(" "), classNamesOut: (_g = viewProps.className) == null ? void 0 : _g.split(" "), events, shouldAttach, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses: avoidClassesWhileAnimating, animation: props.animation, style: splitStylesStyle, defaultNativeStyle, ...typeof window !== "undefined" ? { theme, themeClassName: theme.className, staticConfig, tamaguiConfig, events, shouldAvoidClasses, shouldForcePseudo, classNames: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) } : null });
716
628
  }
717
629
  console.groupEnd();
718
630
  }
719
631
  }
720
- if (features.elements.length) {
721
- return /* @__PURE__ */ React.createElement(React.Fragment, null, features.elements, content);
722
- }
723
632
  return content;
724
633
  });
725
634
  if (staticConfig.componentName) {
726
635
  component.displayName = staticConfig.componentName;
727
636
  }
728
637
  onConfiguredOnce((conf) => {
729
- var _a, _b, _c;
730
- if (process.env.IS_STATIC === "is_static") {
731
- return;
638
+ if (!tamaguiConfig) {
639
+ tamaguiConfig = conf;
640
+ if (!defaultComponentState) {
641
+ defaultComponentState = {
642
+ hover: false,
643
+ press: false,
644
+ pressIn: false,
645
+ focus: false,
646
+ unmounted: true,
647
+ mediaState: getMediaStateObject(getInitialMediaState())
648
+ };
649
+ defaultComponentStateMounted = {
650
+ ...defaultComponentState,
651
+ unmounted: false
652
+ };
653
+ }
654
+ if (tamaguiConfig.animations) {
655
+ AnimatedText = tamaguiConfig.animations.Text;
656
+ AnimatedView = tamaguiConfig.animations.View;
657
+ }
658
+ if (!initialTheme) {
659
+ const next = conf.themes[Object.keys(conf.themes)[0]];
660
+ initialTheme = proxyThemeVariables(next);
661
+ if (process.env.NODE_ENV === "development") {
662
+ if (!initialTheme) {
663
+ console.log(`Warning: Missing theme`);
664
+ }
665
+ }
666
+ }
732
667
  }
733
- tamaguiConfig = conf;
734
668
  mergeShorthands(staticConfig, tamaguiConfig);
735
- avoidClasses = !!((_a = tamaguiConfig.animations) == null ? void 0 : _a.avoidClasses);
736
- AnimatedText = (_b = tamaguiConfig.animations) == null ? void 0 : _b.Text;
737
- AnimatedView = (_c = tamaguiConfig == null ? void 0 : tamaguiConfig.animations) == null ? void 0 : _c.View;
738
- initialTheme = initialTheme || proxyThemeVariables(conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]);
739
- const config = getConfig();
740
669
  let defaultPropsIn = staticConfig.defaultProps || {};
741
670
  const parentNames = [...staticConfig.parentNames || [], staticConfig.componentName];
742
- if (config.defaultProps && parentNames && staticConfig.componentName) {
743
- defaultPropsIn = mergeConfigDefaultProps(staticConfig.componentName, defaultPropsIn, config.defaultProps, parentNames);
744
- }
745
- const debug = process.env.NODE_ENV === "development" ? defaultPropsIn["debug"] : false;
746
- if (process.env.NODE_ENV === "development" && debug === "break") {
747
- debugger;
748
- }
749
- const [parentProps, parentClassNames] = mergeProps(defaultPropsIn, {}, true);
750
- initialSplitStyles = insertSplitStyles(parentProps, staticConfig, initialTheme, {
751
- mounted: true,
752
- hover: false,
753
- press: false,
754
- pressIn: false,
755
- focus: false,
756
- resolveVariablesAs: "both",
757
- keepVariantsAsProps: true
758
- }, void 0, debug);
759
- const [defaults, defaultsClassnames] = mergeProps(component.defaultProps, initialSplitStyles.viewProps, true);
760
- initialSplitStyles.classNames = __spreadValues(__spreadValues(__spreadValues({}, parentClassNames), defaultsClassnames), initialSplitStyles.classNames);
671
+ if (tamaguiConfig.defaultProps && parentNames && staticConfig.componentName) {
672
+ defaultPropsIn = mergeConfigDefaultProps(
673
+ staticConfig.componentName,
674
+ defaultPropsIn,
675
+ tamaguiConfig.defaultProps,
676
+ parentNames,
677
+ tamaguiConfig
678
+ );
679
+ }
680
+ const debug = defaultPropsIn["debug"];
681
+ const [ourProps, ourClassNames] = mergeProps(defaultPropsIn, {});
682
+ if (ourProps.tag) {
683
+ defaultTag = ourProps.tag;
684
+ }
685
+ const noClassNames = !staticConfig.acceptsClassName;
686
+ const { name, variants, defaultVariants, ...restProps } = ourProps;
687
+ const [defaults, defaultsClassnames] = mergeProps(component.defaultProps, {
688
+ ...defaultVariants,
689
+ ...restProps
690
+ });
761
691
  defaultNativeStyle = {};
762
692
  const validStyles2 = staticConfig.validStyles || stylePropsView;
763
693
  if (!isWeb) {
764
694
  for (const key in staticConfig.defaultProps) {
765
695
  const val = staticConfig.defaultProps[key];
696
+ if (validPseudoKeys[key])
697
+ continue;
766
698
  if (typeof val === "string" && val[0] === "$" || !validStyles2[key]) {
767
699
  defaults[key] = val;
768
700
  } else {
@@ -770,22 +702,10 @@ function createComponent(configIn, ParentComponent) {
770
702
  }
771
703
  }
772
704
  }
773
- defaultNativeStyleSheet = StyleSheet.create({
774
- base: defaultNativeStyle
775
- });
776
- if (Object.keys(defaults).length) {
777
- tamaguiDefaultProps = defaults;
778
- }
705
+ tamaguiDefaultProps = defaults;
779
706
  if (process.env.NODE_ENV === "development" && debug) {
780
707
  if (process.env.IS_STATIC !== "is_static") {
781
- console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, {
782
- staticConfig,
783
- initialSplitStyles,
784
- tamaguiDefaultProps,
785
- defaultNativeStyle,
786
- defaults,
787
- defaultPropsIn
788
- });
708
+ console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, { staticConfig, tamaguiDefaultProps, defaultNativeStyle, defaults, defaultPropsIn, defaultPropsKeyOrder: Object.keys(staticConfig.defaultProps), defaultPropsInKeyOrder: Object.keys(defaultPropsIn).map((k) => [k, defaultPropsIn[k]]), ourProps, ourClassNames, defaultsClassnames, defaultTag, noClassNames });
789
709
  }
790
710
  }
791
711
  });
@@ -793,17 +713,23 @@ function createComponent(configIn, ParentComponent) {
793
713
  if (configIn.memo) {
794
714
  res = memo(res);
795
715
  }
796
- res.staticConfig = __spreadValues({
797
- validStyles: staticConfig.validStyles || stylePropsView
798
- }, staticConfig);
716
+ res.staticConfig = {
717
+ validStyles: staticConfig.validStyles || stylePropsView,
718
+ ...staticConfig
719
+ };
799
720
  res.extractable = (Component, conf) => {
800
- Component.staticConfig = extendStaticConfig(__spreadProps(__spreadValues({
801
- Component
802
- }, conf), {
803
- neverFlatten: true,
804
- isExtractable: true,
805
- defaultProps: __spreadValues(__spreadValues({}, Component.defaultProps), conf == null ? void 0 : conf.defaultProps)
806
- }), res);
721
+ Component.staticConfig = extendStaticConfig(
722
+ {
723
+ Component,
724
+ ...conf,
725
+ neverFlatten: true,
726
+ defaultProps: {
727
+ ...Component.defaultProps,
728
+ ...conf == null ? void 0 : conf.defaultProps
729
+ }
730
+ },
731
+ res
732
+ );
807
733
  return Component;
808
734
  };
809
735
  return res;
@@ -816,9 +742,11 @@ const Spacer = createComponent({
816
742
  memo: true,
817
743
  componentName: "Spacer",
818
744
  validStyles,
819
- defaultProps: __spreadProps(__spreadValues({}, stackDefaultStyles), {
745
+ defaultProps: {
746
+ ...stackDefaultStyles,
747
+ tag: "span",
820
748
  size: true
821
- }),
749
+ },
822
750
  variants: {
823
751
  size: {
824
752
  "...size": (size, { tokens }) => {
@@ -848,9 +776,6 @@ const Spacer = createComponent({
848
776
  },
849
777
  both: {}
850
778
  }
851
- },
852
- defaultVariants: {
853
- direction: "both"
854
779
  }
855
780
  });
856
781
  function spacedChildren({
@@ -876,95 +801,73 @@ function spacedChildren({
876
801
  if (isEmpty || !child || child["key"] && !isZStack) {
877
802
  final.push(child);
878
803
  } else {
879
- final.push(/* @__PURE__ */ React.createElement(Fragment, {
880
- key: index
881
- }, isZStack ? /* @__PURE__ */ React.createElement(AbsoluteFill, null, child) : child));
882
- }
883
- if (isUnspaced(child) && index === 0) {
804
+ final.push(
805
+ /* @__PURE__ */ jsx(Fragment, {
806
+ children: isZStack ? /* @__PURE__ */ jsx(AbsoluteFill, {
807
+ children: child
808
+ }) : child
809
+ }, index)
810
+ );
811
+ }
812
+ if (isUnspaced(child) && index === 0)
884
813
  continue;
885
- }
886
- if (isZStack) {
814
+ if (isZStack)
887
815
  continue;
888
- }
889
816
  const next = childrenList[index + 1];
890
817
  if (next && !isUnspaced(next)) {
891
818
  if (separator) {
892
819
  if (hasSpace) {
893
- final.push(createSpacer({
894
- key: `_${index}_before_sep_spacer`,
895
- direction,
896
- space,
897
- spaceFlex
898
- }));
820
+ final.push(
821
+ createSpacer({
822
+ key: `_${index}_00tmgui`,
823
+ direction,
824
+ space,
825
+ spaceFlex
826
+ })
827
+ );
899
828
  }
900
- final.push(React.isValidElement(separator) ? React.cloneElement(separator, { key: `sep_${index}` }) : separator);
829
+ final.push(
830
+ React.isValidElement(separator) ? React.cloneElement(separator, { key: `sep_${index}` }) : separator
831
+ );
901
832
  if (hasSpace) {
902
- final.push(createSpacer({
903
- key: `_${index}_after_sep_spacer`,
833
+ final.push(
834
+ createSpacer({
835
+ key: `_${index}01tmgui`,
836
+ direction,
837
+ space,
838
+ spaceFlex
839
+ })
840
+ );
841
+ }
842
+ } else {
843
+ final.push(
844
+ createSpacer({
845
+ key: `_${index}02tmgui`,
904
846
  direction,
905
847
  space,
906
848
  spaceFlex
907
- }));
908
- }
909
- } else {
910
- final.push(createSpacer({
911
- key: `_${index}_spacer`,
912
- direction,
913
- space,
914
- spaceFlex
915
- }));
849
+ })
850
+ );
916
851
  }
917
852
  }
918
853
  }
919
854
  return final;
920
855
  }
921
856
  function createSpacer({ key, direction, space, spaceFlex }) {
922
- return /* @__PURE__ */ React.createElement(Spacer, __spreadValues({
923
- key,
857
+ return /* @__PURE__ */ jsx(Spacer, {
924
858
  size: space,
925
- direction
926
- }, spaceFlex && {
927
- flex: spaceFlex
928
- }));
859
+ direction,
860
+ ...typeof spaceFlex !== "undefined" && {
861
+ flex: spaceFlex === true ? 1 : spaceFlex === false ? 0 : spaceFlex
862
+ }
863
+ }, key);
929
864
  }
930
865
  function isUnspaced(child) {
931
866
  var _a, _b;
932
867
  return ((_a = child == null ? void 0 : child["type"]) == null ? void 0 : _a["isVisuallyHidden"]) || ((_b = child == null ? void 0 : child["type"]) == null ? void 0 : _b["isUnspaced"]);
933
868
  }
934
- function AbsoluteFill(props) {
935
- return /* @__PURE__ */ React.createElement(View, {
936
- pointerEvents: "box-none",
937
- style: StyleSheet.absoluteFill
938
- }, props.children);
939
- }
940
- function processIDRefList(idRefList) {
941
- return Array.isArray(idRefList) ? idRefList.join(" ") : idRefList;
942
- }
943
- const accessibilityRoleToWebRole = {
944
- adjustable: "slider",
945
- button: "button",
946
- header: "heading",
947
- image: "img",
948
- imagebutton: null,
949
- keyboardkey: null,
950
- label: null,
951
- link: "link",
952
- none: "presentation",
953
- search: "search",
954
- summary: "region",
955
- text: null
956
- };
957
- function addPseudoToStyles(styles, initialPseudos, pseudos, name, force = false) {
958
- const pseudoStyle = pseudos[name];
959
- const shouldNestObject = isWeb && name !== "enterStyle" && name !== "exitStyle";
960
- const defaultPseudoStyle = initialPseudos[name];
961
- const style = defaultPseudoStyle ? __spreadValues(__spreadValues({}, defaultPseudoStyle), pseudoStyle) : pseudoStyle;
962
- if (style) {
963
- styles.push(shouldNestObject && !force ? { [name]: style } : style);
964
- }
965
- }
966
869
  const DefaultProps = /* @__PURE__ */ new Map();
967
- function mergeConfigDefaultProps(name, props, configDefaults, parentNames) {
870
+ function mergeConfigDefaultProps(name, props, configDefaults, parentNames, conf) {
968
871
  const len = parentNames.length;
969
872
  let prev;
970
873
  for (let i = 0; i < len; i++) {
@@ -982,24 +885,56 @@ function mergeConfigDefaultProps(name, props, configDefaults, parentNames) {
982
885
  }
983
886
  continue;
984
887
  }
985
- prev = mergeProps(prev || {}, props2)[0];
986
- console.log("set prev", prev);
888
+ prev = mergeProps(prev || {}, props2, false, conf.inverseShorthands)[0];
987
889
  DefaultProps.set(n, prev);
988
890
  }
989
891
  const ourDefaultsMerged = DefaultProps.get(name);
990
892
  if (ourDefaultsMerged) {
991
- return mergeProps(props, ourDefaultsMerged)[0];
893
+ return mergeProps(props, ourDefaultsMerged, false, conf.inverseShorthands)[0];
992
894
  }
993
895
  return props;
994
896
  }
897
+ function usePlatformMethods(hostRef) {
898
+ useIsomorphicLayoutEffect(() => {
899
+ const node = hostRef.current;
900
+ if (!node)
901
+ return;
902
+ node.measure = (callback) => measureLayout(node, null, callback);
903
+ node.measureLayout = (relativeToNode, success) => measureLayout(node, relativeToNode, success);
904
+ node.measureInWindow = (callback) => {
905
+ if (!node)
906
+ return;
907
+ setTimeout(() => {
908
+ const { height, left, top, width } = getRect(node);
909
+ callback(left, top, width, height);
910
+ }, 0);
911
+ };
912
+ }, [hostRef]);
913
+ }
914
+ const AbsoluteFill = createComponent({
915
+ componentName: "AbsoluteFill",
916
+ defaultProps: {
917
+ ...stackDefaultStyles,
918
+ flexDirection: "column",
919
+ position: "absolute",
920
+ top: 0,
921
+ right: 0,
922
+ bottom: 0,
923
+ left: 0,
924
+ pointerEvents: "box-none"
925
+ }
926
+ });
927
+ const dontComposePressabilityKeys = {
928
+ onClick: true
929
+ };
930
+ function getMediaStateObject(obj) {
931
+ return Object.fromEntries(Object.entries(obj).flatMap(([k, v]) => v ? [[`$${k}`, v]] : []));
932
+ }
995
933
  export {
996
- AbsoluteFill,
997
934
  Spacer,
998
935
  Unspaced,
999
- accessibilityRoleToWebRole,
1000
936
  createComponent,
1001
937
  mouseUps,
1002
- processIDRefList,
1003
938
  spacedChildren
1004
939
  };
1005
940
  //# sourceMappingURL=createComponent.js.map