@tamagui/core 1.2.4 → 1.2.5

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 +152 -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 +157 -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,220 +0,0 @@
1
- import type { StyleObject } from '@tamagui/helpers'
2
-
3
- const allSelectors: Record<string, string> = {}
4
- const allRules: Record<string, string> = {}
5
- export const insertedTransforms = {}
6
-
7
- export const getAllSelectors = () => allSelectors
8
- export const getAllRules = () => Object.values(allRules)
9
- export const getAllTransforms = () => insertedTransforms
10
-
11
- // keep transforms in map for merging later
12
- function addTransform(identifier: string, css: string, rule?: CSSRule) {
13
- const s = css.indexOf('transform:')
14
- if (s === -1) {
15
- if (process.env.NODE_ENV === 'development') {
16
- console.error(`❌ Invalid transform, likely used deg/% improperly ${identifier}`)
17
- }
18
- return false
19
- }
20
- const startI = s + 'transform:'.length
21
- const endI = css.indexOf(';')
22
- const value = css.slice(startI, endI)
23
- if (!insertedTransforms[identifier]) {
24
- insertedTransforms[identifier] = value
25
- return true
26
- }
27
- return false
28
- }
29
-
30
- const isClient = typeof document !== 'undefined'
31
-
32
- // gets existing ones (client side)
33
- // takes ~0.1ms for a fairly large page
34
- // used now for three things:
35
- // 1. debugging at dev time
36
- // 2. avoid duplicate insert styles at runtime
37
- // 3. used now for merging transforms atomically
38
-
39
- // multiple sheets could have the same ids so we have to count
40
-
41
- // only cache tamagui styles
42
- const scannedCache = new WeakMap<CSSStyleSheet, string>()
43
- const totalSheetSelectors = new Map<string, number>()
44
-
45
- export function listenForSheetChanges() {
46
- if (!isClient) return
47
- function handleNode(node: Node, remove = false) {
48
- if (node instanceof HTMLStyleElement && node.sheet) {
49
- updateSheetStyles(node.sheet, remove)
50
- }
51
- }
52
- const mo = new MutationObserver((entries) => {
53
- for (const entry of entries) {
54
- entry.addedNodes.forEach((node) => handleNode(node))
55
- entry.removedNodes.forEach((node) => handleNode(node, true))
56
- }
57
- })
58
- mo.observe(document.head, {
59
- childList: true,
60
- })
61
- }
62
-
63
- export function scanAllSheets() {
64
- if (process.env.NODE_ENV === 'test') return
65
- if (!isClient) return
66
- const sheets = document.styleSheets
67
- if (!sheets) return
68
- for (let i = 0; i < sheets.length; i++) {
69
- const sheet = sheets[i]
70
- if (!sheet) continue
71
- updateSheetStyles(sheet)
72
- }
73
- }
74
-
75
- function track(id: string, remove = false) {
76
- const next = (totalSheetSelectors.get(id) || 0) + (remove ? -1 : 1)
77
- totalSheetSelectors.set(id, next)
78
- return next
79
- }
80
-
81
- function updateSheetStyles(sheet: CSSStyleSheet, remove = false) {
82
- // avoid errors on cross origin sheets
83
- // https://stackoverflow.com/questions/49993633/uncaught-domexception-failed-to-read-the-cssrules-property
84
- let rules: CSSRuleList
85
- try {
86
- rules = sheet.cssRules
87
- } catch {
88
- return
89
- }
90
-
91
- // not tamagui stylesheet
92
- const firstSelector = getTamaguiSelector(rules[0])?.[0]
93
- if (!firstSelector) {
94
- return
95
- }
96
-
97
- const lastSelector = getTamaguiSelector(rules[rules.length - 1])?.[0]
98
-
99
- const cacheKey = `${rules.length}${firstSelector}${lastSelector}`
100
- const lastScanned = scannedCache.get(sheet)
101
- if (!remove) {
102
- // avoid re-scanning
103
- if (lastScanned === cacheKey) {
104
- return
105
- }
106
- }
107
-
108
- const len = rules.length
109
- for (let i = 0; i < len; i++) {
110
- const rule = rules[i]
111
- const response = getTamaguiSelector(rule)
112
- if (!response) {
113
- return
114
- }
115
-
116
- const [identifier, cssRule] = response
117
-
118
- // track references
119
- const total = track(identifier, remove)
120
-
121
- if (remove) {
122
- if (total === 0) {
123
- delete allSelectors[identifier]
124
- }
125
- } else {
126
- if (!(identifier in allSelectors)) {
127
- const isTransform = identifier.startsWith('_transform')
128
- const shouldInsert = isTransform
129
- ? addTransform(identifier, cssRule.cssText, cssRule)
130
- : true
131
- if (shouldInsert) {
132
- allSelectors[identifier] = cssRule.cssText
133
- }
134
- }
135
- }
136
- }
137
-
138
- scannedCache.set(sheet, cacheKey)
139
- }
140
-
141
- function getTamaguiSelector(
142
- rule: CSSRule | null
143
- ): readonly [string, CSSStyleRule] | null {
144
- if (rule instanceof CSSStyleRule) {
145
- const text = rule.selectorText
146
- if (text[0] === '.' && text[1] === '_') {
147
- return [text.slice(1), rule]
148
- }
149
- if (text.startsWith(':root') && text.includes('._')) {
150
- return [getIdentifierFromTamaguiSelector(text), rule]
151
- }
152
- } else if (rule instanceof CSSMediaRule) {
153
- // tamagui only ever inserts 1 rule per media
154
- if (rule.cssRules.length > 1) return null
155
- return getTamaguiSelector(rule.cssRules[0])
156
- }
157
- return null
158
- }
159
-
160
- const getIdentifierFromTamaguiSelector = (selector: string) =>
161
- selector
162
- .replace(/(:root)+\s+/, '')
163
- .replace(/:[a-z]+$/, '')
164
- .slice(1)
165
-
166
- const sheet = isClient
167
- ? document.head.appendChild(document.createElement('style')).sheet
168
- : null
169
-
170
- export function updateRules(identifier: string, rules: string[]) {
171
- if (allRules[identifier]) return false
172
- allRules[identifier] = rules.join(' ')
173
- if (identifier.startsWith('_transform')) {
174
- return addTransform(identifier, rules[0])
175
- }
176
- return true
177
- }
178
-
179
- // [property, identifier, rules]
180
- export type PartialStyleObject = Pick<StyleObject, 'identifier' | 'property' | 'rules'>
181
- export type RulesToInsert = PartialStyleObject[]
182
-
183
- export function insertStyleRules(rulesToInsert: RulesToInsert) {
184
- if (!rulesToInsert.length) return
185
- if (isClient && !sheet) {
186
- if (process.env.NODE_ENV === 'development') throw 'impossible'
187
- return
188
- }
189
- for (const { identifier, rules } of rulesToInsert) {
190
- if (identifier in allSelectors) continue
191
- allSelectors[identifier] =
192
- process.env.NODE_ENV === 'development' ? rules.join('\n') : ' '
193
- updateRules(identifier, rules)
194
- if (sheet) {
195
- for (const rule of rules) {
196
- try {
197
- sheet.insertRule(rule, sheet.cssRules.length)
198
- } catch (err) {
199
- if (process.env.NODE_ENV !== 'production') {
200
- console.groupCollapsed(
201
- `Error inserting rule into CSSStyleSheet: ${String(err)}`
202
- )
203
- console.log({ rule, rulesToInsert })
204
- console.trace()
205
- console.groupEnd()
206
- }
207
- }
208
- }
209
- }
210
- }
211
- }
212
-
213
- const IS_STATIC = process.env.IS_STATIC === 'is_static'
214
-
215
- export function shouldInsertStyleRules(styleObject: PartialStyleObject) {
216
- if (IS_STATIC) {
217
- return true
218
- }
219
- return !(styleObject.identifier in allSelectors)
220
- }
@@ -1 +0,0 @@
1
- export const isObj = (x: any) => x && !Array.isArray(x) && typeof x === 'object'
@@ -1,11 +0,0 @@
1
- import { StaticConfig, StaticConfigParsed } from '../types'
2
-
3
- export function isTamaguiComponent<A>(
4
- comp: A,
5
- name?: string
6
- ): comp is A & {
7
- staticConfig: StaticConfig
8
- } {
9
- const config = comp?.['staticConfig'] as StaticConfigParsed | undefined
10
- return (config?.parsed && (name ? name === config.componentName : true)) || false
11
- }
@@ -1,15 +0,0 @@
1
- import React, { isValidElement } from 'react'
2
-
3
- import { TamaguiComponent } from '../types'
4
- import { isTamaguiComponent } from './isTamaguiComponent'
5
-
6
- export type TamaguiReactElement<P = any> = React.ReactElement<P> & {
7
- type: TamaguiComponent
8
- }
9
-
10
- export const isTamaguiElement = (
11
- child: any,
12
- name?: string
13
- ): child is TamaguiReactElement => {
14
- return isValidElement(child) && isTamaguiComponent(child.type, name)
15
- }
@@ -1,23 +0,0 @@
1
- import { MatchMedia, MediaQueryList } from '../types'
2
-
3
- let matchMediaImpl: MatchMedia = matchMediaFallback
4
-
5
- export const matchMedia: MatchMedia = (...args) => matchMediaImpl(...args)
6
-
7
- function matchMediaFallback(query: string): MediaQueryList {
8
- if (process.env.NODE_ENV === 'development') {
9
- // eslint-disable-next-line no-console
10
- console.warn('warning: matchMedia implementation is not provided.')
11
- }
12
- return {
13
- addListener: () => {},
14
- removeListener: () => {},
15
- matches: false,
16
- }
17
- }
18
-
19
- export function setupMatchMedia(_: MatchMedia) {
20
- matchMediaImpl = _
21
- // @ts-ignore
22
- globalThis['matchMedia'] = _
23
- }
@@ -1,16 +0,0 @@
1
- import { MatchMedia, MediaQueryList } from '../types'
2
-
3
- export const matchMedia =
4
- (typeof window !== 'undefined' && window.matchMedia) || matchMediaFallback
5
-
6
- function matchMediaFallback(_: string): MediaQueryList {
7
- return {
8
- addListener() {},
9
- removeListener() {},
10
- matches: false,
11
- }
12
- }
13
-
14
- export function setupMatchMedia(_: MatchMedia) {
15
- // no-op web
16
- }
@@ -1,56 +0,0 @@
1
- /**
2
- * Preserves prop ordering, so that the order most closely matches the last spread objects
3
- * Useful for having { ...defaultProps, ...props } that ensure props ordering is always kept
4
- *
5
- * Given:
6
- * mergeProps({ a: 1, b: 2 }, { b: 1, a: 2 })
7
- * The final key order will be:
8
- * b, a
9
- *
10
- * Handles a couple special tamagui cases
11
- * - classNames can be extracted out separately
12
- * - shorthands can be expanded before merging
13
- */
14
-
15
- type AnyRecord = Record<string, any>
16
-
17
- export const mergeProps = (
18
- a: Object,
19
- b: Object,
20
- leaveOutClassNames = false,
21
- inverseShorthands?: AnyRecord
22
- ) => {
23
- const out: AnyRecord = {}
24
- const outCns: AnyRecord = leaveOutClassNames ? {} : (null as any)
25
- for (const key in a) {
26
- mergeProp(out, outCns, a, b, key, leaveOutClassNames, inverseShorthands)
27
- }
28
- for (const key in b) {
29
- mergeProp(out, outCns, b, undefined, key, leaveOutClassNames, inverseShorthands)
30
- }
31
- return [out, outCns] as const
32
- }
33
-
34
- function mergeProp(
35
- out: AnyRecord,
36
- outCns: AnyRecord,
37
- a: Object,
38
- b: Object | undefined,
39
- key: string,
40
- leaveOutClassNames: boolean,
41
- inverseShorthands?: AnyRecord
42
- ) {
43
- const val = a[key]
44
- const shorthand = inverseShorthands?.[key] || null
45
- if (b && (key in b || (shorthand && shorthand in b))) {
46
- return
47
- }
48
- if (shorthand) {
49
- key = shorthand
50
- }
51
- if (leaveOutClassNames && val?.[0] === '_') {
52
- outCns[key] = val
53
- } else {
54
- out[key] = val
55
- }
56
- }
@@ -1,30 +0,0 @@
1
- import type { ViewStyle } from 'react-native'
2
-
3
- export type FlatTransforms = Record<string, any>
4
-
5
- export const mergeTransform = (
6
- obj: ViewStyle,
7
- key: string,
8
- val: any,
9
- backwards = false
10
- ) => {
11
- obj.transform ||= []
12
- obj.transform[backwards ? 'unshift' : 'push']({
13
- [mapTransformKeys[key] || key]: val,
14
- } as any)
15
- }
16
-
17
- export const mergeTransforms = (
18
- obj: ViewStyle,
19
- flatTransforms: FlatTransforms,
20
- backwards = false
21
- ) => {
22
- Object.entries(flatTransforms).forEach(([key, val]) => {
23
- mergeTransform(obj, key, val, backwards)
24
- })
25
- }
26
-
27
- export const mapTransformKeys = {
28
- x: 'translateX',
29
- y: 'translateY',
30
- }
@@ -1,38 +0,0 @@
1
- import { isWeb } from '@tamagui/constants'
2
- import * as NCC from '@tamagui/normalize-css-color'
3
-
4
- export const rgba = NCC.rgba
5
-
6
- export const normalizeColor = (color?: string | null, opacity?: number) => {
7
- if (color === null || color === undefined) {
8
- return
9
- }
10
- if (color === 'transparent') {
11
- return `rgba(0,0,0,0)`
12
- }
13
- if (
14
- color[0] === '$' ||
15
- (isWeb && (webColors[color] || color[0] === '_' || color.startsWith('var(')))
16
- ) {
17
- return color
18
- }
19
- const colorProcessed = NCC.normalizeCSSColor(color)
20
- if (colorProcessed !== null) {
21
- const { r, g, b, a } = rgba(colorProcessed)
22
- return `rgba(${r},${g},${b},${(opacity ?? a).toFixed(2)})`
23
- }
24
-
25
- if (isWeb) {
26
- return color
27
- } else {
28
- if (process.env.NODE_ENV === 'development') {
29
- console.warn(`Unknown color value: ${color}`)
30
- }
31
- }
32
- }
33
-
34
- const webColors = {
35
- currentColor: true,
36
- currentcolor: true,
37
- inherit: true,
38
- }
@@ -1,129 +0,0 @@
1
- /**
2
- * Some parts adapted from react-native-web
3
- * Copyright (c) Nicolas Gallagher licensed under the MIT license.
4
- */
5
-
6
- import { isWeb } from '@tamagui/constants'
7
-
8
- import { getAllSelectors } from './insertStyleRule'
9
- import { normalizeColor } from './normalizeColor'
10
-
11
- const cache = {}
12
-
13
- export function normalizeValueWithProperty(value: any, property?: string): any {
14
- const cached = cache[value]
15
- if (cached !== undefined) {
16
- return cached
17
- }
18
- if (property && property in unitlessNumbers) {
19
- return value
20
- }
21
- let res = value
22
- if (
23
- process.env.TAMAGUI_TARGET === 'web' &&
24
- typeof value === 'number' &&
25
- (property === undefined || !(unitlessNumbers[property] || stringNumbers[property]))
26
- ) {
27
- res = `${value}px`
28
- } else if (isWeb && property !== undefined && stringNumbers[property]) {
29
- res = `${res}`
30
- } else if (property && property in colorProps) {
31
- res = normalizeColor(value)
32
- cache[value] = res
33
- }
34
- return res
35
- }
36
-
37
- // TODO react-native-web-lite
38
-
39
- const colorProps = {
40
- backgroundColor: true,
41
- borderColor: true,
42
- borderTopColor: true,
43
- borderRightColor: true,
44
- borderBottomColor: true,
45
- borderLeftColor: true,
46
- color: true,
47
- shadowColor: true,
48
- textDecorationColor: true,
49
- textShadowColor: true,
50
- }
51
-
52
- const stringNumbers = {
53
- zIndex: true,
54
- }
55
-
56
- const unitlessNumbers = {
57
- WebkitLineClamp: true,
58
- animationIterationCount: true,
59
- aspectRatio: true,
60
- borderImageOutset: true,
61
- borderImageSlice: true,
62
- borderImageWidth: true,
63
- columnCount: true,
64
- flex: true,
65
- flexGrow: true,
66
- flexOrder: true,
67
- flexPositive: true,
68
- flexShrink: true,
69
- flexNegative: true,
70
- fontWeight: true,
71
- gridRow: true,
72
- gridRowEnd: true,
73
- gridRowGap: true,
74
- gridRowStart: true,
75
- gridColumn: true,
76
- gridColumnEnd: true,
77
- gridColumnGap: true,
78
- gridColumnStart: true,
79
- lineClamp: true,
80
- opacity: true,
81
- order: true,
82
- orphans: true,
83
- tabSize: true,
84
- widows: true,
85
- zoom: true,
86
- scale: true,
87
- scaleX: true,
88
- scaleY: true,
89
- scaleZ: true,
90
- shadowOpacity: true,
91
- }
92
-
93
- // getting real values for colors for animations (reverse mapped from CSS)
94
- // this isn't beautiful, but will do relatively fine performance for now
95
- const rcache = {}
96
- export function reverseMapClassNameToValue(key: string, className: string) {
97
- const selectors = getAllSelectors()
98
- const cssRule = selectors[className]
99
- if (rcache[cssRule]) return rcache[cssRule]
100
- if (!cssRule) {
101
- return
102
- }
103
- const cssVal = cssRule.replace(/.*:/, '').replace(/;.*/, '').trim()
104
- let res: any
105
- if (cssVal.startsWith('var(')) {
106
- res = cssVal
107
- } else if (unitlessNumbers[key]) {
108
- res = +cssVal
109
- } else if (cssVal.endsWith('px')) {
110
- res = +cssVal.replace('px', '')
111
- } else {
112
- res = cssVal
113
- }
114
- rcache[cssRule] = res
115
- if (process.env.NODE_ENV === 'development') {
116
- // ensure we are parsing properly
117
- if (typeof res === 'number' && isNaN(res)) {
118
- // eslint-disable-next-line no-console
119
- console.log('Tamagui invalid parsed value, NaN:', {
120
- res,
121
- cssVal,
122
- cssRule,
123
- key,
124
- className,
125
- })
126
- }
127
- }
128
- return res
129
- }
@@ -1,15 +0,0 @@
1
- import { createProxy } from './createProxy'
2
-
3
- export function proxyThemeVariables<A extends Object>(obj: A): A {
4
- return createProxy<A>(obj || {}, {
5
- has(target, key) {
6
- return Reflect.has(target, removeStarting$(key))
7
- },
8
- get(target, key) {
9
- return Reflect.get(target, removeStarting$(key))
10
- },
11
- })
12
- }
13
-
14
- const removeStarting$ = (str: string | symbol) =>
15
- typeof str === 'string' && str[0] === '$' ? str.slice(1) : str
@@ -1,40 +0,0 @@
1
- // *0 order matches to *1
2
-
3
- export const pseudoDescriptors: Record<
4
- 'hoverStyle' | 'pressStyle' | 'focusStyle' | 'enterStyle' | 'exitStyle',
5
- PseudoDescriptor
6
- > = {
7
- hoverStyle: {
8
- name: 'hover',
9
- priority: 1,
10
- },
11
- pressStyle: {
12
- name: 'active',
13
- stateKey: 'press',
14
- priority: 2,
15
- },
16
- focusStyle: {
17
- name: 'focus',
18
- priority: 3,
19
- },
20
- enterStyle: {
21
- name: 'enter',
22
- stateKey: 'unmounted',
23
- priority: 4,
24
- },
25
- exitStyle: {
26
- name: 'exit',
27
- stateKey: 'isExiting',
28
- priority: 5,
29
- },
30
- }
31
-
32
- export type PseudoDescriptor = {
33
- name: string
34
- priority: number
35
- stateKey?: string
36
- }
37
-
38
- export type PseudoDescriptors = {
39
- [Key in keyof typeof pseudoDescriptors]: PseudoDescriptor
40
- }
@@ -1,13 +0,0 @@
1
- import { Variable, createCSSVariable } from '../createVariable'
2
-
3
- export const registerCSSVariable = (v: Variable) => {
4
- tokensValueToVariable.set(v.val, v)
5
- }
6
-
7
- export const variableToCSS = (v: Variable) => {
8
- return `--${createCSSVariable(v.name, false)}:${
9
- typeof v.val === 'number' ? `${v.val}px` : v.val
10
- }`
11
- }
12
-
13
- export const tokensValueToVariable = new Map<any, any>()
@@ -1,44 +0,0 @@
1
- import React, { forwardRef, useId } from 'react'
2
-
3
- import { ThemeName } from '../types'
4
- import { Theme } from '../views/Theme'
5
-
6
- export interface ThemeableProps {
7
- theme?: ThemeName | null
8
- themeInverse?: boolean
9
- themeReset?: boolean
10
- componentName?: string
11
- debug?: boolean | 'verbose'
12
- }
13
-
14
- export function themeable<Component extends (props: any) => any>(
15
- component: Component,
16
- opts?: { componentName?: string }
17
- ) {
18
- const withThemeComponent = forwardRef(function WithTheme(props: ThemeableProps, ref) {
19
- const { themeInverse, theme, componentName, themeReset, ...rest } = props
20
- const element = React.createElement(component, { ...rest, ref } as any)
21
-
22
- return (
23
- <Theme
24
- inverse={themeInverse}
25
- componentName={componentName || opts?.componentName}
26
- name={(theme as any) || null}
27
- data-themeable
28
- debug={props.debug}
29
- reset={props.themeReset}
30
- >
31
- {element}
32
- </Theme>
33
- )
34
- })
35
-
36
- const withTheme: any = withThemeComponent
37
- withTheme.displayName = `Themed(${
38
- (component as any)?.displayName || (component as any)?.name || 'Anonymous'
39
- })`
40
-
41
- return withTheme as Component extends (props: infer P) => infer R
42
- ? (props: Omit<P, 'theme' | 'themeInverse'> & ThemeableProps) => R
43
- : unknown
44
- }