@tamagui/web 1.14.1 → 1.14.2

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 (509) hide show
  1. package/dist/cjs/Tamagui.js +76 -1
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/addTheme.js +77 -2
  4. package/dist/cjs/addTheme.js.map +2 -2
  5. package/dist/cjs/config.js +122 -1
  6. package/dist/cjs/config.js.map +2 -2
  7. package/dist/cjs/constants/constants.js +48 -1
  8. package/dist/cjs/constants/constants.js.map +2 -2
  9. package/dist/cjs/constants/isDevTools.js +36 -1
  10. package/dist/cjs/constants/isDevTools.js.map +2 -2
  11. package/dist/cjs/contexts/AnimationDriverContext.js +29 -1
  12. package/dist/cjs/contexts/AnimationDriverContext.js.map +2 -2
  13. package/dist/cjs/contexts/ButtonNestingContext.js +29 -1
  14. package/dist/cjs/contexts/ButtonNestingContext.js.map +2 -2
  15. package/dist/cjs/contexts/FontLanguageContext.js +29 -1
  16. package/dist/cjs/contexts/FontLanguageContext.js.map +2 -2
  17. package/dist/cjs/contexts/TextAncestorContext.js +29 -1
  18. package/dist/cjs/contexts/TextAncestorContext.js.map +2 -2
  19. package/dist/cjs/createComponent.js +896 -2
  20. package/dist/cjs/createComponent.js.map +2 -2
  21. package/dist/cjs/createFont.js +68 -1
  22. package/dist/cjs/createFont.js.map +2 -2
  23. package/dist/cjs/createShorthands.js +30 -1
  24. package/dist/cjs/createShorthands.js.map +2 -2
  25. package/dist/cjs/createTamagui.js +202 -5
  26. package/dist/cjs/createTamagui.js.map +2 -2
  27. package/dist/cjs/createTheme.js +30 -1
  28. package/dist/cjs/createTheme.js.map +2 -2
  29. package/dist/cjs/createTokens.js +38 -1
  30. package/dist/cjs/createTokens.js.map +2 -2
  31. package/dist/cjs/createVariable.js +110 -1
  32. package/dist/cjs/createVariable.js.map +2 -2
  33. package/dist/cjs/createVariables.js +59 -1
  34. package/dist/cjs/createVariables.js.map +2 -2
  35. package/dist/cjs/helpers/ThemeManager.js +243 -1
  36. package/dist/cjs/helpers/ThemeManager.js.map +2 -2
  37. package/dist/cjs/helpers/ThemeManagerContext.js +29 -1
  38. package/dist/cjs/helpers/ThemeManagerContext.js.map +2 -2
  39. package/dist/cjs/helpers/createMediaStyle.js +66 -1
  40. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  41. package/dist/cjs/helpers/createPropMapper.js +431 -2
  42. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  43. package/dist/cjs/helpers/createProxy.js +41 -2
  44. package/dist/cjs/helpers/createProxy.js.map +2 -2
  45. package/dist/cjs/helpers/defaultOffset.js +28 -1
  46. package/dist/cjs/helpers/defaultOffset.js.map +2 -2
  47. package/dist/cjs/helpers/expandStyle.js +85 -1
  48. package/dist/cjs/helpers/expandStyle.js.map +2 -2
  49. package/dist/cjs/helpers/expandStyles.js +76 -1
  50. package/dist/cjs/helpers/expandStyles.js.map +2 -2
  51. package/dist/cjs/helpers/extendStaticConfig.js +91 -1
  52. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  53. package/dist/cjs/helpers/getAnimationDriver.js +31 -1
  54. package/dist/cjs/helpers/getAnimationDriver.js.map +2 -2
  55. package/dist/cjs/helpers/getExpandedShorthands.js +38 -1
  56. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  57. package/dist/cjs/helpers/getFontLanguage.js +28 -1
  58. package/dist/cjs/helpers/getFontLanguage.js.map +2 -2
  59. package/dist/cjs/helpers/getSplitStyles.js +858 -3
  60. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  61. package/dist/cjs/helpers/getStylesAtomic.js +226 -1
  62. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  63. package/dist/cjs/helpers/getStylesAtomic.native.js +37 -1
  64. package/dist/cjs/helpers/getStylesAtomic.native.js.map +2 -2
  65. package/dist/cjs/helpers/getThemeCSSRules.js +126 -4
  66. package/dist/cjs/helpers/getThemeCSSRules.js.map +2 -2
  67. package/dist/cjs/helpers/getThemeCSSRules.native.js +30 -1
  68. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +2 -2
  69. package/dist/cjs/helpers/getVariantExtras.js +91 -1
  70. package/dist/cjs/helpers/getVariantExtras.js.map +2 -2
  71. package/dist/cjs/helpers/insertStyleRule.js +222 -2
  72. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  73. package/dist/cjs/helpers/isObj.js +28 -1
  74. package/dist/cjs/helpers/isObj.js.map +2 -2
  75. package/dist/cjs/helpers/isTamaguiComponent.js +31 -1
  76. package/dist/cjs/helpers/isTamaguiComponent.js.map +2 -2
  77. package/dist/cjs/helpers/isTamaguiElement.js +32 -1
  78. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  79. package/dist/cjs/helpers/matchMedia.js +41 -1
  80. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  81. package/dist/cjs/helpers/matchMedia.native.js +47 -1
  82. package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
  83. package/dist/cjs/helpers/mergeProps.js +53 -1
  84. package/dist/cjs/helpers/mergeProps.js.map +2 -2
  85. package/dist/cjs/helpers/normalizeColor.js +66 -1
  86. package/dist/cjs/helpers/normalizeColor.js.map +2 -2
  87. package/dist/cjs/helpers/normalizeShadow.js +46 -1
  88. package/dist/cjs/helpers/normalizeShadow.js.map +2 -2
  89. package/dist/cjs/helpers/normalizeShadow.native.js +54 -1
  90. package/dist/cjs/helpers/normalizeShadow.native.js.map +2 -2
  91. package/dist/cjs/helpers/normalizeStylePropKeys.js +28 -1
  92. package/dist/cjs/helpers/normalizeStylePropKeys.js.map +2 -2
  93. package/dist/cjs/helpers/normalizeStylePropKeys.native.js +39 -1
  94. package/dist/cjs/helpers/normalizeStylePropKeys.native.js.map +2 -2
  95. package/dist/cjs/helpers/normalizeValueWithProperty.js +125 -1
  96. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +2 -2
  97. package/dist/cjs/helpers/proxyThemeVariables.js +39 -1
  98. package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
  99. package/dist/cjs/helpers/pseudoDescriptors.js +52 -1
  100. package/dist/cjs/helpers/pseudoDescriptors.js.map +2 -2
  101. package/dist/cjs/helpers/registerCSSVariable.js +39 -1
  102. package/dist/cjs/helpers/registerCSSVariable.js.map +2 -2
  103. package/dist/cjs/helpers/themeable.js +61 -1
  104. package/dist/cjs/helpers/themeable.js.map +2 -2
  105. package/dist/cjs/helpers/themes.js +75 -1
  106. package/dist/cjs/helpers/themes.js.map +2 -2
  107. package/dist/cjs/helpers/timer.js +34 -1
  108. package/dist/cjs/helpers/timer.js.map +2 -2
  109. package/dist/cjs/helpers/useShallowSetState.js +58 -1
  110. package/dist/cjs/helpers/useShallowSetState.js.map +2 -2
  111. package/dist/cjs/helpers/warnOnce.js +37 -1
  112. package/dist/cjs/helpers/warnOnce.js.map +2 -2
  113. package/dist/cjs/helpers/withStaticProperties.js +32 -1
  114. package/dist/cjs/helpers/withStaticProperties.js.map +2 -2
  115. package/dist/cjs/hooks/getThemeUnwrapped.js +33 -1
  116. package/dist/cjs/hooks/getThemeUnwrapped.js.map +2 -2
  117. package/dist/cjs/hooks/useAnimationDriver.js +33 -1
  118. package/dist/cjs/hooks/useAnimationDriver.js.map +2 -2
  119. package/dist/cjs/hooks/useId.js +28 -1
  120. package/dist/cjs/hooks/useId.js.map +2 -2
  121. package/dist/cjs/hooks/useIsTouchDevice.js +32 -1
  122. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  123. package/dist/cjs/hooks/useMedia.js +264 -1
  124. package/dist/cjs/hooks/useMedia.js.map +2 -2
  125. package/dist/cjs/hooks/useSafeRef.js +58 -1
  126. package/dist/cjs/hooks/useSafeRef.js.map +2 -2
  127. package/dist/cjs/hooks/useServerHooks.js +35 -1
  128. package/dist/cjs/hooks/useServerHooks.js.map +2 -2
  129. package/dist/cjs/hooks/useStyle.js +60 -1
  130. package/dist/cjs/hooks/useStyle.js.map +2 -2
  131. package/dist/cjs/hooks/useTheme.js +276 -1
  132. package/dist/cjs/hooks/useTheme.js.map +2 -2
  133. package/dist/cjs/hooks/useThemeName.js +51 -1
  134. package/dist/cjs/hooks/useThemeName.js.map +2 -2
  135. package/dist/cjs/index.js +110 -1
  136. package/dist/cjs/index.js.map +2 -2
  137. package/dist/cjs/inject-styles.js +39 -1
  138. package/dist/cjs/inject-styles.js.map +2 -2
  139. package/dist/cjs/insertFont.js +92 -1
  140. package/dist/cjs/insertFont.js.map +2 -2
  141. package/dist/cjs/setupHooks.js +33 -1
  142. package/dist/cjs/setupHooks.js.map +2 -2
  143. package/dist/cjs/setupReactNative.js +50 -1
  144. package/dist/cjs/setupReactNative.js.map +2 -2
  145. package/dist/cjs/styled.js +93 -1
  146. package/dist/cjs/styled.js.map +2 -2
  147. package/dist/cjs/types.js +16 -1
  148. package/dist/cjs/types.js.map +2 -2
  149. package/dist/cjs/updateTheme.js +46 -1
  150. package/dist/cjs/updateTheme.js.map +2 -2
  151. package/dist/cjs/views/AnimationDriverProvider.js +32 -1
  152. package/dist/cjs/views/AnimationDriverProvider.js.map +2 -2
  153. package/dist/cjs/views/FontLanguage.js +40 -1
  154. package/dist/cjs/views/FontLanguage.js.map +2 -2
  155. package/dist/cjs/views/FontLanguage.native.js +34 -1
  156. package/dist/cjs/views/FontLanguage.native.js.map +2 -2
  157. package/dist/cjs/views/FontLanguage.types.js +16 -1
  158. package/dist/cjs/views/FontLanguage.types.js.map +2 -2
  159. package/dist/cjs/views/Slot.js +91 -1
  160. package/dist/cjs/views/Slot.js.map +2 -2
  161. package/dist/cjs/views/Stack.js +37 -1
  162. package/dist/cjs/views/Stack.js.map +2 -2
  163. package/dist/cjs/views/TamaguiProvider.js +90 -1
  164. package/dist/cjs/views/TamaguiProvider.js.map +2 -2
  165. package/dist/cjs/views/Text.js +95 -1
  166. package/dist/cjs/views/Text.js.map +2 -2
  167. package/dist/cjs/views/Theme.js +99 -1
  168. package/dist/cjs/views/Theme.js.map +2 -2
  169. package/dist/cjs/views/ThemeDebug.js +72 -1
  170. package/dist/cjs/views/ThemeDebug.js.map +2 -2
  171. package/dist/cjs/views/ThemeProvider.js +69 -1
  172. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  173. package/dist/esm/Tamagui.js +44 -1
  174. package/dist/esm/Tamagui.js.map +2 -2
  175. package/dist/esm/Tamagui.mjs +44 -1
  176. package/dist/esm/Tamagui.mjs.map +2 -2
  177. package/dist/esm/addTheme.js +53 -2
  178. package/dist/esm/addTheme.js.map +2 -2
  179. package/dist/esm/addTheme.mjs +53 -2
  180. package/dist/esm/addTheme.mjs.map +2 -2
  181. package/dist/esm/config.js +89 -1
  182. package/dist/esm/config.js.map +2 -2
  183. package/dist/esm/config.mjs +89 -1
  184. package/dist/esm/config.mjs.map +2 -2
  185. package/dist/esm/constants/constants.js +21 -1
  186. package/dist/esm/constants/constants.js.map +2 -2
  187. package/dist/esm/constants/constants.mjs +21 -1
  188. package/dist/esm/constants/constants.mjs.map +2 -2
  189. package/dist/esm/constants/isDevTools.js +12 -1
  190. package/dist/esm/constants/isDevTools.js.map +2 -2
  191. package/dist/esm/constants/isDevTools.mjs +12 -1
  192. package/dist/esm/constants/isDevTools.mjs.map +2 -2
  193. package/dist/esm/contexts/AnimationDriverContext.js +5 -1
  194. package/dist/esm/contexts/AnimationDriverContext.js.map +2 -2
  195. package/dist/esm/contexts/AnimationDriverContext.mjs +5 -1
  196. package/dist/esm/contexts/AnimationDriverContext.mjs.map +2 -2
  197. package/dist/esm/contexts/ButtonNestingContext.js +5 -1
  198. package/dist/esm/contexts/ButtonNestingContext.js.map +2 -2
  199. package/dist/esm/contexts/ButtonNestingContext.mjs +5 -1
  200. package/dist/esm/contexts/ButtonNestingContext.mjs.map +2 -2
  201. package/dist/esm/contexts/FontLanguageContext.js +5 -1
  202. package/dist/esm/contexts/FontLanguageContext.js.map +2 -2
  203. package/dist/esm/contexts/FontLanguageContext.mjs +5 -1
  204. package/dist/esm/contexts/FontLanguageContext.mjs.map +2 -2
  205. package/dist/esm/contexts/TextAncestorContext.js +5 -1
  206. package/dist/esm/contexts/TextAncestorContext.js.map +2 -2
  207. package/dist/esm/contexts/TextAncestorContext.mjs +5 -1
  208. package/dist/esm/contexts/TextAncestorContext.mjs.map +2 -2
  209. package/dist/esm/createComponent.js +869 -2
  210. package/dist/esm/createComponent.js.map +2 -2
  211. package/dist/esm/createComponent.mjs +869 -2
  212. package/dist/esm/createComponent.mjs.map +2 -2
  213. package/dist/esm/createFont.js +44 -1
  214. package/dist/esm/createFont.js.map +2 -2
  215. package/dist/esm/createFont.mjs +44 -1
  216. package/dist/esm/createFont.mjs.map +2 -2
  217. package/dist/esm/createShorthands.js +6 -1
  218. package/dist/esm/createShorthands.js.map +2 -2
  219. package/dist/esm/createShorthands.mjs +6 -1
  220. package/dist/esm/createShorthands.mjs.map +2 -2
  221. package/dist/esm/createTamagui.js +186 -5
  222. package/dist/esm/createTamagui.js.map +2 -2
  223. package/dist/esm/createTamagui.mjs +186 -5
  224. package/dist/esm/createTamagui.mjs.map +2 -2
  225. package/dist/esm/createTheme.js +6 -1
  226. package/dist/esm/createTheme.js.map +2 -2
  227. package/dist/esm/createTheme.mjs +6 -1
  228. package/dist/esm/createTheme.mjs.map +2 -2
  229. package/dist/esm/createTokens.js +14 -1
  230. package/dist/esm/createTokens.js.map +2 -2
  231. package/dist/esm/createTokens.mjs +14 -1
  232. package/dist/esm/createTokens.mjs.map +2 -2
  233. package/dist/esm/createVariable.js +77 -1
  234. package/dist/esm/createVariable.js.map +2 -2
  235. package/dist/esm/createVariable.mjs +77 -1
  236. package/dist/esm/createVariable.mjs.map +2 -2
  237. package/dist/esm/createVariables.js +34 -1
  238. package/dist/esm/createVariables.js.map +2 -2
  239. package/dist/esm/createVariables.mjs +34 -1
  240. package/dist/esm/createVariables.mjs.map +2 -2
  241. package/dist/esm/helpers/ThemeManager.js +218 -1
  242. package/dist/esm/helpers/ThemeManager.js.map +2 -2
  243. package/dist/esm/helpers/ThemeManager.mjs +218 -1
  244. package/dist/esm/helpers/ThemeManager.mjs.map +2 -2
  245. package/dist/esm/helpers/ThemeManagerContext.js +5 -1
  246. package/dist/esm/helpers/ThemeManagerContext.js.map +2 -2
  247. package/dist/esm/helpers/ThemeManagerContext.mjs +5 -1
  248. package/dist/esm/helpers/ThemeManagerContext.mjs.map +2 -2
  249. package/dist/esm/helpers/createMediaStyle.js +41 -1
  250. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  251. package/dist/esm/helpers/createMediaStyle.mjs +41 -1
  252. package/dist/esm/helpers/createMediaStyle.mjs.map +2 -2
  253. package/dist/esm/helpers/createPropMapper.js +404 -2
  254. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  255. package/dist/esm/helpers/createPropMapper.mjs +404 -2
  256. package/dist/esm/helpers/createPropMapper.mjs.map +2 -2
  257. package/dist/esm/helpers/createProxy.js +17 -2
  258. package/dist/esm/helpers/createProxy.js.map +2 -2
  259. package/dist/esm/helpers/createProxy.mjs +17 -2
  260. package/dist/esm/helpers/createProxy.mjs.map +2 -2
  261. package/dist/esm/helpers/defaultOffset.js +4 -1
  262. package/dist/esm/helpers/defaultOffset.js.map +2 -2
  263. package/dist/esm/helpers/defaultOffset.mjs +4 -1
  264. package/dist/esm/helpers/defaultOffset.mjs.map +2 -2
  265. package/dist/esm/helpers/expandStyle.js +61 -1
  266. package/dist/esm/helpers/expandStyle.js.map +2 -2
  267. package/dist/esm/helpers/expandStyle.mjs +61 -1
  268. package/dist/esm/helpers/expandStyle.mjs.map +2 -2
  269. package/dist/esm/helpers/expandStyles.js +51 -1
  270. package/dist/esm/helpers/expandStyles.js.map +2 -2
  271. package/dist/esm/helpers/expandStyles.mjs +51 -1
  272. package/dist/esm/helpers/expandStyles.mjs.map +2 -2
  273. package/dist/esm/helpers/extendStaticConfig.js +66 -1
  274. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  275. package/dist/esm/helpers/extendStaticConfig.mjs +66 -1
  276. package/dist/esm/helpers/extendStaticConfig.mjs.map +2 -2
  277. package/dist/esm/helpers/getAnimationDriver.js +7 -1
  278. package/dist/esm/helpers/getAnimationDriver.js.map +2 -2
  279. package/dist/esm/helpers/getAnimationDriver.mjs +7 -1
  280. package/dist/esm/helpers/getAnimationDriver.mjs.map +2 -2
  281. package/dist/esm/helpers/getExpandedShorthands.js +14 -1
  282. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  283. package/dist/esm/helpers/getExpandedShorthands.mjs +14 -1
  284. package/dist/esm/helpers/getExpandedShorthands.mjs.map +2 -2
  285. package/dist/esm/helpers/getFontLanguage.js +4 -1
  286. package/dist/esm/helpers/getFontLanguage.js.map +2 -2
  287. package/dist/esm/helpers/getFontLanguage.mjs +4 -1
  288. package/dist/esm/helpers/getFontLanguage.mjs.map +2 -2
  289. package/dist/esm/helpers/getSplitStyles.js +859 -3
  290. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  291. package/dist/esm/helpers/getSplitStyles.mjs +859 -3
  292. package/dist/esm/helpers/getSplitStyles.mjs.map +2 -2
  293. package/dist/esm/helpers/getStylesAtomic.js +200 -1
  294. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  295. package/dist/esm/helpers/getStylesAtomic.mjs +200 -1
  296. package/dist/esm/helpers/getStylesAtomic.mjs.map +2 -2
  297. package/dist/esm/helpers/getStylesAtomic.native.js +11 -1
  298. package/dist/esm/helpers/getStylesAtomic.native.js.map +2 -2
  299. package/dist/esm/helpers/getStylesAtomic.native.mjs +11 -1
  300. package/dist/esm/helpers/getStylesAtomic.native.mjs.map +2 -2
  301. package/dist/esm/helpers/getThemeCSSRules.js +102 -4
  302. package/dist/esm/helpers/getThemeCSSRules.js.map +2 -2
  303. package/dist/esm/helpers/getThemeCSSRules.mjs +102 -4
  304. package/dist/esm/helpers/getThemeCSSRules.mjs.map +2 -2
  305. package/dist/esm/helpers/getThemeCSSRules.native.js +6 -1
  306. package/dist/esm/helpers/getThemeCSSRules.native.js.map +2 -2
  307. package/dist/esm/helpers/getThemeCSSRules.native.mjs +6 -1
  308. package/dist/esm/helpers/getThemeCSSRules.native.mjs.map +2 -2
  309. package/dist/esm/helpers/getVariantExtras.js +66 -1
  310. package/dist/esm/helpers/getVariantExtras.js.map +2 -2
  311. package/dist/esm/helpers/getVariantExtras.mjs +66 -1
  312. package/dist/esm/helpers/getVariantExtras.mjs.map +2 -2
  313. package/dist/esm/helpers/insertStyleRule.js +190 -2
  314. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  315. package/dist/esm/helpers/insertStyleRule.mjs +190 -2
  316. package/dist/esm/helpers/insertStyleRule.mjs.map +2 -2
  317. package/dist/esm/helpers/isObj.js +4 -1
  318. package/dist/esm/helpers/isObj.js.map +2 -2
  319. package/dist/esm/helpers/isObj.mjs +4 -1
  320. package/dist/esm/helpers/isObj.mjs.map +2 -2
  321. package/dist/esm/helpers/isTamaguiComponent.js +7 -1
  322. package/dist/esm/helpers/isTamaguiComponent.js.map +2 -2
  323. package/dist/esm/helpers/isTamaguiComponent.mjs +7 -1
  324. package/dist/esm/helpers/isTamaguiComponent.mjs.map +2 -2
  325. package/dist/esm/helpers/isTamaguiElement.js +8 -1
  326. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  327. package/dist/esm/helpers/isTamaguiElement.mjs +8 -1
  328. package/dist/esm/helpers/isTamaguiElement.mjs.map +2 -2
  329. package/dist/esm/helpers/matchMedia.js +16 -1
  330. package/dist/esm/helpers/matchMedia.js.map +2 -2
  331. package/dist/esm/helpers/matchMedia.mjs +16 -1
  332. package/dist/esm/helpers/matchMedia.mjs.map +2 -2
  333. package/dist/esm/helpers/matchMedia.native.js +22 -1
  334. package/dist/esm/helpers/matchMedia.native.js.map +2 -2
  335. package/dist/esm/helpers/matchMedia.native.mjs +22 -1
  336. package/dist/esm/helpers/matchMedia.native.mjs.map +2 -2
  337. package/dist/esm/helpers/mergeProps.js +29 -1
  338. package/dist/esm/helpers/mergeProps.js.map +2 -2
  339. package/dist/esm/helpers/mergeProps.mjs +29 -1
  340. package/dist/esm/helpers/mergeProps.mjs.map +2 -2
  341. package/dist/esm/helpers/normalizeColor.js +30 -1
  342. package/dist/esm/helpers/normalizeColor.js.map +2 -2
  343. package/dist/esm/helpers/normalizeColor.mjs +30 -1
  344. package/dist/esm/helpers/normalizeColor.mjs.map +2 -2
  345. package/dist/esm/helpers/normalizeShadow.js +22 -1
  346. package/dist/esm/helpers/normalizeShadow.js.map +2 -2
  347. package/dist/esm/helpers/normalizeShadow.mjs +22 -1
  348. package/dist/esm/helpers/normalizeShadow.mjs.map +2 -2
  349. package/dist/esm/helpers/normalizeShadow.native.js +30 -1
  350. package/dist/esm/helpers/normalizeShadow.native.js.map +2 -2
  351. package/dist/esm/helpers/normalizeShadow.native.mjs +30 -1
  352. package/dist/esm/helpers/normalizeShadow.native.mjs.map +2 -2
  353. package/dist/esm/helpers/normalizeStylePropKeys.js +4 -1
  354. package/dist/esm/helpers/normalizeStylePropKeys.js.map +2 -2
  355. package/dist/esm/helpers/normalizeStylePropKeys.mjs +4 -1
  356. package/dist/esm/helpers/normalizeStylePropKeys.mjs.map +2 -2
  357. package/dist/esm/helpers/normalizeStylePropKeys.native.js +15 -1
  358. package/dist/esm/helpers/normalizeStylePropKeys.native.js.map +2 -2
  359. package/dist/esm/helpers/normalizeStylePropKeys.native.mjs +15 -1
  360. package/dist/esm/helpers/normalizeStylePropKeys.native.mjs.map +2 -2
  361. package/dist/esm/helpers/normalizeValueWithProperty.js +100 -1
  362. package/dist/esm/helpers/normalizeValueWithProperty.js.map +2 -2
  363. package/dist/esm/helpers/normalizeValueWithProperty.mjs +100 -1
  364. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +2 -2
  365. package/dist/esm/helpers/proxyThemeVariables.js +15 -1
  366. package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
  367. package/dist/esm/helpers/proxyThemeVariables.mjs +15 -1
  368. package/dist/esm/helpers/proxyThemeVariables.mjs.map +2 -2
  369. package/dist/esm/helpers/pseudoDescriptors.js +28 -1
  370. package/dist/esm/helpers/pseudoDescriptors.js.map +2 -2
  371. package/dist/esm/helpers/pseudoDescriptors.mjs +28 -1
  372. package/dist/esm/helpers/pseudoDescriptors.mjs.map +2 -2
  373. package/dist/esm/helpers/registerCSSVariable.js +13 -1
  374. package/dist/esm/helpers/registerCSSVariable.js.map +2 -2
  375. package/dist/esm/helpers/registerCSSVariable.mjs +13 -1
  376. package/dist/esm/helpers/registerCSSVariable.mjs.map +2 -2
  377. package/dist/esm/helpers/themeable.js +27 -1
  378. package/dist/esm/helpers/themeable.js.map +2 -2
  379. package/dist/esm/helpers/themeable.mjs +27 -1
  380. package/dist/esm/helpers/themeable.mjs.map +2 -2
  381. package/dist/esm/helpers/themes.js +50 -1
  382. package/dist/esm/helpers/themes.js.map +2 -2
  383. package/dist/esm/helpers/themes.mjs +50 -1
  384. package/dist/esm/helpers/themes.mjs.map +2 -2
  385. package/dist/esm/helpers/timer.js +10 -1
  386. package/dist/esm/helpers/timer.js.map +2 -2
  387. package/dist/esm/helpers/timer.mjs +10 -1
  388. package/dist/esm/helpers/timer.mjs.map +2 -2
  389. package/dist/esm/helpers/useShallowSetState.js +34 -1
  390. package/dist/esm/helpers/useShallowSetState.js.map +2 -2
  391. package/dist/esm/helpers/useShallowSetState.mjs +34 -1
  392. package/dist/esm/helpers/useShallowSetState.mjs.map +2 -2
  393. package/dist/esm/helpers/warnOnce.js +13 -1
  394. package/dist/esm/helpers/warnOnce.js.map +2 -2
  395. package/dist/esm/helpers/warnOnce.mjs +13 -1
  396. package/dist/esm/helpers/warnOnce.mjs.map +2 -2
  397. package/dist/esm/helpers/withStaticProperties.js +8 -1
  398. package/dist/esm/helpers/withStaticProperties.js.map +2 -2
  399. package/dist/esm/helpers/withStaticProperties.mjs +8 -1
  400. package/dist/esm/helpers/withStaticProperties.mjs.map +2 -2
  401. package/dist/esm/hooks/getThemeUnwrapped.js +8 -1
  402. package/dist/esm/hooks/getThemeUnwrapped.js.map +2 -2
  403. package/dist/esm/hooks/getThemeUnwrapped.mjs +8 -1
  404. package/dist/esm/hooks/getThemeUnwrapped.mjs.map +2 -2
  405. package/dist/esm/hooks/useAnimationDriver.js +9 -1
  406. package/dist/esm/hooks/useAnimationDriver.js.map +2 -2
  407. package/dist/esm/hooks/useAnimationDriver.mjs +9 -1
  408. package/dist/esm/hooks/useAnimationDriver.mjs.map +2 -2
  409. package/dist/esm/hooks/useId.js +4 -1
  410. package/dist/esm/hooks/useId.js.map +2 -2
  411. package/dist/esm/hooks/useId.mjs +4 -1
  412. package/dist/esm/hooks/useId.mjs.map +2 -2
  413. package/dist/esm/hooks/useIsTouchDevice.js +8 -1
  414. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  415. package/dist/esm/hooks/useIsTouchDevice.mjs +8 -1
  416. package/dist/esm/hooks/useIsTouchDevice.mjs.map +2 -2
  417. package/dist/esm/hooks/useMedia.js +225 -1
  418. package/dist/esm/hooks/useMedia.js.map +2 -2
  419. package/dist/esm/hooks/useMedia.mjs +225 -1
  420. package/dist/esm/hooks/useMedia.mjs.map +2 -2
  421. package/dist/esm/hooks/useSafeRef.js +34 -1
  422. package/dist/esm/hooks/useSafeRef.js.map +2 -2
  423. package/dist/esm/hooks/useSafeRef.mjs +34 -1
  424. package/dist/esm/hooks/useSafeRef.mjs.map +2 -2
  425. package/dist/esm/hooks/useServerHooks.js +10 -1
  426. package/dist/esm/hooks/useServerHooks.js.map +2 -2
  427. package/dist/esm/hooks/useServerHooks.mjs +10 -1
  428. package/dist/esm/hooks/useServerHooks.mjs.map +2 -2
  429. package/dist/esm/hooks/useStyle.js +36 -1
  430. package/dist/esm/hooks/useStyle.js.map +2 -2
  431. package/dist/esm/hooks/useStyle.mjs +36 -1
  432. package/dist/esm/hooks/useStyle.mjs.map +2 -2
  433. package/dist/esm/hooks/useTheme.js +250 -1
  434. package/dist/esm/hooks/useTheme.js.map +2 -2
  435. package/dist/esm/hooks/useTheme.mjs +250 -1
  436. package/dist/esm/hooks/useTheme.mjs.map +2 -2
  437. package/dist/esm/hooks/useThemeName.js +27 -1
  438. package/dist/esm/hooks/useThemeName.js.map +2 -2
  439. package/dist/esm/hooks/useThemeName.mjs +27 -1
  440. package/dist/esm/hooks/useThemeName.mjs.map +2 -2
  441. package/dist/esm/index.js +88 -1
  442. package/dist/esm/index.js.map +2 -2
  443. package/dist/esm/index.mjs +88 -1
  444. package/dist/esm/index.mjs.map +2 -2
  445. package/dist/esm/inject-styles.js +15 -1
  446. package/dist/esm/inject-styles.js.map +2 -2
  447. package/dist/esm/inject-styles.mjs +15 -1
  448. package/dist/esm/inject-styles.mjs.map +2 -2
  449. package/dist/esm/insertFont.js +66 -1
  450. package/dist/esm/insertFont.js.map +2 -2
  451. package/dist/esm/insertFont.mjs +66 -1
  452. package/dist/esm/insertFont.mjs.map +2 -2
  453. package/dist/esm/setupHooks.js +8 -1
  454. package/dist/esm/setupHooks.js.map +2 -2
  455. package/dist/esm/setupHooks.mjs +8 -1
  456. package/dist/esm/setupHooks.mjs.map +2 -2
  457. package/dist/esm/setupReactNative.js +24 -1
  458. package/dist/esm/setupReactNative.js.map +2 -2
  459. package/dist/esm/setupReactNative.mjs +24 -1
  460. package/dist/esm/setupReactNative.mjs.map +2 -2
  461. package/dist/esm/styled.js +69 -1
  462. package/dist/esm/styled.js.map +2 -2
  463. package/dist/esm/styled.mjs +69 -1
  464. package/dist/esm/styled.mjs.map +2 -2
  465. package/dist/esm/updateTheme.js +22 -1
  466. package/dist/esm/updateTheme.js.map +2 -2
  467. package/dist/esm/updateTheme.mjs +22 -1
  468. package/dist/esm/updateTheme.mjs.map +2 -2
  469. package/dist/esm/views/AnimationDriverProvider.js +8 -1
  470. package/dist/esm/views/AnimationDriverProvider.js.map +2 -2
  471. package/dist/esm/views/AnimationDriverProvider.mjs +8 -1
  472. package/dist/esm/views/AnimationDriverProvider.mjs.map +2 -2
  473. package/dist/esm/views/FontLanguage.js +16 -1
  474. package/dist/esm/views/FontLanguage.js.map +2 -2
  475. package/dist/esm/views/FontLanguage.mjs +16 -1
  476. package/dist/esm/views/FontLanguage.mjs.map +2 -2
  477. package/dist/esm/views/FontLanguage.native.js +10 -1
  478. package/dist/esm/views/FontLanguage.native.js.map +2 -2
  479. package/dist/esm/views/FontLanguage.native.mjs +10 -1
  480. package/dist/esm/views/FontLanguage.native.mjs.map +2 -2
  481. package/dist/esm/views/Slot.js +65 -1
  482. package/dist/esm/views/Slot.js.map +2 -2
  483. package/dist/esm/views/Slot.mjs +65 -1
  484. package/dist/esm/views/Slot.mjs.map +2 -2
  485. package/dist/esm/views/Stack.js +13 -1
  486. package/dist/esm/views/Stack.js.map +2 -2
  487. package/dist/esm/views/Stack.mjs +13 -1
  488. package/dist/esm/views/Stack.mjs.map +2 -2
  489. package/dist/esm/views/TamaguiProvider.js +56 -1
  490. package/dist/esm/views/TamaguiProvider.js.map +2 -2
  491. package/dist/esm/views/TamaguiProvider.mjs +56 -1
  492. package/dist/esm/views/TamaguiProvider.mjs.map +2 -2
  493. package/dist/esm/views/Text.js +71 -1
  494. package/dist/esm/views/Text.js.map +2 -2
  495. package/dist/esm/views/Text.mjs +71 -1
  496. package/dist/esm/views/Text.mjs.map +2 -2
  497. package/dist/esm/views/Theme.js +74 -1
  498. package/dist/esm/views/Theme.js.map +2 -2
  499. package/dist/esm/views/Theme.mjs +74 -1
  500. package/dist/esm/views/Theme.mjs.map +2 -2
  501. package/dist/esm/views/ThemeDebug.js +48 -1
  502. package/dist/esm/views/ThemeDebug.js.map +2 -2
  503. package/dist/esm/views/ThemeDebug.mjs +48 -1
  504. package/dist/esm/views/ThemeDebug.mjs.map +2 -2
  505. package/dist/esm/views/ThemeProvider.js +44 -1
  506. package/dist/esm/views/ThemeProvider.js.map +2 -2
  507. package/dist/esm/views/ThemeProvider.mjs +44 -1
  508. package/dist/esm/views/ThemeProvider.mjs.map +2 -2
  509. package/package.json +9 -9
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useMedia.tsx"],
4
4
  "sourcesContent": ["import { startTransition, useEffect, useMemo, useSyncExternalStore } from 'react'\n\nimport { getConfig } from '../config.js'\nimport { createProxy } from '../helpers/createProxy.js'\nimport { matchMedia } from '../helpers/matchMedia'\nimport type {\n MediaQueries,\n MediaQueryKey,\n MediaQueryObject,\n MediaQueryState,\n TamaguiInternalConfig,\n} from '../types.js'\nimport { useSafeRef } from './useSafeRef.js'\n\nexport let mediaState: MediaQueryState =\n // development only safeguard\n process.env.NODE_ENV === 'development'\n ? createProxy(\n {},\n {\n get(target, key) {\n if (\n typeof key === 'string' &&\n key[0] === '$' &&\n // dont error on $$typeof\n key[1] !== '$'\n ) {\n throw new Error(`Access mediaState should not use \"$\": ${key}`)\n }\n return Reflect.get(target, key)\n },\n }\n )\n : ({} as any)\n\nexport const mediaQueryConfig: MediaQueries = {}\nexport const getMedia = () => mediaState\nexport const mediaKeysWithAndWithout$ = new Set<string>()\n\n// for SSR capture it at time of startup\nlet initState: MediaQueryState\nexport const getInitialMediaState = () => {\n return (getConfig().disableSSR ? mediaState : initState) || {}\n}\n\nlet mediaKeysOrdered: string[]\nexport const getMediaKeyImportance = (key: string) => {\n if (process.env.NODE_ENV === 'development' && key[0] === '$') {\n throw new Error('use short key')\n }\n // + 2 because we set base usedKeys=1 in getSplitStyles and all media go above 1\n return mediaKeysOrdered.indexOf(key) + 2\n}\n\nconst dispose = new Set<Function>()\n\nexport const configureMedia = (config: TamaguiInternalConfig) => {\n const { media, mediaQueryDefaultActive } = config\n if (!media) return\n for (const key in media) {\n mediaState[key] = mediaQueryDefaultActive?.[key] || false\n mediaKeysWithAndWithout$.add(key)\n mediaKeysWithAndWithout$.add(`$${key}`)\n }\n Object.assign(mediaQueryConfig, media)\n initState = { ...mediaState }\n updateCurrentState()\n mediaKeysOrdered = Object.keys(media)\n if (config.disableSSR) {\n setupMediaListeners()\n }\n}\n\nfunction unlisten() {\n dispose.forEach((cb) => cb())\n dispose.clear()\n}\n\n/**\n * Note: This should *not* set the state on the first render!\n * Because to avoid hydration issues SSR must match the server\n * *and then* re-render with the actual media query state.\n */\nlet configuredKey = ''\nexport function setupMediaListeners() {\n // avoid setting up more than once per config\n const nextKey = JSON.stringify(mediaQueryConfig)\n if (nextKey === configuredKey) return\n configuredKey = nextKey\n\n // hmr, undo existing before re-binding\n unlisten()\n\n for (const key in mediaQueryConfig) {\n const str = mediaObjectToString(mediaQueryConfig[key])\n const getMatch = () => matchMedia(str)\n const match = getMatch()\n if (!match) {\n throw new Error('\u26A0\uFE0F No match')\n }\n // react native needs these deprecated apis for now\n match.addListener(update)\n dispose.add(() => {\n match.removeListener(update)\n })\n\n update()\n\n function update() {\n const next = !!getMatch().matches\n if (next === mediaState[key]) return\n mediaState = { ...mediaState, [key]: next }\n updateCurrentState()\n }\n }\n}\n\nexport function useMediaListeners(config: TamaguiInternalConfig) {\n if (config.disableSSR) return\n useEffect(() => {\n setupMediaListeners()\n }, [])\n}\n\nconst listeners = new Set<any>()\nlet flushing = false\nfunction updateCurrentState() {\n if (flushing) return\n flushing = true\n Promise.resolve().then(() => {\n flushing = false\n startTransition(() => {\n listeners.forEach((cb) => cb(mediaState))\n })\n })\n}\n\ntype MediaKeysState = {\n [key: string]: any\n}\n\ntype UseMediaState = {\n [key in MediaQueryKey]: boolean\n}\n\ntype UpdateState = {\n enabled: boolean\n keys: MediaQueryKey[]\n}\n\nconst shouldUpdate = new WeakMap<any, UpdateState>()\n\nexport function setMediaShouldUpdate(ref: any, props: UpdateState) {\n return shouldUpdate.set(ref, props)\n}\n\ntype UseMediaInternalState = {\n prev: MediaKeysState\n touched?: Set<string>\n}\n\nfunction subscribe(subscriber: any) {\n listeners.add(subscriber)\n return () => listeners.delete(subscriber)\n}\n\nexport function useMedia(uid?: any, debug?: any): UseMediaState {\n const internal = useSafeRef<UseMediaInternalState>(undefined as any)\n if (!internal.current) {\n internal.current = {\n prev: initState,\n }\n }\n const state = useSyncExternalStore<MediaQueryState>(\n subscribe,\n () => {\n const { touched, prev } = internal.current\n const componentState = uid ? shouldUpdate.get(uid) : undefined\n if (componentState?.enabled === false) {\n return prev\n }\n\n const testKeys =\n componentState?.keys ??\n ((!componentState || componentState.enabled) && touched ? [...touched] : null)\n\n const hasntUpdated = testKeys?.every((key) => mediaState[key] === prev[key])\n if (hasntUpdated) {\n return prev\n }\n\n internal.current.prev = mediaState\n return mediaState\n },\n () => initState\n )\n\n return useMemo(() => {\n return new Proxy(state, {\n get(_, key) {\n if (typeof key === 'string') {\n internal.current.touched ||= new Set()\n internal.current.touched.add(key)\n }\n return Reflect.get(state, key)\n },\n })\n }, [state])\n}\n\n/**\n * Useful for more complex components that need access to the currently active props,\n * accounting for the currently active media queries.\n *\n * Use sparingly, it will loop props and trigger re-render on all media queries.\n *\n * */\nexport function useMediaPropsActive<A extends Object>(\n props: A\n): {\n // remove all media\n [Key in keyof A extends `$${string}` ? never : keyof A]?: A[Key]\n} {\n const media = useMedia()\n\n return useMemo(() => {\n const next = {} as A\n const importancesUsed = {}\n const propNames = Object.keys(props)\n\n for (let i = propNames.length - 1; i >= 0; i--) {\n const key = propNames[i]\n const val = props[key]\n if (key[0] === '$') {\n const mediaKey = key.slice(1)\n if (!media[mediaKey]) continue\n if (val && typeof val === 'object') {\n const subKeys = Object.keys(val)\n for (let j = subKeys.length; j--; j >= 0) {\n const subKey = subKeys[j]\n mergeMediaByImportance(next, mediaKey, subKey, val[subKey], importancesUsed)\n }\n }\n } else {\n mergeMediaByImportance(next, '', key, val, importancesUsed)\n }\n }\n\n return next\n }, [media, props])\n}\n\nexport const getMediaImportanceIfMoreImportant = (\n mediaKey: string,\n key: string,\n importancesUsed: Record<string, number>\n) => {\n const importance = getMediaKeyImportance(mediaKey)\n return !importancesUsed[key] || importance > importancesUsed[key] ? importance : null\n}\n\nexport function mergeMediaByImportance(\n onto: Record<string, any>,\n mediaKey: string,\n key: string,\n value: any,\n importancesUsed: Record<string, number>\n) {\n const importance = getMediaImportanceIfMoreImportant(mediaKey, key, importancesUsed)\n if (importance === null) {\n return false\n }\n importancesUsed[key] = importance\n onto[key] = value\n return true\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
- "names": ["useMedia_exports", "__export", "configureMedia", "getInitialMediaState", "getMedia", "getMediaImportanceIfMoreImportant", "getMediaKeyImportance", "mediaKeysWithAndWithout$", "mediaObjectToString", "mediaQueryConfig", "mediaState", "mergeMediaByImportance", "setMediaShouldUpdate", "setupMediaListeners", "useMedia", "useMediaListeners", "useMediaPropsActive", "__toCommonJS", "import_react", "import_config", "import_createProxy", "import_matchMedia", "import_useSafeRef", "target", "key", "initState", "mediaKeysOrdered", "dispose", "config", "media", "mediaQueryDefaultActive", "updateCurrentState", "unlisten", "cb", "configuredKey", "nextKey", "update", "next", "getMatch", "str", "match", "listeners", "flushing", "shouldUpdate", "ref", "props", "subscribe", "subscriber", "uid", "debug", "internal", "state", "touched", "prev", "componentState", "testKeys", "_", "_a", "importancesUsed", "propNames", "i", "val", "mediaKey", "subKeys", "j", "subKey", "importance", "onto", "value", "camelToHyphen", "m", "query", "feature"]
5
+ "mappings": "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",
6
+ "names": ["update"]
7
7
  }
@@ -1,2 +1,59 @@
1
- "use strict";var c=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var h=(t,e)=>{for(var r in e)c(t,r,{get:e[r],enumerable:!0})},x=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let u of T(e))!a.call(t,u)&&u!==r&&c(t,u,{get:()=>e[u],enumerable:!(o=s(e,u))||o.enumerable});return t};var d=t=>x(c({},"__esModule",{value:!0}),t);var R={};h(R,{useSafeRef:()=>l});module.exports=d(R);var n=require("@tamagui/constants"),f=require("react");const l=t=>{const e=(0,f.useRef)();e.current||(e.current={hold:!0,next:t,cur:t,ref:{get current(){return r.hold?r.cur:r.next},set current(o){r.hold||(r.next=o),r.cur=o}}});const r=e.current;return r.hold=!0,r.cur=r.next,(0,n.useIsomorphicLayoutEffect)(()=>{r.hold=!1,r.next=r.cur}),r.ref};0&&(module.exports={useSafeRef});
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
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 useSafeRef_exports = {};
20
+ __export(useSafeRef_exports, {
21
+ useSafeRef: () => useSafeRef
22
+ });
23
+ module.exports = __toCommonJS(useSafeRef_exports);
24
+ var import_constants = require("@tamagui/constants");
25
+ var import_react = require("react");
26
+ const useSafeRef = (initialValue) => {
27
+ const rawRef = (0, import_react.useRef)();
28
+ if (!rawRef.current) {
29
+ rawRef.current = {
30
+ hold: true,
31
+ next: initialValue,
32
+ cur: initialValue,
33
+ ref: {
34
+ get current() {
35
+ return raw.hold ? raw.cur : raw.next;
36
+ },
37
+ set current(v) {
38
+ if (!raw.hold) {
39
+ raw.next = v;
40
+ }
41
+ raw.cur = v;
42
+ }
43
+ }
44
+ };
45
+ }
46
+ const raw = rawRef.current;
47
+ raw.hold = true;
48
+ raw.cur = raw.next;
49
+ (0, import_constants.useIsomorphicLayoutEffect)(() => {
50
+ raw.hold = false;
51
+ raw.next = raw.cur;
52
+ });
53
+ return raw.ref;
54
+ };
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ useSafeRef
58
+ });
2
59
  //# sourceMappingURL=useSafeRef.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useSafeRef.ts"],
4
4
  "sourcesContent": ["import { useIsomorphicLayoutEffect } from '@tamagui/constants'\nimport { useRef } from 'react'\n\n// dai-shi \uD83D\uDE4F\n// https://dev.to/uhyo_/a-concurrent-mode-safe-version-of-useref-1325\n// probably can live without it though to save a bit of b\n\ntype Raw<T> = {\n hold: boolean\n next: T\n cur: T\n ref: { current: T }\n}\n\nexport const useSafeRef = <T>(initialValue: T) => {\n const rawRef = useRef<Raw<T>>()\n if (!rawRef.current) {\n rawRef.current = {\n hold: true,\n next: initialValue,\n cur: initialValue,\n ref: {\n get current() {\n return raw.hold ? raw.cur : raw.next\n },\n set current(v) {\n if (!raw.hold) {\n raw.next = v\n }\n raw.cur = v\n },\n },\n }\n }\n\n const raw: Raw<T> = rawRef.current\n raw.hold = true\n raw.cur = raw.next\n useIsomorphicLayoutEffect(() => {\n raw.hold = false\n raw.next = raw.cur\n })\n\n return raw.ref\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA0C,8BAC1CC,EAAuB,iBAahB,MAAMH,EAAiBI,GAAoB,CAChD,MAAMC,KAAS,UAAe,EACzBA,EAAO,UACVA,EAAO,QAAU,CACf,KAAM,GACN,KAAMD,EACN,IAAKA,EACL,IAAK,CACH,IAAI,SAAU,CACZ,OAAOE,EAAI,KAAOA,EAAI,IAAMA,EAAI,IAClC,EACA,IAAI,QAAQC,EAAG,CACRD,EAAI,OACPA,EAAI,KAAOC,GAEbD,EAAI,IAAMC,CACZ,CACF,CACF,GAGF,MAAMD,EAAcD,EAAO,QAC3B,OAAAC,EAAI,KAAO,GACXA,EAAI,IAAMA,EAAI,QACd,6BAA0B,IAAM,CAC9BA,EAAI,KAAO,GACXA,EAAI,KAAOA,EAAI,GACjB,CAAC,EAEMA,EAAI,GACb",
6
- "names": ["useSafeRef_exports", "__export", "useSafeRef", "__toCommonJS", "import_constants", "import_react", "initialValue", "rawRef", "raw", "v"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C;AAC1C,mBAAuB;AAahB,MAAM,aAAa,CAAI,iBAAoB;AAChD,QAAM,aAAS,qBAAe;AAC9B,MAAI,CAAC,OAAO,SAAS;AACnB,WAAO,UAAU;AAAA,MACf,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,MACL,KAAK;AAAA,QACH,IAAI,UAAU;AACZ,iBAAO,IAAI,OAAO,IAAI,MAAM,IAAI;AAAA,QAClC;AAAA,QACA,IAAI,QAAQ,GAAG;AACb,cAAI,CAAC,IAAI,MAAM;AACb,gBAAI,OAAO;AAAA,UACb;AACA,cAAI,MAAM;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,MAAc,OAAO;AAC3B,MAAI,OAAO;AACX,MAAI,MAAM,IAAI;AACd,kDAA0B,MAAM;AAC9B,QAAI,OAAO;AACX,QAAI,OAAO,IAAI;AAAA,EACjB,CAAC;AAED,SAAO,IAAI;AACb;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,36 @@
1
- "use strict";var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var c=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},i=(e,t,n,u)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of p(t))!S.call(e,s)&&s!==n&&r(e,s,{get:()=>t[s],enumerable:!(u=f(t,s))||u.enumerable});return e};var m=e=>i(r({},"__esModule",{value:!0}),e);var v={};c(v,{useServerRef:()=>R,useServerState:()=>y});module.exports=m(v);var a=require("@tamagui/constants"),o=require("react");const y=a.isRSC?e=>[e,k]:o.useState,R=a.isRSC?e=>({current:e}):o.useRef,k=()=>{};0&&(module.exports={useServerRef,useServerState});
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
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 useServerHooks_exports = {};
20
+ __export(useServerHooks_exports, {
21
+ useServerRef: () => useServerRef,
22
+ useServerState: () => useServerState
23
+ });
24
+ module.exports = __toCommonJS(useServerHooks_exports);
25
+ var import_constants = require("@tamagui/constants");
26
+ var import_react = require("react");
27
+ const useServerState = import_constants.isRSC ? (val) => [val, idFn] : import_react.useState;
28
+ const useServerRef = import_constants.isRSC ? (val) => ({ current: val }) : import_react.useRef;
29
+ const idFn = () => {
30
+ };
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ useServerRef,
34
+ useServerState
35
+ });
2
36
  //# sourceMappingURL=useServerHooks.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useServerHooks.tsx"],
4
4
  "sourcesContent": ["import { isRSC } from '@tamagui/constants'\nimport { useRef, useState } from 'react'\n\nexport const useServerState = isRSC\n ? (((val: any) => [val, idFn]) as unknown as typeof useState)\n : useState\n\nexport const useServerRef = isRSC\n ? (((val: any) => ({ current: val })) as unknown as typeof useRef)\n : useRef\n\nconst idFn = () => {}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,EAAA,mBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAsB,8BACtBC,EAAiC,iBAE1B,MAAMH,EAAiB,QACvBI,GAAa,CAACA,EAAKC,CAAI,EAC1B,WAESN,EAAe,QACrBK,IAAc,CAAE,QAASA,CAAI,GAChC,SAEEC,EAAO,IAAM,CAAC",
6
- "names": ["useServerHooks_exports", "__export", "useServerRef", "useServerState", "__toCommonJS", "import_constants", "import_react", "val", "idFn"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAsB;AACtB,mBAAiC;AAE1B,MAAM,iBAAiB,yBACxB,CAAC,QAAa,CAAC,KAAK,IAAI,IAC1B;AAEG,MAAM,eAAe,yBACtB,CAAC,SAAc,EAAE,SAAS,IAAI,KAChC;AAEJ,MAAM,OAAO,MAAM;AAAC;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,61 @@
1
- "use strict";var m=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var P=(e,t)=>{for(var o in t)m(e,o,{get:t[o],enumerable:!0})},T=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of C(t))!d.call(e,s)&&s!==o&&m(e,s,{get:()=>t[s],enumerable:!(n=x(t,s))||n.enumerable});return e};var b=e=>T(m({},"__esModule",{value:!0}),e);var N={};P(N,{useStyle:()=>h});module.exports=b(N);var r=require("@tamagui/constants"),l=require("react"),i=require("../contexts/FontLanguageContext.js"),p=require("../contexts/TextAncestorContext.js"),u=require("../helpers/getSplitStyles.js"),y=require("./useMedia.js"),S=require("./useTheme.js");function h(e,t,o){const n=e.staticConfig.isText,s=!!(r.isWeb&&n&&(0,l.useContext)(p.TextAncestorContext)),c=r.isRSC?null:(0,l.useContext)(i.FontLanguageContext),f=(0,S.useTheme)(),g=(0,y.useMedia)(),a=(0,u.useSplitStyles)(t,e.staticConfig,f,{...o,mediaState:g,hasTextAncestor:s,resolveVariablesAs:"auto"},null,c||void 0,n?"span":"div",o==null?void 0:o.debug);return{style:Object.keys(a.style).length?a.style:null,classNames:a.classNames}}0&&(module.exports={useStyle});
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
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 useStyle_exports = {};
20
+ __export(useStyle_exports, {
21
+ useStyle: () => useStyle
22
+ });
23
+ module.exports = __toCommonJS(useStyle_exports);
24
+ var import_constants = require("@tamagui/constants");
25
+ var import_react = require("react");
26
+ var import_FontLanguageContext = require("../contexts/FontLanguageContext.js");
27
+ var import_TextAncestorContext = require("../contexts/TextAncestorContext.js");
28
+ var import_getSplitStyles = require("../helpers/getSplitStyles.js");
29
+ var import_useMedia = require("./useMedia.js");
30
+ var import_useTheme = require("./useTheme.js");
31
+ function useStyle(base, style, options) {
32
+ const isText = base.staticConfig.isText;
33
+ const hasTextAncestor = !!(import_constants.isWeb && isText ? (0, import_react.useContext)(import_TextAncestorContext.TextAncestorContext) : false);
34
+ const languageContext = import_constants.isRSC ? null : (0, import_react.useContext)(import_FontLanguageContext.FontLanguageContext);
35
+ const theme = (0, import_useTheme.useTheme)();
36
+ const media = (0, import_useMedia.useMedia)();
37
+ const out = (0, import_getSplitStyles.useSplitStyles)(
38
+ style,
39
+ base.staticConfig,
40
+ theme,
41
+ {
42
+ ...options,
43
+ mediaState: media,
44
+ hasTextAncestor,
45
+ resolveVariablesAs: "auto"
46
+ },
47
+ null,
48
+ languageContext || void 0,
49
+ isText ? "span" : "div",
50
+ options == null ? void 0 : options.debug
51
+ );
52
+ return {
53
+ style: Object.keys(out.style).length ? out.style : null,
54
+ classNames: out.classNames
55
+ };
56
+ }
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ useStyle
60
+ });
2
61
  //# sourceMappingURL=useStyle.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useStyle.tsx"],
4
4
  "sourcesContent": ["import { isRSC, isWeb } from '@tamagui/constants'\nimport { useContext } from 'react'\n\nimport { FontLanguageContext } from '../contexts/FontLanguageContext.js'\nimport { TextAncestorContext } from '../contexts/TextAncestorContext.js'\nimport { useSplitStyles } from '../helpers/getSplitStyles.js'\nimport {\n DebugProp,\n GetProps,\n SplitStyleState,\n TamaguiComponent,\n TextNonStyleProps,\n} from '../types'\nimport { useMedia } from './useMedia.js'\nimport { useTheme } from './useTheme.js'\n\nexport function useStyle<\n Component extends TamaguiComponent,\n StyleProps = Omit<GetProps<Component>, keyof TextNonStyleProps>\n>(\n base: Component,\n style: StyleProps,\n options?: Partial<SplitStyleState> & { debug?: DebugProp }\n) {\n const isText = base.staticConfig.isText\n const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false)\n const languageContext = isRSC ? null : useContext(FontLanguageContext)\n const theme = useTheme()\n const media = useMedia()\n const out = useSplitStyles(\n style as any,\n base.staticConfig,\n theme,\n {\n ...(options as any),\n mediaState: media,\n hasTextAncestor,\n resolveVariablesAs: 'auto',\n },\n null,\n languageContext || undefined,\n isText ? 'span' : 'div',\n options?.debug\n )\n return {\n style: Object.keys(out.style).length ? out.style : null,\n classNames: out.classNames,\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA6B,8BAC7BC,EAA2B,iBAE3BC,EAAoC,8CACpCC,EAAoC,8CACpCC,EAA+B,wCAQ/BC,EAAyB,yBACzBC,EAAyB,yBAElB,SAASR,EAIdS,EACAC,EACAC,EACA,CACA,MAAMC,EAASH,EAAK,aAAa,OAC3BI,EAAkB,CAAC,EAAE,SAASD,MAAS,cAAW,qBAAmB,GACrEE,EAAkB,QAAQ,QAAO,cAAW,qBAAmB,EAC/DC,KAAQ,YAAS,EACjBC,KAAQ,YAAS,EACjBC,KAAM,kBACVP,EACAD,EAAK,aACLM,EACA,CACE,GAAIJ,EACJ,WAAYK,EACZ,gBAAAH,EACA,mBAAoB,MACtB,EACA,KACAC,GAAmB,OACnBF,EAAS,OAAS,MAClBD,GAAA,YAAAA,EAAS,KACX,EACA,MAAO,CACL,MAAO,OAAO,KAAKM,EAAI,KAAK,EAAE,OAASA,EAAI,MAAQ,KACnD,WAAYA,EAAI,UAClB,CACF",
6
- "names": ["useStyle_exports", "__export", "useStyle", "__toCommonJS", "import_constants", "import_react", "import_FontLanguageContext", "import_TextAncestorContext", "import_getSplitStyles", "import_useMedia", "import_useTheme", "base", "style", "options", "isText", "hasTextAncestor", "languageContext", "theme", "media", "out"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA6B;AAC7B,mBAA2B;AAE3B,iCAAoC;AACpC,iCAAoC;AACpC,4BAA+B;AAQ/B,sBAAyB;AACzB,sBAAyB;AAElB,SAAS,SAId,MACA,OACA,SACA;AACA,QAAM,SAAS,KAAK,aAAa;AACjC,QAAM,kBAAkB,CAAC,EAAE,0BAAS,aAAS,yBAAW,8CAAmB,IAAI;AAC/E,QAAM,kBAAkB,yBAAQ,WAAO,yBAAW,8CAAmB;AACrE,QAAM,YAAQ,0BAAS;AACvB,QAAM,YAAQ,0BAAS;AACvB,QAAM,UAAM;AAAA,IACV;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA;AAAA,MACE,GAAI;AAAA,MACJ,YAAY;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,IACtB;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,IACnB,SAAS,SAAS;AAAA,IAClB,mCAAS;AAAA,EACX;AACA,SAAO;AAAA,IACL,OAAO,OAAO,KAAK,IAAI,KAAK,EAAE,SAAS,IAAI,QAAQ;AAAA,IACnD,YAAY,IAAI;AAAA,EAClB;AACF;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,277 @@
1
- "use strict";var M=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var H=(t,n)=>{for(var o in n)M(t,o,{get:n[o],enumerable:!0})},J=(t,n,o,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let e of A(n))!F.call(t,e)&&e!==o&&M(t,e,{get:()=>n[e],enumerable:!(s=z(n,e))||s.enumerable});return t};var L=t=>J(M({},"__esModule",{value:!0}),t);var Z={};H(Z,{activeThemeManagers:()=>P,getThemeProxied:()=>w,useChangeThemeEffect:()=>I,useTheme:()=>Y,useThemeWithState:()=>B});module.exports=L(Z);var c=require("@tamagui/constants"),h=require("react"),D=require("../config.js"),O=require("../constants/isDevTools.js"),V=require("../helpers/createProxy.js"),b=require("../helpers/ThemeManager.js"),v=require("../helpers/ThemeManagerContext.js"),$=require("./getThemeUnwrapped.js"),j=require("./useServerHooks.js");const Q={name:null};function X(){const t=(0,D.getConfig)(),n=Object.keys(t.themes)[0];return w({theme:t.themes[n],name:n})}const Y=(t=Q)=>{var n;return(c.isRSC?null:(n=B(t))==null?void 0:n.theme)||X()},B=t=>{const n=(0,j.useServerRef)([]),o=I(t,!1,n.current,c.isClient?()=>{var m;return((m=t.shouldUpdate)==null?void 0:m.call(t))??n.current.length===0}:void 0),{themeManager:s,theme:e,name:u,className:f}=o;if(process.env.NODE_ENV==="development"&&t.debug==="verbose"){console.groupCollapsed(" \u{1F539} useTheme =>",u);const m={...t,name:u,className:f,...O.isDevTools&&{theme:e}};for(const g in m)console.log(" ",g,m[g]);console.groupEnd()}if(!o.theme)return process.env.NODE_ENV==="development"&&console.warn("No theme found",u,t,s),null;const l=(0,h.useMemo)(()=>w(o,n.current),[e,u,f,s]);return{...o,theme:l}};function w({theme:t,themeManager:n},o){return(0,V.createProxy)(t,{has(s,e){return typeof e=="string"?(e[0]==="$"&&(e=e.slice(1)),n==null?void 0:n.allKeys.has(e)):Reflect.has(t,e)},get(s,e){if(e===$.GetThemeUnwrapped)return t;if(e==="__proto__"||e==="$typeof"||typeof e!="string"||!n)return Reflect.get(s,e);const u=e[0]==="$"?e.slice(1):e,f=n.getValue(u);return f&&o?new Proxy(f,{get(l,m){return m==="val"&&!o.includes(u)&&o.push(u),Reflect.get(f,m)}}):f}})}const P=new Set,I=(t,n=!1,o,s)=>{if(c.isRSC)return{isNewTheme:!1,...S().state,themeManager:null};const e=(0,h.useContext)(v.ThemeManagerContext),{debug:u,disable:f}=t;if(f){if(!e)throw"\u274C";return{isNewTheme:!1,...e.state,themeManager:e}}const[l,m]=(0,h.useState)(S),{state:g,themeManager:i,mounted:W,isNewTheme:T}=l,C=Boolean(!l.mounted&&t.inverse),G=C;function K(r=i){return r.getState(t,e===i?e.parentManager:e)}function E(r=i){const a=K(r);if(a&&(s==null?void 0:s())!==!0&&r.getStateShouldChange(a,g))return a}if(c.isServer||((0,h.useEffect)(()=>{if(t.inverse&&!W){m({...l,mounted:!0});return}if(T&&i)return P.add(i),()=>{P.delete(i)}},[T,i,g,u]),(0,h.useLayoutEffect)(()=>{const r=E(i);r&&(T&&i.updateState(r,!0),m(S));const a=e==null?void 0:e.onChangeTheme((d,N)=>{(o!=null&&o.length||T)&&(process.env.NODE_ENV==="development"&&t.debug&&(o!=null&&o.length)&&console.log("onChangeTheme",{props:t,name:d,manager:N,parentManager:e,keys:o}),m(S))});return()=>{a==null||a()}},[e,T,t.componentName,t.inverse,t.name,t.reset])),G){if(!e)throw"impossible";return{isNewTheme:!1,...e.state,className:C?"":e.state.className,themeManager:e}}return{...g,isNewTheme:T,themeManager:i};function S(r){if(r&&(s!=null&&s()))return r;let a,d;const N=()=>new b.ThemeManager(t,n?"root":e);if(r!=null&&r.themeManager){a=r.themeManager;const x=E(a);x&&(d=x,!r.isNewTheme||!c.isWeb?a=N():a.updateState(x,!0))}else a=N();const _=Boolean(a!==e||r&&a.state.name!==r.state.name),q=t.inverse?n||(r==null?void 0:r.mounted):!0;d||(d=_?{...a.state}:{...e.state});const R={state:d,themeManager:a,isNewTheme:_,mounted:q};return process.env.NODE_ENV==="development"&&t.debug&&(console.groupCollapsed(" \u{1F537} useChangeThemeEffect createState"),console.log({props:t,parentManager:e,themeManager:a,prev:r,response:R}),console.groupEnd()),R}};0&&(module.exports={activeThemeManagers,getThemeProxied,useChangeThemeEffect,useTheme,useThemeWithState});
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
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 useTheme_exports = {};
20
+ __export(useTheme_exports, {
21
+ activeThemeManagers: () => activeThemeManagers,
22
+ getThemeProxied: () => getThemeProxied,
23
+ useChangeThemeEffect: () => useChangeThemeEffect,
24
+ useTheme: () => useTheme,
25
+ useThemeWithState: () => useThemeWithState
26
+ });
27
+ module.exports = __toCommonJS(useTheme_exports);
28
+ var import_constants = require("@tamagui/constants");
29
+ var import_react = require("react");
30
+ var import_config = require("../config.js");
31
+ var import_isDevTools = require("../constants/isDevTools.js");
32
+ var import_createProxy = require("../helpers/createProxy.js");
33
+ var import_ThemeManager = require("../helpers/ThemeManager.js");
34
+ var import_ThemeManagerContext = require("../helpers/ThemeManagerContext.js");
35
+ var import_getThemeUnwrapped = require("./getThemeUnwrapped.js");
36
+ var import_useServerHooks = require("./useServerHooks.js");
37
+ const emptyProps = { name: null };
38
+ function getDefaultThemeProxied() {
39
+ const config = (0, import_config.getConfig)();
40
+ const name = Object.keys(config.themes)[0];
41
+ return getThemeProxied({
42
+ theme: config.themes[name],
43
+ name
44
+ });
45
+ }
46
+ const useTheme = (props = emptyProps) => {
47
+ var _a;
48
+ return (import_constants.isRSC ? null : (_a = useThemeWithState(props)) == null ? void 0 : _a.theme) || getDefaultThemeProxied();
49
+ };
50
+ const useThemeWithState = (props) => {
51
+ const keys = (0, import_useServerHooks.useServerRef)([]);
52
+ const changedTheme = useChangeThemeEffect(
53
+ props,
54
+ false,
55
+ keys.current,
56
+ import_constants.isClient ? () => {
57
+ var _a;
58
+ return ((_a = props.shouldUpdate) == null ? void 0 : _a.call(props)) ?? keys.current.length === 0;
59
+ } : void 0
60
+ );
61
+ const { themeManager, theme, name, className } = changedTheme;
62
+ if (process.env.NODE_ENV === "development" && props.debug === "verbose") {
63
+ console.groupCollapsed(" \u{1F539} useTheme =>", name);
64
+ const logs = { ...props, name, className, ...import_isDevTools.isDevTools && { theme } };
65
+ for (const key in logs) {
66
+ console.log(" ", key, logs[key]);
67
+ }
68
+ console.groupEnd();
69
+ }
70
+ if (!changedTheme.theme) {
71
+ if (process.env.NODE_ENV === "development") {
72
+ console.warn("No theme found", name, props, themeManager);
73
+ }
74
+ return null;
75
+ }
76
+ const proxiedTheme = (0, import_react.useMemo)(() => {
77
+ return getThemeProxied(changedTheme, keys.current);
78
+ }, [theme, name, className, themeManager]);
79
+ return {
80
+ ...changedTheme,
81
+ theme: proxiedTheme
82
+ };
83
+ };
84
+ function getThemeProxied({
85
+ theme,
86
+ themeManager
87
+ }, keys) {
88
+ return (0, import_createProxy.createProxy)(theme, {
89
+ has(_, key) {
90
+ if (typeof key === "string") {
91
+ if (key[0] === "$")
92
+ key = key.slice(1);
93
+ return themeManager == null ? void 0 : themeManager.allKeys.has(key);
94
+ }
95
+ return Reflect.has(theme, key);
96
+ },
97
+ get(_, key) {
98
+ if (key === import_getThemeUnwrapped.GetThemeUnwrapped) {
99
+ return theme;
100
+ }
101
+ if (key === "__proto__" || key === "$typeof" || typeof key !== "string" || !themeManager) {
102
+ return Reflect.get(_, key);
103
+ }
104
+ const keyString = key[0] === "$" ? key.slice(1) : key;
105
+ const val = themeManager.getValue(keyString);
106
+ if (val && keys) {
107
+ return new Proxy(val, {
108
+ // when they touch the actual value we only track it
109
+ // if its a variable (web), its ignored!
110
+ get(_2, subkey) {
111
+ if (subkey === "val" && !keys.includes(keyString)) {
112
+ keys.push(keyString);
113
+ }
114
+ return Reflect.get(val, subkey);
115
+ }
116
+ });
117
+ }
118
+ return val;
119
+ }
120
+ });
121
+ }
122
+ const activeThemeManagers = /* @__PURE__ */ new Set();
123
+ const useChangeThemeEffect = (props, root = false, keys, disableUpdate) => {
124
+ if (import_constants.isRSC) {
125
+ return {
126
+ isNewTheme: false,
127
+ ...createState().state,
128
+ themeManager: null
129
+ };
130
+ }
131
+ const parentManager = (0, import_react.useContext)(import_ThemeManagerContext.ThemeManagerContext);
132
+ const {
133
+ debug,
134
+ // @ts-expect-error internal use only
135
+ disable
136
+ } = props;
137
+ if (disable) {
138
+ if (!parentManager)
139
+ throw `\u274C`;
140
+ return {
141
+ isNewTheme: false,
142
+ ...parentManager.state,
143
+ themeManager: parentManager
144
+ };
145
+ }
146
+ const [themeState, setThemeState] = (0, import_react.useState)(createState);
147
+ const { state, themeManager, mounted, isNewTheme } = themeState;
148
+ const isInversingOnMount = Boolean(!themeState.mounted && props.inverse);
149
+ const shouldReturnParentState = isInversingOnMount;
150
+ function getNextThemeManagerState(manager = themeManager) {
151
+ const next = manager.getState(
152
+ props,
153
+ parentManager === themeManager ? parentManager.parentManager : parentManager
154
+ );
155
+ return next;
156
+ }
157
+ function getThemeManagerNextStateIfChanged(manager = themeManager) {
158
+ const next = getNextThemeManagerState(manager);
159
+ if (!next)
160
+ return;
161
+ if ((disableUpdate == null ? void 0 : disableUpdate()) === true)
162
+ return;
163
+ if (!manager.getStateShouldChange(next, state))
164
+ return;
165
+ return next;
166
+ }
167
+ if (!import_constants.isServer) {
168
+ (0, import_react.useEffect)(() => {
169
+ if (props.inverse && !mounted) {
170
+ setThemeState({ ...themeState, mounted: true });
171
+ return;
172
+ }
173
+ if (!isNewTheme)
174
+ return;
175
+ if (!themeManager)
176
+ return;
177
+ activeThemeManagers.add(themeManager);
178
+ return () => {
179
+ activeThemeManagers.delete(themeManager);
180
+ };
181
+ }, [isNewTheme, themeManager, state, debug]);
182
+ (0, import_react.useLayoutEffect)(() => {
183
+ const nextState = getThemeManagerNextStateIfChanged(themeManager);
184
+ if (nextState) {
185
+ if (isNewTheme) {
186
+ themeManager.updateState(nextState, true);
187
+ }
188
+ setThemeState(createState);
189
+ }
190
+ const disposeChangeListener = parentManager == null ? void 0 : parentManager.onChangeTheme((name, manager) => {
191
+ if ((keys == null ? void 0 : keys.length) || isNewTheme) {
192
+ if (process.env.NODE_ENV === "development" && props["debug"] && (keys == null ? void 0 : keys.length)) {
193
+ console.log(`onChangeTheme`, { props, name, manager, parentManager, keys });
194
+ }
195
+ setThemeState(createState);
196
+ }
197
+ });
198
+ return () => {
199
+ disposeChangeListener == null ? void 0 : disposeChangeListener();
200
+ };
201
+ }, [
202
+ parentManager,
203
+ isNewTheme,
204
+ props.componentName,
205
+ props.inverse,
206
+ props.name,
207
+ props.reset
208
+ ]);
209
+ }
210
+ if (shouldReturnParentState) {
211
+ if (!parentManager)
212
+ throw "impossible";
213
+ return {
214
+ isNewTheme: false,
215
+ ...parentManager.state,
216
+ className: isInversingOnMount ? "" : parentManager.state.className,
217
+ themeManager: parentManager
218
+ };
219
+ }
220
+ return {
221
+ ...state,
222
+ isNewTheme,
223
+ themeManager
224
+ };
225
+ function createState(prev) {
226
+ if (prev && (disableUpdate == null ? void 0 : disableUpdate())) {
227
+ return prev;
228
+ }
229
+ let themeManager2;
230
+ let state2;
231
+ const getNewThemeManager = () => {
232
+ return new import_ThemeManager.ThemeManager(props, root ? "root" : parentManager);
233
+ };
234
+ if (prev == null ? void 0 : prev.themeManager) {
235
+ themeManager2 = prev.themeManager;
236
+ const nextState = getThemeManagerNextStateIfChanged(themeManager2);
237
+ if (nextState) {
238
+ state2 = nextState;
239
+ if (!prev.isNewTheme || !import_constants.isWeb) {
240
+ themeManager2 = getNewThemeManager();
241
+ } else {
242
+ themeManager2.updateState(nextState, true);
243
+ }
244
+ }
245
+ } else {
246
+ themeManager2 = getNewThemeManager();
247
+ }
248
+ const isNewTheme2 = Boolean(
249
+ themeManager2 !== parentManager || prev && themeManager2.state.name !== prev.state.name
250
+ );
251
+ const mounted2 = !props.inverse ? true : root || (prev == null ? void 0 : prev.mounted);
252
+ if (!state2) {
253
+ state2 = isNewTheme2 ? { ...themeManager2.state } : { ...parentManager.state };
254
+ }
255
+ const response = {
256
+ state: state2,
257
+ themeManager: themeManager2,
258
+ isNewTheme: isNewTheme2,
259
+ mounted: mounted2
260
+ };
261
+ if (process.env.NODE_ENV === "development" && props["debug"]) {
262
+ console.groupCollapsed(` \u{1F537} useChangeThemeEffect createState`);
263
+ console.log({ props, parentManager, themeManager: themeManager2, prev, response });
264
+ console.groupEnd();
265
+ }
266
+ return response;
267
+ }
268
+ };
269
+ // Annotate the CommonJS export names for ESM import in node:
270
+ 0 && (module.exports = {
271
+ activeThemeManagers,
272
+ getThemeProxied,
273
+ useChangeThemeEffect,
274
+ useTheme,
275
+ useThemeWithState
276
+ });
2
277
  //# sourceMappingURL=useTheme.js.map