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

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 (622) hide show
  1. package/dist/cjs/Tamagui.js +52 -0
  2. package/dist/cjs/Tamagui.js.map +7 -0
  3. package/dist/cjs/ThemeContext.js +25 -0
  4. package/dist/cjs/ThemeContext.js.map +7 -0
  5. package/dist/cjs/ThemeManager.js +181 -0
  6. package/dist/cjs/ThemeManager.js.map +7 -0
  7. package/dist/cjs/conf.js +55 -0
  8. package/dist/cjs/conf.js.map +7 -0
  9. package/dist/cjs/constants/constants.js +15 -15
  10. package/dist/cjs/constants/constants.js.map +2 -2
  11. package/dist/cjs/constants/platform.js +18 -18
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/rnw.js +17 -3
  14. package/dist/cjs/constants/rnw.js.map +2 -2
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +25 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +7 -0
  17. package/dist/cjs/createComponent.js +344 -206
  18. package/dist/cjs/createComponent.js.map +2 -2
  19. package/dist/cjs/createFont.js +11 -15
  20. package/dist/cjs/createFont.js.map +1 -1
  21. package/dist/cjs/createShorthands.js +15 -3
  22. package/dist/cjs/createShorthands.js.map +1 -1
  23. package/dist/cjs/createTamagui.js +109 -104
  24. package/dist/cjs/createTamagui.js.map +2 -2
  25. package/dist/cjs/createTheme.js +11 -28
  26. package/dist/cjs/createTheme.js.map +2 -2
  27. package/dist/cjs/createTokens.js +12 -16
  28. package/dist/cjs/createTokens.js.map +1 -1
  29. package/dist/cjs/createVariable.js +33 -19
  30. package/dist/cjs/createVariable.js.map +2 -2
  31. package/dist/cjs/defaultComponentState.js +31 -0
  32. package/dist/cjs/defaultComponentState.js.map +7 -0
  33. package/dist/cjs/devtools.js +34 -0
  34. package/dist/cjs/devtools.js.map +7 -0
  35. package/dist/cjs/helpers/addStylesUsingClassname.js +29 -29
  36. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  37. package/dist/cjs/helpers/areEqualSets.js +34 -0
  38. package/dist/cjs/helpers/areEqualSets.js.map +7 -0
  39. package/dist/cjs/helpers/createMediaStyle.js +11 -15
  40. package/dist/cjs/helpers/createMediaStyle.js.map +1 -1
  41. package/dist/cjs/helpers/createPropMapper.js +151 -115
  42. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  43. package/dist/cjs/helpers/createTamaguiProvider.js +42 -23
  44. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  45. package/dist/cjs/helpers/extendStaticConfig.js +23 -26
  46. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  47. package/dist/cjs/helpers/fixNativeShadow.js +15 -3
  48. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  49. package/dist/cjs/helpers/fixNativeShadow.native.js +38 -22
  50. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  51. package/dist/cjs/helpers/getExpandedShorthands.js +37 -0
  52. package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
  53. package/dist/cjs/helpers/getSplitStyles.js +175 -98
  54. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  55. package/dist/cjs/helpers/getStylesAtomic.js +98 -56
  56. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  57. package/dist/cjs/helpers/getStylesAtomic.native.js +15 -3
  58. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  59. package/dist/cjs/helpers/insertStyleRule.js +77 -23
  60. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  61. package/dist/cjs/helpers/isObj.js +15 -3
  62. package/dist/cjs/helpers/isObj.js.map +1 -1
  63. package/dist/cjs/helpers/isTamaguiElement.js +11 -15
  64. package/dist/cjs/helpers/isTamaguiElement.js.map +1 -1
  65. package/dist/cjs/helpers/matchMedia.js +15 -3
  66. package/dist/cjs/helpers/matchMedia.js.map +1 -1
  67. package/dist/cjs/helpers/matchMedia.native.js +12 -13
  68. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  69. package/dist/cjs/helpers/themeable.js +24 -24
  70. package/dist/cjs/helpers/themeable.js.map +2 -2
  71. package/dist/cjs/helpers/validate.js +46 -47
  72. package/dist/cjs/helpers/validate.js.map +2 -2
  73. package/dist/cjs/helpers/withStaticProperties.js +28 -0
  74. package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
  75. package/dist/cjs/helpers/wrapThemeManagerContext.js +35 -0
  76. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +7 -0
  77. package/dist/cjs/hooks/useConstant.js +11 -15
  78. package/dist/cjs/hooks/useConstant.js.map +1 -1
  79. package/dist/cjs/hooks/useFeatures.js +55 -16
  80. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  81. package/dist/cjs/hooks/useIsMounted.js +37 -0
  82. package/dist/cjs/hooks/useIsMounted.js.map +7 -0
  83. package/dist/cjs/hooks/useIsTouchDevice.js +35 -0
  84. package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
  85. package/dist/cjs/hooks/useMedia.js +25 -23
  86. package/dist/cjs/hooks/useMedia.js.map +2 -2
  87. package/dist/cjs/hooks/usePressable.js +11 -15
  88. package/dist/cjs/hooks/usePressable.js.map +1 -1
  89. package/dist/cjs/hooks/useTheme.js +162 -67
  90. package/dist/cjs/hooks/useTheme.js.map +2 -2
  91. package/dist/cjs/hooks/useUnmountEffect.js +29 -0
  92. package/dist/cjs/hooks/useUnmountEffect.js.map +7 -0
  93. package/dist/cjs/index.js +56 -43
  94. package/dist/cjs/index.js.map +2 -2
  95. package/dist/cjs/spacedChildren.js +86 -0
  96. package/dist/cjs/spacedChildren.js.map +7 -0
  97. package/dist/cjs/static.js +23 -27
  98. package/dist/cjs/static.js.map +2 -2
  99. package/dist/cjs/styled.js +45 -16
  100. package/dist/cjs/styled.js.map +3 -3
  101. package/dist/cjs/types-rnw.js +16 -0
  102. package/dist/cjs/types-rnw.js.map +7 -0
  103. package/dist/cjs/types.js +14 -2
  104. package/dist/cjs/types.js.map +2 -2
  105. package/dist/cjs/views/Stack.js +12 -16
  106. package/dist/cjs/views/Stack.js.map +2 -2
  107. package/dist/cjs/views/Text.js +18 -21
  108. package/dist/cjs/views/Text.js.map +2 -2
  109. package/dist/cjs/views/TextAncestorContext.js +19 -21
  110. package/dist/cjs/views/TextAncestorContext.js.map +2 -2
  111. package/dist/cjs/views/Theme.js +33 -56
  112. package/dist/cjs/views/Theme.js.map +2 -2
  113. package/dist/cjs/views/ThemeInverse.js +15 -16
  114. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  115. package/dist/cjs/views/ThemeProvider.js +32 -37
  116. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  117. package/dist/cjs/views/ThemeReset.js +59 -0
  118. package/dist/cjs/views/ThemeReset.js.map +7 -0
  119. package/dist/esm/Tamagui.js +34 -0
  120. package/dist/esm/Tamagui.js.map +7 -0
  121. package/dist/{views → esm}/ThemeContext.js +0 -0
  122. package/dist/esm/ThemeContext.js.map +7 -0
  123. package/dist/esm/ThemeManager.js +179 -0
  124. package/dist/esm/ThemeManager.js.map +7 -0
  125. package/dist/esm/conf.js +37 -0
  126. package/dist/esm/conf.js.map +7 -0
  127. package/dist/{constants → esm/constants}/constants.js +4 -0
  128. package/dist/esm/constants/constants.js.map +7 -0
  129. package/dist/{constants → esm/constants}/platform.js +6 -1
  130. package/dist/esm/constants/platform.js.map +7 -0
  131. package/dist/{constants → esm/constants}/pseudos.js +0 -0
  132. package/dist/{constants → esm/constants}/pseudos.js.map +2 -2
  133. package/dist/{constants → esm/constants}/rnw.js +2 -0
  134. package/dist/esm/constants/rnw.js.map +7 -0
  135. package/dist/esm/contexts/ButtonInsideButtonContext.js +6 -0
  136. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +7 -0
  137. package/dist/esm/createComponent.js +611 -0
  138. package/dist/esm/createComponent.js.map +7 -0
  139. package/dist/{createFont.js → esm/createFont.js} +0 -0
  140. package/dist/{createFont.js.map → esm/createFont.js.map} +2 -2
  141. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  142. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +2 -2
  143. package/dist/esm/createTamagui.js +177 -0
  144. package/dist/esm/createTamagui.js.map +7 -0
  145. package/dist/esm/createTheme.js +7 -0
  146. package/dist/esm/createTheme.js.map +7 -0
  147. package/dist/{createTokens.js → esm/createTokens.js} +0 -0
  148. package/dist/{createTokens.js.map → esm/createTokens.js.map} +2 -2
  149. package/dist/esm/createVariable.js +43 -0
  150. package/dist/esm/createVariable.js.map +7 -0
  151. package/dist/esm/defaultComponentState.js +12 -0
  152. package/dist/esm/defaultComponentState.js.map +7 -0
  153. package/dist/esm/devtools.js +16 -0
  154. package/dist/esm/devtools.js.map +7 -0
  155. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +16 -12
  156. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  157. package/dist/esm/helpers/areEqualSets.js +16 -0
  158. package/dist/esm/helpers/areEqualSets.js.map +7 -0
  159. package/dist/{helpers → esm/helpers}/createMediaStyle.js +0 -0
  160. package/dist/{helpers → esm/helpers}/createMediaStyle.js.map +2 -2
  161. package/dist/esm/helpers/createPropMapper.js +208 -0
  162. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  163. package/dist/esm/helpers/createTamaguiProvider.js +43 -0
  164. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  165. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +14 -14
  166. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  167. package/dist/{helpers → esm/helpers}/fixNativeShadow.js +0 -0
  168. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +2 -2
  169. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  170. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  171. package/dist/esm/helpers/getExpandedShorthands.js +19 -0
  172. package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
  173. package/dist/esm/helpers/getSplitStyles.js +234 -0
  174. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  175. package/dist/esm/helpers/getStylesAtomic.js +118 -0
  176. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  177. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js +0 -0
  178. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js.map +2 -2
  179. package/dist/esm/helpers/insertStyleRule.js +82 -0
  180. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  181. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  182. package/dist/{helpers → esm/helpers}/isObj.js.map +2 -2
  183. package/dist/{helpers → esm/helpers}/isTamaguiElement.js +2 -1
  184. package/dist/{helpers → esm/helpers}/isTamaguiElement.js.map +2 -2
  185. package/dist/{helpers → esm/helpers}/matchMedia.js +0 -0
  186. package/dist/{helpers → esm/helpers}/matchMedia.js.map +2 -2
  187. package/dist/{helpers → esm/helpers}/matchMedia.native.js +0 -0
  188. package/dist/{helpers → esm/helpers}/matchMedia.native.js.map +2 -2
  189. package/dist/{helpers → esm/helpers}/themeable.js +11 -10
  190. package/dist/esm/helpers/themeable.js.map +7 -0
  191. package/dist/esm/helpers/validate.js +63 -0
  192. package/dist/esm/helpers/validate.js.map +7 -0
  193. package/dist/esm/helpers/withStaticProperties.js +10 -0
  194. package/dist/esm/helpers/withStaticProperties.js.map +7 -0
  195. package/dist/esm/helpers/wrapThemeManagerContext.js +14 -0
  196. package/dist/esm/helpers/wrapThemeManagerContext.js.map +7 -0
  197. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  198. package/dist/{hooks → esm/hooks}/useConstant.js.map +2 -2
  199. package/dist/{hooks → esm/hooks}/useFeatures.js +31 -0
  200. package/dist/esm/hooks/useFeatures.js.map +7 -0
  201. package/dist/esm/hooks/useIsMounted.js +19 -0
  202. package/dist/esm/hooks/useIsMounted.js.map +7 -0
  203. package/dist/esm/hooks/useIsTouchDevice.js +17 -0
  204. package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
  205. package/dist/{hooks → esm/hooks}/useMedia.js +13 -6
  206. package/dist/esm/hooks/useMedia.js.map +7 -0
  207. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  208. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  209. package/dist/esm/hooks/useTheme.js +173 -0
  210. package/dist/esm/hooks/useTheme.js.map +7 -0
  211. package/dist/esm/hooks/useUnmountEffect.js +11 -0
  212. package/dist/esm/hooks/useUnmountEffect.js.map +7 -0
  213. package/dist/{index.js → esm/index.js} +21 -5
  214. package/dist/esm/index.js.map +7 -0
  215. package/dist/esm/spacedChildren.js +52 -0
  216. package/dist/esm/spacedChildren.js.map +7 -0
  217. package/dist/{static.js → esm/static.js} +1 -2
  218. package/dist/{static.js.map → esm/static.js.map} +3 -3
  219. package/dist/esm/styled.js +53 -0
  220. package/dist/esm/styled.js.map +7 -0
  221. package/dist/esm/tamagui-base.css +8 -0
  222. package/dist/esm/tamagui-base.css.map +7 -0
  223. package/dist/esm/types-rnw.js +1 -0
  224. package/dist/{helpers/pseudos.js.map → esm/types-rnw.js.map} +0 -0
  225. package/dist/{types.js → esm/types.js} +0 -0
  226. package/dist/{types.js.map → esm/types.js.map} +0 -0
  227. package/dist/{views → esm/views}/Stack.js +0 -0
  228. package/dist/esm/views/Stack.js.map +7 -0
  229. package/dist/{views → esm/views}/Text.js +5 -4
  230. package/dist/esm/views/Text.js.map +7 -0
  231. package/dist/esm/views/TextAncestorContext.js +18 -0
  232. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  233. package/dist/esm/views/Theme.js +44 -0
  234. package/dist/esm/views/Theme.js.map +7 -0
  235. package/dist/{views → esm/views}/ThemeInverse.js +1 -1
  236. package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
  237. package/dist/esm/views/ThemeProvider.js +41 -0
  238. package/dist/esm/views/ThemeProvider.js.map +7 -0
  239. package/dist/esm/views/ThemeReset.js +38 -0
  240. package/dist/esm/views/ThemeReset.js.map +7 -0
  241. package/dist/jsx/Tamagui.js +33 -0
  242. package/dist/jsx/ThemeContext.js +5 -0
  243. package/dist/jsx/ThemeManager.js +178 -0
  244. package/dist/jsx/conf.js +36 -0
  245. package/dist/jsx/constants/constants.js +17 -0
  246. package/dist/jsx/constants/platform.js +23 -0
  247. package/dist/jsx/constants/pseudos.js +17 -0
  248. package/dist/jsx/constants/rnw.js +23 -0
  249. package/dist/jsx/contexts/ButtonInsideButtonContext.js +5 -0
  250. package/dist/jsx/createComponent.js +598 -0
  251. package/dist/jsx/createFont.js +27 -0
  252. package/dist/jsx/createShorthands.js +9 -0
  253. package/dist/jsx/createTamagui.js +176 -0
  254. package/dist/jsx/createTheme.js +6 -0
  255. package/dist/jsx/createTokens.js +32 -0
  256. package/dist/jsx/createVariable.js +42 -0
  257. package/dist/jsx/defaultComponentState.js +11 -0
  258. package/dist/jsx/devtools.js +15 -0
  259. package/dist/jsx/helpers/addStylesUsingClassname.js +60 -0
  260. package/dist/jsx/helpers/areEqualSets.js +15 -0
  261. package/dist/jsx/helpers/createMediaStyle.js +33 -0
  262. package/dist/jsx/helpers/createPropMapper.js +207 -0
  263. package/dist/jsx/helpers/createTamaguiProvider.js +35 -0
  264. package/dist/jsx/helpers/extendStaticConfig.js +58 -0
  265. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  266. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  267. package/dist/jsx/helpers/getExpandedShorthands.js +18 -0
  268. package/dist/jsx/helpers/getSplitStyles.js +233 -0
  269. package/dist/jsx/helpers/getStylesAtomic.js +117 -0
  270. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  271. package/dist/jsx/helpers/insertStyleRule.js +81 -0
  272. package/dist/jsx/helpers/isObj.js +6 -0
  273. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  274. package/dist/jsx/helpers/matchMedia.js +17 -0
  275. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  276. package/dist/jsx/helpers/themeable.js +24 -0
  277. package/dist/jsx/helpers/validate.js +62 -0
  278. package/dist/jsx/helpers/withStaticProperties.js +9 -0
  279. package/dist/jsx/helpers/wrapThemeManagerContext.js +10 -0
  280. package/dist/jsx/hooks/useConstant.js +14 -0
  281. package/dist/jsx/hooks/useFeatures.js +88 -0
  282. package/dist/jsx/hooks/useIsMounted.js +18 -0
  283. package/dist/jsx/hooks/useIsTouchDevice.js +16 -0
  284. package/dist/jsx/hooks/useMedia.js +177 -0
  285. package/dist/jsx/hooks/usePressable.js +13 -0
  286. package/dist/jsx/hooks/useTheme.js +172 -0
  287. package/dist/jsx/hooks/useUnmountEffect.js +10 -0
  288. package/dist/jsx/index.js +47 -0
  289. package/dist/jsx/spacedChildren.js +44 -0
  290. package/dist/jsx/static.js +13 -0
  291. package/dist/jsx/styled.js +52 -0
  292. package/dist/jsx/tamagui-base.css +7 -0
  293. package/dist/jsx/types-rnw.js +0 -0
  294. package/dist/jsx/types.js +0 -0
  295. package/dist/jsx/views/Stack.js +11 -0
  296. package/dist/jsx/views/Text.js +60 -0
  297. package/dist/jsx/views/TextAncestorContext.js +15 -0
  298. package/dist/jsx/views/Theme.js +40 -0
  299. package/dist/jsx/views/ThemeInverse.js +22 -0
  300. package/dist/jsx/views/ThemeProvider.js +35 -0
  301. package/dist/jsx/views/ThemeReset.js +34 -0
  302. package/package.json +22 -20
  303. package/types/Tamagui.d.ts +13 -0
  304. package/types/Tamagui.d.ts.map +1 -0
  305. package/types/ThemeContext.d.ts +7 -0
  306. package/types/ThemeContext.d.ts.map +1 -0
  307. package/types/ThemeManager.d.ts +49 -0
  308. package/types/ThemeManager.d.ts.map +1 -0
  309. package/types/conf.d.ts +25 -0
  310. package/types/conf.d.ts.map +1 -0
  311. package/{dist/packages/core/src → types}/constants/constants.d.ts +2 -0
  312. package/types/constants/constants.d.ts.map +1 -0
  313. package/{dist/packages/core/src → types}/constants/platform.d.ts +2 -0
  314. package/types/constants/platform.d.ts.map +1 -0
  315. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  316. package/types/constants/rnw.d.ts.map +1 -0
  317. package/types/contexts/ButtonInsideButtonContext.d.ts +3 -0
  318. package/types/contexts/ButtonInsideButtonContext.d.ts.map +1 -0
  319. package/types/createComponent.d.ts +21 -0
  320. package/types/createComponent.d.ts.map +1 -0
  321. package/types/createFont.d.ts +3 -0
  322. package/types/createFont.d.ts.map +1 -0
  323. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  324. package/types/createShorthands.d.ts.map +1 -0
  325. package/types/createTamagui.d.ts +16 -0
  326. package/types/createTamagui.d.ts.map +1 -0
  327. package/types/createTheme.d.ts +7 -0
  328. package/types/createTheme.d.ts.map +1 -0
  329. package/{dist/packages/core/src → types}/createTokens.d.ts +24 -14
  330. package/types/createTokens.d.ts.map +1 -0
  331. package/{dist/packages/core/src → types}/createVariable.d.ts +6 -1
  332. package/types/createVariable.d.ts.map +1 -0
  333. package/types/defaultComponentState.d.ts +13 -0
  334. package/types/defaultComponentState.d.ts.map +1 -0
  335. package/types/devtools.d.ts.map +1 -0
  336. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  337. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  338. package/types/helpers/areEqualSets.d.ts +2 -0
  339. package/types/helpers/areEqualSets.d.ts.map +1 -0
  340. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +0 -0
  341. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  342. package/types/helpers/createPropMapper.d.ts +4 -0
  343. package/types/helpers/createPropMapper.d.ts.map +1 -0
  344. package/types/helpers/createTamaguiProvider.d.ts +7 -0
  345. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  346. package/types/helpers/extendStaticConfig.d.ts +4 -0
  347. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  348. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  349. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  350. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  351. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  352. package/types/helpers/getExpandedShorthands.d.ts +3 -0
  353. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  354. package/types/helpers/getSplitStyles.d.ts +27 -0
  355. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  356. package/types/helpers/getStylesAtomic.d.ts +27 -0
  357. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  358. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  359. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  360. package/types/helpers/insertStyleRule.d.ts +7 -0
  361. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  362. package/types/helpers/isObj.d.ts +2 -0
  363. package/types/helpers/isObj.d.ts.map +1 -0
  364. package/types/helpers/isTamaguiElement.d.ts +3 -0
  365. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  366. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  367. package/types/helpers/matchMedia.d.ts.map +1 -0
  368. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  369. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  370. package/types/helpers/themeable.d.ts +10 -0
  371. package/types/helpers/themeable.d.ts.map +1 -0
  372. package/types/helpers/validate.d.ts +4 -0
  373. package/types/helpers/validate.d.ts.map +1 -0
  374. package/types/helpers/withStaticProperties.d.ts +2 -0
  375. package/types/helpers/withStaticProperties.d.ts.map +1 -0
  376. package/types/helpers/wrapThemeManagerContext.d.ts +3 -0
  377. package/types/helpers/wrapThemeManagerContext.d.ts.map +1 -0
  378. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  379. package/types/hooks/useConstant.d.ts.map +1 -0
  380. package/types/hooks/useFeatures.d.ts +16 -0
  381. package/types/hooks/useFeatures.d.ts.map +1 -0
  382. package/types/hooks/useIsMounted.d.ts +3 -0
  383. package/types/hooks/useIsMounted.d.ts.map +1 -0
  384. package/types/hooks/useIsTouchDevice.d.ts +2 -0
  385. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  386. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +0 -0
  387. package/types/hooks/useMedia.d.ts.map +1 -0
  388. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  389. package/types/hooks/usePressable.d.ts.map +1 -0
  390. package/types/hooks/useTheme.d.ts +36 -0
  391. package/types/hooks/useTheme.d.ts.map +1 -0
  392. package/types/hooks/useUnmountEffect.d.ts +2 -0
  393. package/types/hooks/useUnmountEffect.d.ts.map +1 -0
  394. package/{dist/packages/core/src → types}/index.d.ts +16 -3
  395. package/types/index.d.ts.map +1 -0
  396. package/types/spacedChildren.d.ts +9 -0
  397. package/types/spacedChildren.d.ts.map +1 -0
  398. package/{dist/packages/core/src → types}/static.d.ts +4 -2
  399. package/types/static.d.ts.map +1 -0
  400. package/types/styled.d.ts +11 -0
  401. package/types/styled.d.ts.map +1 -0
  402. package/types/types-rnw.d.ts +79 -0
  403. package/types/types-rnw.d.ts.map +1 -0
  404. package/types/types.d.ts +366 -0
  405. package/types/types.d.ts.map +1 -0
  406. package/types/views/Stack.d.ts +4 -0
  407. package/types/views/Stack.d.ts.map +1 -0
  408. package/types/views/Text.d.ts +4 -0
  409. package/types/views/Text.d.ts.map +1 -0
  410. package/types/views/TextAncestorContext.d.ts +5 -0
  411. package/types/views/TextAncestorContext.d.ts.map +1 -0
  412. package/types/views/Theme.d.ts +11 -0
  413. package/types/views/Theme.d.ts.map +1 -0
  414. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  415. package/types/views/ThemeInverse.d.ts.map +1 -0
  416. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +0 -1
  417. package/types/views/ThemeProvider.d.ts.map +1 -0
  418. package/types/views/ThemeReset.d.ts +4 -0
  419. package/types/views/ThemeReset.d.ts.map +1 -0
  420. package/dist/cjs/constants/pseudos.js +0 -25
  421. package/dist/cjs/constants/pseudos.js.map +0 -7
  422. package/dist/cjs/static/postProcessStyles.js +0 -40
  423. package/dist/cjs/static/postProcessStyles.js.map +0 -7
  424. package/dist/cjs/views/Animated.js +0 -129
  425. package/dist/cjs/views/Animated.js.map +0 -7
  426. package/dist/cjs/views/ThemeContext.js +0 -29
  427. package/dist/cjs/views/ThemeContext.js.map +0 -7
  428. package/dist/cjs/views/ThemeManagerContext.js +0 -84
  429. package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
  430. package/dist/constants/constants.js.map +0 -7
  431. package/dist/constants/platform.js.map +0 -7
  432. package/dist/constants/rnw.js.map +0 -7
  433. package/dist/constants/styleConstants.js +0 -46
  434. package/dist/constants/styleConstants.js.map +0 -7
  435. package/dist/createComponent.js +0 -463
  436. package/dist/createComponent.js.map +0 -7
  437. package/dist/createTamagui.js +0 -168
  438. package/dist/createTamagui.js.map +0 -7
  439. package/dist/createTheme.js +0 -20
  440. package/dist/createTheme.js.map +0 -7
  441. package/dist/createVariable.js +0 -25
  442. package/dist/createVariable.js.map +0 -7
  443. package/dist/helpers/addStylesUsingClassname.js.map +0 -7
  444. package/dist/helpers/createPropMapper.js +0 -153
  445. package/dist/helpers/createPropMapper.js.map +0 -7
  446. package/dist/helpers/createTamaguiProvider.js +0 -25
  447. package/dist/helpers/createTamaguiProvider.js.map +0 -7
  448. package/dist/helpers/extendStaticConfig.js.map +0 -7
  449. package/dist/helpers/fixNativeShadow.native.js +0 -30
  450. package/dist/helpers/fixNativeShadow.native.js.map +0 -7
  451. package/dist/helpers/getSplitStyles.js +0 -150
  452. package/dist/helpers/getSplitStyles.js.map +0 -7
  453. package/dist/helpers/getStylesAtomic.js +0 -83
  454. package/dist/helpers/getStylesAtomic.js.map +0 -7
  455. package/dist/helpers/insertStyleRule.js +0 -24
  456. package/dist/helpers/insertStyleRule.js.map +0 -7
  457. package/dist/helpers/isComponent.js +0 -10
  458. package/dist/helpers/isComponent.js.map +0 -7
  459. package/dist/helpers/isTamaguiComponent.js +0 -10
  460. package/dist/helpers/isTamaguiComponent.js.map +0 -7
  461. package/dist/helpers/pseudos.js +0 -1
  462. package/dist/helpers/themeable.js.map +0 -7
  463. package/dist/helpers/validate.js +0 -60
  464. package/dist/helpers/validate.js.map +0 -7
  465. package/dist/helpers/validateConfig.js +0 -46
  466. package/dist/helpers/validateConfig.js.map +0 -7
  467. package/dist/helpers/validateTokens.js +0 -29
  468. package/dist/helpers/validateTokens.js.map +0 -7
  469. package/dist/hooks/useFeatures.js.map +0 -7
  470. package/dist/hooks/useForceUpdate.js +0 -28
  471. package/dist/hooks/useForceUpdate.js.map +0 -7
  472. package/dist/hooks/useMedia.js.map +0 -7
  473. package/dist/hooks/useTheme.js +0 -89
  474. package/dist/hooks/useTheme.js.map +0 -7
  475. package/dist/index.cjs +0 -2202
  476. package/dist/index.cjs.map +0 -7
  477. package/dist/index.js.map +0 -7
  478. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  479. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  480. package/dist/packages/core/src/constants/pseudos.d.ts +0 -15
  481. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  482. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  483. package/dist/packages/core/src/createComponent.d.ts +0 -16
  484. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  485. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  486. package/dist/packages/core/src/createTamagui.d.ts +0 -37
  487. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  488. package/dist/packages/core/src/createTheme.d.ts +0 -5
  489. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  490. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  491. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  492. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  493. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  494. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  495. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts +0 -5
  496. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  497. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts +0 -5
  498. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  499. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  500. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +0 -2
  501. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  502. package/dist/packages/core/src/helpers/getSplitStyles.d.ts +0 -15
  503. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  504. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  505. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  506. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  507. package/dist/packages/core/src/helpers/insertStyleRule.d.ts +0 -2
  508. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  509. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  510. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  511. package/dist/packages/core/src/helpers/themeable.d.ts +0 -10
  512. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  513. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  514. package/dist/packages/core/src/hooks/useFeatures.d.ts +0 -5
  515. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  516. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  517. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  518. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  519. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  520. package/dist/packages/core/src/hooks/useTheme.d.ts +0 -18
  521. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  522. package/dist/packages/core/src/index.d.ts.map +0 -1
  523. package/dist/packages/core/src/static/postProcessStyles.d.ts +0 -7
  524. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  525. package/dist/packages/core/src/static.d.ts.map +0 -1
  526. package/dist/packages/core/src/styled.d.ts +0 -16
  527. package/dist/packages/core/src/styled.d.ts.map +0 -1
  528. package/dist/packages/core/src/types.d.ts +0 -305
  529. package/dist/packages/core/src/types.d.ts.map +0 -1
  530. package/dist/packages/core/src/views/Animated.d.ts +0 -15
  531. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  532. package/dist/packages/core/src/views/Stack.d.ts +0 -3
  533. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  534. package/dist/packages/core/src/views/Text.d.ts +0 -3
  535. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  536. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  537. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  538. package/dist/packages/core/src/views/Theme.d.ts +0 -8
  539. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  540. package/dist/packages/core/src/views/ThemeContext.d.ts +0 -18
  541. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  542. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  543. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  544. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  545. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  546. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  547. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  548. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  549. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  550. package/dist/packages/helpers/src/index.d.ts +0 -5
  551. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  552. package/dist/packages/helpers/src/types.d.ts +0 -8
  553. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  554. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  555. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  556. package/dist/static/postProcessStyles.js +0 -18
  557. package/dist/static/postProcessStyles.js.map +0 -7
  558. package/dist/styled.js +0 -21
  559. package/dist/styled.js.map +0 -7
  560. package/dist/views/Animated.js +0 -79
  561. package/dist/views/Animated.js.map +0 -7
  562. package/dist/views/SafeAreaProvider.js +0 -30
  563. package/dist/views/SafeAreaProvider.js.map +0 -7
  564. package/dist/views/Stack.js.map +0 -7
  565. package/dist/views/Text.js.map +0 -7
  566. package/dist/views/TextAncestorContext.js +0 -18
  567. package/dist/views/TextAncestorContext.js.map +0 -7
  568. package/dist/views/Theme.js +0 -65
  569. package/dist/views/Theme.js.map +0 -7
  570. package/dist/views/ThemeContext.js.map +0 -7
  571. package/dist/views/ThemeManagerContext.js +0 -61
  572. package/dist/views/ThemeManagerContext.js.map +0 -7
  573. package/dist/views/ThemeProvider.js +0 -45
  574. package/dist/views/ThemeProvider.js.map +0 -7
  575. package/src/constants/constants.ts +0 -12
  576. package/src/constants/platform.ts +0 -15
  577. package/src/constants/pseudos.ts +0 -14
  578. package/src/constants/rnw.tsx +0 -20
  579. package/src/createComponent.tsx +0 -612
  580. package/src/createFont.ts +0 -31
  581. package/src/createShorthands.ts +0 -5
  582. package/src/createTamagui.ts +0 -217
  583. package/src/createTheme.ts +0 -19
  584. package/src/createTokens.ts +0 -88
  585. package/src/createVariable.ts +0 -26
  586. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  587. package/src/helpers/createMediaStyle.ts +0 -46
  588. package/src/helpers/createPropMapper.ts +0 -184
  589. package/src/helpers/createTamaguiProvider.tsx +0 -22
  590. package/src/helpers/extendStaticConfig.ts +0 -68
  591. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  592. package/src/helpers/fixNativeShadow.tsx +0 -2
  593. package/src/helpers/getSplitStyles.tsx +0 -200
  594. package/src/helpers/getStylesAtomic.native.ts +0 -3
  595. package/src/helpers/getStylesAtomic.ts +0 -103
  596. package/src/helpers/insertStyleRule.tsx +0 -18
  597. package/src/helpers/isObj.ts +0 -1
  598. package/src/helpers/isTamaguiElement.tsx +0 -5
  599. package/src/helpers/matchMedia.native.ts +0 -6
  600. package/src/helpers/matchMedia.ts +0 -17
  601. package/src/helpers/themeable.tsx +0 -42
  602. package/src/helpers/validate.ts +0 -59
  603. package/src/hooks/useConstant.tsx +0 -10
  604. package/src/hooks/useFeatures.tsx +0 -79
  605. package/src/hooks/useMedia.tsx +0 -194
  606. package/src/hooks/usePressable.tsx +0 -9
  607. package/src/hooks/useTheme.tsx +0 -106
  608. package/src/index.ts +0 -32
  609. package/src/static/postProcessStyles.tsx +0 -20
  610. package/src/static.ts +0 -22
  611. package/src/styled.ts +0 -82
  612. package/src/types.tsx +0 -562
  613. package/src/views/Animated.tsx +0 -121
  614. package/src/views/Stack.tsx +0 -21
  615. package/src/views/Text.tsx +0 -66
  616. package/src/views/TextAncestorContext.tsx +0 -12
  617. package/src/views/Theme.tsx +0 -90
  618. package/src/views/ThemeContext.tsx +0 -5
  619. package/src/views/ThemeInverse.tsx +0 -22
  620. package/src/views/ThemeManagerContext.tsx +0 -62
  621. package/src/views/ThemeProvider.tsx +0 -52
  622. 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 useEffect,\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 } from './constants/platform'\nimport { rnw } from './constants/rnw'\nimport { isVariable } from './createVariable'\nimport { ComponentState, defaultComponentState } from './defaultComponentState'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport {\n ClassNamesObject,\n PseudoStyles,\n SplitStyleResult,\n getSplitStyles,\n} from './helpers/getSplitStyles'\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 StaticComponent,\n StaticConfig,\n StaticConfigParsed,\n TamaguiInternalConfig,\n UseAnimationHook,\n} from './types'\nimport { TextAncestorContext } from './views/TextAncestorContext'\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\nfunction createShallowUpdate(setter: React.Dispatch<React.SetStateAction<ComponentState>>) {\n return (next: Partial<ComponentState>) => {\n setter((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}\n\nexport function createComponent<ComponentPropTypes extends Object = DefaultProps, Ref = View>(\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, componentName } = staticConfig\n const componentClassName = `is_${componentName}`\n const validStyleProps = validStyles || stylePropsView\n\n // split out default styles vs props so we can assign it to component.defaultProps\n let tamaguiConfig: TamaguiInternalConfig\n let AnimatedText: any\n let AnimatedView: any\n let avoidClasses = false\n\n // web uses className, native uses style\n let defaultPseudos: PseudoStyles = {}\n let defaultNativeStyle: any\n let defaultNativeStyleSheet: StyleSheet.NamedStyles<{ base: {} }> | null = null\n let defaultsClassName: ClassNamesObject | null = null\n let initialTheme: any\n let splitStyleResult: SplitStyleResult | null = null\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 if (pseudoStyle) {\n styles.push(isWeb ? { [name]: pseudoStyle } : pseudoStyle)\n }\n const defaultPseudoStyle = defaultPseudos[name]\n if (defaultPseudoStyle) {\n styles.push(isWeb ? { [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 if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.warn(componentName || Component?.displayName || Component?.name || '[Unnamed Component]', ' debug prop on:', { props: Object.entries(props) })\n if (props['debug'] === 'break') debugger\n }\n }\n\n const forceUpdate = useForceUpdate()\n const theme = useTheme(props.theme, componentName, props, forceUpdate)\n const [state, set_] = useState<ComponentState>(defaultComponentState)\n const setStateShallow = createShallowUpdate(set_)\n\n const shouldAvoidClasses = !!(state.animation && avoidClasses)\n const splitInfo = getSplitStyles(\n props,\n staticConfig,\n theme,\n shouldAvoidClasses ? { ...state, noClassNames: true, resolveVariablesAs: 'value' } : state,\n defaultsClassName\n )\n\n const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitInfo\n const useAnimations = tamaguiConfig.animations?.useAnimations as UseAnimationHook | undefined\n const isAnimated = !!(useAnimations && props.animation)\n\n const styleWithPseudos = props.animation\n ? merge(\n { ...defaultNativeStyle, ...style },\n state.hover && pseudos.hoverStyle,\n state.press && pseudos.pressStyle,\n state.focus && pseudos.focusStyle,\n ...Object.values(medias)\n )\n : null\n\n const features = useFeatures(props, {\n forceUpdate,\n setStateShallow,\n useAnimations,\n state,\n style: styleWithPseudos,\n pseudos,\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 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 const hasEnterStyle = !!props.enterStyle\n\n // isMounted\n const internal = useRef<{ isMounted: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n }\n }\n useEffect(() => {\n if (hasEnterStyle) {\n // we need to use state to properly have mounted go from false => true\n setStateShallow({\n mounted: true,\n })\n }\n internal.current!.isMounted = true\n return () => {\n mouseUps.delete(unPress)\n internal.current!.isMounted = false\n }\n }, [])\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.hover && addPseudoToStyles(styles, 'hoverStyle', pseudos)\n state.focus && addPseudoToStyles(styles, 'focusStyle', pseudos)\n state.press && addPseudoToStyles(styles, 'pressStyle', pseudos)\n }\n }\n\n // TODO i think can still render this first part using reanimated\n // that way we get some of the classnames we probably want here (componentName/font/etc)\n // can just remove && !shouldAvoidClasses and add in a viewProps.style = styles in isWeb\n\n if (isWeb) {\n // const hasntSetInitialAnimationState = props.animation && !state.animation\n // const disableInsertStyles = hasntSetInitialAnimationState || shouldAvoidClasses || false\n // const stylesClassNames = useStylesAsClassname(\n // Array.isArray(styles) ? styles : [styles],\n // disableInsertStyles,\n // props.debug\n // )\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, defaultsClassName, classNames, propsClassName: props.className, style, classList, className: className.trim().split(' '), themeClassName: theme.className })\n }\n }\n viewProps.className = className\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 attachPress = !!((pseudos && pseudos.pressStyle) || onPress || onPressOut || onPressIn)\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 // this caused issue with next.js passing href\n // e.preventDefault()\n onPress?.(e)\n unPress()\n onPressOut?.(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: 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 if (events) {\n if (!isStringElement) {\n Object.assign(viewProps, pressProps)\n } else {\n Object.assign(viewProps, events)\n }\n if (isWeb && isHoverable) {\n childEls = (\n <span\n style={{\n display: 'contents',\n }}\n onMouseEnter={events.onMouseEnter}\n onMouseLeave={events.onMouseLeave}\n >\n {children}\n </span>\n )\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 content = createElement(ViewComponent, viewProps, childEls)\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 }, animationStyles, isStringElement, classNamesIn: props.className?.split(' '), classNamesOut: viewProps.className?.split(' '), pressProps, events, shouldAttach, ViewComponent, viewProps, state, styles, pseudos, content, childEls, shouldAvoidClasses, animation: props.animation, style, defaultNativeStyle, splitStyleResult, ...(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 // Once configuration is run and all components are registered\n // get default props + className and analyze styles\n onConfiguredOnce((conf) => {\n const shouldDebug = staticConfig.defaultProps?.debug\n tamaguiConfig = conf\n avoidClasses = !!tamaguiConfig.animations?.avoidClasses\n AnimatedText = tamaguiConfig.animations?.Text\n AnimatedView = tamaguiConfig?.animations?.View\n initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]\n splitStyleResult = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, {\n mounted: true,\n resolveVariablesAs: 'variable',\n })\n\n const { classNames, pseudos, style, viewProps } = splitStyleResult\n\n if (isWeb) {\n defaultsClassName = classNames\n }\n\n // for use in animations + native\n defaultPseudos = pseudos\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 component.displayName = staticConfig.componentName\n\n // @ts-ignore\n component.defaultProps = {\n ...viewProps,\n ...component.defaultProps,\n }\n\n // prettier-ignore\n if (process.env.NODE_ENV === 'development' && shouldDebug && process.env.IS_STATIC !== 'is_static') {\n // prettier-ignore\n console.log(`\uD83D\uDC1B [${staticConfig.componentName || 'Component'}]`, { staticConfig, ...splitStyleResult })\n }\n })\n\n let res: StaticComponent<ComponentPropTypes, {}, Ref> = component as any\n\n if (configIn.memo) {\n res = memo(res) as any\n }\n\n res['staticConfig'] = {\n validStyles: validStyleProps,\n ...staticConfig,\n }\n\n // res.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\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 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\n// TODO this can be removed likey for bundle size, didnt help reanimated fix as i thought\nconst merge = (...styles: (ViewStyle | null | false | undefined)[]) => {\n // ensure transforms get merged without duplicates:\n // so if you have a:\n // transform: [{ scale: 1 }]\n // rest[0]:\n // transform: [{ scale: 1.1 }]\n // it gets properly merged so that rest[0] overwrites a\n if (!styles[0]) return // never happens\n const res: ViewStyle = {}\n\n const len = styles.length\n for (let i = len - 1; i >= 0; i--) {\n const cur = styles[i]\n if (!cur) continue\n\n for (const key in cur) {\n const val = cur[key]\n if (key !== 'transform') {\n if (!(key in res)) {\n res[key] = val\n }\n continue\n }\n if (!res.transform) {\n res.transform = val\n continue\n }\n // transform\n for (const t of val) {\n const tkey = Object.keys(t)[0]\n if (res.transform.find((existing) => tkey in existing)) {\n continue\n }\n res.transform.push(t)\n }\n }\n }\n\n return res\n}\n\nexport const AbsoluteFill = (props: any) =>\n isWeb ? (\n <div\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n }}\n >\n {props.children}\n </div>\n ) : (\n <View style={StyleSheet.absoluteFill}>{props.child}</View>\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);
@@ -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,14 +1,26 @@
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
  }
@@ -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,38 @@ 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) {
69
- if (process.env.NODE_ENV === "development") {
70
- if (!config["parsed"]) {
71
- (0, import_validate.validateConfig)(config);
72
- }
50
+ if (createdConfigs.has(config)) {
51
+ return config;
73
52
  }
74
- if (conf) {
53
+ if ((0, import_conf.getHasConfigured)()) {
75
54
  console.warn("Called createTamagui twice! Should never do so");
76
55
  }
77
56
  (0, import_useMedia.configureMedia)({
@@ -79,62 +58,77 @@ function createTamagui(config) {
79
58
  defaultActive: config.mediaQueryDefaultActive
80
59
  });
81
60
  const themeConfig = (() => {
61
+ var _a;
82
62
  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]);
63
+ const varsByValue = /* @__PURE__ */ new Map();
64
+ if (import_platform.isWeb) {
65
+ const tokenRules = /* @__PURE__ */ new Set();
66
+ const addVar = /* @__PURE__ */ __name((v) => {
67
+ varsByValue[v.val] = v;
68
+ const rule = `--${(0, import_createVariable.createCSSVariable)(v.name, false)}:${typeof v.val === "number" ? `${v.val}px` : v.val}`;
69
+ tokenRules.add(rule);
70
+ }, "addVar");
71
+ for (const key in config.tokens) {
72
+ for (const skey in config.tokens[key]) {
73
+ const val = config.tokens[key][skey];
74
+ if (key === "font") {
75
+ for (const fkey in val) {
76
+ if (fkey === "family") {
77
+ addVar(val[fkey]);
78
+ } else {
79
+ for (const fskey in val[fkey]) {
80
+ addVar(val[fkey][fskey]);
81
+ }
100
82
  }
101
83
  }
84
+ } else {
85
+ addVar(val);
102
86
  }
103
- } else {
104
- addVar(val);
105
87
  }
106
88
  }
89
+ const sep = process.env.NODE_ENV === "development" ? config.cssStyleSeparator || " " : "";
90
+ cssRules.push(`:root {${sep}${[...tokenRules].join(`;${sep}`)}${sep}}`);
107
91
  }
108
- cssRules.push(`${tokenRule}
109
- }`);
92
+ const hasDarkLight = "light" in config.themes && "dark" in config.themes;
93
+ const CNP = `.${import_constants.THEME_CLASSNAME_PREFIX}`;
110
94
  for (const themeName in config.themes) {
111
- config.themes[themeName] = __spreadValues({}, config.themes[themeName]);
112
- const theme = config.themes[themeName];
95
+ const theme = __spreadValues({}, config.themes[themeName]);
96
+ config.themes[themeName] = theme;
113
97
  let vars = "";
114
98
  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
125
- });
99
+ if (import_platform.isWeb) {
100
+ const val = theme[themeKey];
101
+ const varName = val instanceof import_createVariable.Variable ? val.name : (_a = varsByValue[val]) == null ? void 0 : _a.name;
102
+ vars += `--${themeKey}:${varName ? (0, import_createVariable.createCSSVariable)(varName) : `${val}`};`;
126
103
  }
104
+ ensureThemeVariable(theme, themeKey);
127
105
  }
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} {
106
+ if (import_platform.isWeb) {
107
+ const isDarkOrLightBase = themeName === "dark" || themeName === "light";
108
+ const isDark = themeName.includes("dark_");
109
+ const selector = `${CNP}${themeName}`;
110
+ const addDarkLightSels = hasDarkLight && !isDarkOrLightBase;
111
+ const selectors = [selector];
112
+ if (addDarkLightSels) {
113
+ const childSelector = `${CNP}${themeName.replace("dark_", "").replace("light_", "")}`;
114
+ const [stronger, weaker] = isDark ? ["dark", "light"] : ["light", "dark"];
115
+ const max = config.maxDarkLightNesting ?? 3;
116
+ new Array(max * 2).fill(void 0).forEach((_, pi) => {
117
+ if (pi % 2 === 1)
118
+ return;
119
+ const parents = new Array(pi + 1).fill(void 0).map((_2, psi) => {
120
+ return `${CNP}${psi % 2 === 0 ? stronger : weaker}`;
121
+ });
122
+ selectors.push(`${(parents.length > 1 ? parents.slice(1) : parents).join(" ")} ${childSelector}`);
123
+ });
124
+ }
125
+ const cssRule = `${selectors.join(", ")} {
134
126
  ${vars}
135
127
  }`;
136
- cssRules.push(cssRule);
128
+ cssRules.push(cssRule);
129
+ }
137
130
  }
131
+ varsByValue.clear();
138
132
  Object.freeze(cssRules);
139
133
  return {
140
134
  cssRules,
@@ -142,39 +136,33 @@ ${vars}
142
136
  };
143
137
  })();
144
138
  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
- }
139
+ const getCSS = /* @__PURE__ */ __name(() => {
140
+ return `${themeConfig.css}
141
+ ${(0, import_insertStyleRule.getInsertedRules)().join("\n")}`;
142
+ }, "getCSS");
151
143
  const next = __spreadProps(__spreadValues({
152
- shorthands: {}
144
+ animations: {},
145
+ shorthands: {},
146
+ media: {}
153
147
  }, config), {
154
148
  Provider: (0, import_createTamaguiProvider.createTamaguiProvider)(__spreadValues({
149
+ getCSS,
155
150
  defaultTheme: "light"
156
151
  }, config)),
157
152
  themeConfig,
158
- themeParsed,
159
153
  tokensParsed,
160
154
  parsed: true,
161
- getCSS() {
162
- return `${themeConfig.css}
163
- ${[...(0, import_helpers.getStyleRules)()].join("\n")}`;
164
- }
155
+ getCSS
165
156
  });
166
- conf = next;
167
- if (configListeners.size) {
168
- configListeners.forEach((cb) => cb(next));
169
- configListeners.clear();
157
+ (0, import_conf.setConfig)(next);
158
+ if (import_conf.configListeners.size) {
159
+ import_conf.configListeners.forEach((cb) => cb(next));
160
+ import_conf.configListeners.clear();
170
161
  }
162
+ createdConfigs.set(next, true);
171
163
  return next;
172
164
  }
173
165
  __name(createTamagui, "createTamagui");
174
- function getThemeParentClassName(themeName) {
175
- return `theme-parent ${themeName ? `${PREFIX}${themeName}` : ""}`;
176
- }
177
- __name(getThemeParentClassName, "getThemeParentClassName");
178
166
  const parseTokens = /* @__PURE__ */ __name((tokens) => {
179
167
  const res = {};
180
168
  for (const key in tokens) {
@@ -203,4 +191,21 @@ const parseTokens = /* @__PURE__ */ __name((tokens) => {
203
191
  }
204
192
  return res;
205
193
  }, "parseTokens");
194
+ function ensureThemeVariable(theme, key) {
195
+ const val = theme[key];
196
+ if (!(0, import_createVariable.isVariable)(val)) {
197
+ theme[key] = (0, import_createVariable.createVariable)({
198
+ name: key,
199
+ val
200
+ });
201
+ } else {
202
+ if (val.name !== key) {
203
+ theme[key] = (0, import_createVariable.createVariable)({
204
+ name: key,
205
+ val: val.val
206
+ });
207
+ }
208
+ }
209
+ }
210
+ __name(ensureThemeVariable, "ensureThemeVariable");
206
211
  //# sourceMappingURL=createTamagui.js.map