@tamagui/core 1.0.0-alpha.2 → 1.0.0-alpha.23

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 (500) hide show
  1. package/dist/cjs/constants/constants.js +50 -0
  2. package/{_ → dist/cjs}/constants/constants.js.map +2 -2
  3. package/dist/cjs/constants/platform.js +43 -0
  4. package/dist/cjs/constants/platform.js.map +7 -0
  5. package/dist/cjs/constants/pseudos.js +25 -0
  6. package/dist/{constants → cjs/constants}/pseudos.js.map +2 -2
  7. package/dist/cjs/constants/rnw.js +28 -0
  8. package/{_ → dist/cjs}/constants/rnw.js.map +2 -2
  9. package/dist/cjs/createComponent.js +532 -0
  10. package/dist/cjs/createComponent.js.map +7 -0
  11. package/dist/cjs/createFont.js +50 -0
  12. package/dist/cjs/createFont.js.map +7 -0
  13. package/dist/cjs/createShorthands.js +16 -0
  14. package/{_ → dist/cjs}/createShorthands.js.map +2 -2
  15. package/dist/cjs/createTamagui.js +208 -0
  16. package/dist/cjs/createTamagui.js.map +7 -0
  17. package/dist/cjs/createTheme.js +44 -0
  18. package/dist/cjs/createTheme.js.map +7 -0
  19. package/dist/cjs/createTokens.js +55 -0
  20. package/dist/cjs/createTokens.js.map +7 -0
  21. package/dist/cjs/createVariable.js +47 -0
  22. package/dist/cjs/createVariable.js.map +7 -0
  23. package/dist/cjs/helpers/addStylesUsingClassname.js +79 -0
  24. package/dist/cjs/helpers/addStylesUsingClassname.js.map +7 -0
  25. package/dist/cjs/helpers/createMediaStyle.js +56 -0
  26. package/dist/{helpers → cjs/helpers}/createMediaStyle.js.map +2 -2
  27. package/dist/cjs/helpers/createPropMapper.js +197 -0
  28. package/dist/cjs/helpers/createPropMapper.js.map +7 -0
  29. package/dist/cjs/helpers/createTamaguiProvider.js +74 -0
  30. package/dist/cjs/helpers/createTamaguiProvider.js.map +7 -0
  31. package/dist/cjs/helpers/extendStaticConfig.js +82 -0
  32. package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
  33. package/dist/cjs/helpers/fixNativeShadow.js +14 -0
  34. package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
  35. package/dist/cjs/helpers/fixNativeShadow.native.js +36 -0
  36. package/{_ → dist/cjs}/helpers/fixNativeShadow.native.js.map +2 -2
  37. package/dist/cjs/helpers/getSplitStyles.js +180 -0
  38. package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
  39. package/dist/cjs/helpers/getStylesAtomic.js +117 -0
  40. package/dist/cjs/helpers/getStylesAtomic.js.map +7 -0
  41. package/dist/cjs/helpers/getStylesAtomic.native.js +16 -0
  42. package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
  43. package/dist/cjs/helpers/insertStyleRule.js +46 -0
  44. package/dist/{helpers → cjs/helpers}/insertStyleRule.js.map +2 -2
  45. package/dist/cjs/helpers/isObj.js +13 -0
  46. package/dist/cjs/helpers/isObj.js.map +7 -0
  47. package/dist/cjs/helpers/isTamaguiElement.js +33 -0
  48. package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
  49. package/dist/cjs/helpers/matchMedia.js +24 -0
  50. package/dist/cjs/helpers/matchMedia.js.map +7 -0
  51. package/dist/cjs/helpers/matchMedia.native.js +31 -0
  52. package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
  53. package/dist/cjs/helpers/themeable.js +78 -0
  54. package/{_ → dist/cjs}/helpers/themeable.js.map +2 -2
  55. package/dist/cjs/helpers/validate.js +82 -0
  56. package/dist/cjs/helpers/validate.js.map +7 -0
  57. package/dist/cjs/hooks/useConstant.js +37 -0
  58. package/dist/{hooks → cjs/hooks}/useConstant.js.map +2 -2
  59. package/dist/cjs/hooks/useFeatures.js +100 -0
  60. package/dist/cjs/hooks/useFeatures.js.map +7 -0
  61. package/dist/cjs/hooks/useMedia.js +207 -0
  62. package/dist/cjs/hooks/useMedia.js.map +7 -0
  63. package/dist/cjs/hooks/usePressable.js +50 -0
  64. package/{_ → dist/cjs}/hooks/usePressable.js.map +2 -2
  65. package/dist/cjs/hooks/useTheme.js +112 -0
  66. package/dist/cjs/hooks/useTheme.js.map +7 -0
  67. package/dist/cjs/index.js +55 -0
  68. package/dist/cjs/index.js.map +7 -0
  69. package/dist/cjs/static/postProcessStyles.js +40 -0
  70. package/dist/{static → cjs/static}/postProcessStyles.js.map +2 -2
  71. package/dist/cjs/static.js +34 -0
  72. package/dist/cjs/static.js.map +7 -0
  73. package/dist/cjs/styled.js +72 -0
  74. package/dist/cjs/styled.js.map +7 -0
  75. package/dist/cjs/types.js +4 -0
  76. package/dist/cjs/types.js.map +7 -0
  77. package/dist/cjs/views/Animated.js +129 -0
  78. package/dist/{views → cjs/views}/Animated.js.map +2 -2
  79. package/dist/cjs/views/Stack.js +51 -0
  80. package/dist/{views → cjs/views}/Stack.js.map +2 -2
  81. package/dist/cjs/views/Text.js +93 -0
  82. package/dist/cjs/views/Text.js.map +7 -0
  83. package/dist/cjs/views/TextAncestorContext.js +40 -0
  84. package/dist/cjs/views/TextAncestorContext.js.map +7 -0
  85. package/dist/cjs/views/Theme.js +91 -0
  86. package/dist/cjs/views/Theme.js.map +7 -0
  87. package/dist/cjs/views/ThemeContext.js +29 -0
  88. package/dist/{views → cjs/views}/ThemeContext.js.map +2 -2
  89. package/dist/cjs/views/ThemeInverse.js +48 -0
  90. package/dist/{views → cjs/views}/ThemeInverse.js.map +3 -3
  91. package/dist/cjs/views/ThemeManagerContext.js +84 -0
  92. package/dist/cjs/views/ThemeManagerContext.js.map +7 -0
  93. package/dist/cjs/views/ThemeProvider.js +67 -0
  94. package/dist/{views → cjs/views}/ThemeProvider.js.map +2 -2
  95. package/{_ → dist/esm}/constants/constants.js +0 -0
  96. package/dist/{constants → esm/constants}/constants.js.map +1 -1
  97. package/dist/{constants → esm/constants}/platform.js +0 -0
  98. package/dist/{constants → esm/constants}/platform.js.map +1 -1
  99. package/{_ → dist/esm}/constants/pseudos.js +0 -0
  100. package/{_ → dist/esm}/constants/pseudos.js.map +1 -1
  101. package/{_ → dist/esm}/constants/rnw.js +0 -0
  102. package/dist/{constants → esm/constants}/rnw.js.map +1 -1
  103. package/dist/{createComponent.js → esm/createComponent.js} +51 -32
  104. package/dist/esm/createComponent.js.map +7 -0
  105. package/dist/{createFont.js → esm/createFont.js} +4 -0
  106. package/dist/esm/createFont.js.map +7 -0
  107. package/{_ → dist/esm}/createShorthands.js +0 -0
  108. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +1 -1
  109. package/dist/{createTamagui.js → esm/createTamagui.js} +13 -2
  110. package/dist/esm/createTamagui.js.map +7 -0
  111. package/dist/{createTheme.js → esm/createTheme.js} +2 -0
  112. package/dist/esm/createTheme.js.map +7 -0
  113. package/dist/{createTokens.js → esm/createTokens.js} +4 -0
  114. package/dist/esm/createTokens.js.map +7 -0
  115. package/dist/{createVariable.js → esm/createVariable.js} +3 -0
  116. package/dist/{createVariable.js.map → esm/createVariable.js.map} +3 -3
  117. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +0 -0
  118. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js.map +1 -1
  119. package/{_ → dist/esm}/helpers/createMediaStyle.js +0 -0
  120. package/{_ → dist/esm}/helpers/createMediaStyle.js.map +1 -1
  121. package/dist/{helpers → esm/helpers}/createPropMapper.js +16 -9
  122. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  123. package/dist/{helpers → esm/helpers}/createTamaguiProvider.js +0 -0
  124. package/dist/{helpers → esm/helpers}/createTamaguiProvider.js.map +1 -1
  125. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +0 -0
  126. package/dist/{helpers → esm/helpers}/extendStaticConfig.js.map +1 -1
  127. package/{_ → dist/esm}/helpers/fixNativeShadow.js +0 -0
  128. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +1 -1
  129. package/{_ → dist/esm}/helpers/fixNativeShadow.native.js +0 -0
  130. package/dist/{helpers → esm/helpers}/fixNativeShadow.native.js.map +1 -1
  131. package/dist/{helpers → esm/helpers}/getSplitStyles.js +13 -23
  132. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  133. package/dist/{helpers → esm/helpers}/getStylesAtomic.js +0 -0
  134. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  135. package/{_ → dist/esm}/helpers/getStylesAtomic.native.js +0 -0
  136. package/{_ → dist/esm}/helpers/getStylesAtomic.native.js.map +1 -1
  137. package/{_ → dist/esm}/helpers/insertStyleRule.js +0 -0
  138. package/{_ → dist/esm}/helpers/insertStyleRule.js.map +1 -1
  139. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  140. package/dist/{helpers → esm/helpers}/isObj.js.map +1 -1
  141. package/dist/esm/helpers/isTamaguiElement.js +10 -0
  142. package/dist/esm/helpers/isTamaguiElement.js.map +7 -0
  143. package/{_ → dist/esm}/helpers/matchMedia.js +3 -0
  144. package/dist/esm/helpers/matchMedia.js.map +7 -0
  145. package/dist/{helpers → esm/helpers}/matchMedia.native.js +1 -0
  146. package/{_ → dist/esm}/helpers/matchMedia.native.js.map +3 -3
  147. package/dist/{helpers → esm/helpers}/themeable.js +0 -0
  148. package/dist/{helpers → esm/helpers}/themeable.js.map +1 -1
  149. package/dist/esm/helpers/validate.js +60 -0
  150. package/dist/esm/helpers/validate.js.map +7 -0
  151. package/{_ → dist/esm}/hooks/useConstant.js +0 -0
  152. package/{_ → dist/esm}/hooks/useConstant.js.map +1 -1
  153. package/{_ → dist/esm}/hooks/useFeatures.js +39 -51
  154. package/dist/esm/hooks/useFeatures.js.map +7 -0
  155. package/dist/{hooks → esm/hooks}/useMedia.js +6 -4
  156. package/dist/esm/hooks/useMedia.js.map +7 -0
  157. package/dist/{hooks → esm/hooks}/usePressable.js +0 -0
  158. package/dist/{hooks → esm/hooks}/usePressable.js.map +1 -1
  159. package/dist/{hooks → esm/hooks}/useTheme.js +7 -10
  160. package/dist/esm/hooks/useTheme.js.map +7 -0
  161. package/dist/{index.js → esm/index.js} +1 -2
  162. package/dist/{index.js.map → esm/index.js.map} +3 -3
  163. package/{_ → dist/esm}/static/postProcessStyles.js +0 -0
  164. package/{_ → dist/esm}/static/postProcessStyles.js.map +1 -1
  165. package/dist/{static.js → esm/static.js} +0 -0
  166. package/dist/{static.js.map → esm/static.js.map} +1 -1
  167. package/dist/{styled.js → esm/styled.js} +0 -0
  168. package/dist/{styled.js.map → esm/styled.js.map} +1 -1
  169. package/{_ → dist/esm}/types.js +0 -0
  170. package/{_ → dist/esm}/types.js.map +0 -0
  171. package/{_ → dist/esm}/views/Animated.js +0 -0
  172. package/{_ → dist/esm}/views/Animated.js.map +1 -1
  173. package/{_ → dist/esm}/views/Stack.js +0 -0
  174. package/{_ → dist/esm}/views/Stack.js.map +1 -1
  175. package/dist/{views → esm/views}/Text.js +1 -1
  176. package/dist/esm/views/Text.js.map +7 -0
  177. package/{_ → dist/esm}/views/TextAncestorContext.js +7 -9
  178. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  179. package/dist/{views → esm/views}/Theme.js +25 -13
  180. package/dist/esm/views/Theme.js.map +7 -0
  181. package/{_ → dist/esm}/views/ThemeContext.js +0 -0
  182. package/{_ → dist/esm}/views/ThemeContext.js.map +1 -1
  183. package/{_ → dist/esm}/views/ThemeInverse.js +0 -1
  184. package/{_ → dist/esm}/views/ThemeInverse.js.map +3 -3
  185. package/dist/{views → esm/views}/ThemeManagerContext.js +11 -5
  186. package/dist/esm/views/ThemeManagerContext.js.map +7 -0
  187. package/{_ → dist/esm}/views/ThemeProvider.js +0 -0
  188. package/{_ → dist/esm}/views/ThemeProvider.js.map +1 -1
  189. package/dist/{constants → jsx/constants}/constants.js +0 -1
  190. package/{_ → dist/jsx}/constants/platform.js +1 -3
  191. package/dist/{constants → jsx/constants}/pseudos.js +0 -1
  192. package/dist/{constants → jsx/constants}/rnw.js +0 -1
  193. package/{_ → dist/jsx}/createComponent.js +114 -83
  194. package/dist/jsx/createFont.js +27 -0
  195. package/dist/{createShorthands.js → jsx/createShorthands.js} +0 -1
  196. package/{_ → dist/jsx}/createTamagui.js +63 -16
  197. package/{_ → dist/jsx}/createTheme.js +2 -1
  198. package/{_ → dist/jsx}/createTokens.js +4 -1
  199. package/{_ → dist/jsx}/createVariable.js +3 -1
  200. package/dist/jsx/helpers/addStylesUsingClassname.js +56 -0
  201. package/dist/{helpers → jsx/helpers}/createMediaStyle.js +0 -1
  202. package/dist/jsx/helpers/createPropMapper.js +159 -0
  203. package/dist/jsx/helpers/createTamaguiProvider.js +19 -0
  204. package/dist/jsx/helpers/extendStaticConfig.js +58 -0
  205. package/dist/{helpers → jsx/helpers}/fixNativeShadow.js +0 -1
  206. package/dist/{helpers → jsx/helpers}/fixNativeShadow.native.js +0 -1
  207. package/{_ → dist/jsx}/helpers/getSplitStyles.js +18 -29
  208. package/{_ → dist/jsx}/helpers/getStylesAtomic.js +1 -3
  209. package/dist/{helpers → jsx/helpers}/getStylesAtomic.native.js +0 -1
  210. package/dist/{helpers → jsx/helpers}/insertStyleRule.js +0 -1
  211. package/dist/jsx/helpers/isObj.js +6 -0
  212. package/dist/jsx/helpers/isTamaguiElement.js +9 -0
  213. package/dist/{helpers → jsx/helpers}/matchMedia.js +3 -1
  214. package/{_ → dist/jsx}/helpers/matchMedia.native.js +1 -1
  215. package/{_ → dist/jsx}/helpers/themeable.js +3 -6
  216. package/dist/jsx/helpers/validate.js +59 -0
  217. package/dist/{hooks → jsx/hooks}/useConstant.js +0 -1
  218. package/dist/jsx/hooks/useFeatures.js +57 -0
  219. package/{_ → dist/jsx}/hooks/useMedia.js +8 -9
  220. package/{_ → dist/jsx}/hooks/usePressable.js +1 -3
  221. package/{_ → dist/jsx}/hooks/useTheme.js +8 -13
  222. package/{_ → dist/jsx}/index.js +3 -2
  223. package/dist/{static → jsx/static}/postProcessStyles.js +0 -1
  224. package/{_ → dist/jsx}/static.js +3 -1
  225. package/{_ → dist/jsx}/styled.js +2 -3
  226. package/dist/jsx/types.js +0 -0
  227. package/dist/{views → jsx/views}/Animated.js +2 -7
  228. package/dist/{views → jsx/views}/Stack.js +0 -1
  229. package/{_ → dist/jsx}/views/Text.js +1 -2
  230. package/dist/{views → jsx/views}/TextAncestorContext.js +5 -9
  231. package/dist/jsx/views/Theme.js +62 -0
  232. package/dist/{views → jsx/views}/ThemeContext.js +0 -1
  233. package/dist/{views → jsx/views}/ThemeInverse.js +1 -6
  234. package/{_ → dist/jsx}/views/ThemeManagerContext.js +12 -8
  235. package/dist/{views → jsx/views}/ThemeProvider.js +2 -8
  236. package/package.json +18 -11
  237. package/{dist/packages/core/src → types}/constants/constants.d.ts +0 -0
  238. package/types/constants/constants.d.ts.map +1 -0
  239. package/{dist/packages/core/src → types}/constants/platform.d.ts +0 -0
  240. package/types/constants/platform.d.ts.map +1 -0
  241. package/{dist/packages/core/src → types}/constants/pseudos.d.ts +0 -0
  242. package/types/constants/pseudos.d.ts.map +1 -0
  243. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  244. package/types/constants/rnw.d.ts.map +1 -0
  245. package/{dist/packages/core/src → types}/createComponent.d.ts +3 -2
  246. package/types/createComponent.d.ts.map +1 -0
  247. package/types/createFont.d.ts +3 -0
  248. package/types/createFont.d.ts.map +1 -0
  249. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  250. package/types/createShorthands.d.ts.map +1 -0
  251. package/{dist/packages/core/src → types}/createTamagui.d.ts +18 -1
  252. package/types/createTamagui.d.ts.map +1 -0
  253. package/{dist/packages/core/src → types}/createTheme.d.ts +1 -1
  254. package/types/createTheme.d.ts.map +1 -0
  255. package/{dist/packages/core/src → types}/createTokens.d.ts +24 -14
  256. package/types/createTokens.d.ts.map +1 -0
  257. package/{dist/packages/core/src → types}/createVariable.d.ts +1 -0
  258. package/types/createVariable.d.ts.map +1 -0
  259. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  260. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  261. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +0 -0
  262. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  263. package/types/helpers/createPropMapper.d.ts +3 -0
  264. package/types/helpers/createPropMapper.d.ts.map +1 -0
  265. package/{dist/packages/core/src → types}/helpers/createTamaguiProvider.d.ts +0 -0
  266. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  267. package/{dist/packages/core/src → types}/helpers/extendStaticConfig.d.ts +1 -1
  268. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  269. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  270. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  271. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.native.d.ts +0 -0
  272. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  273. package/{dist/packages/core/src → types}/helpers/getSplitStyles.d.ts +0 -0
  274. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  275. package/types/helpers/getStylesAtomic.d.ts +3 -0
  276. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  277. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  278. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  279. package/{dist/packages/core/src → types}/helpers/insertStyleRule.d.ts +0 -0
  280. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  281. package/types/helpers/isObj.d.ts +2 -0
  282. package/types/helpers/isObj.d.ts.map +1 -0
  283. package/types/helpers/isTamaguiElement.d.ts +3 -0
  284. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  285. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  286. package/types/helpers/matchMedia.d.ts.map +1 -0
  287. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  288. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  289. package/{dist/packages/core/src → types}/helpers/themeable.d.ts +0 -0
  290. package/types/helpers/themeable.d.ts.map +1 -0
  291. package/types/helpers/validate.d.ts +4 -0
  292. package/types/helpers/validate.d.ts.map +1 -0
  293. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  294. package/types/hooks/useConstant.d.ts.map +1 -0
  295. package/{dist/packages/core/src → types}/hooks/useFeatures.d.ts +0 -0
  296. package/types/hooks/useFeatures.d.ts.map +1 -0
  297. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +0 -0
  298. package/types/hooks/useMedia.d.ts.map +1 -0
  299. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  300. package/types/hooks/usePressable.d.ts.map +1 -0
  301. package/{dist/packages/core/src → types}/hooks/useTheme.d.ts +3 -1
  302. package/types/hooks/useTheme.d.ts.map +1 -0
  303. package/{dist/packages/core/src → types}/index.d.ts +3 -1
  304. package/types/index.d.ts.map +1 -0
  305. package/{dist/packages/core/src → types}/static/postProcessStyles.d.ts +0 -0
  306. package/types/static/postProcessStyles.d.ts.map +1 -0
  307. package/{dist/packages/core/src → types}/static.d.ts +3 -0
  308. package/types/static.d.ts.map +1 -0
  309. package/types/styled.d.ts +21 -0
  310. package/types/styled.d.ts.map +1 -0
  311. package/{dist/packages/core/src → types}/types.d.ts +71 -70
  312. package/types/types.d.ts.map +1 -0
  313. package/{dist/packages/core/src → types}/views/Animated.d.ts +0 -0
  314. package/types/views/Animated.d.ts.map +1 -0
  315. package/{dist/packages/core/src → types}/views/Stack.d.ts +0 -0
  316. package/types/views/Stack.d.ts.map +1 -0
  317. package/types/views/Text.d.ts +3 -0
  318. package/types/views/Text.d.ts.map +1 -0
  319. package/types/views/TextAncestorContext.d.ts +5 -0
  320. package/types/views/TextAncestorContext.d.ts.map +1 -0
  321. package/{dist/packages/core/src → types}/views/Theme.d.ts +1 -1
  322. package/types/views/Theme.d.ts.map +1 -0
  323. package/{dist/packages/core/src → types}/views/ThemeContext.d.ts +0 -0
  324. package/types/views/ThemeContext.d.ts.map +1 -0
  325. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  326. package/types/views/ThemeInverse.d.ts.map +1 -0
  327. package/types/views/ThemeManagerContext.d.ts +22 -0
  328. package/types/views/ThemeManagerContext.d.ts.map +1 -0
  329. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +0 -0
  330. package/types/views/ThemeProvider.d.ts.map +1 -0
  331. package/.ultra.cache.json +0 -1
  332. package/_/constants/platform.js.map +0 -7
  333. package/_/createComponent.js.map +0 -7
  334. package/_/createTamagui.js.map +0 -7
  335. package/_/createTheme.js.map +0 -7
  336. package/_/createTokens.js.map +0 -7
  337. package/_/createVariable.js.map +0 -7
  338. package/_/helpers/addStylesUsingClassname.js +0 -32
  339. package/_/helpers/addStylesUsingClassname.js.map +0 -7
  340. package/_/helpers/createTamaguiProvider.js +0 -42
  341. package/_/helpers/createTamaguiProvider.js.map +0 -7
  342. package/_/helpers/extendStaticConfig.js +0 -176
  343. package/_/helpers/extendStaticConfig.js.map +0 -7
  344. package/_/helpers/fixNativeShadow.js.map +0 -7
  345. package/_/helpers/getSplitStyles.js.map +0 -7
  346. package/_/helpers/getStylesAtomic.js.map +0 -7
  347. package/_/helpers/matchMedia.js.map +0 -7
  348. package/_/hooks/useFeatures.js.map +0 -7
  349. package/_/hooks/useForceUpdate.js +0 -28
  350. package/_/hooks/useForceUpdate.js.map +0 -7
  351. package/_/hooks/useMedia.js.map +0 -7
  352. package/_/hooks/useTheme.js.map +0 -7
  353. package/_/index.js.map +0 -7
  354. package/_/static.js.map +0 -7
  355. package/_/styled.js.map +0 -7
  356. package/_/views/Text.js.map +0 -7
  357. package/_/views/TextAncestorContext.js.map +0 -7
  358. package/_/views/Theme.js +0 -57
  359. package/_/views/Theme.js.map +0 -7
  360. package/_/views/ThemeManagerContext.js.map +0 -7
  361. package/dist/constants/styleConstants.js +0 -46
  362. package/dist/constants/styleConstants.js.map +0 -7
  363. package/dist/createComponent.js.map +0 -7
  364. package/dist/createFont.js.map +0 -7
  365. package/dist/createTamagui.js.map +0 -7
  366. package/dist/createTheme.js.map +0 -7
  367. package/dist/createTokens.js.map +0 -7
  368. package/dist/helpers/createPropMapper.js.map +0 -7
  369. package/dist/helpers/getSplitStyles.js.map +0 -7
  370. package/dist/helpers/getStylesAtomic.js.map +0 -7
  371. package/dist/helpers/getStylesAtomic.native.js.map +0 -7
  372. package/dist/helpers/matchMedia.js.map +0 -7
  373. package/dist/helpers/matchMedia.native.js.map +0 -7
  374. package/dist/helpers/pseudos.js +0 -1
  375. package/dist/helpers/pseudos.js.map +0 -7
  376. package/dist/hooks/useFeatures.js +0 -75
  377. package/dist/hooks/useFeatures.js.map +0 -7
  378. package/dist/hooks/useForceUpdate.js +0 -28
  379. package/dist/hooks/useForceUpdate.js.map +0 -7
  380. package/dist/hooks/useMedia.js.map +0 -7
  381. package/dist/hooks/useTheme.js.map +0 -7
  382. package/dist/index.cjs +0 -2125
  383. package/dist/index.cjs.map +0 -7
  384. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  385. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  386. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  387. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  388. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  389. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  390. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  391. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  392. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  393. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  394. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  395. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  396. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  397. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  398. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  399. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  400. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  401. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  402. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  403. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  404. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  405. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  406. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  407. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  408. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  409. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  410. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  411. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  412. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  413. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  414. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  415. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  416. package/dist/packages/core/src/index.d.ts.map +0 -1
  417. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  418. package/dist/packages/core/src/static.d.ts.map +0 -1
  419. package/dist/packages/core/src/styled.d.ts +0 -16
  420. package/dist/packages/core/src/styled.d.ts.map +0 -1
  421. package/dist/packages/core/src/types.d.ts.map +0 -1
  422. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  423. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  424. package/dist/packages/core/src/views/Text.d.ts +0 -3
  425. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  426. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  427. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  428. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  429. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  430. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  431. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  432. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  433. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  434. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  435. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  436. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  437. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  438. package/dist/packages/helpers/src/index.d.ts +0 -5
  439. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  440. package/dist/packages/helpers/src/types.d.ts +0 -8
  441. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  442. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  443. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  444. package/dist/types.js +0 -1
  445. package/dist/types.js.map +0 -7
  446. package/dist/views/SafeAreaProvider.js +0 -30
  447. package/dist/views/SafeAreaProvider.js.map +0 -7
  448. package/dist/views/Text.js.map +0 -7
  449. package/dist/views/TextAncestorContext.js.map +0 -7
  450. package/dist/views/Theme.js.map +0 -7
  451. package/dist/views/ThemeManagerContext.js.map +0 -7
  452. package/src/constants/constants.ts +0 -12
  453. package/src/constants/platform.ts +0 -15
  454. package/src/constants/pseudos.ts +0 -14
  455. package/src/constants/rnw.tsx +0 -20
  456. package/src/createComponent.tsx +0 -597
  457. package/src/createFont.ts +0 -26
  458. package/src/createShorthands.ts +0 -5
  459. package/src/createTamagui.ts +0 -207
  460. package/src/createTheme.ts +0 -19
  461. package/src/createTokens.ts +0 -83
  462. package/src/createVariable.ts +0 -22
  463. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  464. package/src/helpers/createMediaStyle.ts +0 -46
  465. package/src/helpers/createPropMapper.ts +0 -184
  466. package/src/helpers/createTamaguiProvider.tsx +0 -22
  467. package/src/helpers/extendStaticConfig.ts +0 -68
  468. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  469. package/src/helpers/fixNativeShadow.tsx +0 -2
  470. package/src/helpers/getSplitStyles.tsx +0 -210
  471. package/src/helpers/getStylesAtomic.native.ts +0 -3
  472. package/src/helpers/getStylesAtomic.ts +0 -103
  473. package/src/helpers/insertStyleRule.tsx +0 -18
  474. package/src/helpers/isObj.ts +0 -1
  475. package/src/helpers/matchMedia.native.ts +0 -3
  476. package/src/helpers/matchMedia.ts +0 -9
  477. package/src/helpers/themeable.tsx +0 -42
  478. package/src/hooks/useConstant.tsx +0 -10
  479. package/src/hooks/useFeatures.tsx +0 -78
  480. package/src/hooks/useForceUpdate.tsx +0 -26
  481. package/src/hooks/useMedia.tsx +0 -194
  482. package/src/hooks/usePressable.tsx +0 -9
  483. package/src/hooks/useTheme.tsx +0 -107
  484. package/src/index.ts +0 -33
  485. package/src/static/postProcessStyles.tsx +0 -20
  486. package/src/static.ts +0 -22
  487. package/src/styled.ts +0 -82
  488. package/src/types.tsx +0 -561
  489. package/src/views/Animated.tsx +0 -121
  490. package/src/views/SafeAreaProvider.tsx +0 -33
  491. package/src/views/Stack.tsx +0 -21
  492. package/src/views/Text.tsx +0 -66
  493. package/src/views/TextAncestorContext.tsx +0 -12
  494. package/src/views/Theme.tsx +0 -73
  495. package/src/views/ThemeContext.tsx +0 -5
  496. package/src/views/ThemeInverse.tsx +0 -23
  497. package/src/views/ThemeManagerContext.tsx +0 -50
  498. package/src/views/ThemeProvider.tsx +0 -52
  499. package/tsconfig.json +0 -8
  500. package/types.d.ts +0 -558
@@ -1,20 +0,0 @@
1
- const interopRequire = (src: any) => ('default' in src ? src.default : src)
2
-
3
- export const rnw: Record<string, any> = {}
4
-
5
- // in static mode, require them directly since we can't import react-native-web at all (it has flow stuff in it)
6
- if (process.env.IS_STATIC === 'is_static') {
7
- const createCompileableStyle = require('react-native-web/dist/cjs/exports/StyleSheet/createCompileableStyle')
8
- const createReactDOMStyle = require('react-native-web/dist/cjs/exports/StyleSheet/createReactDOMStyle')
9
- const i18Style = require('react-native-web/dist/cjs/exports/StyleSheet/i18nStyle')
10
- const atomic = require('react-native-web/dist/cjs/exports/StyleSheet/compile').atomic
11
- Object.assign(rnw, {
12
- createCompileableStyle,
13
- createReactDOMStyle,
14
- i18Style,
15
- atomic,
16
- })
17
- } else if (process.env.TAMAGUI_TARGET === 'web') {
18
- // when targeting web (client) import it like so
19
- Object.assign(rnw, interopRequire(require('react-native-web').TamaguiExports))
20
- }
@@ -1,597 +0,0 @@
1
- import { concatClassName, stylePropsView } from '@tamagui/helpers'
2
- import React, {
3
- Children,
4
- Fragment,
5
- createElement,
6
- forwardRef,
7
- useCallback,
8
- useContext,
9
- useEffect,
10
- useRef,
11
- useState,
12
- } from 'react'
13
- import { StyleSheet, Text, View, ViewStyle } from 'react-native'
14
-
15
- import { stackDefaultStyles } from './constants/constants'
16
- import { isTouchDevice, isWeb } from './constants/platform'
17
- import { rnw } from './constants/rnw'
18
- import { onConfiguredOnce } from './createTamagui'
19
- import { addStylesUsingClassname, useStylesAsClassname } from './helpers/addStylesUsingClassname'
20
- import { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'
21
- import { getSplitStyles } from './helpers/getSplitStyles'
22
- import { useFeatures } from './hooks/useFeatures'
23
- import { useForceUpdate } from './hooks/useForceUpdate'
24
- import { usePressable } from './hooks/usePressable'
25
- import {
26
- SpaceTokens,
27
- StaticComponent,
28
- StaticConfig,
29
- StaticConfigParsed,
30
- TamaguiInternalConfig,
31
- } from './types'
32
- import { TextAncestorContext } from './views/TextAncestorContext'
33
- import { ThemeManagerContext } from './views/ThemeManagerContext'
34
-
35
- export const mouseUps = new Set<Function>()
36
-
37
- if (typeof document !== 'undefined') {
38
- document.addEventListener('mouseup', () => {
39
- mouseUps.forEach((x) => x())
40
- mouseUps.clear()
41
- })
42
- }
43
-
44
- type DefaultProps = {}
45
-
46
- export function createComponent<A extends Object = DefaultProps>(
47
- configIn: Partial<StaticConfig> | StaticConfigParsed
48
- ) {
49
- let staticConfig: StaticConfigParsed
50
- if ('parsed' in configIn) {
51
- staticConfig = configIn
52
- } else {
53
- staticConfig = parseStaticConfig(configIn)
54
- }
55
-
56
- const { Component, validStyles, isText, isZStack } = staticConfig
57
- const validStyleProps = validStyles ?? stylePropsView
58
-
59
- // split out default styles vs props so we can assign it to component.defaultProps
60
- let defaultProps = null as any
61
- let tamaguiConfig: TamaguiInternalConfig
62
-
63
- // web uses className, native uses style
64
- let defaultsStyle: any
65
- let defaultsClassName = ''
66
- let initialTheme: any
67
-
68
- // see onConfiguredOnce below which attaches a name then to this component
69
-
70
- const component = forwardRef<View, A>((props: any, forwardedRef) => {
71
- const {
72
- tag,
73
- hitSlop,
74
- children,
75
- pointerEvents,
76
- onPress,
77
- onPressIn,
78
- onPressOut,
79
- onHoverIn,
80
- onHoverOut,
81
- space,
82
- disabled,
83
- onMouseEnter,
84
- onMouseLeave,
85
- hrefAttrs,
86
- onMoveShouldSetResponder,
87
- onMoveShouldSetResponderCapture,
88
- onResponderEnd,
89
- onResponderGrant,
90
- onResponderMove,
91
- onResponderReject,
92
- onResponderRelease,
93
- onResponderStart,
94
- onResponderTerminate,
95
- onResponderTerminationRequest,
96
- onScrollShouldSetResponder,
97
- onScrollShouldSetResponderCapture,
98
- onSelectionChangeShouldSetResponder,
99
- onSelectionChangeShouldSetResponderCapture,
100
- onStartShouldSetResponder,
101
- onStartShouldSetResponderCapture,
102
- onMouseDown,
103
- onClick,
104
- // TODO feature load layou hook
105
- onLayout,
106
- } = props
107
-
108
- const forceUpdate = useForceUpdate()
109
- const features = useFeatures(props, { forceUpdate })
110
- const manager = useContext(ThemeManagerContext)
111
- const [state, set_] = useState(() => ({
112
- hover: false,
113
- press: false,
114
- pressIn: false,
115
- theme: manager.name,
116
- }))
117
- const set = (next: Partial<typeof state>) =>
118
- set_((prev) => {
119
- for (const key in next) {
120
- if (prev[key] !== next[key]) {
121
- return { ...prev, ...next }
122
- }
123
- }
124
- return prev
125
- })
126
-
127
- // from react-native-web
128
- if (process.env.NODE_ENV === 'development' && !isText && isWeb) {
129
- Children.toArray(props.children).forEach((item) => {
130
- if (typeof item === 'string') {
131
- console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`)
132
- }
133
- })
134
- }
135
-
136
- const hasTextAncestor = isWeb ? useContext(TextAncestorContext) : false
137
- const hostRef = useRef(null)
138
-
139
- if (isWeb) {
140
- // from react-native-web
141
- rnw.useResponderEvents(hostRef, {
142
- onMoveShouldSetResponder,
143
- onMoveShouldSetResponderCapture,
144
- onResponderEnd,
145
- onResponderGrant,
146
- onResponderMove,
147
- onResponderReject,
148
- onResponderRelease,
149
- onResponderStart,
150
- onResponderTerminate,
151
- onResponderTerminationRequest,
152
- onScrollShouldSetResponder,
153
- onScrollShouldSetResponderCapture,
154
- onSelectionChangeShouldSetResponder,
155
- onSelectionChangeShouldSetResponderCapture,
156
- onStartShouldSetResponder,
157
- onStartShouldSetResponderCapture,
158
- })
159
- }
160
-
161
- const isTracking = useRef(false)
162
-
163
- const { viewProps, pseudos, style, classNames } = getSplitStyles(
164
- props,
165
- staticConfig,
166
- (manager.theme as any) || initialTheme
167
- )
168
-
169
- // hasEverHadEvents prevents repareting if you remove onPress or similar...
170
- const internal = useRef<{ isMounted: boolean; hasEverHadEvents?: boolean }>()
171
- if (!internal.current) {
172
- internal.current = {
173
- isMounted: true,
174
- }
175
- }
176
-
177
- useEffect(() => {
178
- internal.current!.isMounted = true
179
- const dispose = manager?.onChangeTheme((name) => {
180
- if (isTracking.current) {
181
- set({ theme: name })
182
- }
183
- })
184
- return () => {
185
- dispose()
186
- mouseUps.delete(unPress)
187
- isTracking.current = false
188
- internal.current!.isMounted = false
189
- }
190
- }, [manager])
191
-
192
- // element
193
- const element = isWeb
194
- ? !Component || typeof Component === 'string'
195
- ? // default to tag, fallback to component (when both strings)
196
- tag || Component
197
- : Component
198
- : Component
199
- const ReactView = !isWeb ? View : element || (hasTextAncestor ? 'span' : 'div')
200
- const ReactText = !isWeb ? Text : element || 'span'
201
- const ViewComponent = isText ? ReactText : ReactView
202
-
203
- // styles
204
- const isHovering = !isTouchDevice && !disabled && pseudos && state.hover
205
- const isPressing = !disabled && pseudos && state.press
206
-
207
- const styles = [
208
- // parity w react-native-web, only for text in text
209
- // TODO this should be able to be done w css to replicate after extraction:
210
- // (.text .text { display: inline-flex; }) (but if they set display we'd need stronger precendence)
211
- // isText && hasTextAncestor && isWeb ? { display: 'inline-flex' } : null,
212
- style,
213
- isHovering ? pseudos.hoverStyle || null : null,
214
- isPressing ? pseudos.pressStyle || null : null,
215
- ]
216
-
217
- if (isWeb) {
218
- const stylesClassNames = useStylesAsClassname(styles)
219
- const classList = isText
220
- ? [
221
- defaultsClassName,
222
- // hasTextAncestor === true && cssText.textHasAncestor,
223
- // TODO MOVE TO VARIANTS [number] [any]
224
- // numberOfLines != null && numberOfLines > 1 && cssText.textMultiLine,
225
- classNames,
226
- stylesClassNames,
227
- props.className,
228
- ]
229
- : [defaultsClassName, props.className, classNames, stylesClassNames]
230
-
231
- // @ts-expect-error
232
- const className = concatClassName(...classList)
233
- if (process.env.NODE_ENV === 'development') {
234
- if (props['debug']) {
235
- // prettier-ignore
236
- console.log('🥚 className', { style, styles, classList, stylesClassNames, className })
237
- }
238
- }
239
- viewProps.className = className
240
- } else {
241
- viewProps.style = styles
242
- }
243
-
244
- if (pointerEvents) {
245
- viewProps.pointerEvents = pointerEvents
246
- }
247
-
248
- if (isWeb) {
249
- // from react-native-web
250
- const platformMethodsRef = rnw.usePlatformMethods(viewProps)
251
- const setRef = rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef)
252
- viewProps.ref = setRef
253
- if (props.href != null && hrefAttrs != null) {
254
- const { download, rel, target } = hrefAttrs
255
- if (download != null) {
256
- viewProps.download = download
257
- }
258
- if (rel != null) {
259
- viewProps.rel = rel
260
- }
261
- if (typeof target === 'string') {
262
- viewProps.target = target.charAt(0) !== '_' ? '_' + target : target
263
- }
264
- }
265
- } else {
266
- if (forwardedRef) {
267
- viewProps.ref = forwardedRef
268
- }
269
- }
270
-
271
- const attachPress = !!(
272
- (pseudos && pseudos.pressStyle) ||
273
- onPress ||
274
- onPressOut ||
275
- onPressIn ||
276
- onClick
277
- )
278
- const attachHover =
279
- isWeb &&
280
- !isTouchDevice &&
281
- !!((pseudos && pseudos.hoverStyle) || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)
282
-
283
- // check presence to prevent reparenting bugs, allows for onPress={x ? function : undefined} usage
284
- // while avoiding reparenting...
285
- // once proper reparenting is supported, we can remove this and use that...
286
- const shouldAttach =
287
- internal.current.hasEverHadEvents ||
288
- attachPress ||
289
- attachHover ||
290
- 'pressStyle' in props ||
291
- 'onPress' in props ||
292
- 'onPressIn' in props ||
293
- 'onPressOut' in props ||
294
- (isWeb &&
295
- ('hoverStyle' in props ||
296
- 'onClick' in props ||
297
- 'onHoverIn' in props ||
298
- 'onHoverOut' in props ||
299
- 'onMouseEnter' in props ||
300
- 'onMouseLeave' in props))
301
-
302
- // never remove events as we wrap in a div (for now, may be able to remove..)
303
- if (shouldAttach) {
304
- internal.current.hasEverHadEvents = true
305
- }
306
-
307
- const unPress = useCallback(() => {
308
- if (!internal.current!.isMounted) return
309
- set({
310
- press: false,
311
- pressIn: false,
312
- })
313
- }, [])
314
-
315
- const events = shouldAttach
316
- ? {
317
- ...(!isWeb && {
318
- // non web
319
- onPressOut: (e) => {
320
- unPress()
321
- onPressOut?.(e)
322
- },
323
- }),
324
- ...(isWeb &&
325
- !isTouchDevice && {
326
- onMouseEnter:
327
- attachHover || attachPress
328
- ? (e) => {
329
- let next: Partial<typeof state> = {}
330
- if (attachHover) {
331
- next.hover = true
332
- }
333
- if (state.pressIn) {
334
- next.press = true
335
- }
336
- if (Object.keys(next).length) {
337
- set(next)
338
- }
339
- onHoverIn?.(e)
340
- onMouseEnter?.(e)
341
- }
342
- : undefined,
343
- onMouseLeave:
344
- attachHover || attachPress
345
- ? (e) => {
346
- let next: Partial<typeof state> = {}
347
- mouseUps.add(unPress)
348
- if (attachHover) {
349
- next.hover = false
350
- }
351
- if (state.pressIn) {
352
- next.press = false
353
- next.pressIn = false
354
- }
355
- if (Object.keys(next).length) {
356
- set(next)
357
- }
358
- onHoverOut?.(e)
359
- onMouseLeave?.(e)
360
- }
361
- : undefined,
362
- }),
363
- onMouseDown: attachPress
364
- ? (e) => {
365
- set({
366
- press: true,
367
- pressIn: true,
368
- })
369
- onPressIn?.(e)
370
- onMouseDown?.(e)
371
- }
372
- : (onPressIn as any),
373
- onClick: attachPress
374
- ? (e) => {
375
- // this caused issue with next.js passing href
376
- // e.preventDefault()
377
- onPress?.(e)
378
- onClick?.(e)
379
- unPress()
380
- onPressOut?.(e)
381
- }
382
- : (onPressOut as any),
383
- }
384
- : null
385
-
386
- if (events) {
387
- if (typeof ViewComponent !== 'string') {
388
- // TODO once we do the above we can then rely entirely on pressStyle returned here isntead of above pressStyle logic
389
- const [pressProps] = usePressable({
390
- disabled,
391
- hitSlop,
392
- onPressIn: events.onMouseDown,
393
- onPressOut: events.onPressOut,
394
- onPress: events.onClick,
395
- })
396
- Object.assign(viewProps, pressProps)
397
- } else {
398
- Object.assign(viewProps, events)
399
- }
400
- }
401
-
402
- const childEls = spacedChildren({
403
- children,
404
- space,
405
- flexDirection: props.flexDirection || defaultProps?.flexDirection,
406
- isZStack: isZStack,
407
- })
408
-
409
- let content: any
410
-
411
- // replicate react-native-web's `createElement`
412
- if (isWeb && rnw) {
413
- const domProps = rnw.createDOMProps(viewProps)
414
- const className =
415
- domProps.className && domProps.className !== viewProps.className
416
- ? `${domProps.className} ${viewProps.className}`
417
- : viewProps.className
418
- Object.assign(viewProps, domProps)
419
- viewProps.className = className
420
- content = createElement(ViewComponent, viewProps, childEls)
421
- } else {
422
- content = createElement(ViewComponent, viewProps, childEls)
423
- }
424
-
425
- const shouldWrapTextAncestor = isWeb && isText && !hasTextAncestor
426
- if (shouldWrapTextAncestor) {
427
- // from react-native-web
428
- // @ts-ignore
429
- content = createElement(TextAncestorContext.Provider, { value: true }, content)
430
- }
431
-
432
- if (process.env.NODE_ENV === 'development') {
433
- if (props['debug']) {
434
- viewProps['debug'] = true
435
- console.log('🥚 props in:', props)
436
- console.log('🥚 props out:', viewProps)
437
- console.log(props.onClick?.toString())
438
- // prettier-ignore
439
- console.log('🥚 etc:', { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls })
440
- // only on browser because node expands it huge
441
- if (isWeb) {
442
- console.log('🥚 component info', { staticConfig, tamaguiConfig })
443
- }
444
- }
445
- }
446
-
447
- return (
448
- <>
449
- {features}
450
- {content}
451
- </>
452
- )
453
- })
454
-
455
- // Once configuration is run and all components are registered
456
- // get default props + className and analyze styles
457
- onConfiguredOnce((conf) => {
458
- tamaguiConfig = conf
459
- initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]
460
- const next = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, true)
461
- if (isWeb) {
462
- if (next.classNames) {
463
- defaultsClassName += next.classNames + ' '
464
- }
465
- defaultsClassName += addStylesUsingClassname([next.style, next.pseudos])
466
- } else {
467
- if (!hasWarnedOnce) {
468
- hasWarnedOnce = true
469
- console.log('⚠️ we need to account for default styles for media queries')
470
- }
471
- }
472
- // @ts-ignore
473
- component.defaultProps = {
474
- ...next.viewProps,
475
- ...component.defaultProps,
476
- }
477
- if (process.env.NODE_ENV === 'development') {
478
- if (staticConfig.defaultProps?.debug) {
479
- console.log('tamagui debug component:', next, defaultsClassName, component.defaultProps)
480
- }
481
- }
482
- })
483
-
484
- component['staticConfig'] = {
485
- validStyles: validStyleProps,
486
- ...staticConfig,
487
- }
488
-
489
- const res = component as any as StaticComponent<A, void>
490
-
491
- // add extractable HoC
492
- res['extractable'] = (Component: any) => {
493
- Component['staticConfig'] = extendStaticConfig(res, {
494
- neverFlatten: true,
495
- defaultProps: Component.defaultProps,
496
- })
497
- return Component
498
- }
499
-
500
- return res
501
- }
502
-
503
- let hasWarnedOnce = false
504
-
505
- // dont used styled() here to avoid circular deps
506
- // keep inline to avoid circular deps
507
-
508
- export const Spacer = createComponent<{ size?: number | SpaceTokens; flex?: boolean | number }>({
509
- defaultProps: {
510
- ...stackDefaultStyles,
511
- size: true,
512
- },
513
- variants: {
514
- size: {
515
- '...size': (size, { tokens }) => {
516
- size = size == true ? '$true' : size
517
- return {
518
- width: tokens.size[size] ?? size,
519
- height: tokens.size[size] ?? size,
520
- }
521
- },
522
- },
523
-
524
- direction: {
525
- horizontal: {
526
- height: 0,
527
- },
528
- vertical: {
529
- width: 0,
530
- },
531
- },
532
- },
533
- })
534
-
535
- export function spacedChildren({
536
- isZStack,
537
- children,
538
- space,
539
- flexDirection,
540
- }: {
541
- isZStack?: boolean
542
- children: any
543
- space?: any
544
- flexDirection?: ViewStyle['flexDirection']
545
- }) {
546
- if (!space && !isZStack) {
547
- return children
548
- }
549
- const childrenList = Children.toArray(children)
550
- const len = childrenList.length
551
- if (len === 1) {
552
- return children
553
- }
554
- const next: any[] = []
555
- for (const [index, child] of childrenList.entries()) {
556
- if (child === null || child === undefined) {
557
- continue
558
- }
559
-
560
- const key = `${child?.['key'] ?? index}`
561
-
562
- next.push(<Fragment key={key}>{isZStack ? <Absolute>{child}</Absolute> : child}</Fragment>)
563
-
564
- // allows for custom visually hidden components that dont insert spacing
565
- if (child?.['type']?.['isVisuallyHidden']) {
566
- continue
567
- }
568
-
569
- if (index !== len - 1) {
570
- if (space) {
571
- next.push(
572
- <Spacer
573
- key={`${key}_spacer`}
574
- // @ts-ignore TODO
575
- direction={
576
- flexDirection === 'row' || flexDirection === 'row-reverse' ? 'horizontal' : 'vertical'
577
- }
578
- size={space}
579
- />
580
- )
581
- }
582
- }
583
- }
584
- return next
585
- }
586
-
587
- // for now not so "tamagui-y"
588
- const Absolute = ({ children }) => <View style={sheet.fullscreen}>{children}</View>
589
- const sheet = StyleSheet.create({
590
- fullscreen: {
591
- position: 'absolute',
592
- top: 0,
593
- left: 0,
594
- right: 0,
595
- bottom: 0,
596
- },
597
- })
package/src/createFont.ts DELETED
@@ -1,26 +0,0 @@
1
- import { GenericFont } from './types'
2
-
3
- export const createFont = <A extends GenericFont>(font: A): A => {
4
- // fills in any missing values based on size keys being standard
5
- const sizeKeys = Object.keys(font.size)
6
-
7
- for (const key in font) {
8
- if (key === 'size' || key === 'family') continue
9
- const section = font[key]
10
- const keys = Object.keys(section)
11
-
12
- // fill with first filled in value to start
13
- let fillVal = section[keys[0]]
14
-
15
- for (const sKey of sizeKeys) {
16
- if (!(sKey in section)) {
17
- section[sKey] = fillVal
18
- } else {
19
- // if exists, set as the fillVal
20
- fillVal = section[sKey]
21
- }
22
- }
23
- }
24
-
25
- return Object.freeze(font)
26
- }
@@ -1,5 +0,0 @@
1
- // type helper
2
-
3
- export function createShorthands<A extends Record<string, string>>(shorthands: A): A {
4
- return Object.freeze(shorthands) as any
5
- }