@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
package/src/types.tsx CHANGED
@@ -426,7 +426,7 @@ export type FontLanguageProps = LanguageContextType & {
426
426
 
427
427
  export type ThemeProviderProps = {
428
428
  className?: string
429
- defaultTheme: string
429
+ defaultTheme: string | null | undefined
430
430
  /** @deprecated moved to createTamagui({ settings: { disableRootThemeClass } }) */
431
431
  disableRootThemeClass?: boolean
432
432
  /** @deprecated moved to createTamagui({ settings: { themeClassNameOnRoot } }) */
@@ -612,6 +612,14 @@ export type TamaguiComponentStateRef = {
612
612
 
613
613
  // cleanup function for media emit listener
614
614
  mediaEmitCleanup?: () => void
615
+
616
+ // previous pseudo state for detecting enter vs exit transitions
617
+ prevPseudoState?: {
618
+ hover?: boolean
619
+ press?: boolean
620
+ focus?: boolean
621
+ groups?: Record<string, { hover?: boolean; press?: boolean; focus?: boolean }>
622
+ }
615
623
  }
616
624
 
617
625
  export type ComponentGroupEmitter = {
@@ -789,6 +797,12 @@ export type OnlyAllowShorthandsSetting = TamaguiConfig['settings'] extends {
789
797
  ? X
790
798
  : false
791
799
 
800
+ export type OnlyShorthandStylePropsSetting = TamaguiConfig['settings'] extends {
801
+ onlyShorthandStyleProps: infer X
802
+ }
803
+ ? X
804
+ : false
805
+
792
806
  export type CreateTamaguiConfig<
793
807
  A extends GenericTokens,
794
808
  B extends GenericThemes,
@@ -797,6 +811,9 @@ export type CreateTamaguiConfig<
797
811
  E extends GenericAnimations = GenericAnimations,
798
812
  F extends GenericFonts = GenericFonts,
799
813
  H extends GenericTamaguiSettings = GenericTamaguiSettings,
814
+ // preserve the raw animation driver keys ('default' | 'css' | etc)
815
+ // defaults to string so generic TamaguiInternalConfig accepts any driver keys
816
+ AnimDriverKeys extends string = string,
800
817
  > = {
801
818
  fonts: RemoveLanguagePostfixes<F>
802
819
  fontLanguages: GetLanguagePostfixes<F> extends never
@@ -815,6 +832,8 @@ export type CreateTamaguiConfig<
815
832
  // Multi-driver: { default: cssDriver, spring: motiDriver }
816
833
  // Single: AnimationDriver<E>
817
834
  animations: AnimationDriver<E> | AnimationsConfigObject
835
+ // phantom type for preserving driver keys - never set at runtime, only for type inference
836
+ animationDriverKeys?: AnimDriverKeys
818
837
  settings: H
819
838
  }
820
839
 
@@ -880,6 +899,16 @@ type ExtractAnimationConfig<E> =
880
899
  ? E
881
900
  : EmptyAnimations
882
901
 
902
+ // Helper to extract animation driver keys from raw animations prop
903
+ // Single driver: returns 'default'
904
+ // Multi-driver { default: x, css: y }: returns 'default' | 'css'
905
+ type ExtractAnimationDriverKeys<E> =
906
+ E extends AnimationDriver<any>
907
+ ? 'default'
908
+ : E extends { default: AnimationDriver<any> }
909
+ ? Extract<keyof E, string>
910
+ : 'default'
911
+
883
912
  export type InferTamaguiConfig<Conf> =
884
913
  Conf extends ConfProps<infer A, infer B, infer C, infer D, infer E, infer F, infer H>
885
914
  ? TamaguiInternalConfig<
@@ -889,7 +918,8 @@ export type InferTamaguiConfig<Conf> =
889
918
  D extends GenericMedia ? D : EmptyMedia,
890
919
  ExtractAnimationConfig<E>,
891
920
  F extends GenericFonts ? F : EmptyFonts,
892
- H extends GenericTamaguiSettings ? H : EmptyTamaguiSettings
921
+ H extends GenericTamaguiSettings ? H : EmptyTamaguiSettings,
922
+ ExtractAnimationDriverKeys<E>
893
923
  >
894
924
  : unknown
895
925
 
@@ -948,7 +978,10 @@ export type ThemeTokens = `$${ThemeKeys}`
948
978
  // Animation names (slow, fast, bouncy) for the `transition` prop
949
979
  // Extract animation keys from the driver's `animations` property
950
980
  // The AnimationDriver<Config> has an `animations: Config` property
951
- type GetAnimationsFromDriver<T> = T extends { animations: infer A } ? keyof A : never
981
+ // Use Extract<keyof A, string> to filter out number/symbol keys from fallback case
982
+ type GetAnimationsFromDriver<T> = T extends { animations: infer A }
983
+ ? Extract<keyof A, string>
984
+ : never
952
985
 
953
986
  // For multi-driver configs like { default: AnimationDriver, css: AnimationDriver }
954
987
  // Extract from the 'default' driver or first driver found
@@ -970,21 +1003,18 @@ type InferredTransitionKeys =
970
1003
  export type TransitionKeys = InferredTransitionKeys
971
1004
 
972
1005
  // Driver keys (default, css, spring) for the `animatedBy` prop
973
- type InferredAnimationDriverKeys =
974
- TamaguiConfig['animations'] extends AnimationDriver<any>
975
- ? 'default'
976
- : TamaguiConfig['animations'] extends Record<string, AnimationDriver<any>>
977
- ? keyof TamaguiConfig['animations']
978
- : 'default'
979
-
980
- // Combine inferred keys from config with TypeOverride keys
981
- // This ensures both config-defined drivers AND lazy-loaded drivers are available
1006
+ // Gets driver keys directly from TamaguiConfig.animationDriverKeys
1007
+ // Falls back to 'default' only when TamaguiCustomConfig is empty (no augmentation)
1008
+ // The Exclude<X, undefined> handles optional property, then we intersect with string
1009
+ // to ensure only string keys (not symbols/numbers)
982
1010
  export type AnimationDriverKeys =
983
1011
  | 'default'
984
- | InferredAnimationDriverKeys
1012
+ | Extract<Exclude<TamaguiConfig['animationDriverKeys'], undefined>, string>
1013
+ // add TypeOverride keys for lazy-loaded drivers
985
1014
  | (ReturnType<TypeOverride['animationDrivers']> extends 1
986
1015
  ? never
987
1016
  : ReturnType<TypeOverride['animationDrivers']>)
1017
+
988
1018
  export type FontLanguages = ArrayIntersection<TamaguiConfig['fontLanguages']>
989
1019
 
990
1020
  export interface ThemeProps {
@@ -1208,6 +1238,23 @@ export interface GenericTamaguiSettings {
1208
1238
  * @default 16
1209
1239
  */
1210
1240
  remBaseFontSize?: number
1241
+
1242
+ /**
1243
+ * When true, removes the individual longhand style props for border,
1244
+ * outline, and shadow (borderWidth, borderStyle, borderColor,
1245
+ * outlineWidth, outlineStyle, outlineColor, outlineOffset,
1246
+ * shadowColor, shadowOffset, shadowOpacity, shadowRadius) from the
1247
+ * type system, encouraging use of the combined shorthand props instead
1248
+ * (`border`, `outline`, `boxShadow`).
1249
+ *
1250
+ * This avoids specificity issues when mixing shorthand and longhand
1251
+ * props in atomic CSS output.
1252
+ *
1253
+ * Note: this is type-level only - it does not change runtime behavior.
1254
+ *
1255
+ * @default false
1256
+ */
1257
+ onlyShorthandStyleProps?: boolean
1211
1258
  }
1212
1259
 
1213
1260
  export type TamaguiSettings = TamaguiConfig['settings']
@@ -1282,8 +1329,11 @@ export type TamaguiInternalConfig<
1282
1329
  E extends GenericAnimations = GenericAnimations,
1283
1330
  F extends GenericFonts = GenericFonts,
1284
1331
  G extends GenericTamaguiSettings = GenericTamaguiSettings,
1332
+ // preserve the raw animation driver keys ('default' | 'css' | etc)
1333
+ // defaults to string so generic TamaguiInternalConfig accepts any driver keys
1334
+ AnimDriverKeys extends string = string,
1285
1335
  > = Omit<CreateTamaguiProps, keyof GenericTamaguiConfig> &
1286
- Omit<CreateTamaguiConfig<A, B, C, D, E, F, G>, 'tokens'> & {
1336
+ Omit<CreateTamaguiConfig<A, B, C, D, E, F, G, AnimDriverKeys>, 'tokens'> & {
1287
1337
  // TODO need to make it this but this breaks types, revisit
1288
1338
  // animations: E //AnimationDriver<E>
1289
1339
  // with $ prefixes for fast lookups (one time cost at startup vs every render)
@@ -1302,6 +1352,9 @@ export type TamaguiInternalConfig<
1302
1352
  settings: Omit<GenericTamaguiSettings, keyof G> & G
1303
1353
  defaultFont?: string
1304
1354
  defaultFontToken: `${string}`
1355
+ // multi-driver animation config (e.g., { default: motionDriver, css: cssDriver })
1356
+ // used for component-level driver selection via animatedBy prop
1357
+ animationDrivers?: Record<string, AnimationDriver>
1305
1358
  }
1306
1359
 
1307
1360
  export type GetAnimationKeys<A extends GenericTamaguiConfig> = keyof A['animations']
@@ -1414,29 +1467,58 @@ export type MatchMedia = (query: string) => MediaQueryList
1414
1467
  // TODO can override for better types
1415
1468
  export type AnimationConfigType = any
1416
1469
 
1470
+ /**
1471
+ * Spring configuration parameters that can override preset defaults.
1472
+ * Use with array syntax: transition={['bouncy', { stiffness: 1000, damping: 70 }]}
1473
+ */
1474
+ export type TransitionSpringConfig = {
1475
+ stiffness?: number
1476
+ damping?: number
1477
+ mass?: number
1478
+ tension?: number
1479
+ friction?: number
1480
+ velocity?: number
1481
+ overshootClamping?: boolean
1482
+ duration?: number
1483
+ bounciness?: number
1484
+ speed?: number
1485
+ }
1486
+
1417
1487
  export type TransitionProp =
1418
1488
  | TransitionKeys
1419
- | {
1420
- [key: string]:
1421
- | TransitionKeys
1422
- | {
1423
- type: TransitionKeys
1424
- [key: string]: any
1425
- }
1426
- }
1427
- | [
1428
- TransitionKeys,
1429
- {
1430
- delay?: number
1489
+ | ({
1490
+ default?: TransitionKeys
1491
+ enter?: TransitionKeys
1492
+ exit?: TransitionKeys
1493
+ delay?: number
1494
+ } & TransitionSpringConfig & {
1431
1495
  [key: string]:
1432
1496
  | TransitionKeys
1433
1497
  | {
1434
- type?: TransitionKeys
1498
+ type: TransitionKeys
1435
1499
  [key: string]: any
1436
1500
  }
1437
1501
  | number
1502
+ | boolean
1438
1503
  | undefined
1439
- },
1504
+ })
1505
+ | [
1506
+ TransitionKeys,
1507
+ {
1508
+ delay?: number
1509
+ enter?: TransitionKeys
1510
+ exit?: TransitionKeys
1511
+ } & TransitionSpringConfig & {
1512
+ [key: string]:
1513
+ | TransitionKeys
1514
+ | {
1515
+ type?: TransitionKeys
1516
+ [key: string]: any
1517
+ }
1518
+ | number
1519
+ | boolean
1520
+ | undefined
1521
+ },
1440
1522
  ]
1441
1523
 
1442
1524
  /**
@@ -1615,11 +1697,13 @@ export type ColorTokens =
1615
1697
  export type ZIndexTokens =
1616
1698
  | SpecificTokensSpecial
1617
1699
  | GetTokenString<keyof Tokens['zIndex']>
1700
+ | ThemeValueFallbackZIndex
1618
1701
  | number
1619
1702
 
1620
1703
  export type RadiusTokens =
1621
1704
  | SpecificTokensSpecial
1622
1705
  | GetTokenString<keyof Tokens['radius']>
1706
+ | ThemeValueFallbackRadius
1623
1707
  | number
1624
1708
  | RemString
1625
1709
 
@@ -1719,16 +1803,18 @@ export type ThemeValueByCategory<K extends string | number | symbol> = K extends
1719
1803
  ? ColorTokens
1720
1804
  : K extends 'zIndex'
1721
1805
  ? ZIndexTokens
1722
- : K extends 'lineHeight'
1723
- ? FontLineHeightTokens
1724
- : K extends 'fontWeight'
1725
- ? FontWeightTokens
1726
- : K extends 'letterSpacing'
1727
- ? FontLetterSpacingTokens
1728
- : K extends keyof Tokens
1729
- ? // fallback to user-defined tokens
1730
- GetTokenString<keyof Tokens[K]>
1731
- : never
1806
+ : K extends 'radius'
1807
+ ? RadiusTokens
1808
+ : K extends 'lineHeight'
1809
+ ? FontLineHeightTokens
1810
+ : K extends 'fontWeight'
1811
+ ? FontWeightTokens
1812
+ : K extends 'letterSpacing'
1813
+ ? FontLetterSpacingTokens
1814
+ : K extends keyof Tokens
1815
+ ? // fallback to user-defined tokens
1816
+ GetTokenString<keyof Tokens[K]>
1817
+ : never
1732
1818
 
1733
1819
  export type FontKeys = 'fontFamily'
1734
1820
  export type FontSizeKeys = 'fontSize'
@@ -1741,21 +1827,21 @@ export type OpacityKeys = 'opacity'
1741
1827
  export type ThemeValueGet<K extends string | number | symbol> = K extends 'theme'
1742
1828
  ? ThemeTokens
1743
1829
  : K extends SizeKeys
1744
- ? SizeTokens | ThemeValueFallbackSize
1830
+ ? SizeTokens
1745
1831
  : K extends FontKeys
1746
1832
  ? FontTokens
1747
1833
  : K extends FontSizeKeys
1748
1834
  ? FontSizeTokens
1749
1835
  : K extends `${`border${string | ''}Radius`}`
1750
- ? RadiusTokens | ThemeValueFallbackRadius
1836
+ ? RadiusTokens
1751
1837
  : K extends SpaceKeys
1752
1838
  ? K extends 'shadowOffset'
1753
1839
  ? { width: SpaceTokens; height: SpaceTokens }
1754
- : SpaceTokens | ThemeValueFallbackSpace
1840
+ : SpaceTokens
1755
1841
  : K extends ColorKeys
1756
1842
  ? ColorTokens | ThemeValueFallbackColor
1757
1843
  : K extends ZIndexKeys
1758
- ? ZIndexTokens | ThemeValueFallbackZIndex
1844
+ ? ZIndexTokens
1759
1845
  : K extends LineHeightKeys
1760
1846
  ? FontLineHeightTokens
1761
1847
  : K extends FontWeightKeys
@@ -1787,6 +1873,21 @@ export type NarrowShorthands = Narrow<Shorthands>
1787
1873
  export type Longhands = NarrowShorthands[keyof NarrowShorthands]
1788
1874
 
1789
1875
  type OnlyAllowShorthands = TamaguiConfig['settings']['onlyAllowShorthands']
1876
+ type OnlyShorthandStyleProps = TamaguiConfig['settings']['onlyShorthandStyleProps']
1877
+
1878
+ // longhand style props that overlap with border/outline/shadow shorthands
1879
+ type ShorthandLonghandProps =
1880
+ | 'borderWidth'
1881
+ | 'borderStyle'
1882
+ | 'borderColor'
1883
+ | 'outlineWidth'
1884
+ | 'outlineStyle'
1885
+ | 'outlineColor'
1886
+ | 'outlineOffset'
1887
+ | 'shadowColor'
1888
+ | 'shadowOffset'
1889
+ | 'shadowOpacity'
1890
+ | 'shadowRadius'
1790
1891
 
1791
1892
  // adds shorthand props
1792
1893
  export type WithShorthands<StyleProps> = {
@@ -1796,15 +1897,30 @@ export type WithShorthands<StyleProps> = {
1796
1897
  }
1797
1898
 
1798
1899
  // adds pseudo props
1900
+ // PseudoStyleWithTransition allows transition inside pseudo-style props for enter/exit timing
1901
+ export type PseudoStyleWithTransition<A> = A & { transition?: TransitionProp | null }
1902
+
1799
1903
  export type WithPseudoProps<A> = {
1800
- hoverStyle?: A | null
1801
- pressStyle?: A | null
1802
- focusStyle?: A | null
1803
- focusWithinStyle?: A | null
1804
- focusVisibleStyle?: A | null
1805
- disabledStyle?: A | null
1806
- exitStyle?: A | null
1807
- enterStyle?: A | null
1904
+ hoverStyle?: PseudoStyleWithTransition<A> | null
1905
+ pressStyle?: PseudoStyleWithTransition<A> | null
1906
+ focusStyle?: PseudoStyleWithTransition<A> | null
1907
+ focusWithinStyle?: PseudoStyleWithTransition<A> | null
1908
+ focusVisibleStyle?: PseudoStyleWithTransition<A> | null
1909
+ disabledStyle?: PseudoStyleWithTransition<A> | null
1910
+ exitStyle?: PseudoStyleWithTransition<A> | null
1911
+ enterStyle?: PseudoStyleWithTransition<A> | null
1912
+ }
1913
+
1914
+ // type for transitions extracted from pseudo-style props (e.g., hoverStyle.transition)
1915
+ // includes $group-*-hover, $group-*-press, $group-*-focus patterns
1916
+ export type PseudoTransitions = Partial<
1917
+ Record<keyof WithPseudoProps<any>, TransitionProp | null>
1918
+ > & {
1919
+ // allow $group-{name}-{pseudo} keys dynamically
1920
+ [key: `$group-${string}-${'hover' | 'press' | 'focus'}`]:
1921
+ | TransitionProp
1922
+ | null
1923
+ | undefined
1808
1924
  }
1809
1925
 
1810
1926
  export type PseudoPropKeys = keyof WithPseudoProps<any>
@@ -1827,12 +1943,18 @@ export type AllPlatforms = 'web' | 'native' | 'android' | 'ios'
1827
1943
  //
1828
1944
  // add both theme and shorthands
1829
1945
  //
1946
+ type MaybeOmitLonghands<A> = OnlyShorthandStyleProps extends true
1947
+ ? Omit<A, ShorthandLonghandProps>
1948
+ : A
1949
+
1830
1950
  export type WithThemeAndShorthands<
1831
1951
  A extends object,
1832
1952
  Variants = {},
1833
1953
  > = OnlyAllowShorthands extends true
1834
- ? WithThemeValues<Omit<A, Longhands>> & Variants & WithShorthands<WithThemeValues<A>>
1835
- : WithThemeValues<A> & Variants & WithShorthands<WithThemeValues<A>>
1954
+ ? WithThemeValues<MaybeOmitLonghands<Omit<A, Longhands>>> &
1955
+ Variants &
1956
+ WithShorthands<WithThemeValues<A>>
1957
+ : WithThemeValues<MaybeOmitLonghands<A>> & Variants & WithShorthands<WithThemeValues<A>>
1836
1958
 
1837
1959
  //
1838
1960
  // combines all of theme, shorthands, pseudos...
@@ -1932,6 +2054,18 @@ type BorderPreset =
1932
2054
  // Note: on native, only supports a single border (all sides)
1933
2055
  export type BorderValue = BorderPreset | (string & {})
1934
2056
 
2057
+ // outline shorthand presets - examples for autocomplete hints
2058
+ type OutlinePreset =
2059
+ | '1px solid' // width + style
2060
+ | '1px solid $outlineColor' // width + style + color token
2061
+ | '2px dashed $outlineColor' // width + style + color
2062
+ | '1px dotted red' // width + style + color
2063
+ | 'none'
2064
+
2065
+ // Outline - CSS shorthand string format (e.g. "2px solid $outlineColor")
2066
+ // Expands to outlineWidth, outlineStyle, outlineColor on native
2067
+ export type OutlineValue = OutlinePreset | (string & {})
2068
+
1935
2069
  interface ExtraStyleProps {
1936
2070
  /**
1937
2071
  * Controls the curve style of rounded corners.
@@ -1965,6 +2099,12 @@ interface ExtraStyleProps {
1965
2099
  * Outline width. Supported on web and native.
1966
2100
  */
1967
2101
  outlineWidth?: SpaceValue
2102
+ /**
2103
+ * CSS outline shorthand string. Supports tokens: "2px solid $outlineColor"
2104
+ * Expands to outlineWidth, outlineStyle, outlineColor on native.
2105
+ * Works on web and native.
2106
+ */
2107
+ outline?: OutlineValue
1968
2108
  /**
1969
2109
  * On native, maps to the `selectable` prop on Text (userSelect !== 'none')
1970
2110
  */
@@ -2613,6 +2753,10 @@ export type GetStyleState = {
2613
2753
  // Track original token values (like '$8') before they get resolved to CSS vars
2614
2754
  // This is used to preserve token strings in overriddenContextProps
2615
2755
  originalContextPropValues?: Record<string, any>
2756
+ // Transitions extracted from pseudo-style props (e.g., hoverStyle.transition)
2757
+ pseudoTransitions?: PseudoTransitions | null
2758
+ // Resolved animation driver (respects animatedBy prop)
2759
+ animationDriver?: AnimationDriver | null
2616
2760
  }
2617
2761
 
2618
2762
  export type StyleResolver<Response = PropMappedValue> = (
@@ -3051,18 +3195,15 @@ export type UseAnimatedNumber<
3051
3195
 
3052
3196
  export type AnimationDriver<A extends AnimationConfig = AnimationConfig> = {
3053
3197
  isReactNative?: boolean
3054
- supportsCSS?: boolean
3055
3198
  /** What style format the driver expects as input: 'css' (CSS variables) or 'value' (resolved values) */
3056
3199
  inputStyle?: 'css' | 'value'
3057
3200
  /** How the driver outputs styles: 'css' (className-based) or 'inline' (style object) */
3058
3201
  outputStyle?: 'css' | 'inline'
3059
- needsWebStyles?: boolean
3202
+ needsCustomComponent?: boolean
3060
3203
  avoidReRenders?: boolean
3061
3204
  onMount?: () => void
3062
3205
  /** When true, this is a stub driver with no real animation support */
3063
3206
  isStub?: boolean
3064
- /** When true, the driver uses CSS classes for animations (doesn't need inline styles) */
3065
- classNameAnimation?: boolean
3066
3207
  useAnimations: UseAnimationHook
3067
3208
  usePresence: () => UsePresenceResult
3068
3209
  ResetPresence: (props: {
@@ -3079,7 +3220,10 @@ export type AnimationDriver<A extends AnimationConfig = AnimationConfig> = {
3079
3220
 
3080
3221
  export type UseAnimationProps = TamaguiComponentPropsBase & Record<string, any>
3081
3222
 
3082
- type UseStyleListener = (nextStyle: Record<string, unknown>) => void
3223
+ type UseStyleListener = (
3224
+ nextStyle: Record<string, unknown>,
3225
+ effectiveTransition?: TransitionProp | null
3226
+ ) => void
3083
3227
  export type UseStyleEmitter = (cb: UseStyleListener) => void
3084
3228
 
3085
3229
  export type UseAnimationHook = (props: {
@@ -3123,6 +3267,10 @@ export type GetStyleResult = {
3123
3267
  mediaGroups?: Set<string>
3124
3268
  // Style values that override context props (for issues #3670, #3676)
3125
3269
  overriddenContextProps?: Record<string, any>
3270
+ // Transitions extracted from pseudo-style props (e.g., hoverStyle.transition)
3271
+ pseudoTransitions?: PseudoTransitions | null
3272
+ // Effective transition to use (accounts for entering pseudo states)
3273
+ effectiveTransition?: TransitionProp | null
3126
3274
  }
3127
3275
 
3128
3276
  export type ClassNamesObject = Record<string, string>
@@ -1,22 +1,39 @@
1
- import { isWeb, useIsomorphicLayoutEffect } from '@tamagui/constants'
1
+ import { useIsomorphicLayoutEffect } from '@tamagui/constants'
2
2
  import { ClientOnly } from '@tamagui/use-did-finish-ssr'
3
3
  import React, { useEffect } from 'react'
4
- import { getConfig, getSetting } from '../config'
4
+ import { getSetting } from '../config'
5
5
  import { ComponentContext } from '../contexts/ComponentContext'
6
6
  import { stopAccumulatingRules } from '../helpers/insertStyleRule'
7
7
  import { updateMediaListeners } from '../hooks/useMedia'
8
+ import { resolveAnimationDriver } from '../helpers/resolveAnimationDriver'
8
9
  import type { AnimationDriver, TamaguiProviderProps } from '../types'
10
+ import { TamaguiRoot } from './TamaguiRoot'
9
11
  import { ThemeProvider } from './ThemeProvider'
10
12
 
13
+ // cache first theme key per config to avoid Object.keys allocation on every render
14
+ let _cachedFirstKey: string | undefined
15
+ let _cachedConfig: any
16
+
17
+ function firstThemeKey(config: any): string | undefined {
18
+ if (config !== _cachedConfig) {
19
+ _cachedConfig = config
20
+ _cachedFirstKey = config?.themes ? Object.keys(config.themes)[0] : undefined
21
+ }
22
+ return _cachedFirstKey
23
+ }
24
+
11
25
  export function TamaguiProvider({
12
26
  children,
13
27
  disableInjectCSS,
14
28
  config,
15
29
  className,
16
- defaultTheme,
30
+ defaultTheme: defaultThemeProp,
17
31
  reset,
18
32
  insets,
19
33
  }: TamaguiProviderProps) {
34
+ // fall back to first theme when defaultTheme is null/undefined
35
+ // (e.g. useColorScheme() returns null on first render in RN 0.83+)
36
+ const defaultTheme = defaultThemeProp || firstThemeKey(config) || 'light'
20
37
  useIsomorphicLayoutEffect(() => {
21
38
  stopAccumulatingRules()
22
39
  updateMediaListeners()
@@ -28,31 +45,28 @@ export function TamaguiProvider({
28
45
  )
29
46
 
30
47
  // Get the default animation driver from config
31
- // animations can be a single driver or { default: driver, ...others }
32
- const defaultAnimationDriver: AnimationDriver = React.useMemo(() => {
33
- const animations = config?.animations
34
- if (!animations) return null
35
- if ('default' in animations) {
36
- return (animations as { default: any }).default
37
- }
38
- return animations
39
- }, [config?.animations])
48
+ // config.animations is already normalized to the default driver in createTamagui
49
+ // resolveAnimationDriver handles edge cases where raw multi-driver object leaks through
50
+ const defaultAnimationDriver: AnimationDriver | null = React.useMemo(
51
+ () => resolveAnimationDriver(config?.animations),
52
+ [config?.animations]
53
+ )
40
54
 
41
55
  useEffect(() => {
42
56
  defaultAnimationDriver?.onMount?.()
43
57
  }, [])
44
58
 
45
59
  let contents = (
46
- <UnmountedClassName>
47
- <ComponentContext.Provider
48
- animationDriver={defaultAnimationDriver}
49
- insets={memoizedInsets}
50
- >
51
- <ThemeProvider defaultTheme={defaultTheme} reset={reset} className={className}>
60
+ <ComponentContext.Provider
61
+ animationDriver={defaultAnimationDriver}
62
+ insets={memoizedInsets}
63
+ >
64
+ <ThemeProvider defaultTheme={defaultTheme} reset={reset} className={className}>
65
+ <TamaguiRoot theme={defaultTheme} isRootRoot>
52
66
  {children}
53
- </ThemeProvider>
54
- </ComponentContext.Provider>
55
- </UnmountedClassName>
67
+ </TamaguiRoot>
68
+ </ThemeProvider>
69
+ </ComponentContext.Provider>
56
70
  )
57
71
 
58
72
  if (getSetting('disableSSR')) {
@@ -79,36 +93,3 @@ export function TamaguiProvider({
79
93
  </>
80
94
  )
81
95
  }
82
-
83
- // for CSS animations and default font inheritance
84
- function UnmountedClassName(props: { children: React.ReactNode }) {
85
- const [mounted, setMounted] = React.useState(false)
86
-
87
- React.useEffect(() => {
88
- setMounted(true)
89
- }, [])
90
-
91
- if (!isWeb) {
92
- return props.children
93
- }
94
-
95
- const config = getConfig()
96
- const defaultFont = config.defaultFont
97
- const fontClass = defaultFont ? `font_${defaultFont}` : ''
98
- const className = [mounted ? '' : 't_unmounted', fontClass].filter(Boolean).join(' ')
99
-
100
- return (
101
- <span
102
- style={{
103
- display: 'contents',
104
- // set default font so nested text inherits
105
- fontFamily: defaultFont ? 'var(--f-family)' : undefined,
106
- }}
107
- className={className || undefined}
108
- >
109
- {props.children}
110
- </span>
111
- )
112
- }
113
-
114
- TamaguiProvider['displayName'] = 'TamaguiProvider'
@@ -0,0 +1,9 @@
1
+ import type React from 'react'
2
+
3
+ export function TamaguiRoot(props: {
4
+ children: React.ReactNode
5
+ trackMount?: boolean
6
+ style?: any
7
+ }) {
8
+ return props.children
9
+ }
@@ -0,0 +1,64 @@
1
+ import React from 'react'
2
+ import { getConfig } from '../config'
3
+ import { ThemeName } from '../types'
4
+ import { Theme } from './Theme'
5
+
6
+ let defaultFontClass = ''
7
+
8
+ /**
9
+ * Applies default font class and CSS variable inheritance via display:contents.
10
+ * Used by TamaguiProvider at the root and by portals to re-establish font scope.
11
+ * Pass trackMount to also handle the t_unmounted class for CSS animation gating.
12
+ */
13
+ export function TamaguiRoot({
14
+ children,
15
+ theme,
16
+ isRootRoot,
17
+ passThrough,
18
+ style,
19
+ }: {
20
+ children: React.ReactNode
21
+ theme: ThemeName
22
+ isRootRoot?: boolean
23
+ passThrough?: boolean
24
+ style?: React.CSSProperties
25
+ }) {
26
+ const [mounted, setMounted] = React.useState(!isRootRoot)
27
+
28
+ React.useEffect(() => {
29
+ if (!mounted) {
30
+ setMounted(true)
31
+ }
32
+ }, [])
33
+
34
+ // cache the font class name
35
+ if (!defaultFontClass) {
36
+ const config = getConfig()
37
+ const defaultFont = config.defaultFont
38
+ if (defaultFont) {
39
+ defaultFontClass = `font_${defaultFont}`
40
+ }
41
+ }
42
+
43
+ const contents = (
44
+ <span
45
+ style={style}
46
+ // font_body (or default font) sets all font properties via shared CSS rule
47
+ className={`_dsp_contents ${mounted ? '' : 't_unmounted'} ${defaultFontClass}`}
48
+ >
49
+ {children}
50
+ </span>
51
+ )
52
+
53
+ // at root, ThemeProvider already applied theme - skip re-wrapping
54
+ // for portals/modals, we re-thread the theme so each root gets the right className setup
55
+ if (isRootRoot) {
56
+ return contents
57
+ }
58
+
59
+ return (
60
+ <Theme passThrough={passThrough} contain forceClassName name={theme}>
61
+ {contents}
62
+ </Theme>
63
+ )
64
+ }