@tamagui/core 1.0.0-alpha.38 → 1.0.0-alpha.39

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 (331) hide show
  1. package/dist/cjs/constants/constants.js +50 -0
  2. package/dist/cjs/constants/constants.js.map +7 -0
  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/cjs/constants/pseudos.js.map +7 -0
  7. package/dist/cjs/constants/rnw.js +28 -0
  8. package/dist/cjs/constants/rnw.js.map +7 -0
  9. package/dist/cjs/createComponent.js +529 -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 +7 -0
  15. package/dist/cjs/createTamagui.js +223 -0
  16. package/dist/cjs/createTamagui.js.map +7 -0
  17. package/dist/cjs/createTheme.js +13 -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/cjs/helpers/createMediaStyle.js.map +7 -0
  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 +40 -0
  36. package/dist/cjs/helpers/fixNativeShadow.native.js.map +7 -0
  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/cjs/helpers/insertStyleRule.js.map +7 -0
  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 +7 -0
  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/cjs/hooks/useConstant.js.map +7 -0
  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 +7 -0
  65. package/dist/cjs/hooks/useTheme.js +118 -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/cjs/static/postProcessStyles.js.map +7 -0
  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/cjs/views/Animated.js.map +7 -0
  79. package/dist/cjs/views/Stack.js +51 -0
  80. package/dist/cjs/views/Stack.js.map +7 -0
  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/cjs/views/ThemeContext.js.map +7 -0
  89. package/dist/cjs/views/ThemeInverse.js +48 -0
  90. package/dist/cjs/views/ThemeInverse.js.map +7 -0
  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/cjs/views/ThemeProvider.js.map +7 -0
  95. package/dist/esm/constants/constants.js +14 -0
  96. package/dist/esm/constants/constants.js.map +7 -0
  97. package/dist/{constants → esm/constants}/platform.js +3 -2
  98. package/dist/esm/constants/platform.js.map +7 -0
  99. package/dist/esm/constants/pseudos.js +18 -0
  100. package/dist/esm/constants/pseudos.js.map +7 -0
  101. package/dist/esm/constants/rnw.js +22 -0
  102. package/dist/esm/constants/rnw.js.map +7 -0
  103. package/dist/esm/createComponent.js +465 -0
  104. package/dist/esm/createComponent.js.map +7 -0
  105. package/dist/esm/createFont.js +28 -0
  106. package/dist/esm/createFont.js.map +7 -0
  107. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  108. package/dist/esm/createShorthands.js.map +7 -0
  109. package/dist/esm/createTamagui.js +185 -0
  110. package/dist/esm/createTamagui.js.map +7 -0
  111. package/dist/esm/createTheme.js +7 -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} +6 -2
  116. package/dist/esm/createVariable.js.map +7 -0
  117. package/dist/esm/helpers/addStylesUsingClassname.js +57 -0
  118. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  119. package/dist/{helpers → esm/helpers}/createMediaStyle.js +0 -0
  120. package/dist/{helpers → esm/helpers}/createMediaStyle.js.map +1 -1
  121. package/dist/esm/helpers/createPropMapper.js +162 -0
  122. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  123. package/dist/{helpers → esm/helpers}/createTamaguiProvider.js +2 -20
  124. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  125. package/dist/esm/helpers/extendStaticConfig.js +60 -0
  126. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  127. package/dist/esm/helpers/fixNativeShadow.js +8 -0
  128. package/dist/esm/helpers/fixNativeShadow.js.map +7 -0
  129. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  130. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  131. package/dist/{helpers → esm/helpers}/getSplitStyles.js +43 -40
  132. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  133. package/dist/esm/helpers/getStylesAtomic.js +84 -0
  134. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  135. package/dist/esm/helpers/getStylesAtomic.native.js +10 -0
  136. package/dist/esm/helpers/getStylesAtomic.native.js.map +7 -0
  137. package/dist/{helpers → esm/helpers}/insertStyleRule.js +7 -0
  138. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  139. package/dist/esm/helpers/isObj.js +7 -0
  140. package/dist/esm/helpers/isObj.js.map +7 -0
  141. package/dist/esm/helpers/isTamaguiElement.js +11 -0
  142. package/dist/esm/helpers/isTamaguiElement.js.map +7 -0
  143. package/dist/{helpers → 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/{helpers → esm/helpers}/matchMedia.native.js.map +3 -3
  147. package/dist/{helpers → esm/helpers}/themeable.js +1 -1
  148. package/dist/{helpers → esm/helpers}/themeable.js.map +3 -3
  149. package/dist/esm/helpers/validate.js +60 -0
  150. package/dist/esm/helpers/validate.js.map +7 -0
  151. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  152. package/dist/{hooks → esm/hooks}/useConstant.js.map +1 -1
  153. package/dist/{hooks → esm/hooks}/useFeatures.js +39 -51
  154. package/dist/esm/hooks/useFeatures.js.map +7 -0
  155. package/dist/{hooks → esm/hooks}/useMedia.js +20 -18
  156. package/dist/esm/hooks/useMedia.js.map +7 -0
  157. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  158. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  159. package/dist/{hooks → esm/hooks}/useTheme.js +28 -25
  160. package/dist/esm/hooks/useTheme.js.map +7 -0
  161. package/dist/{index.js → esm/index.js} +6 -4
  162. package/dist/esm/index.js.map +7 -0
  163. package/dist/{static → esm/static}/postProcessStyles.js +3 -3
  164. package/dist/esm/static/postProcessStyles.js.map +7 -0
  165. package/dist/{static.js → esm/static.js} +6 -1
  166. package/dist/esm/static.js.map +7 -0
  167. package/dist/esm/styled.js +21 -0
  168. package/dist/esm/styled.js.map +7 -0
  169. package/dist/{types.js → esm/types.js} +0 -0
  170. package/dist/{types.js.map → esm/types.js.map} +0 -0
  171. package/dist/{views → esm/views}/Animated.js +0 -0
  172. package/dist/{views → esm/views}/Animated.js.map +3 -3
  173. package/dist/{views → esm/views}/Stack.js +1 -1
  174. package/dist/esm/views/Stack.js.map +7 -0
  175. package/dist/esm/views/Text.js +60 -0
  176. package/dist/esm/views/Text.js.map +7 -0
  177. package/dist/esm/views/TextAncestorContext.js +18 -0
  178. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  179. package/dist/{views → esm/views}/Theme.js +29 -23
  180. package/dist/esm/views/Theme.js.map +7 -0
  181. package/dist/{views → esm/views}/ThemeContext.js +0 -0
  182. package/dist/{views → esm/views}/ThemeContext.js.map +1 -1
  183. package/dist/{views → esm/views}/ThemeInverse.js +0 -1
  184. package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
  185. package/dist/{views → esm/views}/ThemeManagerContext.js +13 -6
  186. package/dist/esm/views/ThemeManagerContext.js.map +7 -0
  187. package/dist/{views → esm/views}/ThemeProvider.js +10 -10
  188. package/dist/esm/views/ThemeProvider.js.map +7 -0
  189. package/dist/jsx/constants/constants.js +13 -0
  190. package/dist/jsx/constants/platform.js +19 -0
  191. package/dist/jsx/constants/pseudos.js +17 -0
  192. package/dist/jsx/constants/rnw.js +21 -0
  193. package/dist/jsx/createComponent.js +459 -0
  194. package/dist/jsx/createFont.js +27 -0
  195. package/dist/jsx/createShorthands.js +9 -0
  196. package/dist/jsx/createTamagui.js +184 -0
  197. package/dist/jsx/createTheme.js +6 -0
  198. package/dist/jsx/createTokens.js +32 -0
  199. package/dist/jsx/createVariable.js +24 -0
  200. package/dist/jsx/helpers/addStylesUsingClassname.js +56 -0
  201. package/dist/jsx/helpers/createMediaStyle.js +33 -0
  202. package/dist/jsx/helpers/createPropMapper.js +161 -0
  203. package/dist/jsx/helpers/createTamaguiProvider.js +19 -0
  204. package/dist/jsx/helpers/extendStaticConfig.js +59 -0
  205. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  206. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  207. package/dist/jsx/helpers/getSplitStyles.js +149 -0
  208. package/dist/jsx/helpers/getStylesAtomic.js +83 -0
  209. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  210. package/dist/jsx/helpers/insertStyleRule.js +23 -0
  211. package/dist/jsx/helpers/isObj.js +6 -0
  212. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  213. package/dist/jsx/helpers/matchMedia.js +17 -0
  214. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  215. package/dist/jsx/helpers/themeable.js +23 -0
  216. package/dist/jsx/helpers/validate.js +59 -0
  217. package/dist/jsx/hooks/useConstant.js +14 -0
  218. package/dist/jsx/hooks/useFeatures.js +57 -0
  219. package/dist/jsx/hooks/useMedia.js +174 -0
  220. package/dist/jsx/hooks/usePressable.js +13 -0
  221. package/dist/jsx/hooks/useTheme.js +96 -0
  222. package/dist/jsx/index.js +31 -0
  223. package/dist/jsx/static/postProcessStyles.js +17 -0
  224. package/dist/jsx/static.js +14 -0
  225. package/dist/jsx/styled.js +20 -0
  226. package/dist/jsx/types.js +0 -0
  227. package/dist/jsx/views/Animated.js +74 -0
  228. package/dist/jsx/views/Stack.js +11 -0
  229. package/dist/jsx/views/Text.js +59 -0
  230. package/dist/jsx/views/TextAncestorContext.js +15 -0
  231. package/dist/jsx/views/Theme.js +63 -0
  232. package/dist/jsx/views/ThemeContext.js +5 -0
  233. package/dist/jsx/views/ThemeInverse.js +22 -0
  234. package/dist/jsx/views/ThemeManagerContext.js +61 -0
  235. package/dist/jsx/views/ThemeProvider.js +39 -0
  236. package/package.json +6 -6
  237. package/types/constants/constants.d.ts.map +1 -0
  238. package/types/constants/platform.d.ts.map +1 -0
  239. package/types/constants/pseudos.d.ts.map +1 -0
  240. package/types/constants/rnw.d.ts.map +1 -0
  241. package/types/createComponent.d.ts.map +1 -0
  242. package/types/createFont.d.ts.map +1 -0
  243. package/types/createShorthands.d.ts.map +1 -0
  244. package/types/createTamagui.d.ts.map +1 -0
  245. package/types/createTheme.d.ts.map +1 -0
  246. package/types/createTokens.d.ts.map +1 -0
  247. package/types/createVariable.d.ts.map +1 -0
  248. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  249. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  250. package/types/helpers/createPropMapper.d.ts.map +1 -0
  251. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  252. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  253. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  254. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  255. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  256. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  257. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  258. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  259. package/types/helpers/isObj.d.ts.map +1 -0
  260. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  261. package/types/helpers/matchMedia.d.ts.map +1 -0
  262. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  263. package/types/helpers/themeable.d.ts.map +1 -0
  264. package/types/helpers/validate.d.ts.map +1 -0
  265. package/types/hooks/useConstant.d.ts.map +1 -0
  266. package/types/hooks/useFeatures.d.ts.map +1 -0
  267. package/types/hooks/useMedia.d.ts.map +1 -0
  268. package/types/hooks/usePressable.d.ts.map +1 -0
  269. package/types/hooks/useTheme.d.ts.map +1 -0
  270. package/types/index.d.ts.map +1 -0
  271. package/types/static/postProcessStyles.d.ts.map +1 -0
  272. package/types/static.d.ts.map +1 -0
  273. package/types/styled.d.ts.map +1 -0
  274. package/types/types.d.ts.map +1 -0
  275. package/types/views/Animated.d.ts.map +1 -0
  276. package/types/views/Stack.d.ts.map +1 -0
  277. package/types/views/Text.d.ts.map +1 -0
  278. package/types/views/TextAncestorContext.d.ts.map +1 -0
  279. package/types/views/Theme.d.ts.map +1 -0
  280. package/types/views/ThemeContext.d.ts.map +1 -0
  281. package/types/views/ThemeInverse.d.ts.map +1 -0
  282. package/types/views/ThemeManagerContext.d.ts.map +1 -0
  283. package/types/views/ThemeProvider.d.ts.map +1 -0
  284. package/dist/constants/constants.js +0 -32
  285. package/dist/constants/constants.js.map +0 -7
  286. package/dist/constants/platform.js.map +0 -7
  287. package/dist/constants/rnw.js +0 -10
  288. package/dist/constants/rnw.js.map +0 -7
  289. package/dist/constants/styleConstants.js +0 -59
  290. package/dist/constants/styleConstants.js.map +0 -7
  291. package/dist/createComponent.js +0 -395
  292. package/dist/createComponent.js.map +0 -7
  293. package/dist/createShorthands.js.map +0 -7
  294. package/dist/createTamagui.js +0 -107
  295. package/dist/createTamagui.js.map +0 -7
  296. package/dist/createTokens.js.map +0 -7
  297. package/dist/createVariable.js.map +0 -7
  298. package/dist/helpers/addStylesUsingClassname.js +0 -28
  299. package/dist/helpers/addStylesUsingClassname.js.map +0 -7
  300. package/dist/helpers/createTamaguiProvider.js.map +0 -7
  301. package/dist/helpers/extendStaticConfig.js +0 -158
  302. package/dist/helpers/extendStaticConfig.js.map +0 -7
  303. package/dist/helpers/fixNativeShadow.js +0 -38
  304. package/dist/helpers/fixNativeShadow.js.map +0 -7
  305. package/dist/helpers/getSplitStyles.js.map +0 -7
  306. package/dist/helpers/insertStyleRule.js.map +0 -7
  307. package/dist/helpers/matchMedia.js.map +0 -7
  308. package/dist/helpers/setIfChanged.js +0 -17
  309. package/dist/helpers/setIfChanged.js.map +0 -7
  310. package/dist/hooks/useFeatures.js.map +0 -7
  311. package/dist/hooks/useForceUpdate.js +0 -28
  312. package/dist/hooks/useForceUpdate.js.map +0 -7
  313. package/dist/hooks/useMedia.js.map +0 -7
  314. package/dist/hooks/useTheme.js.map +0 -7
  315. package/dist/index.cjs +0 -1837
  316. package/dist/index.cjs.map +0 -7
  317. package/dist/index.js.map +0 -7
  318. package/dist/static/postProcessStyles.js.map +0 -7
  319. package/dist/static.js.map +0 -7
  320. package/dist/styled.js +0 -28
  321. package/dist/styled.js.map +0 -7
  322. package/dist/testtypes.js +0 -1
  323. package/dist/testtypes.js.map +0 -7
  324. package/dist/views/Stack.js.map +0 -7
  325. package/dist/views/Text.js +0 -36
  326. package/dist/views/Text.js.map +0 -7
  327. package/dist/views/TextAncestorContext.js +0 -18
  328. package/dist/views/TextAncestorContext.js.map +0 -7
  329. package/dist/views/Theme.js.map +0 -7
  330. package/dist/views/ThemeManagerContext.js.map +0 -7
  331. package/dist/views/ThemeProvider.js.map +0 -7
@@ -1,59 +0,0 @@
1
- import { StyleSheet } from "react-native";
2
- import { isWeb } from "./platform";
3
- import { rnw } from "./rnw";
4
- const cssTextStyles = {
5
- text: {
6
- display: isWeb ? "inline" : "flex",
7
- boxSizing: "border-box",
8
- fontFamily: "System",
9
- whiteSpace: "pre-wrap",
10
- wordWrap: "break-word"
11
- },
12
- textHasAncestor: {
13
- color: "inherit",
14
- font: "inherit",
15
- whiteSpace: "inherit"
16
- },
17
- textOneLine: {
18
- maxWidth: "100%",
19
- overflow: "hidden",
20
- textOverflow: "ellipsis",
21
- whiteSpace: "nowrap"
22
- },
23
- textMultiLine: {
24
- display: "-webkit-box",
25
- maxWidth: "100%",
26
- overflow: "hidden",
27
- textOverflow: "ellipsis",
28
- WebkitBoxOrient: "vertical"
29
- }
30
- };
31
- const cssText = isWeb ? rnw?.css.create(cssTextStyles) : {};
32
- const disabledStyle = {
33
- pointerEvents: "none",
34
- userSelect: "none"
35
- };
36
- const viewStyles = StyleSheet.create({
37
- inline: isWeb ? {
38
- display: "inline-flex"
39
- } : {}
40
- });
41
- const textStyles = isWeb ? StyleSheet.create({
42
- notSelectable: {
43
- userSelect: "none"
44
- },
45
- selectable: {
46
- userSelect: "text"
47
- },
48
- pressable: {
49
- cursor: "pointer"
50
- }
51
- }) : {};
52
- export {
53
- cssText,
54
- cssTextStyles,
55
- disabledStyle,
56
- textStyles,
57
- viewStyles
58
- };
59
- //# sourceMappingURL=styleConstants.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/constants/styleConstants.tsx"],
4
- "sourcesContent": ["import { StyleSheet } from 'react-native'\n\nimport { isWeb } from './platform'\nimport { rnw } from './rnw'\n\nexport const cssTextStyles = {\n text: {\n display: isWeb ? 'inline' : 'flex',\n boxSizing: 'border-box',\n fontFamily: 'System',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n },\n textHasAncestor: {\n color: 'inherit',\n font: 'inherit',\n whiteSpace: 'inherit',\n },\n textOneLine: {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical',\n },\n}\n\nexport const cssText = isWeb ? rnw?.css.create(cssTextStyles) : {}\n\nexport const disabledStyle = {\n pointerEvents: 'none',\n userSelect: 'none',\n} as const\n\nexport const viewStyles = StyleSheet.create({\n inline: isWeb\n ? {\n display: 'inline-flex' as any,\n }\n : {},\n})\n\nexport const textStyles = isWeb\n ? StyleSheet.create({\n notSelectable: {\n // @ts-ignore\n userSelect: 'none',\n },\n selectable: {\n // @ts-ignore\n userSelect: 'text',\n },\n pressable: {\n // @ts-ignore\n cursor: 'pointer',\n },\n })\n : {}\n"],
5
- "mappings": "AAAA;AAEA;AACA;AAEO,MAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,IACJ,SAAS,QAAQ,WAAW;AAAA,IAC5B,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,UAAU;AAAA;AAAA,EAEZ,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,MAAM;AAAA,IACN,YAAY;AAAA;AAAA,EAEd,aAAa;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,YAAY;AAAA;AAAA,EAEd,eAAe;AAAA,IACb,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAc;AAAA,IACd,iBAAiB;AAAA;AAAA;AAId,MAAM,UAAU,QAAQ,KAAK,IAAI,OAAO,iBAAiB;AAEzD,MAAM,gBAAgB;AAAA,EAC3B,eAAe;AAAA,EACf,YAAY;AAAA;AAGP,MAAM,aAAa,WAAW,OAAO;AAAA,EAC1C,QAAQ,QACJ;AAAA,IACE,SAAS;AAAA,MAEX;AAAA;AAGC,MAAM,aAAa,QACtB,WAAW,OAAO;AAAA,EAChB,eAAe;AAAA,IAEb,YAAY;AAAA;AAAA,EAEd,YAAY;AAAA,IAEV,YAAY;AAAA;AAAA,EAEd,WAAW;AAAA,IAET,QAAQ;AAAA;AAAA,KAGZ;",
6
- "names": []
7
- }
@@ -1,395 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { concatClassName, stylePropsView } from "@tamagui/helpers";
4
- import React, {
5
- Children,
6
- Fragment,
7
- createElement,
8
- forwardRef,
9
- useCallback,
10
- useContext,
11
- useEffect,
12
- useRef,
13
- useState
14
- } from "react";
15
- import { View } from "react-native";
16
- import { stackDefaultStyles } from "./constants/constants";
17
- import { isTouchDevice, isWeb } from "./constants/platform";
18
- import { rnw } from "./constants/rnw";
19
- import { cssText, disabledStyle, textStyles, viewStyles } from "./constants/styleConstants";
20
- import { onConfiguredOnce } from "./createTamagui";
21
- import { addStylesUsingClassname } from "./helpers/addStylesUsingClassname";
22
- import { parseStaticConfig } from "./helpers/extendStaticConfig";
23
- import { getSplitStyles } from "./helpers/getSplitStyles";
24
- import { setIfChanged } from "./helpers/setIfChanged";
25
- import { useFeatures } from "./hooks/useFeatures";
26
- import { useForceUpdate } from "./hooks/useForceUpdate";
27
- import { usePressable } from "./hooks/usePressable";
28
- import { TextAncestorContext } from "./views/TextAncestorContext";
29
- import { ThemeManagerContext } from "./views/ThemeManagerContext";
30
- const mouseUps = new Set();
31
- if (typeof document !== "undefined") {
32
- document.addEventListener("mouseup", () => {
33
- mouseUps.forEach((x) => x());
34
- mouseUps.clear();
35
- });
36
- }
37
- function createComponent(configIn) {
38
- let staticConfig;
39
- if ("parsed" in configIn) {
40
- staticConfig = configIn;
41
- } else {
42
- staticConfig = parseStaticConfig(configIn);
43
- }
44
- const { defaultProps, Component, validStyles, isText } = staticConfig;
45
- const validStyleProps = validStyles ?? stylePropsView;
46
- let splitDefaults;
47
- let tamaguiConfig;
48
- let defaultsClassName = "";
49
- onConfiguredOnce((conf) => {
50
- tamaguiConfig = conf;
51
- splitDefaults = getSplitStyles(defaultProps, staticConfig, conf);
52
- if (splitDefaults.classNames) {
53
- defaultsClassName += splitDefaults.classNames + " ";
54
- }
55
- if (splitDefaults.style) {
56
- defaultsClassName += addStylesUsingClassname([splitDefaults.style]);
57
- }
58
- });
59
- const component = forwardRef((props, forwardedRef) => {
60
- const {
61
- tag,
62
- hitSlop,
63
- children,
64
- pointerEvents,
65
- onPress,
66
- onPressIn,
67
- onPressOut,
68
- onHoverIn,
69
- onHoverOut,
70
- spacing,
71
- disabled,
72
- onMouseEnter,
73
- onMouseLeave,
74
- hrefAttrs,
75
- onMoveShouldSetResponder,
76
- onMoveShouldSetResponderCapture,
77
- onResponderEnd,
78
- onResponderGrant,
79
- onResponderMove,
80
- onResponderReject,
81
- onResponderRelease,
82
- onResponderStart,
83
- onResponderTerminate,
84
- onResponderTerminationRequest,
85
- onScrollShouldSetResponder,
86
- onScrollShouldSetResponderCapture,
87
- onSelectionChangeShouldSetResponder,
88
- onSelectionChangeShouldSetResponderCapture,
89
- onStartShouldSetResponder,
90
- onStartShouldSetResponderCapture,
91
- onMouseDown,
92
- onClick,
93
- onLayout
94
- } = props;
95
- const forceUpdate = useForceUpdate();
96
- const features = useFeatures(props, { forceUpdate });
97
- const manager = useContext(ThemeManagerContext);
98
- const [state, set_] = useState(() => ({
99
- hover: false,
100
- press: false,
101
- pressIn: false,
102
- theme: manager.name
103
- }));
104
- const set = setIfChanged.bind(null, set_);
105
- if (process.env.NODE_ENV !== "production" && !isText && isWeb) {
106
- Children.toArray(props.children).forEach((item) => {
107
- if (typeof item === "string") {
108
- console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
109
- }
110
- });
111
- }
112
- const hasTextAncestor = useContext(TextAncestorContext);
113
- const hostRef = useRef(null);
114
- if (isWeb) {
115
- rnw.useResponderEvents(hostRef, {
116
- onMoveShouldSetResponder,
117
- onMoveShouldSetResponderCapture,
118
- onResponderEnd,
119
- onResponderGrant,
120
- onResponderMove,
121
- onResponderReject,
122
- onResponderRelease,
123
- onResponderStart,
124
- onResponderTerminate,
125
- onResponderTerminationRequest,
126
- onScrollShouldSetResponder,
127
- onScrollShouldSetResponderCapture,
128
- onSelectionChangeShouldSetResponder,
129
- onSelectionChangeShouldSetResponderCapture,
130
- onStartShouldSetResponder,
131
- onStartShouldSetResponderCapture
132
- });
133
- }
134
- const isTracking = useRef(false);
135
- const { viewProps, psuedos, style, classNames } = getSplitStyles(props, staticConfig, tamaguiConfig);
136
- const internal = useRef();
137
- if (!internal.current) {
138
- internal.current = {
139
- isMounted: true
140
- };
141
- }
142
- useEffect(() => {
143
- internal.current.isMounted = true;
144
- const dispose = manager?.onChangeTheme((name) => {
145
- if (isTracking.current) {
146
- set({ theme: name });
147
- }
148
- });
149
- return () => {
150
- dispose();
151
- mouseUps.delete(unPress);
152
- isTracking.current = false;
153
- internal.current.isMounted = false;
154
- };
155
- }, [manager]);
156
- const element = isWeb ? !Component || typeof Component === "string" ? tag || Component : Component : Component;
157
- const ReactView = !isWeb ? View : element || (hasTextAncestor ? "span" : "div");
158
- const ReactText = !isWeb ? Text : element || "span";
159
- const ViewComponent = isText ? ReactText : ReactView;
160
- const numberOfLines = props["numberOfLines"];
161
- const selectable = props["selectable"];
162
- const styles = [
163
- hasTextAncestor ? viewStyles.inline : null,
164
- ...isWeb && isText ? [
165
- numberOfLines != null && numberOfLines > 1 && { WebkitLineClamp: numberOfLines },
166
- selectable === true && textStyles.selectable,
167
- selectable === false && textStyles.notSelectable,
168
- onPress && textStyles.pressable
169
- ] : [],
170
- style,
171
- !isTouchDevice && !disabled && psuedos && state.hover ? psuedos.hoverStyle || null : null,
172
- !disabled && psuedos && state.press ? psuedos.pressStyle || null : null,
173
- disabled ? disabledStyle : null
174
- ];
175
- const stylesClassNames = addStylesUsingClassname(styles);
176
- const classList = staticConfig.isText ? [
177
- defaultsClassName,
178
- hasTextAncestor === true && cssText.textHasAncestor,
179
- numberOfLines === 1 && cssText.textOneLine,
180
- numberOfLines != null && numberOfLines > 1 && cssText.textMultiLine,
181
- props.className,
182
- classNames,
183
- stylesClassNames
184
- ] : [defaultsClassName, props.className, classNames, stylesClassNames];
185
- const supportedProps = viewProps;
186
- if (isWeb) {
187
- const classListFlat = classList.flat().filter(Boolean).join(" ");
188
- const className = concatClassName(classListFlat);
189
- if (process.env.NODE_ENV === "development") {
190
- if (props["debug"]) {
191
- console.log("className", { styles, stylesClassNames, classList, classListFlat, className });
192
- }
193
- }
194
- supportedProps.className = className;
195
- } else {
196
- supportedProps.style = classList;
197
- }
198
- if (pointerEvents) {
199
- supportedProps.pointerEvents = pointerEvents;
200
- }
201
- if (isWeb) {
202
- const platformMethodsRef = rnw.usePlatformMethods(supportedProps);
203
- const setRef = rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef);
204
- supportedProps.ref = setRef;
205
- if (props.href != null && hrefAttrs != null) {
206
- const { download, rel, target } = hrefAttrs;
207
- if (download != null) {
208
- supportedProps.download = download;
209
- }
210
- if (rel != null) {
211
- supportedProps.rel = rel;
212
- }
213
- if (typeof target === "string") {
214
- supportedProps.target = target.charAt(0) !== "_" ? "_" + target : target;
215
- }
216
- }
217
- } else {
218
- if (forwardedRef) {
219
- supportedProps.ref = forwardedRef;
220
- }
221
- }
222
- const createEl = createElement;
223
- const attachPress = !!(psuedos && psuedos.pressStyle || onPress || onPressOut || onPressIn);
224
- const attachHover = isWeb && !isTouchDevice && !!(psuedos && psuedos.hoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
225
- const shouldAttach = internal.current.hasEverHadEvents || attachPress || attachHover || "pressStyle" in props || "onPress" in props || "onPressIn" in props || "onPressOut" in props || isWeb && ("hoverStyle" in props || "onHoverIn" in props || "onHoverOut" in props || "onMouseEnter" in props || "onMouseLeave" in props);
226
- if (shouldAttach) {
227
- internal.current.hasEverHadEvents = true;
228
- }
229
- const unPress = useCallback(() => {
230
- if (!internal.current.isMounted)
231
- return;
232
- set({
233
- press: false,
234
- pressIn: false
235
- });
236
- }, []);
237
- const events = shouldAttach ? {
238
- ...!isWeb && {
239
- onPressOut: (e) => {
240
- unPress();
241
- onPressOut?.(e);
242
- }
243
- },
244
- ...isWeb && !isTouchDevice && {
245
- onMouseEnter: attachHover || attachPress ? (e) => {
246
- let next = {};
247
- if (attachHover) {
248
- next.hover = true;
249
- }
250
- if (state.pressIn) {
251
- next.press = true;
252
- }
253
- if (Object.keys(next).length) {
254
- set(next);
255
- }
256
- onHoverIn?.(e);
257
- onMouseEnter?.(e);
258
- } : void 0,
259
- onMouseLeave: attachHover || attachPress ? (e) => {
260
- let next = {};
261
- mouseUps.add(unPress);
262
- if (attachHover) {
263
- next.hover = false;
264
- }
265
- if (state.pressIn) {
266
- next.press = false;
267
- next.pressIn = false;
268
- }
269
- if (Object.keys(next).length) {
270
- set(next);
271
- }
272
- onHoverOut?.(e);
273
- onMouseLeave?.(e);
274
- } : void 0
275
- },
276
- onMouseDown: attachPress ? (e) => {
277
- set({
278
- press: true,
279
- pressIn: true
280
- });
281
- onPressIn?.(e);
282
- onMouseDown?.(e);
283
- } : onPressIn,
284
- onClick: attachPress ? (e) => {
285
- e.preventDefault();
286
- unPress();
287
- onPressOut?.(e);
288
- onPress?.(e);
289
- onClick?.(e);
290
- } : onPressOut
291
- } : null;
292
- if (events) {
293
- if (typeof ViewComponent !== "string") {
294
- const [pressProps] = usePressable({
295
- disabled,
296
- hitSlop,
297
- onPressIn: events.onMouseDown,
298
- onPressOut: events.onPressOut,
299
- onPress
300
- });
301
- Object.assign(supportedProps, pressProps);
302
- } else {
303
- Object.assign(supportedProps, events);
304
- }
305
- }
306
- const spacedChildrenEl = spacedChildren({
307
- children,
308
- spacing,
309
- flexDirection: props.flexDirection || defaultProps?.flexDirection
310
- });
311
- let content = createEl(ViewComponent, supportedProps, spacedChildrenEl);
312
- const shouldWrapTextAncestor = isWeb && staticConfig.isText && !hasTextAncestor;
313
- if (shouldWrapTextAncestor) {
314
- content = createElement(TextAncestorContext.Provider, { value: true }, content);
315
- }
316
- if (process.env.NODE_ENV === "development") {
317
- if (props["debug"]) {
318
- supportedProps["debug"] = true;
319
- console.log(" \u{1F351} props in: ", props);
320
- console.log(" \u{1F351} props out: ", supportedProps);
321
- console.log(" \u{1F351} other: ", { ViewComponent, viewProps, styles, psuedos, createEl, content, spacedChildrenEl, staticConfig, splitDefaults, tamaguiConfig });
322
- }
323
- }
324
- return /* @__PURE__ */ React.createElement(React.Fragment, null, features, content);
325
- });
326
- const config = {
327
- validStyles: validStyleProps,
328
- ...staticConfig,
329
- validPropsExtra: {
330
- ...staticConfig.validPropsExtra,
331
- disabled: true,
332
- fullscreen: true
333
- }
334
- };
335
- component["staticConfig"] = config;
336
- return component;
337
- }
338
- __name(createComponent, "createComponent");
339
- const Spacer = createComponent({
340
- defaultProps: stackDefaultStyles,
341
- variants: {
342
- size: {
343
- "...size": (size, { tokens }) => {
344
- return {
345
- width: tokens.size[size] ?? size,
346
- height: tokens.size[size] ?? size
347
- };
348
- }
349
- },
350
- direction: {
351
- horizontal: {
352
- height: 0
353
- },
354
- vertical: {
355
- width: 0
356
- }
357
- }
358
- }
359
- });
360
- function spacedChildren({
361
- children,
362
- spacing,
363
- flexDirection
364
- }) {
365
- if (!spacing) {
366
- return children;
367
- }
368
- const next = [];
369
- const childrenList = Children.toArray(children);
370
- const len = childrenList.length;
371
- if (len === 1) {
372
- return children;
373
- }
374
- const spacer = /* @__PURE__ */ React.createElement(Spacer, {
375
- direction: flexDirection === "row" || flexDirection === "row-reverse" ? "horizontal" : "vertical",
376
- size: spacing
377
- });
378
- for (const [index, child] of childrenList.entries()) {
379
- next.push(child);
380
- if (index === len - 1) {
381
- break;
382
- }
383
- const key = `${child?.["key"] ?? index}`;
384
- next.push(createElement(Fragment, { key: key + "_spacer" }, spacer));
385
- }
386
- return next;
387
- }
388
- __name(spacedChildren, "spacedChildren");
389
- export {
390
- Spacer,
391
- createComponent,
392
- mouseUps,
393
- spacedChildren
394
- };
395
- //# sourceMappingURL=createComponent.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/createComponent.tsx"],
4
- "sourcesContent": ["import { concatClassName, stylePropsView } from '@tamagui/helpers'\nimport React, {\n Children,\n Fragment,\n createElement,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { View, ViewStyle } from 'react-native'\n\nimport { stackDefaultStyles } from './constants/constants'\nimport { isTouchDevice, isWeb } from './constants/platform'\nimport { rnw } from './constants/rnw'\nimport { cssText, disabledStyle, textStyles, viewStyles } from './constants/styleConstants'\nimport { onConfiguredOnce } from './createTamagui'\nimport { addStylesUsingClassname } from './helpers/addStylesUsingClassname'\nimport { parseStaticConfig } from './helpers/extendStaticConfig'\nimport { SplitStyles, getSplitStyles } from './helpers/getSplitStyles'\nimport { setIfChanged } from './helpers/setIfChanged'\nimport { useFeatures } from './hooks/useFeatures'\nimport { useForceUpdate } from './hooks/useForceUpdate'\nimport { usePressable } from './hooks/usePressable'\nimport { StaticComponent, StaticConfig, StaticConfigParsed } from './types'\nimport { TextAncestorContext } from './views/TextAncestorContext'\nimport { ThemeManagerContext } from './views/ThemeManagerContext'\nimport { TamaguiInternalConfig } from '.'\n\nexport const mouseUps = new Set<Function>()\n\nif (typeof document !== 'undefined') {\n document.addEventListener('mouseup', () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n })\n}\n\ntype DefaultProps = {}\n\nexport function createComponent<A extends Object = DefaultProps>(\n configIn: Partial<StaticConfig> | StaticConfigParsed\n) {\n let staticConfig: StaticConfigParsed\n if ('parsed' in configIn) {\n staticConfig = configIn\n } else {\n staticConfig = parseStaticConfig(configIn)\n }\n\n const { defaultProps, Component, validStyles, isText } = staticConfig\n const validStyleProps = validStyles ?? stylePropsView\n\n // split out default styles vs props so we can assign it to component.defaultProps\n let splitDefaults: SplitStyles\n let tamaguiConfig: TamaguiInternalConfig\n let defaultsClassName = ''\n\n onConfiguredOnce((conf) => {\n tamaguiConfig = conf\n splitDefaults = getSplitStyles(defaultProps, staticConfig, conf)\n if (splitDefaults.classNames) {\n defaultsClassName += splitDefaults.classNames + ' '\n }\n if (splitDefaults.style) {\n defaultsClassName += addStylesUsingClassname([splitDefaults.style])\n }\n })\n\n const component = forwardRef<View, A>((props: any, forwardedRef) => {\n const {\n tag,\n hitSlop,\n children,\n pointerEvents,\n onPress,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n spacing,\n disabled,\n onMouseEnter,\n onMouseLeave,\n hrefAttrs,\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n onMouseDown,\n onClick,\n // TODO feature load layou hook\n onLayout,\n } = props\n\n const forceUpdate = useForceUpdate()\n const features = useFeatures(props, { forceUpdate })\n const manager = useContext(ThemeManagerContext)\n const [state, set_] = useState(() => ({\n hover: false,\n press: false,\n pressIn: false,\n theme: manager.name,\n }))\n const set = setIfChanged.bind(null, set_)\n\n // from react-native-web\n if (process.env.NODE_ENV !== 'production' && !isText && isWeb) {\n Children.toArray(props.children).forEach((item) => {\n if (typeof item === 'string') {\n console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`)\n }\n })\n }\n\n // from react-native-web\n const hasTextAncestor = useContext(TextAncestorContext)\n const hostRef = useRef(null)\n\n if (isWeb) {\n // from react-native-web\n rnw.useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n })\n }\n\n const isTracking = useRef(false)\n\n // TODO only handles tracking for re-renders i think now since conversion can be entirely done in splitprops\n // const varToVal = (value: string) => {\n // // TODO convert back to theme variable\n // isTracking.current = true\n // // TODO run over this, can likely remove\n // if (value && manager.theme && typeof manager.theme[value] !== 'undefined') {\n // return manager.theme[value]\n // }\n // return value\n // }\n\n const { viewProps, psuedos, style, classNames } = getSplitStyles(\n props,\n staticConfig,\n tamaguiConfig\n )\n\n // hasEverHadEvents prevents repareting if you remove onPress or similar...\n const internal = useRef<{ isMounted: boolean; hasEverHadEvents?: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n }\n }\n\n useEffect(() => {\n internal.current!.isMounted = true\n const dispose = manager?.onChangeTheme((name) => {\n if (isTracking.current) {\n set({ theme: name })\n }\n })\n return () => {\n dispose()\n mouseUps.delete(unPress)\n isTracking.current = false\n internal.current!.isMounted = false\n }\n }, [manager])\n\n // default to component\n const element = isWeb\n ? !Component || typeof Component === 'string'\n ? // default to tag, fallback to component (when both strings)\n tag || Component\n : Component\n : Component\n const ReactView = !isWeb ? View : element || (hasTextAncestor ? 'span' : 'div')\n const ReactText = !isWeb ? Text : element || 'span'\n // TODO handle onLayout\n const ViewComponent = isText ? ReactText : ReactView\n\n const numberOfLines = props['numberOfLines']\n const selectable = props['selectable']\n\n const styles = [\n hasTextAncestor ? viewStyles.inline : null,\n // from react-native-web\n ...(isWeb && isText\n ? [\n // TODO MOVE TO VARIANTS\n numberOfLines != null && numberOfLines > 1 && { WebkitLineClamp: numberOfLines },\n selectable === true && textStyles.selectable,\n selectable === false && textStyles.notSelectable,\n onPress && textStyles.pressable,\n ]\n : []),\n style,\n !isTouchDevice && !disabled && psuedos && state.hover ? psuedos.hoverStyle || null : null,\n !disabled && psuedos && state.press ? psuedos.pressStyle || null : null,\n disabled ? disabledStyle : null,\n ]\n\n const stylesClassNames = addStylesUsingClassname(styles)\n\n const classList = staticConfig.isText\n ? [\n defaultsClassName,\n // TODO MOVE TO VARIANTS\n hasTextAncestor === true && cssText.textHasAncestor,\n numberOfLines === 1 && cssText.textOneLine,\n numberOfLines != null && numberOfLines > 1 && cssText.textMultiLine,\n props.className,\n classNames,\n stylesClassNames,\n ]\n : [defaultsClassName, props.className, classNames, stylesClassNames]\n\n const supportedProps: any = viewProps //{ ...viewProps }\n\n if (isWeb) {\n const classListFlat = classList.flat().filter(Boolean).join(' ')\n const className = concatClassName(classListFlat)\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.log('className', { styles, stylesClassNames, classList, classListFlat, className })\n }\n }\n supportedProps.className = className\n } else {\n // TODO\n supportedProps.style = classList\n }\n\n if (pointerEvents) {\n supportedProps.pointerEvents = pointerEvents\n }\n\n if (isWeb) {\n // from react-native-web\n const platformMethodsRef = rnw.usePlatformMethods(supportedProps)\n const setRef = rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef)\n supportedProps.ref = setRef\n if (props.href != null && hrefAttrs != null) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n supportedProps.download = download\n }\n if (rel != null) {\n supportedProps.rel = rel\n }\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target\n }\n }\n } else {\n if (forwardedRef) {\n supportedProps.ref = forwardedRef\n }\n }\n\n const createEl = createElement //isWeb ? rnw.createElement : createElement\n\n //\n // TODO\n //\n // all these press events can be moved into a component that optionally renders if shouldAttach is true\n // and then calls back with props. this would do a few things:\n // 1. isolate logic for all pseudo press/hover stuff into one area more nicely\n // 2. a lot less hooks would be rendered on average\n // 3. should then let us use usePressability on web (should make ViewComponent a View if string)\n //\n //\n // see how framer motion does this:\n // https://github.com/framer/motion/blob/1d1eb5fd2bc712658a83a7881a3adb68ac56a242/src/motion/features/use-features.tsx#L16\n //\n\n const attachPress = !!((psuedos && psuedos.pressStyle) || onPress || onPressOut || onPressIn)\n const attachHover =\n isWeb &&\n !isTouchDevice &&\n !!((psuedos && psuedos.hoverStyle) || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n\n // check presence to prevent reparenting bugs, allows for onPress={x ? function : undefined} usage\n // while avoiding reparenting...\n // once proper reparenting is supported, we can remove this and use that...\n const shouldAttach =\n internal.current.hasEverHadEvents ||\n attachPress ||\n attachHover ||\n 'pressStyle' in props ||\n 'onPress' in props ||\n 'onPressIn' in props ||\n 'onPressOut' in props ||\n (isWeb &&\n ('hoverStyle' in props ||\n 'onHoverIn' in props ||\n 'onHoverOut' in props ||\n 'onMouseEnter' in props ||\n 'onMouseLeave' in props))\n\n // never remove events as we wrap in a div (for now, may be able to remove..)\n if (shouldAttach) {\n internal.current.hasEverHadEvents = true\n }\n\n const unPress = useCallback(() => {\n if (!internal.current!.isMounted) return\n set({\n press: false,\n pressIn: false,\n })\n }, [])\n\n const events = shouldAttach\n ? {\n ...(!isWeb && {\n // non web\n onPressOut: (e) => {\n unPress()\n onPressOut?.(e)\n },\n }),\n ...(isWeb &&\n !isTouchDevice && {\n onMouseEnter:\n attachHover || attachPress\n ? (e) => {\n let next: Partial<typeof state> = {}\n if (attachHover) {\n next.hover = true\n }\n if (state.pressIn) {\n next.press = true\n }\n if (Object.keys(next).length) {\n set(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave:\n attachHover || attachPress\n ? (e) => {\n let next: Partial<typeof state> = {}\n mouseUps.add(unPress)\n if (attachHover) {\n next.hover = false\n }\n if (state.pressIn) {\n next.press = false\n next.pressIn = false\n }\n if (Object.keys(next).length) {\n set(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onMouseDown: attachPress\n ? (e) => {\n set({\n press: true,\n pressIn: true,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n }\n : (onPressIn as any),\n onClick: attachPress\n ? (e) => {\n e.preventDefault()\n unPress()\n onPressOut?.(e)\n onPress?.(e)\n onClick?.(e)\n }\n : (onPressOut as any),\n }\n : null\n\n if (events) {\n if (typeof ViewComponent !== 'string') {\n // TODO once we do the above we can then rely entirely on pressStyle returned here isntead of above pressStyle logic\n const [pressProps] = usePressable({\n disabled,\n hitSlop,\n onPressIn: events.onMouseDown,\n onPressOut: events.onPressOut,\n onPress,\n })\n Object.assign(supportedProps, pressProps)\n } else {\n Object.assign(supportedProps, events)\n }\n }\n\n const spacedChildrenEl = spacedChildren({\n children,\n spacing,\n flexDirection: props.flexDirection || defaultProps?.flexDirection,\n })\n\n let content = createEl(ViewComponent, supportedProps, spacedChildrenEl)\n\n const shouldWrapTextAncestor = isWeb && staticConfig.isText && !hasTextAncestor\n if (shouldWrapTextAncestor) {\n // from react-native-web\n // @ts-ignore\n content = createElement(TextAncestorContext.Provider, { value: true }, content)\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n supportedProps['debug'] = true\n console.log(' \uD83C\uDF51 props in: ', props)\n console.log(' \uD83C\uDF51 props out: ', supportedProps)\n // prettier-ignore\n console.log(' \uD83C\uDF51 other: ', { ViewComponent, viewProps, styles, psuedos, createEl, content, spacedChildrenEl, staticConfig, splitDefaults, tamaguiConfig })\n }\n }\n\n return (\n <>\n {features}\n {content}\n </>\n )\n })\n\n const config: StaticConfig = {\n validStyles: validStyleProps,\n ...staticConfig,\n // TODO shouldnt need this spread / disbaled / fullscreen\n validPropsExtra: {\n ...staticConfig.validPropsExtra,\n disabled: true,\n fullscreen: true,\n },\n }\n component['staticConfig'] = config\n\n return component as any as StaticComponent<A, void>\n}\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent({\n defaultProps: stackDefaultStyles,\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n return {\n width: tokens.size[size] ?? size,\n height: tokens.size[size] ?? size,\n }\n },\n },\n direction: {\n horizontal: {\n height: 0,\n },\n vertical: {\n width: 0,\n },\n },\n },\n})\n\nexport function spacedChildren({\n children,\n spacing,\n flexDirection,\n}: {\n children: any\n spacing?: any\n flexDirection?: ViewStyle['flexDirection']\n}) {\n if (!spacing) {\n return children\n }\n const next: any[] = []\n const childrenList = Children.toArray(children)\n const len = childrenList.length\n if (len === 1) {\n return children\n }\n const spacer = (\n <Spacer\n // @ts-ignore TODO\n direction={\n flexDirection === 'row' || flexDirection === 'row-reverse' ? 'horizontal' : 'vertical'\n }\n size={spacing}\n />\n )\n for (const [index, child] of childrenList.entries()) {\n next.push(child)\n if (index === len - 1) {\n break\n }\n const key = `${child?.['key'] ?? index}`\n next.push(createElement(Fragment, { key: key + '_spacer' }, spacer))\n }\n return next\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/createShorthands.ts"],
4
- "sourcesContent": ["import { GenericShorthands } from './types'\n\n// type helper\n\nexport function createShorthands<A extends Record<string, string>>(shorthands: A): A {\n return Object.freeze(shorthands) as any\n}\n"],
5
- "mappings": ";;AAIO,0BAA4D,YAAkB;AACnF,SAAO,OAAO,OAAO;AAAA;AADP;",
6
- "names": []
7
- }
@@ -1,107 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { createVariable, isVariable } from "./createVariable";
4
- import { createTamaguiProvider } from "./helpers/createTamaguiProvider";
5
- import { configureMedia } from "./hooks/useMedia";
6
- let conf;
7
- const getHasConfigured = /* @__PURE__ */ __name(() => !!conf, "getHasConfigured");
8
- const getTamaguiConfig = /* @__PURE__ */ __name(() => conf, "getTamaguiConfig");
9
- const configListeners = new Set();
10
- const onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
11
- if (conf) {
12
- cb(conf);
13
- } else {
14
- configListeners.add(cb);
15
- }
16
- }, "onConfiguredOnce");
17
- const THEME_CLASS_PREFIX = `theme--`;
18
- function createTamagui(config) {
19
- if (conf) {
20
- throw new Error(`#000 createTamagui called twice`);
21
- }
22
- configureMedia({
23
- queries: config.media,
24
- defaultActive: config.mediaQueryDefaultActive
25
- });
26
- const themeConfig = (() => {
27
- let cssRules = [];
28
- let tokenRule = `html {`;
29
- const varsByValue = new Map();
30
- for (const key in config.tokens) {
31
- for (const skey in config.tokens[key]) {
32
- const v = config.tokens[key][skey];
33
- varsByValue[v.val] = v;
34
- tokenRule += `--${v.name}:${typeof v.val === "number" ? `${v.val}px` : v.val};`;
35
- }
36
- }
37
- cssRules.push(`${tokenRule}
38
- }`);
39
- for (const themeName in config.themes) {
40
- const theme = config.themes[themeName];
41
- let vars = "";
42
- for (const themeKey in theme) {
43
- const val = theme[themeKey];
44
- const getVariableCSS = /* @__PURE__ */ __name((inv) => {
45
- const v = varsByValue[inv] ?? inv;
46
- return isVariable(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`;
47
- }, "getVariableCSS");
48
- vars += getVariableCSS(val);
49
- if (!isVariable(val)) {
50
- theme[themeKey] = createVariable({
51
- name: themeKey,
52
- val
53
- });
54
- }
55
- }
56
- cssRules.push(`.${THEME_CLASS_PREFIX}${themeName} {
57
- ${vars}
58
- }`);
59
- }
60
- Object.freeze(cssRules);
61
- return {
62
- cssRules,
63
- css: cssRules.join("\n")
64
- };
65
- })();
66
- const tokensParsed = {};
67
- for (const key in config.tokens) {
68
- tokensParsed[key] = {};
69
- for (const skey in config.tokens[key]) {
70
- tokensParsed[key][`$${skey}`] = config.tokens[key][skey];
71
- }
72
- }
73
- const themeParsed = {};
74
- const firstKey = Object.keys(config.themes)[0];
75
- for (const key in config.themes[firstKey]) {
76
- themeParsed[`$${key}`] = config.themes[firstKey][key];
77
- }
78
- const next = {
79
- ...config,
80
- TamaguiProvider: createTamaguiProvider({
81
- defaultTheme: "light",
82
- ...config
83
- }),
84
- themeConfig,
85
- themeParsed,
86
- tokensParsed
87
- };
88
- conf = next;
89
- if (configListeners.size) {
90
- configListeners.forEach((cb) => cb(next));
91
- configListeners.clear();
92
- }
93
- return next;
94
- }
95
- __name(createTamagui, "createTamagui");
96
- function getThemeParentClassName(themeName) {
97
- return `theme-parent ${themeName ? `${THEME_CLASS_PREFIX}${themeName}` : ""}`;
98
- }
99
- __name(getThemeParentClassName, "getThemeParentClassName");
100
- export {
101
- createTamagui,
102
- getHasConfigured,
103
- getTamaguiConfig,
104
- getThemeParentClassName,
105
- onConfiguredOnce
106
- };
107
- //# sourceMappingURL=createTamagui.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/createTamagui.ts"],
4
- "sourcesContent": ["import { Variable, createVariable, isVariable } from './createVariable'\nimport { createTamaguiProvider } from './helpers/createTamaguiProvider'\nimport { configureMedia } from './hooks/useMedia'\nimport {\n CreateTamaguiConfig,\n GenericTamaguiConfig,\n MediaQueryKey,\n TamaguiInternalConfig,\n TamaguiProviderProps,\n} from './types'\n\nexport type CreateTamaguiProps = TamaguiProviderProps &\n // we omit and re-declare it because we need to allow instantation types to be flexible\n // user then re-defines the types after createTamagui returns the typed object they want\n Omit<GenericTamaguiConfig, 'themes'> & {\n themes: {\n [key: string]: {\n [key: string]: string | number | Variable\n }\n }\n // for ssr/native, will default to active\n mediaQueryDefaultActive?: MediaQueryKey[]\n }\n\nlet conf: TamaguiInternalConfig | null\n\nexport const getHasConfigured = () => !!conf\nexport const getTamaguiConfig = () => conf!\n\ntype ConfigListener = (conf: TamaguiInternalConfig) => void\nconst configListeners = new Set<ConfigListener>()\nexport const onConfiguredOnce = (cb: ConfigListener) => {\n if (conf) {\n cb(conf)\n } else {\n configListeners.add(cb)\n }\n}\n\nconst THEME_CLASS_PREFIX = `theme--`\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n config: Conf\n): Conf extends CreateTamaguiConfig<infer A, infer B, infer C, infer D>\n ? TamaguiInternalConfig<A, B, C, D>\n : unknown {\n if (conf) {\n throw new Error(`#000 createTamagui called twice`)\n }\n\n configureMedia({\n queries: config.media as any,\n defaultActive: config.mediaQueryDefaultActive,\n })\n\n const themeConfig = (() => {\n let cssRules: string[] = []\n\n // tokens\n let tokenRule = `html {`\n const varsByValue = new Map<string, Variable>()\n for (const key in config.tokens) {\n for (const skey in config.tokens[key]) {\n const v = config.tokens[key][skey]\n varsByValue[v.val] = v\n tokenRule += `--${v.name}:${typeof v.val === 'number' ? `${v.val}px` : v.val};`\n }\n }\n cssRules.push(`${tokenRule}\\n}`)\n\n // themes\n for (const themeName in config.themes) {\n const theme = config.themes[themeName]\n let vars = ''\n for (const themeKey in theme) {\n const val = theme[themeKey]\n const getVariableCSS = (inv: any) => {\n const v = varsByValue[inv] ?? inv\n return isVariable(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`\n }\n vars += getVariableCSS(val)\n // TODO sanity check is necessary\n // make everything a variable that gets put into css\n if (!isVariable(val)) {\n theme[themeKey] = createVariable({\n name: themeKey,\n val,\n })\n }\n }\n cssRules.push(`.${THEME_CLASS_PREFIX}${themeName} {\\n${vars}\\n}`)\n }\n\n Object.freeze(cssRules)\n\n return {\n cssRules,\n css: cssRules.join('\\n'),\n }\n })()\n\n // faster lookups\n // 1. token keys become $keys to match input\n // 2. merge in theme tokens\n const tokensParsed: any = {}\n for (const key in config.tokens) {\n tokensParsed[key] = {}\n for (const skey in config.tokens[key]) {\n tokensParsed[key][`$${skey}`] = config.tokens[key][skey]\n }\n }\n // all themes should match key and we just need variable name\n // TODO once w react native we'd want to have a reverse lookup back to value\n const themeParsed: any = {}\n const firstKey = Object.keys(config.themes)[0]\n for (const key in config.themes[firstKey]) {\n themeParsed[`$${key}`] = config.themes[firstKey][key]\n }\n\n const next: TamaguiInternalConfig = {\n ...config,\n TamaguiProvider: createTamaguiProvider({\n defaultTheme: 'light',\n ...config,\n }),\n themeConfig,\n themeParsed,\n tokensParsed,\n }\n conf = next\n\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(next))\n configListeners.clear()\n }\n\n // @ts-expect-error\n return next\n}\n\nexport function getThemeParentClassName(themeName?: string | null) {\n return `theme-parent ${themeName ? `${THEME_CLASS_PREFIX}${themeName}` : ''}`\n}\n\n// insertSheet() {\n// // TODO use new react method of inserting\n// const tag = createStyleTag()\n// for (const rule of cssRules) {\n// tag?.sheet?.insertRule(rule)\n// }\n// },\n\n// function createStyleTag(): HTMLStyleElement | null {\n// if (typeof document === 'undefined') {\n// return null\n// }\n// const tag = document.createElement('style')\n// tag.className = 'tamagui-css-vars'\n// tag.setAttribute('type', 'text/css')\n// tag.appendChild(document.createTextNode(''))\n// if (!document.head) {\n// throw new Error('expected head')\n// }\n// document.head.appendChild(tag)\n// return tag\n// }\n"],
5
- "mappings": ";;AAAA;AACA;AACA;AAsBA,IAAI;AAEG,MAAM,mBAAmB,6BAAM,CAAC,CAAC,MAAR;AACzB,MAAM,mBAAmB,6BAAM,MAAN;AAGhC,MAAM,kBAAkB,IAAI;AACrB,MAAM,mBAAmB,wBAAC,OAAuB;AACtD,MAAI,MAAM;AACR,OAAG;AAAA,SACE;AACL,oBAAgB,IAAI;AAAA;AAAA,GAJQ;AAQhC,MAAM,qBAAqB;AAEpB,uBACL,QAGU;AACV,MAAI,MAAM;AACR,UAAM,IAAI,MAAM;AAAA;AAGlB,iBAAe;AAAA,IACb,SAAS,OAAO;AAAA,IAChB,eAAe,OAAO;AAAA;AAGxB,QAAM,cAAe,OAAM;AACzB,QAAI,WAAqB;AAGzB,QAAI,YAAY;AAChB,UAAM,cAAc,IAAI;AACxB,eAAW,OAAO,OAAO,QAAQ;AAC/B,iBAAW,QAAQ,OAAO,OAAO,MAAM;AACrC,cAAM,IAAI,OAAO,OAAO,KAAK;AAC7B,oBAAY,EAAE,OAAO;AACrB,qBAAa,KAAK,EAAE,QAAQ,OAAO,EAAE,QAAQ,WAAW,GAAG,EAAE,UAAU,EAAE;AAAA;AAAA;AAG7E,aAAS,KAAK,GAAG;AAAA;AAGjB,eAAW,aAAa,OAAO,QAAQ;AACrC,YAAM,QAAQ,OAAO,OAAO;AAC5B,UAAI,OAAO;AACX,iBAAW,YAAY,OAAO;AAC5B,cAAM,MAAM,MAAM;AAClB,cAAM,iBAAiB,wBAAC,QAAa;AACnC,gBAAM,IAAI,YAAY,QAAQ;AAC9B,iBAAO,WAAW,KAAK,KAAK,kBAAkB,EAAE,WAAW,KAAK,YAAY;AAAA,WAFvD;AAIvB,gBAAQ,eAAe;AAGvB,YAAI,CAAC,WAAW,MAAM;AACpB,gBAAM,YAAY,eAAe;AAAA,YAC/B,MAAM;AAAA,YACN;AAAA;AAAA;AAAA;AAIN,eAAS,KAAK,IAAI,qBAAqB;AAAA,EAAgB;AAAA;AAAA;AAGzD,WAAO,OAAO;AAEd,WAAO;AAAA,MACL;AAAA,MACA,KAAK,SAAS,KAAK;AAAA;AAAA;AAOvB,QAAM,eAAoB;AAC1B,aAAW,OAAO,OAAO,QAAQ;AAC/B,iBAAa,OAAO;AACpB,eAAW,QAAQ,OAAO,OAAO,MAAM;AACrC,mBAAa,KAAK,IAAI,UAAU,OAAO,OAAO,KAAK;AAAA;AAAA;AAKvD,QAAM,cAAmB;AACzB,QAAM,WAAW,OAAO,KAAK,OAAO,QAAQ;AAC5C,aAAW,OAAO,OAAO,OAAO,WAAW;AACzC,gBAAY,IAAI,SAAS,OAAO,OAAO,UAAU;AAAA;AAGnD,QAAM,OAA8B;AAAA,OAC/B;AAAA,IACH,iBAAiB,sBAAsB;AAAA,MACrC,cAAc;AAAA,SACX;AAAA;AAAA,IAEL;AAAA,IACA;AAAA,IACA;AAAA;AAEF,SAAO;AAEP,MAAI,gBAAgB,MAAM;AACxB,oBAAgB,QAAQ,CAAC,OAAO,GAAG;AACnC,oBAAgB;AAAA;AAIlB,SAAO;AAAA;AAhGO;AAmGT,iCAAiC,WAA2B;AACjE,SAAO,gBAAgB,YAAY,GAAG,qBAAqB,cAAc;AAAA;AAD3D;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/createTokens.ts"],
4
- "sourcesContent": ["import { Variable, createVariable } from './createVariable'\nimport { CreateTokens } from './types'\n\n// tokens.color.dark.red ===>{ var: `color-dark-red`, val: '' }\n\nexport function createTokens(tokens: CreateTokens) {\n return setupTokens(tokens)\n}\n\nfunction setupTokens(tokens: any) {\n return mapTokensToVariables(tokens)\n}\n\nexport const mapTokensToVariables = (\n tokens: CreateTokens,\n parentPath = ''\n): CreateTokens<Variable> => {\n const res = {}\n for (const key in tokens) {\n const val = tokens[key]\n const name = parentPath ? `${parentPath}-${key}` : key\n if (val && typeof val === 'object') {\n res[key] = mapTokensToVariables(tokens[key], name)\n } else {\n res[key] = createVariable({ val, name })\n }\n }\n // @ts-expect-error\n return res\n}\n"],
5
- "mappings": ";;AAAA;AAKO,sBAAsB,QAAsB;AACjD,SAAO,YAAY;AAAA;AADL;AAIhB,qBAAqB,QAAa;AAChC,SAAO,qBAAqB;AAAA;AADrB;AAIF,MAAM,uBAAuB,wBAClC,QACA,aAAa,OACc;AAC3B,QAAM,MAAM;AACZ,aAAW,OAAO,QAAQ;AACxB,UAAM,MAAM,OAAO;AACnB,UAAM,OAAO,aAAa,GAAG,cAAc,QAAQ;AACnD,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,UAAI,OAAO,qBAAqB,OAAO,MAAM;AAAA,WACxC;AACL,UAAI,OAAO,eAAe,EAAE,KAAK;AAAA;AAAA;AAIrC,SAAO;AAAA,GAf2B;",
6
- "names": []
7
- }