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

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 (613) hide show
  1. package/dist/cjs/Tamagui.js +52 -0
  2. package/dist/cjs/Tamagui.js.map +7 -0
  3. package/dist/cjs/ThemeContext.js +25 -0
  4. package/dist/cjs/ThemeContext.js.map +7 -0
  5. package/dist/cjs/ThemeManager.js +195 -0
  6. package/dist/cjs/ThemeManager.js.map +7 -0
  7. package/dist/cjs/conf.js +55 -0
  8. package/dist/cjs/conf.js.map +7 -0
  9. package/dist/cjs/constants/constants.js +15 -15
  10. package/dist/cjs/constants/constants.js.map +2 -2
  11. package/dist/cjs/constants/platform.js +18 -18
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/rnw.js +17 -3
  14. package/dist/cjs/constants/rnw.js.map +2 -2
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +25 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +7 -0
  17. package/dist/cjs/createComponent.js +344 -206
  18. package/dist/cjs/createComponent.js.map +2 -2
  19. package/dist/cjs/createFont.js +11 -15
  20. package/dist/cjs/createFont.js.map +1 -1
  21. package/dist/cjs/createShorthands.js +15 -3
  22. package/dist/cjs/createShorthands.js.map +1 -1
  23. package/dist/cjs/createTamagui.js +109 -104
  24. package/dist/cjs/createTamagui.js.map +2 -2
  25. package/dist/cjs/createTheme.js +11 -28
  26. package/dist/cjs/createTheme.js.map +2 -2
  27. package/dist/cjs/createTokens.js +12 -16
  28. package/dist/cjs/createTokens.js.map +1 -1
  29. package/dist/cjs/createVariable.js +33 -19
  30. package/dist/cjs/createVariable.js.map +2 -2
  31. package/dist/cjs/defaultComponentState.js +31 -0
  32. package/dist/cjs/defaultComponentState.js.map +7 -0
  33. package/dist/cjs/helpers/addStylesUsingClassname.js +29 -29
  34. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  35. package/dist/cjs/helpers/areEqualSets.js +34 -0
  36. package/dist/cjs/helpers/areEqualSets.js.map +7 -0
  37. package/dist/cjs/helpers/createMediaStyle.js +14 -21
  38. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  39. package/dist/cjs/helpers/createPropMapper.js +151 -115
  40. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  41. package/dist/cjs/helpers/createTamaguiProvider.js +42 -23
  42. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  43. package/dist/cjs/helpers/extendStaticConfig.js +23 -26
  44. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  45. package/dist/cjs/helpers/fixNativeShadow.js +15 -3
  46. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  47. package/dist/cjs/helpers/fixNativeShadow.native.js +38 -22
  48. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  49. package/dist/cjs/helpers/getExpandedShorthands.js +37 -0
  50. package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
  51. package/dist/cjs/helpers/getSplitStyles.js +175 -99
  52. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  53. package/dist/cjs/helpers/getStylesAtomic.js +98 -56
  54. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  55. package/dist/cjs/helpers/getStylesAtomic.native.js +15 -3
  56. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  57. package/dist/cjs/helpers/insertStyleRule.js +80 -24
  58. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  59. package/dist/cjs/helpers/isObj.js +15 -3
  60. package/dist/cjs/helpers/isObj.js.map +1 -1
  61. package/dist/cjs/helpers/isTamaguiElement.js +11 -15
  62. package/dist/cjs/helpers/isTamaguiElement.js.map +1 -1
  63. package/dist/cjs/helpers/matchMedia.js +15 -3
  64. package/dist/cjs/helpers/matchMedia.js.map +1 -1
  65. package/dist/cjs/helpers/matchMedia.native.js +12 -13
  66. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  67. package/dist/cjs/helpers/themeable.js +24 -24
  68. package/dist/cjs/helpers/themeable.js.map +2 -2
  69. package/dist/cjs/helpers/validate.js +46 -47
  70. package/dist/cjs/helpers/validate.js.map +2 -2
  71. package/dist/cjs/helpers/withStaticProperties.js +28 -0
  72. package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
  73. package/dist/cjs/helpers/wrapThemeManagerContext.js +35 -0
  74. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +7 -0
  75. package/dist/cjs/hooks/useConstant.js +11 -15
  76. package/dist/cjs/hooks/useConstant.js.map +1 -1
  77. package/dist/cjs/hooks/useFeatures.js +55 -16
  78. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  79. package/dist/cjs/hooks/useIsMounted.js +37 -0
  80. package/dist/cjs/hooks/useIsMounted.js.map +7 -0
  81. package/dist/cjs/hooks/useIsTouchDevice.js +35 -0
  82. package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
  83. package/dist/cjs/hooks/useMedia.js +23 -47
  84. package/dist/cjs/hooks/useMedia.js.map +2 -2
  85. package/dist/cjs/hooks/usePressable.js +11 -15
  86. package/dist/cjs/hooks/usePressable.js.map +1 -1
  87. package/dist/cjs/hooks/useTheme.js +162 -67
  88. package/dist/cjs/hooks/useTheme.js.map +2 -2
  89. package/dist/cjs/hooks/useUnmountEffect.js +29 -0
  90. package/dist/cjs/hooks/useUnmountEffect.js.map +7 -0
  91. package/dist/cjs/index.js +56 -43
  92. package/dist/cjs/index.js.map +2 -2
  93. package/dist/cjs/spacedChildren.js +86 -0
  94. package/dist/cjs/spacedChildren.js.map +7 -0
  95. package/dist/cjs/static.js +23 -27
  96. package/dist/cjs/static.js.map +2 -2
  97. package/dist/cjs/styled.js +45 -16
  98. package/dist/cjs/styled.js.map +3 -3
  99. package/dist/cjs/types-rnw.js +16 -0
  100. package/dist/cjs/types-rnw.js.map +7 -0
  101. package/dist/cjs/types.js +14 -2
  102. package/dist/cjs/types.js.map +2 -2
  103. package/dist/cjs/views/Stack.js +12 -16
  104. package/dist/cjs/views/Stack.js.map +2 -2
  105. package/dist/cjs/views/Text.js +18 -21
  106. package/dist/cjs/views/Text.js.map +2 -2
  107. package/dist/cjs/views/TextAncestorContext.js +19 -21
  108. package/dist/cjs/views/TextAncestorContext.js.map +2 -2
  109. package/dist/cjs/views/Theme.js +28 -63
  110. package/dist/cjs/views/Theme.js.map +2 -2
  111. package/dist/cjs/views/ThemeInverse.js +15 -16
  112. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  113. package/dist/cjs/views/ThemeProvider.js +32 -37
  114. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  115. package/dist/cjs/views/ThemeReset.js +59 -0
  116. package/dist/cjs/views/ThemeReset.js.map +7 -0
  117. package/dist/esm/Tamagui.js +34 -0
  118. package/dist/esm/Tamagui.js.map +7 -0
  119. package/dist/{views → esm}/ThemeContext.js +0 -0
  120. package/dist/esm/ThemeContext.js.map +7 -0
  121. package/dist/esm/ThemeManager.js +177 -0
  122. package/dist/esm/ThemeManager.js.map +7 -0
  123. package/dist/esm/conf.js +37 -0
  124. package/dist/esm/conf.js.map +7 -0
  125. package/dist/{constants → esm/constants}/constants.js +4 -0
  126. package/dist/esm/constants/constants.js.map +7 -0
  127. package/dist/{constants → esm/constants}/platform.js +6 -1
  128. package/dist/esm/constants/platform.js.map +7 -0
  129. package/dist/{constants → esm/constants}/rnw.js +2 -0
  130. package/dist/esm/constants/rnw.js.map +7 -0
  131. package/dist/esm/contexts/ButtonInsideButtonContext.js +6 -0
  132. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +7 -0
  133. package/dist/esm/createComponent.js +611 -0
  134. package/dist/esm/createComponent.js.map +7 -0
  135. package/dist/{createFont.js → esm/createFont.js} +0 -0
  136. package/dist/{createFont.js.map → esm/createFont.js.map} +2 -2
  137. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  138. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +2 -2
  139. package/dist/esm/createTamagui.js +177 -0
  140. package/dist/esm/createTamagui.js.map +7 -0
  141. package/dist/esm/createTheme.js +7 -0
  142. package/dist/esm/createTheme.js.map +7 -0
  143. package/dist/{createTokens.js → esm/createTokens.js} +0 -0
  144. package/dist/{createTokens.js.map → esm/createTokens.js.map} +2 -2
  145. package/dist/esm/createVariable.js +43 -0
  146. package/dist/esm/createVariable.js.map +7 -0
  147. package/dist/esm/defaultComponentState.js +12 -0
  148. package/dist/esm/defaultComponentState.js.map +7 -0
  149. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +16 -12
  150. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  151. package/dist/esm/helpers/areEqualSets.js +16 -0
  152. package/dist/esm/helpers/areEqualSets.js.map +7 -0
  153. package/dist/{helpers → esm/helpers}/createMediaStyle.js +3 -6
  154. package/dist/esm/helpers/createMediaStyle.js.map +7 -0
  155. package/dist/esm/helpers/createPropMapper.js +208 -0
  156. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  157. package/dist/esm/helpers/createTamaguiProvider.js +43 -0
  158. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  159. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +14 -14
  160. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  161. package/dist/{helpers → esm/helpers}/fixNativeShadow.js +0 -0
  162. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +2 -2
  163. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  164. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  165. package/dist/esm/helpers/getExpandedShorthands.js +19 -0
  166. package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
  167. package/dist/esm/helpers/getSplitStyles.js +233 -0
  168. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  169. package/dist/esm/helpers/getStylesAtomic.js +118 -0
  170. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  171. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js +0 -0
  172. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js.map +2 -2
  173. package/dist/esm/helpers/insertStyleRule.js +84 -0
  174. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  175. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  176. package/dist/{helpers → esm/helpers}/isObj.js.map +2 -2
  177. package/dist/{helpers → esm/helpers}/isTamaguiElement.js +2 -1
  178. package/dist/{helpers → esm/helpers}/isTamaguiElement.js.map +2 -2
  179. package/dist/{helpers → esm/helpers}/matchMedia.js +0 -0
  180. package/dist/{helpers → esm/helpers}/matchMedia.js.map +2 -2
  181. package/dist/{helpers → esm/helpers}/matchMedia.native.js +0 -0
  182. package/dist/{helpers → esm/helpers}/matchMedia.native.js.map +2 -2
  183. package/dist/{helpers → esm/helpers}/themeable.js +11 -10
  184. package/dist/esm/helpers/themeable.js.map +7 -0
  185. package/dist/esm/helpers/validate.js +63 -0
  186. package/dist/esm/helpers/validate.js.map +7 -0
  187. package/dist/esm/helpers/withStaticProperties.js +10 -0
  188. package/dist/esm/helpers/withStaticProperties.js.map +7 -0
  189. package/dist/esm/helpers/wrapThemeManagerContext.js +14 -0
  190. package/dist/esm/helpers/wrapThemeManagerContext.js.map +7 -0
  191. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  192. package/dist/{hooks → esm/hooks}/useConstant.js.map +2 -2
  193. package/dist/{hooks → esm/hooks}/useFeatures.js +31 -0
  194. package/dist/esm/hooks/useFeatures.js.map +7 -0
  195. package/dist/esm/hooks/useIsMounted.js +19 -0
  196. package/dist/esm/hooks/useIsMounted.js.map +7 -0
  197. package/dist/esm/hooks/useIsTouchDevice.js +17 -0
  198. package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
  199. package/dist/{hooks → esm/hooks}/useMedia.js +11 -30
  200. package/dist/esm/hooks/useMedia.js.map +7 -0
  201. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  202. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  203. package/dist/esm/hooks/useTheme.js +173 -0
  204. package/dist/esm/hooks/useTheme.js.map +7 -0
  205. package/dist/esm/hooks/useUnmountEffect.js +11 -0
  206. package/dist/esm/hooks/useUnmountEffect.js.map +7 -0
  207. package/dist/{index.js → esm/index.js} +21 -5
  208. package/dist/esm/index.js.map +7 -0
  209. package/dist/esm/spacedChildren.js +52 -0
  210. package/dist/esm/spacedChildren.js.map +7 -0
  211. package/dist/{static.js → esm/static.js} +1 -2
  212. package/dist/{static.js.map → esm/static.js.map} +3 -3
  213. package/dist/esm/styled.js +53 -0
  214. package/dist/esm/styled.js.map +7 -0
  215. package/dist/esm/types-rnw.js +1 -0
  216. package/dist/{helpers/pseudos.js.map → esm/types-rnw.js.map} +0 -0
  217. package/dist/{types.js → esm/types.js} +0 -0
  218. package/dist/{types.js.map → esm/types.js.map} +0 -0
  219. package/dist/{views → esm/views}/Stack.js +0 -0
  220. package/dist/esm/views/Stack.js.map +7 -0
  221. package/dist/{views → esm/views}/Text.js +5 -4
  222. package/dist/esm/views/Text.js.map +7 -0
  223. package/dist/esm/views/TextAncestorContext.js +18 -0
  224. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  225. package/dist/esm/views/Theme.js +32 -0
  226. package/dist/esm/views/Theme.js.map +7 -0
  227. package/dist/{views → esm/views}/ThemeInverse.js +1 -1
  228. package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
  229. package/dist/esm/views/ThemeProvider.js +41 -0
  230. package/dist/esm/views/ThemeProvider.js.map +7 -0
  231. package/dist/esm/views/ThemeReset.js +38 -0
  232. package/dist/esm/views/ThemeReset.js.map +7 -0
  233. package/dist/jsx/Tamagui.js +33 -0
  234. package/dist/jsx/ThemeContext.js +5 -0
  235. package/dist/jsx/ThemeManager.js +176 -0
  236. package/dist/jsx/conf.js +36 -0
  237. package/dist/jsx/constants/constants.js +17 -0
  238. package/dist/jsx/constants/platform.js +23 -0
  239. package/dist/jsx/constants/rnw.js +23 -0
  240. package/dist/jsx/contexts/ButtonInsideButtonContext.js +5 -0
  241. package/dist/jsx/createComponent.js +598 -0
  242. package/dist/jsx/createFont.js +27 -0
  243. package/dist/jsx/createShorthands.js +9 -0
  244. package/dist/jsx/createTamagui.js +176 -0
  245. package/dist/jsx/createTheme.js +6 -0
  246. package/dist/jsx/createTokens.js +32 -0
  247. package/dist/jsx/createVariable.js +42 -0
  248. package/dist/jsx/defaultComponentState.js +11 -0
  249. package/dist/jsx/helpers/addStylesUsingClassname.js +60 -0
  250. package/dist/jsx/helpers/areEqualSets.js +15 -0
  251. package/dist/jsx/helpers/createMediaStyle.js +30 -0
  252. package/dist/jsx/helpers/createPropMapper.js +207 -0
  253. package/dist/jsx/helpers/createTamaguiProvider.js +35 -0
  254. package/dist/jsx/helpers/extendStaticConfig.js +58 -0
  255. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  256. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  257. package/dist/jsx/helpers/getExpandedShorthands.js +18 -0
  258. package/dist/jsx/helpers/getSplitStyles.js +232 -0
  259. package/dist/jsx/helpers/getStylesAtomic.js +117 -0
  260. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  261. package/dist/jsx/helpers/insertStyleRule.js +83 -0
  262. package/dist/jsx/helpers/isObj.js +6 -0
  263. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  264. package/dist/jsx/helpers/matchMedia.js +17 -0
  265. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  266. package/dist/jsx/helpers/themeable.js +24 -0
  267. package/dist/jsx/helpers/validate.js +62 -0
  268. package/dist/jsx/helpers/withStaticProperties.js +9 -0
  269. package/dist/jsx/helpers/wrapThemeManagerContext.js +10 -0
  270. package/dist/jsx/hooks/useConstant.js +14 -0
  271. package/dist/jsx/hooks/useFeatures.js +88 -0
  272. package/dist/jsx/hooks/useIsMounted.js +18 -0
  273. package/dist/jsx/hooks/useIsTouchDevice.js +16 -0
  274. package/dist/jsx/hooks/useMedia.js +151 -0
  275. package/dist/jsx/hooks/usePressable.js +13 -0
  276. package/dist/jsx/hooks/useTheme.js +172 -0
  277. package/dist/jsx/hooks/useUnmountEffect.js +10 -0
  278. package/dist/jsx/index.js +47 -0
  279. package/dist/jsx/spacedChildren.js +44 -0
  280. package/dist/jsx/static.js +13 -0
  281. package/dist/jsx/styled.js +52 -0
  282. package/dist/jsx/types-rnw.js +0 -0
  283. package/dist/jsx/types.js +0 -0
  284. package/dist/jsx/views/Stack.js +11 -0
  285. package/dist/jsx/views/Text.js +60 -0
  286. package/dist/jsx/views/TextAncestorContext.js +15 -0
  287. package/dist/jsx/views/Theme.js +28 -0
  288. package/dist/jsx/views/ThemeInverse.js +22 -0
  289. package/dist/jsx/views/ThemeProvider.js +35 -0
  290. package/dist/jsx/views/ThemeReset.js +34 -0
  291. package/package.json +22 -20
  292. package/types/Tamagui.d.ts +13 -0
  293. package/types/Tamagui.d.ts.map +1 -0
  294. package/types/ThemeContext.d.ts +7 -0
  295. package/types/ThemeContext.d.ts.map +1 -0
  296. package/types/ThemeManager.d.ts +49 -0
  297. package/types/ThemeManager.d.ts.map +1 -0
  298. package/types/conf.d.ts +25 -0
  299. package/types/conf.d.ts.map +1 -0
  300. package/{dist/packages/core/src → types}/constants/constants.d.ts +2 -0
  301. package/types/constants/constants.d.ts.map +1 -0
  302. package/{dist/packages/core/src → types}/constants/platform.d.ts +2 -0
  303. package/types/constants/platform.d.ts.map +1 -0
  304. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  305. package/types/constants/rnw.d.ts.map +1 -0
  306. package/types/contexts/ButtonInsideButtonContext.d.ts +3 -0
  307. package/types/contexts/ButtonInsideButtonContext.d.ts.map +1 -0
  308. package/types/createComponent.d.ts +21 -0
  309. package/types/createComponent.d.ts.map +1 -0
  310. package/types/createFont.d.ts +3 -0
  311. package/types/createFont.d.ts.map +1 -0
  312. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  313. package/types/createShorthands.d.ts.map +1 -0
  314. package/types/createTamagui.d.ts +16 -0
  315. package/types/createTamagui.d.ts.map +1 -0
  316. package/types/createTheme.d.ts +7 -0
  317. package/types/createTheme.d.ts.map +1 -0
  318. package/{dist/packages/core/src → types}/createTokens.d.ts +24 -14
  319. package/types/createTokens.d.ts.map +1 -0
  320. package/{dist/packages/core/src → types}/createVariable.d.ts +6 -1
  321. package/types/createVariable.d.ts.map +1 -0
  322. package/types/defaultComponentState.d.ts +13 -0
  323. package/types/defaultComponentState.d.ts.map +1 -0
  324. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  325. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  326. package/types/helpers/areEqualSets.d.ts +2 -0
  327. package/types/helpers/areEqualSets.d.ts.map +1 -0
  328. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +1 -1
  329. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  330. package/types/helpers/createPropMapper.d.ts +4 -0
  331. package/types/helpers/createPropMapper.d.ts.map +1 -0
  332. package/types/helpers/createTamaguiProvider.d.ts +7 -0
  333. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  334. package/types/helpers/extendStaticConfig.d.ts +4 -0
  335. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  336. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  337. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  338. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  339. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  340. package/types/helpers/getExpandedShorthands.d.ts +3 -0
  341. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  342. package/types/helpers/getSplitStyles.d.ts +27 -0
  343. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  344. package/types/helpers/getStylesAtomic.d.ts +27 -0
  345. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  346. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  347. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  348. package/types/helpers/insertStyleRule.d.ts +7 -0
  349. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  350. package/types/helpers/isObj.d.ts +2 -0
  351. package/types/helpers/isObj.d.ts.map +1 -0
  352. package/types/helpers/isTamaguiElement.d.ts +3 -0
  353. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  354. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  355. package/types/helpers/matchMedia.d.ts.map +1 -0
  356. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  357. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  358. package/types/helpers/themeable.d.ts +10 -0
  359. package/types/helpers/themeable.d.ts.map +1 -0
  360. package/types/helpers/validate.d.ts +4 -0
  361. package/types/helpers/validate.d.ts.map +1 -0
  362. package/types/helpers/withStaticProperties.d.ts +2 -0
  363. package/types/helpers/withStaticProperties.d.ts.map +1 -0
  364. package/types/helpers/wrapThemeManagerContext.d.ts +3 -0
  365. package/types/helpers/wrapThemeManagerContext.d.ts.map +1 -0
  366. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  367. package/types/hooks/useConstant.d.ts.map +1 -0
  368. package/types/hooks/useFeatures.d.ts +16 -0
  369. package/types/hooks/useFeatures.d.ts.map +1 -0
  370. package/types/hooks/useIsMounted.d.ts +3 -0
  371. package/types/hooks/useIsMounted.d.ts.map +1 -0
  372. package/types/hooks/useIsTouchDevice.d.ts +2 -0
  373. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  374. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +0 -0
  375. package/types/hooks/useMedia.d.ts.map +1 -0
  376. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  377. package/types/hooks/usePressable.d.ts.map +1 -0
  378. package/types/hooks/useTheme.d.ts +36 -0
  379. package/types/hooks/useTheme.d.ts.map +1 -0
  380. package/types/hooks/useUnmountEffect.d.ts +2 -0
  381. package/types/hooks/useUnmountEffect.d.ts.map +1 -0
  382. package/{dist/packages/core/src → types}/index.d.ts +16 -3
  383. package/types/index.d.ts.map +1 -0
  384. package/types/spacedChildren.d.ts +9 -0
  385. package/types/spacedChildren.d.ts.map +1 -0
  386. package/{dist/packages/core/src → types}/static.d.ts +4 -2
  387. package/types/static.d.ts.map +1 -0
  388. package/types/styled.d.ts +11 -0
  389. package/types/styled.d.ts.map +1 -0
  390. package/types/types-rnw.d.ts +79 -0
  391. package/types/types-rnw.d.ts.map +1 -0
  392. package/types/types.d.ts +365 -0
  393. package/types/types.d.ts.map +1 -0
  394. package/types/views/Stack.d.ts +4 -0
  395. package/types/views/Stack.d.ts.map +1 -0
  396. package/types/views/Text.d.ts +4 -0
  397. package/types/views/Text.d.ts.map +1 -0
  398. package/types/views/TextAncestorContext.d.ts +5 -0
  399. package/types/views/TextAncestorContext.d.ts.map +1 -0
  400. package/types/views/Theme.d.ts +11 -0
  401. package/types/views/Theme.d.ts.map +1 -0
  402. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  403. package/types/views/ThemeInverse.d.ts.map +1 -0
  404. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +0 -1
  405. package/types/views/ThemeProvider.d.ts.map +1 -0
  406. package/types/views/ThemeReset.d.ts +4 -0
  407. package/types/views/ThemeReset.d.ts.map +1 -0
  408. package/dist/cjs/constants/pseudos.js +0 -25
  409. package/dist/cjs/constants/pseudos.js.map +0 -7
  410. package/dist/cjs/static/postProcessStyles.js +0 -40
  411. package/dist/cjs/static/postProcessStyles.js.map +0 -7
  412. package/dist/cjs/views/Animated.js +0 -129
  413. package/dist/cjs/views/Animated.js.map +0 -7
  414. package/dist/cjs/views/ThemeContext.js +0 -29
  415. package/dist/cjs/views/ThemeContext.js.map +0 -7
  416. package/dist/cjs/views/ThemeManagerContext.js +0 -84
  417. package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
  418. package/dist/constants/constants.js.map +0 -7
  419. package/dist/constants/platform.js.map +0 -7
  420. package/dist/constants/pseudos.js +0 -18
  421. package/dist/constants/pseudos.js.map +0 -7
  422. package/dist/constants/rnw.js.map +0 -7
  423. package/dist/constants/styleConstants.js +0 -46
  424. package/dist/constants/styleConstants.js.map +0 -7
  425. package/dist/createComponent.js +0 -463
  426. package/dist/createComponent.js.map +0 -7
  427. package/dist/createTamagui.js +0 -168
  428. package/dist/createTamagui.js.map +0 -7
  429. package/dist/createTheme.js +0 -20
  430. package/dist/createTheme.js.map +0 -7
  431. package/dist/createVariable.js +0 -25
  432. package/dist/createVariable.js.map +0 -7
  433. package/dist/helpers/addStylesUsingClassname.js.map +0 -7
  434. package/dist/helpers/createMediaStyle.js.map +0 -7
  435. package/dist/helpers/createPropMapper.js +0 -153
  436. package/dist/helpers/createPropMapper.js.map +0 -7
  437. package/dist/helpers/createTamaguiProvider.js +0 -25
  438. package/dist/helpers/createTamaguiProvider.js.map +0 -7
  439. package/dist/helpers/extendStaticConfig.js.map +0 -7
  440. package/dist/helpers/fixNativeShadow.native.js +0 -30
  441. package/dist/helpers/fixNativeShadow.native.js.map +0 -7
  442. package/dist/helpers/getSplitStyles.js +0 -150
  443. package/dist/helpers/getSplitStyles.js.map +0 -7
  444. package/dist/helpers/getStylesAtomic.js +0 -83
  445. package/dist/helpers/getStylesAtomic.js.map +0 -7
  446. package/dist/helpers/insertStyleRule.js +0 -24
  447. package/dist/helpers/insertStyleRule.js.map +0 -7
  448. package/dist/helpers/isComponent.js +0 -10
  449. package/dist/helpers/isComponent.js.map +0 -7
  450. package/dist/helpers/isTamaguiComponent.js +0 -10
  451. package/dist/helpers/isTamaguiComponent.js.map +0 -7
  452. package/dist/helpers/pseudos.js +0 -1
  453. package/dist/helpers/themeable.js.map +0 -7
  454. package/dist/helpers/validate.js +0 -60
  455. package/dist/helpers/validate.js.map +0 -7
  456. package/dist/helpers/validateConfig.js +0 -46
  457. package/dist/helpers/validateConfig.js.map +0 -7
  458. package/dist/helpers/validateTokens.js +0 -29
  459. package/dist/helpers/validateTokens.js.map +0 -7
  460. package/dist/hooks/useFeatures.js.map +0 -7
  461. package/dist/hooks/useForceUpdate.js +0 -28
  462. package/dist/hooks/useForceUpdate.js.map +0 -7
  463. package/dist/hooks/useMedia.js.map +0 -7
  464. package/dist/hooks/useTheme.js +0 -89
  465. package/dist/hooks/useTheme.js.map +0 -7
  466. package/dist/index.cjs +0 -2202
  467. package/dist/index.cjs.map +0 -7
  468. package/dist/index.js.map +0 -7
  469. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  470. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  471. package/dist/packages/core/src/constants/pseudos.d.ts +0 -15
  472. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  473. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  474. package/dist/packages/core/src/createComponent.d.ts +0 -16
  475. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  476. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  477. package/dist/packages/core/src/createTamagui.d.ts +0 -37
  478. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  479. package/dist/packages/core/src/createTheme.d.ts +0 -5
  480. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  481. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  482. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  483. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  484. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  485. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  486. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts +0 -5
  487. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  488. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts +0 -5
  489. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  490. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  491. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +0 -2
  492. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  493. package/dist/packages/core/src/helpers/getSplitStyles.d.ts +0 -15
  494. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  495. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  496. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  497. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  498. package/dist/packages/core/src/helpers/insertStyleRule.d.ts +0 -2
  499. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  500. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  501. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  502. package/dist/packages/core/src/helpers/themeable.d.ts +0 -10
  503. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  504. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  505. package/dist/packages/core/src/hooks/useFeatures.d.ts +0 -5
  506. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  507. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  508. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  509. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  510. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  511. package/dist/packages/core/src/hooks/useTheme.d.ts +0 -18
  512. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  513. package/dist/packages/core/src/index.d.ts.map +0 -1
  514. package/dist/packages/core/src/static/postProcessStyles.d.ts +0 -7
  515. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  516. package/dist/packages/core/src/static.d.ts.map +0 -1
  517. package/dist/packages/core/src/styled.d.ts +0 -16
  518. package/dist/packages/core/src/styled.d.ts.map +0 -1
  519. package/dist/packages/core/src/types.d.ts +0 -305
  520. package/dist/packages/core/src/types.d.ts.map +0 -1
  521. package/dist/packages/core/src/views/Animated.d.ts +0 -15
  522. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  523. package/dist/packages/core/src/views/Stack.d.ts +0 -3
  524. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  525. package/dist/packages/core/src/views/Text.d.ts +0 -3
  526. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  527. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  528. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  529. package/dist/packages/core/src/views/Theme.d.ts +0 -8
  530. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  531. package/dist/packages/core/src/views/ThemeContext.d.ts +0 -18
  532. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  533. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  534. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  535. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  536. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  537. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  538. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  539. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  540. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  541. package/dist/packages/helpers/src/index.d.ts +0 -5
  542. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  543. package/dist/packages/helpers/src/types.d.ts +0 -8
  544. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  545. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  546. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  547. package/dist/static/postProcessStyles.js +0 -18
  548. package/dist/static/postProcessStyles.js.map +0 -7
  549. package/dist/styled.js +0 -21
  550. package/dist/styled.js.map +0 -7
  551. package/dist/views/Animated.js +0 -79
  552. package/dist/views/Animated.js.map +0 -7
  553. package/dist/views/SafeAreaProvider.js +0 -30
  554. package/dist/views/SafeAreaProvider.js.map +0 -7
  555. package/dist/views/Stack.js.map +0 -7
  556. package/dist/views/Text.js.map +0 -7
  557. package/dist/views/TextAncestorContext.js +0 -18
  558. package/dist/views/TextAncestorContext.js.map +0 -7
  559. package/dist/views/Theme.js +0 -65
  560. package/dist/views/Theme.js.map +0 -7
  561. package/dist/views/ThemeContext.js.map +0 -7
  562. package/dist/views/ThemeManagerContext.js +0 -61
  563. package/dist/views/ThemeManagerContext.js.map +0 -7
  564. package/dist/views/ThemeProvider.js +0 -45
  565. package/dist/views/ThemeProvider.js.map +0 -7
  566. package/src/constants/constants.ts +0 -12
  567. package/src/constants/platform.ts +0 -15
  568. package/src/constants/pseudos.ts +0 -14
  569. package/src/constants/rnw.tsx +0 -20
  570. package/src/createComponent.tsx +0 -612
  571. package/src/createFont.ts +0 -31
  572. package/src/createShorthands.ts +0 -5
  573. package/src/createTamagui.ts +0 -217
  574. package/src/createTheme.ts +0 -19
  575. package/src/createTokens.ts +0 -88
  576. package/src/createVariable.ts +0 -26
  577. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  578. package/src/helpers/createMediaStyle.ts +0 -46
  579. package/src/helpers/createPropMapper.ts +0 -184
  580. package/src/helpers/createTamaguiProvider.tsx +0 -22
  581. package/src/helpers/extendStaticConfig.ts +0 -68
  582. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  583. package/src/helpers/fixNativeShadow.tsx +0 -2
  584. package/src/helpers/getSplitStyles.tsx +0 -200
  585. package/src/helpers/getStylesAtomic.native.ts +0 -3
  586. package/src/helpers/getStylesAtomic.ts +0 -103
  587. package/src/helpers/insertStyleRule.tsx +0 -18
  588. package/src/helpers/isObj.ts +0 -1
  589. package/src/helpers/isTamaguiElement.tsx +0 -5
  590. package/src/helpers/matchMedia.native.ts +0 -6
  591. package/src/helpers/matchMedia.ts +0 -17
  592. package/src/helpers/themeable.tsx +0 -42
  593. package/src/helpers/validate.ts +0 -59
  594. package/src/hooks/useConstant.tsx +0 -10
  595. package/src/hooks/useFeatures.tsx +0 -79
  596. package/src/hooks/useMedia.tsx +0 -194
  597. package/src/hooks/usePressable.tsx +0 -9
  598. package/src/hooks/useTheme.tsx +0 -106
  599. package/src/index.ts +0 -32
  600. package/src/static/postProcessStyles.tsx +0 -20
  601. package/src/static.ts +0 -22
  602. package/src/styled.ts +0 -82
  603. package/src/types.tsx +0 -562
  604. package/src/views/Animated.tsx +0 -121
  605. package/src/views/Stack.tsx +0 -21
  606. package/src/views/Text.tsx +0 -66
  607. package/src/views/TextAncestorContext.tsx +0 -12
  608. package/src/views/Theme.tsx +0 -90
  609. package/src/views/ThemeContext.tsx +0 -5
  610. package/src/views/ThemeInverse.tsx +0 -22
  611. package/src/views/ThemeManagerContext.tsx +0 -62
  612. package/src/views/ThemeProvider.tsx +0 -52
  613. package/types.d.ts +0 -559
@@ -1,9 +1,7 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
7
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -18,25 +16,22 @@ var __spreadValues = (a, b) => {
18
16
  }
19
17
  return a;
20
18
  };
21
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
22
19
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
23
20
  var __export = (target, all) => {
24
- __markAsModule(target);
25
21
  for (var name in all)
26
22
  __defProp(target, name, { get: all[name], enumerable: true });
27
23
  };
28
- var __reExport = (target, module2, desc) => {
29
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
30
- for (let key of __getOwnPropNames(module2))
31
- if (!__hasOwnProp.call(target, key) && key !== "default")
32
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
24
+ var __copyProps = (to, from, except, desc) => {
25
+ if (from && typeof from === "object" || typeof from === "function") {
26
+ for (let key of __getOwnPropNames(from))
27
+ if (!__hasOwnProp.call(to, key) && key !== except)
28
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
29
  }
34
- return target;
30
+ return to;
35
31
  };
36
- var __toModule = (module2) => {
37
- 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);
38
- };
39
- __export(exports, {
32
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
+ var useMedia_exports = {};
34
+ __export(useMedia_exports, {
40
35
  addMediaQueryListener: () => addMediaQueryListener,
41
36
  configureMedia: () => configureMedia,
42
37
  getMedia: () => getMedia,
@@ -46,56 +41,37 @@ __export(exports, {
46
41
  removeMediaQueryListener: () => removeMediaQueryListener,
47
42
  useMedia: () => useMedia
48
43
  });
49
- var import_use_force_update = __toModule(require("@tamagui/use-force-update"));
50
- var import_react = __toModule(require("react"));
51
- var import_platform = __toModule(require("../constants/platform"));
52
- var import_matchMedia = __toModule(require("../helpers/matchMedia"));
53
- var import_useConstant = __toModule(require("./useConstant"));
44
+ module.exports = __toCommonJS(useMedia_exports);
45
+ var import_use_force_update = require("@tamagui/use-force-update");
46
+ var import_react = require("react");
47
+ var import_platform = require("../constants/platform");
48
+ var import_matchMedia = require("../helpers/matchMedia");
49
+ var import_useConstant = require("./useConstant");
54
50
  const mediaState = {};
55
51
  const mediaQueryListeners = {};
56
52
  const addMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
57
- mediaQueryListeners[key] = mediaQueryListeners[key] || new Set();
53
+ mediaQueryListeners[key] = mediaQueryListeners[key] || /* @__PURE__ */ new Set();
58
54
  mediaQueryListeners[key].add(cb);
59
55
  }, "addMediaQueryListener");
60
56
  const removeMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
61
- mediaQueryListeners[key].delete(cb);
57
+ var _a;
58
+ (_a = mediaQueryListeners[key]) == null ? void 0 : _a.delete(cb);
62
59
  }, "removeMediaQueryListener");
63
- let conf = null;
64
- const mediaQueryConfig = new Proxy({}, {
65
- get(target, key) {
66
- if (!conf) {
67
- throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`);
68
- }
69
- return Reflect.get(conf, key);
70
- },
71
- ownKeys() {
72
- if (!conf) {
73
- throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`);
74
- }
75
- return Object.keys(conf);
76
- },
77
- getOwnPropertyDescriptor() {
78
- return {
79
- enumerable: true,
80
- configurable: true
81
- };
82
- }
83
- });
60
+ let hasConfigured = false;
61
+ const mediaQueryConfig = {};
84
62
  const getMedia = /* @__PURE__ */ __name(() => {
85
- if (!conf) {
86
- throw new Error(`not configured yet`);
87
- }
88
63
  return mediaState;
89
64
  }, "getMedia");
90
65
  const configureMedia = /* @__PURE__ */ __name(({
91
66
  queries,
92
67
  defaultActive = ["sm", "xs"]
93
68
  } = {}) => {
94
- if (conf) {
69
+ if (hasConfigured) {
95
70
  console.warn(`Already configured mediaQueries once (you may have called getMedia() before configureMedia())`);
96
71
  }
97
72
  if (queries) {
98
- conf = queries;
73
+ Object.assign(mediaQueryConfig, queries);
74
+ hasConfigured = true;
99
75
  }
100
76
  for (const key in queries) {
101
77
  const str = mediaObjectToString(queries[key]);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useMedia.tsx"],
4
- "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport { useRef } from 'react'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { matchMedia } from '../helpers/matchMedia'\nimport {\n ConfigureMediaQueryOptions,\n MediaQueries,\n MediaQueryObject,\n MediaQueryState,\n} from '../types'\nimport { useConstant } from './useConstant'\n\nexport const mediaState: { [key in keyof MediaQueryState]: boolean } = {} as any\nconst mediaQueryListeners: { [key: string]: Set<Function> } = {}\n\nexport const addMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key] = mediaQueryListeners[key] || new Set()\n mediaQueryListeners[key].add(cb)\n}\n\nexport const removeMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key].delete(cb)\n}\n\nlet conf: MediaQueries | null = null\n\nexport const mediaQueryConfig = new Proxy<MediaQueries>({} as any, {\n get(target, key) {\n if (!conf) {\n throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`)\n }\n return Reflect.get(conf, key)\n },\n ownKeys() {\n if (!conf) {\n throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`)\n }\n return Object.keys(conf)\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n})\n\nexport const getMedia = () => {\n if (!conf) {\n throw new Error(`not configured yet`)\n }\n return mediaState\n}\n\nexport const configureMedia = ({\n queries,\n defaultActive = ['sm', 'xs'],\n}: ConfigureMediaQueryOptions = {}) => {\n if (conf) {\n console.warn(\n `Already configured mediaQueries once (you may have called getMedia() before configureMedia())`\n )\n }\n\n if (queries) {\n conf = queries\n }\n\n // setup\n for (const key in queries) {\n const str = mediaObjectToString(queries[key])\n try {\n const getMatch = () => matchMedia(str)\n const match = getMatch()\n if (!match || typeof match.addListener !== 'function') {\n // caught below\n throw new Error('\u26A0\uFE0F No match (seeing this in RN sometimes)')\n }\n mediaState[key] = !!match.matches\n match.addListener(() => {\n const next = !!getMatch().matches\n if (next === mediaState[key]) return\n mediaState[key] = next\n const listeners = mediaQueryListeners[key]\n if (listeners?.size) {\n for (const cb of [...listeners]) {\n cb()\n }\n }\n })\n } catch (err: any) {\n console.error('Error running media query', str, err.message, err.stack)\n const isDefaultActive = defaultActive?.includes(key as any) ?? true\n mediaState[key] = isDefaultActive\n }\n }\n}\n\ntype UseMediaState = {\n selections: { [key: string]: boolean }\n nextSelections: { [key: string]: boolean }\n isRendering: boolean\n isUnmounted: boolean\n}\n\nexport const useMedia = () => {\n const forceUpdate = useForceUpdate()\n const state = useRef() as React.MutableRefObject<UseMediaState>\n if (!state.current) {\n state.current = {\n selections: {},\n nextSelections: {},\n isUnmounted: false,\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n // delete old\n for (const key in st.selections) {\n if (!(key in st.nextSelections)) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n // add new\n for (const key in st.nextSelections) {\n if (!(key in st.selections)) {\n addMediaQueryListener(key, forceUpdate)\n }\n }\n })\n\n // unmount\n useIsomorphicLayoutEffect(() => {\n return () => {\n const st = state.current\n st.isUnmounted = true\n const allKeys = {\n ...st.selections,\n ...st.nextSelections,\n }\n for (const key in allKeys) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n }, [])\n\n return useConstant(() => {\n const st = state.current\n return new Proxy(mediaState, {\n get(target, key: string) {\n if (!(key in mediaState)) {\n return Reflect.get(target, key)\n }\n if (!st.isUnmounted) {\n if (st.isRendering) {\n st.nextSelections[key] = true\n }\n }\n if (key in mediaState) {\n return mediaState[key]\n }\n return Reflect.get(mediaState, key)\n },\n })\n })\n}\n\nfunction camelToHyphen(str: string) {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()\n}\n\nexport function mediaObjectToString(query: string | MediaQueryObject) {\n if (typeof query === 'string') {\n return query\n }\n return Object.entries(query)\n .map(([feature, value]) => {\n feature = camelToHyphen(feature)\n if (typeof value === 'string') {\n return `(${feature}: ${value})`\n }\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = `${value}px`\n }\n return `(${feature}: ${value})`\n })\n .join(' and ')\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport { useRef } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { matchMedia } from '../helpers/matchMedia'\nimport {\n ConfigureMediaQueryOptions,\n MediaQueries,\n MediaQueryObject,\n MediaQueryState,\n} from '../types'\nimport { useConstant } from './useConstant'\n\nexport const mediaState: { [key in keyof MediaQueryState]: boolean } = {} as any\nconst mediaQueryListeners: { [key: string]: Set<Function> } = {}\n\nexport const addMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key] = mediaQueryListeners[key] || new Set()\n mediaQueryListeners[key].add(cb)\n}\n\nexport const removeMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key]?.delete(cb)\n}\n\nlet hasConfigured = false\nexport const mediaQueryConfig: MediaQueries = {}\n\nexport const getMedia = () => {\n return mediaState\n}\n\nexport const configureMedia = ({\n queries,\n defaultActive = ['sm', 'xs'],\n}: ConfigureMediaQueryOptions = {}) => {\n if (hasConfigured) {\n console.warn(\n `Already configured mediaQueries once (you may have called getMedia() before configureMedia())`\n )\n }\n\n if (queries) {\n Object.assign(mediaQueryConfig, queries)\n hasConfigured = true\n }\n\n // setup\n for (const key in queries) {\n const str = mediaObjectToString(queries[key])\n try {\n const getMatch = () => matchMedia(str)\n const match = getMatch()\n if (!match || typeof match.addListener !== 'function') {\n // caught below\n throw new Error('\u26A0\uFE0F No match (seeing this in RN sometimes)')\n }\n mediaState[key] = !!match.matches\n match.addListener(() => {\n const next = !!getMatch().matches\n if (next === mediaState[key]) return\n mediaState[key] = next\n const listeners = mediaQueryListeners[key]\n if (listeners?.size) {\n for (const cb of [...listeners]) {\n cb()\n }\n }\n })\n } catch (err: any) {\n console.error('Error running media query', str, err.message, err.stack)\n const isDefaultActive = defaultActive?.includes(key as any) ?? true\n mediaState[key] = isDefaultActive\n }\n }\n}\n\ntype UseMediaState = {\n selections: { [key: string]: boolean }\n nextSelections: { [key: string]: boolean }\n isRendering: boolean\n isUnmounted: boolean\n}\n\nexport const useMedia = () => {\n const forceUpdate = useForceUpdate()\n const state = useRef() as React.MutableRefObject<UseMediaState>\n if (!state.current) {\n state.current = {\n selections: {},\n nextSelections: {},\n isUnmounted: false,\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n // delete old\n for (const key in st.selections) {\n if (!(key in st.nextSelections)) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n // add new\n for (const key in st.nextSelections) {\n if (!(key in st.selections)) {\n addMediaQueryListener(key, forceUpdate)\n }\n }\n })\n\n // unmount\n useIsomorphicLayoutEffect(() => {\n return () => {\n const st = state.current\n st.isUnmounted = true\n const allKeys = {\n ...st.selections,\n ...st.nextSelections,\n }\n for (const key in allKeys) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n }, [])\n\n return useConstant(() => {\n const st = state.current\n return new Proxy(mediaState, {\n get(target, key: string) {\n if (!(key in mediaState)) {\n return Reflect.get(target, key)\n }\n if (!st.isUnmounted) {\n if (st.isRendering) {\n st.nextSelections[key] = true\n }\n }\n if (key in mediaState) {\n return mediaState[key]\n }\n return Reflect.get(mediaState, key)\n },\n })\n })\n}\n\nfunction camelToHyphen(str: string) {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()\n}\n\nexport function mediaObjectToString(query: string | MediaQueryObject) {\n if (typeof query === 'string') {\n return query\n }\n return Object.entries(query)\n .map(([feature, value]) => {\n feature = camelToHyphen(feature)\n if (typeof value === 'string') {\n return `(${feature}: ${value})`\n }\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = `${value}px`\n }\n return `(${feature}: ${value})`\n })\n .join(' and ')\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,9 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
10
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
11
8
  var __objRest = (source, exclude) => {
12
9
  var target = {};
@@ -21,25 +18,24 @@ var __objRest = (source, exclude) => {
21
18
  return target;
22
19
  };
23
20
  var __export = (target, all) => {
24
- __markAsModule(target);
25
21
  for (var name in all)
26
22
  __defProp(target, name, { get: all[name], enumerable: true });
27
23
  };
28
- var __reExport = (target, module2, desc) => {
29
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
30
- for (let key of __getOwnPropNames(module2))
31
- if (!__hasOwnProp.call(target, key) && key !== "default")
32
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
24
+ var __copyProps = (to, from, except, desc) => {
25
+ if (from && typeof from === "object" || typeof from === "function") {
26
+ for (let key of __getOwnPropNames(from))
27
+ if (!__hasOwnProp.call(to, key) && key !== except)
28
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
29
  }
34
- return target;
35
- };
36
- var __toModule = (module2) => {
37
- 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);
30
+ return to;
38
31
  };
39
- __export(exports, {
32
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
+ var usePressable_exports = {};
34
+ __export(usePressable_exports, {
40
35
  usePressable: () => usePressable
41
36
  });
42
- var import_react_native = __toModule(require("react-native"));
37
+ module.exports = __toCommonJS(usePressable_exports);
38
+ var import_react_native = require("react-native");
43
39
  var _a, _b;
44
40
  const getPressable = (_b = (_a = import_react_native.Pressable) == null ? void 0 : _a["type"]) == null ? void 0 : _b["render"];
45
41
  const usePressable = /* @__PURE__ */ __name((props) => {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/usePressable.tsx"],
4
4
  "sourcesContent": ["import { Pressable, PressableProps } from 'react-native'\n\nconst getPressable = Pressable?.['type']?.['render']\n\nexport const usePressable = (props: PressableProps) => {\n const out = getPressable(props)\n const { children, style, ...pressableProps } = out.props\n return [pressableProps, style] as const\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,0BAA0C;AAA1C;AAEA,MAAM,eAAe,iEAAY,YAAZ,mBAAsB;AAEpC,MAAM,eAAe,wBAAC,UAA0B;AACrD,QAAM,MAAM,aAAa;AACzB,QAA+C,UAAI,OAA3C,YAAU,UAA6B,KAAnB,2BAAmB,KAAnB,CAApB,YAAU;AAClB,SAAO,CAAC,gBAAgB;AAAA,GAHE;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA0C;AAA1C;AAEA,MAAM,eAAe,iEAAY,YAAZ,mBAAsB;AAEpC,MAAM,eAAe,wBAAC,UAA0B;AACrD,QAAM,MAAM,aAAa,KAAK;AAC9B,QAA+C,UAAI,OAA3C,YAAU,UAA6B,KAAnB,2BAAmB,KAAnB,CAApB,YAAU;AAClB,SAAO,CAAC,gBAAgB,KAAK;AAC/B,GAJ4B;",
6
6
  "names": []
7
7
  }
@@ -1,71 +1,67 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8
22
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
23
  var __export = (target, all) => {
10
- __markAsModule(target);
11
24
  for (var name in all)
12
25
  __defProp(target, name, { get: all[name], enumerable: true });
13
26
  };
14
- var __reExport = (target, module2, desc) => {
15
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
16
- for (let key of __getOwnPropNames(module2))
17
- if (!__hasOwnProp.call(target, key) && key !== "default")
18
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
27
+ var __copyProps = (to, from, except, desc) => {
28
+ if (from && typeof from === "object" || typeof from === "function") {
29
+ for (let key of __getOwnPropNames(from))
30
+ if (!__hasOwnProp.call(to, key) && key !== except)
31
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
32
  }
20
- return target;
21
- };
22
- var __toModule = (module2) => {
23
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
33
+ return to;
24
34
  };
25
- __export(exports, {
35
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
+ var useTheme_exports = {};
37
+ __export(useTheme_exports, {
38
+ getThemeManagerIfChanged: () => getThemeManagerIfChanged,
39
+ useChangeThemeEffect: () => useChangeThemeEffect,
26
40
  useDefaultThemeName: () => useDefaultThemeName,
27
41
  useTheme: () => useTheme,
28
42
  useThemeName: () => useThemeName
29
43
  });
30
- var import_use_force_update = __toModule(require("@tamagui/use-force-update"));
31
- var import_react = __toModule(require("react"));
32
- var import_platform = __toModule(require("../constants/platform"));
33
- var import_createVariable = __toModule(require("../createVariable"));
34
- var import_ThemeContext = __toModule(require("../views/ThemeContext"));
35
- var import_ThemeManagerContext = __toModule(require("../views/ThemeManagerContext"));
36
- var import_ThemeProvider = __toModule(require("../views/ThemeProvider"));
37
- const areEqualSets = /* @__PURE__ */ __name((a, b) => {
38
- if (a.size !== b.size)
39
- return false;
40
- for (const val in a) {
41
- if (!b.has(val)) {
42
- return false;
44
+ module.exports = __toCommonJS(useTheme_exports);
45
+ var import_use_force_update = require("@tamagui/use-force-update");
46
+ var import_react = require("react");
47
+ var import_conf = require("../conf");
48
+ var import_platform = require("../constants/platform");
49
+ var import_areEqualSets = require("../helpers/areEqualSets");
50
+ var import_ThemeContext = require("../ThemeContext");
51
+ var import_ThemeManager = require("../ThemeManager");
52
+ var import_useConstant = require("./useConstant");
53
+ const useTheme = /* @__PURE__ */ __name((themeName, componentName, props, forceUpdate) => {
54
+ const { name, theme, themes, themeManager, className, didChangeTheme } = useChangeThemeEffect(themeName, componentName, props, forceUpdate);
55
+ if (process.env.NODE_ENV === "development") {
56
+ if ((props == null ? void 0 : props["debug"]) === "verbose") {
57
+ console.log(" \xBB useTheme", { themeName, componentName, name, className });
43
58
  }
44
59
  }
45
- return true;
46
- }, "areEqualSets");
47
- const useThemeName = /* @__PURE__ */ __name((opts) => {
48
- const parent = (0, import_react.useContext)(import_ThemeManagerContext.ThemeManagerContext);
49
- const [name, setName] = (0, import_react.useState)(parent.name);
50
- (0, import_platform.useIsomorphicLayoutEffect)(() => {
51
- return parent.onChangeTheme((next, manager) => {
52
- setName((opts == null ? void 0 : opts.parent) ? manager.parentName : next);
53
- });
54
- }, [parent]);
55
- return name || "light";
56
- }, "useThemeName");
57
- const useDefaultThemeName = /* @__PURE__ */ __name(() => {
58
- return (0, import_react.useContext)(import_ThemeContext.ThemeContext)[import_ThemeProvider.GET_DEFAULT_THEME];
59
- }, "useDefaultThemeName");
60
- const useTheme = /* @__PURE__ */ __name(() => {
61
- const forceUpdate = (0, import_use_force_update.useForceUpdate)();
62
- const manager = (0, import_react.useContext)(import_ThemeManagerContext.ThemeManagerContext);
63
- const themes = (0, import_react.useContext)(import_ThemeContext.ThemeContext);
64
60
  const state = (0, import_react.useRef)();
65
61
  if (!state.current) {
66
62
  state.current = {
67
63
  uuid: {},
68
- keys: new Set(),
64
+ keys: /* @__PURE__ */ new Set(),
69
65
  isRendering: true
70
66
  };
71
67
  }
@@ -73,39 +69,138 @@ const useTheme = /* @__PURE__ */ __name(() => {
73
69
  (0, import_platform.useIsomorphicLayoutEffect)(() => {
74
70
  const st = state.current;
75
71
  st.isRendering = false;
76
- const cur = manager.keys.get(st.uuid);
77
- if (!cur || !areEqualSets(st.keys, cur)) {
78
- manager.track(st.uuid, st.keys);
72
+ const cur = themeManager == null ? void 0 : themeManager.keys.get(st.uuid);
73
+ if (!cur || !(0, import_areEqualSets.areEqualSets)(st.keys, cur)) {
74
+ themeManager == null ? void 0 : themeManager.track(st.uuid, st.keys);
79
75
  }
80
76
  });
81
- (0, import_react.useEffect)(() => {
82
- return manager.onUpdate(state.current.uuid, forceUpdate);
83
- }, []);
84
- const theme = (manager.name ? themes[manager.name] : themes.light) ?? themes.light;
85
77
  return (0, import_react.useMemo)(() => {
78
+ if (!theme) {
79
+ if (process.env.NODE_ENV === "development") {
80
+ console.warn("No theme", { themeName, theme, componentName, className });
81
+ }
82
+ return themes[(0, import_conf.getConfig)().defaultTheme || "light"];
83
+ }
86
84
  return new Proxy(theme, {
85
+ has(_, key) {
86
+ if (typeof key === "string") {
87
+ if (key[0] === "$") {
88
+ key = key.slice(1);
89
+ }
90
+ }
91
+ return Reflect.has(theme, key);
92
+ },
87
93
  get(_, key) {
88
- const name = manager.name;
89
- if (!name) {
94
+ if (!name || key === "__proto__") {
90
95
  return Reflect.get(_, key);
91
96
  }
92
- let activeTheme = themes[name];
93
- if (!activeTheme) {
94
- console.error("No theme by name", name, "only:", themes, "keeping current theme");
95
- activeTheme = theme;
97
+ if (key === GetThemeManager) {
98
+ if (!didChangeTheme) {
99
+ return null;
100
+ }
101
+ return themeManager;
96
102
  }
97
- const val = activeTheme[key];
98
103
  if (process.env.NODE_ENV === "development") {
99
- if (typeof val === "undefined") {
100
- throw new Error(`No theme value "${String(key)}" in: ${Object.keys(activeTheme)}`);
104
+ if (key === "__state") {
105
+ return state.current;
101
106
  }
102
107
  }
103
- if (state.current.isRendering) {
104
- state.current.keys.add(key);
108
+ if (key === "name") {
109
+ return name;
110
+ }
111
+ if (key === "className") {
112
+ return className;
113
+ }
114
+ if (!themeManager) {
115
+ console.error("No themeManager");
116
+ return;
105
117
  }
106
- return new import_createVariable.Variable({ val: val.val, name: key });
118
+ if (process.env.NODE_ENV === "development") {
119
+ if ((props == null ? void 0 : props["debug"]) === "verbose") {
120
+ console.log(" \xBB accessing theme val", key, __spreadValues({}, state.current));
121
+ }
122
+ }
123
+ if (typeof key === "string") {
124
+ if (key[0] === "$") {
125
+ key = key.slice(1);
126
+ }
127
+ const val = themeManager.getValue(key);
128
+ if (val) {
129
+ if (state.current.isRendering) {
130
+ state.current.keys.add(key);
131
+ }
132
+ return val;
133
+ }
134
+ if (process.env.NODE_ENV === "development") {
135
+ console.warn(`No theme value "${String(key)}" in ${name}`);
136
+ return null;
137
+ }
138
+ }
139
+ return Reflect.get(_, key);
107
140
  }
108
141
  });
109
- }, []);
142
+ }, [name, theme, className, didChangeTheme]);
110
143
  }, "useTheme");
144
+ const GetThemeManager = Symbol("GetThemeManager");
145
+ const getThemeManagerIfChanged = /* @__PURE__ */ __name((theme) => {
146
+ return theme == null ? void 0 : theme[GetThemeManager];
147
+ }, "getThemeManagerIfChanged");
148
+ const useThemeName = /* @__PURE__ */ __name((opts) => {
149
+ const parent = (0, import_react.useContext)(import_ThemeManager.ThemeManagerContext);
150
+ const [name, setName] = (0, import_react.useState)((parent == null ? void 0 : parent.name) || "");
151
+ (0, import_platform.useIsomorphicLayoutEffect)(() => {
152
+ if (!parent)
153
+ return;
154
+ return parent.onChangeTheme((next, manager) => {
155
+ const name2 = (opts == null ? void 0 : opts.parent) ? manager.parentName || next : next;
156
+ if (!name2)
157
+ return;
158
+ setName(name2);
159
+ });
160
+ }, [parent]);
161
+ return name;
162
+ }, "useThemeName");
163
+ const useDefaultThemeName = /* @__PURE__ */ __name(() => {
164
+ var _a;
165
+ return (_a = (0, import_react.useContext)(import_ThemeContext.ThemeContext)) == null ? void 0 : _a.defaultTheme;
166
+ }, "useDefaultThemeName");
167
+ const useChangeThemeEffect = /* @__PURE__ */ __name((name, componentName, props, forceUpdateProp) => {
168
+ const debug = props && props["debug"];
169
+ const parentManager = (0, import_react.useContext)(import_ThemeManager.ThemeManagerContext) || import_ThemeManager.emptyManager;
170
+ const { themes } = (0, import_react.useContext)(import_ThemeContext.ThemeContext);
171
+ const next = parentManager.getNextTheme({ name, componentName, themes }, props);
172
+ const forceUpdate = forceUpdateProp || (0, import_use_force_update.useForceUpdate)();
173
+ const themeManager = (0, import_useConstant.useConstant)(() => {
174
+ if (!next) {
175
+ return null;
176
+ }
177
+ return new import_ThemeManager.ThemeManager(next.name, next.theme, parentManager);
178
+ });
179
+ if (typeof document !== "undefined") {
180
+ (0, import_react.useLayoutEffect)(() => {
181
+ if (!themeManager)
182
+ return;
183
+ if (next == null ? void 0 : next.name) {
184
+ themeManager.update(next);
185
+ }
186
+ return parentManager.onChangeTheme(() => {
187
+ const next2 = parentManager.getNextTheme({ name, componentName, themes }, debug);
188
+ if (!next2)
189
+ return;
190
+ if (themeManager.update(next2)) {
191
+ forceUpdate();
192
+ }
193
+ });
194
+ }, [themes, name, componentName, debug, next == null ? void 0 : next.name]);
195
+ }
196
+ const didChangeTheme = next && parentManager && next.name !== parentManager.fullName;
197
+ return __spreadProps(__spreadValues(__spreadValues({}, parentManager && {
198
+ name: parentManager.name,
199
+ theme: parentManager.theme
200
+ }), next), {
201
+ didChangeTheme,
202
+ themes,
203
+ themeManager
204
+ });
205
+ }, "useChangeThemeEffect");
111
206
  //# sourceMappingURL=useTheme.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useTheme.tsx"],
4
- "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { Variable } from '../createVariable'\nimport { ThemeName } from '../types'\nimport { ThemeContext } from '../views/ThemeContext'\nimport { ThemeManagerContext } from '../views/ThemeManagerContext'\nimport { GET_DEFAULT_THEME } from '../views/ThemeProvider'\n\ntype UseThemeState = {\n uuid: Object\n keys: Set<string>\n isRendering: boolean\n}\n\nconst areEqualSets = (a: Set<string>, b: Set<string>) => {\n if (a.size !== b.size) return false\n for (const val in a) {\n if (!b.has(val)) {\n return false\n }\n }\n return true\n}\n\nexport const useThemeName = (opts?: { parent?: true }) => {\n const parent = useContext(ThemeManagerContext)\n const [name, setName] = useState(parent.name)\n\n useIsomorphicLayoutEffect(() => {\n return parent.onChangeTheme((next, manager) => {\n setName(opts?.parent ? manager.parentName : next)\n })\n }, [parent])\n\n return name || 'light'\n}\n\nexport const useDefaultThemeName = () => {\n return useContext(ThemeContext)[GET_DEFAULT_THEME] as any as ThemeName\n}\n\nexport const useTheme = () => {\n const forceUpdate = useForceUpdate()\n const manager = useContext(ThemeManagerContext)\n const themes = useContext(ThemeContext)\n const state = useRef() as React.MutableRefObject<UseThemeState>\n if (!state.current) {\n state.current = {\n uuid: {},\n keys: new Set(),\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n const cur = manager.keys.get(st.uuid)\n if (!cur || !areEqualSets(st.keys, cur)) {\n manager.track(st.uuid, st.keys)\n }\n })\n\n useEffect(() => {\n return manager.onUpdate(state.current.uuid, forceUpdate)\n }, [])\n\n const theme = (manager.name ? themes[manager.name] : themes.light) ?? themes.light\n\n return useMemo(\n () => {\n return new Proxy(theme, {\n get(_, key: string) {\n const name = manager.name\n if (!name) {\n return Reflect.get(_, key)\n }\n let activeTheme = themes[name]\n if (!activeTheme) {\n console.error('No theme by name', name, 'only:', themes, 'keeping current theme')\n activeTheme = theme\n }\n const val = activeTheme[key]\n if (process.env.NODE_ENV === 'development') {\n if (typeof val === 'undefined') {\n throw new Error(`No theme value \"${String(key)}\" in: ${Object.keys(activeTheme)}`)\n }\n }\n if (state.current.isRendering) {\n state.current.keys.add(key)\n }\n // TODO costly, can make faster (we need name mapping to og name, but val pointing to new val)\n // console.log('returning new variable', val, key)\n return new Variable({ val: val.val, name: key })\n },\n })\n },\n [\n /* if concurrent mode wanted put manager.name here */\n ]\n )\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAA+B;AAC/B,mBAAwE;AAExE,sBAA0C;AAC1C,4BAAyB;AAEzB,0BAA6B;AAC7B,iCAAoC;AACpC,2BAAkC;AAQlC,MAAM,eAAe,wBAAC,GAAgB,MAAmB;AACvD,MAAI,EAAE,SAAS,EAAE;AAAM,WAAO;AAC9B,aAAW,OAAO,GAAG;AACnB,QAAI,CAAC,EAAE,IAAI,MAAM;AACf,aAAO;AAAA;AAAA;AAGX,SAAO;AAAA,GAPY;AAUd,MAAM,eAAe,wBAAC,SAA6B;AACxD,QAAM,SAAS,6BAAW;AAC1B,QAAM,CAAC,MAAM,WAAW,2BAAS,OAAO;AAExC,iDAA0B,MAAM;AAC9B,WAAO,OAAO,cAAc,CAAC,MAAM,YAAY;AAC7C,cAAQ,8BAAM,UAAS,QAAQ,aAAa;AAAA;AAAA,KAE7C,CAAC;AAEJ,SAAO,QAAQ;AAAA,GAVW;AAarB,MAAM,sBAAsB,6BAAM;AACvC,SAAO,6BAAW,kCAAc;AAAA,GADC;AAI5B,MAAM,WAAW,6BAAM;AAC5B,QAAM,cAAc;AACpB,QAAM,UAAU,6BAAW;AAC3B,QAAM,SAAS,6BAAW;AAC1B,QAAM,QAAQ;AACd,MAAI,CAAC,MAAM,SAAS;AAClB,UAAM,UAAU;AAAA,MACd,MAAM;AAAA,MACN,MAAM,IAAI;AAAA,MACV,aAAa;AAAA;AAAA;AAGjB,QAAM,QAAQ,cAAc;AAG5B,iDAA0B,MAAM;AAC9B,UAAM,KAAK,MAAM;AACjB,OAAG,cAAc;AACjB,UAAM,MAAM,QAAQ,KAAK,IAAI,GAAG;AAChC,QAAI,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,MAAM;AACvC,cAAQ,MAAM,GAAG,MAAM,GAAG;AAAA;AAAA;AAI9B,8BAAU,MAAM;AACd,WAAO,QAAQ,SAAS,MAAM,QAAQ,MAAM;AAAA,KAC3C;AAEH,QAAM,QAAS,SAAQ,OAAO,OAAO,QAAQ,QAAQ,OAAO,UAAU,OAAO;AAE7E,SAAO,0BACL,MAAM;AACJ,WAAO,IAAI,MAAM,OAAO;AAAA,MACtB,IAAI,GAAG,KAAa;AAClB,cAAM,OAAO,QAAQ;AACrB,YAAI,CAAC,MAAM;AACT,iBAAO,QAAQ,IAAI,GAAG;AAAA;AAExB,YAAI,cAAc,OAAO;AACzB,YAAI,CAAC,aAAa;AAChB,kBAAQ,MAAM,oBAAoB,MAAM,SAAS,QAAQ;AACzD,wBAAc;AAAA;AAEhB,cAAM,MAAM,YAAY;AACxB,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,cAAI,OAAO,QAAQ,aAAa;AAC9B,kBAAM,IAAI,MAAM,mBAAmB,OAAO,aAAa,OAAO,KAAK;AAAA;AAAA;AAGvE,YAAI,MAAM,QAAQ,aAAa;AAC7B,gBAAM,QAAQ,KAAK,IAAI;AAAA;AAIzB,eAAO,IAAI,+BAAS,EAAE,KAAK,IAAI,KAAK,MAAM;AAAA;AAAA;AAAA,KAIhD;AAAA,GA1DoB;",
4
+ "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport React, { useContext, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport { getConfig } from '../conf'\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { areEqualSets } from '../helpers/areEqualSets'\nimport { ThemeContext } from '../ThemeContext'\nimport { ThemeManager, ThemeManagerContext, emptyManager } from '../ThemeManager'\nimport { ThemeObject } from '../types'\nimport { useConstant } from './useConstant'\n\ntype UseThemeState = {\n uuid: Object\n keys: Set<string>\n isRendering: boolean\n}\n\nexport const useTheme = (\n themeName?: string | null,\n componentName?: string,\n props?: any,\n forceUpdate?: any\n): ThemeObject => {\n const { name, theme, themes, themeManager, className, didChangeTheme } = useChangeThemeEffect(\n themeName,\n componentName,\n props,\n forceUpdate\n )\n\n if (process.env.NODE_ENV === 'development') {\n if (props?.['debug'] === 'verbose') {\n console.log(' \u00BB useTheme', { themeName, componentName, name, className })\n }\n }\n\n const state = useRef() as React.MutableRefObject<UseThemeState>\n if (!state.current) {\n state.current = {\n uuid: {},\n keys: new Set(),\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n const cur = themeManager?.keys.get(st.uuid)\n if (!cur || !areEqualSets(st.keys, cur)) {\n themeManager?.track(st.uuid, st.keys)\n }\n })\n\n return useMemo(() => {\n if (!theme) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('No theme', { themeName, theme, componentName, className })\n }\n return themes[getConfig().defaultTheme || 'light' || Object.keys(themes)[0]]\n }\n return new Proxy(theme, {\n has(_, key) {\n if (typeof key === 'string') {\n if (key[0] === '$') {\n key = key.slice(1)\n }\n }\n return Reflect.has(theme, key)\n },\n get(_, key) {\n if (!name || key === '__proto__') {\n return Reflect.get(_, key)\n }\n // TODO make this pattern better\n if (key === GetThemeManager) {\n if (!didChangeTheme) {\n return null\n }\n // TODO\n // console.log('DID CHANGE THEME')\n return themeManager\n }\n if (process.env.NODE_ENV === 'development') {\n if (key === '__state') {\n return state.current\n }\n }\n if (key === 'name') {\n return name\n }\n if (key === 'className') {\n return className\n }\n if (!themeManager) {\n console.error('No themeManager')\n return\n }\n if (process.env.NODE_ENV === 'development') {\n if (props?.['debug'] === 'verbose') {\n console.log(' \u00BB accessing theme val', key, { ...state.current })\n }\n }\n if (typeof key === 'string') {\n // auto convert variables to plain\n if (key[0] === '$') {\n key = key.slice(1)\n }\n const val = themeManager.getValue(key)\n if (val) {\n if (state.current.isRendering) {\n state.current.keys.add(key)\n }\n return val\n }\n if (process.env.NODE_ENV === 'development') {\n console.warn(`No theme value \"${String(key)}\" in ${name}`)\n return null\n }\n }\n return Reflect.get(_, key)\n },\n })\n }, [name, theme, className, didChangeTheme])\n}\n\nconst GetThemeManager = Symbol('GetThemeManager')\n\nexport const getThemeManagerIfChanged = (theme: any) => {\n return theme?.[GetThemeManager]\n}\n\nexport const useThemeName = (opts?: { parent?: true }) => {\n const parent = useContext(ThemeManagerContext)\n const [name, setName] = useState(parent?.name || '')\n\n useIsomorphicLayoutEffect(() => {\n if (!parent) return\n return parent.onChangeTheme((next, manager) => {\n const name = opts?.parent ? manager.parentName || next : next\n if (!name) return\n setName(name)\n })\n }, [parent])\n\n return name\n}\n\nexport const useDefaultThemeName = () => {\n return useContext(ThemeContext)?.defaultTheme\n}\n\nexport const useChangeThemeEffect = (\n name?: string | null,\n componentName?: string,\n props?: any,\n forceUpdateProp?: any\n) => {\n const debug = props && props['debug']\n const parentManager = useContext(ThemeManagerContext) || emptyManager\n const { themes } = useContext(ThemeContext)!\n const next = parentManager.getNextTheme({ name, componentName, themes }, props)\n const forceUpdate = forceUpdateProp || useForceUpdate()\n const themeManager = useConstant<ThemeManager | null>(() => {\n if (!next) {\n return null\n }\n return new ThemeManager(next.name, next.theme, parentManager)\n })\n\n if (typeof document !== 'undefined') {\n useLayoutEffect(() => {\n if (!themeManager) return\n if (next?.name) {\n themeManager.update(next)\n }\n return parentManager.onChangeTheme(() => {\n const next = parentManager.getNextTheme({ name, componentName, themes }, debug)\n if (!next) return\n if (themeManager.update(next)) {\n forceUpdate()\n }\n })\n }, [themes, name, componentName, debug, next?.name])\n }\n\n const didChangeTheme = next && parentManager && next.name !== parentManager.fullName\n\n return {\n ...(parentManager && {\n name: parentManager.name,\n theme: parentManager.theme,\n }),\n ...next,\n didChangeTheme,\n themes,\n themeManager,\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,29 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var useUnmountEffect_exports = {};
20
+ __export(useUnmountEffect_exports, {
21
+ useUnmountEffect: () => useUnmountEffect
22
+ });
23
+ module.exports = __toCommonJS(useUnmountEffect_exports);
24
+ var import_react = require("react");
25
+ function useUnmountEffect(callback) {
26
+ return (0, import_react.useEffect)(() => () => callback(), []);
27
+ }
28
+ __name(useUnmountEffect, "useUnmountEffect");
29
+ //# sourceMappingURL=useUnmountEffect.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useUnmountEffect.ts"],
4
+ "sourcesContent": ["import { useEffect } from 'react'\n\nexport function useUnmountEffect(callback: () => void) {\n return useEffect(() => () => callback(), [])\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAEnB,0BAA0B,UAAsB;AACrD,SAAO,4BAAU,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC;AAC7C;AAFgB;",
6
+ "names": []
7
+ }