@tamagui/core 1.0.0-alpha.7 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (659) hide show
  1. package/dist/cjs/Tamagui.js +69 -0
  2. package/dist/cjs/Tamagui.js.map +7 -0
  3. package/dist/cjs/ThemeContext.js +29 -0
  4. package/dist/cjs/ThemeContext.js.map +7 -0
  5. package/dist/cjs/ThemeManager.js +211 -0
  6. package/dist/cjs/ThemeManager.js.map +7 -0
  7. package/dist/cjs/conf.js +64 -0
  8. package/dist/cjs/conf.js.map +7 -0
  9. package/dist/cjs/constants/constants.js +56 -0
  10. package/dist/cjs/constants/constants.js.map +7 -0
  11. package/dist/cjs/constants/platform.js +58 -0
  12. package/dist/cjs/constants/platform.js.map +7 -0
  13. package/dist/cjs/constants/pseudos.js +41 -0
  14. package/dist/cjs/constants/pseudos.js.map +7 -0
  15. package/dist/cjs/constants/rnw.js +46 -0
  16. package/dist/cjs/constants/rnw.js.map +7 -0
  17. package/dist/cjs/contexts/ButtonInsideButtonContext.js +29 -0
  18. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +7 -0
  19. package/dist/cjs/createComponent.js +677 -0
  20. package/dist/cjs/createComponent.js.map +7 -0
  21. package/dist/cjs/createFont.js +50 -0
  22. package/dist/cjs/createFont.js.map +7 -0
  23. package/dist/cjs/createShorthands.js +32 -0
  24. package/dist/cjs/createShorthands.js.map +7 -0
  25. package/dist/cjs/createTamagui.js +240 -0
  26. package/dist/cjs/createTamagui.js.map +7 -0
  27. package/dist/cjs/createTheme.js +29 -0
  28. package/dist/cjs/createTheme.js.map +7 -0
  29. package/dist/cjs/createTokens.js +52 -0
  30. package/dist/cjs/createTokens.js.map +7 -0
  31. package/dist/cjs/createVariable.js +77 -0
  32. package/dist/cjs/createVariable.js.map +7 -0
  33. package/dist/cjs/defaultComponentState.js +1 -0
  34. package/dist/{helpers/pseudos.js.map → cjs/defaultComponentState.js.map} +0 -0
  35. package/dist/cjs/helpers/RNComponents.js +38 -0
  36. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  37. package/dist/cjs/helpers/addStylesUsingClassname.js +87 -0
  38. package/dist/cjs/helpers/addStylesUsingClassname.js.map +7 -0
  39. package/dist/cjs/helpers/areEqualSets.js +38 -0
  40. package/dist/cjs/helpers/areEqualSets.js.map +7 -0
  41. package/dist/cjs/helpers/createMediaStyle.js +54 -0
  42. package/dist/cjs/helpers/createMediaStyle.js.map +7 -0
  43. package/dist/cjs/helpers/createPropMapper.js +228 -0
  44. package/dist/cjs/helpers/createPropMapper.js.map +7 -0
  45. package/dist/cjs/helpers/createShallowUpdate.js +55 -0
  46. package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
  47. package/dist/cjs/helpers/createTamaguiProvider.js +93 -0
  48. package/dist/cjs/helpers/createTamaguiProvider.js.map +7 -0
  49. package/dist/cjs/helpers/extendStaticConfig.js +82 -0
  50. package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
  51. package/dist/cjs/helpers/fixNativeShadow.js +30 -0
  52. package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
  53. package/dist/cjs/helpers/fixNativeShadow.native.js +56 -0
  54. package/dist/cjs/helpers/fixNativeShadow.native.js.map +7 -0
  55. package/dist/cjs/helpers/getExpandedShorthands.js +41 -0
  56. package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
  57. package/dist/cjs/helpers/getSize.js +35 -0
  58. package/dist/cjs/helpers/getSize.js.map +7 -0
  59. package/dist/cjs/helpers/getSplitStyles.js +307 -0
  60. package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
  61. package/dist/cjs/helpers/getStylesAtomic.js +177 -0
  62. package/dist/cjs/helpers/getStylesAtomic.js.map +7 -0
  63. package/dist/cjs/helpers/getStylesAtomic.native.js +32 -0
  64. package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
  65. package/dist/cjs/helpers/getThemeParentClassName.js +33 -0
  66. package/dist/cjs/helpers/getThemeParentClassName.js.map +7 -0
  67. package/dist/cjs/helpers/insertStyleRule.js +122 -0
  68. package/dist/cjs/helpers/insertStyleRule.js.map +7 -0
  69. package/dist/cjs/helpers/isObj.js +29 -0
  70. package/dist/cjs/helpers/isObj.js.map +7 -0
  71. package/dist/cjs/helpers/isTamaguiElement.js +33 -0
  72. package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
  73. package/dist/cjs/helpers/matchMedia.js +40 -0
  74. package/dist/cjs/helpers/matchMedia.js.map +7 -0
  75. package/dist/cjs/helpers/matchMedia.native.js +34 -0
  76. package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
  77. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  78. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  79. package/dist/cjs/helpers/themeable.js +83 -0
  80. package/dist/cjs/helpers/themeable.js.map +7 -0
  81. package/dist/cjs/helpers/validate.js +123 -0
  82. package/dist/cjs/helpers/validate.js.map +7 -0
  83. package/dist/cjs/helpers/withStaticProperties.js +32 -0
  84. package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
  85. package/dist/cjs/helpers/wrapThemeManagerContext.js +39 -0
  86. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +7 -0
  87. package/dist/cjs/hooks/useConstant.js +37 -0
  88. package/dist/cjs/hooks/useConstant.js.map +7 -0
  89. package/dist/cjs/hooks/useFeatures.js +228 -0
  90. package/dist/cjs/hooks/useFeatures.js.map +7 -0
  91. package/dist/cjs/hooks/useIsMounted.js +41 -0
  92. package/dist/cjs/hooks/useIsMounted.js.map +7 -0
  93. package/dist/cjs/hooks/useIsTouchDevice.js +39 -0
  94. package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
  95. package/dist/cjs/hooks/useMedia.js +199 -0
  96. package/dist/cjs/hooks/useMedia.js.map +7 -0
  97. package/dist/cjs/hooks/usePressable.js +50 -0
  98. package/dist/cjs/hooks/usePressable.js.map +7 -0
  99. package/dist/cjs/hooks/useTheme.js +219 -0
  100. package/dist/cjs/hooks/useTheme.js.map +7 -0
  101. package/dist/cjs/hooks/useUnmountEffect.js +33 -0
  102. package/dist/cjs/hooks/useUnmountEffect.js.map +7 -0
  103. package/dist/cjs/index.js +83 -0
  104. package/dist/cjs/index.js.map +7 -0
  105. package/dist/cjs/static/postProcessStyles.js +40 -0
  106. package/dist/cjs/static/postProcessStyles.js.map +7 -0
  107. package/dist/cjs/static.js +33 -0
  108. package/dist/cjs/static.js.map +7 -0
  109. package/dist/cjs/styled.js +94 -0
  110. package/dist/cjs/styled.js.map +7 -0
  111. package/dist/cjs/tamagui-base.css +11 -0
  112. package/dist/cjs/tamagui-base.css.map +7 -0
  113. package/dist/cjs/types-rnw.js +16 -0
  114. package/dist/cjs/types-rnw.js.map +7 -0
  115. package/dist/cjs/types.js +16 -0
  116. package/dist/cjs/types.js.map +7 -0
  117. package/dist/cjs/views/Animated.js +132 -0
  118. package/dist/cjs/views/Animated.js.map +7 -0
  119. package/dist/cjs/views/Stack.js +52 -0
  120. package/dist/cjs/views/Stack.js.map +7 -0
  121. package/dist/cjs/views/Text.js +95 -0
  122. package/dist/cjs/views/Text.js.map +7 -0
  123. package/dist/cjs/views/TextAncestorContext.js +45 -0
  124. package/dist/cjs/views/TextAncestorContext.js.map +7 -0
  125. package/dist/cjs/views/Theme.js +60 -0
  126. package/dist/cjs/views/Theme.js.map +7 -0
  127. package/dist/cjs/views/ThemeContext.js +29 -0
  128. package/dist/cjs/views/ThemeContext.js.map +7 -0
  129. package/dist/cjs/views/ThemeInverse.js +52 -0
  130. package/dist/cjs/views/ThemeInverse.js.map +7 -0
  131. package/dist/cjs/views/ThemeManagerContext.js +85 -0
  132. package/dist/cjs/views/ThemeManagerContext.js.map +7 -0
  133. package/dist/cjs/views/ThemeProvider.js +67 -0
  134. package/dist/cjs/views/ThemeProvider.js.map +7 -0
  135. package/dist/cjs/views/ThemeReset.js +63 -0
  136. package/dist/cjs/views/ThemeReset.js.map +7 -0
  137. package/dist/esm/Tamagui.js +42 -0
  138. package/dist/esm/Tamagui.js.map +7 -0
  139. package/dist/{views → esm}/ThemeContext.js +0 -0
  140. package/dist/esm/ThemeContext.js.map +7 -0
  141. package/dist/esm/ThemeManager.js +187 -0
  142. package/dist/esm/ThemeManager.js.map +7 -0
  143. package/dist/esm/conf.js +36 -0
  144. package/dist/esm/conf.js.map +7 -0
  145. package/dist/{constants → esm/constants}/constants.js +4 -0
  146. package/dist/esm/constants/constants.js.map +7 -0
  147. package/dist/{constants → esm/constants}/platform.js +8 -1
  148. package/dist/esm/constants/platform.js.map +7 -0
  149. package/dist/{constants → esm/constants}/pseudos.js +0 -0
  150. package/dist/{constants → esm/constants}/pseudos.js.map +2 -2
  151. package/dist/{constants → esm/constants}/rnw.js +2 -0
  152. package/dist/esm/constants/rnw.js.map +7 -0
  153. package/dist/esm/contexts/ButtonInsideButtonContext.js +6 -0
  154. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +7 -0
  155. package/dist/esm/createComponent.js +606 -0
  156. package/dist/esm/createComponent.js.map +7 -0
  157. package/dist/{createFont.js → esm/createFont.js} +0 -0
  158. package/dist/{createFont.js.map → esm/createFont.js.map} +2 -2
  159. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  160. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +2 -2
  161. package/dist/esm/createTamagui.js +202 -0
  162. package/dist/esm/createTamagui.js.map +7 -0
  163. package/dist/esm/createTheme.js +7 -0
  164. package/dist/esm/createTheme.js.map +7 -0
  165. package/dist/{createTokens.js → esm/createTokens.js} +2 -6
  166. package/dist/esm/createTokens.js.map +7 -0
  167. package/dist/esm/createVariable.js +49 -0
  168. package/dist/esm/createVariable.js.map +7 -0
  169. package/dist/esm/defaultComponentState.js +1 -0
  170. package/dist/{types.js.map → esm/defaultComponentState.js.map} +0 -0
  171. package/dist/esm/helpers/RNComponents.js +12 -0
  172. package/dist/esm/helpers/RNComponents.js.map +7 -0
  173. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +20 -13
  174. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  175. package/dist/esm/helpers/areEqualSets.js +16 -0
  176. package/dist/esm/helpers/areEqualSets.js.map +7 -0
  177. package/dist/{helpers → esm/helpers}/createMediaStyle.js +3 -6
  178. package/dist/esm/helpers/createMediaStyle.js.map +7 -0
  179. package/dist/esm/helpers/createPropMapper.js +206 -0
  180. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  181. package/dist/esm/helpers/createShallowUpdate.js +19 -0
  182. package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
  183. package/dist/esm/helpers/createTamaguiProvider.js +40 -0
  184. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  185. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +17 -14
  186. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  187. package/dist/{helpers → esm/helpers}/fixNativeShadow.js +0 -0
  188. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +2 -2
  189. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  190. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  191. package/dist/esm/helpers/getExpandedShorthands.js +19 -0
  192. package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
  193. package/dist/esm/helpers/getSize.js +13 -0
  194. package/dist/esm/helpers/getSize.js.map +7 -0
  195. package/dist/esm/helpers/getSplitStyles.js +278 -0
  196. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  197. package/dist/esm/helpers/getStylesAtomic.js +131 -0
  198. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  199. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js +0 -0
  200. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js.map +2 -2
  201. package/dist/esm/helpers/getThemeParentClassName.js +11 -0
  202. package/dist/esm/helpers/getThemeParentClassName.js.map +7 -0
  203. package/dist/esm/helpers/insertStyleRule.js +94 -0
  204. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  205. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  206. package/dist/{helpers → esm/helpers}/isObj.js.map +2 -2
  207. package/dist/{helpers → esm/helpers}/isTamaguiElement.js +2 -1
  208. package/dist/{helpers → esm/helpers}/isTamaguiElement.js.map +2 -2
  209. package/dist/{helpers → esm/helpers}/matchMedia.js +3 -0
  210. package/dist/esm/helpers/matchMedia.js.map +7 -0
  211. package/dist/{helpers → esm/helpers}/matchMedia.native.js +1 -0
  212. package/dist/esm/helpers/matchMedia.native.js.map +7 -0
  213. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  214. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  215. package/dist/{helpers → esm/helpers}/themeable.js +12 -10
  216. package/dist/esm/helpers/themeable.js.map +7 -0
  217. package/dist/esm/helpers/validate.js +76 -0
  218. package/dist/esm/helpers/validate.js.map +7 -0
  219. package/dist/esm/helpers/withStaticProperties.js +10 -0
  220. package/dist/esm/helpers/withStaticProperties.js.map +7 -0
  221. package/dist/esm/helpers/wrapThemeManagerContext.js +14 -0
  222. package/dist/esm/helpers/wrapThemeManagerContext.js.map +7 -0
  223. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  224. package/dist/{hooks → esm/hooks}/useConstant.js.map +2 -2
  225. package/dist/esm/hooks/useFeatures.js +173 -0
  226. package/dist/esm/hooks/useFeatures.js.map +7 -0
  227. package/dist/esm/hooks/useIsMounted.js +19 -0
  228. package/dist/esm/hooks/useIsMounted.js.map +7 -0
  229. package/dist/esm/hooks/useIsTouchDevice.js +17 -0
  230. package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
  231. package/dist/{hooks → esm/hooks}/useMedia.js +31 -42
  232. package/dist/esm/hooks/useMedia.js.map +7 -0
  233. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  234. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  235. package/dist/esm/hooks/useTheme.js +178 -0
  236. package/dist/esm/hooks/useTheme.js.map +7 -0
  237. package/dist/esm/hooks/useUnmountEffect.js +11 -0
  238. package/dist/esm/hooks/useUnmountEffect.js.map +7 -0
  239. package/dist/{index.js → esm/index.js} +25 -5
  240. package/dist/esm/index.js.map +7 -0
  241. package/dist/{static → esm/static}/postProcessStyles.js +0 -0
  242. package/dist/{static → esm/static}/postProcessStyles.js.map +2 -2
  243. package/dist/{static.js → esm/static.js} +4 -2
  244. package/dist/esm/static.js.map +7 -0
  245. package/dist/esm/styled.js +45 -0
  246. package/dist/esm/styled.js.map +7 -0
  247. package/dist/esm/tamagui-base.css +11 -0
  248. package/dist/esm/tamagui-base.css.map +7 -0
  249. package/dist/esm/types-rnw.js +1 -0
  250. package/dist/esm/types-rnw.js.map +7 -0
  251. package/dist/{types.js → esm/types.js} +0 -0
  252. package/dist/esm/types.js.map +7 -0
  253. package/dist/{views → esm/views}/Animated.js +0 -0
  254. package/dist/{views → esm/views}/Animated.js.map +2 -2
  255. package/dist/{views → esm/views}/Stack.js +1 -0
  256. package/dist/esm/views/Stack.js.map +7 -0
  257. package/dist/{views → esm/views}/Text.js +6 -4
  258. package/dist/esm/views/Text.js.map +7 -0
  259. package/dist/esm/views/TextAncestorContext.js +18 -0
  260. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  261. package/dist/esm/views/Theme.js +35 -0
  262. package/dist/esm/views/Theme.js.map +7 -0
  263. package/dist/esm/views/ThemeContext.js +6 -0
  264. package/dist/{views → esm/views}/ThemeContext.js.map +2 -2
  265. package/dist/{views → esm/views}/ThemeInverse.js +1 -1
  266. package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
  267. package/dist/{views → esm/views}/ThemeManagerContext.js +8 -7
  268. package/dist/esm/views/ThemeManagerContext.js.map +7 -0
  269. package/dist/esm/views/ThemeProvider.js +42 -0
  270. package/dist/esm/views/ThemeProvider.js.map +7 -0
  271. package/dist/esm/views/ThemeReset.js +38 -0
  272. package/dist/esm/views/ThemeReset.js.map +7 -0
  273. package/dist/jsx/Tamagui.js +41 -0
  274. package/dist/jsx/ThemeContext.js +5 -0
  275. package/dist/jsx/ThemeManager.js +186 -0
  276. package/dist/jsx/conf.js +35 -0
  277. package/dist/jsx/constants/constants.js +17 -0
  278. package/dist/jsx/constants/platform.js +25 -0
  279. package/dist/jsx/constants/pseudos.js +17 -0
  280. package/dist/jsx/constants/rnw.js +23 -0
  281. package/dist/jsx/contexts/ButtonInsideButtonContext.js +5 -0
  282. package/dist/jsx/createComponent.js +592 -0
  283. package/dist/jsx/createFont.js +27 -0
  284. package/dist/jsx/createShorthands.js +9 -0
  285. package/dist/jsx/createTamagui.js +201 -0
  286. package/dist/jsx/createTheme.js +6 -0
  287. package/dist/jsx/createTokens.js +28 -0
  288. package/dist/jsx/createVariable.js +48 -0
  289. package/dist/jsx/defaultComponentState.js +0 -0
  290. package/dist/jsx/helpers/RNComponents.js +11 -0
  291. package/dist/jsx/helpers/addStylesUsingClassname.js +63 -0
  292. package/dist/jsx/helpers/areEqualSets.js +15 -0
  293. package/dist/jsx/helpers/createMediaStyle.js +30 -0
  294. package/dist/jsx/helpers/createPropMapper.js +205 -0
  295. package/dist/jsx/helpers/createShallowUpdate.js +18 -0
  296. package/dist/jsx/helpers/createTamaguiProvider.js +34 -0
  297. package/dist/jsx/helpers/extendStaticConfig.js +61 -0
  298. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  299. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  300. package/dist/jsx/helpers/getExpandedShorthands.js +18 -0
  301. package/dist/jsx/helpers/getSize.js +12 -0
  302. package/dist/jsx/helpers/getSplitStyles.js +277 -0
  303. package/dist/jsx/helpers/getStylesAtomic.js +130 -0
  304. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  305. package/dist/jsx/helpers/getThemeParentClassName.js +10 -0
  306. package/dist/jsx/helpers/insertStyleRule.js +93 -0
  307. package/dist/jsx/helpers/isObj.js +6 -0
  308. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  309. package/dist/jsx/helpers/matchMedia.js +17 -0
  310. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  311. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  312. package/dist/jsx/helpers/themeable.js +24 -0
  313. package/dist/jsx/helpers/validate.js +75 -0
  314. package/dist/jsx/helpers/withStaticProperties.js +9 -0
  315. package/dist/jsx/helpers/wrapThemeManagerContext.js +10 -0
  316. package/dist/jsx/hooks/useConstant.js +14 -0
  317. package/dist/jsx/hooks/useFeatures.js +167 -0
  318. package/dist/jsx/hooks/useIsMounted.js +18 -0
  319. package/dist/jsx/hooks/useIsTouchDevice.js +16 -0
  320. package/dist/jsx/hooks/useMedia.js +159 -0
  321. package/dist/jsx/hooks/usePressable.js +13 -0
  322. package/dist/jsx/hooks/useTheme.js +177 -0
  323. package/dist/jsx/hooks/useUnmountEffect.js +10 -0
  324. package/dist/jsx/index.js +51 -0
  325. package/dist/jsx/static/postProcessStyles.js +17 -0
  326. package/dist/jsx/static.js +16 -0
  327. package/dist/jsx/styled.js +44 -0
  328. package/dist/jsx/tamagui-base.css +10 -0
  329. package/dist/jsx/types-rnw.js +0 -0
  330. package/dist/jsx/types.js +0 -0
  331. package/dist/jsx/views/Animated.js +74 -0
  332. package/dist/jsx/views/Stack.js +12 -0
  333. package/dist/jsx/views/Text.js +61 -0
  334. package/dist/jsx/views/TextAncestorContext.js +15 -0
  335. package/dist/jsx/views/Theme.js +31 -0
  336. package/dist/jsx/views/ThemeContext.js +5 -0
  337. package/dist/jsx/views/ThemeInverse.js +22 -0
  338. package/dist/jsx/views/ThemeManagerContext.js +61 -0
  339. package/dist/jsx/views/ThemeProvider.js +35 -0
  340. package/dist/jsx/views/ThemeReset.js +34 -0
  341. package/package.json +22 -19
  342. package/types/Tamagui.d.ts +30 -0
  343. package/types/Tamagui.d.ts.map +1 -0
  344. package/types/ThemeContext.d.ts +7 -0
  345. package/types/ThemeContext.d.ts.map +1 -0
  346. package/types/ThemeManager.d.ts +49 -0
  347. package/types/ThemeManager.d.ts.map +1 -0
  348. package/types/conf.d.ts +27 -0
  349. package/types/conf.d.ts.map +1 -0
  350. package/{dist/packages/core/src → types}/constants/constants.d.ts +2 -0
  351. package/types/constants/constants.d.ts.map +1 -0
  352. package/{dist/packages/core/src → types}/constants/platform.d.ts +3 -0
  353. package/types/constants/platform.d.ts.map +1 -0
  354. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  355. package/types/constants/rnw.d.ts.map +1 -0
  356. package/types/contexts/ButtonInsideButtonContext.d.ts +3 -0
  357. package/types/contexts/ButtonInsideButtonContext.d.ts.map +1 -0
  358. package/types/createComponent.d.ts +19 -0
  359. package/types/createComponent.d.ts.map +1 -0
  360. package/types/createFont.d.ts +3 -0
  361. package/types/createFont.d.ts.map +1 -0
  362. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  363. package/types/createShorthands.d.ts.map +1 -0
  364. package/types/createTamagui.d.ts +18 -0
  365. package/types/createTamagui.d.ts.map +1 -0
  366. package/types/createTheme.d.ts +7 -0
  367. package/types/createTheme.d.ts.map +1 -0
  368. package/{dist/packages/core/src → types}/createTokens.d.ts +0 -16
  369. package/types/createTokens.d.ts.map +1 -0
  370. package/types/createVariable.d.ts +20 -0
  371. package/types/createVariable.d.ts.map +1 -0
  372. package/types/defaultComponentState.d.ts +1 -0
  373. package/types/defaultComponentState.d.ts.map +1 -0
  374. package/types/helpers/RNComponents.d.ts +2 -0
  375. package/types/helpers/RNComponents.d.ts.map +1 -0
  376. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  377. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  378. package/types/helpers/areEqualSets.d.ts +2 -0
  379. package/types/helpers/areEqualSets.d.ts.map +1 -0
  380. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +1 -1
  381. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  382. package/types/helpers/createPropMapper.d.ts +4 -0
  383. package/types/helpers/createPropMapper.d.ts.map +1 -0
  384. package/types/helpers/createShallowUpdate.d.ts +4 -0
  385. package/types/helpers/createShallowUpdate.d.ts.map +1 -0
  386. package/types/helpers/createTamaguiProvider.d.ts +7 -0
  387. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  388. package/types/helpers/extendStaticConfig.d.ts +4 -0
  389. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  390. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  391. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  392. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  393. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  394. package/types/helpers/getExpandedShorthands.d.ts +3 -0
  395. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  396. package/types/helpers/getSize.d.ts +3 -0
  397. package/types/helpers/getSize.d.ts.map +1 -0
  398. package/types/helpers/getSplitStyles.d.ts +19 -0
  399. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  400. package/types/helpers/getStylesAtomic.d.ts +27 -0
  401. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  402. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  403. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  404. package/types/helpers/insertStyleRule.d.ts +8 -0
  405. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  406. package/types/helpers/isObj.d.ts +2 -0
  407. package/types/helpers/isObj.d.ts.map +1 -0
  408. package/types/helpers/isTamaguiElement.d.ts +3 -0
  409. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  410. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  411. package/types/helpers/matchMedia.d.ts.map +1 -0
  412. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  413. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  414. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  415. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  416. package/types/helpers/themeable.d.ts +12 -0
  417. package/types/helpers/themeable.d.ts.map +1 -0
  418. package/types/helpers/validate.d.ts +4 -0
  419. package/types/helpers/validate.d.ts.map +1 -0
  420. package/types/helpers/withStaticProperties.d.ts +2 -0
  421. package/types/helpers/withStaticProperties.d.ts.map +1 -0
  422. package/types/helpers/wrapThemeManagerContext.d.ts +3 -0
  423. package/types/helpers/wrapThemeManagerContext.d.ts.map +1 -0
  424. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  425. package/types/hooks/useConstant.d.ts.map +1 -0
  426. package/types/hooks/useFeatures.d.ts +18 -0
  427. package/types/hooks/useFeatures.d.ts.map +1 -0
  428. package/types/hooks/useIsMounted.d.ts +3 -0
  429. package/types/hooks/useIsMounted.d.ts.map +1 -0
  430. package/types/hooks/useIsTouchDevice.d.ts +2 -0
  431. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  432. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +2 -6
  433. package/types/hooks/useMedia.d.ts.map +1 -0
  434. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  435. package/types/hooks/usePressable.d.ts.map +1 -0
  436. package/types/hooks/useTheme.d.ts +36 -0
  437. package/types/hooks/useTheme.d.ts.map +1 -0
  438. package/types/hooks/useUnmountEffect.d.ts +2 -0
  439. package/types/hooks/useUnmountEffect.d.ts.map +1 -0
  440. package/types/index.d.ts +42 -0
  441. package/types/index.d.ts.map +1 -0
  442. package/{dist/packages/core/src → types}/static.d.ts +7 -2
  443. package/types/static.d.ts.map +1 -0
  444. package/types/styled.d.ts +16 -0
  445. package/types/styled.d.ts.map +1 -0
  446. package/types/types-rnw.d.ts +74 -0
  447. package/types/types-rnw.d.ts.map +1 -0
  448. package/types/types.d.ts +406 -0
  449. package/types/types.d.ts.map +1 -0
  450. package/types/views/Stack.d.ts +4 -0
  451. package/types/views/Stack.d.ts.map +1 -0
  452. package/types/views/Text.d.ts +4 -0
  453. package/types/views/Text.d.ts.map +1 -0
  454. package/types/views/TextAncestorContext.d.ts +5 -0
  455. package/types/views/TextAncestorContext.d.ts.map +1 -0
  456. package/types/views/Theme.d.ts +12 -0
  457. package/types/views/Theme.d.ts.map +1 -0
  458. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  459. package/types/views/ThemeInverse.d.ts.map +1 -0
  460. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +1 -1
  461. package/types/views/ThemeProvider.d.ts.map +1 -0
  462. package/types/views/ThemeReset.d.ts +4 -0
  463. package/types/views/ThemeReset.d.ts.map +1 -0
  464. package/LICENSE +0 -21
  465. package/dist/constants/constants.js.map +0 -7
  466. package/dist/constants/platform.js.map +0 -7
  467. package/dist/constants/rnw.js.map +0 -7
  468. package/dist/constants/styleConstants.js +0 -46
  469. package/dist/constants/styleConstants.js.map +0 -7
  470. package/dist/createComponent.js +0 -459
  471. package/dist/createComponent.js.map +0 -7
  472. package/dist/createTamagui.js +0 -166
  473. package/dist/createTamagui.js.map +0 -7
  474. package/dist/createTheme.js +0 -20
  475. package/dist/createTheme.js.map +0 -7
  476. package/dist/createTokens.js.map +0 -7
  477. package/dist/createVariable.js +0 -25
  478. package/dist/createVariable.js.map +0 -7
  479. package/dist/helpers/addStylesUsingClassname.js.map +0 -7
  480. package/dist/helpers/createMediaStyle.js.map +0 -7
  481. package/dist/helpers/createPropMapper.js +0 -153
  482. package/dist/helpers/createPropMapper.js.map +0 -7
  483. package/dist/helpers/createTamaguiProvider.js +0 -25
  484. package/dist/helpers/createTamaguiProvider.js.map +0 -7
  485. package/dist/helpers/extendStaticConfig.js.map +0 -7
  486. package/dist/helpers/fixNativeShadow.native.js +0 -30
  487. package/dist/helpers/fixNativeShadow.native.js.map +0 -7
  488. package/dist/helpers/getSplitStyles.js +0 -148
  489. package/dist/helpers/getSplitStyles.js.map +0 -7
  490. package/dist/helpers/getStylesAtomic.js +0 -83
  491. package/dist/helpers/getStylesAtomic.js.map +0 -7
  492. package/dist/helpers/insertStyleRule.js +0 -24
  493. package/dist/helpers/insertStyleRule.js.map +0 -7
  494. package/dist/helpers/isComponent.js +0 -10
  495. package/dist/helpers/isComponent.js.map +0 -7
  496. package/dist/helpers/isTamaguiComponent.js +0 -10
  497. package/dist/helpers/isTamaguiComponent.js.map +0 -7
  498. package/dist/helpers/matchMedia.js.map +0 -7
  499. package/dist/helpers/matchMedia.native.js.map +0 -7
  500. package/dist/helpers/pseudos.js +0 -1
  501. package/dist/helpers/themeable.js.map +0 -7
  502. package/dist/helpers/validate.js +0 -60
  503. package/dist/helpers/validate.js.map +0 -7
  504. package/dist/helpers/validateConfig.js +0 -46
  505. package/dist/helpers/validateConfig.js.map +0 -7
  506. package/dist/helpers/validateTokens.js +0 -29
  507. package/dist/helpers/validateTokens.js.map +0 -7
  508. package/dist/hooks/useFeatures.js +0 -75
  509. package/dist/hooks/useFeatures.js.map +0 -7
  510. package/dist/hooks/useForceUpdate.js +0 -28
  511. package/dist/hooks/useForceUpdate.js.map +0 -7
  512. package/dist/hooks/useMedia.js.map +0 -7
  513. package/dist/hooks/useTheme.js +0 -93
  514. package/dist/hooks/useTheme.js.map +0 -7
  515. package/dist/index.cjs +0 -2211
  516. package/dist/index.cjs.map +0 -7
  517. package/dist/index.js.map +0 -7
  518. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  519. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  520. package/dist/packages/core/src/constants/pseudos.d.ts +0 -15
  521. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  522. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  523. package/dist/packages/core/src/createComponent.d.ts +0 -16
  524. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  525. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  526. package/dist/packages/core/src/createTamagui.d.ts +0 -37
  527. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  528. package/dist/packages/core/src/createTheme.d.ts +0 -5
  529. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  530. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  531. package/dist/packages/core/src/createVariable.d.ts +0 -14
  532. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  533. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  534. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  535. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  536. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts +0 -5
  537. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  538. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts +0 -5
  539. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  540. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  541. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +0 -2
  542. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  543. package/dist/packages/core/src/helpers/getSplitStyles.d.ts +0 -15
  544. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  545. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  546. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  547. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  548. package/dist/packages/core/src/helpers/insertStyleRule.d.ts +0 -2
  549. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  550. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  551. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  552. package/dist/packages/core/src/helpers/themeable.d.ts +0 -10
  553. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  554. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  555. package/dist/packages/core/src/hooks/useFeatures.d.ts +0 -5
  556. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  557. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  558. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  559. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  560. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  561. package/dist/packages/core/src/hooks/useTheme.d.ts +0 -18
  562. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  563. package/dist/packages/core/src/index.d.ts +0 -27
  564. package/dist/packages/core/src/index.d.ts.map +0 -1
  565. package/dist/packages/core/src/static/postProcessStyles.d.ts +0 -7
  566. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  567. package/dist/packages/core/src/static.d.ts.map +0 -1
  568. package/dist/packages/core/src/styled.d.ts +0 -16
  569. package/dist/packages/core/src/styled.d.ts.map +0 -1
  570. package/dist/packages/core/src/types.d.ts +0 -305
  571. package/dist/packages/core/src/types.d.ts.map +0 -1
  572. package/dist/packages/core/src/views/Animated.d.ts +0 -15
  573. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  574. package/dist/packages/core/src/views/Stack.d.ts +0 -3
  575. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  576. package/dist/packages/core/src/views/Text.d.ts +0 -3
  577. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  578. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  579. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  580. package/dist/packages/core/src/views/Theme.d.ts +0 -8
  581. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  582. package/dist/packages/core/src/views/ThemeContext.d.ts +0 -18
  583. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  584. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  585. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  586. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  587. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  588. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  589. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  590. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  591. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  592. package/dist/packages/helpers/src/index.d.ts +0 -5
  593. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  594. package/dist/packages/helpers/src/types.d.ts +0 -8
  595. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  596. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  597. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  598. package/dist/static.js.map +0 -7
  599. package/dist/styled.js +0 -21
  600. package/dist/styled.js.map +0 -7
  601. package/dist/views/SafeAreaProvider.js +0 -30
  602. package/dist/views/SafeAreaProvider.js.map +0 -7
  603. package/dist/views/Stack.js.map +0 -7
  604. package/dist/views/Text.js.map +0 -7
  605. package/dist/views/TextAncestorContext.js +0 -18
  606. package/dist/views/TextAncestorContext.js.map +0 -7
  607. package/dist/views/Theme.js +0 -65
  608. package/dist/views/Theme.js.map +0 -7
  609. package/dist/views/ThemeManagerContext.js.map +0 -7
  610. package/dist/views/ThemeProvider.js +0 -45
  611. package/dist/views/ThemeProvider.js.map +0 -7
  612. package/src/constants/constants.ts +0 -12
  613. package/src/constants/platform.ts +0 -15
  614. package/src/constants/pseudos.ts +0 -14
  615. package/src/constants/rnw.tsx +0 -20
  616. package/src/createComponent.tsx +0 -608
  617. package/src/createFont.ts +0 -31
  618. package/src/createShorthands.ts +0 -5
  619. package/src/createTamagui.ts +0 -215
  620. package/src/createTheme.ts +0 -19
  621. package/src/createTokens.ts +0 -88
  622. package/src/createVariable.ts +0 -26
  623. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  624. package/src/helpers/createMediaStyle.ts +0 -46
  625. package/src/helpers/createPropMapper.ts +0 -184
  626. package/src/helpers/createTamaguiProvider.tsx +0 -22
  627. package/src/helpers/extendStaticConfig.ts +0 -68
  628. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  629. package/src/helpers/fixNativeShadow.tsx +0 -2
  630. package/src/helpers/getSplitStyles.tsx +0 -197
  631. package/src/helpers/getStylesAtomic.native.ts +0 -3
  632. package/src/helpers/getStylesAtomic.ts +0 -103
  633. package/src/helpers/insertStyleRule.tsx +0 -18
  634. package/src/helpers/isObj.ts +0 -1
  635. package/src/helpers/isTamaguiElement.tsx +0 -5
  636. package/src/helpers/matchMedia.native.ts +0 -3
  637. package/src/helpers/matchMedia.ts +0 -9
  638. package/src/helpers/themeable.tsx +0 -42
  639. package/src/helpers/validate.ts +0 -59
  640. package/src/hooks/useConstant.tsx +0 -10
  641. package/src/hooks/useFeatures.tsx +0 -78
  642. package/src/hooks/useMedia.tsx +0 -194
  643. package/src/hooks/usePressable.tsx +0 -9
  644. package/src/hooks/useTheme.tsx +0 -107
  645. package/src/index.ts +0 -32
  646. package/src/static/postProcessStyles.tsx +0 -20
  647. package/src/static.ts +0 -22
  648. package/src/styled.ts +0 -82
  649. package/src/types.tsx +0 -562
  650. package/src/views/Animated.tsx +0 -121
  651. package/src/views/Stack.tsx +0 -21
  652. package/src/views/Text.tsx +0 -66
  653. package/src/views/TextAncestorContext.tsx +0 -12
  654. package/src/views/Theme.tsx +0 -90
  655. package/src/views/ThemeContext.tsx +0 -5
  656. package/src/views/ThemeInverse.tsx +0 -22
  657. package/src/views/ThemeManagerContext.tsx +0 -60
  658. package/src/views/ThemeProvider.tsx +0 -52
  659. package/types.d.ts +0 -556
@@ -1,68 +0,0 @@
1
- import React from 'react'
2
-
3
- import { StaticComponent, StaticConfig, StaticConfigParsed } from '../types'
4
- import { createPropMapper } from './createPropMapper'
5
-
6
- export function extendStaticConfig(
7
- // can be undefined when loading with @tamagui/fake-react-native
8
- // could be fixed a bit cleaner
9
- Component?: StaticComponent | React.Component<any>,
10
- config: StaticConfig = {}
11
- ): StaticConfigParsed | null {
12
- const parent = (Component || {}) as any
13
- if (!parent.staticConfig) {
14
- // if no static config, we are extending an external component
15
- parent.staticConfig = {
16
- Component,
17
- }
18
- }
19
-
20
- const variants = {
21
- ...parent.staticConfig.variants,
22
- }
23
-
24
- // merge variants without clobbering previous... can we tho (typed??
25
- if (config.variants) {
26
- for (const key in config.variants) {
27
- if (variants[key]) {
28
- variants[key] = {
29
- ...variants[key],
30
- ...config.variants[key],
31
- }
32
- } else {
33
- variants[key] = config.variants[key]
34
- }
35
- }
36
- }
37
-
38
- return parseStaticConfig({
39
- ...parent.staticConfig,
40
- isZStack: config.isZStack || parent.staticConfig.isZStack,
41
- variants,
42
- isText: config.isText || parent.staticConfig.isText || false,
43
- neverFlatten: config.neverFlatten ?? parent.staticConfig.neverFlatten,
44
- ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,
45
- validStyles: config.validStyles
46
- ? {
47
- ...parent.staticConfig.validStyles,
48
- ...config.validStyles,
49
- }
50
- : parent.staticConfig.validStyles,
51
- validPropsExtra: {
52
- ...parent.staticConfig.validPropsExtra,
53
- ...config.validPropsExtra,
54
- },
55
- defaultProps: {
56
- ...parent.staticConfig.defaultProps,
57
- ...config.defaultProps,
58
- },
59
- })
60
- }
61
-
62
- export const parseStaticConfig = (config: StaticConfig): StaticConfigParsed => {
63
- return {
64
- ...config,
65
- parsed: true,
66
- propMapper: createPropMapper(config),
67
- }
68
- }
@@ -1,27 +0,0 @@
1
- const matchRgba =
2
- /rgba\(\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*,\s*([\d\.]{1,})\s*\)$/
3
-
4
- export function fixNativeShadow(props: any) {
5
- if (props.shadowColor) {
6
- if (!!!('shadowOffset' in props)) {
7
- // fixes some broken shadows
8
- props.shadowOffset = {
9
- width: 0,
10
- height: 0,
11
- }
12
- }
13
- if (!!!('shadowOpacity' in props)) {
14
- const c = `${props.shadowColor}`
15
- // react native has issues sometimes with rgba()
16
- if (c[0] === 'r' && c[3] === 'a') {
17
- const [_, r, g, b, a] = c.match(matchRgba) || []
18
- if (typeof a !== 'string') {
19
- console.warn('non valid rgba', c)
20
- return props
21
- }
22
- props.shadowColor = `rgb(${r},${g},${b})`
23
- props.shadowOpacity = +a
24
- }
25
- }
26
- }
27
- }
@@ -1,2 +0,0 @@
1
- // only native of course
2
- export const fixNativeShadow = (a: any) => {}
@@ -1,197 +0,0 @@
1
- import {
2
- AllRules,
3
- stylePropsText,
4
- stylePropsTransform,
5
- validStyles,
6
- validStylesPseudo,
7
- } from '@tamagui/helpers'
8
- import { ViewStyle } from 'react-native'
9
-
10
- import { isWeb } from '../constants/platform'
11
- import { mediaQueryConfig } from '../hooks/useMedia'
12
- import { StaticConfigParsed, ThemeObject } from '../types'
13
- import { createMediaStyle } from './createMediaStyle'
14
- import { fixNativeShadow } from './fixNativeShadow'
15
- import { getStylesAtomic } from './getStylesAtomic'
16
- import { insertStyleRule } from './insertStyleRule'
17
-
18
- export type SplitStyles = ReturnType<typeof getSplitStyles>
19
-
20
- // TODO run over this, should be able to cut it down quite a bit
21
-
22
- export const getSplitStyles = (
23
- props: { [key: string]: any },
24
- staticConfig: StaticConfigParsed,
25
- theme: ThemeObject,
26
- isSplittingDefaultProps?: boolean
27
- ) => {
28
- const validStyleProps = staticConfig.isText ? stylePropsText : validStyles
29
- const viewProps: Record<string, any> = {}
30
- const style: any[] = []
31
-
32
- let pseudos: { hoverStyle?: ViewStyle; pressStyle?: ViewStyle } | null = null
33
- let cur: ViewStyle | null = null
34
- let classNames: string[] | null = null
35
-
36
- for (const keyInit in props) {
37
- // be sure to sync next few lines below to getSubStyle (*1)
38
- const valInit = props[keyInit]
39
-
40
- // media
41
- if (keyInit[0] === '$') {
42
- const mediaKey = keyInit.slice(1)
43
-
44
- if (!mediaQueryConfig[mediaKey]) {
45
- // this isn't a media key, pass through
46
- viewProps[keyInit] = valInit
47
- continue
48
- }
49
-
50
- // dont check if media is active, we just apply *all* media styles
51
- // we combine the media props on top regular props, could proxy this
52
- // TODO test proxy here instead of merge
53
- const mediaProps = { ...props, ...valInit }
54
- // TODO media + hover
55
- const mediaStyle = getSubStyle(valInit, staticConfig, theme, props)
56
- const mediaStyles = getStylesAtomic(mediaStyle)
57
- if (process.env.NODE_ENV === 'development') {
58
- if (props['debug']) {
59
- console.log('mediaStyles', keyInit, { mediaProps, mediaStyle, mediaStyles })
60
- }
61
- }
62
- for (const style of mediaStyles) {
63
- if (isWeb) {
64
- const out = createMediaStyle(style, mediaKey, mediaQueryConfig)
65
- classNames = classNames || []
66
- classNames.push(out.identifier)
67
- AllRules.add(out.styleRule)
68
- insertStyleRule(out.styleRule)
69
- if (process.env.NODE_ENV === 'development' && props['debug']) {
70
- console.log('mediaProp', style.identifier, out, mediaProps, mediaStyle, mediaStyles)
71
- }
72
- } else {
73
- console.log('TODO native media style logic')
74
- }
75
- }
76
- continue
77
- }
78
-
79
- // pseudo
80
- if (validStylesPseudo[keyInit]) {
81
- if (!valInit) continue
82
- pseudos = pseudos || {}
83
- pseudos[keyInit] = getSubStyle(valInit, staticConfig, theme, props)
84
- continue
85
- }
86
-
87
- const out = staticConfig.propMapper(keyInit, valInit, theme, props)
88
-
89
- const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out)
90
-
91
- for (const [key, val] of expanded) {
92
- // const val = valueMap(valInit) ?? valInit
93
- const keyFirstChar = key[0]
94
- if (key === 'style' || (keyFirstChar === '_' && key.startsWith('_style'))) {
95
- if (cur) {
96
- // process last
97
- fixNativeShadow(cur)
98
- style.push(cur)
99
- cur = null
100
- }
101
- fixNativeShadow(val)
102
- style.push(val)
103
- continue
104
- }
105
- // expand flex so it merged with flexShrink etc properly
106
- // TODO this shouldn't be here...
107
- if (key === 'flex') {
108
- cur = cur || {}
109
- // see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex
110
- // TODO this fixed a behavior but need to find / document / test
111
- Object.assign(cur, {
112
- flexGrow: val,
113
- flexShrink: 1,
114
- })
115
- continue
116
- }
117
- if (!isWeb && key === 'pointerEvents') {
118
- viewProps[key] = val
119
- continue
120
- }
121
- if (validStyleProps[key]) {
122
- // transforms
123
- if (key in stylePropsTransform) {
124
- cur = cur || {}
125
- mergeTransform(cur, key, val)
126
- continue
127
- }
128
- cur = cur || {}
129
- cur[key] = val
130
- continue
131
- }
132
-
133
- // pass to view props
134
- if (!staticConfig.variants || !(key in staticConfig.variants)) {
135
- viewProps[key] = val
136
- }
137
- }
138
- }
139
- // push last style
140
- if (cur) {
141
- fixNativeShadow(cur)
142
- style.push(cur)
143
- }
144
-
145
- if (process.env.NODE_ENV === 'development') {
146
- if (props['debug']) {
147
- console.log(' 🥚 splitProps:', { props, viewProps, style })
148
- }
149
- }
150
-
151
- return {
152
- viewProps,
153
- style,
154
- pseudos,
155
- classNames,
156
- }
157
- }
158
-
159
- const getSubStyle = (
160
- styleIn: Object,
161
- staticConfig: StaticConfigParsed,
162
- theme: ThemeObject,
163
- props: any
164
- ): ViewStyle => {
165
- const styleOut: ViewStyle = {}
166
- for (const key in styleIn) {
167
- // be sure to sync next few lines below to loop above (*1)
168
- const val = styleIn[key]
169
- const out = staticConfig.propMapper(key, val, theme, props)
170
- const expanded = out === true || !out ? [[key, val]] : Object.entries(out)
171
- for (const [skey, sval] of expanded) {
172
- // const sval = valueMap(valInit)
173
- if (skey in stylePropsTransform) {
174
- mergeTransform(styleOut, skey, sval)
175
- } else {
176
- styleOut[skey] = sval
177
- }
178
- }
179
- }
180
- fixNativeShadow(styleOut)
181
- return styleOut
182
- }
183
-
184
- const mapTransformKeys = {
185
- x: 'translateX',
186
- y: 'translateY',
187
- }
188
-
189
- const mergeTransform = (obj: ViewStyle, key: string, val: any) => {
190
- const transform: any[] = obj.transform
191
- ? Array.isArray(obj.transform)
192
- ? obj.transform
193
- : [obj.transform]
194
- : []
195
- transform.push({ [mapTransformKeys[key] || key]: val })
196
- obj.transform = transform
197
- }
@@ -1,3 +0,0 @@
1
- export function getStylesAtomic() {
2
- console.warn('no-op native')
3
- }
@@ -1,103 +0,0 @@
1
- import { AllRules, StyleObject } from '@tamagui/helpers'
2
- import { ViewStyle } from 'react-native'
3
-
4
- import { pseudos } from '../constants/pseudos'
5
- import { rnw } from '../constants/rnw'
6
-
7
- const generateStyle = (style: any) => {
8
- const { atomic, createCompileableStyle, createReactDOMStyle, i18Style } = rnw
9
- return {
10
- ...atomic(createCompileableStyle(createReactDOMStyle(i18Style(style)))),
11
- }
12
- }
13
-
14
- const borderDefaults = {
15
- borderWidth: 'borderStyle',
16
- borderBottomWidth: 'borderBottomStyle',
17
- borderTopWidth: 'borderTopStyle',
18
- borderLeftWidth: 'borderLeftStyle',
19
- borderRightWidth: 'borderRightStyle',
20
- }
21
-
22
- export function getStylesAtomic(style: any, avoidCollection = false) {
23
- const styles: { [key: string]: ViewStyle } = {
24
- base: {},
25
- }
26
- // split pseudos
27
- for (const key in style) {
28
- if (!!pseudos[key]) {
29
- styles[key] = style[key]
30
- } else {
31
- styles.base[key] = style[key]
32
- }
33
- }
34
- return Object.keys(styles)
35
- .map((key) => {
36
- return getAtomicStyle(styles[key], pseudos[key], avoidCollection)
37
- })
38
- .flat()
39
- }
40
-
41
- const importantRegex = /\!important*/g
42
-
43
- function getAtomicStyle(
44
- style: ViewStyle,
45
- pseudo?: { name: string; priority: number },
46
- avoidCollection?: boolean
47
- ): StyleObject[] {
48
- if (style == null || typeof style !== 'object') {
49
- throw new Error(`Wrong style type: "${typeof style}": ${style}`)
50
- }
51
-
52
- // why is this diff from react-native-web!? need to figure out
53
- for (const key in borderDefaults) {
54
- if (key in style) {
55
- style[borderDefaults[key]] = style[borderDefaults[key]] ?? 'solid'
56
- }
57
- }
58
-
59
- const all = generateStyle(style)
60
- return Object.keys(all).map((key) => {
61
- const val = all[key]
62
- const hash = val.identifier.slice(`${val.identifier}`.lastIndexOf('-') + 1)
63
- // pseudos have a `--` to be easier to find with concatClassNames
64
- const psuedoPrefix = pseudo ? `-${pseudo.name}-` : ''
65
- const identifier = `_${val.property}-${psuedoPrefix}${hash}`
66
- const className = `.${identifier}`
67
- const rules = val.rules.map((rule) => {
68
- if (pseudo) {
69
- const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ':root').join('') + ' '
70
- let res = rule
71
- .replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`)
72
- .replace('{', `:${pseudo.name}{`)
73
-
74
- if (pseudo.name === 'hover') {
75
- // hover styles need to be conditional
76
- // perhaps this can be generalized but for now lets just shortcut
77
- // and hardcode for hover styles, if we need to later we can
78
- // WEIRD SYNTAX, SEE:
79
- // https://stackoverflow.com/questions/40532204/media-query-for-devices-supporting-hover
80
- res = `@media not all and (hover: none) { ${res} }`
81
- }
82
- return res
83
- }
84
- return rule.replace(`.${val.identifier}`, className).replace(importantRegex, '')
85
- })
86
-
87
- if (!avoidCollection) {
88
- if (rules.length > 1) {
89
- console.warn('have never seen more than one, verifying')
90
- }
91
- AllRules.add(rules[0])
92
- }
93
-
94
- const result: StyleObject = {
95
- property: val.property,
96
- value: val.value,
97
- identifier,
98
- className,
99
- rules,
100
- }
101
- return result
102
- })
103
- }
@@ -1,18 +0,0 @@
1
- import { isWeb } from '../constants/platform'
2
-
3
- export function insertStyleRule(rule: string) {
4
- if (typeof window === 'undefined') {
5
- return
6
- }
7
- if (process.env.NODE_ENV === 'development') {
8
- if (!isWeb) {
9
- console.warn('non web platform, dont use this')
10
- return
11
- }
12
- }
13
- const sheet = window.document.styleSheets[0]
14
- if (!sheet) {
15
- return
16
- }
17
- sheet.insertRule(rule, sheet.cssRules.length)
18
- }
@@ -1 +0,0 @@
1
- export const isObj = (x: any) => x && !Array.isArray(x) && typeof x === 'object'
@@ -1,5 +0,0 @@
1
- import React, { isValidElement } from 'react'
2
-
3
- export const isTamaguiElement = (child: any): child is React.ReactElement => {
4
- return isValidElement(child) && !!child.type['staticConfig']?.parsed
5
- }
@@ -1,3 +0,0 @@
1
- import MediaQueryList from '@expo/match-media/build/MediaQueryList.js'
2
-
3
- export const matchMedia = (media: string) => new MediaQueryList(media)
@@ -1,9 +0,0 @@
1
- export const matchMedia =
2
- (typeof window !== 'undefined' && window.matchMedia) ||
3
- (function matchMediaFallback(query: string) {
4
- return {
5
- addListener() {},
6
- removeListener() {},
7
- matches: false,
8
- }
9
- } as any)
@@ -1,42 +0,0 @@
1
- import React, { ReactElement, forwardRef } from 'react'
2
-
3
- import { Theme } from '../views/Theme'
4
- import { ThemeInverse } from '../views/ThemeInverse'
5
-
6
- export type ThemeableProps = {
7
- theme?: string | null
8
- themeInverse?: boolean
9
- }
10
-
11
- export const themeable: ThemeableHOC = function graphql<
12
- R extends ReactElement<any, any> | null,
13
- P extends ThemeableProps = {}
14
- >(component: (props: P) => R) {
15
- const withThemeComponent = forwardRef(function WithTheme({ themeInverse, ...rest }: P, ref) {
16
- const el = React.createElement(component, { ...rest, ref } as any) as R
17
- if (themeInverse) {
18
- return (<ThemeInverse>{el}</ThemeInverse>) as R
19
- }
20
- if (rest.theme) {
21
- return (<Theme name={rest.theme || null}>{el}</Theme>) as R
22
- }
23
- return el
24
- })
25
-
26
- const withTheme: {
27
- (props: P): R
28
- displayName: string
29
- } = withThemeComponent as any
30
-
31
- withTheme.displayName = `Themed(${
32
- (component as any)?.displayName || (component as any)?.name || 'Anonymous'
33
- })`
34
-
35
- return withTheme
36
- }
37
-
38
- export interface ThemeableHOC {
39
- <R extends ReactElement<any, any> | null, P extends ThemeableProps = {}>(
40
- component: (props: P) => R
41
- ): (props: P) => R
42
- }
@@ -1,59 +0,0 @@
1
- // published a patched version that works on native
2
- import ow from '@tamagui/ow'
3
-
4
- export const validateConfig = (conf: any) => {
5
- if (!conf) {
6
- console.warn('no conf?')
7
- return
8
- }
9
- try {
10
- ow(conf, validConfig)
11
- } catch (err: any) {
12
- console.log('Given config:\n', JSON.stringify(conf, null, 2))
13
- throw err
14
- }
15
- }
16
-
17
- const validConfig = ow.object.exactShape({
18
- defaultTheme: ow.optional.string,
19
- disableRootThemeClass: ow.optional.boolean,
20
- shorthands: ow.optional.object.valuesOfType(ow.string),
21
- themes: ow.object.valuesOfType(ow.object),
22
- tokens: ow.object.valuesOfType(ow.object),
23
- media: ow.object.valuesOfType(ow.object),
24
- })
25
-
26
- const validFont = ow.object.exactShape({
27
- family: ow.string,
28
- size: ow.object.nonEmpty.valuesOfType(ow.number),
29
- lineHeight: ow.object.nonEmpty.valuesOfType(ow.number),
30
- weight: ow.object.nonEmpty.valuesOfType(ow.string),
31
- letterSpacing: ow.object.nonEmpty.valuesOfType(ow.number),
32
- })
33
-
34
- const validTokens = ow.object.exactShape({
35
- font: ow.object.valuesOfType(validFont),
36
- size: ow.object.nonEmpty.valuesOfType(ow.number),
37
- space: ow.object.nonEmpty.valuesOfType(ow.number),
38
- zIndex: ow.object.nonEmpty.valuesOfType(ow.number),
39
- radius: ow.object.nonEmpty.valuesOfType(ow.number),
40
- color: ow.object.nonEmpty.valuesOfType(ow.string),
41
- })
42
-
43
- export const validateTokens = (tokens: any) => {
44
- try {
45
- ow(tokens, validTokens)
46
- } catch (err: any) {
47
- console.log('Given tokens:\n', JSON.stringify(tokens, null, 2))
48
- throw err
49
- }
50
- }
51
-
52
- export const validateFont = (font: any) => {
53
- try {
54
- ow(font, validFont)
55
- } catch (err: any) {
56
- console.log('Given font:\n', JSON.stringify(font, null, 2))
57
- throw err
58
- }
59
- }
@@ -1,10 +0,0 @@
1
- import { useRef } from 'react'
2
-
3
- type ResultBox<T> = { v: T }
4
- export function useConstant<T>(fn: () => T): T {
5
- const ref = useRef<ResultBox<T>>()
6
- if (!ref.current) {
7
- ref.current = { v: fn() }
8
- }
9
- return ref.current.v
10
- }
@@ -1,78 +0,0 @@
1
- import React from 'react'
2
-
3
- import { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'
4
- import { addMediaQueryListener, removeMediaQueryListener } from './useMedia'
5
-
6
- // only needed on native
7
- // dynamic loading of features to avoid heavy views
8
-
9
- const createDefinition = ({ Component, propNames }: { Component; propNames: string[] }) => ({
10
- isEnabled: (props: any) => propNames.some((name) => !!props[name]),
11
- Component,
12
- })
13
-
14
- const mediaQueryPropNames = [
15
- '$xs',
16
- '$sm',
17
- '$md',
18
- '$lg',
19
- '$xl',
20
- '$xxl',
21
- '$pointerCoarse',
22
- '$hoverNone',
23
- '$tall',
24
- '$short',
25
- '$gtSm',
26
- '$notXs',
27
- '$gtMd',
28
- '$gtLg',
29
- ]
30
-
31
- const featureDefinitions = {
32
- measureLayout: createDefinition({
33
- Component: (props) => {
34
- console.log('measure', props)
35
- return null
36
- },
37
- propNames: ['onLayout'],
38
- }),
39
-
40
- // will update the parent whenever media query changes
41
- mediaQuery: createDefinition({
42
- Component: (props) => {
43
- if (isWeb) {
44
- // no need for media queries are inserted and run in css
45
- return
46
- }
47
-
48
- const keys = mediaQueryPropNames.flatMap((x) => (x in props ? x.slice(1) : []))
49
- useIsomorphicLayoutEffect(() => {
50
- for (const key of keys) {
51
- addMediaQueryListener(key, props._utils.forceUpdate)
52
- }
53
- return () => {
54
- for (const key of keys) {
55
- removeMediaQueryListener(key, props._utils.forceUpdate)
56
- }
57
- }
58
- }, [keys.join(',')])
59
- return null
60
- },
61
- propNames: mediaQueryPropNames,
62
- }),
63
- }
64
-
65
- const featureNames = Object.keys(featureDefinitions)
66
- const numFeatures = featureNames.length
67
-
68
- export const useFeatures = (props: any, utils?: { forceUpdate?: Function }) => {
69
- const features: JSX.Element[] = []
70
- for (let i = 0; i < numFeatures; i++) {
71
- const name = featureNames[i]
72
- const { isEnabled, Component } = featureDefinitions[name] as any //FeatureDefinition
73
- if (isEnabled(props) && Component) {
74
- features.push(<Component key={name} {...props} _utils={utils} />)
75
- }
76
- }
77
- return features
78
- }