@tamagui/core 1.0.0-alpha.9 → 1.0.0-beta.0.209

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 (639) hide show
  1. package/dist/cjs/Tamagui.js +69 -0
  2. package/dist/cjs/Tamagui.js.map +7 -0
  3. package/dist/cjs/ThemeContext.js +29 -0
  4. package/dist/cjs/ThemeContext.js.map +7 -0
  5. package/dist/cjs/ThemeManager.js +211 -0
  6. package/dist/cjs/ThemeManager.js.map +7 -0
  7. package/dist/cjs/conf.js +64 -0
  8. package/dist/cjs/conf.js.map +7 -0
  9. package/dist/cjs/constants/constants.js +21 -15
  10. package/dist/cjs/constants/constants.js.map +2 -2
  11. package/dist/cjs/constants/platform.js +33 -18
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/rnw.js +21 -3
  14. package/dist/cjs/constants/rnw.js.map +2 -2
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +29 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +7 -0
  17. package/dist/cjs/createComponent.js +371 -225
  18. package/dist/cjs/createComponent.js.map +2 -2
  19. package/dist/cjs/createFont.js +15 -15
  20. package/dist/cjs/createFont.js.map +1 -1
  21. package/dist/cjs/createShorthands.js +19 -3
  22. package/dist/cjs/createShorthands.js.map +1 -1
  23. package/dist/cjs/createTamagui.js +155 -122
  24. package/dist/cjs/createTamagui.js.map +2 -2
  25. package/dist/cjs/createTheme.js +15 -28
  26. package/dist/cjs/createTheme.js.map +2 -2
  27. package/dist/cjs/createTokens.js +19 -22
  28. package/dist/cjs/createTokens.js.map +2 -2
  29. package/dist/cjs/createVariable.js +49 -19
  30. package/dist/cjs/createVariable.js.map +2 -2
  31. package/dist/cjs/defaultComponentState.js +1 -0
  32. package/dist/{helpers/pseudos.js.map → cjs/defaultComponentState.js.map} +0 -0
  33. package/dist/cjs/helpers/RNComponents.js +38 -0
  34. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  35. package/dist/cjs/helpers/addStylesUsingClassname.js +37 -29
  36. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  37. package/dist/cjs/helpers/areEqualSets.js +38 -0
  38. package/dist/cjs/helpers/areEqualSets.js.map +7 -0
  39. package/dist/cjs/helpers/createMediaStyle.js +19 -21
  40. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  41. package/dist/cjs/helpers/createPropMapper.js +157 -119
  42. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  43. package/dist/cjs/helpers/createShallowUpdate.js +55 -0
  44. package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
  45. package/dist/cjs/helpers/createTamaguiProvider.js +45 -26
  46. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  47. package/dist/cjs/helpers/extendStaticConfig.js +27 -27
  48. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  49. package/dist/cjs/helpers/fixNativeShadow.js +19 -3
  50. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  51. package/dist/cjs/helpers/fixNativeShadow.native.js +42 -22
  52. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  53. package/dist/cjs/helpers/getExpandedShorthands.js +41 -0
  54. package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
  55. package/dist/cjs/helpers/getSize.js +35 -0
  56. package/dist/cjs/helpers/getSize.js.map +7 -0
  57. package/dist/cjs/helpers/getSplitStyles.js +225 -98
  58. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  59. package/dist/cjs/helpers/getStylesAtomic.js +116 -56
  60. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  61. package/dist/cjs/helpers/getStylesAtomic.native.js +19 -3
  62. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  63. package/dist/cjs/helpers/insertStyleRule.js +101 -25
  64. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  65. package/dist/cjs/helpers/isObj.js +19 -3
  66. package/dist/cjs/helpers/isObj.js.map +1 -1
  67. package/dist/cjs/helpers/isTamaguiElement.js +15 -15
  68. package/dist/cjs/helpers/isTamaguiElement.js.map +1 -1
  69. package/dist/cjs/helpers/matchMedia.js +19 -3
  70. package/dist/cjs/helpers/matchMedia.js.map +1 -1
  71. package/dist/cjs/helpers/matchMedia.native.js +16 -13
  72. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  73. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  74. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  75. package/dist/cjs/helpers/themeable.js +29 -24
  76. package/dist/cjs/helpers/themeable.js.map +2 -2
  77. package/dist/cjs/helpers/validate.js +88 -47
  78. package/dist/cjs/helpers/validate.js.map +2 -2
  79. package/dist/cjs/helpers/withStaticProperties.js +32 -0
  80. package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
  81. package/dist/cjs/helpers/wrapThemeManagerContext.js +39 -0
  82. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +7 -0
  83. package/dist/cjs/hooks/useConstant.js +15 -15
  84. package/dist/cjs/hooks/useConstant.js.map +1 -1
  85. package/dist/cjs/hooks/useFeatures.js +146 -18
  86. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  87. package/dist/cjs/hooks/useIsMounted.js +41 -0
  88. package/dist/cjs/hooks/useIsMounted.js.map +7 -0
  89. package/dist/cjs/hooks/useIsTouchDevice.js +39 -0
  90. package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
  91. package/dist/cjs/hooks/useMedia.js +54 -59
  92. package/dist/cjs/hooks/useMedia.js.map +2 -2
  93. package/dist/cjs/hooks/usePressable.js +15 -15
  94. package/dist/cjs/hooks/usePressable.js.map +1 -1
  95. package/dist/cjs/hooks/useTheme.js +175 -67
  96. package/dist/cjs/hooks/useTheme.js.map +2 -2
  97. package/dist/cjs/hooks/useUnmountEffect.js +33 -0
  98. package/dist/cjs/hooks/useUnmountEffect.js.map +7 -0
  99. package/dist/cjs/index.js +71 -43
  100. package/dist/cjs/index.js.map +2 -2
  101. package/dist/cjs/static.js +26 -27
  102. package/dist/cjs/static.js.map +2 -2
  103. package/dist/cjs/styled.js +42 -20
  104. package/dist/cjs/styled.js.map +3 -3
  105. package/dist/cjs/types-rnw.js +16 -0
  106. package/dist/cjs/types-rnw.js.map +7 -0
  107. package/dist/cjs/types.js +14 -2
  108. package/dist/cjs/types.js.map +2 -2
  109. package/dist/cjs/views/Stack.js +17 -16
  110. package/dist/cjs/views/Stack.js.map +2 -2
  111. package/dist/cjs/views/Text.js +23 -21
  112. package/dist/cjs/views/Text.js.map +2 -2
  113. package/dist/cjs/views/TextAncestorContext.js +25 -21
  114. package/dist/cjs/views/TextAncestorContext.js.map +2 -2
  115. package/dist/cjs/views/Theme.js +36 -64
  116. package/dist/cjs/views/Theme.js.map +2 -2
  117. package/dist/cjs/views/ThemeInverse.js +20 -16
  118. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  119. package/dist/cjs/views/ThemeProvider.js +37 -37
  120. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  121. package/dist/cjs/views/ThemeReset.js +63 -0
  122. package/dist/cjs/views/ThemeReset.js.map +7 -0
  123. package/dist/esm/Tamagui.js +42 -0
  124. package/dist/esm/Tamagui.js.map +7 -0
  125. package/dist/{views → esm}/ThemeContext.js +0 -0
  126. package/dist/esm/ThemeContext.js.map +7 -0
  127. package/dist/esm/ThemeManager.js +187 -0
  128. package/dist/esm/ThemeManager.js.map +7 -0
  129. package/dist/esm/conf.js +36 -0
  130. package/dist/esm/conf.js.map +7 -0
  131. package/dist/{constants → esm/constants}/constants.js +4 -0
  132. package/dist/esm/constants/constants.js.map +7 -0
  133. package/dist/{constants → esm/constants}/platform.js +8 -1
  134. package/dist/esm/constants/platform.js.map +7 -0
  135. package/dist/{constants → esm/constants}/rnw.js +2 -0
  136. package/dist/esm/constants/rnw.js.map +7 -0
  137. package/dist/esm/contexts/ButtonInsideButtonContext.js +6 -0
  138. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +7 -0
  139. package/dist/esm/createComponent.js +606 -0
  140. package/dist/esm/createComponent.js.map +7 -0
  141. package/dist/{createFont.js → esm/createFont.js} +0 -0
  142. package/dist/{createFont.js.map → esm/createFont.js.map} +2 -2
  143. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  144. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +2 -2
  145. package/dist/esm/createTamagui.js +201 -0
  146. package/dist/esm/createTamagui.js.map +7 -0
  147. package/dist/esm/createTheme.js +7 -0
  148. package/dist/esm/createTheme.js.map +7 -0
  149. package/dist/{createTokens.js → esm/createTokens.js} +2 -6
  150. package/dist/esm/createTokens.js.map +7 -0
  151. package/dist/esm/createVariable.js +49 -0
  152. package/dist/esm/createVariable.js.map +7 -0
  153. package/dist/esm/defaultComponentState.js +1 -0
  154. package/dist/{types.js.map → esm/defaultComponentState.js.map} +0 -0
  155. package/dist/esm/helpers/RNComponents.js +12 -0
  156. package/dist/esm/helpers/RNComponents.js.map +7 -0
  157. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +20 -13
  158. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  159. package/dist/esm/helpers/areEqualSets.js +16 -0
  160. package/dist/esm/helpers/areEqualSets.js.map +7 -0
  161. package/dist/{helpers → esm/helpers}/createMediaStyle.js +3 -6
  162. package/dist/esm/helpers/createMediaStyle.js.map +7 -0
  163. package/dist/esm/helpers/createPropMapper.js +206 -0
  164. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  165. package/dist/esm/helpers/createShallowUpdate.js +19 -0
  166. package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
  167. package/dist/esm/helpers/createTamaguiProvider.js +40 -0
  168. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  169. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +17 -14
  170. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  171. package/dist/{helpers → esm/helpers}/fixNativeShadow.js +0 -0
  172. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +2 -2
  173. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  174. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  175. package/dist/esm/helpers/getExpandedShorthands.js +19 -0
  176. package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
  177. package/dist/esm/helpers/getSize.js +13 -0
  178. package/dist/esm/helpers/getSize.js.map +7 -0
  179. package/dist/esm/helpers/getSplitStyles.js +278 -0
  180. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  181. package/dist/esm/helpers/getStylesAtomic.js +131 -0
  182. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  183. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js +0 -0
  184. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js.map +2 -2
  185. package/dist/esm/helpers/insertStyleRule.js +94 -0
  186. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  187. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  188. package/dist/{helpers → esm/helpers}/isObj.js.map +2 -2
  189. package/dist/{helpers → esm/helpers}/isTamaguiElement.js +2 -1
  190. package/dist/{helpers → esm/helpers}/isTamaguiElement.js.map +2 -2
  191. package/dist/{helpers → esm/helpers}/matchMedia.js +0 -0
  192. package/dist/{helpers → esm/helpers}/matchMedia.js.map +2 -2
  193. package/dist/{helpers → esm/helpers}/matchMedia.native.js +0 -0
  194. package/dist/{helpers → esm/helpers}/matchMedia.native.js.map +2 -2
  195. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  196. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  197. package/dist/{helpers → esm/helpers}/themeable.js +12 -10
  198. package/dist/esm/helpers/themeable.js.map +7 -0
  199. package/dist/esm/helpers/validate.js +76 -0
  200. package/dist/esm/helpers/validate.js.map +7 -0
  201. package/dist/esm/helpers/withStaticProperties.js +10 -0
  202. package/dist/esm/helpers/withStaticProperties.js.map +7 -0
  203. package/dist/esm/helpers/wrapThemeManagerContext.js +14 -0
  204. package/dist/esm/helpers/wrapThemeManagerContext.js.map +7 -0
  205. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  206. package/dist/{hooks → esm/hooks}/useConstant.js.map +2 -2
  207. package/dist/esm/hooks/useFeatures.js +173 -0
  208. package/dist/esm/hooks/useFeatures.js.map +7 -0
  209. package/dist/esm/hooks/useIsMounted.js +19 -0
  210. package/dist/esm/hooks/useIsMounted.js.map +7 -0
  211. package/dist/esm/hooks/useIsTouchDevice.js +17 -0
  212. package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
  213. package/dist/{hooks → esm/hooks}/useMedia.js +31 -42
  214. package/dist/esm/hooks/useMedia.js.map +7 -0
  215. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  216. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  217. package/dist/esm/hooks/useTheme.js +178 -0
  218. package/dist/esm/hooks/useTheme.js.map +7 -0
  219. package/dist/esm/hooks/useUnmountEffect.js +11 -0
  220. package/dist/esm/hooks/useUnmountEffect.js.map +7 -0
  221. package/dist/{index.js → esm/index.js} +25 -5
  222. package/dist/esm/index.js.map +7 -0
  223. package/dist/{static.js → esm/static.js} +4 -2
  224. package/dist/esm/static.js.map +7 -0
  225. package/dist/esm/styled.js +45 -0
  226. package/dist/esm/styled.js.map +7 -0
  227. package/dist/esm/types-rnw.js +1 -0
  228. package/dist/esm/types-rnw.js.map +7 -0
  229. package/dist/{types.js → esm/types.js} +0 -0
  230. package/dist/esm/types.js.map +7 -0
  231. package/dist/{views → esm/views}/Stack.js +1 -0
  232. package/dist/esm/views/Stack.js.map +7 -0
  233. package/dist/{views → esm/views}/Text.js +6 -4
  234. package/dist/esm/views/Text.js.map +7 -0
  235. package/dist/esm/views/TextAncestorContext.js +18 -0
  236. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  237. package/dist/esm/views/Theme.js +35 -0
  238. package/dist/esm/views/Theme.js.map +7 -0
  239. package/dist/{views → esm/views}/ThemeInverse.js +1 -1
  240. package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
  241. package/dist/esm/views/ThemeProvider.js +42 -0
  242. package/dist/esm/views/ThemeProvider.js.map +7 -0
  243. package/dist/esm/views/ThemeReset.js +38 -0
  244. package/dist/esm/views/ThemeReset.js.map +7 -0
  245. package/dist/jsx/Tamagui.js +41 -0
  246. package/dist/jsx/ThemeContext.js +5 -0
  247. package/dist/jsx/ThemeManager.js +186 -0
  248. package/dist/jsx/conf.js +35 -0
  249. package/dist/jsx/constants/constants.js +17 -0
  250. package/dist/jsx/constants/platform.js +25 -0
  251. package/dist/jsx/constants/rnw.js +23 -0
  252. package/dist/jsx/contexts/ButtonInsideButtonContext.js +5 -0
  253. package/dist/jsx/createComponent.js +592 -0
  254. package/dist/jsx/createFont.js +27 -0
  255. package/dist/jsx/createShorthands.js +9 -0
  256. package/dist/jsx/createTamagui.js +200 -0
  257. package/dist/jsx/createTheme.js +6 -0
  258. package/dist/jsx/createTokens.js +28 -0
  259. package/dist/jsx/createVariable.js +48 -0
  260. package/dist/jsx/defaultComponentState.js +0 -0
  261. package/dist/jsx/helpers/RNComponents.js +11 -0
  262. package/dist/jsx/helpers/addStylesUsingClassname.js +63 -0
  263. package/dist/jsx/helpers/areEqualSets.js +15 -0
  264. package/dist/jsx/helpers/createMediaStyle.js +30 -0
  265. package/dist/jsx/helpers/createPropMapper.js +205 -0
  266. package/dist/jsx/helpers/createShallowUpdate.js +18 -0
  267. package/dist/jsx/helpers/createTamaguiProvider.js +34 -0
  268. package/dist/jsx/helpers/extendStaticConfig.js +61 -0
  269. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  270. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  271. package/dist/jsx/helpers/getExpandedShorthands.js +18 -0
  272. package/dist/jsx/helpers/getSize.js +12 -0
  273. package/dist/jsx/helpers/getSplitStyles.js +277 -0
  274. package/dist/jsx/helpers/getStylesAtomic.js +130 -0
  275. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  276. package/dist/jsx/helpers/insertStyleRule.js +93 -0
  277. package/dist/jsx/helpers/isObj.js +6 -0
  278. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  279. package/dist/jsx/helpers/matchMedia.js +17 -0
  280. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  281. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  282. package/dist/jsx/helpers/themeable.js +24 -0
  283. package/dist/jsx/helpers/validate.js +75 -0
  284. package/dist/jsx/helpers/withStaticProperties.js +9 -0
  285. package/dist/jsx/helpers/wrapThemeManagerContext.js +10 -0
  286. package/dist/jsx/hooks/useConstant.js +14 -0
  287. package/dist/jsx/hooks/useFeatures.js +167 -0
  288. package/dist/jsx/hooks/useIsMounted.js +18 -0
  289. package/dist/jsx/hooks/useIsTouchDevice.js +16 -0
  290. package/dist/jsx/hooks/useMedia.js +159 -0
  291. package/dist/jsx/hooks/usePressable.js +13 -0
  292. package/dist/jsx/hooks/useTheme.js +177 -0
  293. package/dist/jsx/hooks/useUnmountEffect.js +10 -0
  294. package/dist/jsx/index.js +51 -0
  295. package/dist/jsx/static.js +16 -0
  296. package/dist/jsx/styled.js +44 -0
  297. package/dist/jsx/types-rnw.js +0 -0
  298. package/dist/jsx/types.js +0 -0
  299. package/dist/jsx/views/Stack.js +12 -0
  300. package/dist/jsx/views/Text.js +61 -0
  301. package/dist/jsx/views/TextAncestorContext.js +15 -0
  302. package/dist/jsx/views/Theme.js +31 -0
  303. package/dist/jsx/views/ThemeInverse.js +22 -0
  304. package/dist/jsx/views/ThemeProvider.js +35 -0
  305. package/dist/jsx/views/ThemeReset.js +34 -0
  306. package/package.json +22 -20
  307. package/types/Tamagui.d.ts +30 -0
  308. package/types/Tamagui.d.ts.map +1 -0
  309. package/types/ThemeContext.d.ts +7 -0
  310. package/types/ThemeContext.d.ts.map +1 -0
  311. package/types/ThemeManager.d.ts +49 -0
  312. package/types/ThemeManager.d.ts.map +1 -0
  313. package/types/conf.d.ts +27 -0
  314. package/types/conf.d.ts.map +1 -0
  315. package/{dist/packages/core/src → types}/constants/constants.d.ts +2 -0
  316. package/types/constants/constants.d.ts.map +1 -0
  317. package/{dist/packages/core/src → types}/constants/platform.d.ts +3 -0
  318. package/types/constants/platform.d.ts.map +1 -0
  319. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  320. package/types/constants/rnw.d.ts.map +1 -0
  321. package/types/contexts/ButtonInsideButtonContext.d.ts +3 -0
  322. package/types/contexts/ButtonInsideButtonContext.d.ts.map +1 -0
  323. package/types/createComponent.d.ts +19 -0
  324. package/types/createComponent.d.ts.map +1 -0
  325. package/types/createFont.d.ts +3 -0
  326. package/types/createFont.d.ts.map +1 -0
  327. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  328. package/types/createShorthands.d.ts.map +1 -0
  329. package/types/createTamagui.d.ts +17 -0
  330. package/types/createTamagui.d.ts.map +1 -0
  331. package/types/createTheme.d.ts +7 -0
  332. package/types/createTheme.d.ts.map +1 -0
  333. package/{dist/packages/core/src → types}/createTokens.d.ts +0 -16
  334. package/types/createTokens.d.ts.map +1 -0
  335. package/types/createVariable.d.ts +20 -0
  336. package/types/createVariable.d.ts.map +1 -0
  337. package/types/defaultComponentState.d.ts +1 -0
  338. package/types/defaultComponentState.d.ts.map +1 -0
  339. package/types/helpers/RNComponents.d.ts +2 -0
  340. package/types/helpers/RNComponents.d.ts.map +1 -0
  341. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  342. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  343. package/types/helpers/areEqualSets.d.ts +2 -0
  344. package/types/helpers/areEqualSets.d.ts.map +1 -0
  345. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +1 -1
  346. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  347. package/types/helpers/createPropMapper.d.ts +4 -0
  348. package/types/helpers/createPropMapper.d.ts.map +1 -0
  349. package/types/helpers/createShallowUpdate.d.ts +4 -0
  350. package/types/helpers/createShallowUpdate.d.ts.map +1 -0
  351. package/types/helpers/createTamaguiProvider.d.ts +7 -0
  352. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  353. package/types/helpers/extendStaticConfig.d.ts +4 -0
  354. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  355. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  356. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  357. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  358. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  359. package/types/helpers/getExpandedShorthands.d.ts +3 -0
  360. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  361. package/types/helpers/getSize.d.ts +3 -0
  362. package/types/helpers/getSize.d.ts.map +1 -0
  363. package/types/helpers/getSplitStyles.d.ts +19 -0
  364. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  365. package/types/helpers/getStylesAtomic.d.ts +27 -0
  366. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  367. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  368. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  369. package/types/helpers/insertStyleRule.d.ts +8 -0
  370. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  371. package/types/helpers/isObj.d.ts +2 -0
  372. package/types/helpers/isObj.d.ts.map +1 -0
  373. package/types/helpers/isTamaguiElement.d.ts +3 -0
  374. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  375. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  376. package/types/helpers/matchMedia.d.ts.map +1 -0
  377. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  378. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  379. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  380. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  381. package/types/helpers/themeable.d.ts +12 -0
  382. package/types/helpers/themeable.d.ts.map +1 -0
  383. package/types/helpers/validate.d.ts +4 -0
  384. package/types/helpers/validate.d.ts.map +1 -0
  385. package/types/helpers/withStaticProperties.d.ts +2 -0
  386. package/types/helpers/withStaticProperties.d.ts.map +1 -0
  387. package/types/helpers/wrapThemeManagerContext.d.ts +3 -0
  388. package/types/helpers/wrapThemeManagerContext.d.ts.map +1 -0
  389. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  390. package/types/hooks/useConstant.d.ts.map +1 -0
  391. package/types/hooks/useFeatures.d.ts +18 -0
  392. package/types/hooks/useFeatures.d.ts.map +1 -0
  393. package/types/hooks/useIsMounted.d.ts +3 -0
  394. package/types/hooks/useIsMounted.d.ts.map +1 -0
  395. package/types/hooks/useIsTouchDevice.d.ts +2 -0
  396. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  397. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +3 -3
  398. package/types/hooks/useMedia.d.ts.map +1 -0
  399. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  400. package/types/hooks/usePressable.d.ts.map +1 -0
  401. package/types/hooks/useTheme.d.ts +36 -0
  402. package/types/hooks/useTheme.d.ts.map +1 -0
  403. package/types/hooks/useUnmountEffect.d.ts +2 -0
  404. package/types/hooks/useUnmountEffect.d.ts.map +1 -0
  405. package/types/index.d.ts +42 -0
  406. package/types/index.d.ts.map +1 -0
  407. package/{dist/packages/core/src → types}/static.d.ts +7 -2
  408. package/types/static.d.ts.map +1 -0
  409. package/types/styled.d.ts +16 -0
  410. package/types/styled.d.ts.map +1 -0
  411. package/types/types-rnw.d.ts +74 -0
  412. package/types/types-rnw.d.ts.map +1 -0
  413. package/types/types.d.ts +406 -0
  414. package/types/types.d.ts.map +1 -0
  415. package/types/views/Stack.d.ts +4 -0
  416. package/types/views/Stack.d.ts.map +1 -0
  417. package/types/views/Text.d.ts +4 -0
  418. package/types/views/Text.d.ts.map +1 -0
  419. package/types/views/TextAncestorContext.d.ts +5 -0
  420. package/types/views/TextAncestorContext.d.ts.map +1 -0
  421. package/types/views/Theme.d.ts +12 -0
  422. package/types/views/Theme.d.ts.map +1 -0
  423. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  424. package/types/views/ThemeInverse.d.ts.map +1 -0
  425. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +1 -1
  426. package/types/views/ThemeProvider.d.ts.map +1 -0
  427. package/types/views/ThemeReset.d.ts +4 -0
  428. package/types/views/ThemeReset.d.ts.map +1 -0
  429. package/dist/cjs/constants/pseudos.js +0 -25
  430. package/dist/cjs/constants/pseudos.js.map +0 -7
  431. package/dist/cjs/static/postProcessStyles.js +0 -40
  432. package/dist/cjs/static/postProcessStyles.js.map +0 -7
  433. package/dist/cjs/views/Animated.js +0 -129
  434. package/dist/cjs/views/Animated.js.map +0 -7
  435. package/dist/cjs/views/ThemeContext.js +0 -29
  436. package/dist/cjs/views/ThemeContext.js.map +0 -7
  437. package/dist/cjs/views/ThemeManagerContext.js +0 -84
  438. package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
  439. package/dist/constants/constants.js.map +0 -7
  440. package/dist/constants/platform.js.map +0 -7
  441. package/dist/constants/pseudos.js +0 -18
  442. package/dist/constants/pseudos.js.map +0 -7
  443. package/dist/constants/rnw.js.map +0 -7
  444. package/dist/constants/styleConstants.js +0 -46
  445. package/dist/constants/styleConstants.js.map +0 -7
  446. package/dist/createComponent.js +0 -463
  447. package/dist/createComponent.js.map +0 -7
  448. package/dist/createTamagui.js +0 -168
  449. package/dist/createTamagui.js.map +0 -7
  450. package/dist/createTheme.js +0 -20
  451. package/dist/createTheme.js.map +0 -7
  452. package/dist/createTokens.js.map +0 -7
  453. package/dist/createVariable.js +0 -25
  454. package/dist/createVariable.js.map +0 -7
  455. package/dist/helpers/addStylesUsingClassname.js.map +0 -7
  456. package/dist/helpers/createMediaStyle.js.map +0 -7
  457. package/dist/helpers/createPropMapper.js +0 -153
  458. package/dist/helpers/createPropMapper.js.map +0 -7
  459. package/dist/helpers/createTamaguiProvider.js +0 -25
  460. package/dist/helpers/createTamaguiProvider.js.map +0 -7
  461. package/dist/helpers/extendStaticConfig.js.map +0 -7
  462. package/dist/helpers/fixNativeShadow.native.js +0 -30
  463. package/dist/helpers/fixNativeShadow.native.js.map +0 -7
  464. package/dist/helpers/getSplitStyles.js +0 -150
  465. package/dist/helpers/getSplitStyles.js.map +0 -7
  466. package/dist/helpers/getStylesAtomic.js +0 -83
  467. package/dist/helpers/getStylesAtomic.js.map +0 -7
  468. package/dist/helpers/insertStyleRule.js +0 -24
  469. package/dist/helpers/insertStyleRule.js.map +0 -7
  470. package/dist/helpers/isComponent.js +0 -10
  471. package/dist/helpers/isComponent.js.map +0 -7
  472. package/dist/helpers/isTamaguiComponent.js +0 -10
  473. package/dist/helpers/isTamaguiComponent.js.map +0 -7
  474. package/dist/helpers/pseudos.js +0 -1
  475. package/dist/helpers/themeable.js.map +0 -7
  476. package/dist/helpers/validate.js +0 -60
  477. package/dist/helpers/validate.js.map +0 -7
  478. package/dist/helpers/validateConfig.js +0 -46
  479. package/dist/helpers/validateConfig.js.map +0 -7
  480. package/dist/helpers/validateTokens.js +0 -29
  481. package/dist/helpers/validateTokens.js.map +0 -7
  482. package/dist/hooks/useFeatures.js +0 -63
  483. package/dist/hooks/useFeatures.js.map +0 -7
  484. package/dist/hooks/useForceUpdate.js +0 -28
  485. package/dist/hooks/useForceUpdate.js.map +0 -7
  486. package/dist/hooks/useMedia.js.map +0 -7
  487. package/dist/hooks/useTheme.js +0 -89
  488. package/dist/hooks/useTheme.js.map +0 -7
  489. package/dist/index.cjs +0 -2202
  490. package/dist/index.cjs.map +0 -7
  491. package/dist/index.js.map +0 -7
  492. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  493. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  494. package/dist/packages/core/src/constants/pseudos.d.ts +0 -15
  495. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  496. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  497. package/dist/packages/core/src/createComponent.d.ts +0 -16
  498. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  499. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  500. package/dist/packages/core/src/createTamagui.d.ts +0 -37
  501. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  502. package/dist/packages/core/src/createTheme.d.ts +0 -5
  503. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  504. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  505. package/dist/packages/core/src/createVariable.d.ts +0 -14
  506. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  507. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  508. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  509. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  510. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts +0 -5
  511. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  512. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts +0 -5
  513. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  514. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  515. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +0 -2
  516. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  517. package/dist/packages/core/src/helpers/getSplitStyles.d.ts +0 -15
  518. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  519. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  520. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  521. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  522. package/dist/packages/core/src/helpers/insertStyleRule.d.ts +0 -2
  523. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  524. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  525. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  526. package/dist/packages/core/src/helpers/themeable.d.ts +0 -10
  527. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  528. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  529. package/dist/packages/core/src/hooks/useFeatures.d.ts +0 -5
  530. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  531. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  532. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  533. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  534. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  535. package/dist/packages/core/src/hooks/useTheme.d.ts +0 -18
  536. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  537. package/dist/packages/core/src/index.d.ts +0 -27
  538. package/dist/packages/core/src/index.d.ts.map +0 -1
  539. package/dist/packages/core/src/static/postProcessStyles.d.ts +0 -7
  540. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  541. package/dist/packages/core/src/static.d.ts.map +0 -1
  542. package/dist/packages/core/src/styled.d.ts +0 -16
  543. package/dist/packages/core/src/styled.d.ts.map +0 -1
  544. package/dist/packages/core/src/types.d.ts +0 -305
  545. package/dist/packages/core/src/types.d.ts.map +0 -1
  546. package/dist/packages/core/src/views/Animated.d.ts +0 -15
  547. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  548. package/dist/packages/core/src/views/Stack.d.ts +0 -3
  549. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  550. package/dist/packages/core/src/views/Text.d.ts +0 -3
  551. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  552. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  553. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  554. package/dist/packages/core/src/views/Theme.d.ts +0 -8
  555. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  556. package/dist/packages/core/src/views/ThemeContext.d.ts +0 -18
  557. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  558. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  559. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  560. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  561. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  562. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  563. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  564. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  565. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  566. package/dist/packages/helpers/src/index.d.ts +0 -5
  567. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  568. package/dist/packages/helpers/src/types.d.ts +0 -8
  569. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  570. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  571. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  572. package/dist/static/postProcessStyles.js +0 -18
  573. package/dist/static/postProcessStyles.js.map +0 -7
  574. package/dist/static.js.map +0 -7
  575. package/dist/styled.js +0 -21
  576. package/dist/styled.js.map +0 -7
  577. package/dist/views/Animated.js +0 -79
  578. package/dist/views/Animated.js.map +0 -7
  579. package/dist/views/SafeAreaProvider.js +0 -30
  580. package/dist/views/SafeAreaProvider.js.map +0 -7
  581. package/dist/views/Stack.js.map +0 -7
  582. package/dist/views/Text.js.map +0 -7
  583. package/dist/views/TextAncestorContext.js +0 -18
  584. package/dist/views/TextAncestorContext.js.map +0 -7
  585. package/dist/views/Theme.js +0 -65
  586. package/dist/views/Theme.js.map +0 -7
  587. package/dist/views/ThemeContext.js.map +0 -7
  588. package/dist/views/ThemeManagerContext.js +0 -61
  589. package/dist/views/ThemeManagerContext.js.map +0 -7
  590. package/dist/views/ThemeProvider.js +0 -45
  591. package/dist/views/ThemeProvider.js.map +0 -7
  592. package/src/constants/constants.ts +0 -12
  593. package/src/constants/platform.ts +0 -15
  594. package/src/constants/pseudos.ts +0 -14
  595. package/src/constants/rnw.tsx +0 -20
  596. package/src/createComponent.tsx +0 -612
  597. package/src/createFont.ts +0 -31
  598. package/src/createShorthands.ts +0 -5
  599. package/src/createTamagui.ts +0 -217
  600. package/src/createTheme.ts +0 -19
  601. package/src/createTokens.ts +0 -88
  602. package/src/createVariable.ts +0 -26
  603. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  604. package/src/helpers/createMediaStyle.ts +0 -46
  605. package/src/helpers/createPropMapper.ts +0 -184
  606. package/src/helpers/createTamaguiProvider.tsx +0 -22
  607. package/src/helpers/extendStaticConfig.ts +0 -68
  608. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  609. package/src/helpers/fixNativeShadow.tsx +0 -2
  610. package/src/helpers/getSplitStyles.tsx +0 -200
  611. package/src/helpers/getStylesAtomic.native.ts +0 -3
  612. package/src/helpers/getStylesAtomic.ts +0 -103
  613. package/src/helpers/insertStyleRule.tsx +0 -18
  614. package/src/helpers/isObj.ts +0 -1
  615. package/src/helpers/isTamaguiElement.tsx +0 -5
  616. package/src/helpers/matchMedia.native.ts +0 -6
  617. package/src/helpers/matchMedia.ts +0 -17
  618. package/src/helpers/themeable.tsx +0 -42
  619. package/src/helpers/validate.ts +0 -59
  620. package/src/hooks/useConstant.tsx +0 -10
  621. package/src/hooks/useFeatures.tsx +0 -79
  622. package/src/hooks/useMedia.tsx +0 -194
  623. package/src/hooks/usePressable.tsx +0 -9
  624. package/src/hooks/useTheme.tsx +0 -106
  625. package/src/index.ts +0 -32
  626. package/src/static/postProcessStyles.tsx +0 -20
  627. package/src/static.ts +0 -22
  628. package/src/styled.ts +0 -82
  629. package/src/types.tsx +0 -562
  630. package/src/views/Animated.tsx +0 -121
  631. package/src/views/Stack.tsx +0 -21
  632. package/src/views/Text.tsx +0 -66
  633. package/src/views/TextAncestorContext.tsx +0 -12
  634. package/src/views/Theme.tsx +0 -90
  635. package/src/views/ThemeContext.tsx +0 -5
  636. package/src/views/ThemeInverse.tsx +0 -22
  637. package/src/views/ThemeManagerContext.tsx +0 -62
  638. package/src/views/ThemeProvider.tsx +0 -52
  639. package/types.d.ts +0 -559
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createComponent.tsx"],
4
- "sourcesContent": ["import { concatClassName, stylePropsView } from '@tamagui/helpers'\nimport { useForceUpdate } from '@tamagui/use-force-update'\nimport React, {\n Children,\n Fragment,\n createElement,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\n\nimport { stackDefaultStyles } from './constants/constants'\nimport { isTouchDevice, isWeb } from './constants/platform'\nimport { rnw } from './constants/rnw'\nimport { onConfiguredOnce } from './createTamagui'\nimport { addStylesUsingClassname, useStylesAsClassname } from './helpers/addStylesUsingClassname'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport { getSplitStyles } from './helpers/getSplitStyles'\nimport { useFeatures } from './hooks/useFeatures'\nimport { usePressable } from './hooks/usePressable'\nimport {\n SpaceTokens,\n StaticComponent,\n StaticConfig,\n StaticConfigParsed,\n TamaguiInternalConfig,\n} from './types'\nimport { TextAncestorContext } from './views/TextAncestorContext'\nimport { ThemeManagerContext } from './views/ThemeManagerContext'\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 { Component, validStyles, isText, isZStack } = staticConfig\n const validStyleProps = validStyles ?? stylePropsView\n\n // split out default styles vs props so we can assign it to component.defaultProps\n let defaultProps = null as any\n let tamaguiConfig: TamaguiInternalConfig\n\n // web uses className, native uses style\n let defaultsStyle: any\n let defaultsClassName = ''\n let initialTheme: any\n\n // see onConfiguredOnce below which attaches a name then to this component\n\n const component = forwardRef<View, A>((props: any, forwardedRef) => {\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 = (next: Partial<typeof state>) =>\n set_((prev) => {\n for (const key in next) {\n if (prev[key] !== next[key]) {\n return { ...prev, ...next }\n }\n }\n return prev\n })\n\n // from react-native-web\n if (process.env.NODE_ENV === 'development' && !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 const hasTextAncestor = isWeb ? useContext(TextAncestorContext) : false\n const hostRef = useRef(null)\n\n const {\n viewProps: viewPropsIn,\n pseudos,\n style,\n classNames,\n } = getSplitStyles(props, staticConfig, (manager.theme as any) || initialTheme)\n\n const {\n tag,\n hitSlop,\n children,\n pointerEvents,\n onPress,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n space,\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\n accessible,\n accessibilityRole,\n\n // TODO feature load layout hook\n onLayout,\n ...viewProps\n } = viewPropsIn\n\n if (!isWeb) {\n if (accessible) viewProps.accessible = accessible\n if (accessibilityRole) viewProps.accessibilityRole = accessibilityRole\n }\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 // 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 // element\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 const ViewComponent = isText ? ReactText : ReactView\n\n // styles\n const isHovering = !isTouchDevice && !disabled && pseudos && state.hover\n const isPressing = !disabled && pseudos && state.press\n\n const styles = [\n // parity w react-native-web, only for text in text\n // TODO this should be able to be done w css to replicate after extraction:\n // (.text .text { display: inline-flex; }) (but if they set display we'd need stronger precendence)\n // isText && hasTextAncestor && isWeb ? { display: 'inline-flex' } : null,\n style,\n isHovering ? pseudos.hoverStyle || null : null,\n isPressing ? pseudos.pressStyle || null : null,\n ]\n\n if (isWeb) {\n const stylesClassNames = useStylesAsClassname(styles)\n const classList = isText\n ? [\n defaultsClassName,\n // hasTextAncestor === true && cssText.textHasAncestor,\n // TODO MOVE TO VARIANTS [number] [any]\n // numberOfLines != null && numberOfLines > 1 && cssText.textMultiLine,\n classNames,\n stylesClassNames,\n props.className,\n ]\n : [defaultsClassName, props.className, classNames, stylesClassNames]\n\n // @ts-expect-error\n const className = concatClassName(...classList)\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.log('\uD83E\uDD5A className', { style, styles, classList, stylesClassNames, className })\n }\n }\n viewProps.className = className\n } else {\n viewProps.style = styles\n }\n\n if (pointerEvents) {\n viewProps.pointerEvents = pointerEvents\n }\n\n if (isWeb) {\n // from react-native-web\n const platformMethodsRef = rnw.usePlatformMethods(viewProps)\n const setRef = rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef)\n viewProps.ref = setRef\n if (props.href != null && hrefAttrs != null) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? '_' + target : target\n }\n }\n } else {\n if (forwardedRef) {\n viewProps.ref = forwardedRef\n }\n }\n\n const attachPress = !!(\n (pseudos && pseudos.pressStyle) ||\n onPress ||\n onPressOut ||\n onPressIn ||\n onClick\n )\n const attachHover =\n isWeb &&\n !isTouchDevice &&\n !!((pseudos && pseudos.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 'onClick' 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 // this caused issue with next.js passing href\n // e.preventDefault()\n onPress?.(e)\n onClick?.(e)\n unPress()\n onPressOut?.(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: events.onClick,\n })\n Object.assign(viewProps, pressProps)\n } else {\n Object.assign(viewProps, events)\n }\n }\n\n const childEls = spacedChildren({\n children,\n space,\n flexDirection: props.flexDirection || defaultProps?.flexDirection,\n isZStack: isZStack,\n })\n\n let content: any\n\n // replicate react-native-web's `createElement`\n if (isWeb && rnw) {\n const domProps = rnw.createDOMProps(viewProps)\n const className =\n domProps.className && domProps.className !== viewProps.className\n ? `${domProps.className} ${viewProps.className}`\n : viewProps.className\n Object.assign(viewProps, domProps)\n viewProps.className = className\n content = createElement(ViewComponent, viewProps, childEls)\n } else {\n content = createElement(ViewComponent, viewProps, childEls)\n }\n\n const shouldWrapTextAncestor = isWeb && 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 viewProps['debug'] = true\n console.log('\uD83E\uDD5A props in:', props)\n console.log('\uD83E\uDD5A props out:', viewProps)\n console.log(props.onClick?.toString())\n // prettier-ignore\n console.log('\uD83E\uDD5A etc:', { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls })\n // only on browser because node expands it huge\n if (isWeb) {\n console.log('\uD83E\uDD5A component info', { staticConfig, tamaguiConfig })\n }\n }\n }\n\n return (\n <>\n {features}\n {content}\n </>\n )\n })\n\n // Once configuration is run and all components are registered\n // get default props + className and analyze styles\n onConfiguredOnce((conf) => {\n tamaguiConfig = conf\n initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]\n const next = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, true)\n if (isWeb) {\n if (next.classNames) {\n defaultsClassName += next.classNames + ' '\n }\n defaultsClassName += addStylesUsingClassname([next.style, next.pseudos])\n } else {\n if (!hasWarnedOnce) {\n hasWarnedOnce = true\n console.log('\u26A0\uFE0F TODO account for default styles for media queries')\n }\n }\n // @ts-ignore\n component.defaultProps = {\n ...next.viewProps,\n ...component.defaultProps,\n }\n if (process.env.NODE_ENV === 'development') {\n if (staticConfig.defaultProps?.debug) {\n console.log('tamagui debug component:', next, defaultsClassName, component.defaultProps)\n }\n }\n })\n\n component['staticConfig'] = {\n validStyles: validStyleProps,\n ...staticConfig,\n }\n\n const res = component as any as StaticComponent<A, void>\n\n // add extractable HoC\n res['extractable'] = (Component: any, conf?: StaticConfig) => {\n Component['staticConfig'] = extendStaticConfig(res, {\n ...conf,\n neverFlatten: true,\n defaultProps: {\n ...Component.defaultProps,\n ...conf?.defaultProps,\n },\n })\n return Component\n }\n\n return res\n}\n\nlet hasWarnedOnce = false\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<{ size?: number | SpaceTokens; flex?: boolean | number }>({\n defaultProps: {\n ...stackDefaultStyles,\n size: true,\n },\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n size = size == true ? '$true' : size\n return {\n width: tokens.size[size] ?? size,\n height: tokens.size[size] ?? size,\n }\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 isZStack,\n children,\n space,\n flexDirection,\n}: {\n isZStack?: boolean\n children: any\n space?: any\n flexDirection?: ViewStyle['flexDirection']\n}) {\n if (!space && !isZStack) {\n return children\n }\n const childrenList = Children.toArray(children)\n const len = childrenList.length\n if (len === 1) {\n return children\n }\n const next: any[] = []\n for (const [index, child] of childrenList.entries()) {\n if (child === null || child === undefined) {\n continue\n }\n\n const key = `${child?.['key'] ?? index}`\n\n next.push(<Fragment key={key}>{isZStack ? <Absolute>{child}</Absolute> : child}</Fragment>)\n\n // allows for custom visually hidden components that dont insert spacing\n if (child?.['type']?.['isVisuallyHidden']) {\n continue\n }\n\n if (index !== len - 1) {\n if (space) {\n next.push(\n <Spacer\n key={`${key}_spacer`}\n // @ts-ignore TODO\n direction={\n flexDirection === 'row' || flexDirection === 'row-reverse' ? 'horizontal' : 'vertical'\n }\n size={space}\n />\n )\n }\n }\n }\n return next\n}\n\n// for now not so \"tamagui-y\"\nconst Absolute = ({ children }) => <View style={sheet.fullscreen}>{children}</View>\nconst sheet = StyleSheet.create({\n fullscreen: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n})\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { stylePropsView } from '@tamagui/helpers'\nimport { useForceUpdate } from '@tamagui/use-force-update'\nimport React, {\n Children,\n Fragment,\n createElement,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useRef,\n useState,\n} from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\n\nimport { onConfiguredOnce } from './conf'\nimport { stackDefaultStyles } from './constants/constants'\nimport { isAndroid, isTouchDevice, isWeb, useIsomorphicLayoutEffect } from './constants/platform'\nimport { rnw } from './constants/rnw'\nimport { isVariable } from './createVariable'\nimport { createShallowUpdate } from './helpers/createShallowUpdate'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport { SplitStyleResult, getSplitStyles } from './helpers/getSplitStyles'\nimport { getAllSelectors } from './helpers/insertStyleRule'\nimport { proxyThemeVariables } from './helpers/proxyThemeVariables'\nimport { wrapThemeManagerContext } from './helpers/wrapThemeManagerContext'\nimport { useFeatures } from './hooks/useFeatures'\nimport { usePressable } from './hooks/usePressable'\nimport { getThemeManagerIfChanged, useTheme } from './hooks/useTheme'\nimport {\n SpaceTokens,\n StackProps,\n StaticConfig,\n StaticConfigParsed,\n StylableComponent,\n TamaguiComponent,\n TamaguiComponentState,\n TamaguiConfig,\n TamaguiInternalConfig,\n UseAnimationHook,\n} from './types'\nimport { TextAncestorContext } from './views/TextAncestorContext'\n\nReact['keep']\n\nconst defaultComponentState: TamaguiComponentState = {\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n // only used by enterStyle\n mounted: false,\n animation: null,\n}\n\nexport const mouseUps = new Set<Function>()\nif (typeof document !== 'undefined') {\n document.addEventListener('mouseup', () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n })\n}\n\n// mutates\nfunction mergeShorthands({ defaultProps }: StaticConfigParsed, { shorthands }: TamaguiConfig) {\n // they are defined in correct order already { ...parent, ...child }\n for (const key in defaultProps) {\n defaultProps[shorthands[key] || key] = defaultProps[key]\n }\n}\n\nlet initialTheme: any\n\nexport function createComponent<\n ComponentPropTypes extends Object = {},\n Ref = View,\n BaseProps = never\n>(configIn: Partial<StaticConfig> | StaticConfigParsed, ParentComponent?: StylableComponent) {\n const staticConfig = (() => {\n const config = extendStaticConfig(configIn, ParentComponent)\n if ('parsed' in config) {\n return config\n } else {\n return parseStaticConfig(config)\n }\n })()\n\n const componentClassName = `is_${staticConfig.componentName}`\n let tamaguiConfig: TamaguiInternalConfig\n let AnimatedText: any\n let AnimatedView: any\n let avoidClasses = true\n let defaultNativeStyle: any\n let defaultNativeStyleSheet: StyleSheet.NamedStyles<{ base: {} }>\n let initialSplitStyles: SplitStyleResult\n\n function addPseudoToStyles(styles: any[], name: string, pseudos: any) {\n // on web use pseudo object { hoverStyle } to keep specificity with concatClassName\n const pseudoStyle = pseudos[name]\n const shouldNestObject = isWeb && name !== 'enterStyle' && name !== 'exitStyle'\n if (pseudoStyle) {\n styles.push(shouldNestObject ? { [name]: pseudoStyle } : pseudoStyle)\n }\n const defaultPseudoStyle = initialSplitStyles.pseudos[name]\n if (defaultPseudoStyle) {\n styles.push(shouldNestObject ? { [name]: defaultPseudoStyle } : defaultPseudoStyle)\n }\n }\n\n // see onConfiguredOnce below which attaches a name then to this component\n const component = forwardRef<Ref, ComponentPropTypes>((props: any, forwardedRef) => {\n const { Component, componentName, isText, isZStack } = staticConfig\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.warn(staticConfig.componentName || Component?.displayName || Component?.name || '[Unnamed Component]', 'debug on')\n // keep separate react native warn touches every value on prop causing weird behavior\n console.log('props in:', props)\n if (props['debug'] === 'break') debugger\n }\n }\n\n const forceUpdate = useForceUpdate()\n const theme = useTheme(props.theme, staticConfig.componentName, props, forceUpdate)\n const [state, set_] = useState<TamaguiComponentState>(defaultComponentState)\n const setStateShallow = createShallowUpdate(set_)\n\n const shouldAvoidClasses = !!(props.animation && avoidClasses)\n const splitStyles = getSplitStyles(\n props,\n staticConfig,\n theme,\n shouldAvoidClasses ? { ...state, noClassNames: true, resolveVariablesAs: 'value' } : state,\n shouldAvoidClasses ? null : initialSplitStyles.classNames\n )\n\n const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitStyles\n const useAnimations = tamaguiConfig.animations?.useAnimations as UseAnimationHook | undefined\n const isAnimated = !!(useAnimations && props.animation)\n const hasEnterStyle = !!props.enterStyle\n\n const features = useFeatures(props, {\n forceUpdate,\n setStateShallow,\n useAnimations,\n state,\n style: props.animation ? { ...defaultNativeStyle, ...style } : null,\n pseudos,\n staticConfig,\n theme,\n onDidAnimate: props.onDidAnimate,\n })\n\n const {\n tag,\n hitSlop,\n children,\n pointerEvents,\n onPress,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n space,\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 nativeID,\n\n accessible,\n accessibilityRole,\n\n // android\n collapsable,\n focusable,\n\n // ignore from here on out\n // for next/link compat etc\n // @ts-ignore\n onClick,\n theme: _themeProp,\n // @ts-ignore\n defaultVariants,\n\n // TODO feature load layout hook\n onLayout,\n ...viewPropsRest\n } = viewPropsIn\n\n let viewProps: StackProps = viewPropsRest\n\n // from react-native-web\n if (process.env.NODE_ENV === 'development' && !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 const hasTextAncestor = isWeb ? useContext(TextAncestorContext) : false\n const hostRef = useRef(null)\n\n // isMounted\n const internal = useRef<{ isMounted: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n // we need to use state to properly have mounted go from false => true\n if (typeof window !== 'undefined' && (hasEnterStyle || props.animation)) {\n // for SSR we never set mounted, ensuring enterStyle={{}} is set by default\n setStateShallow({\n mounted: true,\n })\n }\n\n internal.current!.isMounted = true\n return () => {\n mouseUps.delete(unPress)\n internal.current!.isMounted = false\n }\n }, [hasEnterStyle, props.animation])\n\n if (nativeID) {\n viewProps.id = nativeID\n }\n\n if (isAndroid) {\n if (collapsable) viewProps.collapsable = collapsable\n if (focusable) viewProps.focusable = focusable\n }\n\n if (!isWeb) {\n if (accessible) viewProps.accessible = accessible\n if (accessibilityRole) viewProps.accessibilityRole = accessibilityRole\n }\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 // get the right component\n const isTaggable = !Component || typeof Component === 'string'\n\n // default to tag, fallback to component (when both strings)\n const element = isWeb ? (isTaggable ? tag || Component : Component) : Component\n const BaseTextComponent = !isWeb ? Text : element || 'span'\n const BaseViewComponent = !isWeb ? View : element || (hasTextAncestor ? 'span' : 'div')\n let ViewComponent = isText\n ? (isAnimated ? AnimatedText || Text : null) || BaseTextComponent\n : (isAnimated ? AnimatedView || View : null) || BaseViewComponent\n\n ViewComponent = Component || ViewComponent\n\n let styles: any[]\n\n const isStringElement = typeof ViewComponent === 'string'\n const animationStyles = state.animation ? state.animation.style : null\n\n if (isStringElement && shouldAvoidClasses) {\n styles = {\n ...defaultNativeStyle,\n ...animationStyles,\n ...medias,\n }\n } else {\n styles = [\n isWeb ? null : defaultNativeStyleSheet ? (defaultNativeStyleSheet.base as ViewStyle) : null,\n // parity w react-native-web, only for text in text\n // TODO this should be able to be done w css to replicate after extraction:\n // (.text .text { display: inline-flex; }) (but if they set display we'd need stronger precendence)\n // isText && hasTextAncestor && isWeb ? { display: 'inline-flex' } : null,\n // style,\n animationStyles ? animationStyles : style,\n medias,\n ]\n if (!animationStyles) {\n !state.mounted && addPseudoToStyles(styles, 'enterStyle', pseudos)\n state.hover && addPseudoToStyles(styles, 'hoverStyle', pseudos)\n state.focus && addPseudoToStyles(styles, 'focusStyle', pseudos)\n state.press && addPseudoToStyles(styles, 'pressStyle', pseudos)\n }\n }\n\n if (isWeb) {\n if (!shouldAvoidClasses) {\n const fontFamilyName = isText\n ? props.fontFamily || staticConfig.defaultProps.fontFamily\n : null\n const fontFamily =\n fontFamilyName && fontFamilyName[0] === '$' ? fontFamilyName.slice(1) : null\n const classList = [\n componentName ? componentClassName : '',\n fontFamily ? `font_${fontFamily}` : '',\n theme.className,\n classNames ? Object.values(classNames).join(' ') : '',\n ]\n\n // TODO restore this to isText classList\n // hasTextAncestor === true && cssText.textHasAncestor,\n // TODO MOVE TO VARIANTS [number] [any]\n // numberOfLines != null && numberOfLines > 1 && cssText.textMultiLine,\n\n const className = classList.join(' ')\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.log(' \u00BB className', { isStringElement, pseudos, state, classNames, propsClassName: props.className, style, classList, className: className.trim().split(' '), themeClassName: theme.className, values: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) })\n }\n }\n viewProps.className = className\n viewProps.style = animationStyles\n } else {\n viewProps.style = styles\n }\n } else {\n viewProps.style = styles\n }\n\n if (pointerEvents) {\n viewProps.pointerEvents = pointerEvents\n }\n\n if (isWeb) {\n // from react-native-web\n const platformMethodsRef = rnw.usePlatformMethods(viewProps)\n const setRef = rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef)\n\n if (!isAnimated) {\n // @ts-ignore\n viewProps.ref = setRef\n } else {\n if (forwardedRef) {\n // @ts-ignore\n viewProps.ref = forwardedRef\n }\n }\n\n if (props.href != null && hrefAttrs != null) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? '_' + target : target\n }\n }\n } else {\n if (forwardedRef) {\n // @ts-ignore\n viewProps.ref = forwardedRef\n }\n }\n\n // TODO need to loop active variants and see if they have matchin pseudos and apply as well\n const initialPseudos = initialSplitStyles.pseudos\n const attachPress = !!(\n (pseudos && pseudos.pressStyle) ||\n (initialPseudos && initialPseudos.pressStyle) ||\n onPress ||\n onPressOut ||\n onPressIn ||\n onClick\n )\n const isHoverable = isWeb && !isTouchDevice\n const attachHover =\n isHoverable &&\n !!((pseudos && pseudos.hoverStyle) || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n const pressEventKey = isStringElement ? 'onClick' : 'onPress'\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 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 const unPress = useCallback(() => {\n if (!internal.current!.isMounted) return\n setStateShallow({\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 ...(isHoverable && {\n onMouseEnter: attachHover\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 setStateShallow(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave: attachHover\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 setStateShallow(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onMouseDown: attachPress\n ? (e) => {\n setStateShallow({\n press: true,\n pressIn: true,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n }\n : null,\n [pressEventKey]: attachPress\n ? (e) => {\n onPress?.(e)\n unPress()\n onPressOut?.(e)\n onClick?.(e)\n }\n : null,\n }\n : null\n\n let childEls = !children\n ? children\n : wrapThemeManagerContext(\n spacedChildren({\n children,\n space,\n flexDirection: props.flexDirection || staticConfig.defaultProps?.flexDirection,\n isZStack,\n }),\n getThemeManagerIfChanged(theme)\n )\n\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 events\n ? {\n disabled,\n ...(hitSlop && {\n hitSlop,\n }),\n onPressIn: events.onMouseDown,\n onPressOut: events.onPressOut,\n onPress: events[pressEventKey],\n }\n : {\n disabled: true,\n }\n )\n\n let content: any\n\n // replicate react-native-web's `createElement`\n if (isWeb) {\n if (staticConfig.isReactNativeWeb) {\n viewProps.dataSet = {\n ...viewProps.dataSet,\n className: viewProps.className,\n }\n } else {\n const rnProps = rnw.createDOMProps(viewProps)\n const className =\n rnProps.className && rnProps.className !== viewProps.className\n ? `${rnProps.className} ${viewProps.className}`\n : viewProps.className\n\n // additive\n Object.assign(viewProps, rnProps)\n\n // we already handle Text/View properly\n if (className) {\n viewProps.className = className\n }\n }\n }\n\n if (events) {\n if (!isStringElement) {\n Object.assign(viewProps, pressProps)\n } else {\n Object.assign(viewProps, events)\n }\n }\n\n content = createElement(ViewComponent, viewProps, childEls)\n\n if (isWeb && events && attachHover) {\n content = (\n <span\n className=\"tui_Hoverable\"\n style={{\n display: 'contents',\n }}\n onMouseEnter={events.onMouseEnter}\n onMouseLeave={events.onMouseLeave}\n >\n {content}\n </span>\n )\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n viewProps['debug'] = true\n // prettier-ignore\n console.log(' \u00BB ', { propsIn: { ...props }, propsOut: { ...viewProps }, state, splitStyles, animationStyles, isStringElement, classNamesIn: props.className?.split(' '), classNamesOut: viewProps.className?.split(' '), pressProps, events, shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses, animation: props.animation, style, defaultNativeStyle, initialSplitStyles, ...(typeof window !== 'undefined' ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null) })\n }\n }\n\n if (features.length) {\n return (\n <>\n {features}\n {content}\n </>\n )\n }\n\n return content\n })\n\n component.displayName = staticConfig.componentName\n\n // Once configuration is run and all components are registered\n // get default props + className and analyze styles\n onConfiguredOnce((conf) => {\n if (process.env.IS_STATIC === 'is_static') {\n // in static mode we just use these to lookup configuration\n return\n }\n\n tamaguiConfig = conf\n\n // do this to make sure shorthands don't duplicate with.. longhands\n mergeShorthands(staticConfig, tamaguiConfig)\n\n avoidClasses = !!tamaguiConfig.animations?.avoidClasses\n AnimatedText = tamaguiConfig.animations?.Text\n AnimatedView = tamaguiConfig?.animations?.View\n initialTheme =\n initialTheme ||\n proxyThemeVariables(conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]])\n initialSplitStyles = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, {\n mounted: true,\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n resolveVariablesAs: 'both',\n keepVariantsAsProps: true,\n })\n\n const { style, viewProps } = initialSplitStyles\n defaultNativeStyle = {}\n for (const key in style) {\n const v = style[key]\n defaultNativeStyle[key] = isVariable(v) ? v.val : v\n }\n defaultNativeStyleSheet = StyleSheet.create({\n base: defaultNativeStyle,\n })\n\n // @ts-ignore\n component.defaultProps = {\n ...viewProps,\n ...component.defaultProps,\n }\n\n // debug\n if (process.env.NODE_ENV === 'development' && staticConfig.defaultProps?.debug) {\n if (process.env.IS_STATIC !== 'is_static') {\n console.log(`\uD83D\uDC1B [${staticConfig.componentName || 'Component'}]`, {\n staticConfig,\n initialSplitStyles,\n })\n }\n }\n })\n\n let res: TamaguiComponent<ComponentPropTypes, Ref, BaseProps> = component as any\n\n if (configIn.memo) {\n res = memo(res) as any\n }\n\n res['staticConfig'] = {\n validStyles: staticConfig.validStyles || stylePropsView,\n ...staticConfig,\n }\n\n if (process.env.NODE_ENV === 'development') {\n res['whyDidYouRender'] = true\n }\n\n // res.extractable HoC\n res['extractable'] = (Component: any, conf?: Partial<StaticConfig>) => {\n Component['staticConfig'] = extendStaticConfig(\n {\n Component,\n ...conf,\n neverFlatten: true,\n defaultProps: {\n ...Component.defaultProps,\n ...conf?.defaultProps,\n },\n },\n res\n )\n return Component\n }\n\n return res\n}\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<\n Omit<StackProps, 'flex' | 'direction'> & {\n size?: number | SpaceTokens\n flex?: boolean | number\n direction?: 'horizontal' | 'vertical'\n }\n>({\n memo: true,\n componentName: 'Spacer',\n defaultProps: {\n ...stackDefaultStyles,\n size: true,\n },\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n size = size == true ? '$true' : size\n const sizePx = tokens.size[size] ?? size\n return {\n width: sizePx,\n height: sizePx,\n minWidth: sizePx,\n minHeight: sizePx,\n }\n },\n },\n\n flex: {\n true: {\n flex: 1,\n },\n },\n\n direction: {\n horizontal: {\n height: 0,\n minHeight: 0,\n },\n vertical: {\n width: 0,\n minWidth: 0,\n },\n },\n },\n})\n\nexport function spacedChildren({\n isZStack,\n children,\n space,\n flexDirection,\n spaceFlex,\n}: {\n isZStack?: boolean\n children: any\n space?: any\n spaceFlex?: boolean | number\n flexDirection?: ViewStyle['flexDirection']\n}) {\n const childrenList = Children.toArray(children)\n const len = childrenList.length\n if (len === 1) {\n return childrenList\n }\n const next: any[] = []\n for (const [index, child] of childrenList.entries()) {\n if (child === null || child === undefined) {\n continue\n }\n\n if (!child || (child['key'] && !isZStack)) {\n next.push(child)\n } else {\n next.push(\n <Fragment key={index}>{isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}</Fragment>\n )\n }\n\n // allows for custom visually hidden components that dont insert spacing\n if (child['type']?.['isVisuallyHidden']) {\n continue\n }\n\n if (index !== len - 1) {\n if (space) {\n next.push(\n <Spacer\n key={`_${index}_spacer`}\n direction={\n flexDirection === 'row' || flexDirection === 'row-reverse' ? 'horizontal' : 'vertical'\n }\n size={space}\n {...(spaceFlex && {\n flex: spaceFlex,\n })}\n />\n )\n }\n }\n }\n return next\n}\n\nexport function AbsoluteFill(props: any) {\n return isWeb ? (\n <div\n style={\n {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n } as any\n }\n >\n {props.children}\n </div>\n ) : (\n <View style={StyleSheet.absoluteFill}>{props.child}</View>\n )\n}\n\n// this can be done with CSS entirely right?\n// const shouldWrapTextAncestor = isWeb && isText && !hasTextAncestor\n// if (shouldWrapTextAncestor) {\n// // from react-native-web\n// content = createElement(TextAncestorContext.Provider, { value: true }, content)\n// }\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,31 +1,27 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
5
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
6
  var __export = (target, all) => {
10
- __markAsModule(target);
11
7
  for (var name in all)
12
8
  __defProp(target, name, { get: all[name], enumerable: true });
13
9
  };
14
- var __reExport = (target, module2, desc) => {
15
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
16
- for (let key of __getOwnPropNames(module2))
17
- if (!__hasOwnProp.call(target, key) && key !== "default")
18
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
15
  }
20
- return target;
16
+ return to;
21
17
  };
22
- var __toModule = (module2) => {
23
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
24
- };
25
- __export(exports, {
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var createFont_exports = {};
20
+ __export(createFont_exports, {
26
21
  createFont: () => createFont
27
22
  });
28
- var import_validate = __toModule(require("./helpers/validate"));
23
+ module.exports = __toCommonJS(createFont_exports);
24
+ var import_validate = require("./helpers/validate");
29
25
  const createFont = /* @__PURE__ */ __name((font) => {
30
26
  if (process.env.NODE_ENV === "development") {
31
27
  (0, import_validate.validateFont)(font);
@@ -47,4 +43,8 @@ const createFont = /* @__PURE__ */ __name((font) => {
47
43
  }
48
44
  return Object.freeze(font);
49
45
  }, "createFont");
46
+ // Annotate the CommonJS export names for ESM import in node:
47
+ 0 && (module.exports = {
48
+ createFont
49
+ });
50
50
  //# sourceMappingURL=createFont.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/createFont.ts"],
4
4
  "sourcesContent": ["import { validateFont } from './helpers/validate'\nimport { GenericFont } from './types'\n\nexport const createFont = <A extends GenericFont>(font: A): A => {\n if (process.env.NODE_ENV === 'development') {\n validateFont(font)\n }\n\n // fills in any missing values based on size keys being standard\n const sizeKeys = Object.keys(font.size)\n\n for (const key in font) {\n if (key === 'size' || key === 'family') continue\n const section = font[key]\n const keys = Object.keys(section)\n\n // fill with first filled in value to start\n let fillVal = section[keys[0]]\n\n for (const sKey of sizeKeys) {\n if (!(sKey in section)) {\n section[sKey] = fillVal\n } else {\n // if exists, set as the fillVal\n fillVal = section[sKey]\n }\n }\n }\n\n return Object.freeze(font)\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,sBAA6B;AAGtB,MAAM,aAAa,wBAAwB,SAAe;AAC/D,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,sCAAa;AAAA;AAIf,QAAM,WAAW,OAAO,KAAK,KAAK;AAElC,aAAW,OAAO,MAAM;AACtB,QAAI,QAAQ,UAAU,QAAQ;AAAU;AACxC,UAAM,UAAU,KAAK;AACrB,UAAM,OAAO,OAAO,KAAK;AAGzB,QAAI,UAAU,QAAQ,KAAK;AAE3B,eAAW,QAAQ,UAAU;AAC3B,UAAI,CAAE,SAAQ,UAAU;AACtB,gBAAQ,QAAQ;AAAA,aACX;AAEL,kBAAU,QAAQ;AAAA;AAAA;AAAA;AAKxB,SAAO,OAAO,OAAO;AAAA,GA1BG;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA6B;AAGtB,MAAM,aAAa,wBAAwB,SAAe;AAC/D,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,sCAAa,IAAI;AAAA,EACnB;AAGA,QAAM,WAAW,OAAO,KAAK,KAAK,IAAI;AAEtC,aAAW,OAAO,MAAM;AACtB,QAAI,QAAQ,UAAU,QAAQ;AAAU;AACxC,UAAM,UAAU,KAAK;AACrB,UAAM,OAAO,OAAO,KAAK,OAAO;AAGhC,QAAI,UAAU,QAAQ,KAAK;AAE3B,eAAW,QAAQ,UAAU;AAC3B,UAAI,CAAE,SAAQ,UAAU;AACtB,gBAAQ,QAAQ;AAAA,MAClB,OAAO;AAEL,kBAAU,QAAQ;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AAEA,SAAO,OAAO,OAAO,IAAI;AAC3B,GA3B0B;",
6
6
  "names": []
7
7
  }
@@ -1,16 +1,32 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3
5
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
6
  var __export = (target, all) => {
5
- __markAsModule(target);
6
7
  for (var name in all)
7
8
  __defProp(target, name, { get: all[name], enumerable: true });
8
9
  };
9
- __export(exports, {
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var createShorthands_exports = {};
20
+ __export(createShorthands_exports, {
10
21
  createShorthands: () => createShorthands
11
22
  });
23
+ module.exports = __toCommonJS(createShorthands_exports);
12
24
  function createShorthands(shorthands) {
13
25
  return Object.freeze(shorthands);
14
26
  }
15
27
  __name(createShorthands, "createShorthands");
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ createShorthands
31
+ });
16
32
  //# sourceMappingURL=createShorthands.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/createShorthands.ts"],
4
4
  "sourcesContent": ["// 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": ";;;;;;;;AAAA;AAAA;AAAA;AAEO,0BAA4D,YAAkB;AACnF,SAAO,OAAO,OAAO;AAAA;AADP;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,0BAA4D,YAAkB;AACnF,SAAO,OAAO,OAAO,UAAU;AACjC;AAFgB;",
6
6
  "names": []
7
7
  }
@@ -1,11 +1,9 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __defProps = Object.defineProperties;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
6
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
- var __getProtoOf = Object.getPrototypeOf;
9
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
8
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
9
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -21,57 +19,46 @@ var __spreadValues = (a, b) => {
21
19
  return a;
22
20
  };
23
21
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
22
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
26
23
  var __export = (target, all) => {
27
- __markAsModule(target);
28
24
  for (var name in all)
29
25
  __defProp(target, name, { get: all[name], enumerable: true });
30
26
  };
31
- var __reExport = (target, module2, desc) => {
32
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
33
- for (let key of __getOwnPropNames(module2))
34
- if (!__hasOwnProp.call(target, key) && key !== "default")
35
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
27
+ var __copyProps = (to, from, except, desc) => {
28
+ if (from && typeof from === "object" || typeof from === "function") {
29
+ for (let key of __getOwnPropNames(from))
30
+ if (!__hasOwnProp.call(to, key) && key !== except)
31
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
36
32
  }
37
- return target;
33
+ return to;
38
34
  };
39
- var __toModule = (module2) => {
40
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
41
- };
42
- __export(exports, {
43
- createTamagui: () => createTamagui,
44
- getHasConfigured: () => getHasConfigured,
45
- getTamagui: () => getTamagui,
46
- getThemeParentClassName: () => getThemeParentClassName,
47
- getTokens: () => getTokens,
48
- onConfiguredOnce: () => onConfiguredOnce
35
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
+ var createTamagui_exports = {};
37
+ __export(createTamagui_exports, {
38
+ createTamagui: () => createTamagui
49
39
  });
50
- var import_helpers = __toModule(require("@tamagui/helpers"));
51
- var import_createVariable = __toModule(require("./createVariable"));
52
- var import_createTamaguiProvider = __toModule(require("./helpers/createTamaguiProvider"));
53
- var import_validate = __toModule(require("./helpers/validate"));
54
- var import_useMedia = __toModule(require("./hooks/useMedia"));
55
- let conf;
56
- const getHasConfigured = /* @__PURE__ */ __name(() => !!conf, "getHasConfigured");
57
- const getTamagui = /* @__PURE__ */ __name(() => conf, "getTamagui");
58
- const getTokens = /* @__PURE__ */ __name(() => conf.tokensParsed, "getTokens");
59
- const configListeners = new Set();
60
- const onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
61
- if (conf) {
62
- cb(conf);
63
- } else {
64
- configListeners.add(cb);
65
- }
66
- }, "onConfiguredOnce");
67
- const PREFIX = `theme--`;
40
+ module.exports = __toCommonJS(createTamagui_exports);
41
+ var import_conf = require("./conf");
42
+ var import_constants = require("./constants/constants");
43
+ var import_platform = require("./constants/platform");
44
+ var import_createVariable = require("./createVariable");
45
+ var import_createTamaguiProvider = require("./helpers/createTamaguiProvider");
46
+ var import_insertStyleRule = require("./helpers/insertStyleRule");
47
+ var import_useMedia = require("./hooks/useMedia");
48
+ const createdConfigs = /* @__PURE__ */ new WeakMap();
68
49
  function createTamagui(config) {
50
+ if (createdConfigs.has(config)) {
51
+ return config;
52
+ }
69
53
  if (process.env.NODE_ENV === "development") {
70
- if (!config["parsed"]) {
71
- (0, import_validate.validateConfig)(config);
54
+ if (!config.tokens) {
55
+ throw new Error(`No tokens provided to Tamagui config`);
56
+ }
57
+ if (!config.themes) {
58
+ throw new Error(`No themes provided to Tamagui config`);
72
59
  }
73
60
  }
74
- if (conf) {
61
+ if ((0, import_conf.getHasConfigured)()) {
75
62
  console.warn("Called createTamagui twice! Should never do so");
76
63
  }
77
64
  (0, import_useMedia.configureMedia)({
@@ -79,128 +66,174 @@ function createTamagui(config) {
79
66
  defaultActive: config.mediaQueryDefaultActive
80
67
  });
81
68
  const themeConfig = (() => {
69
+ var _a;
82
70
  let cssRules = [];
83
- let tokenRule = `:root {`;
84
- const varsByValue = new Map();
85
- const addVar = /* @__PURE__ */ __name((v) => {
86
- varsByValue[v.val] = v;
87
- const rule = `--${v.name}:${typeof v.val === "number" ? `${v.val}px` : v.val};`;
88
- tokenRule += rule;
89
- }, "addVar");
90
- for (const key in config.tokens) {
91
- for (const skey in config.tokens[key]) {
92
- const val = config.tokens[key][skey];
93
- if (key === "font") {
94
- for (const fkey in val) {
95
- if (fkey === "family") {
96
- addVar(val[fkey]);
97
- } else {
98
- for (const fskey in val[fkey]) {
99
- addVar(val[fkey][fskey]);
71
+ const varsByValue = /* @__PURE__ */ new Map();
72
+ if (import_platform.isWeb) {
73
+ const tokenRules = /* @__PURE__ */ new Set();
74
+ const addVar = /* @__PURE__ */ __name((v) => {
75
+ varsByValue[v.val] = v;
76
+ const rule = `--${(0, import_createVariable.createCSSVariable)(v.name, false)}:${typeof v.val === "number" ? `${v.val}px` : v.val}`;
77
+ tokenRules.add(rule);
78
+ }, "addVar");
79
+ for (const key in config.tokens) {
80
+ for (const skey in config.tokens[key]) {
81
+ const val = config.tokens[key][skey];
82
+ if (key === "font") {
83
+ for (const fkey in val) {
84
+ if (fkey === "family") {
85
+ addVar(val[fkey]);
86
+ } else {
87
+ for (const fskey in val[fkey]) {
88
+ addVar(val[fkey][fskey]);
89
+ }
100
90
  }
101
91
  }
92
+ } else {
93
+ addVar(val);
102
94
  }
103
- } else {
104
- addVar(val);
105
95
  }
106
96
  }
97
+ const sep = process.env.NODE_ENV === "development" ? config.cssStyleSeparator || " " : "";
98
+ cssRules.push(`:root {${sep}${[...tokenRules].join(`;${sep}`)}${sep}}`);
107
99
  }
108
- cssRules.push(`${tokenRule}
109
- }`);
100
+ const hasDarkLight = "light" in config.themes && "dark" in config.themes;
101
+ const CNP = `.${import_constants.THEME_CLASSNAME_PREFIX}`;
110
102
  for (const themeName in config.themes) {
111
- config.themes[themeName] = __spreadValues({}, config.themes[themeName]);
112
- const theme = config.themes[themeName];
103
+ const theme = __spreadValues({}, config.themes[themeName]);
104
+ config.themes[themeName] = theme;
113
105
  let vars = "";
114
106
  for (const themeKey in theme) {
115
- const val = theme[themeKey];
116
- const getVariableCSS = /* @__PURE__ */ __name((inv) => {
117
- const v = varsByValue[inv] ?? inv;
118
- return (0, import_createVariable.isVariable)(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`;
119
- }, "getVariableCSS");
120
- vars += getVariableCSS(val);
121
- if (!(0, import_createVariable.isVariable)(val)) {
122
- theme[themeKey] = (0, import_createVariable.createVariable)({
123
- name: themeKey,
124
- val
107
+ if (import_platform.isWeb) {
108
+ const val = theme[themeKey];
109
+ const varName = val instanceof import_createVariable.Variable ? val.name : (_a = varsByValue[val]) == null ? void 0 : _a.name;
110
+ vars += `--${themeKey}:${varName ? (0, import_createVariable.createCSSVariable)(varName) : `${val}`};`;
111
+ }
112
+ ensureThemeVariable(theme, themeKey);
113
+ }
114
+ if (import_platform.isWeb) {
115
+ const isDarkOrLightBase = themeName === "dark" || themeName === "light";
116
+ const isDark = themeName.startsWith("dark");
117
+ const selector = `${CNP}${themeName}`;
118
+ const selectors = [selector];
119
+ if (hasDarkLight) {
120
+ const childSelector = `${CNP}${themeName.replace("dark_", "").replace("light_", "")}`;
121
+ const order = isDark ? ["dark", "light"] : ["light", "dark"];
122
+ if (isDarkOrLightBase) {
123
+ order.reverse();
124
+ }
125
+ const [stronger, weaker] = order;
126
+ const max = config.maxDarkLightNesting ?? 3;
127
+ new Array(max * 2).fill(void 0).forEach((_, pi) => {
128
+ if (pi % 2 === 1)
129
+ return;
130
+ const parents = new Array(pi + 1).fill(void 0).map((_2, psi) => {
131
+ return `${CNP}${psi % 2 === 0 ? stronger : weaker}`;
132
+ });
133
+ selectors.push(`${(parents.length > 1 ? parents.slice(1) : parents).join(" ")} ${childSelector}`);
125
134
  });
126
135
  }
136
+ cssRules.push(`${selectors.map((x) => `:root ${x}`).join(", ")} {${vars}}`);
137
+ if (config.shouldAddPrefersColorThemes) {
138
+ if (isDarkOrLightBase) {
139
+ cssRules.push(`@media(prefers-color-scheme: ${isDark ? "dark" : "light"}) {
140
+ body { background:${theme.background}; color: ${theme.color} }
141
+ :root {${vars} }
142
+ }`);
143
+ }
144
+ }
127
145
  }
128
- const [themeClassName, parentName] = themeName.includes("-") ? themeName.split("-") : [themeName, ""];
129
- const oppositeName = parentName === "dark" ? "light" : "dark";
130
- const cssParentSel = parentName ? `.${PREFIX}${parentName}` : "";
131
- const cssChildSel = `.${PREFIX}${themeClassName}`;
132
- const cssSel = `${cssParentSel} ${cssChildSel}`;
133
- const cssRule = `${cssSel}, .${PREFIX}${oppositeName} ${cssSel} {
134
- ${vars}
135
- }`;
136
- cssRules.push(cssRule);
137
146
  }
147
+ varsByValue.clear();
138
148
  Object.freeze(cssRules);
149
+ const css = cssRules.join("\n");
139
150
  return {
140
151
  cssRules,
141
- css: cssRules.join("\n")
152
+ css
142
153
  };
143
154
  })();
144
155
  const tokensParsed = parseTokens(config.tokens);
145
- const themeParsed = {};
146
- const firstKey = Object.keys(config.themes)[0];
147
- for (const key in config.themes[firstKey]) {
148
- const val = config.themes[firstKey][key].val;
149
- themeParsed[`$${key}`] = new import_createVariable.Variable({ val, name: key });
150
- }
156
+ const fontsParsed = (() => {
157
+ if (!config.fonts) {
158
+ throw new Error(`No fonts defined!`);
159
+ }
160
+ const res = {};
161
+ for (const familyName in config.fonts) {
162
+ const family = config.fonts[familyName];
163
+ const parsed = {};
164
+ for (const attrKey in family) {
165
+ const attr = family[attrKey];
166
+ if (attrKey === "family") {
167
+ parsed[attrKey] = attr;
168
+ continue;
169
+ }
170
+ parsed[attrKey] = Object.keys(attr).reduce((acc, cur) => {
171
+ acc[`$${cur}`] = attr[cur];
172
+ return acc;
173
+ }, {});
174
+ }
175
+ res[`$${familyName}`] = parsed;
176
+ }
177
+ return res;
178
+ })();
179
+ const getCSS = /* @__PURE__ */ __name(() => {
180
+ return `${themeConfig.css}
181
+ ${(0, import_insertStyleRule.getInsertedRules)().join("\n")}`;
182
+ }, "getCSS");
151
183
  const next = __spreadProps(__spreadValues({
152
- shorthands: {}
184
+ fonts: {},
185
+ animations: {},
186
+ shorthands: {},
187
+ media: {}
153
188
  }, config), {
154
189
  Provider: (0, import_createTamaguiProvider.createTamaguiProvider)(__spreadValues({
190
+ getCSS,
155
191
  defaultTheme: "light"
156
192
  }, config)),
193
+ fontsParsed,
157
194
  themeConfig,
158
- themeParsed,
159
195
  tokensParsed,
160
196
  parsed: true,
161
- getCSS() {
162
- return `${themeConfig.css}
163
- ${[...(0, import_helpers.getStyleRules)()].join("\n")}`;
164
- }
197
+ getCSS
165
198
  });
166
- conf = next;
167
- if (configListeners.size) {
168
- configListeners.forEach((cb) => cb(next));
169
- configListeners.clear();
199
+ (0, import_conf.setConfig)(next);
200
+ if (import_conf.configListeners.size) {
201
+ import_conf.configListeners.forEach((cb) => cb(next));
202
+ import_conf.configListeners.clear();
170
203
  }
204
+ createdConfigs.set(next, true);
171
205
  return next;
172
206
  }
173
207
  __name(createTamagui, "createTamagui");
174
- function getThemeParentClassName(themeName) {
175
- return `theme-parent ${themeName ? `${PREFIX}${themeName}` : ""}`;
176
- }
177
- __name(getThemeParentClassName, "getThemeParentClassName");
178
208
  const parseTokens = /* @__PURE__ */ __name((tokens) => {
179
209
  const res = {};
180
210
  for (const key in tokens) {
181
211
  res[key] = {};
182
- if (key === "font") {
183
- for (const family in tokens.font) {
184
- const obj = {};
185
- res.font[`$${family}`] = obj;
186
- for (const attrKey in tokens.font[family]) {
187
- const attr = tokens.font[family][attrKey];
188
- if (attrKey === "family") {
189
- obj[attrKey] = attr;
190
- continue;
191
- }
192
- obj[attrKey] = Object.keys(attr).reduce((acc, cur) => {
193
- acc[`$${cur}`] = attr[cur];
194
- return acc;
195
- }, {});
196
- }
197
- }
198
- continue;
199
- }
200
212
  for (const skey in tokens[key]) {
201
213
  res[key][`$${skey}`] = tokens[key][skey];
202
214
  }
203
215
  }
204
216
  return res;
205
217
  }, "parseTokens");
218
+ function ensureThemeVariable(theme, key) {
219
+ const val = theme[key];
220
+ if (!(0, import_createVariable.isVariable)(val)) {
221
+ theme[key] = (0, import_createVariable.createVariable)({
222
+ name: key,
223
+ val
224
+ });
225
+ } else {
226
+ if (val.name !== key) {
227
+ theme[key] = (0, import_createVariable.createVariable)({
228
+ name: key,
229
+ val: val.val
230
+ });
231
+ }
232
+ }
233
+ }
234
+ __name(ensureThemeVariable, "ensureThemeVariable");
235
+ // Annotate the CommonJS export names for ESM import in node:
236
+ 0 && (module.exports = {
237
+ createTamagui
238
+ });
206
239
  //# sourceMappingURL=createTamagui.js.map