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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) 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/pseudos.js +19 -3
  14. package/dist/cjs/constants/pseudos.js.map +1 -1
  15. package/dist/cjs/constants/rnw.js +21 -3
  16. package/dist/cjs/constants/rnw.js.map +2 -2
  17. package/dist/cjs/contexts/ButtonInsideButtonContext.js +29 -0
  18. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +7 -0
  19. package/dist/cjs/createComponent.js +371 -225
  20. package/dist/cjs/createComponent.js.map +2 -2
  21. package/dist/cjs/createFont.js +15 -15
  22. package/dist/cjs/createFont.js.map +1 -1
  23. package/dist/cjs/createShorthands.js +19 -3
  24. package/dist/cjs/createShorthands.js.map +1 -1
  25. package/dist/cjs/createTamagui.js +156 -122
  26. package/dist/cjs/createTamagui.js.map +2 -2
  27. package/dist/cjs/createTheme.js +15 -28
  28. package/dist/cjs/createTheme.js.map +2 -2
  29. package/dist/cjs/createTokens.js +19 -22
  30. package/dist/cjs/createTokens.js.map +2 -2
  31. package/dist/cjs/createVariable.js +49 -19
  32. package/dist/cjs/createVariable.js.map +2 -2
  33. package/dist/cjs/defaultComponentState.js +1 -0
  34. package/dist/{helpers/pseudos.js.map → cjs/defaultComponentState.js.map} +0 -0
  35. package/dist/cjs/helpers/RNComponents.js +38 -0
  36. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  37. package/dist/cjs/helpers/addStylesUsingClassname.js +37 -29
  38. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  39. package/dist/cjs/helpers/areEqualSets.js +38 -0
  40. package/dist/cjs/helpers/areEqualSets.js.map +7 -0
  41. package/dist/cjs/helpers/createMediaStyle.js +19 -21
  42. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  43. package/dist/cjs/helpers/createPropMapper.js +157 -119
  44. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  45. package/dist/cjs/helpers/createShallowUpdate.js +55 -0
  46. package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
  47. package/dist/cjs/helpers/createTamaguiProvider.js +45 -26
  48. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  49. package/dist/cjs/helpers/extendStaticConfig.js +27 -27
  50. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  51. package/dist/cjs/helpers/fixNativeShadow.js +19 -3
  52. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  53. package/dist/cjs/helpers/fixNativeShadow.native.js +42 -22
  54. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  55. package/dist/cjs/helpers/getExpandedShorthands.js +41 -0
  56. package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
  57. package/dist/cjs/helpers/getSize.js +35 -0
  58. package/dist/cjs/helpers/getSize.js.map +7 -0
  59. package/dist/cjs/helpers/getSplitStyles.js +225 -98
  60. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  61. package/dist/cjs/helpers/getStylesAtomic.js +116 -56
  62. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  63. package/dist/cjs/helpers/getStylesAtomic.native.js +19 -3
  64. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  65. package/dist/cjs/helpers/getThemeParentClassName.js +33 -0
  66. package/dist/cjs/helpers/getThemeParentClassName.js.map +7 -0
  67. package/dist/cjs/helpers/insertStyleRule.js +101 -25
  68. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  69. package/dist/cjs/helpers/isObj.js +19 -3
  70. package/dist/cjs/helpers/isObj.js.map +1 -1
  71. package/dist/cjs/helpers/isTamaguiElement.js +15 -15
  72. package/dist/cjs/helpers/isTamaguiElement.js.map +1 -1
  73. package/dist/cjs/helpers/matchMedia.js +19 -3
  74. package/dist/cjs/helpers/matchMedia.js.map +1 -1
  75. package/dist/cjs/helpers/matchMedia.native.js +16 -13
  76. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  77. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  78. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  79. package/dist/cjs/helpers/themeable.js +29 -24
  80. package/dist/cjs/helpers/themeable.js.map +2 -2
  81. package/dist/cjs/helpers/validate.js +88 -47
  82. package/dist/cjs/helpers/validate.js.map +2 -2
  83. package/dist/cjs/helpers/withStaticProperties.js +32 -0
  84. package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
  85. package/dist/cjs/helpers/wrapThemeManagerContext.js +39 -0
  86. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +7 -0
  87. package/dist/cjs/hooks/useConstant.js +15 -15
  88. package/dist/cjs/hooks/useConstant.js.map +1 -1
  89. package/dist/cjs/hooks/useFeatures.js +146 -18
  90. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  91. package/dist/cjs/hooks/useIsMounted.js +41 -0
  92. package/dist/cjs/hooks/useIsMounted.js.map +7 -0
  93. package/dist/cjs/hooks/useIsTouchDevice.js +39 -0
  94. package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
  95. package/dist/cjs/hooks/useMedia.js +54 -59
  96. package/dist/cjs/hooks/useMedia.js.map +2 -2
  97. package/dist/cjs/hooks/usePressable.js +15 -15
  98. package/dist/cjs/hooks/usePressable.js.map +1 -1
  99. package/dist/cjs/hooks/useTheme.js +175 -67
  100. package/dist/cjs/hooks/useTheme.js.map +2 -2
  101. package/dist/cjs/hooks/useUnmountEffect.js +33 -0
  102. package/dist/cjs/hooks/useUnmountEffect.js.map +7 -0
  103. package/dist/cjs/index.js +71 -43
  104. package/dist/cjs/index.js.map +2 -2
  105. package/dist/cjs/static/postProcessStyles.js +15 -15
  106. package/dist/cjs/static/postProcessStyles.js.map +1 -1
  107. package/dist/cjs/static.js +26 -27
  108. package/dist/cjs/static.js.map +2 -2
  109. package/dist/cjs/styled.js +42 -20
  110. package/dist/cjs/styled.js.map +3 -3
  111. package/dist/cjs/tamagui-base.css +11 -0
  112. package/dist/cjs/tamagui-base.css.map +7 -0
  113. package/dist/cjs/types-rnw.js +16 -0
  114. package/dist/cjs/types-rnw.js.map +7 -0
  115. package/dist/cjs/types.js +14 -2
  116. package/dist/cjs/types.js.map +2 -2
  117. package/dist/cjs/views/Animated.js +20 -17
  118. package/dist/cjs/views/Animated.js.map +1 -1
  119. package/dist/cjs/views/Stack.js +17 -16
  120. package/dist/cjs/views/Stack.js.map +2 -2
  121. package/dist/cjs/views/Text.js +23 -21
  122. package/dist/cjs/views/Text.js.map +2 -2
  123. package/dist/cjs/views/TextAncestorContext.js +25 -21
  124. package/dist/cjs/views/TextAncestorContext.js.map +2 -2
  125. package/dist/cjs/views/Theme.js +36 -64
  126. package/dist/cjs/views/Theme.js.map +2 -2
  127. package/dist/cjs/views/ThemeContext.js +15 -15
  128. package/dist/cjs/views/ThemeContext.js.map +1 -1
  129. package/dist/cjs/views/ThemeInverse.js +20 -16
  130. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  131. package/dist/cjs/views/ThemeManagerContext.js +19 -18
  132. package/dist/cjs/views/ThemeManagerContext.js.map +1 -1
  133. package/dist/cjs/views/ThemeProvider.js +37 -37
  134. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  135. package/dist/cjs/views/ThemeReset.js +63 -0
  136. package/dist/cjs/views/ThemeReset.js.map +7 -0
  137. package/dist/esm/Tamagui.js +42 -0
  138. package/dist/esm/Tamagui.js.map +7 -0
  139. package/dist/{views → esm}/ThemeContext.js +0 -0
  140. package/dist/esm/ThemeContext.js.map +7 -0
  141. package/dist/esm/ThemeManager.js +187 -0
  142. package/dist/esm/ThemeManager.js.map +7 -0
  143. package/dist/esm/conf.js +36 -0
  144. package/dist/esm/conf.js.map +7 -0
  145. package/dist/{constants → esm/constants}/constants.js +4 -0
  146. package/dist/esm/constants/constants.js.map +7 -0
  147. package/dist/{constants → esm/constants}/platform.js +8 -1
  148. package/dist/esm/constants/platform.js.map +7 -0
  149. package/dist/{constants → esm/constants}/pseudos.js +0 -0
  150. package/dist/{constants → esm/constants}/pseudos.js.map +2 -2
  151. package/dist/{constants → esm/constants}/rnw.js +2 -0
  152. package/dist/esm/constants/rnw.js.map +7 -0
  153. package/dist/esm/contexts/ButtonInsideButtonContext.js +6 -0
  154. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +7 -0
  155. package/dist/esm/createComponent.js +606 -0
  156. package/dist/esm/createComponent.js.map +7 -0
  157. package/dist/{createFont.js → esm/createFont.js} +0 -0
  158. package/dist/{createFont.js.map → esm/createFont.js.map} +2 -2
  159. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  160. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +2 -2
  161. package/dist/esm/createTamagui.js +202 -0
  162. package/dist/esm/createTamagui.js.map +7 -0
  163. package/dist/esm/createTheme.js +7 -0
  164. package/dist/esm/createTheme.js.map +7 -0
  165. package/dist/{createTokens.js → esm/createTokens.js} +2 -6
  166. package/dist/esm/createTokens.js.map +7 -0
  167. package/dist/esm/createVariable.js +49 -0
  168. package/dist/esm/createVariable.js.map +7 -0
  169. package/dist/esm/defaultComponentState.js +1 -0
  170. package/dist/{types.js.map → esm/defaultComponentState.js.map} +0 -0
  171. package/dist/esm/helpers/RNComponents.js +12 -0
  172. package/dist/esm/helpers/RNComponents.js.map +7 -0
  173. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +20 -13
  174. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  175. package/dist/esm/helpers/areEqualSets.js +16 -0
  176. package/dist/esm/helpers/areEqualSets.js.map +7 -0
  177. package/dist/{helpers → esm/helpers}/createMediaStyle.js +3 -6
  178. package/dist/esm/helpers/createMediaStyle.js.map +7 -0
  179. package/dist/esm/helpers/createPropMapper.js +206 -0
  180. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  181. package/dist/esm/helpers/createShallowUpdate.js +19 -0
  182. package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
  183. package/dist/esm/helpers/createTamaguiProvider.js +40 -0
  184. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  185. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +17 -14
  186. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  187. package/dist/{helpers → esm/helpers}/fixNativeShadow.js +0 -0
  188. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +2 -2
  189. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  190. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  191. package/dist/esm/helpers/getExpandedShorthands.js +19 -0
  192. package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
  193. package/dist/esm/helpers/getSize.js +13 -0
  194. package/dist/esm/helpers/getSize.js.map +7 -0
  195. package/dist/esm/helpers/getSplitStyles.js +278 -0
  196. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  197. package/dist/esm/helpers/getStylesAtomic.js +131 -0
  198. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  199. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js +0 -0
  200. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js.map +2 -2
  201. package/dist/esm/helpers/getThemeParentClassName.js +11 -0
  202. package/dist/esm/helpers/getThemeParentClassName.js.map +7 -0
  203. package/dist/esm/helpers/insertStyleRule.js +94 -0
  204. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  205. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  206. package/dist/{helpers → esm/helpers}/isObj.js.map +2 -2
  207. package/dist/{helpers → esm/helpers}/isTamaguiElement.js +2 -1
  208. package/dist/{helpers → esm/helpers}/isTamaguiElement.js.map +2 -2
  209. package/dist/{helpers → esm/helpers}/matchMedia.js +0 -0
  210. package/dist/{helpers → esm/helpers}/matchMedia.js.map +2 -2
  211. package/dist/{helpers → esm/helpers}/matchMedia.native.js +0 -0
  212. package/dist/{helpers → esm/helpers}/matchMedia.native.js.map +2 -2
  213. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  214. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  215. package/dist/{helpers → esm/helpers}/themeable.js +12 -10
  216. package/dist/esm/helpers/themeable.js.map +7 -0
  217. package/dist/esm/helpers/validate.js +76 -0
  218. package/dist/esm/helpers/validate.js.map +7 -0
  219. package/dist/esm/helpers/withStaticProperties.js +10 -0
  220. package/dist/esm/helpers/withStaticProperties.js.map +7 -0
  221. package/dist/esm/helpers/wrapThemeManagerContext.js +14 -0
  222. package/dist/esm/helpers/wrapThemeManagerContext.js.map +7 -0
  223. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  224. package/dist/{hooks → esm/hooks}/useConstant.js.map +2 -2
  225. package/dist/esm/hooks/useFeatures.js +173 -0
  226. package/dist/esm/hooks/useFeatures.js.map +7 -0
  227. package/dist/esm/hooks/useIsMounted.js +19 -0
  228. package/dist/esm/hooks/useIsMounted.js.map +7 -0
  229. package/dist/esm/hooks/useIsTouchDevice.js +17 -0
  230. package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
  231. package/dist/{hooks → esm/hooks}/useMedia.js +31 -42
  232. package/dist/esm/hooks/useMedia.js.map +7 -0
  233. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  234. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  235. package/dist/esm/hooks/useTheme.js +178 -0
  236. package/dist/esm/hooks/useTheme.js.map +7 -0
  237. package/dist/esm/hooks/useUnmountEffect.js +11 -0
  238. package/dist/esm/hooks/useUnmountEffect.js.map +7 -0
  239. package/dist/{index.js → esm/index.js} +25 -5
  240. package/dist/esm/index.js.map +7 -0
  241. package/dist/{static → esm/static}/postProcessStyles.js +0 -0
  242. package/dist/{static → esm/static}/postProcessStyles.js.map +2 -2
  243. package/dist/{static.js → esm/static.js} +4 -2
  244. package/dist/esm/static.js.map +7 -0
  245. package/dist/esm/styled.js +45 -0
  246. package/dist/esm/styled.js.map +7 -0
  247. package/dist/esm/tamagui-base.css +11 -0
  248. package/dist/esm/tamagui-base.css.map +7 -0
  249. package/dist/esm/types-rnw.js +1 -0
  250. package/dist/esm/types-rnw.js.map +7 -0
  251. package/dist/{types.js → esm/types.js} +0 -0
  252. package/dist/esm/types.js.map +7 -0
  253. package/dist/{views → esm/views}/Animated.js +0 -0
  254. package/dist/{views → esm/views}/Animated.js.map +2 -2
  255. package/dist/{views → esm/views}/Stack.js +1 -0
  256. package/dist/esm/views/Stack.js.map +7 -0
  257. package/dist/{views → esm/views}/Text.js +6 -4
  258. package/dist/esm/views/Text.js.map +7 -0
  259. package/dist/esm/views/TextAncestorContext.js +18 -0
  260. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  261. package/dist/esm/views/Theme.js +35 -0
  262. package/dist/esm/views/Theme.js.map +7 -0
  263. package/dist/esm/views/ThemeContext.js +6 -0
  264. package/dist/{views → esm/views}/ThemeContext.js.map +2 -2
  265. package/dist/{views → esm/views}/ThemeInverse.js +1 -1
  266. package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
  267. package/dist/{views → esm/views}/ThemeManagerContext.js +5 -4
  268. package/dist/{views → esm/views}/ThemeManagerContext.js.map +2 -2
  269. package/dist/esm/views/ThemeProvider.js +42 -0
  270. package/dist/esm/views/ThemeProvider.js.map +7 -0
  271. package/dist/esm/views/ThemeReset.js +38 -0
  272. package/dist/esm/views/ThemeReset.js.map +7 -0
  273. package/dist/jsx/Tamagui.js +41 -0
  274. package/dist/jsx/ThemeContext.js +5 -0
  275. package/dist/jsx/ThemeManager.js +186 -0
  276. package/dist/jsx/conf.js +35 -0
  277. package/dist/jsx/constants/constants.js +17 -0
  278. package/dist/jsx/constants/platform.js +25 -0
  279. package/dist/jsx/constants/pseudos.js +17 -0
  280. package/dist/jsx/constants/rnw.js +23 -0
  281. package/dist/jsx/contexts/ButtonInsideButtonContext.js +5 -0
  282. package/dist/jsx/createComponent.js +592 -0
  283. package/dist/jsx/createFont.js +27 -0
  284. package/dist/jsx/createShorthands.js +9 -0
  285. package/dist/jsx/createTamagui.js +201 -0
  286. package/dist/jsx/createTheme.js +6 -0
  287. package/dist/jsx/createTokens.js +28 -0
  288. package/dist/jsx/createVariable.js +48 -0
  289. package/dist/jsx/defaultComponentState.js +0 -0
  290. package/dist/jsx/helpers/RNComponents.js +11 -0
  291. package/dist/jsx/helpers/addStylesUsingClassname.js +63 -0
  292. package/dist/jsx/helpers/areEqualSets.js +15 -0
  293. package/dist/jsx/helpers/createMediaStyle.js +30 -0
  294. package/dist/jsx/helpers/createPropMapper.js +205 -0
  295. package/dist/jsx/helpers/createShallowUpdate.js +18 -0
  296. package/dist/jsx/helpers/createTamaguiProvider.js +34 -0
  297. package/dist/jsx/helpers/extendStaticConfig.js +61 -0
  298. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  299. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  300. package/dist/jsx/helpers/getExpandedShorthands.js +18 -0
  301. package/dist/jsx/helpers/getSize.js +12 -0
  302. package/dist/jsx/helpers/getSplitStyles.js +277 -0
  303. package/dist/jsx/helpers/getStylesAtomic.js +130 -0
  304. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  305. package/dist/jsx/helpers/getThemeParentClassName.js +10 -0
  306. package/dist/jsx/helpers/insertStyleRule.js +93 -0
  307. package/dist/jsx/helpers/isObj.js +6 -0
  308. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  309. package/dist/jsx/helpers/matchMedia.js +17 -0
  310. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  311. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  312. package/dist/jsx/helpers/themeable.js +24 -0
  313. package/dist/jsx/helpers/validate.js +75 -0
  314. package/dist/jsx/helpers/withStaticProperties.js +9 -0
  315. package/dist/jsx/helpers/wrapThemeManagerContext.js +10 -0
  316. package/dist/jsx/hooks/useConstant.js +14 -0
  317. package/dist/jsx/hooks/useFeatures.js +167 -0
  318. package/dist/jsx/hooks/useIsMounted.js +18 -0
  319. package/dist/jsx/hooks/useIsTouchDevice.js +16 -0
  320. package/dist/jsx/hooks/useMedia.js +159 -0
  321. package/dist/jsx/hooks/usePressable.js +13 -0
  322. package/dist/jsx/hooks/useTheme.js +177 -0
  323. package/dist/jsx/hooks/useUnmountEffect.js +10 -0
  324. package/dist/jsx/index.js +51 -0
  325. package/dist/jsx/static/postProcessStyles.js +17 -0
  326. package/dist/jsx/static.js +16 -0
  327. package/dist/jsx/styled.js +44 -0
  328. package/dist/jsx/tamagui-base.css +10 -0
  329. package/dist/jsx/types-rnw.js +0 -0
  330. package/dist/jsx/types.js +0 -0
  331. package/dist/jsx/views/Animated.js +74 -0
  332. package/dist/jsx/views/Stack.js +12 -0
  333. package/dist/jsx/views/Text.js +61 -0
  334. package/dist/jsx/views/TextAncestorContext.js +15 -0
  335. package/dist/jsx/views/Theme.js +31 -0
  336. package/dist/jsx/views/ThemeContext.js +5 -0
  337. package/dist/jsx/views/ThemeInverse.js +22 -0
  338. package/dist/jsx/views/ThemeManagerContext.js +61 -0
  339. package/dist/jsx/views/ThemeProvider.js +35 -0
  340. package/dist/jsx/views/ThemeReset.js +34 -0
  341. package/package.json +22 -20
  342. package/types/Tamagui.d.ts +30 -0
  343. package/types/Tamagui.d.ts.map +1 -0
  344. package/types/ThemeContext.d.ts +7 -0
  345. package/types/ThemeContext.d.ts.map +1 -0
  346. package/types/ThemeManager.d.ts +49 -0
  347. package/types/ThemeManager.d.ts.map +1 -0
  348. package/types/conf.d.ts +27 -0
  349. package/types/conf.d.ts.map +1 -0
  350. package/{dist/packages/core/src → types}/constants/constants.d.ts +2 -0
  351. package/types/constants/constants.d.ts.map +1 -0
  352. package/{dist/packages/core/src → types}/constants/platform.d.ts +3 -0
  353. package/types/constants/platform.d.ts.map +1 -0
  354. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  355. package/types/constants/rnw.d.ts.map +1 -0
  356. package/types/contexts/ButtonInsideButtonContext.d.ts +3 -0
  357. package/types/contexts/ButtonInsideButtonContext.d.ts.map +1 -0
  358. package/types/createComponent.d.ts +19 -0
  359. package/types/createComponent.d.ts.map +1 -0
  360. package/types/createFont.d.ts +3 -0
  361. package/types/createFont.d.ts.map +1 -0
  362. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  363. package/types/createShorthands.d.ts.map +1 -0
  364. package/types/createTamagui.d.ts +18 -0
  365. package/types/createTamagui.d.ts.map +1 -0
  366. package/types/createTheme.d.ts +7 -0
  367. package/types/createTheme.d.ts.map +1 -0
  368. package/{dist/packages/core/src → types}/createTokens.d.ts +0 -16
  369. package/types/createTokens.d.ts.map +1 -0
  370. package/types/createVariable.d.ts +20 -0
  371. package/types/createVariable.d.ts.map +1 -0
  372. package/types/defaultComponentState.d.ts +1 -0
  373. package/types/defaultComponentState.d.ts.map +1 -0
  374. package/types/helpers/RNComponents.d.ts +2 -0
  375. package/types/helpers/RNComponents.d.ts.map +1 -0
  376. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  377. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  378. package/types/helpers/areEqualSets.d.ts +2 -0
  379. package/types/helpers/areEqualSets.d.ts.map +1 -0
  380. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +1 -1
  381. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  382. package/types/helpers/createPropMapper.d.ts +4 -0
  383. package/types/helpers/createPropMapper.d.ts.map +1 -0
  384. package/types/helpers/createShallowUpdate.d.ts +4 -0
  385. package/types/helpers/createShallowUpdate.d.ts.map +1 -0
  386. package/types/helpers/createTamaguiProvider.d.ts +7 -0
  387. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  388. package/types/helpers/extendStaticConfig.d.ts +4 -0
  389. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  390. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  391. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  392. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  393. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  394. package/types/helpers/getExpandedShorthands.d.ts +3 -0
  395. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  396. package/types/helpers/getSize.d.ts +3 -0
  397. package/types/helpers/getSize.d.ts.map +1 -0
  398. package/types/helpers/getSplitStyles.d.ts +19 -0
  399. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  400. package/types/helpers/getStylesAtomic.d.ts +27 -0
  401. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  402. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  403. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  404. package/types/helpers/insertStyleRule.d.ts +8 -0
  405. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  406. package/types/helpers/isObj.d.ts +2 -0
  407. package/types/helpers/isObj.d.ts.map +1 -0
  408. package/types/helpers/isTamaguiElement.d.ts +3 -0
  409. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  410. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  411. package/types/helpers/matchMedia.d.ts.map +1 -0
  412. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  413. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  414. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  415. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  416. package/types/helpers/themeable.d.ts +12 -0
  417. package/types/helpers/themeable.d.ts.map +1 -0
  418. package/types/helpers/validate.d.ts +4 -0
  419. package/types/helpers/validate.d.ts.map +1 -0
  420. package/types/helpers/withStaticProperties.d.ts +2 -0
  421. package/types/helpers/withStaticProperties.d.ts.map +1 -0
  422. package/types/helpers/wrapThemeManagerContext.d.ts +3 -0
  423. package/types/helpers/wrapThemeManagerContext.d.ts.map +1 -0
  424. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  425. package/types/hooks/useConstant.d.ts.map +1 -0
  426. package/types/hooks/useFeatures.d.ts +18 -0
  427. package/types/hooks/useFeatures.d.ts.map +1 -0
  428. package/types/hooks/useIsMounted.d.ts +3 -0
  429. package/types/hooks/useIsMounted.d.ts.map +1 -0
  430. package/types/hooks/useIsTouchDevice.d.ts +2 -0
  431. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  432. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +2 -6
  433. package/types/hooks/useMedia.d.ts.map +1 -0
  434. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  435. package/types/hooks/usePressable.d.ts.map +1 -0
  436. package/types/hooks/useTheme.d.ts +36 -0
  437. package/types/hooks/useTheme.d.ts.map +1 -0
  438. package/types/hooks/useUnmountEffect.d.ts +2 -0
  439. package/types/hooks/useUnmountEffect.d.ts.map +1 -0
  440. package/types/index.d.ts +42 -0
  441. package/types/index.d.ts.map +1 -0
  442. package/{dist/packages/core/src → types}/static.d.ts +7 -2
  443. package/types/static.d.ts.map +1 -0
  444. package/types/styled.d.ts +16 -0
  445. package/types/styled.d.ts.map +1 -0
  446. package/types/types-rnw.d.ts +74 -0
  447. package/types/types-rnw.d.ts.map +1 -0
  448. package/types/types.d.ts +406 -0
  449. package/types/types.d.ts.map +1 -0
  450. package/types/views/Stack.d.ts +4 -0
  451. package/types/views/Stack.d.ts.map +1 -0
  452. package/types/views/Text.d.ts +4 -0
  453. package/types/views/Text.d.ts.map +1 -0
  454. package/types/views/TextAncestorContext.d.ts +5 -0
  455. package/types/views/TextAncestorContext.d.ts.map +1 -0
  456. package/types/views/Theme.d.ts +12 -0
  457. package/types/views/Theme.d.ts.map +1 -0
  458. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  459. package/types/views/ThemeInverse.d.ts.map +1 -0
  460. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +1 -1
  461. package/types/views/ThemeProvider.d.ts.map +1 -0
  462. package/types/views/ThemeReset.d.ts +4 -0
  463. package/types/views/ThemeReset.d.ts.map +1 -0
  464. package/LICENSE +0 -21
  465. package/dist/constants/constants.js.map +0 -7
  466. package/dist/constants/platform.js.map +0 -7
  467. package/dist/constants/rnw.js.map +0 -7
  468. package/dist/constants/styleConstants.js +0 -46
  469. package/dist/constants/styleConstants.js.map +0 -7
  470. package/dist/createComponent.js +0 -463
  471. package/dist/createComponent.js.map +0 -7
  472. package/dist/createTamagui.js +0 -168
  473. package/dist/createTamagui.js.map +0 -7
  474. package/dist/createTheme.js +0 -20
  475. package/dist/createTheme.js.map +0 -7
  476. package/dist/createTokens.js.map +0 -7
  477. package/dist/createVariable.js +0 -25
  478. package/dist/createVariable.js.map +0 -7
  479. package/dist/helpers/addStylesUsingClassname.js.map +0 -7
  480. package/dist/helpers/createMediaStyle.js.map +0 -7
  481. package/dist/helpers/createPropMapper.js +0 -153
  482. package/dist/helpers/createPropMapper.js.map +0 -7
  483. package/dist/helpers/createTamaguiProvider.js +0 -25
  484. package/dist/helpers/createTamaguiProvider.js.map +0 -7
  485. package/dist/helpers/extendStaticConfig.js.map +0 -7
  486. package/dist/helpers/fixNativeShadow.native.js +0 -30
  487. package/dist/helpers/fixNativeShadow.native.js.map +0 -7
  488. package/dist/helpers/getSplitStyles.js +0 -150
  489. package/dist/helpers/getSplitStyles.js.map +0 -7
  490. package/dist/helpers/getStylesAtomic.js +0 -83
  491. package/dist/helpers/getStylesAtomic.js.map +0 -7
  492. package/dist/helpers/insertStyleRule.js +0 -24
  493. package/dist/helpers/insertStyleRule.js.map +0 -7
  494. package/dist/helpers/isComponent.js +0 -10
  495. package/dist/helpers/isComponent.js.map +0 -7
  496. package/dist/helpers/isTamaguiComponent.js +0 -10
  497. package/dist/helpers/isTamaguiComponent.js.map +0 -7
  498. package/dist/helpers/pseudos.js +0 -1
  499. package/dist/helpers/themeable.js.map +0 -7
  500. package/dist/helpers/validate.js +0 -60
  501. package/dist/helpers/validate.js.map +0 -7
  502. package/dist/helpers/validateConfig.js +0 -46
  503. package/dist/helpers/validateConfig.js.map +0 -7
  504. package/dist/helpers/validateTokens.js +0 -29
  505. package/dist/helpers/validateTokens.js.map +0 -7
  506. package/dist/hooks/useFeatures.js +0 -63
  507. package/dist/hooks/useFeatures.js.map +0 -7
  508. package/dist/hooks/useForceUpdate.js +0 -28
  509. package/dist/hooks/useForceUpdate.js.map +0 -7
  510. package/dist/hooks/useMedia.js.map +0 -7
  511. package/dist/hooks/useTheme.js +0 -89
  512. package/dist/hooks/useTheme.js.map +0 -7
  513. package/dist/index.cjs +0 -2202
  514. package/dist/index.cjs.map +0 -7
  515. package/dist/index.js.map +0 -7
  516. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  517. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  518. package/dist/packages/core/src/constants/pseudos.d.ts +0 -15
  519. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  520. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  521. package/dist/packages/core/src/createComponent.d.ts +0 -16
  522. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  523. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  524. package/dist/packages/core/src/createTamagui.d.ts +0 -37
  525. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  526. package/dist/packages/core/src/createTheme.d.ts +0 -5
  527. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  528. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  529. package/dist/packages/core/src/createVariable.d.ts +0 -14
  530. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  531. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  532. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  533. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  534. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts +0 -5
  535. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  536. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts +0 -5
  537. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  538. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  539. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +0 -2
  540. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  541. package/dist/packages/core/src/helpers/getSplitStyles.d.ts +0 -15
  542. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  543. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  544. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  545. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  546. package/dist/packages/core/src/helpers/insertStyleRule.d.ts +0 -2
  547. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  548. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  549. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  550. package/dist/packages/core/src/helpers/themeable.d.ts +0 -10
  551. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  552. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  553. package/dist/packages/core/src/hooks/useFeatures.d.ts +0 -5
  554. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  555. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  556. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  557. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  558. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  559. package/dist/packages/core/src/hooks/useTheme.d.ts +0 -18
  560. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  561. package/dist/packages/core/src/index.d.ts +0 -27
  562. package/dist/packages/core/src/index.d.ts.map +0 -1
  563. package/dist/packages/core/src/static/postProcessStyles.d.ts +0 -7
  564. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  565. package/dist/packages/core/src/static.d.ts.map +0 -1
  566. package/dist/packages/core/src/styled.d.ts +0 -16
  567. package/dist/packages/core/src/styled.d.ts.map +0 -1
  568. package/dist/packages/core/src/types.d.ts +0 -305
  569. package/dist/packages/core/src/types.d.ts.map +0 -1
  570. package/dist/packages/core/src/views/Animated.d.ts +0 -15
  571. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  572. package/dist/packages/core/src/views/Stack.d.ts +0 -3
  573. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  574. package/dist/packages/core/src/views/Text.d.ts +0 -3
  575. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  576. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  577. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  578. package/dist/packages/core/src/views/Theme.d.ts +0 -8
  579. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  580. package/dist/packages/core/src/views/ThemeContext.d.ts +0 -18
  581. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  582. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  583. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  584. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  585. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  586. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  587. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  588. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  589. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  590. package/dist/packages/helpers/src/index.d.ts +0 -5
  591. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  592. package/dist/packages/helpers/src/types.d.ts +0 -8
  593. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  594. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  595. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  596. package/dist/static.js.map +0 -7
  597. package/dist/styled.js +0 -21
  598. package/dist/styled.js.map +0 -7
  599. package/dist/views/SafeAreaProvider.js +0 -30
  600. package/dist/views/SafeAreaProvider.js.map +0 -7
  601. package/dist/views/Stack.js.map +0 -7
  602. package/dist/views/Text.js.map +0 -7
  603. package/dist/views/TextAncestorContext.js +0 -18
  604. package/dist/views/TextAncestorContext.js.map +0 -7
  605. package/dist/views/Theme.js +0 -65
  606. package/dist/views/Theme.js.map +0 -7
  607. package/dist/views/ThemeProvider.js +0 -45
  608. package/dist/views/ThemeProvider.js.map +0 -7
  609. package/src/constants/constants.ts +0 -12
  610. package/src/constants/platform.ts +0 -15
  611. package/src/constants/pseudos.ts +0 -14
  612. package/src/constants/rnw.tsx +0 -20
  613. package/src/createComponent.tsx +0 -612
  614. package/src/createFont.ts +0 -31
  615. package/src/createShorthands.ts +0 -5
  616. package/src/createTamagui.ts +0 -217
  617. package/src/createTheme.ts +0 -19
  618. package/src/createTokens.ts +0 -88
  619. package/src/createVariable.ts +0 -26
  620. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  621. package/src/helpers/createMediaStyle.ts +0 -46
  622. package/src/helpers/createPropMapper.ts +0 -184
  623. package/src/helpers/createTamaguiProvider.tsx +0 -22
  624. package/src/helpers/extendStaticConfig.ts +0 -68
  625. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  626. package/src/helpers/fixNativeShadow.tsx +0 -2
  627. package/src/helpers/getSplitStyles.tsx +0 -200
  628. package/src/helpers/getStylesAtomic.native.ts +0 -3
  629. package/src/helpers/getStylesAtomic.ts +0 -103
  630. package/src/helpers/insertStyleRule.tsx +0 -18
  631. package/src/helpers/isObj.ts +0 -1
  632. package/src/helpers/isTamaguiElement.tsx +0 -5
  633. package/src/helpers/matchMedia.native.ts +0 -6
  634. package/src/helpers/matchMedia.ts +0 -17
  635. package/src/helpers/themeable.tsx +0 -42
  636. package/src/helpers/validate.ts +0 -59
  637. package/src/hooks/useConstant.tsx +0 -10
  638. package/src/hooks/useFeatures.tsx +0 -79
  639. package/src/hooks/useMedia.tsx +0 -194
  640. package/src/hooks/usePressable.tsx +0 -9
  641. package/src/hooks/useTheme.tsx +0 -106
  642. package/src/index.ts +0 -32
  643. package/src/static/postProcessStyles.tsx +0 -20
  644. package/src/static.ts +0 -22
  645. package/src/styled.ts +0 -82
  646. package/src/types.tsx +0 -562
  647. package/src/views/Animated.tsx +0 -121
  648. package/src/views/Stack.tsx +0 -21
  649. package/src/views/Text.tsx +0 -66
  650. package/src/views/TextAncestorContext.tsx +0 -12
  651. package/src/views/Theme.tsx +0 -90
  652. package/src/views/ThemeContext.tsx +0 -5
  653. package/src/views/ThemeInverse.tsx +0 -22
  654. package/src/views/ThemeManagerContext.tsx +0 -62
  655. package/src/views/ThemeProvider.tsx +0 -52
  656. package/types.d.ts +0 -559
package/dist/index.cjs DELETED
@@ -1,2202 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __defProps = Object.defineProperties;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
- var __getProtoOf = Object.getPrototypeOf;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
26
- var __objRest = (source, exclude) => {
27
- var target = {};
28
- for (var prop in source)
29
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
30
- target[prop] = source[prop];
31
- if (source != null && __getOwnPropSymbols)
32
- for (var prop of __getOwnPropSymbols(source)) {
33
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
34
- target[prop] = source[prop];
35
- }
36
- return target;
37
- };
38
- var __export = (target, all) => {
39
- __markAsModule(target);
40
- for (var name in all)
41
- __defProp(target, name, { get: all[name], enumerable: true });
42
- };
43
- var __reExport = (target, module2, desc) => {
44
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
45
- for (let key of __getOwnPropNames(module2))
46
- if (!__hasOwnProp.call(target, key) && key !== "default")
47
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
48
- }
49
- return target;
50
- };
51
- var __toModule = (module2) => {
52
- 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);
53
- };
54
-
55
- // src/index.ts
56
- __export(exports, {
57
- AnimatedStack: () => AnimatedStack,
58
- GET_DEFAULT_THEME: () => GET_DEFAULT_THEME,
59
- Spacer: () => Spacer,
60
- Stack: () => Stack,
61
- Text: () => Text2,
62
- TextAncestorContext: () => TextAncestorContext,
63
- TextAncestorProvider: () => TextAncestorProvider,
64
- Theme: () => Theme,
65
- ThemeInverse: () => ThemeInverse,
66
- ThemeProvider: () => ThemeProvider,
67
- Variable: () => Variable,
68
- addMediaQueryListener: () => addMediaQueryListener,
69
- configureMedia: () => configureMedia,
70
- createComponent: () => createComponent,
71
- createFont: () => createFont,
72
- createShorthands: () => createShorthands,
73
- createTamagui: () => createTamagui,
74
- createTheme: () => createTheme,
75
- createTokens: () => createTokens,
76
- createVariable: () => createVariable,
77
- getHasConfigured: () => getHasConfigured,
78
- getMedia: () => getMedia,
79
- getStylesAtomic: () => getStylesAtomic,
80
- getTamaguiConfig: () => getTamaguiConfig,
81
- getThemeParentClassName: () => getThemeParentClassName,
82
- isChrome: () => isChrome,
83
- isObj: () => isObj,
84
- isSSR: () => isSSR,
85
- isTamaguiElement: () => isTamaguiElement,
86
- isTouchDevice: () => isTouchDevice,
87
- isVariable: () => isVariable,
88
- isWeb: () => isWeb,
89
- isWebIOS: () => isWebIOS,
90
- matchMedia: () => matchMedia,
91
- mediaObjectToString: () => mediaObjectToString,
92
- mediaQueryConfig: () => mediaQueryConfig,
93
- mediaState: () => mediaState,
94
- mouseUps: () => mouseUps,
95
- onConfiguredOnce: () => onConfiguredOnce,
96
- pseudos: () => pseudos,
97
- removeMediaQueryListener: () => removeMediaQueryListener,
98
- rnw: () => rnw,
99
- setThemeInversions: () => setThemeInversions,
100
- spacedChildren: () => spacedChildren,
101
- stackDefaultStyles: () => stackDefaultStyles,
102
- styled: () => styled,
103
- supportsTouchWeb: () => supportsTouchWeb,
104
- themeable: () => themeable,
105
- useConstant: () => useConstant,
106
- useDefaultThemeName: () => useDefaultThemeName,
107
- useIsomorphicLayoutEffect: () => useIsomorphicLayoutEffect,
108
- useMedia: () => useMedia,
109
- useTheme: () => useTheme,
110
- useThemeName: () => useThemeName
111
- });
112
-
113
- // src/createComponent.tsx
114
- var import_helpers4 = __toModule(require("@tamagui/helpers"));
115
- var import_use_force_update2 = __toModule(require("@tamagui/use-force-update"));
116
- var import_react11 = __toModule(require("react"));
117
- var import_react_native3 = __toModule(require("react-native"));
118
-
119
- // src/constants/platform.ts
120
- var import_react = __toModule(require("react"));
121
- var import_react_native = __toModule(require("react-native"));
122
- var _a;
123
- var isWeb = process.env.TAMAGUI_TARGET === "web" ? true : ((_a = import_react_native.Platform) == null ? void 0 : _a.OS) === "web";
124
- var isSSR = isWeb && typeof window === "undefined";
125
- var useIsomorphicLayoutEffect = isSSR ? import_react.useEffect : import_react.useLayoutEffect;
126
- var isChrome = typeof navigator !== "undefined" && /Chrome/.test(navigator.userAgent || "");
127
- var supportsTouchWeb = typeof window !== "undefined" && "ontouchstart" in window;
128
- var isTouchDevice = !isWeb || supportsTouchWeb;
129
- var isWebIOS = isWeb && typeof navigator !== "undefined" && (/iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) && !window["MSStream"];
130
-
131
- // src/constants/constants.ts
132
- var stackDefaultStyles = __spreadValues({
133
- alignItems: "stretch",
134
- flexShrink: 0
135
- }, isWeb && {
136
- display: "flex",
137
- flexBasis: "auto",
138
- boxSizing: "border-box"
139
- });
140
-
141
- // src/constants/rnw.tsx
142
- var interopRequire = /* @__PURE__ */ __name((src) => "default" in src ? src.default : src, "interopRequire");
143
- var rnw = {};
144
- if (process.env.IS_STATIC === "is_static") {
145
- const createCompileableStyle = require("react-native-web/dist/cjs/exports/StyleSheet/createCompileableStyle");
146
- const createReactDOMStyle = require("react-native-web/dist/cjs/exports/StyleSheet/createReactDOMStyle");
147
- const i18Style = require("react-native-web/dist/cjs/exports/StyleSheet/i18nStyle");
148
- const atomic = require("react-native-web/dist/cjs/exports/StyleSheet/compile").atomic;
149
- Object.assign(rnw, {
150
- createCompileableStyle,
151
- createReactDOMStyle,
152
- i18Style,
153
- atomic
154
- });
155
- } else if (process.env.TAMAGUI_TARGET === "web") {
156
- Object.assign(rnw, interopRequire(require("react-native-web").TamaguiExports));
157
- }
158
-
159
- // src/createTamagui.ts
160
- var import_helpers = __toModule(require("@tamagui/helpers"));
161
-
162
- // src/createVariable.ts
163
- var Variable = class {
164
- constructor({ val, name }) {
165
- this.val = val;
166
- this.name = name;
167
- this.variable = isWeb ? `var(--${name})` : this.val;
168
- }
169
- toString() {
170
- return isWeb ? this.variable : this.val;
171
- }
172
- };
173
- __name(Variable, "Variable");
174
- var createVariable = /* @__PURE__ */ __name((props) => new Variable(props), "createVariable");
175
- function isVariable(v) {
176
- return v instanceof Variable;
177
- }
178
- __name(isVariable, "isVariable");
179
-
180
- // src/helpers/createTamaguiProvider.tsx
181
- var React4 = __toModule(require("react"));
182
-
183
- // src/views/TextAncestorContext.tsx
184
- var import_react2 = __toModule(require("react"));
185
- var _a2;
186
- var TextAncestorContext = (_a2 = rnw) == null ? void 0 : _a2.TextAncestorContext;
187
- var TextAncestorProvider = /* @__PURE__ */ __name((props) => {
188
- if (TextAncestorContext) {
189
- return /* @__PURE__ */ import_react2.default.createElement(TextAncestorContext.Provider, {
190
- value: false
191
- }, props.children);
192
- }
193
- return props.children;
194
- }, "TextAncestorProvider");
195
-
196
- // src/views/ThemeProvider.tsx
197
- var import_react7 = __toModule(require("react"));
198
-
199
- // src/views/Theme.tsx
200
- var import_react6 = __toModule(require("react"));
201
-
202
- // src/hooks/useConstant.tsx
203
- var import_react3 = __toModule(require("react"));
204
- function useConstant(fn) {
205
- const ref = (0, import_react3.useRef)();
206
- if (!ref.current) {
207
- ref.current = { v: fn() };
208
- }
209
- return ref.current.v;
210
- }
211
- __name(useConstant, "useConstant");
212
-
213
- // src/views/ThemeContext.tsx
214
- var import_react4 = __toModule(require("react"));
215
- var ThemeContext = (0, import_react4.createContext)(null);
216
-
217
- // src/views/ThemeManagerContext.tsx
218
- var import_react5 = __toModule(require("react"));
219
- var ThemeManager = class {
220
- constructor() {
221
- this.name = "light";
222
- this.parentName = null;
223
- this.keys = new Map();
224
- this.listeners = new Map();
225
- this.callbacks = new Set();
226
- this.theme = null;
227
- }
228
- setActiveTheme({
229
- name,
230
- theme,
231
- parentName
232
- }) {
233
- if (name === this.name)
234
- return;
235
- this.name = name;
236
- this.theme = theme;
237
- this.parentName = parentName || null;
238
- this.update();
239
- }
240
- track(uuid, keys) {
241
- if (!this.name)
242
- return;
243
- this.keys.set(uuid, keys);
244
- }
245
- update() {
246
- var _a4;
247
- if (!this.name) {
248
- this.keys.clear();
249
- }
250
- for (const [uuid, keys] of this.keys.entries()) {
251
- if (keys.size) {
252
- (_a4 = this.listeners.get(uuid)) == null ? void 0 : _a4();
253
- }
254
- }
255
- this.callbacks.forEach((cb) => cb(this.name));
256
- }
257
- onChangeTheme(cb) {
258
- this.callbacks.add(cb);
259
- return () => {
260
- this.callbacks.delete(cb);
261
- };
262
- }
263
- onUpdate(uuid, cb) {
264
- this.listeners.set(uuid, cb);
265
- return () => {
266
- this.listeners.delete(uuid);
267
- this.keys.delete(uuid);
268
- };
269
- }
270
- };
271
- __name(ThemeManager, "ThemeManager");
272
- var ThemeManagerContext = (0, import_react5.createContext)(new ThemeManager());
273
-
274
- // src/views/Theme.tsx
275
- var Theme = /* @__PURE__ */ __name((props) => {
276
- var _a4, _b2;
277
- const parent = (0, import_react6.useContext)(ThemeManagerContext);
278
- const themes = (0, import_react6.useContext)(ThemeContext);
279
- const [parentName, setParentName] = (0, import_react6.useState)(parent.name || "light");
280
- if (!themes) {
281
- console.warn("Error, no themes in context", props);
282
- return props.children;
283
- }
284
- const name = props.name;
285
- const nextNameParent = `${name}-${parentName}`;
286
- const nextNameParentParent = `${name}-${parent.parentName}`;
287
- const activeName = !name ? null : name in themes ? name : nextNameParent in themes ? nextNameParent : nextNameParentParent in themes ? nextNameParentParent : null;
288
- const theme = activeName ? themes[activeName] : null;
289
- const themeManager = useConstant(() => {
290
- if (!theme) {
291
- return null;
292
- }
293
- const manager = new ThemeManager();
294
- if (name) {
295
- manager.setActiveTheme({ name, theme: themes[name], parentName });
296
- }
297
- return manager;
298
- });
299
- useIsomorphicLayoutEffect(() => {
300
- if (!themeManager) {
301
- return;
302
- }
303
- themeManager.setActiveTheme({ name: activeName, theme, parentName });
304
- return parent.onChangeTheme((next) => {
305
- if (next) {
306
- themeManager.setActiveTheme({ name: next, theme: themes[next], parentName });
307
- setParentName(next);
308
- }
309
- });
310
- }, [themes, activeName, parentName]);
311
- if (!name || !theme) {
312
- return props.children;
313
- }
314
- const contents = themeManager ? /* @__PURE__ */ import_react6.default.createElement(ThemeManagerContext.Provider, {
315
- value: themeManager
316
- }, props.children) : props.children;
317
- if (isWeb) {
318
- if (props.disableThemeClass) {
319
- return contents;
320
- }
321
- const color = (_b2 = (_a4 = themes[name]) == null ? void 0 : _a4["color"]) == null ? void 0 : _b2["variable"];
322
- return /* @__PURE__ */ import_react6.default.createElement("div", {
323
- className: getThemeParentClassName(name),
324
- style: { display: "contents", color }
325
- }, contents);
326
- }
327
- return contents;
328
- }, "Theme");
329
-
330
- // src/views/ThemeProvider.tsx
331
- var GET_DEFAULT_THEME = "___TGUI";
332
- var ThemeProvider = /* @__PURE__ */ __name((props) => {
333
- if (!getHasConfigured()) {
334
- throw new Error(`Missing configureThemes() call, add to your root file`);
335
- }
336
- useIsomorphicLayoutEffect(() => {
337
- if (props.disableRootThemeClass) {
338
- return;
339
- }
340
- if (typeof document !== "undefined") {
341
- const cns = getThemeParentClassName(`${props.defaultTheme}`).split(" ");
342
- cns.forEach((cn) => document.body.classList.add(cn));
343
- return () => {
344
- cns.forEach((cn) => document.body.classList.remove(cn));
345
- };
346
- }
347
- }, []);
348
- const themeContext = (0, import_react7.useMemo)(() => {
349
- return new Proxy(props.themes, {
350
- get(target, key) {
351
- if (key === GET_DEFAULT_THEME)
352
- return props.defaultTheme;
353
- return Reflect.get(target, key);
354
- }
355
- });
356
- }, [props.themes]);
357
- return /* @__PURE__ */ import_react7.default.createElement(ThemeContext.Provider, {
358
- value: themeContext
359
- }, /* @__PURE__ */ import_react7.default.createElement(Theme, {
360
- name: props.defaultTheme,
361
- disableThemeClass: props.disableRootThemeClass
362
- }, props.children));
363
- }, "ThemeProvider");
364
-
365
- // src/helpers/createTamaguiProvider.tsx
366
- function createTamaguiProvider(themeProps) {
367
- return /* @__PURE__ */ __name(function TamaguiProvider(_a4) {
368
- var _b2 = _a4, {
369
- initialWindowMetrics,
370
- fallback,
371
- children
372
- } = _b2, themePropsProvider = __objRest(_b2, [
373
- "initialWindowMetrics",
374
- "fallback",
375
- "children"
376
- ]);
377
- return /* @__PURE__ */ React4.createElement(TextAncestorProvider, null, /* @__PURE__ */ React4.createElement(ThemeProvider, __spreadValues(__spreadValues({}, themeProps), themePropsProvider), /* @__PURE__ */ React4.createElement(React4.Suspense, {
378
- fallback: fallback || null
379
- }, children)));
380
- }, "TamaguiProvider");
381
- }
382
- __name(createTamaguiProvider, "createTamaguiProvider");
383
-
384
- // src/helpers/validate.ts
385
- var import_ow = __toModule(require("@tamagui/ow"));
386
- var validateConfig = /* @__PURE__ */ __name((conf3) => {
387
- if (!conf3) {
388
- console.warn("no conf?");
389
- return;
390
- }
391
- try {
392
- (0, import_ow.default)(conf3, validConfig);
393
- } catch (err) {
394
- console.log("Given config:\n", JSON.stringify(conf3, null, 2));
395
- throw err;
396
- }
397
- }, "validateConfig");
398
- var validConfig = import_ow.default.object.exactShape({
399
- defaultTheme: import_ow.default.optional.string,
400
- disableRootThemeClass: import_ow.default.optional.boolean,
401
- shorthands: import_ow.default.optional.object.valuesOfType(import_ow.default.string),
402
- themes: import_ow.default.object.valuesOfType(import_ow.default.object),
403
- tokens: import_ow.default.object.valuesOfType(import_ow.default.object),
404
- media: import_ow.default.object.valuesOfType(import_ow.default.object)
405
- });
406
- var validFont = import_ow.default.object.exactShape({
407
- family: import_ow.default.string,
408
- size: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
409
- lineHeight: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
410
- weight: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.string),
411
- letterSpacing: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number)
412
- });
413
- var validTokens = import_ow.default.object.exactShape({
414
- font: import_ow.default.object.valuesOfType(validFont),
415
- size: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
416
- space: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
417
- zIndex: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
418
- radius: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
419
- color: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.string)
420
- });
421
- var validateTokens = /* @__PURE__ */ __name((tokens) => {
422
- try {
423
- (0, import_ow.default)(tokens, validTokens);
424
- } catch (err) {
425
- console.log("Given tokens:\n", JSON.stringify(tokens, null, 2));
426
- throw err;
427
- }
428
- }, "validateTokens");
429
- var validateFont = /* @__PURE__ */ __name((font) => {
430
- try {
431
- (0, import_ow.default)(font, validFont);
432
- } catch (err) {
433
- console.log("Given font:\n", JSON.stringify(font, null, 2));
434
- throw err;
435
- }
436
- }, "validateFont");
437
-
438
- // src/hooks/useMedia.tsx
439
- var import_use_force_update = __toModule(require("@tamagui/use-force-update"));
440
- var import_react8 = __toModule(require("react"));
441
-
442
- // src/helpers/matchMedia.ts
443
- var matchMedia = typeof window !== "undefined" && window.matchMedia || /* @__PURE__ */ __name(function matchMediaFallback(query) {
444
- return {
445
- addListener() {
446
- if (process.env.NODE_ENV === "development") {
447
- console.log("warning: matchMedia not loading! Is native picking up .native.js files?");
448
- }
449
- },
450
- removeListener() {
451
- },
452
- matches: false
453
- };
454
- }, "matchMediaFallback");
455
-
456
- // src/hooks/useMedia.tsx
457
- var mediaState = {};
458
- var mediaQueryListeners = {};
459
- var addMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
460
- mediaQueryListeners[key] = mediaQueryListeners[key] || new Set();
461
- mediaQueryListeners[key].add(cb);
462
- }, "addMediaQueryListener");
463
- var removeMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
464
- mediaQueryListeners[key].delete(cb);
465
- }, "removeMediaQueryListener");
466
- var conf = null;
467
- var mediaQueryConfig = new Proxy({}, {
468
- get(target, key) {
469
- if (!conf) {
470
- throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`);
471
- }
472
- return Reflect.get(conf, key);
473
- },
474
- ownKeys() {
475
- if (!conf) {
476
- throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`);
477
- }
478
- return Object.keys(conf);
479
- },
480
- getOwnPropertyDescriptor() {
481
- return {
482
- enumerable: true,
483
- configurable: true
484
- };
485
- }
486
- });
487
- var getMedia = /* @__PURE__ */ __name(() => {
488
- if (!conf) {
489
- throw new Error(`not configured yet`);
490
- }
491
- return mediaState;
492
- }, "getMedia");
493
- var configureMedia = /* @__PURE__ */ __name(({
494
- queries,
495
- defaultActive = ["sm", "xs"]
496
- } = {}) => {
497
- if (conf) {
498
- console.warn(`Already configured mediaQueries once (you may have called getMedia() before configureMedia())`);
499
- }
500
- if (queries) {
501
- conf = queries;
502
- }
503
- for (const key in queries) {
504
- const str = mediaObjectToString(queries[key]);
505
- try {
506
- const getMatch = /* @__PURE__ */ __name(() => matchMedia(str), "getMatch");
507
- const match = getMatch();
508
- if (!match || typeof match.addListener !== "function") {
509
- throw new Error("\u26A0\uFE0F No match (seeing this in RN sometimes)");
510
- }
511
- mediaState[key] = !!match.matches;
512
- match.addListener(() => {
513
- const next = !!getMatch().matches;
514
- if (next === mediaState[key])
515
- return;
516
- mediaState[key] = next;
517
- const listeners = mediaQueryListeners[key];
518
- if (listeners == null ? void 0 : listeners.size) {
519
- for (const cb of [...listeners]) {
520
- cb();
521
- }
522
- }
523
- });
524
- } catch (err) {
525
- console.error("Error running media query", str, err.message, err.stack);
526
- const isDefaultActive = (defaultActive == null ? void 0 : defaultActive.includes(key)) ?? true;
527
- mediaState[key] = isDefaultActive;
528
- }
529
- }
530
- }, "configureMedia");
531
- var useMedia = /* @__PURE__ */ __name(() => {
532
- const forceUpdate = (0, import_use_force_update.useForceUpdate)();
533
- const state = (0, import_react8.useRef)();
534
- if (!state.current) {
535
- state.current = {
536
- selections: {},
537
- nextSelections: {},
538
- isUnmounted: false,
539
- isRendering: true
540
- };
541
- }
542
- state.current.isRendering = true;
543
- useIsomorphicLayoutEffect(() => {
544
- const st = state.current;
545
- st.isRendering = false;
546
- for (const key in st.selections) {
547
- if (!(key in st.nextSelections)) {
548
- removeMediaQueryListener(key, forceUpdate);
549
- }
550
- }
551
- for (const key in st.nextSelections) {
552
- if (!(key in st.selections)) {
553
- addMediaQueryListener(key, forceUpdate);
554
- }
555
- }
556
- });
557
- useIsomorphicLayoutEffect(() => {
558
- return () => {
559
- const st = state.current;
560
- st.isUnmounted = true;
561
- const allKeys = __spreadValues(__spreadValues({}, st.selections), st.nextSelections);
562
- for (const key in allKeys) {
563
- removeMediaQueryListener(key, forceUpdate);
564
- }
565
- };
566
- }, []);
567
- return useConstant(() => {
568
- const st = state.current;
569
- return new Proxy(mediaState, {
570
- get(target, key) {
571
- if (!(key in mediaState)) {
572
- return Reflect.get(target, key);
573
- }
574
- if (!st.isUnmounted) {
575
- if (st.isRendering) {
576
- st.nextSelections[key] = true;
577
- }
578
- }
579
- if (key in mediaState) {
580
- return mediaState[key];
581
- }
582
- return Reflect.get(mediaState, key);
583
- }
584
- });
585
- });
586
- }, "useMedia");
587
- function camelToHyphen(str) {
588
- return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase();
589
- }
590
- __name(camelToHyphen, "camelToHyphen");
591
- function mediaObjectToString(query) {
592
- if (typeof query === "string") {
593
- return query;
594
- }
595
- return Object.entries(query).map(([feature, value]) => {
596
- feature = camelToHyphen(feature);
597
- if (typeof value === "string") {
598
- return `(${feature}: ${value})`;
599
- }
600
- if (typeof value === "number" && /[height|width]$/.test(feature)) {
601
- value = `${value}px`;
602
- }
603
- return `(${feature}: ${value})`;
604
- }).join(" and ");
605
- }
606
- __name(mediaObjectToString, "mediaObjectToString");
607
-
608
- // src/createTamagui.ts
609
- var conf2;
610
- var getHasConfigured = /* @__PURE__ */ __name(() => !!conf2, "getHasConfigured");
611
- var getTamaguiConfig = /* @__PURE__ */ __name(() => conf2, "getTamaguiConfig");
612
- var configListeners = new Set();
613
- var onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
614
- if (conf2) {
615
- cb(conf2);
616
- } else {
617
- configListeners.add(cb);
618
- }
619
- }, "onConfiguredOnce");
620
- var PREFIX = `theme--`;
621
- function createTamagui(config) {
622
- if (process.env.NODE_ENV === "development") {
623
- if (!config["parsed"]) {
624
- validateConfig(config);
625
- }
626
- }
627
- if (conf2) {
628
- console.warn("Called createTamagui twice! Should never do so");
629
- }
630
- configureMedia({
631
- queries: config.media,
632
- defaultActive: config.mediaQueryDefaultActive
633
- });
634
- const themeConfig = (() => {
635
- let cssRules = [];
636
- let tokenRule = `:root {`;
637
- const varsByValue = new Map();
638
- const addVar = /* @__PURE__ */ __name((v) => {
639
- varsByValue[v.val] = v;
640
- const rule = `--${v.name}:${typeof v.val === "number" ? `${v.val}px` : v.val};`;
641
- tokenRule += rule;
642
- }, "addVar");
643
- for (const key in config.tokens) {
644
- for (const skey in config.tokens[key]) {
645
- const val = config.tokens[key][skey];
646
- if (key === "font") {
647
- for (const fkey in val) {
648
- if (fkey === "family") {
649
- addVar(val[fkey]);
650
- } else {
651
- for (const fskey in val[fkey]) {
652
- addVar(val[fkey][fskey]);
653
- }
654
- }
655
- }
656
- } else {
657
- addVar(val);
658
- }
659
- }
660
- }
661
- cssRules.push(`${tokenRule}
662
- }`);
663
- for (const themeName in config.themes) {
664
- config.themes[themeName] = __spreadValues({}, config.themes[themeName]);
665
- const theme = config.themes[themeName];
666
- let vars = "";
667
- for (const themeKey in theme) {
668
- const val = theme[themeKey];
669
- const getVariableCSS = /* @__PURE__ */ __name((inv) => {
670
- const v = varsByValue[inv] ?? inv;
671
- return isVariable(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`;
672
- }, "getVariableCSS");
673
- vars += getVariableCSS(val);
674
- if (!isVariable(val)) {
675
- theme[themeKey] = createVariable({
676
- name: themeKey,
677
- val
678
- });
679
- }
680
- }
681
- const [themeClassName, parentName] = themeName.includes("-") ? themeName.split("-") : [themeName, ""];
682
- const oppositeName = parentName === "dark" ? "light" : "dark";
683
- const cssParentSel = parentName ? `.${PREFIX}${parentName}` : "";
684
- const cssChildSel = `.${PREFIX}${themeClassName}`;
685
- const cssSel = `${cssParentSel} ${cssChildSel}`;
686
- const cssRule = `${cssSel}, .${PREFIX}${oppositeName} ${cssSel} {
687
- ${vars}
688
- }`;
689
- cssRules.push(cssRule);
690
- }
691
- Object.freeze(cssRules);
692
- return {
693
- cssRules,
694
- css: cssRules.join("\n")
695
- };
696
- })();
697
- const tokensParsed = parseTokens(config.tokens);
698
- const themeParsed = {};
699
- const firstKey = Object.keys(config.themes)[0];
700
- for (const key in config.themes[firstKey]) {
701
- const val = config.themes[firstKey][key].val;
702
- themeParsed[`$${key}`] = new Variable({ val, name: key });
703
- }
704
- const next = __spreadProps(__spreadValues({
705
- shorthands: {}
706
- }, config), {
707
- Provider: createTamaguiProvider(__spreadValues({
708
- defaultTheme: "light"
709
- }, config)),
710
- themeConfig,
711
- themeParsed,
712
- tokensParsed,
713
- parsed: true,
714
- getCSS() {
715
- return `${themeConfig.css}
716
- ${[...(0, import_helpers.getStyleRules)()].join("\n")}`;
717
- }
718
- });
719
- conf2 = next;
720
- if (configListeners.size) {
721
- configListeners.forEach((cb) => cb(next));
722
- configListeners.clear();
723
- }
724
- return next;
725
- }
726
- __name(createTamagui, "createTamagui");
727
- function getThemeParentClassName(themeName) {
728
- return `theme-parent ${themeName ? `${PREFIX}${themeName}` : ""}`;
729
- }
730
- __name(getThemeParentClassName, "getThemeParentClassName");
731
- var parseTokens = /* @__PURE__ */ __name((tokens) => {
732
- const res = {};
733
- for (const key in tokens) {
734
- res[key] = {};
735
- if (key === "font") {
736
- for (const family in tokens.font) {
737
- const obj = {};
738
- res.font[`$${family}`] = obj;
739
- for (const attrKey in tokens.font[family]) {
740
- const attr = tokens.font[family][attrKey];
741
- if (attrKey === "family") {
742
- obj[attrKey] = attr;
743
- continue;
744
- }
745
- obj[attrKey] = Object.keys(attr).reduce((acc, cur) => {
746
- acc[`$${cur}`] = attr[cur];
747
- return acc;
748
- }, {});
749
- }
750
- }
751
- continue;
752
- }
753
- for (const skey in tokens[key]) {
754
- res[key][`$${skey}`] = tokens[key][skey];
755
- }
756
- }
757
- return res;
758
- }, "parseTokens");
759
-
760
- // src/helpers/addStylesUsingClassname.tsx
761
- var import_react9 = __toModule(require("react"));
762
-
763
- // src/helpers/getStylesAtomic.ts
764
- var import_helpers2 = __toModule(require("@tamagui/helpers"));
765
-
766
- // src/constants/pseudos.ts
767
- var pseudos = {
768
- focusStyle: {
769
- name: "focus",
770
- priority: 3
771
- },
772
- pressStyle: {
773
- name: "active",
774
- priority: 2
775
- },
776
- hoverStyle: {
777
- name: "hover",
778
- priority: 1
779
- }
780
- };
781
-
782
- // src/helpers/getStylesAtomic.ts
783
- var generateStyle = /* @__PURE__ */ __name((style) => {
784
- const { atomic, createCompileableStyle, createReactDOMStyle, i18Style } = rnw;
785
- return __spreadValues({}, atomic(createCompileableStyle(createReactDOMStyle(i18Style(style)))));
786
- }, "generateStyle");
787
- var borderDefaults = {
788
- borderWidth: "borderStyle",
789
- borderBottomWidth: "borderBottomStyle",
790
- borderTopWidth: "borderTopStyle",
791
- borderLeftWidth: "borderLeftStyle",
792
- borderRightWidth: "borderRightStyle"
793
- };
794
- function getStylesAtomic(style, avoidCollection = false) {
795
- const styles = {
796
- base: {}
797
- };
798
- for (const key in style) {
799
- if (!!pseudos[key]) {
800
- styles[key] = style[key];
801
- } else {
802
- styles.base[key] = style[key];
803
- }
804
- }
805
- return Object.keys(styles).map((key) => {
806
- return getAtomicStyle(styles[key], pseudos[key], avoidCollection);
807
- }).flat();
808
- }
809
- __name(getStylesAtomic, "getStylesAtomic");
810
- var importantRegex = /\!important*/g;
811
- function getAtomicStyle(style, pseudo, avoidCollection) {
812
- if (style == null || typeof style !== "object") {
813
- throw new Error(`Wrong style type: "${typeof style}": ${style}`);
814
- }
815
- for (const key in borderDefaults) {
816
- if (key in style) {
817
- style[borderDefaults[key]] = style[borderDefaults[key]] ?? "solid";
818
- }
819
- }
820
- const all = generateStyle(style);
821
- return Object.keys(all).map((key) => {
822
- const val = all[key];
823
- const hash = val.identifier.slice(`${val.identifier}`.lastIndexOf("-") + 1);
824
- const psuedoPrefix = pseudo ? `-${pseudo.name}-` : "";
825
- const identifier = `_${val.property}-${psuedoPrefix}${hash}`;
826
- const className = `.${identifier}`;
827
- const rules = val.rules.map((rule) => {
828
- if (pseudo) {
829
- const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ":root").join("") + " ";
830
- let res = rule.replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`).replace("{", `:${pseudo.name}{`);
831
- if (pseudo.name === "hover") {
832
- res = `@media not all and (hover: none) { ${res} }`;
833
- }
834
- return res;
835
- }
836
- return rule.replace(`.${val.identifier}`, className).replace(importantRegex, "");
837
- });
838
- if (!avoidCollection) {
839
- if (rules.length > 1) {
840
- console.warn("have never seen more than one, verifying");
841
- }
842
- import_helpers2.AllRules.add(rules[0]);
843
- }
844
- const result = {
845
- property: val.property,
846
- value: val.value,
847
- identifier,
848
- className,
849
- rules
850
- };
851
- return result;
852
- });
853
- }
854
- __name(getAtomicStyle, "getAtomicStyle");
855
-
856
- // src/helpers/insertStyleRule.tsx
857
- function insertStyleRule(rule) {
858
- if (typeof window === "undefined") {
859
- return;
860
- }
861
- if (process.env.NODE_ENV === "development") {
862
- if (!isWeb) {
863
- console.warn("non web platform, dont use this");
864
- return;
865
- }
866
- }
867
- const sheet2 = window.document.styleSheets[0];
868
- if (!sheet2) {
869
- return;
870
- }
871
- sheet2.insertRule(rule, sheet2.cssRules.length);
872
- }
873
- __name(insertStyleRule, "insertStyleRule");
874
-
875
- // src/helpers/addStylesUsingClassname.tsx
876
- var added = new Set();
877
- function useStylesAsClassname(styles) {
878
- if (!import_react9.useInsertionEffect) {
879
- return addStylesUsingClassname(styles);
880
- } else {
881
- const insertions = [];
882
- const className = addStylesUsingClassname(styles, (_, rules) => {
883
- for (const rule of rules) {
884
- insertions.push(rule);
885
- }
886
- });
887
- (0, import_react9.useInsertionEffect)(() => {
888
- for (const ruleset of insertions) {
889
- insertStyleRule(ruleset);
890
- }
891
- });
892
- return className;
893
- }
894
- }
895
- __name(useStylesAsClassname, "useStylesAsClassname");
896
- function addStylesUsingClassname(styles, onAdd) {
897
- let className = "";
898
- for (const style of styles) {
899
- if (!style)
900
- continue;
901
- if (Array.isArray(style)) {
902
- className += " " + addStylesUsingClassname(style);
903
- continue;
904
- }
905
- for (const { identifier, rules } of getStylesAtomic(style)) {
906
- className += ` ${identifier}`;
907
- if (added.has(identifier)) {
908
- continue;
909
- }
910
- added.add(identifier);
911
- if (onAdd) {
912
- onAdd(identifier, rules);
913
- } else {
914
- for (const rule of rules) {
915
- insertStyleRule(rule);
916
- }
917
- }
918
- }
919
- }
920
- return className;
921
- }
922
- __name(addStylesUsingClassname, "addStylesUsingClassname");
923
-
924
- // src/helpers/isObj.ts
925
- var isObj = /* @__PURE__ */ __name((x) => x && !Array.isArray(x) && typeof x === "object", "isObj");
926
-
927
- // src/helpers/createPropMapper.ts
928
- var createPropMapper = /* @__PURE__ */ __name((c) => {
929
- const variants = c.variants;
930
- let variantsParsed;
931
- const defaultProps = c.defaultProps || {};
932
- return (key, value, theme, props) => {
933
- const conf3 = getTamaguiConfig();
934
- if (!conf3) {
935
- console.trace("no conf! err");
936
- return;
937
- }
938
- if (variants && !variantsParsed) {
939
- variantsParsed = parseVariants(variants, conf3);
940
- }
941
- let fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
942
- const variant = variantsParsed == null ? void 0 : variantsParsed[key];
943
- if (variant && typeof value !== "undefined") {
944
- const val = value === true ? variant["$true"] || variant["true"] : variant[value] ?? variant["..."] ?? value;
945
- const res = typeof val === "function" ? val(value, { tokens: conf3.tokensParsed, theme, props }) : isObj(val) ? __spreadValues({}, val) : val;
946
- if (isObj(res)) {
947
- resolveTokens(res, conf3, fontFamily);
948
- }
949
- return res;
950
- }
951
- let shouldReturn = false;
952
- if (conf3.shorthands[key]) {
953
- shouldReturn = true;
954
- key = conf3.shorthands[key];
955
- }
956
- if (value && value[0] === "$") {
957
- shouldReturn = true;
958
- value = getToken(key, value, conf3, fontFamily);
959
- }
960
- if (value instanceof Variable) {
961
- shouldReturn = true;
962
- value = value.variable;
963
- }
964
- if (shouldReturn) {
965
- return {
966
- [key]: value
967
- };
968
- }
969
- };
970
- }, "createPropMapper");
971
- var resolveTokens = /* @__PURE__ */ __name((res, conf3, fontFamily) => {
972
- for (const rKey in res) {
973
- const fKey = conf3.shorthands[rKey] || rKey;
974
- const val = res[rKey];
975
- if (val instanceof Variable) {
976
- res[fKey] = val.variable;
977
- } else if (typeof val === "string") {
978
- const fVal = val[0] === "$" ? getToken(fKey, val, conf3, fontFamily) : val;
979
- res[fKey] = fVal;
980
- } else {
981
- if (isObj(val)) {
982
- resolveTokens(val, conf3, fontFamily);
983
- }
984
- }
985
- }
986
- }, "resolveTokens");
987
- var getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, themeParsed }, fontFamily = "$body") => {
988
- var _a4, _b2, _c, _d, _e;
989
- if (themeParsed[value]) {
990
- return themeParsed[value].variable;
991
- }
992
- let valOrVar;
993
- if (key === "fontFamily") {
994
- valOrVar = ((_a4 = tokensParsed.font[value]) == null ? void 0 : _a4.family) || value;
995
- }
996
- if (key === "fontSize") {
997
- valOrVar = ((_b2 = tokensParsed.font[fontFamily]) == null ? void 0 : _b2.size[value]) || value;
998
- }
999
- if (key === "lineHeight") {
1000
- valOrVar = ((_c = tokensParsed.font[fontFamily]) == null ? void 0 : _c.lineHeight[value]) || value;
1001
- }
1002
- if (key === "letterSpacing") {
1003
- valOrVar = ((_d = tokensParsed.font[fontFamily]) == null ? void 0 : _d.letterSpacing[value]) || value;
1004
- }
1005
- if (key === "fontWeight") {
1006
- valOrVar = ((_e = tokensParsed.font[fontFamily]) == null ? void 0 : _e.weight[value]) || value;
1007
- }
1008
- if (typeof valOrVar !== "undefined") {
1009
- if (valOrVar instanceof Variable) {
1010
- return valOrVar.variable;
1011
- } else {
1012
- return valOrVar;
1013
- }
1014
- }
1015
- for (const cat in tokenCategories) {
1016
- if (tokenCategories[cat][key]) {
1017
- const res = tokensParsed[cat][value];
1018
- if (res) {
1019
- return res.variable;
1020
- } else {
1021
- const themeVar = themeParsed[value];
1022
- if (themeVar) {
1023
- return themeVar.variable;
1024
- }
1025
- }
1026
- }
1027
- }
1028
- const spaceVar = tokensParsed.space[value];
1029
- if (spaceVar) {
1030
- return spaceVar.variable;
1031
- }
1032
- return value;
1033
- }, "getToken");
1034
- var tokenCategories = {
1035
- size: {
1036
- width: true,
1037
- height: true,
1038
- minWidth: true,
1039
- minHeight: true,
1040
- maxWidth: true,
1041
- maxHeight: true
1042
- },
1043
- color: {
1044
- color: true,
1045
- backgroundColor: true,
1046
- borderColor: true,
1047
- borderBottomColor: true,
1048
- borderTopColor: true,
1049
- borderLeftColor: true,
1050
- borderRightColor: true
1051
- }
1052
- };
1053
- function parseVariants(variants, conf3) {
1054
- return Object.keys(variants).reduce((acc, key) => {
1055
- acc[key] = Object.keys(variants[key]).reduce((vacc, vkey) => {
1056
- const variantVal = variants[key][vkey];
1057
- if (vkey.startsWith("...")) {
1058
- vacc["..."] = variantVal;
1059
- const tokenKey = vkey.slice(3);
1060
- const tokens = conf3.tokens[tokenKey];
1061
- for (const tkey in tokens) {
1062
- vacc[`$${tkey}`] = variantVal;
1063
- }
1064
- } else {
1065
- vacc[vkey] = variantVal;
1066
- }
1067
- return vacc;
1068
- }, {});
1069
- return acc;
1070
- }, {});
1071
- }
1072
- __name(parseVariants, "parseVariants");
1073
-
1074
- // src/helpers/extendStaticConfig.ts
1075
- function extendStaticConfig(Component, config = {}) {
1076
- const parent = Component || {};
1077
- if (!parent.staticConfig) {
1078
- parent.staticConfig = {
1079
- Component
1080
- };
1081
- }
1082
- const variants = __spreadValues({}, parent.staticConfig.variants);
1083
- if (config.variants) {
1084
- for (const key in config.variants) {
1085
- if (variants[key]) {
1086
- variants[key] = __spreadValues(__spreadValues({}, variants[key]), config.variants[key]);
1087
- } else {
1088
- variants[key] = config.variants[key];
1089
- }
1090
- }
1091
- }
1092
- return parseStaticConfig(__spreadProps(__spreadValues({}, parent.staticConfig), {
1093
- isZStack: config.isZStack || parent.staticConfig.isZStack,
1094
- variants,
1095
- isText: config.isText || parent.staticConfig.isText || false,
1096
- neverFlatten: config.neverFlatten ?? parent.staticConfig.neverFlatten,
1097
- ensureOverriddenProp: config.ensureOverriddenProp ?? parent.staticConfig.ensureOverriddenProp,
1098
- validStyles: config.validStyles ? __spreadValues(__spreadValues({}, parent.staticConfig.validStyles), config.validStyles) : parent.staticConfig.validStyles,
1099
- validPropsExtra: __spreadValues(__spreadValues({}, parent.staticConfig.validPropsExtra), config.validPropsExtra),
1100
- defaultProps: __spreadValues(__spreadValues({}, parent.staticConfig.defaultProps), config.defaultProps)
1101
- }));
1102
- }
1103
- __name(extendStaticConfig, "extendStaticConfig");
1104
- var parseStaticConfig = /* @__PURE__ */ __name((config) => {
1105
- return __spreadProps(__spreadValues({}, config), {
1106
- parsed: true,
1107
- propMapper: createPropMapper(config)
1108
- });
1109
- }, "parseStaticConfig");
1110
-
1111
- // src/helpers/getSplitStyles.tsx
1112
- var import_helpers3 = __toModule(require("@tamagui/helpers"));
1113
-
1114
- // src/helpers/createMediaStyle.ts
1115
- var MEDIA_SEP = "_";
1116
- var createMediaStyle = /* @__PURE__ */ __name(({ identifier, rules }, mediaKey, mediaQueries, negate, importance = 0) => {
1117
- const mediaKeys = Object.keys(mediaQueries);
1118
- const mediaKeyPrecendence = mediaKeys.reduce((acc, cur, i) => {
1119
- acc[cur] = new Array(importance + 1).fill(":root").join("");
1120
- return acc;
1121
- }, {});
1122
- const negKey = negate ? "0" : "";
1123
- const ogPrefix = identifier.slice(0, identifier.indexOf("-") + 1);
1124
- const nextIdentifier = `${identifier.replace(ogPrefix, `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`)}`;
1125
- const screenStr = negate ? "not all" : "screen";
1126
- const mediaSelector = mediaObjectToString(mediaQueries[mediaKey]);
1127
- const mediaQuery = `${screenStr} and ${mediaSelector}`;
1128
- const precendencePrefix = mediaKeyPrecendence[mediaKey];
1129
- const styleInner = rules[0].replace(identifier, nextIdentifier);
1130
- let styleRule = "";
1131
- if (styleInner.includes("@media")) {
1132
- styleRule = styleInner.replace("{", ` and ${mediaQuery} {`);
1133
- } else {
1134
- styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`;
1135
- }
1136
- return {
1137
- styleRule,
1138
- identifier: nextIdentifier
1139
- };
1140
- }, "createMediaStyle");
1141
-
1142
- // src/helpers/fixNativeShadow.tsx
1143
- var fixNativeShadow = /* @__PURE__ */ __name((a) => {
1144
- }, "fixNativeShadow");
1145
-
1146
- // src/helpers/getSplitStyles.tsx
1147
- var getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSplittingDefaultProps) => {
1148
- const validStyleProps = staticConfig.isText ? import_helpers3.stylePropsText : import_helpers3.validStyles;
1149
- const viewProps = {};
1150
- const style = [];
1151
- let pseudos2 = null;
1152
- let cur = null;
1153
- let classNames = null;
1154
- for (const keyInit in props) {
1155
- const valInit = props[keyInit];
1156
- if (keyInit[0] === "$") {
1157
- const mediaKey = keyInit.slice(1);
1158
- if (!mediaQueryConfig[mediaKey]) {
1159
- viewProps[keyInit] = valInit;
1160
- continue;
1161
- }
1162
- const mediaProps = __spreadValues(__spreadValues({}, props), valInit);
1163
- const mediaStyle = getSubStyle(valInit, staticConfig, theme, props);
1164
- if (isWeb) {
1165
- const mediaStyles = getStylesAtomic(mediaStyle);
1166
- if (process.env.NODE_ENV === "development") {
1167
- if (props["debug"]) {
1168
- console.log("mediaStyles", keyInit, { mediaProps, mediaStyle, mediaStyles });
1169
- }
1170
- }
1171
- for (const style2 of mediaStyles) {
1172
- const out2 = createMediaStyle(style2, mediaKey, mediaQueryConfig);
1173
- classNames = classNames || [];
1174
- classNames.push(out2.identifier);
1175
- import_helpers3.AllRules.add(out2.styleRule);
1176
- insertStyleRule(out2.styleRule);
1177
- if (process.env.NODE_ENV === "development" && props["debug"]) {
1178
- console.log("mediaProp", style2.identifier, out2, mediaProps, mediaStyle, mediaStyles);
1179
- }
1180
- }
1181
- } else {
1182
- if (mediaState[mediaKey]) {
1183
- style.push(mediaStyle);
1184
- }
1185
- }
1186
- continue;
1187
- }
1188
- if (import_helpers3.validStylesPseudo[keyInit]) {
1189
- if (!valInit)
1190
- continue;
1191
- pseudos2 = pseudos2 || {};
1192
- pseudos2[keyInit] = getSubStyle(valInit, staticConfig, theme, props);
1193
- continue;
1194
- }
1195
- const out = staticConfig.propMapper(keyInit, valInit, theme, props);
1196
- const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
1197
- for (const [key, val] of expanded) {
1198
- const keyFirstChar = key[0];
1199
- if (key === "style" || keyFirstChar === "_" && key.startsWith("_style")) {
1200
- if (cur) {
1201
- fixNativeShadow(cur);
1202
- style.push(cur);
1203
- cur = null;
1204
- }
1205
- fixNativeShadow(val);
1206
- style.push(val);
1207
- continue;
1208
- }
1209
- if (key === "flex") {
1210
- cur = cur || {};
1211
- Object.assign(cur, {
1212
- flexGrow: val,
1213
- flexShrink: 1
1214
- });
1215
- continue;
1216
- }
1217
- if (!isWeb && key === "pointerEvents") {
1218
- viewProps[key] = val;
1219
- continue;
1220
- }
1221
- if (validStyleProps[key]) {
1222
- if (key in import_helpers3.stylePropsTransform) {
1223
- cur = cur || {};
1224
- mergeTransform(cur, key, val);
1225
- continue;
1226
- }
1227
- cur = cur || {};
1228
- cur[key] = val;
1229
- continue;
1230
- }
1231
- if (!staticConfig.variants || !(key in staticConfig.variants)) {
1232
- viewProps[key] = val;
1233
- }
1234
- }
1235
- }
1236
- if (cur) {
1237
- fixNativeShadow(cur);
1238
- style.push(cur);
1239
- }
1240
- if (process.env.NODE_ENV === "development") {
1241
- if (props["debug"]) {
1242
- console.log(" \u{1F95A} splitProps:", { props, viewProps, style });
1243
- }
1244
- }
1245
- return {
1246
- viewProps,
1247
- style,
1248
- pseudos: pseudos2,
1249
- classNames
1250
- };
1251
- }, "getSplitStyles");
1252
- var getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props) => {
1253
- const styleOut = {};
1254
- for (const key in styleIn) {
1255
- const val = styleIn[key];
1256
- const out = staticConfig.propMapper(key, val, theme, props);
1257
- const expanded = out === true || !out ? [[key, val]] : Object.entries(out);
1258
- for (const [skey, sval] of expanded) {
1259
- if (skey in import_helpers3.stylePropsTransform) {
1260
- mergeTransform(styleOut, skey, sval);
1261
- } else {
1262
- styleOut[skey] = sval;
1263
- }
1264
- }
1265
- }
1266
- fixNativeShadow(styleOut);
1267
- return styleOut;
1268
- }, "getSubStyle");
1269
- var mapTransformKeys = {
1270
- x: "translateX",
1271
- y: "translateY"
1272
- };
1273
- var mergeTransform = /* @__PURE__ */ __name((obj, key, val) => {
1274
- const transform = obj.transform ? Array.isArray(obj.transform) ? obj.transform : [obj.transform] : [];
1275
- transform.push({ [mapTransformKeys[key] || key]: val });
1276
- obj.transform = transform;
1277
- }, "mergeTransform");
1278
-
1279
- // src/hooks/useFeatures.tsx
1280
- var import_react10 = __toModule(require("react"));
1281
- var createDefinition = /* @__PURE__ */ __name(({
1282
- Component,
1283
- propNames
1284
- }) => ({
1285
- isEnabled: (props) => propNames.some((name) => !!props[name]),
1286
- Component
1287
- }), "createDefinition");
1288
- var featureDefinitions = null;
1289
- var useFeatures = /* @__PURE__ */ __name((props, utils) => {
1290
- if (!featureDefinitions) {
1291
- featureDefinitions = loadFeatures();
1292
- }
1293
- const features = [];
1294
- for (const name in featureDefinitions) {
1295
- const { isEnabled, Component } = featureDefinitions[name];
1296
- if (isEnabled(props) && Component) {
1297
- features.push(/* @__PURE__ */ import_react10.default.createElement(Component, __spreadProps(__spreadValues({
1298
- key: name
1299
- }, props), {
1300
- _utils: utils
1301
- })));
1302
- }
1303
- }
1304
- return features;
1305
- }, "useFeatures");
1306
- function loadFeatures() {
1307
- return __spreadValues({}, !isWeb && {
1308
- mediaQuery: loadMediaQueryFeature()
1309
- });
1310
- }
1311
- __name(loadFeatures, "loadFeatures");
1312
- function loadMediaQueryFeature() {
1313
- const mediaPropNames = Object.keys(mediaState);
1314
- return createDefinition({
1315
- Component: (props) => {
1316
- const keys = mediaPropNames.flatMap((x) => x in props ? x.slice(1) : []);
1317
- useIsomorphicLayoutEffect(() => {
1318
- for (const key of keys) {
1319
- addMediaQueryListener(key, props._utils.forceUpdate);
1320
- }
1321
- return () => {
1322
- for (const key of keys) {
1323
- removeMediaQueryListener(key, props._utils.forceUpdate);
1324
- }
1325
- };
1326
- }, [keys.join(",")]);
1327
- return null;
1328
- },
1329
- propNames: mediaPropNames
1330
- });
1331
- }
1332
- __name(loadMediaQueryFeature, "loadMediaQueryFeature");
1333
-
1334
- // src/hooks/usePressable.tsx
1335
- var import_react_native2 = __toModule(require("react-native"));
1336
- var _a3, _b;
1337
- var getPressable = (_b = (_a3 = import_react_native2.Pressable) == null ? void 0 : _a3["type"]) == null ? void 0 : _b["render"];
1338
- var usePressable = /* @__PURE__ */ __name((props) => {
1339
- const out = getPressable(props);
1340
- const _a4 = out.props, { children, style } = _a4, pressableProps = __objRest(_a4, ["children", "style"]);
1341
- return [pressableProps, style];
1342
- }, "usePressable");
1343
-
1344
- // src/createComponent.tsx
1345
- var mouseUps = new Set();
1346
- if (typeof document !== "undefined") {
1347
- document.addEventListener("mouseup", () => {
1348
- mouseUps.forEach((x) => x());
1349
- mouseUps.clear();
1350
- });
1351
- }
1352
- function createComponent(configIn) {
1353
- let staticConfig;
1354
- if ("parsed" in configIn) {
1355
- staticConfig = configIn;
1356
- } else {
1357
- staticConfig = parseStaticConfig(configIn);
1358
- }
1359
- const { Component, validStyles: validStyles3, isText, isZStack } = staticConfig;
1360
- const validStyleProps = validStyles3 ?? import_helpers4.stylePropsView;
1361
- let defaultProps = null;
1362
- let tamaguiConfig;
1363
- let defaultsStyle;
1364
- let defaultsClassName = "";
1365
- let initialTheme;
1366
- const component = (0, import_react11.forwardRef)((props, forwardedRef) => {
1367
- var _b2;
1368
- const forceUpdate = (0, import_use_force_update2.useForceUpdate)();
1369
- const features = useFeatures(props, { forceUpdate });
1370
- const manager = (0, import_react11.useContext)(ThemeManagerContext);
1371
- const [state, set_] = (0, import_react11.useState)(() => ({
1372
- hover: false,
1373
- press: false,
1374
- pressIn: false,
1375
- theme: manager.name
1376
- }));
1377
- const set = /* @__PURE__ */ __name((next) => set_((prev) => {
1378
- for (const key in next) {
1379
- if (prev[key] !== next[key]) {
1380
- return __spreadValues(__spreadValues({}, prev), next);
1381
- }
1382
- }
1383
- return prev;
1384
- }), "set");
1385
- if (process.env.NODE_ENV === "development" && !isText && isWeb) {
1386
- import_react11.Children.toArray(props.children).forEach((item) => {
1387
- if (typeof item === "string") {
1388
- console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
1389
- }
1390
- });
1391
- }
1392
- const hasTextAncestor = isWeb ? (0, import_react11.useContext)(TextAncestorContext) : false;
1393
- const hostRef = (0, import_react11.useRef)(null);
1394
- const {
1395
- viewProps: viewPropsIn,
1396
- pseudos: pseudos2,
1397
- style,
1398
- classNames
1399
- } = getSplitStyles(props, staticConfig, manager.theme || initialTheme);
1400
- const _a4 = viewPropsIn, {
1401
- tag,
1402
- hitSlop,
1403
- children,
1404
- pointerEvents,
1405
- onPress,
1406
- onPressIn,
1407
- onPressOut,
1408
- onHoverIn,
1409
- onHoverOut,
1410
- space,
1411
- disabled,
1412
- onMouseEnter,
1413
- onMouseLeave,
1414
- hrefAttrs,
1415
- onMoveShouldSetResponder,
1416
- onMoveShouldSetResponderCapture,
1417
- onResponderEnd,
1418
- onResponderGrant,
1419
- onResponderMove,
1420
- onResponderReject,
1421
- onResponderRelease,
1422
- onResponderStart,
1423
- onResponderTerminate,
1424
- onResponderTerminationRequest,
1425
- onScrollShouldSetResponder,
1426
- onScrollShouldSetResponderCapture,
1427
- onSelectionChangeShouldSetResponder,
1428
- onSelectionChangeShouldSetResponderCapture,
1429
- onStartShouldSetResponder,
1430
- onStartShouldSetResponderCapture,
1431
- onMouseDown,
1432
- onClick,
1433
- accessible,
1434
- accessibilityRole,
1435
- onLayout
1436
- } = _a4, viewProps = __objRest(_a4, [
1437
- "tag",
1438
- "hitSlop",
1439
- "children",
1440
- "pointerEvents",
1441
- "onPress",
1442
- "onPressIn",
1443
- "onPressOut",
1444
- "onHoverIn",
1445
- "onHoverOut",
1446
- "space",
1447
- "disabled",
1448
- "onMouseEnter",
1449
- "onMouseLeave",
1450
- "hrefAttrs",
1451
- "onMoveShouldSetResponder",
1452
- "onMoveShouldSetResponderCapture",
1453
- "onResponderEnd",
1454
- "onResponderGrant",
1455
- "onResponderMove",
1456
- "onResponderReject",
1457
- "onResponderRelease",
1458
- "onResponderStart",
1459
- "onResponderTerminate",
1460
- "onResponderTerminationRequest",
1461
- "onScrollShouldSetResponder",
1462
- "onScrollShouldSetResponderCapture",
1463
- "onSelectionChangeShouldSetResponder",
1464
- "onSelectionChangeShouldSetResponderCapture",
1465
- "onStartShouldSetResponder",
1466
- "onStartShouldSetResponderCapture",
1467
- "onMouseDown",
1468
- "onClick",
1469
- "accessible",
1470
- "accessibilityRole",
1471
- "onLayout"
1472
- ]);
1473
- if (!isWeb) {
1474
- if (accessible)
1475
- viewProps.accessible = accessible;
1476
- if (accessibilityRole)
1477
- viewProps.accessibilityRole = accessibilityRole;
1478
- }
1479
- if (isWeb) {
1480
- rnw.useResponderEvents(hostRef, {
1481
- onMoveShouldSetResponder,
1482
- onMoveShouldSetResponderCapture,
1483
- onResponderEnd,
1484
- onResponderGrant,
1485
- onResponderMove,
1486
- onResponderReject,
1487
- onResponderRelease,
1488
- onResponderStart,
1489
- onResponderTerminate,
1490
- onResponderTerminationRequest,
1491
- onScrollShouldSetResponder,
1492
- onScrollShouldSetResponderCapture,
1493
- onSelectionChangeShouldSetResponder,
1494
- onSelectionChangeShouldSetResponderCapture,
1495
- onStartShouldSetResponder,
1496
- onStartShouldSetResponderCapture
1497
- });
1498
- }
1499
- const isTracking = (0, import_react11.useRef)(false);
1500
- const internal = (0, import_react11.useRef)();
1501
- if (!internal.current) {
1502
- internal.current = {
1503
- isMounted: true
1504
- };
1505
- }
1506
- (0, import_react11.useEffect)(() => {
1507
- internal.current.isMounted = true;
1508
- const dispose = manager == null ? void 0 : manager.onChangeTheme((name) => {
1509
- if (isTracking.current) {
1510
- set({ theme: name });
1511
- }
1512
- });
1513
- return () => {
1514
- dispose();
1515
- mouseUps.delete(unPress);
1516
- isTracking.current = false;
1517
- internal.current.isMounted = false;
1518
- };
1519
- }, [manager]);
1520
- const element = isWeb ? !Component || typeof Component === "string" ? tag || Component : Component : Component;
1521
- const ReactView = !isWeb ? import_react_native3.View : element || (hasTextAncestor ? "span" : "div");
1522
- const ReactText = !isWeb ? import_react_native3.Text : element || "span";
1523
- const ViewComponent = isText ? ReactText : ReactView;
1524
- const isHovering = !isTouchDevice && !disabled && pseudos2 && state.hover;
1525
- const isPressing = !disabled && pseudos2 && state.press;
1526
- const styles = [
1527
- style,
1528
- isHovering ? pseudos2.hoverStyle || null : null,
1529
- isPressing ? pseudos2.pressStyle || null : null
1530
- ];
1531
- if (isWeb) {
1532
- const stylesClassNames = useStylesAsClassname(styles);
1533
- const classList = isText ? [
1534
- defaultsClassName,
1535
- classNames,
1536
- stylesClassNames,
1537
- props.className
1538
- ] : [defaultsClassName, props.className, classNames, stylesClassNames];
1539
- const className = (0, import_helpers4.concatClassName)(...classList);
1540
- if (process.env.NODE_ENV === "development") {
1541
- if (props["debug"]) {
1542
- console.log("\u{1F95A} className", { style, styles, classList, stylesClassNames, className });
1543
- }
1544
- }
1545
- viewProps.className = className;
1546
- } else {
1547
- viewProps.style = styles;
1548
- }
1549
- if (pointerEvents) {
1550
- viewProps.pointerEvents = pointerEvents;
1551
- }
1552
- if (isWeb) {
1553
- const platformMethodsRef = rnw.usePlatformMethods(viewProps);
1554
- const setRef = rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef);
1555
- viewProps.ref = setRef;
1556
- if (props.href != null && hrefAttrs != null) {
1557
- const { download, rel, target } = hrefAttrs;
1558
- if (download != null) {
1559
- viewProps.download = download;
1560
- }
1561
- if (rel != null) {
1562
- viewProps.rel = rel;
1563
- }
1564
- if (typeof target === "string") {
1565
- viewProps.target = target.charAt(0) !== "_" ? "_" + target : target;
1566
- }
1567
- }
1568
- } else {
1569
- if (forwardedRef) {
1570
- viewProps.ref = forwardedRef;
1571
- }
1572
- }
1573
- const attachPress = !!(pseudos2 && pseudos2.pressStyle || onPress || onPressOut || onPressIn || onClick);
1574
- const attachHover = isWeb && !isTouchDevice && !!(pseudos2 && pseudos2.hoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
1575
- const shouldAttach = internal.current.hasEverHadEvents || attachPress || attachHover || "pressStyle" in props || "onPress" in props || "onPressIn" in props || "onPressOut" in props || isWeb && ("hoverStyle" in props || "onClick" in props || "onHoverIn" in props || "onHoverOut" in props || "onMouseEnter" in props || "onMouseLeave" in props);
1576
- if (shouldAttach) {
1577
- internal.current.hasEverHadEvents = true;
1578
- }
1579
- const unPress = (0, import_react11.useCallback)(() => {
1580
- if (!internal.current.isMounted)
1581
- return;
1582
- set({
1583
- press: false,
1584
- pressIn: false
1585
- });
1586
- }, []);
1587
- const events = shouldAttach ? __spreadProps(__spreadValues(__spreadValues({}, !isWeb && {
1588
- onPressOut: (e) => {
1589
- unPress();
1590
- onPressOut == null ? void 0 : onPressOut(e);
1591
- }
1592
- }), isWeb && !isTouchDevice && {
1593
- onMouseEnter: attachHover || attachPress ? (e) => {
1594
- let next = {};
1595
- if (attachHover) {
1596
- next.hover = true;
1597
- }
1598
- if (state.pressIn) {
1599
- next.press = true;
1600
- }
1601
- if (Object.keys(next).length) {
1602
- set(next);
1603
- }
1604
- onHoverIn == null ? void 0 : onHoverIn(e);
1605
- onMouseEnter == null ? void 0 : onMouseEnter(e);
1606
- } : void 0,
1607
- onMouseLeave: attachHover || attachPress ? (e) => {
1608
- let next = {};
1609
- mouseUps.add(unPress);
1610
- if (attachHover) {
1611
- next.hover = false;
1612
- }
1613
- if (state.pressIn) {
1614
- next.press = false;
1615
- next.pressIn = false;
1616
- }
1617
- if (Object.keys(next).length) {
1618
- set(next);
1619
- }
1620
- onHoverOut == null ? void 0 : onHoverOut(e);
1621
- onMouseLeave == null ? void 0 : onMouseLeave(e);
1622
- } : void 0
1623
- }), {
1624
- onMouseDown: attachPress ? (e) => {
1625
- set({
1626
- press: true,
1627
- pressIn: true
1628
- });
1629
- onPressIn == null ? void 0 : onPressIn(e);
1630
- onMouseDown == null ? void 0 : onMouseDown(e);
1631
- } : onPressIn,
1632
- onClick: attachPress ? (e) => {
1633
- onPress == null ? void 0 : onPress(e);
1634
- onClick == null ? void 0 : onClick(e);
1635
- unPress();
1636
- onPressOut == null ? void 0 : onPressOut(e);
1637
- } : onPressOut
1638
- }) : null;
1639
- if (events) {
1640
- if (typeof ViewComponent !== "string") {
1641
- const [pressProps] = usePressable({
1642
- disabled,
1643
- hitSlop,
1644
- onPressIn: events.onMouseDown,
1645
- onPressOut: events.onPressOut,
1646
- onPress: events.onClick
1647
- });
1648
- Object.assign(viewProps, pressProps);
1649
- } else {
1650
- Object.assign(viewProps, events);
1651
- }
1652
- }
1653
- const childEls = spacedChildren({
1654
- children,
1655
- space,
1656
- flexDirection: props.flexDirection || (defaultProps == null ? void 0 : defaultProps.flexDirection),
1657
- isZStack
1658
- });
1659
- let content;
1660
- if (isWeb && rnw) {
1661
- const domProps = rnw.createDOMProps(viewProps);
1662
- const className = domProps.className && domProps.className !== viewProps.className ? `${domProps.className} ${viewProps.className}` : viewProps.className;
1663
- Object.assign(viewProps, domProps);
1664
- viewProps.className = className;
1665
- content = (0, import_react11.createElement)(ViewComponent, viewProps, childEls);
1666
- } else {
1667
- content = (0, import_react11.createElement)(ViewComponent, viewProps, childEls);
1668
- }
1669
- const shouldWrapTextAncestor = isWeb && isText && !hasTextAncestor;
1670
- if (shouldWrapTextAncestor) {
1671
- content = (0, import_react11.createElement)(TextAncestorContext.Provider, { value: true }, content);
1672
- }
1673
- if (process.env.NODE_ENV === "development") {
1674
- if (props["debug"]) {
1675
- viewProps["debug"] = true;
1676
- console.log("\u{1F95A} props in:", props);
1677
- console.log("\u{1F95A} props out:", viewProps);
1678
- console.log((_b2 = props.onClick) == null ? void 0 : _b2.toString());
1679
- console.log("\u{1F95A} etc:", { shouldAttach, ViewComponent, viewProps, styles, pseudos: pseudos2, content, childEls });
1680
- if (isWeb) {
1681
- console.log("\u{1F95A} component info", { staticConfig, tamaguiConfig });
1682
- }
1683
- }
1684
- }
1685
- return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, features, content);
1686
- });
1687
- onConfiguredOnce((conf3) => {
1688
- var _a4;
1689
- tamaguiConfig = conf3;
1690
- initialTheme = conf3.themes[conf3.defaultTheme || Object.keys(conf3.themes)[0]];
1691
- const next = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, true);
1692
- if (isWeb) {
1693
- if (next.classNames) {
1694
- defaultsClassName += next.classNames + " ";
1695
- }
1696
- defaultsClassName += addStylesUsingClassname([next.style, next.pseudos]);
1697
- } else {
1698
- if (!hasWarnedOnce) {
1699
- hasWarnedOnce = true;
1700
- console.log("\u26A0\uFE0F TODO account for default styles for media queries");
1701
- }
1702
- }
1703
- component.defaultProps = __spreadValues(__spreadValues({}, next.viewProps), component.defaultProps);
1704
- if (process.env.NODE_ENV === "development") {
1705
- if ((_a4 = staticConfig.defaultProps) == null ? void 0 : _a4.debug) {
1706
- console.log("tamagui debug component:", next, defaultsClassName, component.defaultProps);
1707
- }
1708
- }
1709
- });
1710
- component["staticConfig"] = __spreadValues({
1711
- validStyles: validStyleProps
1712
- }, staticConfig);
1713
- const res = component;
1714
- res["extractable"] = (Component2) => {
1715
- Component2["staticConfig"] = extendStaticConfig(res, {
1716
- neverFlatten: true,
1717
- defaultProps: Component2.defaultProps
1718
- });
1719
- return Component2;
1720
- };
1721
- return res;
1722
- }
1723
- __name(createComponent, "createComponent");
1724
- var hasWarnedOnce = false;
1725
- var Spacer = createComponent({
1726
- defaultProps: __spreadProps(__spreadValues({}, stackDefaultStyles), {
1727
- size: true
1728
- }),
1729
- variants: {
1730
- size: {
1731
- "...size": (size, { tokens }) => {
1732
- size = size == true ? "$true" : size;
1733
- return {
1734
- width: tokens.size[size] ?? size,
1735
- height: tokens.size[size] ?? size
1736
- };
1737
- }
1738
- },
1739
- direction: {
1740
- horizontal: {
1741
- height: 0
1742
- },
1743
- vertical: {
1744
- width: 0
1745
- }
1746
- }
1747
- }
1748
- });
1749
- function spacedChildren({
1750
- isZStack,
1751
- children,
1752
- space,
1753
- flexDirection
1754
- }) {
1755
- var _a4;
1756
- if (!space && !isZStack) {
1757
- return children;
1758
- }
1759
- const childrenList = import_react11.Children.toArray(children);
1760
- const len = childrenList.length;
1761
- if (len === 1) {
1762
- return children;
1763
- }
1764
- const next = [];
1765
- for (const [index, child] of childrenList.entries()) {
1766
- if (child === null || child === void 0) {
1767
- continue;
1768
- }
1769
- const key = `${(child == null ? void 0 : child["key"]) ?? index}`;
1770
- next.push(/* @__PURE__ */ import_react11.default.createElement(import_react11.Fragment, {
1771
- key
1772
- }, isZStack ? /* @__PURE__ */ import_react11.default.createElement(Absolute, null, child) : child));
1773
- if ((_a4 = child == null ? void 0 : child["type"]) == null ? void 0 : _a4["isVisuallyHidden"]) {
1774
- continue;
1775
- }
1776
- if (index !== len - 1) {
1777
- if (space) {
1778
- next.push(/* @__PURE__ */ import_react11.default.createElement(Spacer, {
1779
- key: `${key}_spacer`,
1780
- direction: flexDirection === "row" || flexDirection === "row-reverse" ? "horizontal" : "vertical",
1781
- size: space
1782
- }));
1783
- }
1784
- }
1785
- }
1786
- return next;
1787
- }
1788
- __name(spacedChildren, "spacedChildren");
1789
- var Absolute = /* @__PURE__ */ __name(({ children }) => /* @__PURE__ */ import_react11.default.createElement(import_react_native3.View, {
1790
- style: sheet.fullscreen
1791
- }, children), "Absolute");
1792
- var sheet = import_react_native3.StyleSheet.create({
1793
- fullscreen: {
1794
- position: "absolute",
1795
- top: 0,
1796
- left: 0,
1797
- right: 0,
1798
- bottom: 0
1799
- }
1800
- });
1801
-
1802
- // src/createShorthands.ts
1803
- function createShorthands(shorthands) {
1804
- return Object.freeze(shorthands);
1805
- }
1806
- __name(createShorthands, "createShorthands");
1807
-
1808
- // src/createTheme.ts
1809
- var createTheme = /* @__PURE__ */ __name((theme) => {
1810
- const res = {};
1811
- for (const key in theme) {
1812
- const val = theme[key];
1813
- if (!(val instanceof Variable)) {
1814
- res[key] = createVariable({
1815
- name: key,
1816
- val
1817
- });
1818
- }
1819
- }
1820
- return res;
1821
- }, "createTheme");
1822
-
1823
- // src/createFont.ts
1824
- var createFont = /* @__PURE__ */ __name((font) => {
1825
- if (process.env.NODE_ENV === "development") {
1826
- validateFont(font);
1827
- }
1828
- const sizeKeys = Object.keys(font.size);
1829
- for (const key in font) {
1830
- if (key === "size" || key === "family")
1831
- continue;
1832
- const section = font[key];
1833
- const keys = Object.keys(section);
1834
- let fillVal = section[keys[0]];
1835
- for (const sKey of sizeKeys) {
1836
- if (!(sKey in section)) {
1837
- section[sKey] = fillVal;
1838
- } else {
1839
- fillVal = section[sKey];
1840
- }
1841
- }
1842
- }
1843
- return Object.freeze(font);
1844
- }, "createFont");
1845
-
1846
- // src/createTokens.ts
1847
- function createTokens(tokens) {
1848
- if (process.env.NODE_ENV === "development") {
1849
- validateTokens(tokens);
1850
- }
1851
- return setupTokens(tokens);
1852
- }
1853
- __name(createTokens, "createTokens");
1854
- function setupTokens(tokens) {
1855
- return mapTokensToVariables(tokens);
1856
- }
1857
- __name(setupTokens, "setupTokens");
1858
- var mapTokensToVariables = /* @__PURE__ */ __name((tokens, parentPath = "") => {
1859
- const res = {};
1860
- for (const key in tokens) {
1861
- const val = tokens[key];
1862
- const name = parentPath ? `${parentPath}-${key}` : key;
1863
- if (val && typeof val === "object") {
1864
- res[key] = mapTokensToVariables(tokens[key], name);
1865
- } else {
1866
- res[key] = createVariable({ val, name });
1867
- }
1868
- }
1869
- return res;
1870
- }, "mapTokensToVariables");
1871
-
1872
- // src/styled.ts
1873
- function styled(Component, options, staticExtractionOptions) {
1874
- const staticConfigProps = (() => {
1875
- if (options) {
1876
- const _a4 = options, { variants } = _a4, defaultProps = __objRest(_a4, ["variants"]);
1877
- return __spreadProps(__spreadValues({}, staticExtractionOptions), { variants, defaultProps });
1878
- }
1879
- return {};
1880
- })();
1881
- const config = extendStaticConfig(Component, staticConfigProps);
1882
- const component = createComponent(config);
1883
- return component;
1884
- }
1885
- __name(styled, "styled");
1886
-
1887
- // src/helpers/themeable.tsx
1888
- var import_react14 = __toModule(require("react"));
1889
-
1890
- // src/views/ThemeInverse.tsx
1891
- var import_react13 = __toModule(require("react"));
1892
-
1893
- // src/hooks/useTheme.tsx
1894
- var import_use_force_update3 = __toModule(require("@tamagui/use-force-update"));
1895
- var import_react12 = __toModule(require("react"));
1896
- var areEqualSets = /* @__PURE__ */ __name((a, b) => {
1897
- if (a.size !== b.size)
1898
- return false;
1899
- for (const val in a) {
1900
- if (!b.has(val)) {
1901
- return false;
1902
- }
1903
- }
1904
- return true;
1905
- }, "areEqualSets");
1906
- var useThemeName = /* @__PURE__ */ __name(() => {
1907
- const parent = (0, import_react12.useContext)(ThemeManagerContext);
1908
- const [name, setName] = (0, import_react12.useState)(parent.name);
1909
- (0, import_react12.useEffect)(() => {
1910
- return parent.onChangeTheme((next) => {
1911
- setName((prev) => {
1912
- if (prev === next)
1913
- return prev;
1914
- return next;
1915
- });
1916
- });
1917
- }, [parent]);
1918
- return name || "light";
1919
- }, "useThemeName");
1920
- var useDefaultThemeName = /* @__PURE__ */ __name(() => {
1921
- return (0, import_react12.useContext)(ThemeContext)[GET_DEFAULT_THEME];
1922
- }, "useDefaultThemeName");
1923
- var useTheme = /* @__PURE__ */ __name(() => {
1924
- const forceUpdate = (0, import_use_force_update3.useForceUpdate)();
1925
- const manager = (0, import_react12.useContext)(ThemeManagerContext);
1926
- const themes = (0, import_react12.useContext)(ThemeContext);
1927
- const state = (0, import_react12.useRef)();
1928
- if (!state.current) {
1929
- state.current = {
1930
- uuid: {},
1931
- keys: new Set(),
1932
- isRendering: true
1933
- };
1934
- }
1935
- state.current.isRendering = true;
1936
- useIsomorphicLayoutEffect(() => {
1937
- const st = state.current;
1938
- st.isRendering = false;
1939
- const cur = manager.keys.get(st.uuid);
1940
- if (!cur || !areEqualSets(st.keys, cur)) {
1941
- manager.track(st.uuid, st.keys);
1942
- }
1943
- });
1944
- (0, import_react12.useEffect)(() => {
1945
- return manager.onUpdate(state.current.uuid, forceUpdate);
1946
- }, []);
1947
- const theme = (manager.name ? themes[manager.name] : themes.light) ?? themes.light;
1948
- return (0, import_react12.useMemo)(() => {
1949
- return new Proxy(theme, {
1950
- get(_, key) {
1951
- const name = manager.name;
1952
- if (!name) {
1953
- return Reflect.get(_, key);
1954
- }
1955
- let activeTheme = themes[name];
1956
- if (!activeTheme) {
1957
- console.error("No theme by name", name, "only:", themes, "keeping current theme");
1958
- activeTheme = theme;
1959
- }
1960
- const val = activeTheme[key];
1961
- if (process.env.NODE_ENV === "development") {
1962
- if (typeof val === "undefined") {
1963
- throw new Error(`No theme value "${String(key)}" in: ${Object.keys(activeTheme)}`);
1964
- }
1965
- }
1966
- if (state.current.isRendering) {
1967
- state.current.keys.add(key);
1968
- }
1969
- return new Variable({ val: val.val, name: key });
1970
- }
1971
- });
1972
- }, []);
1973
- }, "useTheme");
1974
-
1975
- // src/views/ThemeInverse.tsx
1976
- var inversions = {
1977
- light: "dark",
1978
- dark: "light"
1979
- };
1980
- function setThemeInversions(next) {
1981
- inversions = next;
1982
- }
1983
- __name(setThemeInversions, "setThemeInversions");
1984
- var ThemeInverse = /* @__PURE__ */ __name((props) => {
1985
- const themeName = useThemeName();
1986
- const defaultTheme = useDefaultThemeName();
1987
- const name = inversions[themeName] || inversions[defaultTheme] || null;
1988
- return /* @__PURE__ */ import_react13.default.createElement(Theme, {
1989
- name
1990
- }, props.children);
1991
- }, "ThemeInverse");
1992
-
1993
- // src/helpers/themeable.tsx
1994
- var themeable = /* @__PURE__ */ __name(function graphql(component) {
1995
- const withThemeComponent = (0, import_react14.forwardRef)(/* @__PURE__ */ __name(function WithTheme(_a4, ref) {
1996
- var _b2 = _a4, { themeInverse } = _b2, rest = __objRest(_b2, ["themeInverse"]);
1997
- const el = import_react14.default.createElement(component, __spreadProps(__spreadValues({}, rest), { ref }));
1998
- if (themeInverse) {
1999
- return /* @__PURE__ */ import_react14.default.createElement(ThemeInverse, null, el);
2000
- }
2001
- if (rest.theme) {
2002
- return /* @__PURE__ */ import_react14.default.createElement(Theme, {
2003
- name: rest.theme || null
2004
- }, el);
2005
- }
2006
- return el;
2007
- }, "WithTheme"));
2008
- const withTheme = withThemeComponent;
2009
- withTheme.displayName = `Themed(${(component == null ? void 0 : component.displayName) || (component == null ? void 0 : component.name) || "Anonymous"})`;
2010
- return withTheme;
2011
- }, "graphql");
2012
-
2013
- // src/helpers/isTamaguiElement.tsx
2014
- var import_react15 = __toModule(require("react"));
2015
- var isTamaguiElement = /* @__PURE__ */ __name((child) => {
2016
- var _a4;
2017
- return (0, import_react15.isValidElement)(child) && !!((_a4 = child.type["staticConfig"]) == null ? void 0 : _a4.parsed);
2018
- }, "isTamaguiElement");
2019
-
2020
- // src/views/Animated.tsx
2021
- var import_react16 = __toModule(require("react"));
2022
- var import_react_native4 = __toModule(require("react-native"));
2023
-
2024
- // src/views/Stack.tsx
2025
- var Stack = createComponent({
2026
- defaultProps: __spreadProps(__spreadValues({}, stackDefaultStyles), {
2027
- flexDirection: "column"
2028
- })
2029
- });
2030
-
2031
- // src/views/Animated.tsx
2032
- var defaultAnimation = {
2033
- from: {
2034
- opacity: 0,
2035
- translateY: 12
2036
- },
2037
- to: {
2038
- opacity: 1,
2039
- translateY: 0
2040
- }
2041
- };
2042
- var styleKeys = {
2043
- opacity: true,
2044
- backgroundColor: true,
2045
- borderColor: true
2046
- };
2047
- var AnimatedStack = /* @__PURE__ */ __name((_a4) => {
2048
- var _b2 = _a4, {
2049
- animateState = "in",
2050
- animation = defaultAnimation,
2051
- velocity = 6,
2052
- children,
2053
- animated
2054
- } = _b2, props = __objRest(_b2, [
2055
- "animateState",
2056
- "animation",
2057
- "velocity",
2058
- "children",
2059
- "animated"
2060
- ]);
2061
- const driver = useConstant(() => {
2062
- return new import_react_native4.Animated.Value(0);
2063
- });
2064
- const animatedProps = (0, import_react16.useMemo)(() => {
2065
- if (!animated) {
2066
- return null;
2067
- }
2068
- const styleProps = {};
2069
- const transform = [];
2070
- for (const key in animation.from) {
2071
- const fromVal = animation.from[key];
2072
- const toVal = animation.to[key];
2073
- const interpolatedVal = driver.interpolate({
2074
- inputRange: [0, 1],
2075
- outputRange: [fromVal, toVal]
2076
- });
2077
- if (styleKeys[key]) {
2078
- styleProps[key] = interpolatedVal;
2079
- } else {
2080
- transform.push({
2081
- [key]: interpolatedVal
2082
- });
2083
- }
2084
- }
2085
- return __spreadValues({ transform }, styleProps);
2086
- }, [animated, animateState]);
2087
- useIsomorphicLayoutEffect(() => {
2088
- if (!animated) {
2089
- return;
2090
- }
2091
- import_react_native4.Animated.spring(driver, {
2092
- useNativeDriver: true,
2093
- velocity,
2094
- toValue: animateState === "in" ? 1 : 0
2095
- }).start();
2096
- }, [animated, animateState]);
2097
- const childrenMemo = (0, import_react16.useMemo)(() => children, [children]);
2098
- return /* @__PURE__ */ import_react16.default.createElement(Stack, __spreadValues(__spreadValues({
2099
- animated
2100
- }, props), animatedProps), childrenMemo);
2101
- }, "AnimatedStack");
2102
-
2103
- // src/static.ts
2104
- var static_exports = {};
2105
- __export(static_exports, {
2106
- Spacer: () => Spacer,
2107
- addMediaQueryListener: () => addMediaQueryListener,
2108
- configureMedia: () => configureMedia,
2109
- createComponent: () => createComponent,
2110
- createFont: () => createFont,
2111
- createTamagui: () => createTamagui,
2112
- createTokens: () => createTokens,
2113
- getHasConfigured: () => getHasConfigured,
2114
- getMedia: () => getMedia,
2115
- getSplitStyles: () => getSplitStyles,
2116
- getStylesAtomic: () => getStylesAtomic,
2117
- getTamaguiConfig: () => getTamaguiConfig,
2118
- getThemeParentClassName: () => getThemeParentClassName,
2119
- isObj: () => isObj,
2120
- mapTokensToVariables: () => mapTokensToVariables,
2121
- mediaObjectToString: () => mediaObjectToString,
2122
- mediaQueryConfig: () => mediaQueryConfig,
2123
- mediaState: () => mediaState,
2124
- mouseUps: () => mouseUps,
2125
- onConfiguredOnce: () => onConfiguredOnce,
2126
- postProcessStyles: () => postProcessStyles,
2127
- pseudos: () => pseudos,
2128
- removeMediaQueryListener: () => removeMediaQueryListener,
2129
- spacedChildren: () => spacedChildren,
2130
- stackDefaultStyles: () => stackDefaultStyles,
2131
- styled: () => styled,
2132
- useDefaultThemeName: () => useDefaultThemeName,
2133
- useMedia: () => useMedia,
2134
- useTheme: () => useTheme,
2135
- useThemeName: () => useThemeName
2136
- });
2137
- __reExport(static_exports, __toModule(require("@tamagui/helpers")));
2138
-
2139
- // src/static/postProcessStyles.tsx
2140
- var postProcessStyles = /* @__PURE__ */ __name((inStyles, staticConfig, theme) => {
2141
- const { style, viewProps, pseudos: pseudos2, classNames } = getSplitStyles(inStyles, staticConfig, theme);
2142
- const next = {};
2143
- for (const s of style) {
2144
- if (!s)
2145
- continue;
2146
- Object.assign(next, s);
2147
- }
2148
- Object.assign(next, pseudos2);
2149
- return { style: next, viewProps, classNames };
2150
- }, "postProcessStyles");
2151
-
2152
- // src/views/Text.tsx
2153
- var ellipseStyle = {
2154
- maxWidth: "100%",
2155
- overflow: "hidden",
2156
- textOverflow: "ellipsis",
2157
- whiteSpace: "nowrap"
2158
- };
2159
- var Text2 = createComponent({
2160
- isText: true,
2161
- defaultProps: {
2162
- display: isWeb ? "inline" : "inline-flex",
2163
- boxSizing: "border-box",
2164
- fontFamily: "System",
2165
- wordWrap: "break-word"
2166
- },
2167
- variants: {
2168
- numberOfLines: {
2169
- 1: ellipseStyle,
2170
- "[number]": (lines) => lines > 1 ? { WebkitLineClamp: 1 } : null
2171
- },
2172
- selectable: {
2173
- true: {
2174
- userSelect: "text"
2175
- },
2176
- false: {
2177
- userSelect: "none"
2178
- }
2179
- },
2180
- pressable: {
2181
- true: {
2182
- cursor: "pointer"
2183
- }
2184
- },
2185
- ellipse: {
2186
- true: isWeb ? ellipseStyle : {
2187
- numberOfLines: 1,
2188
- lineBreakMode: "clip"
2189
- }
2190
- }
2191
- },
2192
- deoptProps: new Set(isWeb ? [] : ["ellipse"]),
2193
- validStyles: __spreadValues(__spreadValues(__spreadValues({}, static_exports.validStyles), static_exports.stylePropsTextOnly), isWeb && {
2194
- userSelect: true,
2195
- textOverflow: true,
2196
- whiteSpace: true,
2197
- wordWrap: true,
2198
- selectable: true,
2199
- cursor: true
2200
- })
2201
- });
2202
- //# sourceMappingURL=index.cjs.map