@tamagui/core 1.2.4 → 1.2.6

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 (606) hide show
  1. package/README.md +4 -0
  2. package/dist/cjs/hooks/usePlatformMethods.js +48 -0
  3. package/dist/cjs/hooks/usePlatformMethods.js.map +7 -0
  4. package/dist/cjs/index.js +151 -75
  5. package/dist/cjs/index.js.map +3 -3
  6. package/dist/cjs/{types.js → reactNativeTypes.js} +3 -3
  7. package/dist/cjs/reactNativeTypes.js.map +7 -0
  8. package/dist/esm/hooks/usePlatformMethods.js +24 -0
  9. package/dist/esm/hooks/usePlatformMethods.js.map +7 -0
  10. package/dist/esm/index.js +156 -71
  11. package/dist/esm/index.js.map +2 -2
  12. package/dist/esm/reactNativeTypes.js +1 -0
  13. package/dist/esm/{types-rnw.js.map → reactNativeTypes.js.map} +0 -0
  14. package/package.json +5 -11
  15. package/src/hooks/usePlatformMethods.ts +26 -0
  16. package/src/index.ts +214 -71
  17. package/src/reactNativeTypes.ts +104 -0
  18. package/types/hooks/usePlatformMethods.d.ts +3 -0
  19. package/types/hooks/usePlatformMethods.d.ts.map +1 -0
  20. package/types/index.d.ts +6 -54
  21. package/types/index.d.ts.map +1 -1
  22. package/types/reactNativeTypes.d.ts +26 -0
  23. package/types/reactNativeTypes.d.ts.map +1 -0
  24. package/dist/cjs/Tamagui.js +0 -77
  25. package/dist/cjs/Tamagui.js.map +0 -7
  26. package/dist/cjs/addTheme.js +0 -78
  27. package/dist/cjs/addTheme.js.map +0 -7
  28. package/dist/cjs/config.js +0 -91
  29. package/dist/cjs/config.js.map +0 -7
  30. package/dist/cjs/constants/constants.js +0 -49
  31. package/dist/cjs/constants/constants.js.map +0 -7
  32. package/dist/cjs/constants/isDevTools.js +0 -37
  33. package/dist/cjs/constants/isDevTools.js.map +0 -7
  34. package/dist/cjs/contexts/ButtonNestingContext.js +0 -30
  35. package/dist/cjs/contexts/ButtonNestingContext.js.map +0 -7
  36. package/dist/cjs/contexts/FontLanguageContext.js +0 -30
  37. package/dist/cjs/contexts/FontLanguageContext.js.map +0 -7
  38. package/dist/cjs/contexts/TextAncestorContext.js +0 -30
  39. package/dist/cjs/contexts/TextAncestorContext.js.map +0 -7
  40. package/dist/cjs/createComponent.js +0 -993
  41. package/dist/cjs/createComponent.js.map +0 -7
  42. package/dist/cjs/createFont.js +0 -69
  43. package/dist/cjs/createFont.js.map +0 -7
  44. package/dist/cjs/createFont.web.test.js +0 -125
  45. package/dist/cjs/createFont.web.test.js.map +0 -7
  46. package/dist/cjs/createShorthands.js +0 -31
  47. package/dist/cjs/createShorthands.js.map +0 -7
  48. package/dist/cjs/createTamagui.js +0 -206
  49. package/dist/cjs/createTamagui.js.map +0 -7
  50. package/dist/cjs/createTheme.js +0 -31
  51. package/dist/cjs/createTheme.js.map +0 -7
  52. package/dist/cjs/createTokens.js +0 -39
  53. package/dist/cjs/createTokens.js.map +0 -7
  54. package/dist/cjs/createTokens.web.test.js +0 -28
  55. package/dist/cjs/createTokens.web.test.js.map +0 -7
  56. package/dist/cjs/createVariable.js +0 -111
  57. package/dist/cjs/createVariable.js.map +0 -7
  58. package/dist/cjs/createVariable.web.test.js +0 -7
  59. package/dist/cjs/createVariable.web.test.js.map +0 -7
  60. package/dist/cjs/createVariables.js +0 -60
  61. package/dist/cjs/createVariables.js.map +0 -7
  62. package/dist/cjs/helpers/RNComponents.js +0 -40
  63. package/dist/cjs/helpers/RNComponents.js.map +0 -7
  64. package/dist/cjs/helpers/ThemeManager.js +0 -234
  65. package/dist/cjs/helpers/ThemeManager.js.map +0 -7
  66. package/dist/cjs/helpers/ThemeManager.test.js +0 -465
  67. package/dist/cjs/helpers/ThemeManager.test.js.map +0 -7
  68. package/dist/cjs/helpers/ThemeManagerContext.js +0 -30
  69. package/dist/cjs/helpers/ThemeManagerContext.js.map +0 -7
  70. package/dist/cjs/helpers/createMediaStyle.js +0 -67
  71. package/dist/cjs/helpers/createMediaStyle.js.map +0 -7
  72. package/dist/cjs/helpers/createPropMapper.js +0 -423
  73. package/dist/cjs/helpers/createPropMapper.js.map +0 -7
  74. package/dist/cjs/helpers/createProxy.js +0 -43
  75. package/dist/cjs/helpers/createProxy.js.map +0 -7
  76. package/dist/cjs/helpers/expandStyle.js +0 -95
  77. package/dist/cjs/helpers/expandStyle.js.map +0 -7
  78. package/dist/cjs/helpers/expandStyles.js +0 -116
  79. package/dist/cjs/helpers/expandStyles.js.map +0 -7
  80. package/dist/cjs/helpers/extendStaticConfig.js +0 -91
  81. package/dist/cjs/helpers/extendStaticConfig.js.map +0 -7
  82. package/dist/cjs/helpers/fixNativeShadow.js +0 -30
  83. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -7
  84. package/dist/cjs/helpers/getAnimationDriver.js +0 -32
  85. package/dist/cjs/helpers/getAnimationDriver.js.map +0 -7
  86. package/dist/cjs/helpers/getExpandedShorthands.js +0 -40
  87. package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -7
  88. package/dist/cjs/helpers/getFontLanguage.js +0 -29
  89. package/dist/cjs/helpers/getFontLanguage.js.map +0 -7
  90. package/dist/cjs/helpers/getSplitStyles.js +0 -848
  91. package/dist/cjs/helpers/getSplitStyles.js.map +0 -7
  92. package/dist/cjs/helpers/getStylesAtomic.js +0 -226
  93. package/dist/cjs/helpers/getStylesAtomic.js.map +0 -7
  94. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -38
  95. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -7
  96. package/dist/cjs/helpers/getThemeCSSRules.js +0 -110
  97. package/dist/cjs/helpers/getThemeCSSRules.js.map +0 -7
  98. package/dist/cjs/helpers/getThemeCSSRules.native.js +0 -31
  99. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +0 -7
  100. package/dist/cjs/helpers/getVariantExtras.js +0 -92
  101. package/dist/cjs/helpers/getVariantExtras.js.map +0 -7
  102. package/dist/cjs/helpers/insertStyleRule.js +0 -218
  103. package/dist/cjs/helpers/insertStyleRule.js.map +0 -7
  104. package/dist/cjs/helpers/isObj.js +0 -29
  105. package/dist/cjs/helpers/isObj.js.map +0 -7
  106. package/dist/cjs/helpers/isTamaguiComponent.js +0 -32
  107. package/dist/cjs/helpers/isTamaguiComponent.js.map +0 -7
  108. package/dist/cjs/helpers/isTamaguiElement.js +0 -33
  109. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -7
  110. package/dist/cjs/helpers/matchMedia.js +0 -42
  111. package/dist/cjs/helpers/matchMedia.js.map +0 -7
  112. package/dist/cjs/helpers/matchMedia.native.js +0 -48
  113. package/dist/cjs/helpers/matchMedia.native.js.map +0 -7
  114. package/dist/cjs/helpers/mergeProps.js +0 -54
  115. package/dist/cjs/helpers/mergeProps.js.map +0 -7
  116. package/dist/cjs/helpers/mergeTransform.js +0 -47
  117. package/dist/cjs/helpers/mergeTransform.js.map +0 -7
  118. package/dist/cjs/helpers/normalizeColor.js +0 -71
  119. package/dist/cjs/helpers/normalizeColor.js.map +0 -7
  120. package/dist/cjs/helpers/normalizeValueWithProperty.js +0 -138
  121. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +0 -7
  122. package/dist/cjs/helpers/proxyThemeVariables.js +0 -40
  123. package/dist/cjs/helpers/proxyThemeVariables.js.map +0 -7
  124. package/dist/cjs/helpers/pseudoDescriptors.js +0 -53
  125. package/dist/cjs/helpers/pseudoDescriptors.js.map +0 -7
  126. package/dist/cjs/helpers/registerCSSVariable.js +0 -40
  127. package/dist/cjs/helpers/registerCSSVariable.js.map +0 -7
  128. package/dist/cjs/helpers/themeable.js +0 -62
  129. package/dist/cjs/helpers/themeable.js.map +0 -7
  130. package/dist/cjs/helpers/themes.js +0 -78
  131. package/dist/cjs/helpers/themes.js.map +0 -7
  132. package/dist/cjs/helpers/timer.js +0 -35
  133. package/dist/cjs/helpers/timer.js.map +0 -7
  134. package/dist/cjs/helpers/useShallowSetState.js +0 -59
  135. package/dist/cjs/helpers/useShallowSetState.js.map +0 -7
  136. package/dist/cjs/helpers/warnOnce.js +0 -38
  137. package/dist/cjs/helpers/warnOnce.js.map +0 -7
  138. package/dist/cjs/helpers/withStaticProperties.js +0 -32
  139. package/dist/cjs/helpers/withStaticProperties.js.map +0 -7
  140. package/dist/cjs/hooks/getThemeUnwrapped.js +0 -34
  141. package/dist/cjs/hooks/getThemeUnwrapped.js.map +0 -7
  142. package/dist/cjs/hooks/useId.js +0 -29
  143. package/dist/cjs/hooks/useId.js.map +0 -7
  144. package/dist/cjs/hooks/useIsTouchDevice.js +0 -33
  145. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -7
  146. package/dist/cjs/hooks/useMedia.js +0 -263
  147. package/dist/cjs/hooks/useMedia.js.map +0 -7
  148. package/dist/cjs/hooks/useSafeRef.js +0 -59
  149. package/dist/cjs/hooks/useSafeRef.js.map +0 -7
  150. package/dist/cjs/hooks/useServerHooks.js +0 -36
  151. package/dist/cjs/hooks/useServerHooks.js.map +0 -7
  152. package/dist/cjs/hooks/useStyle.js +0 -61
  153. package/dist/cjs/hooks/useStyle.js.map +0 -7
  154. package/dist/cjs/hooks/useTheme.js +0 -230
  155. package/dist/cjs/hooks/useTheme.js.map +0 -7
  156. package/dist/cjs/hooks/useThemeName.js +0 -52
  157. package/dist/cjs/hooks/useThemeName.js.map +0 -7
  158. package/dist/cjs/insertFont.js +0 -93
  159. package/dist/cjs/insertFont.js.map +0 -7
  160. package/dist/cjs/setupReactNative.js +0 -51
  161. package/dist/cjs/setupReactNative.js.map +0 -7
  162. package/dist/cjs/static.js +0 -20
  163. package/dist/cjs/static.js.map +0 -7
  164. package/dist/cjs/styled.js +0 -95
  165. package/dist/cjs/styled.js.map +0 -7
  166. package/dist/cjs/types-rnw.js +0 -17
  167. package/dist/cjs/types-rnw.js.map +0 -7
  168. package/dist/cjs/types.js.map +0 -7
  169. package/dist/cjs/updateTheme.js +0 -47
  170. package/dist/cjs/updateTheme.js.map +0 -7
  171. package/dist/cjs/views/FontLanguage.js +0 -41
  172. package/dist/cjs/views/FontLanguage.js.map +0 -7
  173. package/dist/cjs/views/FontLanguage.native.js +0 -35
  174. package/dist/cjs/views/FontLanguage.native.js.map +0 -7
  175. package/dist/cjs/views/FontLanguage.types.js +0 -17
  176. package/dist/cjs/views/FontLanguage.types.js.map +0 -7
  177. package/dist/cjs/views/Slot.js +0 -92
  178. package/dist/cjs/views/Slot.js.map +0 -7
  179. package/dist/cjs/views/Stack.js +0 -38
  180. package/dist/cjs/views/Stack.js.map +0 -7
  181. package/dist/cjs/views/Stack.web.test.js +0 -22
  182. package/dist/cjs/views/Stack.web.test.js.map +0 -7
  183. package/dist/cjs/views/TamaguiProvider.js +0 -90
  184. package/dist/cjs/views/TamaguiProvider.js.map +0 -7
  185. package/dist/cjs/views/Text.js +0 -94
  186. package/dist/cjs/views/Text.js.map +0 -7
  187. package/dist/cjs/views/Theme.js +0 -88
  188. package/dist/cjs/views/Theme.js.map +0 -7
  189. package/dist/cjs/views/ThemeProvider.js +0 -70
  190. package/dist/cjs/views/ThemeProvider.js.map +0 -7
  191. package/dist/esm/Tamagui.js +0 -41
  192. package/dist/esm/Tamagui.js.map +0 -7
  193. package/dist/esm/addTheme.js +0 -54
  194. package/dist/esm/addTheme.js.map +0 -7
  195. package/dist/esm/config.js +0 -58
  196. package/dist/esm/config.js.map +0 -7
  197. package/dist/esm/constants/constants.js +0 -22
  198. package/dist/esm/constants/constants.js.map +0 -7
  199. package/dist/esm/constants/isDevTools.js +0 -13
  200. package/dist/esm/constants/isDevTools.js.map +0 -7
  201. package/dist/esm/contexts/ButtonNestingContext.js +0 -6
  202. package/dist/esm/contexts/ButtonNestingContext.js.map +0 -7
  203. package/dist/esm/contexts/FontLanguageContext.js +0 -6
  204. package/dist/esm/contexts/FontLanguageContext.js.map +0 -7
  205. package/dist/esm/contexts/TextAncestorContext.js +0 -6
  206. package/dist/esm/contexts/TextAncestorContext.js.map +0 -7
  207. package/dist/esm/createComponent.js +0 -975
  208. package/dist/esm/createComponent.js.map +0 -7
  209. package/dist/esm/createFont.js +0 -45
  210. package/dist/esm/createFont.js.map +0 -7
  211. package/dist/esm/createFont.web.test.js +0 -124
  212. package/dist/esm/createFont.web.test.js.map +0 -7
  213. package/dist/esm/createShorthands.js +0 -7
  214. package/dist/esm/createShorthands.js.map +0 -7
  215. package/dist/esm/createTamagui.js +0 -190
  216. package/dist/esm/createTamagui.js.map +0 -7
  217. package/dist/esm/createTheme.js +0 -7
  218. package/dist/esm/createTheme.js.map +0 -7
  219. package/dist/esm/createTokens.js +0 -15
  220. package/dist/esm/createTokens.js.map +0 -7
  221. package/dist/esm/createTokens.web.test.js +0 -27
  222. package/dist/esm/createTokens.web.test.js.map +0 -7
  223. package/dist/esm/createVariable.js +0 -78
  224. package/dist/esm/createVariable.js.map +0 -7
  225. package/dist/esm/createVariable.web.test.js +0 -6
  226. package/dist/esm/createVariable.web.test.js.map +0 -7
  227. package/dist/esm/createVariables.js +0 -35
  228. package/dist/esm/createVariables.js.map +0 -7
  229. package/dist/esm/helpers/RNComponents.js +0 -16
  230. package/dist/esm/helpers/RNComponents.js.map +0 -7
  231. package/dist/esm/helpers/ThemeManager.js +0 -209
  232. package/dist/esm/helpers/ThemeManager.js.map +0 -7
  233. package/dist/esm/helpers/ThemeManager.test.js +0 -464
  234. package/dist/esm/helpers/ThemeManager.test.js.map +0 -7
  235. package/dist/esm/helpers/ThemeManagerContext.js +0 -6
  236. package/dist/esm/helpers/ThemeManagerContext.js.map +0 -7
  237. package/dist/esm/helpers/createMediaStyle.js +0 -42
  238. package/dist/esm/helpers/createMediaStyle.js.map +0 -7
  239. package/dist/esm/helpers/createPropMapper.js +0 -396
  240. package/dist/esm/helpers/createPropMapper.js.map +0 -7
  241. package/dist/esm/helpers/createProxy.js +0 -19
  242. package/dist/esm/helpers/createProxy.js.map +0 -7
  243. package/dist/esm/helpers/expandStyle.js +0 -71
  244. package/dist/esm/helpers/expandStyle.js.map +0 -7
  245. package/dist/esm/helpers/expandStyles.js +0 -90
  246. package/dist/esm/helpers/expandStyles.js.map +0 -7
  247. package/dist/esm/helpers/extendStaticConfig.js +0 -66
  248. package/dist/esm/helpers/extendStaticConfig.js.map +0 -7
  249. package/dist/esm/helpers/fixNativeShadow.js +0 -6
  250. package/dist/esm/helpers/fixNativeShadow.js.map +0 -7
  251. package/dist/esm/helpers/getAnimationDriver.js +0 -8
  252. package/dist/esm/helpers/getAnimationDriver.js.map +0 -7
  253. package/dist/esm/helpers/getExpandedShorthands.js +0 -16
  254. package/dist/esm/helpers/getExpandedShorthands.js.map +0 -7
  255. package/dist/esm/helpers/getFontLanguage.js +0 -5
  256. package/dist/esm/helpers/getFontLanguage.js.map +0 -7
  257. package/dist/esm/helpers/getSplitStyles.js +0 -847
  258. package/dist/esm/helpers/getSplitStyles.js.map +0 -7
  259. package/dist/esm/helpers/getStylesAtomic.js +0 -200
  260. package/dist/esm/helpers/getStylesAtomic.js.map +0 -7
  261. package/dist/esm/helpers/getStylesAtomic.native.js +0 -12
  262. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -7
  263. package/dist/esm/helpers/getThemeCSSRules.js +0 -86
  264. package/dist/esm/helpers/getThemeCSSRules.js.map +0 -7
  265. package/dist/esm/helpers/getThemeCSSRules.native.js +0 -7
  266. package/dist/esm/helpers/getThemeCSSRules.native.js.map +0 -7
  267. package/dist/esm/helpers/getVariantExtras.js +0 -67
  268. package/dist/esm/helpers/getVariantExtras.js.map +0 -7
  269. package/dist/esm/helpers/insertStyleRule.js +0 -186
  270. package/dist/esm/helpers/insertStyleRule.js.map +0 -7
  271. package/dist/esm/helpers/isObj.js +0 -5
  272. package/dist/esm/helpers/isObj.js.map +0 -7
  273. package/dist/esm/helpers/isTamaguiComponent.js +0 -8
  274. package/dist/esm/helpers/isTamaguiComponent.js.map +0 -7
  275. package/dist/esm/helpers/isTamaguiElement.js +0 -9
  276. package/dist/esm/helpers/isTamaguiElement.js.map +0 -7
  277. package/dist/esm/helpers/matchMedia.js +0 -17
  278. package/dist/esm/helpers/matchMedia.js.map +0 -7
  279. package/dist/esm/helpers/matchMedia.native.js +0 -23
  280. package/dist/esm/helpers/matchMedia.native.js.map +0 -7
  281. package/dist/esm/helpers/mergeProps.js +0 -30
  282. package/dist/esm/helpers/mergeProps.js.map +0 -7
  283. package/dist/esm/helpers/mergeTransform.js +0 -21
  284. package/dist/esm/helpers/mergeTransform.js.map +0 -7
  285. package/dist/esm/helpers/normalizeColor.js +0 -36
  286. package/dist/esm/helpers/normalizeColor.js.map +0 -7
  287. package/dist/esm/helpers/normalizeValueWithProperty.js +0 -113
  288. package/dist/esm/helpers/normalizeValueWithProperty.js.map +0 -7
  289. package/dist/esm/helpers/proxyThemeVariables.js +0 -16
  290. package/dist/esm/helpers/proxyThemeVariables.js.map +0 -7
  291. package/dist/esm/helpers/pseudoDescriptors.js +0 -29
  292. package/dist/esm/helpers/pseudoDescriptors.js.map +0 -7
  293. package/dist/esm/helpers/registerCSSVariable.js +0 -14
  294. package/dist/esm/helpers/registerCSSVariable.js.map +0 -7
  295. package/dist/esm/helpers/themeable.js +0 -28
  296. package/dist/esm/helpers/themeable.js.map +0 -7
  297. package/dist/esm/helpers/themes.js +0 -53
  298. package/dist/esm/helpers/themes.js.map +0 -7
  299. package/dist/esm/helpers/timer.js +0 -11
  300. package/dist/esm/helpers/timer.js.map +0 -7
  301. package/dist/esm/helpers/useShallowSetState.js +0 -35
  302. package/dist/esm/helpers/useShallowSetState.js.map +0 -7
  303. package/dist/esm/helpers/warnOnce.js +0 -14
  304. package/dist/esm/helpers/warnOnce.js.map +0 -7
  305. package/dist/esm/helpers/withStaticProperties.js +0 -8
  306. package/dist/esm/helpers/withStaticProperties.js.map +0 -7
  307. package/dist/esm/hooks/getThemeUnwrapped.js +0 -9
  308. package/dist/esm/hooks/getThemeUnwrapped.js.map +0 -7
  309. package/dist/esm/hooks/useId.js +0 -5
  310. package/dist/esm/hooks/useId.js.map +0 -7
  311. package/dist/esm/hooks/useIsTouchDevice.js +0 -9
  312. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -7
  313. package/dist/esm/hooks/useMedia.js +0 -225
  314. package/dist/esm/hooks/useMedia.js.map +0 -7
  315. package/dist/esm/hooks/useSafeRef.js +0 -35
  316. package/dist/esm/hooks/useSafeRef.js.map +0 -7
  317. package/dist/esm/hooks/useServerHooks.js +0 -11
  318. package/dist/esm/hooks/useServerHooks.js.map +0 -7
  319. package/dist/esm/hooks/useStyle.js +0 -37
  320. package/dist/esm/hooks/useStyle.js.map +0 -7
  321. package/dist/esm/hooks/useTheme.js +0 -205
  322. package/dist/esm/hooks/useTheme.js.map +0 -7
  323. package/dist/esm/hooks/useThemeName.js +0 -28
  324. package/dist/esm/hooks/useThemeName.js.map +0 -7
  325. package/dist/esm/insertFont.js +0 -67
  326. package/dist/esm/insertFont.js.map +0 -7
  327. package/dist/esm/setupReactNative.js +0 -25
  328. package/dist/esm/setupReactNative.js.map +0 -7
  329. package/dist/esm/static.js +0 -3
  330. package/dist/esm/static.js.map +0 -7
  331. package/dist/esm/styled.js +0 -71
  332. package/dist/esm/styled.js.map +0 -7
  333. package/dist/esm/types-rnw.js +0 -1
  334. package/dist/esm/types.js +0 -1
  335. package/dist/esm/types.js.map +0 -7
  336. package/dist/esm/updateTheme.js +0 -23
  337. package/dist/esm/updateTheme.js.map +0 -7
  338. package/dist/esm/views/FontLanguage.js +0 -17
  339. package/dist/esm/views/FontLanguage.js.map +0 -7
  340. package/dist/esm/views/FontLanguage.native.js +0 -11
  341. package/dist/esm/views/FontLanguage.native.js.map +0 -7
  342. package/dist/esm/views/FontLanguage.types.js +0 -1
  343. package/dist/esm/views/FontLanguage.types.js.map +0 -7
  344. package/dist/esm/views/Slot.js +0 -71
  345. package/dist/esm/views/Slot.js.map +0 -7
  346. package/dist/esm/views/Stack.js +0 -14
  347. package/dist/esm/views/Stack.js.map +0 -7
  348. package/dist/esm/views/Stack.web.test.js +0 -21
  349. package/dist/esm/views/Stack.web.test.js.map +0 -7
  350. package/dist/esm/views/TamaguiProvider.js +0 -56
  351. package/dist/esm/views/TamaguiProvider.js.map +0 -7
  352. package/dist/esm/views/Text.js +0 -70
  353. package/dist/esm/views/Text.js.map +0 -7
  354. package/dist/esm/views/Theme.js +0 -63
  355. package/dist/esm/views/Theme.js.map +0 -7
  356. package/dist/esm/views/ThemeProvider.js +0 -45
  357. package/dist/esm/views/ThemeProvider.js.map +0 -7
  358. package/src/Tamagui.ts +0 -48
  359. package/src/__snapshots__/createTokens.test.ts.snap +0 -772
  360. package/src/__snapshots__/createTokens.web.test.tsx.snap +0 -772
  361. package/src/addTheme.ts +0 -65
  362. package/src/config.ts +0 -62
  363. package/src/constants/constants.ts +0 -17
  364. package/src/constants/isDevTools.ts +0 -12
  365. package/src/contexts/ButtonNestingContext.tsx +0 -3
  366. package/src/contexts/FontLanguageContext.tsx +0 -5
  367. package/src/contexts/TextAncestorContext.tsx +0 -3
  368. package/src/createComponent.tsx +0 -1293
  369. package/src/createFont.ts +0 -50
  370. package/src/createShorthands.ts +0 -7
  371. package/src/createTamagui.ts +0 -253
  372. package/src/createTheme.ts +0 -13
  373. package/src/createTokens.ts +0 -46
  374. package/src/createVariable.ts +0 -93
  375. package/src/createVariables.ts +0 -55
  376. package/src/helpers/RNComponents.tsx +0 -14
  377. package/src/helpers/ThemeManager.tsx +0 -285
  378. package/src/helpers/ThemeManagerContext.tsx +0 -5
  379. package/src/helpers/createMediaStyle.ts +0 -56
  380. package/src/helpers/createPropMapper.ts +0 -562
  381. package/src/helpers/createProxy.ts +0 -16
  382. package/src/helpers/expandStyle.ts +0 -82
  383. package/src/helpers/expandStyles.ts +0 -107
  384. package/src/helpers/extendStaticConfig.ts +0 -78
  385. package/src/helpers/fixNativeShadow.tsx +0 -2
  386. package/src/helpers/getAnimationDriver.tsx +0 -5
  387. package/src/helpers/getExpandedShorthands.ts +0 -17
  388. package/src/helpers/getFontLanguage.ts +0 -2
  389. package/src/helpers/getSplitStyles.tsx +0 -1137
  390. package/src/helpers/getStylesAtomic.native.ts +0 -8
  391. package/src/helpers/getStylesAtomic.ts +0 -274
  392. package/src/helpers/getThemeCSSRules.native.ts +0 -3
  393. package/src/helpers/getThemeCSSRules.ts +0 -120
  394. package/src/helpers/getVariantExtras.tsx +0 -85
  395. package/src/helpers/insertStyleRule.tsx +0 -220
  396. package/src/helpers/isObj.ts +0 -1
  397. package/src/helpers/isTamaguiComponent.tsx +0 -11
  398. package/src/helpers/isTamaguiElement.tsx +0 -15
  399. package/src/helpers/matchMedia.native.ts +0 -23
  400. package/src/helpers/matchMedia.ts +0 -16
  401. package/src/helpers/mergeProps.ts +0 -56
  402. package/src/helpers/mergeTransform.ts +0 -30
  403. package/src/helpers/normalizeColor.ts +0 -38
  404. package/src/helpers/normalizeValueWithProperty.ts +0 -129
  405. package/src/helpers/proxyThemeVariables.tsx +0 -15
  406. package/src/helpers/pseudoDescriptors.ts +0 -40
  407. package/src/helpers/registerCSSVariable.ts +0 -13
  408. package/src/helpers/themeable.tsx +0 -44
  409. package/src/helpers/themes.ts +0 -67
  410. package/src/helpers/timer.ts +0 -9
  411. package/src/helpers/useShallowSetState.tsx +0 -41
  412. package/src/helpers/warnOnce.tsx +0 -11
  413. package/src/helpers/withStaticProperties.tsx +0 -7
  414. package/src/hooks/getThemeUnwrapped.tsx +0 -5
  415. package/src/hooks/useId.tsx +0 -1
  416. package/src/hooks/useIsTouchDevice.tsx +0 -6
  417. package/src/hooks/useMedia.tsx +0 -298
  418. package/src/hooks/useSafeRef.ts +0 -45
  419. package/src/hooks/useServerHooks.tsx +0 -12
  420. package/src/hooks/useStyle.tsx +0 -49
  421. package/src/hooks/useTheme.tsx +0 -274
  422. package/src/hooks/useThemeName.tsx +0 -27
  423. package/src/insertFont.ts +0 -73
  424. package/src/setupReactNative.ts +0 -22
  425. package/src/static.ts +0 -5
  426. package/src/styled.tsx +0 -195
  427. package/src/types-rnw.tsx +0 -162
  428. package/src/types.tsx +0 -1405
  429. package/src/updateTheme.ts +0 -26
  430. package/src/views/FontLanguage.native.tsx +0 -12
  431. package/src/views/FontLanguage.tsx +0 -16
  432. package/src/views/FontLanguage.types.ts +0 -13
  433. package/src/views/Slot.tsx +0 -102
  434. package/src/views/Stack.tsx +0 -25
  435. package/src/views/TamaguiProvider.tsx +0 -65
  436. package/src/views/Text.tsx +0 -88
  437. package/src/views/Theme.tsx +0 -83
  438. package/src/views/ThemeProvider.tsx +0 -55
  439. package/types/Tamagui.d.ts +0 -30
  440. package/types/Tamagui.d.ts.map +0 -1
  441. package/types/addTheme.d.ts +0 -32
  442. package/types/addTheme.d.ts.map +0 -1
  443. package/types/config.d.ts +0 -49
  444. package/types/config.d.ts.map +0 -1
  445. package/types/constants/constants.d.ts +0 -21
  446. package/types/constants/constants.d.ts.map +0 -1
  447. package/types/constants/isDevTools.d.ts +0 -2
  448. package/types/constants/isDevTools.d.ts.map +0 -1
  449. package/types/contexts/ButtonNestingContext.d.ts +0 -3
  450. package/types/contexts/ButtonNestingContext.d.ts.map +0 -1
  451. package/types/contexts/FontLanguageContext.d.ts +0 -5
  452. package/types/contexts/FontLanguageContext.d.ts.map +0 -1
  453. package/types/contexts/TextAncestorContext.d.ts +0 -3
  454. package/types/contexts/TextAncestorContext.d.ts.map +0 -1
  455. package/types/createComponent.d.ts +0 -23
  456. package/types/createComponent.d.ts.map +0 -1
  457. package/types/createFont.d.ts +0 -3
  458. package/types/createFont.d.ts.map +0 -1
  459. package/types/createFont.web.test.d.ts +0 -2
  460. package/types/createFont.web.test.d.ts.map +0 -1
  461. package/types/createShorthands.d.ts +0 -3
  462. package/types/createShorthands.d.ts.map +0 -1
  463. package/types/createTamagui.d.ts +0 -3
  464. package/types/createTamagui.d.ts.map +0 -1
  465. package/types/createTheme.d.ts +0 -7
  466. package/types/createTheme.d.ts.map +0 -1
  467. package/types/createTokens.d.ts +0 -28
  468. package/types/createTokens.d.ts.map +0 -1
  469. package/types/createTokens.web.test.d.ts +0 -2
  470. package/types/createTokens.web.test.d.ts.map +0 -1
  471. package/types/createVariable.d.ts +0 -26
  472. package/types/createVariable.d.ts.map +0 -1
  473. package/types/createVariable.web.test.d.ts +0 -2
  474. package/types/createVariable.web.test.d.ts.map +0 -1
  475. package/types/createVariables.d.ts +0 -11
  476. package/types/createVariables.d.ts.map +0 -1
  477. package/types/helpers/RNComponents.d.ts +0 -2
  478. package/types/helpers/RNComponents.d.ts.map +0 -1
  479. package/types/helpers/ThemeManager.d.ts +0 -36
  480. package/types/helpers/ThemeManager.d.ts.map +0 -1
  481. package/types/helpers/ThemeManager.test.d.ts +0 -2
  482. package/types/helpers/ThemeManager.test.d.ts.map +0 -1
  483. package/types/helpers/ThemeManagerContext.d.ts +0 -4
  484. package/types/helpers/ThemeManagerContext.d.ts.map +0 -1
  485. package/types/helpers/createMediaStyle.d.ts +0 -6
  486. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  487. package/types/helpers/createPropMapper.d.ts +0 -7
  488. package/types/helpers/createPropMapper.d.ts.map +0 -1
  489. package/types/helpers/createProxy.d.ts +0 -2
  490. package/types/helpers/createProxy.d.ts.map +0 -1
  491. package/types/helpers/expandStyle.d.ts +0 -6
  492. package/types/helpers/expandStyle.d.ts.map +0 -1
  493. package/types/helpers/expandStyles.d.ts +0 -26
  494. package/types/helpers/expandStyles.d.ts.map +0 -1
  495. package/types/helpers/extendStaticConfig.d.ts +0 -4
  496. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  497. package/types/helpers/fixNativeShadow.d.ts +0 -2
  498. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  499. package/types/helpers/getAnimationDriver.d.ts +0 -6
  500. package/types/helpers/getAnimationDriver.d.ts.map +0 -1
  501. package/types/helpers/getExpandedShorthands.d.ts +0 -3
  502. package/types/helpers/getExpandedShorthands.d.ts.map +0 -1
  503. package/types/helpers/getFontLanguage.d.ts +0 -2
  504. package/types/helpers/getFontLanguage.d.ts.map +0 -1
  505. package/types/helpers/getSplitStyles.d.ts +0 -43
  506. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  507. package/types/helpers/getStylesAtomic.d.ts +0 -18
  508. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  509. package/types/helpers/getStylesAtomic.native.d.ts +0 -4
  510. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  511. package/types/helpers/getThemeCSSRules.d.ts +0 -8
  512. package/types/helpers/getThemeCSSRules.d.ts.map +0 -1
  513. package/types/helpers/getThemeCSSRules.native.d.ts +0 -2
  514. package/types/helpers/getThemeCSSRules.native.d.ts.map +0 -1
  515. package/types/helpers/getVariantExtras.d.ts +0 -5
  516. package/types/helpers/getVariantExtras.d.ts.map +0 -1
  517. package/types/helpers/insertStyleRule.d.ts +0 -13
  518. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  519. package/types/helpers/isObj.d.ts +0 -2
  520. package/types/helpers/isObj.d.ts.map +0 -1
  521. package/types/helpers/isTamaguiComponent.d.ts +0 -5
  522. package/types/helpers/isTamaguiComponent.d.ts.map +0 -1
  523. package/types/helpers/isTamaguiElement.d.ts +0 -7
  524. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  525. package/types/helpers/matchMedia.d.ts +0 -6
  526. package/types/helpers/matchMedia.d.ts.map +0 -1
  527. package/types/helpers/matchMedia.native.d.ts +0 -4
  528. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  529. package/types/helpers/mergeProps.d.ts +0 -17
  530. package/types/helpers/mergeProps.d.ts.map +0 -1
  531. package/types/helpers/mergeTransform.d.ts +0 -9
  532. package/types/helpers/mergeTransform.d.ts.map +0 -1
  533. package/types/helpers/normalizeColor.d.ts +0 -4
  534. package/types/helpers/normalizeColor.d.ts.map +0 -1
  535. package/types/helpers/normalizeValueWithProperty.d.ts +0 -7
  536. package/types/helpers/normalizeValueWithProperty.d.ts.map +0 -1
  537. package/types/helpers/proxyThemeVariables.d.ts +0 -2
  538. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  539. package/types/helpers/pseudoDescriptors.d.ts +0 -10
  540. package/types/helpers/pseudoDescriptors.d.ts.map +0 -1
  541. package/types/helpers/registerCSSVariable.d.ts +0 -5
  542. package/types/helpers/registerCSSVariable.d.ts.map +0 -1
  543. package/types/helpers/themeable.d.ts +0 -12
  544. package/types/helpers/themeable.d.ts.map +0 -1
  545. package/types/helpers/themes.d.ts +0 -4
  546. package/types/helpers/themes.d.ts.map +0 -1
  547. package/types/helpers/timer.d.ts +0 -2
  548. package/types/helpers/timer.d.ts.map +0 -1
  549. package/types/helpers/useShallowSetState.d.ts +0 -5
  550. package/types/helpers/useShallowSetState.d.ts.map +0 -1
  551. package/types/helpers/warnOnce.d.ts +0 -2
  552. package/types/helpers/warnOnce.d.ts.map +0 -1
  553. package/types/helpers/withStaticProperties.d.ts +0 -2
  554. package/types/helpers/withStaticProperties.d.ts.map +0 -1
  555. package/types/hooks/getThemeUnwrapped.d.ts +0 -3
  556. package/types/hooks/getThemeUnwrapped.d.ts.map +0 -1
  557. package/types/hooks/useId.d.ts +0 -2
  558. package/types/hooks/useId.d.ts.map +0 -1
  559. package/types/hooks/useIsTouchDevice.d.ts +0 -2
  560. package/types/hooks/useIsTouchDevice.d.ts.map +0 -1
  561. package/types/hooks/useMedia.d.ts +0 -33
  562. package/types/hooks/useMedia.d.ts.map +0 -1
  563. package/types/hooks/useSafeRef.d.ts +0 -4
  564. package/types/hooks/useSafeRef.d.ts.map +0 -1
  565. package/types/hooks/useServerHooks.d.ts +0 -4
  566. package/types/hooks/useServerHooks.d.ts.map +0 -1
  567. package/types/hooks/useStyle.d.ts +0 -8
  568. package/types/hooks/useStyle.d.ts.map +0 -1
  569. package/types/hooks/useTheme.d.ts +0 -25
  570. package/types/hooks/useTheme.d.ts.map +0 -1
  571. package/types/hooks/useThemeName.d.ts +0 -5
  572. package/types/hooks/useThemeName.d.ts.map +0 -1
  573. package/types/insertFont.d.ts +0 -9
  574. package/types/insertFont.d.ts.map +0 -1
  575. package/types/setupReactNative.d.ts +0 -5
  576. package/types/setupReactNative.d.ts.map +0 -1
  577. package/types/static.d.ts +0 -3
  578. package/types/static.d.ts.map +0 -1
  579. package/types/styled.d.ts +0 -20
  580. package/types/styled.d.ts.map +0 -1
  581. package/types/types-rnw.d.ts +0 -74
  582. package/types/types-rnw.d.ts.map +0 -1
  583. package/types/types.d.ts +0 -673
  584. package/types/types.d.ts.map +0 -1
  585. package/types/updateTheme.d.ts +0 -30
  586. package/types/updateTheme.d.ts.map +0 -1
  587. package/types/views/FontLanguage.d.ts +0 -4
  588. package/types/views/FontLanguage.d.ts.map +0 -1
  589. package/types/views/FontLanguage.native.d.ts +0 -4
  590. package/types/views/FontLanguage.native.d.ts.map +0 -1
  591. package/types/views/FontLanguage.types.d.ts +0 -11
  592. package/types/views/FontLanguage.types.d.ts.map +0 -1
  593. package/types/views/Slot.d.ts +0 -11
  594. package/types/views/Slot.d.ts.map +0 -1
  595. package/types/views/Stack.d.ts +0 -4
  596. package/types/views/Stack.d.ts.map +0 -1
  597. package/types/views/Stack.web.test.d.ts +0 -2
  598. package/types/views/Stack.web.test.d.ts.map +0 -1
  599. package/types/views/TamaguiProvider.d.ts +0 -4
  600. package/types/views/TamaguiProvider.d.ts.map +0 -1
  601. package/types/views/Text.d.ts +0 -4
  602. package/types/views/Text.d.ts.map +0 -1
  603. package/types/views/Theme.d.ts +0 -8
  604. package/types/views/Theme.d.ts.map +0 -1
  605. package/types/views/ThemeProvider.d.ts +0 -12
  606. package/types/views/ThemeProvider.d.ts.map +0 -1
@@ -1,274 +0,0 @@
1
- /* eslint-disable no-console */
2
- import { isClient, isRSC, isServer, isWeb } from '@tamagui/constants'
3
- import { useContext, useEffect, useMemo, useState } from 'react'
4
-
5
- import { getConfig } from '../config'
6
- import { isDevTools } from '../constants/isDevTools'
7
- import { createProxy } from '../helpers/createProxy'
8
- import {
9
- ThemeManager,
10
- ThemeManagerState,
11
- hasNoThemeUpdatingProps,
12
- } from '../helpers/ThemeManager'
13
- import { ThemeManagerContext } from '../helpers/ThemeManagerContext'
14
- import { ThemeParsed, ThemeProps } from '../types'
15
- import { GetThemeUnwrapped } from './getThemeUnwrapped'
16
- import { useServerRef } from './useServerHooks'
17
-
18
- export type ChangedThemeResponse = {
19
- themeManager: ThemeManager | null
20
- name: string
21
- isNewTheme?: boolean
22
- theme?: ThemeParsed | null
23
- className?: string
24
- }
25
-
26
- const emptyProps = { name: null }
27
-
28
- function getDefaultThemeProxied() {
29
- const config = getConfig()
30
- const name = Object.keys(config.themes)[0]
31
- return getThemeProxied({
32
- theme: config.themes[name],
33
- name,
34
- })
35
- }
36
-
37
- export const useTheme = (props: ThemeProps = emptyProps): ThemeParsed => {
38
- return (isRSC ? null : useThemeWithState(props)?.theme) || getDefaultThemeProxied()
39
- }
40
-
41
- export const useThemeWithState = (props: ThemeProps) => {
42
- const keys = useServerRef([])
43
-
44
- const changedTheme = useChangeThemeEffect(
45
- props,
46
- false,
47
- isClient
48
- ? () => {
49
- return props.shouldUpdate?.() ?? keys.current.length === 0
50
- }
51
- : undefined
52
- )
53
-
54
- const { themeManager, isNewTheme, theme, name, className } = changedTheme
55
-
56
- if (process.env.NODE_ENV === 'development') {
57
- // ensure we aren't creating too many ThemeManagers
58
- // prettier-ignore
59
- if (isWeb && isNewTheme && className === themeManager?.parentManager?.state.className) {
60
- console.error('Should always change, duplicating ThemeMananger bug', themeManager)
61
- }
62
- if (props.debug === 'verbose') {
63
- console.groupCollapsed(' 🔹 useTheme =>', name)
64
- const logs = { ...props, name, className, ...(isDevTools && { theme }) }
65
- for (const key in logs) {
66
- console.log(' ', key, logs[key])
67
- }
68
- console.groupEnd()
69
- }
70
- }
71
-
72
- if (!changedTheme.theme) {
73
- if (process.env.NODE_ENV === 'development') {
74
- console.warn('No theme found', name, props, themeManager)
75
- }
76
- return null
77
- }
78
-
79
- const proxiedTheme = useMemo(() => {
80
- return getThemeProxied(changedTheme as any)
81
- }, [theme, isNewTheme, name, className, themeManager])
82
-
83
- return {
84
- ...changedTheme,
85
- theme: proxiedTheme,
86
- }
87
- }
88
-
89
- export function getThemeProxied({
90
- theme,
91
- themeManager,
92
- keys,
93
- }: Partial<ChangedThemeResponse> & {
94
- theme: ThemeParsed
95
- keys?: React.RefObject<string[]>
96
- }) {
97
- return createProxy(theme, {
98
- has(_, key) {
99
- if (typeof key === 'string') {
100
- if (key[0] === '$') key = key.slice(1)
101
- return themeManager?.allKeys.has(key)
102
- }
103
- return Reflect.has(theme, key)
104
- },
105
- get(_, key) {
106
- if (key === GetThemeUnwrapped) {
107
- return theme
108
- }
109
- if (
110
- key === 'undefined' ||
111
- key === '__proto__' ||
112
- key === '$typeof' ||
113
- typeof key !== 'string' ||
114
- !themeManager
115
- ) {
116
- return Reflect.get(_, key)
117
- }
118
- const keyString = key
119
- // auto convert variables to plain
120
- if (key[0] === '$') {
121
- key = key.slice(1)
122
- }
123
- const val = themeManager.getValue(key)
124
- const currentKeys = keys?.current
125
- if (val && currentKeys) {
126
- return new Proxy(val as any, {
127
- // when they touch the actual value we only track it
128
- // if its a variable (web), its ignored!
129
- get(_, subkey) {
130
- if (subkey === 'val' && !currentKeys.includes(keyString)) {
131
- currentKeys.push(keyString)
132
- }
133
- return Reflect.get(val as any, subkey)
134
- },
135
- })
136
- }
137
- return val
138
- },
139
- })
140
- }
141
-
142
- export const activeThemeManagers = new Set<ThemeManager>()
143
-
144
- export const useChangeThemeEffect = (
145
- props: ThemeProps,
146
- root = false,
147
- disableUpdate?: () => boolean
148
- ): ChangedThemeResponse => {
149
- if (isRSC) {
150
- // we need context working for this to work well
151
- return {
152
- ...createState().state,
153
- themeManager: null,
154
- }
155
- }
156
- const parentManager = useContext(ThemeManagerContext)
157
-
158
- const {
159
- debug,
160
- // @ts-expect-error internal use only
161
- disable,
162
- } = props
163
-
164
- if (disable) {
165
- if (!parentManager) throw `❌`
166
- return {
167
- ...parentManager.state,
168
- isNewTheme: false,
169
- themeManager: parentManager,
170
- }
171
- }
172
-
173
- type State = {
174
- isNewTheme: boolean
175
- state: ThemeManagerState
176
- themeManager: ThemeManager
177
- mounted?: boolean
178
- }
179
-
180
- const [themeState, setThemeState] = useState<State>(createState)
181
- const { isNewTheme, state, themeManager, mounted } = themeState
182
-
183
- if (!isServer) {
184
- useEffect(() => {
185
- if (disable) return
186
- // SSR safe inverse (because server can't know prefers scheme)
187
- // could be done through fancy selectors like how we do prefers-media
188
- // but may be a bit of explosion of selectors
189
- if (props.inverse && !mounted) {
190
- setThemeState({ ...themeState, mounted: true })
191
- return
192
- }
193
- activeThemeManagers.add(themeManager)
194
- // const disposeChangeListener = parentManager?.onChangeTheme((name, manager) => {
195
- // // console.log('hi', props, state, name, manager)
196
- // if (state.theme !== manager.state.theme) {
197
- // console.warn('now update to', manager.state.name)
198
- // updateState(manager)
199
- // }
200
- // })
201
- return () => {
202
- activeThemeManagers.delete(themeManager)
203
- // disposeChangeListener?.()
204
- }
205
- }, [disable, state, isNewTheme, debug])
206
- }
207
-
208
- const isInversingOnMount = Boolean(!themeState.mounted && props.inverse)
209
- const shouldReturnParentState = hasNoThemeUpdatingProps(props) || isInversingOnMount
210
-
211
- if (shouldReturnParentState) {
212
- if (!parentManager) throw 'impossible'
213
- // prettier-ignore
214
- if (process.env.NODE_ENV === 'development' && props.debug === 'verbose') console.log('useTheme hasNoThemeUpdatingProps', parentManager.state.name, 'isInversingOnMount', isInversingOnMount)
215
- return {
216
- ...parentManager.state,
217
- className: isInversingOnMount ? '' : parentManager.state.className,
218
- themeManager: parentManager,
219
- isNewTheme: false,
220
- }
221
- }
222
-
223
- // run inline in render
224
- updateState()
225
-
226
- return {
227
- ...state,
228
- isNewTheme,
229
- themeManager,
230
- }
231
-
232
- function createState(prev?: State) {
233
- if (prev && disableUpdate?.()) {
234
- return prev
235
- }
236
- // returns previous theme manager if no change
237
- const _ = new ThemeManager(props, root ? 'root' : parentManager)
238
- const isNewTheme = _ !== parentManager
239
- // prettier-ignore
240
-
241
- // if (prev?.isNewTheme && _.state.theme !== parentManager?.state.theme) {
242
- // console.warn('notify')
243
- // _.notify()
244
- // }
245
-
246
- // only inverse relies on this for ssr
247
- const mounted = !props.inverse ? true : root || prev?.mounted
248
- return {
249
- // ThemeManager returns parentManager if no change
250
- isNewTheme,
251
- state: { ..._.state },
252
- themeManager: _,
253
- mounted,
254
- }
255
- }
256
-
257
- function updateState(updatingManager?: ThemeManager) {
258
- if (disableUpdate?.()) {
259
- return
260
- }
261
- const manager = updatingManager ?? themeManager
262
- const next = manager.getState(props, parentManager)
263
- const shouldChange = manager.getStateShouldChange(next, isNewTheme ? state : null)
264
- // console.log(`got it`, next, isNewTheme, shouldChange, { ...updatingManager?.state })
265
- if (shouldChange) {
266
- setThemeState(createState)
267
- } else {
268
- if (!next && parentManager?.state.name !== state.name) {
269
- // were changing back to parent state
270
- setThemeState(createState)
271
- }
272
- }
273
- }
274
- }
@@ -1,27 +0,0 @@
1
- import { isRSC, useIsomorphicLayoutEffect } from '@tamagui/constants'
2
- import { useContext, useState } from 'react'
3
-
4
- import { getConfig } from '../config'
5
- import { ThemeManagerContext } from '../helpers/ThemeManagerContext'
6
- import { ThemeName } from '../types'
7
-
8
- export function useThemeName(opts?: { parent?: true }): ThemeName {
9
- if (isRSC) {
10
- const config = getConfig()
11
- return config.themes[Object.keys(config.themes)[0]] as any
12
- }
13
- const manager = useContext(ThemeManagerContext)
14
- const [name, setName] = useState(manager?.state.name || '')
15
-
16
- useIsomorphicLayoutEffect(() => {
17
- if (!manager) return
18
- setName(manager.state.name)
19
- return manager.onChangeTheme((next, manager) => {
20
- const name = opts?.parent ? manager.state.parentName || next : next
21
- if (!name) return
22
- setName(name)
23
- })
24
- }, [manager?.state.name])
25
-
26
- return name
27
- }
package/src/insertFont.ts DELETED
@@ -1,73 +0,0 @@
1
- import { setConfigFont } from './config'
2
- import { createFont } from './createFont'
3
- import { Variable } from './createVariable'
4
- import { DeepVariableObject, createVariables } from './createVariables'
5
- import { registerCSSVariable, variableToCSS } from './helpers/registerCSSVariable'
6
- import { GenericFont } from './types'
7
-
8
- /**
9
- * Runtime dynamic insert font
10
- */
11
- export function insertFont<A extends GenericFont>(
12
- name: string,
13
- fontIn: A
14
- ): DeepVariableObject<A> {
15
- const font = createFont(fontIn)
16
- const tokened = createVariables(font, name) as GenericFont
17
- const parsed = parseFont(tokened) as DeepVariableObject<A>
18
- if (process.env.TAMAGUI_TARGET === 'web' && typeof document !== 'undefined') {
19
- const fontVars = registerFontVariables(parsed)
20
- const style = document.createElement('style')
21
- style.innerText = `:root .font_${name} {${fontVars.join(';')}}`
22
- style.setAttribute('data-tamagui-font', name)
23
- document.head.appendChild(style)
24
- }
25
- setConfigFont(name, tokened, parsed)
26
- return parsed
27
- }
28
-
29
- export function parseFont<A extends GenericFont>(definition: A): DeepVariableObject<A> {
30
- const parsed: any = {}
31
- for (const attrKey in definition) {
32
- const attr = definition[attrKey]
33
- if (attrKey === 'family' || attrKey === 'face') {
34
- parsed[attrKey] = attr
35
- continue
36
- }
37
- parsed[attrKey] = {}
38
- for (const key in attr) {
39
- let val = attr[key] as any
40
- // is a theme reference
41
- if (val.val?.[0] === '$') {
42
- val = val.val
43
- }
44
- parsed[attrKey][`$${key}`] = val
45
- }
46
- }
47
- return parsed
48
- }
49
-
50
- export function registerFontVariables(parsedFont: any) {
51
- const response: string[] = []
52
-
53
- for (const fkey in parsedFont) {
54
- if (fkey === 'face') continue
55
- if (fkey === 'family') {
56
- const val = parsedFont[fkey] as Variable
57
- registerCSSVariable(val)
58
- response.push(variableToCSS(val))
59
- } else {
60
- for (const fskey in parsedFont[fkey]) {
61
- const fval = parsedFont[fkey][fskey]
62
- if (typeof fval === 'string') {
63
- // no need to add its a theme reference like "$borderColor"
64
- } else {
65
- const val = parsedFont[fkey][fskey] as Variable
66
- registerCSSVariable(val)
67
- response.push(variableToCSS(val))
68
- }
69
- }
70
- }
71
- }
72
- return response
73
- }
@@ -1,22 +0,0 @@
1
- import { StaticConfig } from './types'
2
-
3
- export const ReactNativeStaticConfigs = new WeakMap<any, Partial<StaticConfig> | null>()
4
-
5
- export function getReactNativeConfig(Component: any) {
6
- return ReactNativeStaticConfigs.get(Component)
7
- }
8
-
9
- export function setupReactNative(rnExports: Record<string, any>) {
10
- for (const key in rnExports) {
11
- if (key[0].toLowerCase() === key[0]) continue
12
- const val = rnExports[key]
13
- if (val && typeof val === 'object') {
14
- ReactNativeStaticConfigs.set(val, {
15
- isReactNative: true,
16
- isText: key === 'Text' || key === 'TextInput',
17
- isInput: key === 'TextInput',
18
- inlineProps: key === 'Image' ? new Set(['src', 'width', 'height']) : undefined,
19
- })
20
- }
21
- }
22
- }
package/src/static.ts DELETED
@@ -1,5 +0,0 @@
1
- // only stuff that gets extracted or needed by tamagui-static
2
- export * from './index'
3
-
4
- // for static
5
- export * from './helpers/proxyThemeVariables'
package/src/styled.tsx DELETED
@@ -1,195 +0,0 @@
1
- import { stylePropsAll } from '@tamagui/helpers'
2
-
3
- import { createComponent } from './createComponent'
4
- import { ReactNativeStaticConfigs } from './setupReactNative'
5
- import {
6
- GetProps,
7
- GetVariantValues,
8
- MediaProps,
9
- PseudoProps,
10
- StaticConfig,
11
- StylableComponent,
12
- TamaguiComponent,
13
- TamaguiElement,
14
- VariantDefinitions,
15
- VariantSpreadFunction,
16
- } from './types'
17
-
18
- // TODO may be able to use this in the options?: arg below directly
19
- export type StyledOptions<ParentComponent extends StylableComponent> =
20
- GetProps<ParentComponent> & {
21
- name?: string
22
- variants?: VariantDefinitions<ParentComponent> | undefined
23
- defaultVariants?: { [key: string]: any }
24
- }
25
-
26
- type GetBaseProps<A extends StylableComponent> = A extends TamaguiComponent<
27
- any,
28
- any,
29
- infer P
30
- >
31
- ? P
32
- : GetProps<A>
33
-
34
- type GetVariantProps<A extends StylableComponent> = A extends TamaguiComponent<
35
- any,
36
- any,
37
- any,
38
- infer V
39
- >
40
- ? V
41
- : {}
42
-
43
- export function styled<
44
- ParentComponent extends StylableComponent,
45
- Variants extends VariantDefinitions<ParentComponent> | void = VariantDefinitions<ParentComponent> | void
46
- >(
47
- Component: ParentComponent,
48
- // this should be Partial<GetProps<ParentComponent>> but causes excessively deep type issues
49
- options?: GetProps<ParentComponent> & {
50
- name?: string
51
- variants?: Variants | undefined
52
- // thought i had this typed, but can't get it linked
53
- defaultVariants?: { [key: string]: any }
54
- acceptsClassName?: boolean
55
- },
56
- staticExtractionOptions?: Partial<StaticConfig>
57
- ) {
58
- // validate not using a variant over an existing valid style
59
- if (process.env.NODE_ENV !== 'production') {
60
- if (!Component) {
61
- throw new Error(`No component given to styled()`)
62
- }
63
- if (options?.variants) {
64
- for (const key in options.variants) {
65
- if (key in stylePropsAll) {
66
- console.error(
67
- `Invalid variant key overlaps with style key: ${key}. Tamagui prevents defining variants that use valid style keys to reduce implementation complexity.`
68
- )
69
- }
70
- }
71
- }
72
- }
73
-
74
- const staticConfigProps = (() => {
75
- const parentStaticConfig =
76
- 'staticConfig' in Component ? (Component.staticConfig as StaticConfig) : null
77
-
78
- if (options) {
79
- const {
80
- variants,
81
- name,
82
- defaultVariants,
83
- acceptsClassName: acceptsClassNameProp,
84
- ...defaultProps
85
- } = options
86
- if (defaultVariants) {
87
- Object.assign(defaultProps, defaultVariants)
88
- }
89
- const isReactNative = Boolean(
90
- ReactNativeStaticConfigs.has(Component) ||
91
- ReactNativeStaticConfigs.has(parentStaticConfig?.Component) ||
92
- parentStaticConfig?.isReactNative ||
93
- staticExtractionOptions?.isReactNative
94
- )
95
- const isTamagui = !isReactNative && !!parentStaticConfig
96
-
97
- const Comp = isReactNative
98
- ? parentStaticConfig?.Component || Component
99
- : (Component as any)
100
- const nativeConf = (isReactNative && ReactNativeStaticConfigs.get(Comp)) || null
101
-
102
- const isText = Boolean(
103
- staticExtractionOptions?.isText || parentStaticConfig?.isText
104
- )
105
- const acceptsClassName = acceptsClassNameProp ?? (isTamagui || isReactNative)
106
-
107
- const conf: Partial<StaticConfig> = {
108
- ...staticExtractionOptions,
109
- ...(!isTamagui && {
110
- Component: Comp,
111
- }),
112
- // this type gets messed up by options?: Partial<GetProps<ParentComponent>> above
113
- // take away the Partial<> and it's fine
114
- variants,
115
- defaultProps,
116
- defaultVariants,
117
- componentName: name,
118
- isReactNative,
119
- isText,
120
- acceptsClassName,
121
- ...nativeConf,
122
- }
123
-
124
- // bail on non className views as well
125
- if (defaultProps.children || !acceptsClassName) {
126
- conf.neverFlatten = true
127
- }
128
-
129
- return conf
130
- }
131
- return {}
132
- })()
133
-
134
- const component = createComponent(staticConfigProps, Component)
135
-
136
- // get parent props without pseudos and medias so we can rebuild both with new variants
137
- // get parent props without pseudos and medias so we can rebuild both with new variants
138
- type ParentPropsBase = GetBaseProps<ParentComponent>
139
- type ParentVariants = GetVariantProps<ParentComponent>
140
-
141
- type OurVariants = Variants extends void
142
- ? {}
143
- : {
144
- [Key in keyof Variants]?: Variants[Key] extends VariantSpreadFunction<
145
- any,
146
- infer Val
147
- >
148
- ? Val
149
- : GetVariantValues<keyof Variants[Key]>
150
- }
151
-
152
- type VariantProps = Omit<ParentVariants, keyof OurVariants> & OurVariants
153
- type OurPropsBase = ParentPropsBase & VariantProps
154
-
155
- type Props = Variants extends void
156
- ? GetProps<ParentComponent>
157
- : // start with base props
158
- OurPropsBase &
159
- // add in media (+ pseudos nested)
160
- MediaProps<Partial<OurPropsBase>> &
161
- // add in pseudos
162
- PseudoProps<Partial<OurPropsBase>>
163
-
164
- type StyledComponent = TamaguiComponent<
165
- Props,
166
- TamaguiElement,
167
- ParentPropsBase,
168
- ParentVariants & OurVariants
169
- >
170
-
171
- return component as StyledComponent
172
- }
173
-
174
- // sanity check types
175
- // import { Stack } from './views/Stack'
176
- // const X = styled(Stack, {
177
- // variants: {
178
- // size: {
179
- // '...size': (val) => {
180
- // return {
181
- // pointerEvents: 'auto'
182
- // }
183
- // }
184
- // },
185
- // disabled: {
186
- // true: {
187
- // alignContent: 'center',
188
- // opacity: 0.5,
189
- // pointerEvents: 'none',
190
- // },
191
- // },
192
- // } as const
193
- // })
194
- // // type variants = GetStyledVariants<typeof X>
195
- // const y = <X disabled size="$10" />