@tamagui/web 2.0.0-rc.3 → 2.0.0-rc.30

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 (929) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/.turbo/turbo-test$colon$web.log +15 -0
  3. package/dist/cjs/Tamagui.cjs +2 -2
  4. package/dist/cjs/Tamagui.native.js +2 -2
  5. package/dist/cjs/Tamagui.native.js.map +1 -1
  6. package/dist/cjs/_withStableStyle.cjs +17 -6
  7. package/dist/cjs/_withStableStyle.native.js +18 -5
  8. package/dist/cjs/_withStableStyle.native.js.map +1 -1
  9. package/dist/cjs/animationDriverTypes.test-d.cjs +11 -0
  10. package/dist/cjs/animationDriverTypes.test-d.native.js +11 -0
  11. package/dist/cjs/animationDriverTypes.test-d.native.js.map +1 -1
  12. package/dist/cjs/config.cjs +5 -1
  13. package/dist/cjs/config.native.js +5 -1
  14. package/dist/cjs/config.native.js.map +1 -1
  15. package/dist/cjs/constants/constants.cjs +2 -16
  16. package/dist/cjs/constants/constants.native.js +1 -14
  17. package/dist/cjs/constants/constants.native.js.map +1 -1
  18. package/dist/cjs/createComponent.cjs +92 -79
  19. package/dist/cjs/createComponent.native.js +112 -88
  20. package/dist/cjs/createComponent.native.js.map +1 -1
  21. package/dist/cjs/createTamagui.cjs +38 -37
  22. package/dist/cjs/createTamagui.native.js +41 -37
  23. package/dist/cjs/createTamagui.native.js.map +1 -1
  24. package/dist/cjs/createVariable.native.js.map +1 -1
  25. package/dist/cjs/eventHandling.cjs +1 -1
  26. package/dist/cjs/eventHandling.native.js +84 -57
  27. package/dist/cjs/eventHandling.native.js.map +1 -1
  28. package/dist/cjs/helpers/createDesignSystem.cjs +44 -7
  29. package/dist/cjs/helpers/createDesignSystem.native.js +36 -6
  30. package/dist/cjs/helpers/createDesignSystem.native.js.map +1 -1
  31. package/dist/cjs/helpers/createMediaStyle.cjs +8 -5
  32. package/dist/cjs/helpers/createMediaStyle.native.js +10 -7
  33. package/dist/cjs/helpers/createMediaStyle.native.js.map +1 -1
  34. package/dist/cjs/helpers/createStyledContext.cjs +11 -7
  35. package/dist/cjs/helpers/createStyledContext.native.js +50 -46
  36. package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
  37. package/dist/cjs/helpers/defaultAnimationDriver.cjs +0 -2
  38. package/dist/cjs/helpers/defaultAnimationDriver.native.js +0 -2
  39. package/dist/cjs/helpers/defaultAnimationDriver.native.js.map +1 -1
  40. package/dist/cjs/helpers/expandStyle.cjs +2 -1
  41. package/dist/cjs/helpers/expandStyle.native.js +9 -0
  42. package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
  43. package/dist/cjs/helpers/getCSSStylesAtomic.cjs +8 -8
  44. package/dist/cjs/helpers/getDefaultProps.cjs +3 -9
  45. package/dist/cjs/helpers/getDefaultProps.native.js +3 -4
  46. package/dist/cjs/helpers/getDefaultProps.native.js.map +1 -1
  47. package/dist/cjs/helpers/getGroupPropParts.cjs +2 -2
  48. package/dist/cjs/helpers/getGroupPropParts.native.js +2 -2
  49. package/dist/cjs/helpers/getGroupPropParts.native.js.map +1 -1
  50. package/dist/cjs/helpers/getSplitStyles.cjs +59 -28
  51. package/dist/cjs/helpers/getSplitStyles.native.js +114 -77
  52. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
  53. package/dist/cjs/helpers/getThemeCSSRules.cjs +17 -9
  54. package/dist/cjs/helpers/getTokenForKey.cjs +127 -0
  55. package/dist/cjs/helpers/getTokenForKey.native.js +145 -0
  56. package/dist/cjs/helpers/getTokenForKey.native.js.map +1 -0
  57. package/dist/cjs/helpers/insertStyleRule.cjs +1 -1
  58. package/dist/cjs/helpers/insertStyleRule.native.js +1 -1
  59. package/dist/cjs/helpers/mainThreadPressEvents.native.js +1 -1
  60. package/dist/cjs/helpers/mainThreadPressEvents.native.js.map +1 -1
  61. package/dist/cjs/helpers/mediaObjectToString.cjs +35 -0
  62. package/dist/cjs/helpers/mediaObjectToString.native.js +43 -0
  63. package/dist/cjs/helpers/mediaObjectToString.native.js.map +1 -0
  64. package/dist/cjs/helpers/mediaState.cjs +45 -0
  65. package/dist/cjs/helpers/mediaState.native.js +50 -0
  66. package/dist/cjs/helpers/mediaState.native.js.map +1 -0
  67. package/dist/cjs/helpers/normalizeColor.cjs +6 -1
  68. package/dist/cjs/helpers/normalizeValueWithProperty.cjs +2 -1
  69. package/dist/cjs/helpers/normalizeValueWithProperty.native.js +2 -1
  70. package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
  71. package/dist/cjs/helpers/parseNativeStyle.cjs +133 -0
  72. package/dist/cjs/helpers/parseNativeStyle.native.js +151 -0
  73. package/dist/cjs/helpers/parseNativeStyle.native.js.map +1 -0
  74. package/dist/cjs/{createTheme.cjs → helpers/parseOutlineShorthand.cjs} +5 -5
  75. package/dist/cjs/helpers/parseOutlineShorthand.native.js +58 -0
  76. package/dist/cjs/helpers/parseOutlineShorthand.native.js.map +1 -0
  77. package/dist/cjs/helpers/platformResolveValue.cjs +33 -0
  78. package/dist/cjs/helpers/platformResolveValue.native.js +62 -0
  79. package/dist/cjs/helpers/platformResolveValue.native.js.map +1 -0
  80. package/dist/cjs/helpers/propMapper.cjs +26 -96
  81. package/dist/cjs/helpers/propMapper.native.js +61 -108
  82. package/dist/cjs/helpers/propMapper.native.js.map +1 -1
  83. package/dist/cjs/helpers/pseudoTransitions.cjs +65 -0
  84. package/dist/cjs/helpers/pseudoTransitions.native.js +72 -0
  85. package/dist/cjs/helpers/pseudoTransitions.native.js.map +1 -0
  86. package/dist/cjs/{constants/webToNativeProps.cjs → helpers/resolveAnimationDriver.cjs} +7 -7
  87. package/dist/cjs/{views/Stack.native.js → helpers/resolveAnimationDriver.native.js} +9 -14
  88. package/dist/cjs/helpers/resolveAnimationDriver.native.js.map +1 -0
  89. package/dist/cjs/{views/Stack.cjs → helpers/resolveCompoundTokens.cjs} +16 -13
  90. package/dist/cjs/helpers/resolveCompoundTokens.native.js +40 -0
  91. package/dist/cjs/helpers/resolveCompoundTokens.native.js.map +1 -0
  92. package/dist/cjs/helpers/skipProps.cjs +1 -0
  93. package/dist/cjs/helpers/skipProps.native.js +1 -0
  94. package/dist/cjs/helpers/skipProps.native.js.map +1 -1
  95. package/dist/cjs/helpers/themeable.cjs +4 -2
  96. package/dist/cjs/helpers/themeable.native.js +4 -2
  97. package/dist/cjs/helpers/themeable.native.js.map +1 -1
  98. package/dist/cjs/helpers/useRenderElement.native.js +1 -1
  99. package/dist/cjs/helpers/useRenderElement.native.js.map +1 -1
  100. package/dist/cjs/hooks/useComponentState.cjs +9 -5
  101. package/dist/cjs/hooks/useComponentState.native.js +10 -6
  102. package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
  103. package/dist/cjs/hooks/useMedia.cjs +25 -48
  104. package/dist/cjs/hooks/useMedia.native.js +25 -55
  105. package/dist/cjs/hooks/useMedia.native.js.map +1 -1
  106. package/dist/cjs/hooks/useProps.cjs +3 -2
  107. package/dist/cjs/hooks/useProps.native.js +3 -2
  108. package/dist/cjs/hooks/useProps.native.js.map +1 -1
  109. package/dist/cjs/hooks/useTheme.cjs +4 -0
  110. package/dist/cjs/hooks/useTheme.native.js +4 -0
  111. package/dist/cjs/hooks/useTheme.native.js.map +1 -1
  112. package/dist/cjs/hooks/useThemeState.cjs +30 -12
  113. package/dist/cjs/hooks/useThemeState.native.js +28 -12
  114. package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
  115. package/dist/cjs/index.cjs +9 -5
  116. package/dist/cjs/index.js +86 -74
  117. package/dist/cjs/index.js.map +1 -1
  118. package/dist/cjs/index.native.js +9 -5
  119. package/dist/cjs/index.native.js.map +1 -1
  120. package/dist/cjs/styled.native.js.map +1 -1
  121. package/dist/cjs/views/TamaguiProvider.cjs +20 -33
  122. package/dist/cjs/views/TamaguiProvider.native.js +28 -39
  123. package/dist/cjs/views/TamaguiProvider.native.js.map +1 -1
  124. package/dist/cjs/views/TamaguiRoot.cjs +68 -0
  125. package/dist/cjs/{createTheme.native.js → views/TamaguiRoot.native.js} +8 -8
  126. package/dist/cjs/views/TamaguiRoot.native.js.map +1 -0
  127. package/dist/cjs/views/Text.cjs +2 -10
  128. package/dist/cjs/views/Text.native.js +0 -1
  129. package/dist/cjs/views/Text.native.js.map +1 -1
  130. package/dist/cjs/views/Theme.cjs +2 -0
  131. package/dist/cjs/views/Theme.native.js +2 -0
  132. package/dist/cjs/views/Theme.native.js.map +1 -1
  133. package/dist/cjs/views/ThemeProvider.cjs +3 -1
  134. package/dist/cjs/views/ThemeProvider.native.js +2 -0
  135. package/dist/cjs/views/ThemeProvider.native.js.map +1 -1
  136. package/dist/cjs/views/View.cjs +0 -2
  137. package/dist/cjs/views/View.native.js +0 -2
  138. package/dist/cjs/views/View.native.js.map +1 -1
  139. package/dist/esm/Tamagui.mjs +1 -1
  140. package/dist/esm/Tamagui.native.js +1 -1
  141. package/dist/esm/_withStableStyle.mjs +18 -7
  142. package/dist/esm/_withStableStyle.mjs.map +1 -1
  143. package/dist/esm/_withStableStyle.native.js +19 -6
  144. package/dist/esm/_withStableStyle.native.js.map +1 -1
  145. package/dist/esm/animationDriverTypes.test-d.mjs +11 -0
  146. package/dist/esm/animationDriverTypes.test-d.mjs.map +1 -1
  147. package/dist/esm/animationDriverTypes.test-d.native.js +11 -0
  148. package/dist/esm/animationDriverTypes.test-d.native.js.map +1 -1
  149. package/dist/esm/config.mjs +5 -1
  150. package/dist/esm/config.mjs.map +1 -1
  151. package/dist/esm/config.native.js +5 -1
  152. package/dist/esm/config.native.js.map +1 -1
  153. package/dist/esm/constants/constants.mjs +2 -14
  154. package/dist/esm/constants/constants.mjs.map +1 -1
  155. package/dist/esm/constants/constants.native.js +1 -12
  156. package/dist/esm/constants/constants.native.js.map +1 -1
  157. package/dist/esm/createComponent.mjs +91 -79
  158. package/dist/esm/createComponent.mjs.map +1 -1
  159. package/dist/esm/createComponent.native.js +112 -89
  160. package/dist/esm/createComponent.native.js.map +1 -1
  161. package/dist/esm/createTamagui.mjs +38 -37
  162. package/dist/esm/createTamagui.mjs.map +1 -1
  163. package/dist/esm/createTamagui.native.js +41 -37
  164. package/dist/esm/createTamagui.native.js.map +1 -1
  165. package/dist/esm/createVariable.mjs.map +1 -1
  166. package/dist/esm/eventHandling.mjs +1 -1
  167. package/dist/esm/eventHandling.mjs.map +1 -1
  168. package/dist/esm/eventHandling.native.js +84 -57
  169. package/dist/esm/eventHandling.native.js.map +1 -1
  170. package/dist/esm/helpers/createDesignSystem.mjs +43 -7
  171. package/dist/esm/helpers/createDesignSystem.mjs.map +1 -1
  172. package/dist/esm/helpers/createDesignSystem.native.js +35 -7
  173. package/dist/esm/helpers/createDesignSystem.native.js.map +1 -1
  174. package/dist/esm/helpers/createMediaStyle.mjs +7 -4
  175. package/dist/esm/helpers/createMediaStyle.mjs.map +1 -1
  176. package/dist/esm/helpers/createMediaStyle.native.js +9 -6
  177. package/dist/esm/helpers/createMediaStyle.native.js.map +1 -1
  178. package/dist/esm/helpers/createStyledContext.mjs +12 -8
  179. package/dist/esm/helpers/createStyledContext.mjs.map +1 -1
  180. package/dist/esm/helpers/createStyledContext.native.js +11 -7
  181. package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
  182. package/dist/esm/helpers/defaultAnimationDriver.mjs +0 -2
  183. package/dist/esm/helpers/defaultAnimationDriver.mjs.map +1 -1
  184. package/dist/esm/helpers/defaultAnimationDriver.native.js +0 -2
  185. package/dist/esm/helpers/defaultAnimationDriver.native.js.map +1 -1
  186. package/dist/esm/helpers/expandStyle.mjs +0 -1
  187. package/dist/esm/helpers/expandStyle.mjs.map +1 -1
  188. package/dist/esm/helpers/expandStyle.native.js +9 -1
  189. package/dist/esm/helpers/expandStyle.native.js.map +1 -1
  190. package/dist/esm/helpers/getCSSStylesAtomic.mjs +8 -8
  191. package/dist/esm/helpers/getCSSStylesAtomic.mjs.map +1 -1
  192. package/dist/esm/helpers/getDefaultProps.mjs +3 -9
  193. package/dist/esm/helpers/getDefaultProps.mjs.map +1 -1
  194. package/dist/esm/helpers/getDefaultProps.native.js +3 -4
  195. package/dist/esm/helpers/getDefaultProps.native.js.map +1 -1
  196. package/dist/esm/helpers/getGroupPropParts.mjs +1 -1
  197. package/dist/esm/helpers/getGroupPropParts.native.js +1 -1
  198. package/dist/esm/helpers/getSplitStyles.mjs +59 -29
  199. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  200. package/dist/esm/helpers/getSplitStyles.native.js +113 -77
  201. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  202. package/dist/esm/helpers/getThemeCSSRules.mjs +17 -9
  203. package/dist/esm/helpers/getThemeCSSRules.mjs.map +1 -1
  204. package/dist/esm/helpers/getTokenForKey.mjs +101 -0
  205. package/dist/esm/helpers/getTokenForKey.mjs.map +1 -0
  206. package/dist/esm/helpers/getTokenForKey.native.js +116 -0
  207. package/dist/esm/helpers/getTokenForKey.native.js.map +1 -0
  208. package/dist/esm/helpers/insertStyleRule.mjs +1 -1
  209. package/dist/esm/helpers/insertStyleRule.native.js +1 -1
  210. package/dist/esm/helpers/mainThreadPressEvents.native.js +1 -1
  211. package/dist/esm/helpers/mainThreadPressEvents.native.js.map +1 -1
  212. package/dist/esm/helpers/mediaObjectToString.mjs +12 -0
  213. package/dist/esm/helpers/mediaObjectToString.mjs.map +1 -0
  214. package/dist/esm/helpers/mediaObjectToString.native.js +17 -0
  215. package/dist/esm/helpers/mediaObjectToString.native.js.map +1 -0
  216. package/dist/esm/helpers/mediaState.mjs +18 -0
  217. package/dist/esm/helpers/mediaState.mjs.map +1 -0
  218. package/dist/esm/helpers/mediaState.native.js +20 -0
  219. package/dist/esm/helpers/mediaState.native.js.map +1 -0
  220. package/dist/esm/helpers/normalizeColor.mjs +6 -1
  221. package/dist/esm/helpers/normalizeColor.mjs.map +1 -1
  222. package/dist/esm/helpers/normalizeValueWithProperty.mjs +2 -1
  223. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +1 -1
  224. package/dist/esm/helpers/normalizeValueWithProperty.native.js +2 -1
  225. package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
  226. package/dist/esm/helpers/parseNativeStyle.mjs +110 -0
  227. package/dist/esm/helpers/parseNativeStyle.mjs.map +1 -0
  228. package/dist/esm/helpers/parseNativeStyle.native.js +125 -0
  229. package/dist/esm/helpers/parseNativeStyle.native.js.map +1 -0
  230. package/dist/esm/helpers/parseOutlineShorthand.mjs +3 -0
  231. package/dist/esm/helpers/parseOutlineShorthand.mjs.map +1 -0
  232. package/dist/esm/helpers/parseOutlineShorthand.native.js +32 -0
  233. package/dist/esm/helpers/parseOutlineShorthand.native.js.map +1 -0
  234. package/dist/esm/helpers/platformResolveValue.mjs +10 -0
  235. package/dist/esm/helpers/platformResolveValue.mjs.map +1 -0
  236. package/dist/esm/helpers/platformResolveValue.native.js +36 -0
  237. package/dist/esm/helpers/platformResolveValue.native.js.map +1 -0
  238. package/dist/esm/helpers/propMapper.mjs +24 -96
  239. package/dist/esm/helpers/propMapper.mjs.map +1 -1
  240. package/dist/esm/helpers/propMapper.native.js +60 -107
  241. package/dist/esm/helpers/propMapper.native.js.map +1 -1
  242. package/dist/esm/helpers/pseudoTransitions.mjs +41 -0
  243. package/dist/esm/helpers/pseudoTransitions.mjs.map +1 -0
  244. package/dist/esm/helpers/pseudoTransitions.native.js +45 -0
  245. package/dist/esm/helpers/pseudoTransitions.native.js.map +1 -0
  246. package/dist/esm/helpers/resolveAnimationDriver.mjs +5 -0
  247. package/dist/esm/helpers/resolveAnimationDriver.mjs.map +1 -0
  248. package/dist/esm/helpers/resolveAnimationDriver.native.js +6 -0
  249. package/dist/esm/helpers/resolveAnimationDriver.native.js.map +1 -0
  250. package/dist/esm/helpers/resolveCompoundTokens.mjs +14 -0
  251. package/dist/esm/helpers/resolveCompoundTokens.mjs.map +1 -0
  252. package/dist/esm/helpers/resolveCompoundTokens.native.js +14 -0
  253. package/dist/esm/helpers/resolveCompoundTokens.native.js.map +1 -0
  254. package/dist/esm/helpers/skipProps.mjs +1 -1
  255. package/dist/esm/helpers/skipProps.mjs.map +1 -1
  256. package/dist/esm/helpers/skipProps.native.js +1 -1
  257. package/dist/esm/helpers/skipProps.native.js.map +1 -1
  258. package/dist/esm/helpers/themeable.mjs +4 -2
  259. package/dist/esm/helpers/themeable.mjs.map +1 -1
  260. package/dist/esm/helpers/themeable.native.js +4 -2
  261. package/dist/esm/helpers/themeable.native.js.map +1 -1
  262. package/dist/esm/helpers/useRenderElement.mjs.map +1 -1
  263. package/dist/esm/helpers/useRenderElement.native.js +1 -1
  264. package/dist/esm/helpers/useRenderElement.native.js.map +1 -1
  265. package/dist/esm/helpers/wrapStyleTags.native.js +0 -2
  266. package/dist/esm/helpers/wrapStyleTags.native.js.map +1 -1
  267. package/dist/esm/hooks/getThemeProxied.mjs +0 -3
  268. package/dist/esm/hooks/getThemeProxied.mjs.map +1 -1
  269. package/dist/esm/hooks/useComponentState.mjs +9 -5
  270. package/dist/esm/hooks/useComponentState.mjs.map +1 -1
  271. package/dist/esm/hooks/useComponentState.native.js +10 -6
  272. package/dist/esm/hooks/useComponentState.native.js.map +1 -1
  273. package/dist/esm/hooks/useMedia.mjs +21 -39
  274. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  275. package/dist/esm/hooks/useMedia.native.js +22 -47
  276. package/dist/esm/hooks/useMedia.native.js.map +1 -1
  277. package/dist/esm/hooks/useProps.mjs +2 -1
  278. package/dist/esm/hooks/useProps.mjs.map +1 -1
  279. package/dist/esm/hooks/useProps.native.js +2 -1
  280. package/dist/esm/hooks/useProps.native.js.map +1 -1
  281. package/dist/esm/hooks/useTheme.mjs +4 -0
  282. package/dist/esm/hooks/useTheme.mjs.map +1 -1
  283. package/dist/esm/hooks/useTheme.native.js +4 -0
  284. package/dist/esm/hooks/useTheme.native.js.map +1 -1
  285. package/dist/esm/hooks/useThemeState.mjs +30 -13
  286. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  287. package/dist/esm/hooks/useThemeState.native.js +28 -12
  288. package/dist/esm/hooks/useThemeState.native.js.map +1 -1
  289. package/dist/esm/index.js +67 -107
  290. package/dist/esm/index.js.map +1 -6
  291. package/dist/esm/index.mjs +5 -1
  292. package/dist/esm/index.mjs.map +1 -1
  293. package/dist/esm/index.native.js +5 -1
  294. package/dist/esm/index.native.js.map +1 -1
  295. package/dist/esm/insertFont.native.js +0 -1
  296. package/dist/esm/insertFont.native.js.map +1 -1
  297. package/dist/esm/styled.mjs.map +1 -1
  298. package/dist/esm/styled.native.js.map +1 -1
  299. package/dist/esm/views/TamaguiProvider.mjs +21 -34
  300. package/dist/esm/views/TamaguiProvider.mjs.map +1 -1
  301. package/dist/esm/views/TamaguiProvider.native.js +28 -40
  302. package/dist/esm/views/TamaguiProvider.native.js.map +1 -1
  303. package/dist/esm/views/TamaguiRoot.mjs +34 -0
  304. package/dist/esm/views/TamaguiRoot.mjs.map +1 -0
  305. package/dist/esm/views/TamaguiRoot.native.js +5 -0
  306. package/dist/esm/views/TamaguiRoot.native.js.map +1 -0
  307. package/dist/esm/views/Text.mjs +1 -9
  308. package/dist/esm/views/Text.mjs.map +1 -1
  309. package/dist/esm/views/Text.native.js +0 -1
  310. package/dist/esm/views/Text.native.js.map +1 -1
  311. package/dist/esm/views/Theme.mjs +2 -0
  312. package/dist/esm/views/Theme.mjs.map +1 -1
  313. package/dist/esm/views/Theme.native.js +2 -0
  314. package/dist/esm/views/Theme.native.js.map +1 -1
  315. package/dist/esm/views/ThemeProvider.mjs +3 -1
  316. package/dist/esm/views/ThemeProvider.mjs.map +1 -1
  317. package/dist/esm/views/ThemeProvider.native.js +2 -2
  318. package/dist/esm/views/ThemeProvider.native.js.map +1 -1
  319. package/dist/esm/views/View.mjs +0 -2
  320. package/dist/esm/views/View.mjs.map +1 -1
  321. package/dist/esm/views/View.native.js +0 -2
  322. package/dist/esm/views/View.native.js.map +1 -1
  323. package/inject-styles/index.cjs +2 -0
  324. package/inject-styles/index.js +2 -0
  325. package/inject-styles.cjs +1 -0
  326. package/package.json +21 -27
  327. package/src/Tamagui.ts +1 -1
  328. package/src/_withStableStyle.tsx +44 -16
  329. package/src/animationDriverTypes.test-d.ts +76 -0
  330. package/src/config.ts +5 -1
  331. package/src/constants/constants.ts +0 -17
  332. package/src/createComponent.tsx +224 -93
  333. package/src/createTamagui.ts +20 -11
  334. package/src/createVariable.ts +1 -1
  335. package/src/eventHandling.native.ts +78 -50
  336. package/src/eventHandling.ts +2 -1
  337. package/src/helpers/createDesignSystem.ts +77 -6
  338. package/src/helpers/createMediaStyle.ts +12 -4
  339. package/src/helpers/createStyledContext.tsx +27 -18
  340. package/src/helpers/defaultAnimationDriver.tsx +0 -2
  341. package/src/helpers/expandStyle.ts +11 -0
  342. package/src/helpers/getCSSStylesAtomic.ts +13 -14
  343. package/src/helpers/getDefaultProps.ts +4 -15
  344. package/src/helpers/getGroupPropParts.ts +1 -1
  345. package/src/helpers/getSplitStyles.tsx +174 -40
  346. package/src/helpers/getThemeCSSRules.ts +16 -14
  347. package/src/helpers/getTokenForKey.ts +223 -0
  348. package/src/helpers/insertStyleRule.tsx +1 -1
  349. package/src/helpers/mainThreadPressEvents.native.ts +2 -1
  350. package/src/helpers/mediaObjectToString.ts +30 -0
  351. package/src/helpers/mediaState.ts +32 -0
  352. package/src/helpers/normalizeColor.ts +12 -8
  353. package/src/helpers/normalizeValueWithProperty.ts +8 -1
  354. package/src/helpers/parseNativeStyle.ts +193 -0
  355. package/src/helpers/parseOutlineShorthand.native.ts +62 -0
  356. package/src/helpers/parseOutlineShorthand.ts +6 -0
  357. package/src/helpers/platformResolveValue.native.ts +72 -0
  358. package/src/helpers/platformResolveValue.ts +22 -0
  359. package/src/helpers/propMapper.ts +65 -221
  360. package/src/helpers/pseudoTransitions.ts +97 -0
  361. package/src/helpers/resolveAnimationDriver.ts +23 -0
  362. package/src/helpers/resolveCompoundTokens.ts +28 -0
  363. package/src/helpers/skipProps.ts +1 -0
  364. package/src/helpers/themeable.tsx +7 -5
  365. package/src/helpers/useRenderElement.tsx +7 -0
  366. package/src/hooks/useComponentState.ts +11 -8
  367. package/src/hooks/useMedia.tsx +28 -75
  368. package/src/hooks/useProps.tsx +2 -1
  369. package/src/hooks/useTheme.tsx +4 -0
  370. package/src/hooks/useThemeState.ts +57 -14
  371. package/src/index.ts +4 -4
  372. package/src/styled.tsx +2 -2
  373. package/src/types.tsx +205 -57
  374. package/src/views/TamaguiProvider.tsx +35 -54
  375. package/src/views/TamaguiRoot.native.tsx +9 -0
  376. package/src/views/TamaguiRoot.tsx +64 -0
  377. package/src/views/Text.tsx +1 -9
  378. package/src/views/Theme.tsx +2 -0
  379. package/src/views/ThemeProvider.tsx +3 -1
  380. package/src/views/View.tsx +0 -2
  381. package/tsconfig.json +44 -0
  382. package/tsconfig.test.json +9 -0
  383. package/types/_withStableStyle.d.ts +1 -1
  384. package/types/_withStableStyle.d.ts.map +1 -1
  385. package/types/config.d.ts.map +1 -1
  386. package/types/constants/constants.d.ts +0 -3
  387. package/types/constants/constants.d.ts.map +1 -1
  388. package/types/createComponent.d.ts.map +1 -1
  389. package/types/createTamagui.d.ts.map +1 -1
  390. package/types/createVariable.d.ts +1 -1
  391. package/types/createVariable.d.ts.map +1 -1
  392. package/types/eventHandling.d.ts +1 -1
  393. package/types/eventHandling.d.ts.map +1 -1
  394. package/types/eventHandling.native.d.ts +1 -1
  395. package/types/eventHandling.native.d.ts.map +1 -1
  396. package/types/helpers/createDesignSystem.d.ts +5 -2
  397. package/types/helpers/createDesignSystem.d.ts.map +1 -1
  398. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  399. package/types/helpers/createStyledContext.d.ts +1 -1
  400. package/types/helpers/createStyledContext.d.ts.map +1 -1
  401. package/types/helpers/defaultAnimationDriver.d.ts.map +1 -1
  402. package/types/helpers/expandStyle.d.ts.map +1 -1
  403. package/types/helpers/getCSSStylesAtomic.d.ts.map +1 -1
  404. package/types/helpers/getDefaultProps.d.ts +1 -1
  405. package/types/helpers/getDefaultProps.d.ts.map +1 -1
  406. package/types/helpers/getSplitStyles.d.ts +2 -2
  407. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  408. package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
  409. package/types/helpers/getTokenForKey.d.ts +6 -0
  410. package/types/helpers/getTokenForKey.d.ts.map +1 -0
  411. package/types/helpers/mainThreadPressEvents.native.d.ts.map +1 -1
  412. package/types/helpers/mediaObjectToString.d.ts +3 -0
  413. package/types/helpers/mediaObjectToString.d.ts.map +1 -0
  414. package/types/helpers/mediaState.d.ts +7 -0
  415. package/types/helpers/mediaState.d.ts.map +1 -0
  416. package/types/helpers/normalizeColor.d.ts +1 -1
  417. package/types/helpers/normalizeColor.d.ts.map +1 -1
  418. package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -1
  419. package/types/helpers/parseNativeStyle.d.ts +14 -0
  420. package/types/helpers/parseNativeStyle.d.ts.map +1 -0
  421. package/types/helpers/parseOutlineShorthand.d.ts +3 -0
  422. package/types/helpers/parseOutlineShorthand.d.ts.map +1 -0
  423. package/types/helpers/parseOutlineShorthand.native.d.ts +3 -0
  424. package/types/helpers/parseOutlineShorthand.native.d.ts.map +1 -0
  425. package/types/helpers/platformResolveValue.d.ts +6 -0
  426. package/types/helpers/platformResolveValue.d.ts.map +1 -0
  427. package/types/helpers/platformResolveValue.native.d.ts +7 -0
  428. package/types/helpers/platformResolveValue.native.d.ts.map +1 -0
  429. package/types/helpers/propMapper.d.ts +2 -2
  430. package/types/helpers/propMapper.d.ts.map +1 -1
  431. package/types/helpers/pseudoTransitions.d.ts +29 -0
  432. package/types/helpers/pseudoTransitions.d.ts.map +1 -0
  433. package/types/helpers/resolveAnimationDriver.d.ts +7 -0
  434. package/types/helpers/resolveAnimationDriver.d.ts.map +1 -0
  435. package/types/helpers/resolveCompoundTokens.d.ts +9 -0
  436. package/types/helpers/resolveCompoundTokens.d.ts.map +1 -0
  437. package/types/helpers/skipProps.d.ts +1 -0
  438. package/types/helpers/skipProps.d.ts.map +1 -1
  439. package/types/helpers/themeable.d.ts.map +1 -1
  440. package/types/helpers/useRenderElement.d.ts.map +1 -1
  441. package/types/helpers/webPropsToSkip.native.d.ts +20 -20
  442. package/types/hooks/useComponentState.d.ts +2 -1
  443. package/types/hooks/useComponentState.d.ts.map +1 -1
  444. package/types/hooks/useMedia.d.ts +1 -6
  445. package/types/hooks/useMedia.d.ts.map +1 -1
  446. package/types/hooks/useProps.d.ts.map +1 -1
  447. package/types/hooks/useTheme.d.ts.map +1 -1
  448. package/types/hooks/useThemeState.d.ts.map +1 -1
  449. package/types/index.d.ts +5 -1
  450. package/types/index.d.ts.map +1 -1
  451. package/types/styled.d.ts +2 -2
  452. package/types/styled.d.ts.map +1 -1
  453. package/types/types.d.ts +105 -30
  454. package/types/types.d.ts.map +1 -1
  455. package/types/views/TamaguiProvider.d.ts +1 -4
  456. package/types/views/TamaguiProvider.d.ts.map +1 -1
  457. package/types/views/TamaguiRoot.d.ts +15 -0
  458. package/types/views/TamaguiRoot.d.ts.map +1 -0
  459. package/types/views/TamaguiRoot.native.d.ts +7 -0
  460. package/types/views/TamaguiRoot.native.d.ts.map +1 -0
  461. package/types/views/Text.d.ts.map +1 -1
  462. package/types/views/Theme.d.ts.map +1 -1
  463. package/types/views/ThemeProvider.d.ts.map +1 -1
  464. package/types/views/View.d.ts.map +1 -1
  465. package/vitest.config.d.ts +3 -0
  466. package/vitest.config.d.ts.map +1 -0
  467. package/vitest.config.ts +14 -0
  468. package/dist/cjs/Tamagui.js +0 -56
  469. package/dist/cjs/Tamagui.js.map +0 -6
  470. package/dist/cjs/_withStableStyle.js +0 -33
  471. package/dist/cjs/_withStableStyle.js.map +0 -6
  472. package/dist/cjs/animationDriverTypes.test-d.js +0 -51
  473. package/dist/cjs/animationDriverTypes.test-d.js.map +0 -6
  474. package/dist/cjs/config.js +0 -109
  475. package/dist/cjs/config.js.map +0 -6
  476. package/dist/cjs/constants/accessibilityDirectMap.js +0 -25
  477. package/dist/cjs/constants/accessibilityDirectMap.js.map +0 -6
  478. package/dist/cjs/constants/constants.js +0 -43
  479. package/dist/cjs/constants/constants.js.map +0 -6
  480. package/dist/cjs/constants/isDevTools.js +0 -28
  481. package/dist/cjs/constants/isDevTools.js.map +0 -6
  482. package/dist/cjs/constants/webToNativeProps.js +0 -22
  483. package/dist/cjs/constants/webToNativeProps.js.map +0 -6
  484. package/dist/cjs/constants/webToNativeProps.native.js +0 -115
  485. package/dist/cjs/constants/webToNativeProps.native.js.map +0 -1
  486. package/dist/cjs/contexts/ComponentContext.js +0 -30
  487. package/dist/cjs/contexts/ComponentContext.js.map +0 -6
  488. package/dist/cjs/contexts/GroupContext.js +0 -22
  489. package/dist/cjs/contexts/GroupContext.js.map +0 -6
  490. package/dist/cjs/createComponent.js +0 -697
  491. package/dist/cjs/createComponent.js.map +0 -6
  492. package/dist/cjs/createFont.js +0 -53
  493. package/dist/cjs/createFont.js.map +0 -6
  494. package/dist/cjs/createShorthands.js +0 -23
  495. package/dist/cjs/createShorthands.js.map +0 -6
  496. package/dist/cjs/createTamagui.js +0 -190
  497. package/dist/cjs/createTamagui.js.map +0 -6
  498. package/dist/cjs/createTheme.js +0 -21
  499. package/dist/cjs/createTheme.js.map +0 -6
  500. package/dist/cjs/createTheme.native.js.map +0 -1
  501. package/dist/cjs/createTokens.js +0 -24
  502. package/dist/cjs/createTokens.js.map +0 -6
  503. package/dist/cjs/createVariable.js +0 -89
  504. package/dist/cjs/createVariable.js.map +0 -6
  505. package/dist/cjs/createVariables.js +0 -56
  506. package/dist/cjs/createVariables.js.map +0 -6
  507. package/dist/cjs/defaultComponentState.js +0 -38
  508. package/dist/cjs/defaultComponentState.js.map +0 -6
  509. package/dist/cjs/eventHandling.js +0 -41
  510. package/dist/cjs/eventHandling.js.map +0 -6
  511. package/dist/cjs/helpers/createDesignSystem.js +0 -120
  512. package/dist/cjs/helpers/createDesignSystem.js.map +0 -6
  513. package/dist/cjs/helpers/createMediaStyle.js +0 -74
  514. package/dist/cjs/helpers/createMediaStyle.js.map +0 -6
  515. package/dist/cjs/helpers/createStyledContext.js +0 -52
  516. package/dist/cjs/helpers/createStyledContext.js.map +0 -6
  517. package/dist/cjs/helpers/defaultAnimationDriver.js +0 -39
  518. package/dist/cjs/helpers/defaultAnimationDriver.js.map +0 -6
  519. package/dist/cjs/helpers/defaultOffset.js +0 -21
  520. package/dist/cjs/helpers/defaultOffset.js.map +0 -6
  521. package/dist/cjs/helpers/expandStyle.js +0 -73
  522. package/dist/cjs/helpers/expandStyle.js.map +0 -6
  523. package/dist/cjs/helpers/expandStyles.js +0 -34
  524. package/dist/cjs/helpers/expandStyles.js.map +0 -6
  525. package/dist/cjs/helpers/getCSSStylesAtomic.js +0 -156
  526. package/dist/cjs/helpers/getCSSStylesAtomic.js.map +0 -6
  527. package/dist/cjs/helpers/getDefaultProps.js +0 -31
  528. package/dist/cjs/helpers/getDefaultProps.js.map +0 -6
  529. package/dist/cjs/helpers/getDynamicVal.js +0 -62
  530. package/dist/cjs/helpers/getDynamicVal.js.map +0 -6
  531. package/dist/cjs/helpers/getExpandedShorthands.js +0 -34
  532. package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -6
  533. package/dist/cjs/helpers/getFontLanguage.js +0 -21
  534. package/dist/cjs/helpers/getFontLanguage.js.map +0 -6
  535. package/dist/cjs/helpers/getGroupPropParts.js +0 -34
  536. package/dist/cjs/helpers/getGroupPropParts.js.map +0 -6
  537. package/dist/cjs/helpers/getShorthandValue.js +0 -23
  538. package/dist/cjs/helpers/getShorthandValue.js.map +0 -6
  539. package/dist/cjs/helpers/getSplitStyles.js +0 -630
  540. package/dist/cjs/helpers/getSplitStyles.js.map +0 -6
  541. package/dist/cjs/helpers/getThemeCSSRules.js +0 -89
  542. package/dist/cjs/helpers/getThemeCSSRules.js.map +0 -6
  543. package/dist/cjs/helpers/getVariantExtras.js +0 -59
  544. package/dist/cjs/helpers/getVariantExtras.js.map +0 -6
  545. package/dist/cjs/helpers/insertStyleRule.js +0 -196
  546. package/dist/cjs/helpers/insertStyleRule.js.map +0 -6
  547. package/dist/cjs/helpers/isActivePlatform.js +0 -31
  548. package/dist/cjs/helpers/isActivePlatform.js.map +0 -6
  549. package/dist/cjs/helpers/isActiveTheme.js +0 -24
  550. package/dist/cjs/helpers/isActiveTheme.js.map +0 -6
  551. package/dist/cjs/helpers/isObj.js +0 -21
  552. package/dist/cjs/helpers/isObj.js.map +0 -6
  553. package/dist/cjs/helpers/isTamaguiComponent.js +0 -24
  554. package/dist/cjs/helpers/isTamaguiComponent.js.map +0 -6
  555. package/dist/cjs/helpers/isTamaguiElement.js +0 -30
  556. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -6
  557. package/dist/cjs/helpers/log.js +0 -33
  558. package/dist/cjs/helpers/log.js.map +0 -6
  559. package/dist/cjs/helpers/mainThreadPressEvents.js +0 -22
  560. package/dist/cjs/helpers/mainThreadPressEvents.js.map +0 -6
  561. package/dist/cjs/helpers/matchMedia.js +0 -34
  562. package/dist/cjs/helpers/matchMedia.js.map +0 -6
  563. package/dist/cjs/helpers/mergeProps.js +0 -55
  564. package/dist/cjs/helpers/mergeProps.js.map +0 -6
  565. package/dist/cjs/helpers/mergeRenderElementProps.js +0 -25
  566. package/dist/cjs/helpers/mergeRenderElementProps.js.map +0 -6
  567. package/dist/cjs/helpers/mergeSlotStyleProps.js +0 -29
  568. package/dist/cjs/helpers/mergeSlotStyleProps.js.map +0 -6
  569. package/dist/cjs/helpers/mergeVariants.js +0 -38
  570. package/dist/cjs/helpers/mergeVariants.js.map +0 -6
  571. package/dist/cjs/helpers/nativeOnlyProps.js +0 -55
  572. package/dist/cjs/helpers/nativeOnlyProps.js.map +0 -6
  573. package/dist/cjs/helpers/normalizeColor.js +0 -26
  574. package/dist/cjs/helpers/normalizeColor.js.map +0 -6
  575. package/dist/cjs/helpers/normalizeShadow.js +0 -40
  576. package/dist/cjs/helpers/normalizeShadow.js.map +0 -6
  577. package/dist/cjs/helpers/normalizeStyle.js +0 -36
  578. package/dist/cjs/helpers/normalizeStyle.js.map +0 -6
  579. package/dist/cjs/helpers/normalizeStylePropKeys.js +0 -21
  580. package/dist/cjs/helpers/normalizeStylePropKeys.js.map +0 -6
  581. package/dist/cjs/helpers/normalizeValueWithProperty.js +0 -32
  582. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +0 -6
  583. package/dist/cjs/helpers/objectIdentityKey.js +0 -38
  584. package/dist/cjs/helpers/objectIdentityKey.js.map +0 -6
  585. package/dist/cjs/helpers/parseBorderShorthand.js +0 -22
  586. package/dist/cjs/helpers/parseBorderShorthand.js.map +0 -6
  587. package/dist/cjs/helpers/pointerEvents.js +0 -22
  588. package/dist/cjs/helpers/pointerEvents.js.map +0 -6
  589. package/dist/cjs/helpers/propMapper.js +0 -257
  590. package/dist/cjs/helpers/propMapper.js.map +0 -6
  591. package/dist/cjs/helpers/proxyThemeToParents.js +0 -40
  592. package/dist/cjs/helpers/proxyThemeToParents.js.map +0 -6
  593. package/dist/cjs/helpers/proxyThemeVariables.js +0 -31
  594. package/dist/cjs/helpers/proxyThemeVariables.js.map +0 -6
  595. package/dist/cjs/helpers/pseudoDescriptors.js +0 -72
  596. package/dist/cjs/helpers/pseudoDescriptors.js.map +0 -6
  597. package/dist/cjs/helpers/registerCSSVariable.js +0 -47
  598. package/dist/cjs/helpers/registerCSSVariable.js.map +0 -6
  599. package/dist/cjs/helpers/resolveRem.js +0 -27
  600. package/dist/cjs/helpers/resolveRem.js.map +0 -6
  601. package/dist/cjs/helpers/resolveSafeArea.js +0 -29
  602. package/dist/cjs/helpers/resolveSafeArea.js.map +0 -6
  603. package/dist/cjs/helpers/setElementProps.js +0 -24
  604. package/dist/cjs/helpers/setElementProps.js.map +0 -6
  605. package/dist/cjs/helpers/skipProps.js +0 -38
  606. package/dist/cjs/helpers/skipProps.js.map +0 -6
  607. package/dist/cjs/helpers/sortString.js +0 -21
  608. package/dist/cjs/helpers/sortString.js.map +0 -6
  609. package/dist/cjs/helpers/subscribeToContextGroup.js +0 -74
  610. package/dist/cjs/helpers/subscribeToContextGroup.js.map +0 -6
  611. package/dist/cjs/helpers/themeable.js +0 -56
  612. package/dist/cjs/helpers/themeable.js.map +0 -6
  613. package/dist/cjs/helpers/themes.js +0 -33
  614. package/dist/cjs/helpers/themes.js.map +0 -6
  615. package/dist/cjs/helpers/timer.js +0 -27
  616. package/dist/cjs/helpers/timer.js.map +0 -6
  617. package/dist/cjs/helpers/transformsToString.js +0 -33
  618. package/dist/cjs/helpers/transformsToString.js.map +0 -6
  619. package/dist/cjs/helpers/useRenderElement.js +0 -42
  620. package/dist/cjs/helpers/useRenderElement.js.map +0 -6
  621. package/dist/cjs/helpers/webPropsToSkip.js +0 -21
  622. package/dist/cjs/helpers/webPropsToSkip.js.map +0 -6
  623. package/dist/cjs/helpers/wrapStyleTags.js +0 -38
  624. package/dist/cjs/helpers/wrapStyleTags.js.map +0 -6
  625. package/dist/cjs/hooks/doesRootSchemeMatchSystem.js +0 -23
  626. package/dist/cjs/hooks/doesRootSchemeMatchSystem.js.map +0 -6
  627. package/dist/cjs/hooks/getThemeProxied.js +0 -56
  628. package/dist/cjs/hooks/getThemeProxied.js.map +0 -6
  629. package/dist/cjs/hooks/useComponentState.js +0 -96
  630. package/dist/cjs/hooks/useComponentState.js.map +0 -6
  631. package/dist/cjs/hooks/useDisableSSR.js +0 -24
  632. package/dist/cjs/hooks/useDisableSSR.js.map +0 -6
  633. package/dist/cjs/hooks/useIsTouchDevice.js +0 -22
  634. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -6
  635. package/dist/cjs/hooks/useMedia.js +0 -183
  636. package/dist/cjs/hooks/useMedia.js.map +0 -6
  637. package/dist/cjs/hooks/useProps.js +0 -106
  638. package/dist/cjs/hooks/useProps.js.map +0 -6
  639. package/dist/cjs/hooks/useTheme.js +0 -35
  640. package/dist/cjs/hooks/useTheme.js.map +0 -6
  641. package/dist/cjs/hooks/useThemeName.js +0 -25
  642. package/dist/cjs/hooks/useThemeName.js.map +0 -6
  643. package/dist/cjs/hooks/useThemeState.js +0 -218
  644. package/dist/cjs/hooks/useThemeState.js.map +0 -6
  645. package/dist/cjs/inject-styles.js +0 -28
  646. package/dist/cjs/inject-styles.js.map +0 -6
  647. package/dist/cjs/insertFont.js +0 -68
  648. package/dist/cjs/insertFont.js.map +0 -6
  649. package/dist/cjs/interfaces/CSSColorNames.js +0 -14
  650. package/dist/cjs/interfaces/CSSColorNames.js.map +0 -6
  651. package/dist/cjs/interfaces/GetRef.js +0 -14
  652. package/dist/cjs/interfaces/GetRef.js.map +0 -6
  653. package/dist/cjs/interfaces/RNExclusiveTypes.js +0 -14
  654. package/dist/cjs/interfaces/RNExclusiveTypes.js.map +0 -6
  655. package/dist/cjs/interfaces/TamaguiComponentEvents.js +0 -14
  656. package/dist/cjs/interfaces/TamaguiComponentEvents.js.map +0 -6
  657. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.js +0 -14
  658. package/dist/cjs/interfaces/TamaguiComponentPropsBaseBase.js.map +0 -6
  659. package/dist/cjs/setupHooks.js +0 -25
  660. package/dist/cjs/setupHooks.js.map +0 -6
  661. package/dist/cjs/setupReactNative.js +0 -43
  662. package/dist/cjs/setupReactNative.js.map +0 -6
  663. package/dist/cjs/styled.js +0 -116
  664. package/dist/cjs/styled.js.map +0 -6
  665. package/dist/cjs/styledHtml.test-d.js +0 -136
  666. package/dist/cjs/styledHtml.test-d.js.map +0 -6
  667. package/dist/cjs/type-utils.js +0 -14
  668. package/dist/cjs/type-utils.js.map +0 -6
  669. package/dist/cjs/types.js +0 -14
  670. package/dist/cjs/types.js.map +0 -6
  671. package/dist/cjs/views/Configuration.js +0 -33
  672. package/dist/cjs/views/Configuration.js.map +0 -6
  673. package/dist/cjs/views/FontLanguage.js +0 -32
  674. package/dist/cjs/views/FontLanguage.js.map +0 -6
  675. package/dist/cjs/views/Slot.js +0 -55
  676. package/dist/cjs/views/Slot.js.map +0 -6
  677. package/dist/cjs/views/Stack.js +0 -27
  678. package/dist/cjs/views/Stack.js.map +0 -6
  679. package/dist/cjs/views/Stack.native.js.map +0 -1
  680. package/dist/cjs/views/TamaguiProvider.js +0 -93
  681. package/dist/cjs/views/TamaguiProvider.js.map +0 -6
  682. package/dist/cjs/views/Text.js +0 -59
  683. package/dist/cjs/views/Text.js.map +0 -6
  684. package/dist/cjs/views/Theme.js +0 -124
  685. package/dist/cjs/views/Theme.js.map +0 -6
  686. package/dist/cjs/views/ThemeDebug.js +0 -81
  687. package/dist/cjs/views/ThemeDebug.js.map +0 -6
  688. package/dist/cjs/views/ThemeProvider.js +0 -42
  689. package/dist/cjs/views/ThemeProvider.js.map +0 -6
  690. package/dist/cjs/views/View.js +0 -26
  691. package/dist/cjs/views/View.js.map +0 -6
  692. package/dist/esm/Tamagui.js +0 -35
  693. package/dist/esm/Tamagui.js.map +0 -6
  694. package/dist/esm/_withStableStyle.js +0 -12
  695. package/dist/esm/_withStableStyle.js.map +0 -6
  696. package/dist/esm/animationDriverTypes.test-d.js +0 -51
  697. package/dist/esm/animationDriverTypes.test-d.js.map +0 -6
  698. package/dist/esm/config.js +0 -94
  699. package/dist/esm/config.js.map +0 -6
  700. package/dist/esm/constants/accessibilityDirectMap.js +0 -9
  701. package/dist/esm/constants/accessibilityDirectMap.js.map +0 -6
  702. package/dist/esm/constants/constants.js +0 -27
  703. package/dist/esm/constants/constants.js.map +0 -6
  704. package/dist/esm/constants/isDevTools.js +0 -12
  705. package/dist/esm/constants/isDevTools.js.map +0 -6
  706. package/dist/esm/constants/webToNativeProps.js +0 -6
  707. package/dist/esm/constants/webToNativeProps.js.map +0 -6
  708. package/dist/esm/constants/webToNativeProps.mjs +0 -4
  709. package/dist/esm/constants/webToNativeProps.mjs.map +0 -1
  710. package/dist/esm/constants/webToNativeProps.native.js +0 -88
  711. package/dist/esm/constants/webToNativeProps.native.js.map +0 -1
  712. package/dist/esm/contexts/ComponentContext.js +0 -15
  713. package/dist/esm/contexts/ComponentContext.js.map +0 -6
  714. package/dist/esm/contexts/GroupContext.js +0 -6
  715. package/dist/esm/contexts/GroupContext.js.map +0 -6
  716. package/dist/esm/createComponent.js +0 -702
  717. package/dist/esm/createComponent.js.map +0 -6
  718. package/dist/esm/createFont.js +0 -37
  719. package/dist/esm/createFont.js.map +0 -6
  720. package/dist/esm/createShorthands.js +0 -7
  721. package/dist/esm/createShorthands.js.map +0 -6
  722. package/dist/esm/createTamagui.js +0 -189
  723. package/dist/esm/createTamagui.js.map +0 -6
  724. package/dist/esm/createTheme.js +0 -5
  725. package/dist/esm/createTheme.js.map +0 -6
  726. package/dist/esm/createTheme.mjs +0 -3
  727. package/dist/esm/createTheme.mjs.map +0 -1
  728. package/dist/esm/createTheme.native.js +0 -5
  729. package/dist/esm/createTheme.native.js.map +0 -1
  730. package/dist/esm/createTokens.js +0 -8
  731. package/dist/esm/createTokens.js.map +0 -6
  732. package/dist/esm/createVariable.js +0 -75
  733. package/dist/esm/createVariable.js.map +0 -6
  734. package/dist/esm/createVariables.js +0 -42
  735. package/dist/esm/createVariables.js.map +0 -6
  736. package/dist/esm/defaultComponentState.js +0 -22
  737. package/dist/esm/defaultComponentState.js.map +0 -6
  738. package/dist/esm/eventHandling.js +0 -25
  739. package/dist/esm/eventHandling.js.map +0 -6
  740. package/dist/esm/helpers/createDesignSystem.js +0 -107
  741. package/dist/esm/helpers/createDesignSystem.js.map +0 -6
  742. package/dist/esm/helpers/createMediaStyle.js +0 -60
  743. package/dist/esm/helpers/createMediaStyle.js.map +0 -6
  744. package/dist/esm/helpers/createStyledContext.js +0 -31
  745. package/dist/esm/helpers/createStyledContext.js.map +0 -6
  746. package/dist/esm/helpers/defaultAnimationDriver.js +0 -23
  747. package/dist/esm/helpers/defaultAnimationDriver.js.map +0 -6
  748. package/dist/esm/helpers/defaultOffset.js +0 -5
  749. package/dist/esm/helpers/defaultOffset.js.map +0 -6
  750. package/dist/esm/helpers/expandStyle.js +0 -59
  751. package/dist/esm/helpers/expandStyle.js.map +0 -6
  752. package/dist/esm/helpers/expandStyles.js +0 -19
  753. package/dist/esm/helpers/expandStyles.js.map +0 -6
  754. package/dist/esm/helpers/getCSSStylesAtomic.js +0 -147
  755. package/dist/esm/helpers/getCSSStylesAtomic.js.map +0 -6
  756. package/dist/esm/helpers/getDefaultProps.js +0 -15
  757. package/dist/esm/helpers/getDefaultProps.js.map +0 -6
  758. package/dist/esm/helpers/getDynamicVal.js +0 -46
  759. package/dist/esm/helpers/getDynamicVal.js.map +0 -6
  760. package/dist/esm/helpers/getExpandedShorthands.js +0 -18
  761. package/dist/esm/helpers/getExpandedShorthands.js.map +0 -6
  762. package/dist/esm/helpers/getFontLanguage.js +0 -5
  763. package/dist/esm/helpers/getFontLanguage.js.map +0 -6
  764. package/dist/esm/helpers/getGroupPropParts.js +0 -19
  765. package/dist/esm/helpers/getGroupPropParts.js.map +0 -6
  766. package/dist/esm/helpers/getShorthandValue.js +0 -7
  767. package/dist/esm/helpers/getShorthandValue.js.map +0 -6
  768. package/dist/esm/helpers/getSplitStyles.js +0 -650
  769. package/dist/esm/helpers/getSplitStyles.js.map +0 -6
  770. package/dist/esm/helpers/getThemeCSSRules.js +0 -78
  771. package/dist/esm/helpers/getThemeCSSRules.js.map +0 -6
  772. package/dist/esm/helpers/getVariantExtras.js +0 -44
  773. package/dist/esm/helpers/getVariantExtras.js.map +0 -6
  774. package/dist/esm/helpers/insertStyleRule.js +0 -181
  775. package/dist/esm/helpers/insertStyleRule.js.map +0 -6
  776. package/dist/esm/helpers/isActivePlatform.js +0 -15
  777. package/dist/esm/helpers/isActivePlatform.js.map +0 -6
  778. package/dist/esm/helpers/isActiveTheme.js +0 -8
  779. package/dist/esm/helpers/isActiveTheme.js.map +0 -6
  780. package/dist/esm/helpers/isObj.js +0 -5
  781. package/dist/esm/helpers/isObj.js.map +0 -6
  782. package/dist/esm/helpers/isTamaguiComponent.js +0 -8
  783. package/dist/esm/helpers/isTamaguiComponent.js.map +0 -6
  784. package/dist/esm/helpers/isTamaguiElement.js +0 -7
  785. package/dist/esm/helpers/isTamaguiElement.js.map +0 -6
  786. package/dist/esm/helpers/log.js +0 -17
  787. package/dist/esm/helpers/log.js.map +0 -6
  788. package/dist/esm/helpers/mainThreadPressEvents.js +0 -6
  789. package/dist/esm/helpers/mainThreadPressEvents.js.map +0 -6
  790. package/dist/esm/helpers/matchMedia.js +0 -18
  791. package/dist/esm/helpers/matchMedia.js.map +0 -6
  792. package/dist/esm/helpers/mergeProps.js +0 -39
  793. package/dist/esm/helpers/mergeProps.js.map +0 -6
  794. package/dist/esm/helpers/mergeRenderElementProps.js +0 -9
  795. package/dist/esm/helpers/mergeRenderElementProps.js.map +0 -6
  796. package/dist/esm/helpers/mergeSlotStyleProps.js +0 -14
  797. package/dist/esm/helpers/mergeSlotStyleProps.js.map +0 -6
  798. package/dist/esm/helpers/mergeVariants.js +0 -22
  799. package/dist/esm/helpers/mergeVariants.js.map +0 -6
  800. package/dist/esm/helpers/nativeOnlyProps.js +0 -39
  801. package/dist/esm/helpers/nativeOnlyProps.js.map +0 -6
  802. package/dist/esm/helpers/normalizeColor.js +0 -10
  803. package/dist/esm/helpers/normalizeColor.js.map +0 -6
  804. package/dist/esm/helpers/normalizeShadow.js +0 -24
  805. package/dist/esm/helpers/normalizeShadow.js.map +0 -6
  806. package/dist/esm/helpers/normalizeStyle.js +0 -24
  807. package/dist/esm/helpers/normalizeStyle.js.map +0 -6
  808. package/dist/esm/helpers/normalizeStylePropKeys.js +0 -5
  809. package/dist/esm/helpers/normalizeStylePropKeys.js.map +0 -6
  810. package/dist/esm/helpers/normalizeValueWithProperty.js +0 -17
  811. package/dist/esm/helpers/normalizeValueWithProperty.js.map +0 -6
  812. package/dist/esm/helpers/objectIdentityKey.js +0 -22
  813. package/dist/esm/helpers/objectIdentityKey.js.map +0 -6
  814. package/dist/esm/helpers/parseBorderShorthand.js +0 -6
  815. package/dist/esm/helpers/parseBorderShorthand.js.map +0 -6
  816. package/dist/esm/helpers/pointerEvents.js +0 -6
  817. package/dist/esm/helpers/pointerEvents.js.map +0 -6
  818. package/dist/esm/helpers/propMapper.js +0 -251
  819. package/dist/esm/helpers/propMapper.js.map +0 -6
  820. package/dist/esm/helpers/proxyThemeToParents.js +0 -24
  821. package/dist/esm/helpers/proxyThemeToParents.js.map +0 -6
  822. package/dist/esm/helpers/proxyThemeVariables.js +0 -15
  823. package/dist/esm/helpers/proxyThemeVariables.js.map +0 -6
  824. package/dist/esm/helpers/pseudoDescriptors.js +0 -56
  825. package/dist/esm/helpers/pseudoDescriptors.js.map +0 -6
  826. package/dist/esm/helpers/registerCSSVariable.js +0 -31
  827. package/dist/esm/helpers/registerCSSVariable.js.map +0 -6
  828. package/dist/esm/helpers/resolveRem.js +0 -11
  829. package/dist/esm/helpers/resolveRem.js.map +0 -6
  830. package/dist/esm/helpers/resolveSafeArea.js +0 -13
  831. package/dist/esm/helpers/resolveSafeArea.js.map +0 -6
  832. package/dist/esm/helpers/setElementProps.js +0 -8
  833. package/dist/esm/helpers/setElementProps.js.map +0 -6
  834. package/dist/esm/helpers/skipProps.js +0 -23
  835. package/dist/esm/helpers/skipProps.js.map +0 -6
  836. package/dist/esm/helpers/sortString.js +0 -5
  837. package/dist/esm/helpers/sortString.js.map +0 -6
  838. package/dist/esm/helpers/subscribeToContextGroup.js +0 -59
  839. package/dist/esm/helpers/subscribeToContextGroup.js.map +0 -6
  840. package/dist/esm/helpers/themeable.js +0 -35
  841. package/dist/esm/helpers/themeable.js.map +0 -6
  842. package/dist/esm/helpers/themes.js +0 -17
  843. package/dist/esm/helpers/themes.js.map +0 -6
  844. package/dist/esm/helpers/timer.js +0 -11
  845. package/dist/esm/helpers/timer.js.map +0 -6
  846. package/dist/esm/helpers/transformsToString.js +0 -17
  847. package/dist/esm/helpers/transformsToString.js.map +0 -6
  848. package/dist/esm/helpers/useRenderElement.js +0 -28
  849. package/dist/esm/helpers/useRenderElement.js.map +0 -6
  850. package/dist/esm/helpers/webPropsToSkip.js +0 -5
  851. package/dist/esm/helpers/webPropsToSkip.js.map +0 -6
  852. package/dist/esm/helpers/wrapStyleTags.js +0 -23
  853. package/dist/esm/helpers/wrapStyleTags.js.map +0 -6
  854. package/dist/esm/hooks/doesRootSchemeMatchSystem.js +0 -7
  855. package/dist/esm/hooks/doesRootSchemeMatchSystem.js.map +0 -6
  856. package/dist/esm/hooks/getThemeProxied.js +0 -44
  857. package/dist/esm/hooks/getThemeProxied.js.map +0 -6
  858. package/dist/esm/hooks/useComponentState.js +0 -91
  859. package/dist/esm/hooks/useComponentState.js.map +0 -6
  860. package/dist/esm/hooks/useDisableSSR.js +0 -8
  861. package/dist/esm/hooks/useDisableSSR.js.map +0 -6
  862. package/dist/esm/hooks/useIsTouchDevice.js +0 -7
  863. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -6
  864. package/dist/esm/hooks/useMedia.js +0 -172
  865. package/dist/esm/hooks/useMedia.js.map +0 -6
  866. package/dist/esm/hooks/useProps.js +0 -92
  867. package/dist/esm/hooks/useProps.js.map +0 -6
  868. package/dist/esm/hooks/useTheme.js +0 -21
  869. package/dist/esm/hooks/useTheme.js.map +0 -6
  870. package/dist/esm/hooks/useThemeName.js +0 -9
  871. package/dist/esm/hooks/useThemeName.js.map +0 -6
  872. package/dist/esm/hooks/useThemeState.js +0 -212
  873. package/dist/esm/hooks/useThemeState.js.map +0 -6
  874. package/dist/esm/inject-styles.js +0 -12
  875. package/dist/esm/inject-styles.js.map +0 -6
  876. package/dist/esm/insertFont.js +0 -56
  877. package/dist/esm/insertFont.js.map +0 -6
  878. package/dist/esm/interfaces/CSSColorNames.js +0 -1
  879. package/dist/esm/interfaces/CSSColorNames.js.map +0 -6
  880. package/dist/esm/interfaces/GetRef.js +0 -1
  881. package/dist/esm/interfaces/GetRef.js.map +0 -6
  882. package/dist/esm/interfaces/RNExclusiveTypes.js +0 -1
  883. package/dist/esm/interfaces/RNExclusiveTypes.js.map +0 -6
  884. package/dist/esm/interfaces/TamaguiComponentEvents.js +0 -1
  885. package/dist/esm/interfaces/TamaguiComponentEvents.js.map +0 -6
  886. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.js +0 -1
  887. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.js.map +0 -6
  888. package/dist/esm/setupHooks.js +0 -9
  889. package/dist/esm/setupHooks.js.map +0 -6
  890. package/dist/esm/setupReactNative.js +0 -27
  891. package/dist/esm/setupReactNative.js.map +0 -6
  892. package/dist/esm/styled.js +0 -102
  893. package/dist/esm/styled.js.map +0 -6
  894. package/dist/esm/styledHtml.test-d.js +0 -137
  895. package/dist/esm/styledHtml.test-d.js.map +0 -6
  896. package/dist/esm/type-utils.js +0 -1
  897. package/dist/esm/type-utils.js.map +0 -6
  898. package/dist/esm/types.js +0 -1
  899. package/dist/esm/types.js.map +0 -6
  900. package/dist/esm/views/Configuration.js +0 -12
  901. package/dist/esm/views/Configuration.js.map +0 -6
  902. package/dist/esm/views/FontLanguage.js +0 -16
  903. package/dist/esm/views/FontLanguage.js.map +0 -6
  904. package/dist/esm/views/Slot.js +0 -43
  905. package/dist/esm/views/Slot.js.map +0 -6
  906. package/dist/esm/views/Stack.js +0 -13
  907. package/dist/esm/views/Stack.js.map +0 -6
  908. package/dist/esm/views/Stack.mjs +0 -11
  909. package/dist/esm/views/Stack.mjs.map +0 -1
  910. package/dist/esm/views/Stack.native.js +0 -11
  911. package/dist/esm/views/Stack.native.js.map +0 -1
  912. package/dist/esm/views/TamaguiProvider.js +0 -77
  913. package/dist/esm/views/TamaguiProvider.js.map +0 -6
  914. package/dist/esm/views/Text.js +0 -44
  915. package/dist/esm/views/Text.js.map +0 -6
  916. package/dist/esm/views/Theme.js +0 -110
  917. package/dist/esm/views/Theme.js.map +0 -6
  918. package/dist/esm/views/ThemeDebug.js +0 -69
  919. package/dist/esm/views/ThemeDebug.js.map +0 -6
  920. package/dist/esm/views/ThemeProvider.js +0 -31
  921. package/dist/esm/views/ThemeProvider.js.map +0 -6
  922. package/dist/esm/views/View.js +0 -12
  923. package/dist/esm/views/View.js.map +0 -6
  924. package/types/constants/webToNativeProps.d.ts.map +0 -1
  925. package/types/constants/webToNativeProps.native.d.ts.map +0 -1
  926. package/types/createTheme.d.ts.map +0 -1
  927. package/types/helpers/expandStyle.native.d.ts.map +0 -1
  928. package/types/helpers/propMapper.native.d.ts.map +0 -1
  929. package/types/views/Stack.d.ts.map +0 -1
@@ -5,10 +5,8 @@
5
5
  import { composeEventHandlers } from '@tamagui/helpers'
6
6
  import { getGestureHandler } from '@tamagui/native'
7
7
  import React, { useRef } from 'react'
8
- import type { StaticConfig, TamaguiComponentStateRef } from './types'
9
-
10
- // TODO conditional improt - the way we bundle core test.native.js breaks if inline require need to fix
11
8
  import { useMainThreadPressEvents } from './helpers/mainThreadPressEvents'
9
+ import type { StaticConfig, TamaguiComponentStateRef } from './types'
12
10
 
13
11
  // web events not used on native
14
12
  export function getWebEvents() {
@@ -20,7 +18,8 @@ export function useEvents(
20
18
  viewProps: any,
21
19
  stateRef: { current: TamaguiComponentStateRef },
22
20
  staticConfig: StaticConfig,
23
- isHOC?: boolean
21
+ isHOC?: boolean,
22
+ isInsideNativeMenu?: boolean
24
23
  ) {
25
24
  // focus/blur events always attached directly
26
25
  if (events) {
@@ -32,39 +31,6 @@ export function useEvents(
32
31
  }
33
32
  }
34
33
 
35
- // input special case - TextInput needs press events attached directly (not via RNGH)
36
- if (staticConfig.isInput && events) {
37
- const { onPressIn, onPressOut, onPress } = events
38
- const inputEvents: any = {
39
- onPressIn,
40
- onPressOut: onPressOut || onPress,
41
- }
42
- if (onPressOut && onPress) {
43
- // only supports onPressIn and onPressOut so combine them
44
- inputEvents.onPressOut = composeEventHandlers(onPress, onPressOut)
45
- }
46
- Object.assign(viewProps, inputEvents)
47
- // inputs don't use gesture handler
48
- return null
49
- }
50
-
51
- // HOC special case - pass press events to the inner component instead of wrapping
52
- // HOC components may return null which crashes GestureDetector (it tries to access
53
- // _internalInstanceHandle on a null native view). By passing events down, the inner
54
- // component handles gesture detection at its own level.
55
- if (isHOC && events) {
56
- const { onPressIn, onPressOut, onPress, onLongPress, delayLongPress } = events
57
- Object.assign(viewProps, {
58
- onPressIn,
59
- onPressOut,
60
- onPress,
61
- onLongPress,
62
- delayLongPress,
63
- })
64
- // HOCs don't use gesture handler at this level
65
- return null
66
- }
67
-
68
34
  const hasPressEvents =
69
35
  // its stable and always on if you have in/out/regular
70
36
  events?.onPress
@@ -78,11 +44,53 @@ export function useEvents(
78
44
 
79
45
  // avoid hooks/reparenting
80
46
  const everEnabled = Boolean(hasPressEvents || stateRef.current.hasHadEvents)
47
+ const isUsingRNGH = gh.isEnabled
48
+
49
+ // NOW handle early returns (after all hooks are called)
50
+ // THESE BRANCHES ARE NEVER CHANGING RENDER-TO-RENDER
51
+
52
+ // input special case - TextInput needs press events attached directly (not via RNGH)
53
+ if (staticConfig.isInput) {
54
+ if (events) {
55
+ const { onPressIn, onPressOut, onPress } = events
56
+ const inputEvents: any = {
57
+ onPressIn,
58
+ onPressOut: onPressOut || onPress,
59
+ }
60
+ if (onPressOut && onPress) {
61
+ // only supports onPressIn and onPressOut so combine them
62
+ inputEvents.onPressOut = composeEventHandlers(onPress, onPressOut)
63
+ }
64
+ Object.assign(viewProps, inputEvents)
65
+ }
66
+
67
+ // inputs don't use gesture handler
68
+ return null
69
+ }
70
+
71
+ // HOC special case - pass press events to the inner component instead of wrapping
72
+ // HOC components may return null which crashes GestureDetector (it tries to access
73
+ // _internalInstanceHandle on a null native view). By passing events down, the inner
74
+ // component handles gesture detection at its own level.
75
+ if (isHOC) {
76
+ if (events) {
77
+ const { onPressIn, onPressOut, onPress, onLongPress, delayLongPress } = events
78
+ Object.assign(viewProps, {
79
+ onPressIn,
80
+ onPressOut,
81
+ onPress,
82
+ onLongPress,
83
+ delayLongPress,
84
+ })
85
+ }
86
+ // HOCs don't use gesture handler at this level
87
+ return null
88
+ }
81
89
 
82
- // rngh
83
- // gh.isEnabled - set once before app load - never changes
84
- if (gh.isEnabled) {
85
- const callbacksRef = useRef<any>({})
90
+ // rngh path - logic (hooks already called above)
91
+ if (isUsingRNGH) {
92
+ // rngh path - hooks
93
+ const callbacksRef = useRef<any>(isUsingRNGH ? {} : null)
86
94
  const gestureRef = useRef<any>(null)
87
95
 
88
96
  if (everEnabled) {
@@ -98,21 +106,41 @@ export function useEvents(
98
106
 
99
107
  // only create gesture once, callbacks are read from ref
100
108
  if (!gestureRef.current) {
101
- gestureRef.current = gh.createPressGesture({
102
- onPressIn: (e: any) => callbacksRef.current.onPressIn?.(e),
103
- onPressOut: (e: any) => callbacksRef.current.onPressOut?.(e),
104
- onPress: (e: any) => callbacksRef.current.onPress?.(e),
105
- onLongPress: (e: any) => callbacksRef.current.onLongPress?.(e),
106
- delayLongPress: events.delayLongPress,
107
- hitSlop: viewProps.hitSlop,
108
- })
109
+ if (isInsideNativeMenu) {
110
+ // Inside native menus on Android: use Manual gesture with manualActivation
111
+ // so it never goes ACTIVE (which would send ACTION_CANCEL to MenuView).
112
+ // Press callbacks fire via onTouchesDown/Up instead.
113
+ const { Gesture } = gh.state
114
+ const manual = Gesture.Manual()
115
+ .runOnJS(true)
116
+ .manualActivation(true)
117
+ .onTouchesDown(() => {
118
+ callbacksRef.current.onPressIn?.({})
119
+ })
120
+ .onTouchesUp(() => {
121
+ callbacksRef.current.onPress?.({})
122
+ callbacksRef.current.onPressOut?.({})
123
+ })
124
+ .onTouchesCancelled(() => {
125
+ callbacksRef.current.onPressOut?.({})
126
+ })
127
+ gestureRef.current = manual
128
+ } else {
129
+ gestureRef.current = gh.createPressGesture({
130
+ onPressIn: (e: any) => callbacksRef.current.onPressIn?.(e),
131
+ onPressOut: (e: any) => callbacksRef.current.onPressOut?.(e),
132
+ onPress: (e: any) => callbacksRef.current.onPress?.(e),
133
+ onLongPress: (e: any) => callbacksRef.current.onLongPress?.(e),
134
+ delayLongPress: events?.delayLongPress,
135
+ hitSlop: viewProps.hitSlop,
136
+ })
137
+ }
109
138
  }
110
139
  // TODO update viewProps.hitSlop / events.delayLongPress!
111
140
 
112
141
  return gestureRef.current
113
142
  }
114
143
 
115
- // don't fall through to useMainThreadPressEvents
116
144
  return null
117
145
  }
118
146
 
@@ -37,7 +37,8 @@ export function useEvents(
37
37
  _viewProps: any,
38
38
  _stateRef: { current: any },
39
39
  _staticConfig: any,
40
- _isHOC?: boolean
40
+ _isHOC?: boolean,
41
+ _isInsideNativeMenu?: boolean
41
42
  ) {
42
43
  return null
43
44
  }
@@ -1,5 +1,6 @@
1
1
  import { isWeb } from '@tamagui/constants'
2
2
  import type { CreateTamaguiProps, Variable } from '../types'
3
+ import { getVariableVariable, isVariable } from '../createVariable'
3
4
  import { autoVariables, registerCSSVariable, variableToCSS } from './registerCSSVariable'
4
5
  import { getThemeCSSRules } from './getThemeCSSRules'
5
6
  import { getAllRules } from './insertStyleRule'
@@ -9,6 +10,38 @@ type ThemeConfig = {
9
10
  getThemeRulesSets: () => string[]
10
11
  }
11
12
 
13
+ // helper to get font property CSS declarations
14
+ function getFontPropertyDeclarations(
15
+ fontParsed: any,
16
+ tokenKey: string = '$true'
17
+ ): string[] {
18
+ const props: string[] = ['font-family: var(--f-family)']
19
+
20
+ const getVarRef = (obj: any) => {
21
+ const val = obj?.[tokenKey]
22
+ if (isVariable(val)) {
23
+ return getVariableVariable(val)
24
+ }
25
+ return undefined
26
+ }
27
+
28
+ const letterSpacing = getVarRef(fontParsed.letterSpacing)
29
+ if (letterSpacing) props.push(`letter-spacing: ${letterSpacing}`)
30
+
31
+ const lineHeight = getVarRef(fontParsed.lineHeight)
32
+ if (lineHeight) props.push(`line-height: ${lineHeight}`)
33
+
34
+ const fontStyle = getVarRef(fontParsed.style)
35
+ if (fontStyle) props.push(`font-style: ${fontStyle}`)
36
+
37
+ const fontWeight = getVarRef(fontParsed.weight)
38
+ if (fontWeight) props.push(`font-weight: ${fontWeight}`)
39
+
40
+ return props
41
+ }
42
+
43
+ export { getFontPropertyDeclarations }
44
+
12
45
  /**
13
46
  * Generates CSS for tokens - registers CSS variables and builds declaration strings
14
47
  */
@@ -46,11 +79,14 @@ export function createTokenCSS(
46
79
  export function createFontCSS(
47
80
  fontsParsed: Record<string, any> | undefined,
48
81
  registerFontVariables: (fontParsed: any) => string[]
49
- ): Record<string, { name: string; declarations: string[]; language?: string }> {
82
+ ): Record<
83
+ string,
84
+ { name: string; declarations: string[]; language?: string; fontParsed: any }
85
+ > {
50
86
  if (!process.env.TAMAGUI_DID_OUTPUT_CSS) {
51
87
  const fontDeclarations: Record<
52
88
  string,
53
- { name: string; declarations: string[]; language?: string }
89
+ { name: string; declarations: string[]; language?: string; fontParsed: any }
54
90
  > = {}
55
91
 
56
92
  if (!fontsParsed) return fontDeclarations
@@ -64,6 +100,7 @@ export function createFontCSS(
64
100
  name: name.slice(1),
65
101
  declarations: fontVars,
66
102
  language,
103
+ fontParsed,
67
104
  }
68
105
  }
69
106
 
@@ -79,8 +116,9 @@ export function buildCSSRuleSets(
79
116
  declarations: string[],
80
117
  fontDeclarations: Record<
81
118
  string,
82
- { name: string; declarations: string[]; language?: string }
83
- >
119
+ { name: string; declarations: string[]; language?: string; fontParsed: any }
120
+ >,
121
+ defaultFontToken: string = '$true'
84
122
  ): string[] {
85
123
  if (!process.env.TAMAGUI_DID_OUTPUT_CSS) {
86
124
  const cssRuleSets: string[] = []
@@ -95,11 +133,13 @@ export function buildCSSRuleSets(
95
133
  cssRuleSets.push(declarationsToRuleSet(declarations))
96
134
  }
97
135
 
98
- // fonts
136
+ // fonts - each font_* sets CSS variables
137
+ const fontSelectors: string[] = []
99
138
  const sortedFontDeclarationKeys = Object.keys(fontDeclarations).sort()
100
139
  for (const key of sortedFontDeclarationKeys) {
101
140
  const { name, declarations, language = 'default' } = fontDeclarations[key]
102
141
  const fontSelector = `.font_${name}`
142
+ fontSelectors.push(fontSelector)
103
143
  const langSelector = `:root .t_lang-${name}-${language} ${fontSelector}`
104
144
  const selectors =
105
145
  language === 'default' ? ` ${fontSelector}, ${langSelector}` : langSelector
@@ -107,6 +147,20 @@ export function buildCSSRuleSets(
107
147
  cssRuleSets.push(specificRuleSet)
108
148
  }
109
149
 
150
+ // shared rule: all font_* classes + is_View apply font properties
151
+ // this resets fonts on Views like React Native does
152
+ if (fontSelectors.length) {
153
+ const firstFont = fontDeclarations[sortedFontDeclarationKeys[0]]
154
+ if (firstFont?.fontParsed) {
155
+ const fontProps = getFontPropertyDeclarations(
156
+ firstFont.fontParsed,
157
+ defaultFontToken
158
+ )
159
+ const sharedSelectors = [...fontSelectors, '.is_View'].join(', ')
160
+ cssRuleSets.push(`${sharedSelectors} {${fontProps.join('; ')}}`)
161
+ }
162
+ }
163
+
110
164
  return cssRuleSets
111
165
  }
112
166
  return []
@@ -176,12 +230,29 @@ export function getCSS(
176
230
  ? `:root{${autoVariables.map((v) => `--${v.name}:${v.val}`).join(';')}}`
177
231
  : ''
178
232
 
233
+ // notes:
234
+ // @scope (.is_Text) to (.is_View) - inherit text styles in nested Text without View boundary
235
+ // display: inline breaks css transform styles
236
+
237
+ // !important or else random css easily overrides, the prop is absolute (local-first styling)
238
+ const hideScrollBarsCSS = `._hsb-x::-webkit-scrollbar:horizontal { display: none !important; }
239
+ ._hsb-y::-webkit-scrollbar:vertical { display: none !important; }
240
+ ._hsb-x { scrollbar-width: none !important; }
241
+ ._hsb-y { scrollbar-width: none !important; }`
242
+ const pointerEventsCSS = `:root ._pe-boxonly>* {pointer-events:none;}
243
+ :root ._pe-boxnone>* {pointer-events:auto;}`
244
+
179
245
  const designSystem = `._ovs-contain {overscroll-behavior:contain;}
180
- .is_Text .is_Text {display:inline-flex;font-family:inherit;}
246
+ .t_unmounted .is_View, .t_unmounted .is_Text { transition: none !important; }
247
+ .is_View { display: flex; align-items: stretch; flex-direction: column; flex-basis: auto; box-sizing: border-box; min-height: 0; min-width: 0; flex-shrink: 0; }
248
+ .is_Text { display: inline; box-sizing: border-box; word-wrap: break-word; white-space: pre-wrap; margin: 0; }
249
+ @scope (.is_Text) to (.is_View) { .is_Text { white-space: inherit; word-wrap: inherit; } }
181
250
  ._dsp_contents {display:contents;}
182
251
  ._no_backdrop::backdrop {display: none;}
183
252
  .is_Input::selection, .is_TextArea::selection {background-color: var(--selectionColor);}
184
253
  .is_Input::placeholder, .is_TextArea::placeholder {color: var(--placeholderColor);}
254
+ ${pointerEventsCSS}
255
+ ${hideScrollBarsCSS}
185
256
  ${autoVarCSS}
186
257
  ${themeConfig.cssRuleSets.join(separator)}`
187
258
 
@@ -1,5 +1,5 @@
1
1
  import { getSetting } from '../config'
2
- import { mediaObjectToString } from '../hooks/useMedia'
2
+ import { mediaObjectToString } from './mediaObjectToString'
3
3
  import type { IsMediaType, MediaQueries, MediaStyleObject, StyleObject } from '../types'
4
4
  import { getGroupPropParts, type GroupParts } from './getGroupPropParts'
5
5
 
@@ -22,7 +22,7 @@ const groupPseudoToPseudoCSSMap = {
22
22
  focusWithin: 'focus-within',
23
23
  }
24
24
 
25
- const specificities = new Array(5)
25
+ const specificities = new Array(12)
26
26
  .fill(0)
27
27
  .map((_, i) => new Array(i).fill(':root').join(''))
28
28
 
@@ -73,7 +73,9 @@ export const createMediaStyle = (
73
73
  let groupMediaKey: string | undefined
74
74
  let containerName: string | undefined
75
75
  let nextIdentifier = identifier.replace(ogPrefix, id)
76
- let styleInner = rules.map((rule) => rule.replace(identifier, nextIdentifier)).join(';')
76
+ let styleInner = rules
77
+ .map((rule) => rule.replaceAll(identifier, nextIdentifier))
78
+ .join(';')
77
79
  let isHover = false
78
80
 
79
81
  if (isNonWindowMedia) {
@@ -104,7 +106,13 @@ export const createMediaStyle = (
104
106
  // add back in the { we used to split
105
107
  styleRule = styleInner.replace(selector, nextSelector)
106
108
  } else {
107
- styleRule = `${specificities[specificity]}${styleInner}`
109
+ const prefix = specificities[specificity]
110
+ // when styleInner is wrapped in @media (eg hover), inject specificity
111
+ // inside the block — `:root@media ...` is invalid CSS
112
+ styleRule =
113
+ prefix && styleInner[0] === '@'
114
+ ? styleInner.replace('{', `{${prefix}`)
115
+ : `${prefix}${styleInner}`
108
116
  }
109
117
  }
110
118
 
@@ -1,25 +1,34 @@
1
1
  import type { Context, ReactNode } from 'react'
2
- import React, { useContext } from 'react'
2
+ import React from 'react'
3
3
  import type { StyledContext } from '../types'
4
4
  import { mergeProps } from './mergeProps'
5
5
  import { objectIdentityKey } from './objectIdentityKey'
6
6
 
7
- // test types:
8
- // const x = createContext({})
9
- // const y = x.Provider
10
- // export const ButtonContext = createStyledContext({
11
- // size: '$4',
12
- // })
13
- // const z = useContext(ButtonContext.context)
14
-
15
- // avoid react compiler - we aren't breaking its rules but it shouldn't compile this file because
16
- // it will mis-interpret how we change the context value. in
17
- const createReactContext = React[Math.random() ? 'createContext' : 'createContext']
18
-
19
- export function createStyledContext<VariantProps extends Record<string, any>>(
7
+ // use const (not function declaration) to prevent esbuild from hoisting
8
+ // above __esm lazy init - function declarations get hoisted before
9
+ // import_react is initialized, causing undefined.default errors in SSR
10
+ export const createStyledContext = <VariantProps extends Record<string, any>>(
20
11
  defaultValues?: VariantProps,
21
12
  namespace = ''
22
- ): StyledContext<VariantProps> {
13
+ ): StyledContext<VariantProps> => {
14
+ // avoid react compiler - we aren't breaking its rules but it mis-interprets
15
+ // how we change the context value
16
+ 'use no memo'
17
+
18
+ // lazy initialization fixes vite ssr hmr - module-level assignments can fail
19
+ // when React is undefined during __esm re-initialization order issues.
20
+ // also React.createContext is optimized oddly by React compiler and our
21
+ // uncommon usage confuses it, so we use dynamic access
22
+ const createReactContext = React[
23
+ Math.random() ? 'createContext' : 'createContext'
24
+ ] as typeof React.createContext
25
+ const useReactMemo = React[
26
+ Math.random() ? 'useMemo' : 'useMemo'
27
+ ] as typeof React.useMemo
28
+ const useReactContext = React[
29
+ Math.random() ? 'useContext' : 'useContext'
30
+ ] as typeof React.useContext
31
+
23
32
  const OGContext = createReactContext<VariantProps | undefined>(defaultValues)
24
33
  const OGProvider = OGContext.Provider
25
34
  const Context = OGContext as any as StyledContext<VariantProps>
@@ -47,7 +56,7 @@ export function createStyledContext<VariantProps extends Record<string, any>>(
47
56
  }: VariantProps & { children?: ReactNode; scope: string }) => {
48
57
  const scope = getNamespacedScope(scopeIn)
49
58
 
50
- const next = React.useMemo(() => {
59
+ const next = useReactMemo(() => {
51
60
  if (__disableMergeDefaultValues) {
52
61
  // we already merged and want to keep ordering
53
62
  return values
@@ -68,14 +77,14 @@ export function createStyledContext<VariantProps extends Record<string, any>>(
68
77
 
69
78
  // use consumerComponent just to give a better error message
70
79
  const useStyledContext = (scopeIn = '') => {
71
- const lastScopeInNamespace = useContext(LastScopeInNamespace)
80
+ const lastScopeInNamespace = useReactContext(LastScopeInNamespace)
72
81
  const scope = namespace
73
82
  ? scopeIn
74
83
  ? getNamespacedScope(scopeIn)
75
84
  : lastScopeInNamespace
76
85
  : scopeIn
77
86
  const context = scope ? getOrCreateScopedContext(scope) : OGContext
78
- const value = React.useContext(context!) as VariantProps
87
+ const value = useReactContext(context!) as VariantProps
79
88
  return value
80
89
  }
81
90
 
@@ -8,10 +8,8 @@ const noAnimationDriver = (method: string): any => {
8
8
 
9
9
  const createEmptyAnimationDriver = (): AnimationDriver => ({
10
10
  isReactNative: false,
11
- supportsCSS: true,
12
11
  inputStyle: 'css',
13
12
  outputStyle: 'css',
14
- classNameAnimation: true,
15
13
  isStub: true,
16
14
  animations: {},
17
15
  useAnimations: () => noAnimationDriver('animations'),
@@ -8,6 +8,7 @@ import { isAndroid, isWeb } from '@tamagui/constants'
8
8
  import { getSetting } from '../config'
9
9
  import type { PropMappedValue } from '../types'
10
10
  import { parseBorderShorthand } from './parseBorderShorthand'
11
+ import { parseOutlineShorthand } from './parseOutlineShorthand'
11
12
 
12
13
  const neg1Flex = [
13
14
  ['flexGrow', 0],
@@ -65,6 +66,7 @@ export function expandStyle(key: string, value: any): PropMappedValue {
65
66
  }
66
67
  case 'backgroundImage': {
67
68
  // RN 0.76+ uses experimental_backgroundImage
69
+ // value may be a parsed array (from parseNativeStyle) or a plain string
68
70
  return [['experimental_backgroundImage', value]]
69
71
  }
70
72
  case 'border': {
@@ -78,6 +80,15 @@ export function expandStyle(key: string, value: any): PropMappedValue {
78
80
  }
79
81
  return
80
82
  }
83
+ case 'outline': {
84
+ if (typeof value === 'string') {
85
+ const parsed = parseOutlineShorthand(value)
86
+ if (parsed) {
87
+ return parsed
88
+ }
89
+ }
90
+ return
91
+ }
81
92
  }
82
93
 
83
94
  // native-only key expansions (logical properties)
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import type { StyleObject } from '@tamagui/helpers'
7
- import { simpleHash } from '@tamagui/helpers'
7
+ import { cssShorthandLonghands, simpleHash } from '@tamagui/helpers'
8
8
  import { getConfigMaybe } from '../config'
9
9
  import { isMediaKey } from '../hooks/useMedia'
10
10
  import type { TamaguiInternalConfig, ViewStyleWithPseudos } from '../types'
@@ -79,7 +79,11 @@ const getStyleObject = (
79
79
  const pseudoPrefix = pseudo ? `0${pseudo.name}-` : ''
80
80
  conf ||= getConfigMaybe()
81
81
  const shortProp = conf?.inverseShorthands[key] || key
82
- const identifier = `_${shortProp}-${pseudoPrefix}${hash}`
82
+ let identifier = `_${shortProp}-${pseudoPrefix}${hash}`
83
+ if (key === 'pointerEvents' && !pseudo) {
84
+ if (value === 'box-none') identifier = '_pe-boxnone'
85
+ else if (value === 'box-only') identifier = '_pe-boxonly'
86
+ }
83
87
  const rules = createAtomicRules(identifier, key, value, pseudo)
84
88
  return [
85
89
  // array for performance
@@ -173,11 +177,15 @@ function createAtomicRules(
173
177
  : ''
174
178
  const pseudoSelector = pseudo?.selector
175
179
 
180
+ // longhands get .cls.cls for higher specificity over shorthands
181
+ const cls =
182
+ property in cssShorthandLonghands ? `.${identifier}.${identifier}` : `.${identifier}`
183
+
176
184
  let selector = pseudo
177
185
  ? pseudoSelector
178
- ? `${pseudoSelector} .${identifier}`
179
- : `${selectorPriority[pseudo.name]} .${identifier}${pseudoIdPostfix}`
180
- : `:root .${identifier}`
186
+ ? `${pseudoSelector} ${cls}`
187
+ : `${selectorPriority[pseudo.name]} ${cls}${pseudoIdPostfix}`
188
+ : `:root ${cls}`
181
189
 
182
190
  // enter style on css driver needs both:
183
191
  // .t_unmounted .selector
@@ -227,14 +235,8 @@ function createAtomicRules(
227
235
  let finalValue = value
228
236
  if (value === 'auto' || value === 'box-only') {
229
237
  finalValue = 'auto'
230
- if (value === 'box-only') {
231
- rules.push(`${selector}>*${boxOnly}`)
232
- }
233
238
  } else if (value === 'none' || value === 'box-none') {
234
239
  finalValue = 'none'
235
- if (value === 'box-none') {
236
- rules.push(`${selector}>*${boxNone}`)
237
- }
238
240
  }
239
241
  const block = createDeclarationBlock([['pointerEvents', finalValue]], true)
240
242
  rules.push(`${selector}${block}`)
@@ -259,6 +261,3 @@ function createAtomicRules(
259
261
 
260
262
  return rules
261
263
  }
262
-
263
- const boxNone = createDeclarationBlock([['pointerEvents', 'auto']], true)
264
- const boxOnly = createDeclarationBlock([['pointerEvents', 'none']], true)
@@ -4,8 +4,7 @@ import type { StaticConfig } from '../types'
4
4
  // merge both default props, styled context props, and default text props
5
5
  export const getDefaultProps = (
6
6
  staticConfig: StaticConfig,
7
- propsComponentName?: string,
8
- isSubText?: boolean
7
+ propsComponentName?: string
9
8
  ) => {
10
9
  let defaultProps = staticConfig?.defaultProps
11
10
 
@@ -20,19 +19,9 @@ export const getDefaultProps = (
20
19
 
21
20
  if (userDefaultProps) {
22
21
  // component's staticConfig.defaultProps wins over global config defaults
23
- defaultProps = { ...userDefaultProps, ...defaultProps }
24
- }
25
-
26
- if (process.env.TAMAGUI_TARGET === 'web' && isSubText) {
27
- // for nested text, inherit from parent unless component explicitly set a fontFamily
28
- // staticConfig.defaultProps contains explicit component defaults (e.g., SizableText sets $body)
29
- // userDefaultProps contains global config defaults - these should be overridden for nested text
30
- const hasExplicitFontFamily = staticConfig?.defaultProps?.fontFamily
31
- defaultProps = { ...defaultProps }
32
- if (!hasExplicitFontFamily) defaultProps.fontFamily = 'inherit'
33
- if (!defaultProps.color) defaultProps.color = 'inherit'
34
- if (defaultProps.whiteSpace === 'pre-wrap') defaultProps.whiteSpace = 'inherit'
35
- if (defaultProps.wordWrap === 'break-word') defaultProps.wordWrap = 'inherit'
22
+ defaultProps = defaultProps
23
+ ? { ...userDefaultProps, ...defaultProps }
24
+ : userDefaultProps
36
25
  }
37
26
 
38
27
  return defaultProps
@@ -1,4 +1,4 @@
1
- import { getMedia } from '../hooks/useMedia'
1
+ import { getMedia } from './mediaState'
2
2
  import { pseudoPriorities } from './pseudoDescriptors'
3
3
 
4
4
  export type GroupParts = { name: string; pseudo?: string; media?: string }