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

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 (644) hide show
  1. package/dist/cjs/Tamagui.js +57 -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/pseudos.js +15 -3
  14. package/dist/cjs/constants/pseudos.js.map +1 -1
  15. package/dist/cjs/constants/rnw.js +17 -3
  16. package/dist/cjs/constants/rnw.js.map +2 -2
  17. package/dist/cjs/contexts/ButtonInsideButtonContext.js +25 -0
  18. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +7 -0
  19. package/dist/cjs/createComponent.js +326 -206
  20. package/dist/cjs/createComponent.js.map +2 -2
  21. package/dist/cjs/createFont.js +11 -15
  22. package/dist/cjs/createFont.js.map +1 -1
  23. package/dist/cjs/createShallowUpdate.js +1 -0
  24. package/dist/{helpers/pseudos.js.map → cjs/createShallowUpdate.js.map} +0 -0
  25. package/dist/cjs/createShorthands.js +15 -3
  26. package/dist/cjs/createShorthands.js.map +1 -1
  27. package/dist/cjs/createTamagui.js +115 -102
  28. package/dist/cjs/createTamagui.js.map +2 -2
  29. package/dist/cjs/createTheme.js +11 -28
  30. package/dist/cjs/createTheme.js.map +2 -2
  31. package/dist/cjs/createTokens.js +12 -16
  32. package/dist/cjs/createTokens.js.map +1 -1
  33. package/dist/cjs/createVariable.js +33 -19
  34. package/dist/cjs/createVariable.js.map +2 -2
  35. package/dist/cjs/defaultComponentState.js +1 -0
  36. package/dist/{types.js.map → cjs/defaultComponentState.js.map} +0 -0
  37. package/dist/cjs/devtools.js +32 -0
  38. package/dist/cjs/devtools.js.map +7 -0
  39. package/dist/cjs/helpers/RNComponents.js +34 -0
  40. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  41. package/dist/cjs/helpers/addStylesUsingClassname.js +29 -29
  42. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  43. package/dist/cjs/helpers/areEqualSets.js +34 -0
  44. package/dist/cjs/helpers/areEqualSets.js.map +7 -0
  45. package/dist/cjs/helpers/createMediaStyle.js +16 -21
  46. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  47. package/dist/cjs/helpers/createPropMapper.js +155 -117
  48. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  49. package/dist/cjs/helpers/createShallowUpdate.js +51 -0
  50. package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
  51. package/dist/cjs/helpers/createTamaguiProvider.js +41 -26
  52. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  53. package/dist/cjs/helpers/extendStaticConfig.js +23 -26
  54. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  55. package/dist/cjs/helpers/fixNativeShadow.js +15 -3
  56. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  57. package/dist/cjs/helpers/fixNativeShadow.native.js +38 -22
  58. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  59. package/dist/cjs/helpers/getExpandedShorthands.js +37 -0
  60. package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
  61. package/dist/cjs/helpers/getSplitStyles.js +187 -100
  62. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  63. package/dist/cjs/helpers/getStylesAtomic.js +99 -56
  64. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  65. package/dist/cjs/helpers/getStylesAtomic.native.js +15 -3
  66. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  67. package/dist/cjs/helpers/insertStyleRule.js +86 -24
  68. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  69. package/dist/cjs/helpers/isObj.js +15 -3
  70. package/dist/cjs/helpers/isObj.js.map +1 -1
  71. package/dist/cjs/helpers/isTamaguiElement.js +11 -15
  72. package/dist/cjs/helpers/isTamaguiElement.js.map +1 -1
  73. package/dist/cjs/helpers/matchMedia.js +15 -3
  74. package/dist/cjs/helpers/matchMedia.js.map +1 -1
  75. package/dist/cjs/helpers/matchMedia.native.js +12 -13
  76. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  77. package/dist/cjs/helpers/themeable.js +24 -24
  78. package/dist/cjs/helpers/themeable.js.map +2 -2
  79. package/dist/cjs/helpers/validate.js +46 -47
  80. package/dist/cjs/helpers/validate.js.map +2 -2
  81. package/dist/cjs/helpers/withStaticProperties.js +28 -0
  82. package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
  83. package/dist/cjs/helpers/wrapThemeManagerContext.js +35 -0
  84. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +7 -0
  85. package/dist/cjs/hooks/useConstant.js +11 -15
  86. package/dist/cjs/hooks/useConstant.js.map +1 -1
  87. package/dist/cjs/hooks/useFeatures.js +142 -18
  88. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  89. package/dist/cjs/hooks/useIsMounted.js +37 -0
  90. package/dist/cjs/hooks/useIsMounted.js.map +7 -0
  91. package/dist/cjs/hooks/useIsTouchDevice.js +35 -0
  92. package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
  93. package/dist/cjs/hooks/useMedia.js +39 -59
  94. package/dist/cjs/hooks/useMedia.js.map +2 -2
  95. package/dist/cjs/hooks/usePressable.js +11 -15
  96. package/dist/cjs/hooks/usePressable.js.map +1 -1
  97. package/dist/cjs/hooks/useTheme.js +162 -68
  98. package/dist/cjs/hooks/useTheme.js.map +2 -2
  99. package/dist/cjs/hooks/useUnmountEffect.js +29 -0
  100. package/dist/cjs/hooks/useUnmountEffect.js.map +7 -0
  101. package/dist/cjs/index.js +56 -43
  102. package/dist/cjs/index.js.map +2 -2
  103. package/dist/cjs/spacedChildren.js +86 -0
  104. package/dist/cjs/spacedChildren.js.map +7 -0
  105. package/dist/cjs/static.js +23 -27
  106. package/dist/cjs/static.js.map +2 -2
  107. package/dist/cjs/styled.js +37 -18
  108. package/dist/cjs/styled.js.map +3 -3
  109. package/dist/cjs/tamagui-base.css +8 -0
  110. package/dist/cjs/tamagui-base.css.map +7 -0
  111. package/dist/cjs/types-rnw.js +16 -0
  112. package/dist/cjs/types-rnw.js.map +7 -0
  113. package/dist/cjs/types.js +14 -2
  114. package/dist/cjs/types.js.map +2 -2
  115. package/dist/cjs/views/Stack.js +13 -16
  116. package/dist/cjs/views/Stack.js.map +2 -2
  117. package/dist/cjs/views/Text.js +19 -21
  118. package/dist/cjs/views/Text.js.map +2 -2
  119. package/dist/cjs/views/TextAncestorContext.js +19 -21
  120. package/dist/cjs/views/TextAncestorContext.js.map +2 -2
  121. package/dist/cjs/views/Theme.js +31 -63
  122. package/dist/cjs/views/Theme.js.map +2 -2
  123. package/dist/cjs/views/ThemeInverse.js +15 -16
  124. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  125. package/dist/cjs/views/ThemeProvider.js +32 -37
  126. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  127. package/dist/cjs/views/ThemeReset.js +59 -0
  128. package/dist/cjs/views/ThemeReset.js.map +7 -0
  129. package/dist/esm/Tamagui.js +36 -0
  130. package/dist/esm/Tamagui.js.map +7 -0
  131. package/dist/{views → esm}/ThemeContext.js +0 -0
  132. package/dist/esm/ThemeContext.js.map +7 -0
  133. package/dist/esm/ThemeManager.js +177 -0
  134. package/dist/esm/ThemeManager.js.map +7 -0
  135. package/dist/esm/conf.js +37 -0
  136. package/dist/esm/conf.js.map +7 -0
  137. package/dist/{constants → esm/constants}/constants.js +4 -0
  138. package/dist/esm/constants/constants.js.map +7 -0
  139. package/dist/{constants → esm/constants}/platform.js +6 -1
  140. package/dist/esm/constants/platform.js.map +7 -0
  141. package/dist/{constants → esm/constants}/pseudos.js +0 -0
  142. package/dist/{constants → esm/constants}/pseudos.js.map +2 -2
  143. package/dist/{constants → esm/constants}/rnw.js +2 -0
  144. package/dist/esm/constants/rnw.js.map +7 -0
  145. package/dist/esm/contexts/ButtonInsideButtonContext.js +6 -0
  146. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +7 -0
  147. package/dist/esm/createComponent.js +590 -0
  148. package/dist/esm/createComponent.js.map +7 -0
  149. package/dist/{createFont.js → esm/createFont.js} +0 -0
  150. package/dist/{createFont.js.map → esm/createFont.js.map} +2 -2
  151. package/dist/esm/createShallowUpdate.js +1 -0
  152. package/dist/esm/createShallowUpdate.js.map +7 -0
  153. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  154. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +2 -2
  155. package/dist/esm/createTamagui.js +185 -0
  156. package/dist/esm/createTamagui.js.map +7 -0
  157. package/dist/esm/createTheme.js +7 -0
  158. package/dist/esm/createTheme.js.map +7 -0
  159. package/dist/{createTokens.js → esm/createTokens.js} +0 -0
  160. package/dist/{createTokens.js.map → esm/createTokens.js.map} +2 -2
  161. package/dist/esm/createVariable.js +43 -0
  162. package/dist/esm/createVariable.js.map +7 -0
  163. package/dist/esm/defaultComponentState.js +1 -0
  164. package/dist/esm/defaultComponentState.js.map +7 -0
  165. package/dist/esm/devtools.js +14 -0
  166. package/dist/esm/devtools.js.map +7 -0
  167. package/dist/esm/helpers/RNComponents.js +12 -0
  168. package/dist/esm/helpers/RNComponents.js.map +7 -0
  169. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +16 -12
  170. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  171. package/dist/esm/helpers/areEqualSets.js +16 -0
  172. package/dist/esm/helpers/areEqualSets.js.map +7 -0
  173. package/dist/{helpers → esm/helpers}/createMediaStyle.js +5 -6
  174. package/dist/esm/helpers/createMediaStyle.js.map +7 -0
  175. package/dist/esm/helpers/createPropMapper.js +210 -0
  176. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  177. package/dist/esm/helpers/createShallowUpdate.js +19 -0
  178. package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
  179. package/dist/esm/helpers/createTamaguiProvider.js +40 -0
  180. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  181. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +14 -14
  182. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  183. package/dist/{helpers → esm/helpers}/fixNativeShadow.js +0 -0
  184. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +2 -2
  185. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  186. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  187. package/dist/esm/helpers/getExpandedShorthands.js +19 -0
  188. package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
  189. package/dist/esm/helpers/getSplitStyles.js +244 -0
  190. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  191. package/dist/esm/helpers/getStylesAtomic.js +119 -0
  192. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  193. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js +0 -0
  194. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js.map +2 -2
  195. package/dist/esm/helpers/insertStyleRule.js +90 -0
  196. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  197. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  198. package/dist/{helpers → esm/helpers}/isObj.js.map +2 -2
  199. package/dist/{helpers → esm/helpers}/isTamaguiElement.js +2 -1
  200. package/dist/{helpers → esm/helpers}/isTamaguiElement.js.map +2 -2
  201. package/dist/{helpers → esm/helpers}/matchMedia.js +0 -0
  202. package/dist/{helpers → esm/helpers}/matchMedia.js.map +2 -2
  203. package/dist/{helpers → esm/helpers}/matchMedia.native.js +0 -0
  204. package/dist/{helpers → esm/helpers}/matchMedia.native.js.map +2 -2
  205. package/dist/{helpers → esm/helpers}/themeable.js +11 -10
  206. package/dist/esm/helpers/themeable.js.map +7 -0
  207. package/dist/esm/helpers/validate.js +63 -0
  208. package/dist/esm/helpers/validate.js.map +7 -0
  209. package/dist/esm/helpers/withStaticProperties.js +10 -0
  210. package/dist/esm/helpers/withStaticProperties.js.map +7 -0
  211. package/dist/esm/helpers/wrapThemeManagerContext.js +14 -0
  212. package/dist/esm/helpers/wrapThemeManagerContext.js.map +7 -0
  213. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  214. package/dist/{hooks → esm/hooks}/useConstant.js.map +2 -2
  215. package/dist/esm/hooks/useFeatures.js +173 -0
  216. package/dist/esm/hooks/useFeatures.js.map +7 -0
  217. package/dist/esm/hooks/useIsMounted.js +19 -0
  218. package/dist/esm/hooks/useIsMounted.js.map +7 -0
  219. package/dist/esm/hooks/useIsTouchDevice.js +17 -0
  220. package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
  221. package/dist/{hooks → esm/hooks}/useMedia.js +27 -42
  222. package/dist/esm/hooks/useMedia.js.map +7 -0
  223. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  224. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  225. package/dist/esm/hooks/useTheme.js +172 -0
  226. package/dist/esm/hooks/useTheme.js.map +7 -0
  227. package/dist/esm/hooks/useUnmountEffect.js +11 -0
  228. package/dist/esm/hooks/useUnmountEffect.js.map +7 -0
  229. package/dist/{index.js → esm/index.js} +21 -5
  230. package/dist/esm/index.js.map +7 -0
  231. package/dist/esm/spacedChildren.js +52 -0
  232. package/dist/esm/spacedChildren.js.map +7 -0
  233. package/dist/{static.js → esm/static.js} +1 -2
  234. package/dist/{static.js.map → esm/static.js.map} +3 -3
  235. package/dist/esm/styled.js +46 -0
  236. package/dist/esm/styled.js.map +7 -0
  237. package/dist/esm/tamagui-base.css +8 -0
  238. package/dist/esm/tamagui-base.css.map +7 -0
  239. package/dist/esm/types-rnw.js +1 -0
  240. package/dist/esm/types-rnw.js.map +7 -0
  241. package/dist/{types.js → esm/types.js} +0 -0
  242. package/dist/esm/types.js.map +7 -0
  243. package/dist/{views → esm/views}/Stack.js +1 -0
  244. package/dist/esm/views/Stack.js.map +7 -0
  245. package/dist/{views → esm/views}/Text.js +6 -4
  246. package/dist/esm/views/Text.js.map +7 -0
  247. package/dist/esm/views/TextAncestorContext.js +18 -0
  248. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  249. package/dist/esm/views/Theme.js +35 -0
  250. package/dist/esm/views/Theme.js.map +7 -0
  251. package/dist/{views → esm/views}/ThemeInverse.js +1 -1
  252. package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
  253. package/dist/esm/views/ThemeProvider.js +41 -0
  254. package/dist/esm/views/ThemeProvider.js.map +7 -0
  255. package/dist/esm/views/ThemeReset.js +38 -0
  256. package/dist/esm/views/ThemeReset.js.map +7 -0
  257. package/dist/jsx/Tamagui.js +35 -0
  258. package/dist/jsx/ThemeContext.js +5 -0
  259. package/dist/jsx/ThemeManager.js +176 -0
  260. package/dist/jsx/conf.js +36 -0
  261. package/dist/jsx/constants/constants.js +17 -0
  262. package/dist/jsx/constants/platform.js +23 -0
  263. package/dist/jsx/constants/pseudos.js +17 -0
  264. package/dist/jsx/constants/rnw.js +23 -0
  265. package/dist/jsx/contexts/ButtonInsideButtonContext.js +5 -0
  266. package/dist/jsx/createComponent.js +576 -0
  267. package/dist/jsx/createFont.js +27 -0
  268. package/dist/jsx/createShallowUpdate.js +0 -0
  269. package/dist/jsx/createShorthands.js +9 -0
  270. package/dist/jsx/createTamagui.js +184 -0
  271. package/dist/jsx/createTheme.js +6 -0
  272. package/dist/jsx/createTokens.js +32 -0
  273. package/dist/jsx/createVariable.js +42 -0
  274. package/dist/jsx/defaultComponentState.js +0 -0
  275. package/dist/jsx/devtools.js +13 -0
  276. package/dist/jsx/helpers/RNComponents.js +11 -0
  277. package/dist/jsx/helpers/addStylesUsingClassname.js +60 -0
  278. package/dist/jsx/helpers/areEqualSets.js +15 -0
  279. package/dist/jsx/helpers/createMediaStyle.js +32 -0
  280. package/dist/jsx/helpers/createPropMapper.js +209 -0
  281. package/dist/jsx/helpers/createShallowUpdate.js +18 -0
  282. package/dist/jsx/helpers/createTamaguiProvider.js +34 -0
  283. package/dist/jsx/helpers/extendStaticConfig.js +58 -0
  284. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  285. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  286. package/dist/jsx/helpers/getExpandedShorthands.js +18 -0
  287. package/dist/jsx/helpers/getSplitStyles.js +243 -0
  288. package/dist/jsx/helpers/getStylesAtomic.js +118 -0
  289. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  290. package/dist/jsx/helpers/insertStyleRule.js +89 -0
  291. package/dist/jsx/helpers/isObj.js +6 -0
  292. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  293. package/dist/jsx/helpers/matchMedia.js +17 -0
  294. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  295. package/dist/jsx/helpers/themeable.js +24 -0
  296. package/dist/jsx/helpers/validate.js +62 -0
  297. package/dist/jsx/helpers/withStaticProperties.js +9 -0
  298. package/dist/jsx/helpers/wrapThemeManagerContext.js +10 -0
  299. package/dist/jsx/hooks/useConstant.js +14 -0
  300. package/dist/jsx/hooks/useFeatures.js +167 -0
  301. package/dist/jsx/hooks/useIsMounted.js +18 -0
  302. package/dist/jsx/hooks/useIsTouchDevice.js +16 -0
  303. package/dist/jsx/hooks/useMedia.js +155 -0
  304. package/dist/jsx/hooks/usePressable.js +13 -0
  305. package/dist/jsx/hooks/useTheme.js +171 -0
  306. package/dist/jsx/hooks/useUnmountEffect.js +10 -0
  307. package/dist/jsx/index.js +47 -0
  308. package/dist/jsx/spacedChildren.js +44 -0
  309. package/dist/jsx/static.js +13 -0
  310. package/dist/jsx/styled.js +45 -0
  311. package/dist/jsx/tamagui-base.css +7 -0
  312. package/dist/jsx/types-rnw.js +0 -0
  313. package/dist/jsx/types.js +0 -0
  314. package/dist/jsx/views/Stack.js +12 -0
  315. package/dist/jsx/views/Text.js +61 -0
  316. package/dist/jsx/views/TextAncestorContext.js +15 -0
  317. package/dist/jsx/views/Theme.js +31 -0
  318. package/dist/jsx/views/ThemeInverse.js +22 -0
  319. package/dist/jsx/views/ThemeProvider.js +35 -0
  320. package/dist/jsx/views/ThemeReset.js +34 -0
  321. package/package.json +22 -20
  322. package/types/Tamagui.d.ts +15 -0
  323. package/types/Tamagui.d.ts.map +1 -0
  324. package/types/ThemeContext.d.ts +7 -0
  325. package/types/ThemeContext.d.ts.map +1 -0
  326. package/types/ThemeManager.d.ts +49 -0
  327. package/types/ThemeManager.d.ts.map +1 -0
  328. package/types/conf.d.ts +25 -0
  329. package/types/conf.d.ts.map +1 -0
  330. package/{dist/packages/core/src → types}/constants/constants.d.ts +2 -0
  331. package/types/constants/constants.d.ts.map +1 -0
  332. package/{dist/packages/core/src → types}/constants/platform.d.ts +2 -0
  333. package/types/constants/platform.d.ts.map +1 -0
  334. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  335. package/types/constants/rnw.d.ts.map +1 -0
  336. package/types/contexts/ButtonInsideButtonContext.d.ts +3 -0
  337. package/types/contexts/ButtonInsideButtonContext.d.ts.map +1 -0
  338. package/types/createComponent.d.ts +20 -0
  339. package/types/createComponent.d.ts.map +1 -0
  340. package/types/createFont.d.ts +3 -0
  341. package/types/createFont.d.ts.map +1 -0
  342. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  343. package/types/createShorthands.d.ts.map +1 -0
  344. package/types/createTamagui.d.ts +16 -0
  345. package/types/createTamagui.d.ts.map +1 -0
  346. package/types/createTheme.d.ts +7 -0
  347. package/types/createTheme.d.ts.map +1 -0
  348. package/{dist/packages/core/src → types}/createTokens.d.ts +24 -14
  349. package/types/createTokens.d.ts.map +1 -0
  350. package/{dist/packages/core/src → types}/createVariable.d.ts +6 -1
  351. package/types/createVariable.d.ts.map +1 -0
  352. package/types/defaultComponentState.d.ts +1 -0
  353. package/types/defaultComponentState.d.ts.map +1 -0
  354. package/types/helpers/RNComponents.d.ts +2 -0
  355. package/types/helpers/RNComponents.d.ts.map +1 -0
  356. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  357. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  358. package/types/helpers/areEqualSets.d.ts +2 -0
  359. package/types/helpers/areEqualSets.d.ts.map +1 -0
  360. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +1 -1
  361. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  362. package/types/helpers/createPropMapper.d.ts +4 -0
  363. package/types/helpers/createPropMapper.d.ts.map +1 -0
  364. package/types/helpers/createShallowUpdate.d.ts +4 -0
  365. package/types/helpers/createShallowUpdate.d.ts.map +1 -0
  366. package/types/helpers/createTamaguiProvider.d.ts +7 -0
  367. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  368. package/types/helpers/extendStaticConfig.d.ts +4 -0
  369. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  370. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  371. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  372. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  373. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  374. package/types/helpers/getExpandedShorthands.d.ts +3 -0
  375. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  376. package/types/helpers/getSplitStyles.d.ts +16 -0
  377. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  378. package/types/helpers/getStylesAtomic.d.ts +27 -0
  379. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  380. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  381. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  382. package/types/helpers/insertStyleRule.d.ts +7 -0
  383. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  384. package/types/helpers/isObj.d.ts +2 -0
  385. package/types/helpers/isObj.d.ts.map +1 -0
  386. package/types/helpers/isTamaguiElement.d.ts +3 -0
  387. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  388. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  389. package/types/helpers/matchMedia.d.ts.map +1 -0
  390. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  391. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  392. package/types/helpers/themeable.d.ts +10 -0
  393. package/types/helpers/themeable.d.ts.map +1 -0
  394. package/types/helpers/validate.d.ts +4 -0
  395. package/types/helpers/validate.d.ts.map +1 -0
  396. package/types/helpers/withStaticProperties.d.ts +2 -0
  397. package/types/helpers/withStaticProperties.d.ts.map +1 -0
  398. package/types/helpers/wrapThemeManagerContext.d.ts +3 -0
  399. package/types/helpers/wrapThemeManagerContext.d.ts.map +1 -0
  400. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  401. package/types/hooks/useConstant.d.ts.map +1 -0
  402. package/types/hooks/useFeatures.d.ts +18 -0
  403. package/types/hooks/useFeatures.d.ts.map +1 -0
  404. package/types/hooks/useIsMounted.d.ts +3 -0
  405. package/types/hooks/useIsMounted.d.ts.map +1 -0
  406. package/types/hooks/useIsTouchDevice.d.ts +2 -0
  407. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  408. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +0 -0
  409. package/types/hooks/useMedia.d.ts.map +1 -0
  410. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  411. package/types/hooks/usePressable.d.ts.map +1 -0
  412. package/types/hooks/useTheme.d.ts +36 -0
  413. package/types/hooks/useTheme.d.ts.map +1 -0
  414. package/types/hooks/useUnmountEffect.d.ts +2 -0
  415. package/types/hooks/useUnmountEffect.d.ts.map +1 -0
  416. package/{dist/packages/core/src → types}/index.d.ts +16 -3
  417. package/types/index.d.ts.map +1 -0
  418. package/types/spacedChildren.d.ts +9 -0
  419. package/types/spacedChildren.d.ts.map +1 -0
  420. package/{dist/packages/core/src → types}/static.d.ts +4 -2
  421. package/types/static.d.ts.map +1 -0
  422. package/types/styled.d.ts +7 -0
  423. package/types/styled.d.ts.map +1 -0
  424. package/types/types-rnw.d.ts +74 -0
  425. package/types/types-rnw.d.ts.map +1 -0
  426. package/types/types.d.ts +381 -0
  427. package/types/types.d.ts.map +1 -0
  428. package/types/views/Stack.d.ts +4 -0
  429. package/types/views/Stack.d.ts.map +1 -0
  430. package/types/views/Text.d.ts +4 -0
  431. package/types/views/Text.d.ts.map +1 -0
  432. package/types/views/TextAncestorContext.d.ts +5 -0
  433. package/types/views/TextAncestorContext.d.ts.map +1 -0
  434. package/types/views/Theme.d.ts +11 -0
  435. package/types/views/Theme.d.ts.map +1 -0
  436. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  437. package/types/views/ThemeInverse.d.ts.map +1 -0
  438. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +0 -1
  439. package/types/views/ThemeProvider.d.ts.map +1 -0
  440. package/types/views/ThemeReset.d.ts +4 -0
  441. package/types/views/ThemeReset.d.ts.map +1 -0
  442. package/dist/cjs/static/postProcessStyles.js +0 -40
  443. package/dist/cjs/static/postProcessStyles.js.map +0 -7
  444. package/dist/cjs/views/Animated.js +0 -129
  445. package/dist/cjs/views/Animated.js.map +0 -7
  446. package/dist/cjs/views/ThemeContext.js +0 -29
  447. package/dist/cjs/views/ThemeContext.js.map +0 -7
  448. package/dist/cjs/views/ThemeManagerContext.js +0 -84
  449. package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
  450. package/dist/constants/constants.js.map +0 -7
  451. package/dist/constants/platform.js.map +0 -7
  452. package/dist/constants/rnw.js.map +0 -7
  453. package/dist/constants/styleConstants.js +0 -46
  454. package/dist/constants/styleConstants.js.map +0 -7
  455. package/dist/createComponent.js +0 -463
  456. package/dist/createComponent.js.map +0 -7
  457. package/dist/createTamagui.js +0 -168
  458. package/dist/createTamagui.js.map +0 -7
  459. package/dist/createTheme.js +0 -20
  460. package/dist/createTheme.js.map +0 -7
  461. package/dist/createVariable.js +0 -25
  462. package/dist/createVariable.js.map +0 -7
  463. package/dist/helpers/addStylesUsingClassname.js.map +0 -7
  464. package/dist/helpers/createMediaStyle.js.map +0 -7
  465. package/dist/helpers/createPropMapper.js +0 -153
  466. package/dist/helpers/createPropMapper.js.map +0 -7
  467. package/dist/helpers/createTamaguiProvider.js +0 -25
  468. package/dist/helpers/createTamaguiProvider.js.map +0 -7
  469. package/dist/helpers/extendStaticConfig.js.map +0 -7
  470. package/dist/helpers/fixNativeShadow.native.js +0 -30
  471. package/dist/helpers/fixNativeShadow.native.js.map +0 -7
  472. package/dist/helpers/getSplitStyles.js +0 -150
  473. package/dist/helpers/getSplitStyles.js.map +0 -7
  474. package/dist/helpers/getStylesAtomic.js +0 -83
  475. package/dist/helpers/getStylesAtomic.js.map +0 -7
  476. package/dist/helpers/insertStyleRule.js +0 -24
  477. package/dist/helpers/insertStyleRule.js.map +0 -7
  478. package/dist/helpers/isComponent.js +0 -10
  479. package/dist/helpers/isComponent.js.map +0 -7
  480. package/dist/helpers/isTamaguiComponent.js +0 -10
  481. package/dist/helpers/isTamaguiComponent.js.map +0 -7
  482. package/dist/helpers/pseudos.js +0 -1
  483. package/dist/helpers/themeable.js.map +0 -7
  484. package/dist/helpers/validate.js +0 -60
  485. package/dist/helpers/validate.js.map +0 -7
  486. package/dist/helpers/validateConfig.js +0 -46
  487. package/dist/helpers/validateConfig.js.map +0 -7
  488. package/dist/helpers/validateTokens.js +0 -29
  489. package/dist/helpers/validateTokens.js.map +0 -7
  490. package/dist/hooks/useFeatures.js +0 -63
  491. package/dist/hooks/useFeatures.js.map +0 -7
  492. package/dist/hooks/useForceUpdate.js +0 -28
  493. package/dist/hooks/useForceUpdate.js.map +0 -7
  494. package/dist/hooks/useMedia.js.map +0 -7
  495. package/dist/hooks/useTheme.js +0 -89
  496. package/dist/hooks/useTheme.js.map +0 -7
  497. package/dist/index.cjs +0 -2202
  498. package/dist/index.cjs.map +0 -7
  499. package/dist/index.js.map +0 -7
  500. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  501. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  502. package/dist/packages/core/src/constants/pseudos.d.ts +0 -15
  503. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  504. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  505. package/dist/packages/core/src/createComponent.d.ts +0 -16
  506. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  507. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  508. package/dist/packages/core/src/createTamagui.d.ts +0 -37
  509. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  510. package/dist/packages/core/src/createTheme.d.ts +0 -5
  511. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  512. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  513. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  514. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  515. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  516. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  517. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts +0 -5
  518. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  519. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts +0 -5
  520. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  521. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  522. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +0 -2
  523. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  524. package/dist/packages/core/src/helpers/getSplitStyles.d.ts +0 -15
  525. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  526. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  527. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  528. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  529. package/dist/packages/core/src/helpers/insertStyleRule.d.ts +0 -2
  530. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  531. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  532. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  533. package/dist/packages/core/src/helpers/themeable.d.ts +0 -10
  534. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  535. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  536. package/dist/packages/core/src/hooks/useFeatures.d.ts +0 -5
  537. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  538. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  539. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  540. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  541. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  542. package/dist/packages/core/src/hooks/useTheme.d.ts +0 -18
  543. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  544. package/dist/packages/core/src/index.d.ts.map +0 -1
  545. package/dist/packages/core/src/static/postProcessStyles.d.ts +0 -7
  546. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  547. package/dist/packages/core/src/static.d.ts.map +0 -1
  548. package/dist/packages/core/src/styled.d.ts +0 -16
  549. package/dist/packages/core/src/styled.d.ts.map +0 -1
  550. package/dist/packages/core/src/types.d.ts +0 -305
  551. package/dist/packages/core/src/types.d.ts.map +0 -1
  552. package/dist/packages/core/src/views/Animated.d.ts +0 -15
  553. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  554. package/dist/packages/core/src/views/Stack.d.ts +0 -3
  555. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  556. package/dist/packages/core/src/views/Text.d.ts +0 -3
  557. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  558. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  559. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  560. package/dist/packages/core/src/views/Theme.d.ts +0 -8
  561. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  562. package/dist/packages/core/src/views/ThemeContext.d.ts +0 -18
  563. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  564. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  565. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  566. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  567. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  568. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  569. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  570. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  571. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  572. package/dist/packages/helpers/src/index.d.ts +0 -5
  573. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  574. package/dist/packages/helpers/src/types.d.ts +0 -8
  575. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  576. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  577. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  578. package/dist/static/postProcessStyles.js +0 -18
  579. package/dist/static/postProcessStyles.js.map +0 -7
  580. package/dist/styled.js +0 -21
  581. package/dist/styled.js.map +0 -7
  582. package/dist/views/Animated.js +0 -79
  583. package/dist/views/Animated.js.map +0 -7
  584. package/dist/views/SafeAreaProvider.js +0 -30
  585. package/dist/views/SafeAreaProvider.js.map +0 -7
  586. package/dist/views/Stack.js.map +0 -7
  587. package/dist/views/Text.js.map +0 -7
  588. package/dist/views/TextAncestorContext.js +0 -18
  589. package/dist/views/TextAncestorContext.js.map +0 -7
  590. package/dist/views/Theme.js +0 -65
  591. package/dist/views/Theme.js.map +0 -7
  592. package/dist/views/ThemeContext.js.map +0 -7
  593. package/dist/views/ThemeManagerContext.js +0 -61
  594. package/dist/views/ThemeManagerContext.js.map +0 -7
  595. package/dist/views/ThemeProvider.js +0 -45
  596. package/dist/views/ThemeProvider.js.map +0 -7
  597. package/src/constants/constants.ts +0 -12
  598. package/src/constants/platform.ts +0 -15
  599. package/src/constants/pseudos.ts +0 -14
  600. package/src/constants/rnw.tsx +0 -20
  601. package/src/createComponent.tsx +0 -612
  602. package/src/createFont.ts +0 -31
  603. package/src/createShorthands.ts +0 -5
  604. package/src/createTamagui.ts +0 -217
  605. package/src/createTheme.ts +0 -19
  606. package/src/createTokens.ts +0 -88
  607. package/src/createVariable.ts +0 -26
  608. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  609. package/src/helpers/createMediaStyle.ts +0 -46
  610. package/src/helpers/createPropMapper.ts +0 -184
  611. package/src/helpers/createTamaguiProvider.tsx +0 -22
  612. package/src/helpers/extendStaticConfig.ts +0 -68
  613. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  614. package/src/helpers/fixNativeShadow.tsx +0 -2
  615. package/src/helpers/getSplitStyles.tsx +0 -200
  616. package/src/helpers/getStylesAtomic.native.ts +0 -3
  617. package/src/helpers/getStylesAtomic.ts +0 -103
  618. package/src/helpers/insertStyleRule.tsx +0 -18
  619. package/src/helpers/isObj.ts +0 -1
  620. package/src/helpers/isTamaguiElement.tsx +0 -5
  621. package/src/helpers/matchMedia.native.ts +0 -6
  622. package/src/helpers/matchMedia.ts +0 -17
  623. package/src/helpers/themeable.tsx +0 -42
  624. package/src/helpers/validate.ts +0 -59
  625. package/src/hooks/useConstant.tsx +0 -10
  626. package/src/hooks/useFeatures.tsx +0 -79
  627. package/src/hooks/useMedia.tsx +0 -194
  628. package/src/hooks/usePressable.tsx +0 -9
  629. package/src/hooks/useTheme.tsx +0 -106
  630. package/src/index.ts +0 -32
  631. package/src/static/postProcessStyles.tsx +0 -20
  632. package/src/static.ts +0 -22
  633. package/src/styled.ts +0 -82
  634. package/src/types.tsx +0 -562
  635. package/src/views/Animated.tsx +0 -121
  636. package/src/views/Stack.tsx +0 -21
  637. package/src/views/Text.tsx +0 -66
  638. package/src/views/TextAncestorContext.tsx +0 -12
  639. package/src/views/Theme.tsx +0 -90
  640. package/src/views/ThemeContext.tsx +0 -5
  641. package/src/views/ThemeInverse.tsx +0 -22
  642. package/src/views/ThemeManagerContext.tsx +0 -62
  643. package/src/views/ThemeProvider.tsx +0 -52
  644. 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,82 +41,67 @@ __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]);
78
+ const propKey = `$${key}`;
102
79
  try {
103
- const getMatch = /* @__PURE__ */ __name(() => (0, import_matchMedia.matchMedia)(str), "getMatch");
104
- const match = getMatch();
105
- if (!match || typeof match.addListener !== "function") {
106
- throw new Error("\u26A0\uFE0F No match (seeing this in RN sometimes)");
107
- }
108
- mediaState[key] = !!match.matches;
109
- match.addListener(() => {
80
+ let update = function() {
110
81
  const next = !!getMatch().matches;
111
- if (next === mediaState[key])
82
+ if (next === mediaState[propKey])
112
83
  return;
113
- mediaState[key] = next;
114
- const listeners = mediaQueryListeners[key];
84
+ mediaState[propKey] = next;
85
+ const listeners = mediaQueryListeners[propKey];
115
86
  if (listeners == null ? void 0 : listeners.size) {
116
87
  for (const cb of [...listeners]) {
117
88
  cb();
118
89
  }
119
90
  }
120
- });
91
+ };
92
+ __name(update, "update");
93
+ const getMatch = /* @__PURE__ */ __name(() => (0, import_matchMedia.matchMedia)(str), "getMatch");
94
+ const match = getMatch();
95
+ if (!match || typeof match.addListener !== "function") {
96
+ throw new Error("\u26A0\uFE0F No match (seeing this in RN sometimes)");
97
+ }
98
+ mediaState[propKey] = !!match.matches;
99
+ match.addListener(update);
100
+ update();
121
101
  } catch (err) {
122
102
  console.error("Error running media query", str, err.message, err.stack);
123
103
  const isDefaultActive = (defaultActive == null ? void 0 : defaultActive.includes(key)) ?? true;
124
- mediaState[key] = isDefaultActive;
104
+ mediaState[propKey] = isDefaultActive;
125
105
  }
126
106
  }
127
107
  }, "configureMedia");
@@ -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 const propKey = `$${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[propKey] = !!match.matches\n match.addListener(update)\n\n function update() {\n const next = !!getMatch().matches\n if (next === mediaState[propKey]) return\n mediaState[propKey] = next\n const listeners = mediaQueryListeners[propKey]\n if (listeners?.size) {\n for (const cb of [...listeners]) {\n cb()\n }\n }\n }\n\n update()\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[propKey] = 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,137 @@ 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__" || typeof key === "symbol") {
95
+ if (key === GetThemeManager) {
96
+ if (!didChangeTheme) {
97
+ return null;
98
+ }
99
+ return themeManager;
100
+ }
90
101
  return Reflect.get(_, key);
91
102
  }
92
- let activeTheme = themes[name];
93
- if (!activeTheme) {
94
- console.error("No theme by name", name, "only:", themes, "keeping current theme");
95
- activeTheme = theme;
96
- }
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 (typeof key === "string") {
119
+ if (key[0] === "$") {
120
+ key = key.slice(1);
121
+ }
122
+ const val = themeManager.getValue(key);
123
+ if (val) {
124
+ if (state.current.isRendering) {
125
+ state.current.keys.add(key);
126
+ if (process.env.NODE_ENV === "development") {
127
+ if ((props == null ? void 0 : props["debug"]) === "verbose") {
128
+ console.log(" \xBB tracking theme key", key);
129
+ }
130
+ }
131
+ }
132
+ return val;
133
+ }
134
+ if (process.env.NODE_ENV === "development") {
135
+ console.log(`No theme value "${String(key)}" in ${name}`);
136
+ }
137
+ }
138
+ return Reflect.get(_, key);
107
139
  }
108
140
  });
109
- }, []);
141
+ }, [name, theme, className, didChangeTheme]);
110
142
  }, "useTheme");
143
+ const GetThemeManager = Symbol("GetThemeManager");
144
+ const getThemeManagerIfChanged = /* @__PURE__ */ __name((theme) => {
145
+ return theme == null ? void 0 : theme[GetThemeManager];
146
+ }, "getThemeManagerIfChanged");
147
+ const useThemeName = /* @__PURE__ */ __name((opts) => {
148
+ const parent = (0, import_react.useContext)(import_ThemeManager.ThemeManagerContext);
149
+ const [name, setName] = (0, import_react.useState)((parent == null ? void 0 : parent.name) || "");
150
+ (0, import_platform.useIsomorphicLayoutEffect)(() => {
151
+ if (!parent)
152
+ return;
153
+ return parent.onChangeTheme((next, manager) => {
154
+ const name2 = (opts == null ? void 0 : opts.parent) ? manager.parentName || next : next;
155
+ if (!name2)
156
+ return;
157
+ setName(name2);
158
+ });
159
+ }, [parent]);
160
+ return name;
161
+ }, "useThemeName");
162
+ const useDefaultThemeName = /* @__PURE__ */ __name(() => {
163
+ var _a;
164
+ return (_a = (0, import_react.useContext)(import_ThemeContext.ThemeContext)) == null ? void 0 : _a.defaultTheme;
165
+ }, "useDefaultThemeName");
166
+ const useChangeThemeEffect = /* @__PURE__ */ __name((name, componentName, props, forceUpdateProp) => {
167
+ const debug = props && props["debug"];
168
+ const parentManager = (0, import_react.useContext)(import_ThemeManager.ThemeManagerContext) || import_ThemeManager.emptyManager;
169
+ const { themes } = (0, import_react.useContext)(import_ThemeContext.ThemeContext);
170
+ const next = parentManager.getNextTheme({ name, componentName, themes }, props);
171
+ const forceUpdate = forceUpdateProp || (0, import_use_force_update.useForceUpdate)();
172
+ const themeManager = (0, import_useConstant.useConstant)(() => {
173
+ if (!next) {
174
+ return null;
175
+ }
176
+ return new import_ThemeManager.ThemeManager(next.name, next.theme, parentManager);
177
+ });
178
+ if (typeof document !== "undefined") {
179
+ (0, import_react.useLayoutEffect)(() => {
180
+ if (!themeManager)
181
+ return;
182
+ if (next == null ? void 0 : next.name) {
183
+ themeManager.update(next);
184
+ }
185
+ return parentManager.onChangeTheme(() => {
186
+ const next2 = parentManager.getNextTheme({ name, componentName, themes }, debug);
187
+ if (!next2)
188
+ return;
189
+ if (themeManager.update(next2)) {
190
+ forceUpdate();
191
+ }
192
+ });
193
+ }, [themes, name, componentName, debug, next == null ? void 0 : next.name]);
194
+ }
195
+ const didChangeTheme = next && parentManager && next.name !== parentManager.fullName;
196
+ return __spreadProps(__spreadValues(__spreadValues({}, parentManager && {
197
+ name: parentManager.name,
198
+ theme: parentManager.theme
199
+ }), next), {
200
+ didChangeTheme,
201
+ themes,
202
+ themeManager
203
+ });
204
+ }, "useChangeThemeEffect");
111
205
  //# 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__' || typeof key === 'symbol') {\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 return Reflect.get(_, key)\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 (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 if (process.env.NODE_ENV === 'development') {\n if (props?.['debug'] === 'verbose') {\n console.log(' \u00BB tracking theme key', key)\n }\n }\n }\n return val\n }\n // react native debuger uses toJSON\n if (process.env.NODE_ENV === 'development') {\n console.log(`No theme value \"${String(key)}\" in ${name}`)\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