@tamagui/web 1.13.3 → 1.13.4

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 (503) hide show
  1. package/dist/cjs/Tamagui.js +1 -76
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/addTheme.js +2 -77
  4. package/dist/cjs/addTheme.js.map +2 -2
  5. package/dist/cjs/config.js +1 -122
  6. package/dist/cjs/config.js.map +2 -2
  7. package/dist/cjs/constants/constants.js +1 -48
  8. package/dist/cjs/constants/constants.js.map +2 -2
  9. package/dist/cjs/constants/isDevTools.js +1 -36
  10. package/dist/cjs/constants/isDevTools.js.map +2 -2
  11. package/dist/cjs/contexts/AnimationDriverContext.js +1 -29
  12. package/dist/cjs/contexts/AnimationDriverContext.js.map +2 -2
  13. package/dist/cjs/contexts/ButtonNestingContext.js +1 -29
  14. package/dist/cjs/contexts/ButtonNestingContext.js.map +2 -2
  15. package/dist/cjs/contexts/FontLanguageContext.js +1 -29
  16. package/dist/cjs/contexts/FontLanguageContext.js.map +2 -2
  17. package/dist/cjs/contexts/TextAncestorContext.js +1 -29
  18. package/dist/cjs/contexts/TextAncestorContext.js.map +2 -2
  19. package/dist/cjs/createComponent.js +2 -874
  20. package/dist/cjs/createComponent.js.map +2 -2
  21. package/dist/cjs/createFont.js +1 -68
  22. package/dist/cjs/createFont.js.map +2 -2
  23. package/dist/cjs/createShorthands.js +1 -30
  24. package/dist/cjs/createShorthands.js.map +2 -2
  25. package/dist/cjs/createTamagui.js +5 -202
  26. package/dist/cjs/createTamagui.js.map +2 -2
  27. package/dist/cjs/createTheme.js +1 -30
  28. package/dist/cjs/createTheme.js.map +2 -2
  29. package/dist/cjs/createTokens.js +1 -38
  30. package/dist/cjs/createTokens.js.map +2 -2
  31. package/dist/cjs/createVariable.js +1 -110
  32. package/dist/cjs/createVariable.js.map +2 -2
  33. package/dist/cjs/createVariables.js +1 -59
  34. package/dist/cjs/createVariables.js.map +2 -2
  35. package/dist/cjs/helpers/ThemeManager.js +1 -236
  36. package/dist/cjs/helpers/ThemeManager.js.map +2 -2
  37. package/dist/cjs/helpers/ThemeManagerContext.js +1 -29
  38. package/dist/cjs/helpers/ThemeManagerContext.js.map +2 -2
  39. package/dist/cjs/helpers/createMediaStyle.js +1 -66
  40. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  41. package/dist/cjs/helpers/createPropMapper.js +2 -431
  42. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  43. package/dist/cjs/helpers/createProxy.js +2 -41
  44. package/dist/cjs/helpers/createProxy.js.map +2 -2
  45. package/dist/cjs/helpers/defaultOffset.js +1 -28
  46. package/dist/cjs/helpers/defaultOffset.js.map +2 -2
  47. package/dist/cjs/helpers/expandStyle.js +1 -85
  48. package/dist/cjs/helpers/expandStyle.js.map +2 -2
  49. package/dist/cjs/helpers/expandStyles.js +1 -76
  50. package/dist/cjs/helpers/expandStyles.js.map +2 -2
  51. package/dist/cjs/helpers/extendStaticConfig.js +1 -91
  52. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  53. package/dist/cjs/helpers/getAnimationDriver.js +1 -31
  54. package/dist/cjs/helpers/getAnimationDriver.js.map +2 -2
  55. package/dist/cjs/helpers/getExpandedShorthands.js +1 -38
  56. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  57. package/dist/cjs/helpers/getFontLanguage.js +1 -28
  58. package/dist/cjs/helpers/getFontLanguage.js.map +2 -2
  59. package/dist/cjs/helpers/getSplitStyles.js +3 -865
  60. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  61. package/dist/cjs/helpers/getStylesAtomic.js +1 -226
  62. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  63. package/dist/cjs/helpers/getStylesAtomic.native.js +1 -37
  64. package/dist/cjs/helpers/getStylesAtomic.native.js.map +2 -2
  65. package/dist/cjs/helpers/getThemeCSSRules.js +4 -126
  66. package/dist/cjs/helpers/getThemeCSSRules.js.map +2 -2
  67. package/dist/cjs/helpers/getThemeCSSRules.native.js +1 -30
  68. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +2 -2
  69. package/dist/cjs/helpers/getVariantExtras.js +1 -91
  70. package/dist/cjs/helpers/getVariantExtras.js.map +2 -2
  71. package/dist/cjs/helpers/insertStyleRule.js +2 -222
  72. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  73. package/dist/cjs/helpers/isObj.js +1 -28
  74. package/dist/cjs/helpers/isObj.js.map +2 -2
  75. package/dist/cjs/helpers/isTamaguiComponent.js +1 -31
  76. package/dist/cjs/helpers/isTamaguiComponent.js.map +2 -2
  77. package/dist/cjs/helpers/isTamaguiElement.js +1 -32
  78. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  79. package/dist/cjs/helpers/matchMedia.js +1 -41
  80. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  81. package/dist/cjs/helpers/matchMedia.native.js +1 -47
  82. package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
  83. package/dist/cjs/helpers/mergeProps.js +1 -53
  84. package/dist/cjs/helpers/mergeProps.js.map +2 -2
  85. package/dist/cjs/helpers/normalizeColor.js +1 -66
  86. package/dist/cjs/helpers/normalizeColor.js.map +2 -2
  87. package/dist/cjs/helpers/normalizeShadow.js +1 -46
  88. package/dist/cjs/helpers/normalizeShadow.js.map +2 -2
  89. package/dist/cjs/helpers/normalizeShadow.native.js +1 -54
  90. package/dist/cjs/helpers/normalizeShadow.native.js.map +2 -2
  91. package/dist/cjs/helpers/normalizeStylePropKeys.js +1 -28
  92. package/dist/cjs/helpers/normalizeStylePropKeys.js.map +2 -2
  93. package/dist/cjs/helpers/normalizeStylePropKeys.native.js +1 -39
  94. package/dist/cjs/helpers/normalizeStylePropKeys.native.js.map +2 -2
  95. package/dist/cjs/helpers/normalizeValueWithProperty.js +1 -125
  96. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +2 -2
  97. package/dist/cjs/helpers/proxyThemeVariables.js +1 -39
  98. package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
  99. package/dist/cjs/helpers/pseudoDescriptors.js +1 -52
  100. package/dist/cjs/helpers/pseudoDescriptors.js.map +2 -2
  101. package/dist/cjs/helpers/registerCSSVariable.js +1 -39
  102. package/dist/cjs/helpers/registerCSSVariable.js.map +2 -2
  103. package/dist/cjs/helpers/themeable.js +1 -61
  104. package/dist/cjs/helpers/themeable.js.map +2 -2
  105. package/dist/cjs/helpers/themes.js +1 -75
  106. package/dist/cjs/helpers/themes.js.map +2 -2
  107. package/dist/cjs/helpers/timer.js +1 -34
  108. package/dist/cjs/helpers/timer.js.map +2 -2
  109. package/dist/cjs/helpers/useShallowSetState.js +1 -58
  110. package/dist/cjs/helpers/useShallowSetState.js.map +2 -2
  111. package/dist/cjs/helpers/warnOnce.js +1 -37
  112. package/dist/cjs/helpers/warnOnce.js.map +2 -2
  113. package/dist/cjs/helpers/withStaticProperties.js +1 -32
  114. package/dist/cjs/helpers/withStaticProperties.js.map +2 -2
  115. package/dist/cjs/hooks/getThemeUnwrapped.js +1 -33
  116. package/dist/cjs/hooks/getThemeUnwrapped.js.map +2 -2
  117. package/dist/cjs/hooks/useAnimationDriver.js +1 -33
  118. package/dist/cjs/hooks/useAnimationDriver.js.map +2 -2
  119. package/dist/cjs/hooks/useId.js +1 -28
  120. package/dist/cjs/hooks/useId.js.map +2 -2
  121. package/dist/cjs/hooks/useIsTouchDevice.js +1 -32
  122. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  123. package/dist/cjs/hooks/useMedia.js +1 -264
  124. package/dist/cjs/hooks/useMedia.js.map +2 -2
  125. package/dist/cjs/hooks/useSafeRef.js +1 -58
  126. package/dist/cjs/hooks/useSafeRef.js.map +2 -2
  127. package/dist/cjs/hooks/useServerHooks.js +1 -35
  128. package/dist/cjs/hooks/useServerHooks.js.map +2 -2
  129. package/dist/cjs/hooks/useStyle.js +1 -60
  130. package/dist/cjs/hooks/useStyle.js.map +2 -2
  131. package/dist/cjs/hooks/useTheme.js +1 -229
  132. package/dist/cjs/hooks/useTheme.js.map +2 -2
  133. package/dist/cjs/hooks/useThemeName.js +1 -51
  134. package/dist/cjs/hooks/useThemeName.js.map +2 -2
  135. package/dist/cjs/index.js +1 -110
  136. package/dist/cjs/index.js.map +2 -2
  137. package/dist/cjs/inject-styles.js +1 -39
  138. package/dist/cjs/inject-styles.js.map +2 -2
  139. package/dist/cjs/insertFont.js +1 -92
  140. package/dist/cjs/insertFont.js.map +2 -2
  141. package/dist/cjs/setupHooks.js +1 -33
  142. package/dist/cjs/setupHooks.js.map +2 -2
  143. package/dist/cjs/setupReactNative.js +1 -50
  144. package/dist/cjs/setupReactNative.js.map +2 -2
  145. package/dist/cjs/styled.js +1 -93
  146. package/dist/cjs/styled.js.map +2 -2
  147. package/dist/cjs/types.js +1 -16
  148. package/dist/cjs/types.js.map +2 -2
  149. package/dist/cjs/updateTheme.js +1 -46
  150. package/dist/cjs/updateTheme.js.map +2 -2
  151. package/dist/cjs/views/AnimationDriverProvider.js +1 -32
  152. package/dist/cjs/views/AnimationDriverProvider.js.map +2 -2
  153. package/dist/cjs/views/FontLanguage.js +1 -40
  154. package/dist/cjs/views/FontLanguage.js.map +2 -2
  155. package/dist/cjs/views/FontLanguage.native.js +1 -34
  156. package/dist/cjs/views/FontLanguage.native.js.map +2 -2
  157. package/dist/cjs/views/FontLanguage.types.js +1 -16
  158. package/dist/cjs/views/FontLanguage.types.js.map +2 -2
  159. package/dist/cjs/views/Slot.js +1 -91
  160. package/dist/cjs/views/Slot.js.map +2 -2
  161. package/dist/cjs/views/Stack.js +1 -37
  162. package/dist/cjs/views/Stack.js.map +2 -2
  163. package/dist/cjs/views/TamaguiProvider.js +1 -90
  164. package/dist/cjs/views/TamaguiProvider.js.map +2 -2
  165. package/dist/cjs/views/Text.js +1 -95
  166. package/dist/cjs/views/Text.js.map +2 -2
  167. package/dist/cjs/views/Theme.js +1 -80
  168. package/dist/cjs/views/Theme.js.map +2 -2
  169. package/dist/cjs/views/ThemeProvider.js +1 -69
  170. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  171. package/dist/esm/Tamagui.js +1 -44
  172. package/dist/esm/Tamagui.js.map +2 -2
  173. package/dist/esm/Tamagui.mjs +1 -44
  174. package/dist/esm/Tamagui.mjs.map +2 -2
  175. package/dist/esm/addTheme.js +2 -53
  176. package/dist/esm/addTheme.js.map +2 -2
  177. package/dist/esm/addTheme.mjs +2 -53
  178. package/dist/esm/addTheme.mjs.map +2 -2
  179. package/dist/esm/config.js +1 -89
  180. package/dist/esm/config.js.map +2 -2
  181. package/dist/esm/config.mjs +1 -89
  182. package/dist/esm/config.mjs.map +2 -2
  183. package/dist/esm/constants/constants.js +1 -21
  184. package/dist/esm/constants/constants.js.map +2 -2
  185. package/dist/esm/constants/constants.mjs +1 -21
  186. package/dist/esm/constants/constants.mjs.map +2 -2
  187. package/dist/esm/constants/isDevTools.js +1 -12
  188. package/dist/esm/constants/isDevTools.js.map +2 -2
  189. package/dist/esm/constants/isDevTools.mjs +1 -12
  190. package/dist/esm/constants/isDevTools.mjs.map +2 -2
  191. package/dist/esm/contexts/AnimationDriverContext.js +1 -5
  192. package/dist/esm/contexts/AnimationDriverContext.js.map +2 -2
  193. package/dist/esm/contexts/AnimationDriverContext.mjs +1 -5
  194. package/dist/esm/contexts/AnimationDriverContext.mjs.map +2 -2
  195. package/dist/esm/contexts/ButtonNestingContext.js +1 -5
  196. package/dist/esm/contexts/ButtonNestingContext.js.map +2 -2
  197. package/dist/esm/contexts/ButtonNestingContext.mjs +1 -5
  198. package/dist/esm/contexts/ButtonNestingContext.mjs.map +2 -2
  199. package/dist/esm/contexts/FontLanguageContext.js +1 -5
  200. package/dist/esm/contexts/FontLanguageContext.js.map +2 -2
  201. package/dist/esm/contexts/FontLanguageContext.mjs +1 -5
  202. package/dist/esm/contexts/FontLanguageContext.mjs.map +2 -2
  203. package/dist/esm/contexts/TextAncestorContext.js +1 -5
  204. package/dist/esm/contexts/TextAncestorContext.js.map +2 -2
  205. package/dist/esm/contexts/TextAncestorContext.mjs +1 -5
  206. package/dist/esm/contexts/TextAncestorContext.mjs.map +2 -2
  207. package/dist/esm/createComponent.js +2 -846
  208. package/dist/esm/createComponent.js.map +2 -2
  209. package/dist/esm/createComponent.mjs +2 -846
  210. package/dist/esm/createComponent.mjs.map +2 -2
  211. package/dist/esm/createFont.js +1 -44
  212. package/dist/esm/createFont.js.map +2 -2
  213. package/dist/esm/createFont.mjs +1 -44
  214. package/dist/esm/createFont.mjs.map +2 -2
  215. package/dist/esm/createShorthands.js +1 -6
  216. package/dist/esm/createShorthands.js.map +2 -2
  217. package/dist/esm/createShorthands.mjs +1 -6
  218. package/dist/esm/createShorthands.mjs.map +2 -2
  219. package/dist/esm/createTamagui.js +5 -186
  220. package/dist/esm/createTamagui.js.map +2 -2
  221. package/dist/esm/createTamagui.mjs +5 -186
  222. package/dist/esm/createTamagui.mjs.map +2 -2
  223. package/dist/esm/createTheme.js +1 -6
  224. package/dist/esm/createTheme.js.map +2 -2
  225. package/dist/esm/createTheme.mjs +1 -6
  226. package/dist/esm/createTheme.mjs.map +2 -2
  227. package/dist/esm/createTokens.js +1 -14
  228. package/dist/esm/createTokens.js.map +2 -2
  229. package/dist/esm/createTokens.mjs +1 -14
  230. package/dist/esm/createTokens.mjs.map +2 -2
  231. package/dist/esm/createVariable.js +1 -77
  232. package/dist/esm/createVariable.js.map +2 -2
  233. package/dist/esm/createVariable.mjs +1 -77
  234. package/dist/esm/createVariable.mjs.map +2 -2
  235. package/dist/esm/createVariables.js +1 -34
  236. package/dist/esm/createVariables.js.map +2 -2
  237. package/dist/esm/createVariables.mjs +1 -34
  238. package/dist/esm/createVariables.mjs.map +2 -2
  239. package/dist/esm/helpers/ThemeManager.js +1 -211
  240. package/dist/esm/helpers/ThemeManager.js.map +2 -2
  241. package/dist/esm/helpers/ThemeManager.mjs +1 -211
  242. package/dist/esm/helpers/ThemeManager.mjs.map +2 -2
  243. package/dist/esm/helpers/ThemeManagerContext.js +1 -5
  244. package/dist/esm/helpers/ThemeManagerContext.js.map +2 -2
  245. package/dist/esm/helpers/ThemeManagerContext.mjs +1 -5
  246. package/dist/esm/helpers/ThemeManagerContext.mjs.map +2 -2
  247. package/dist/esm/helpers/createMediaStyle.js +1 -41
  248. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  249. package/dist/esm/helpers/createMediaStyle.mjs +1 -41
  250. package/dist/esm/helpers/createMediaStyle.mjs.map +2 -2
  251. package/dist/esm/helpers/createPropMapper.js +2 -404
  252. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  253. package/dist/esm/helpers/createPropMapper.mjs +2 -404
  254. package/dist/esm/helpers/createPropMapper.mjs.map +2 -2
  255. package/dist/esm/helpers/createProxy.js +2 -17
  256. package/dist/esm/helpers/createProxy.js.map +2 -2
  257. package/dist/esm/helpers/createProxy.mjs +2 -17
  258. package/dist/esm/helpers/createProxy.mjs.map +2 -2
  259. package/dist/esm/helpers/defaultOffset.js +1 -4
  260. package/dist/esm/helpers/defaultOffset.js.map +2 -2
  261. package/dist/esm/helpers/defaultOffset.mjs +1 -4
  262. package/dist/esm/helpers/defaultOffset.mjs.map +2 -2
  263. package/dist/esm/helpers/expandStyle.js +1 -61
  264. package/dist/esm/helpers/expandStyle.js.map +2 -2
  265. package/dist/esm/helpers/expandStyle.mjs +1 -61
  266. package/dist/esm/helpers/expandStyle.mjs.map +2 -2
  267. package/dist/esm/helpers/expandStyles.js +1 -51
  268. package/dist/esm/helpers/expandStyles.js.map +2 -2
  269. package/dist/esm/helpers/expandStyles.mjs +1 -51
  270. package/dist/esm/helpers/expandStyles.mjs.map +2 -2
  271. package/dist/esm/helpers/extendStaticConfig.js +1 -66
  272. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  273. package/dist/esm/helpers/extendStaticConfig.mjs +1 -66
  274. package/dist/esm/helpers/extendStaticConfig.mjs.map +2 -2
  275. package/dist/esm/helpers/getAnimationDriver.js +1 -7
  276. package/dist/esm/helpers/getAnimationDriver.js.map +2 -2
  277. package/dist/esm/helpers/getAnimationDriver.mjs +1 -7
  278. package/dist/esm/helpers/getAnimationDriver.mjs.map +2 -2
  279. package/dist/esm/helpers/getExpandedShorthands.js +1 -14
  280. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  281. package/dist/esm/helpers/getExpandedShorthands.mjs +1 -14
  282. package/dist/esm/helpers/getExpandedShorthands.mjs.map +2 -2
  283. package/dist/esm/helpers/getFontLanguage.js +1 -4
  284. package/dist/esm/helpers/getFontLanguage.js.map +2 -2
  285. package/dist/esm/helpers/getFontLanguage.mjs +1 -4
  286. package/dist/esm/helpers/getFontLanguage.mjs.map +2 -2
  287. package/dist/esm/helpers/getSplitStyles.js +3 -866
  288. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  289. package/dist/esm/helpers/getSplitStyles.mjs +3 -866
  290. package/dist/esm/helpers/getSplitStyles.mjs.map +2 -2
  291. package/dist/esm/helpers/getStylesAtomic.js +1 -200
  292. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  293. package/dist/esm/helpers/getStylesAtomic.mjs +1 -200
  294. package/dist/esm/helpers/getStylesAtomic.mjs.map +2 -2
  295. package/dist/esm/helpers/getStylesAtomic.native.js +1 -11
  296. package/dist/esm/helpers/getStylesAtomic.native.js.map +2 -2
  297. package/dist/esm/helpers/getStylesAtomic.native.mjs +1 -11
  298. package/dist/esm/helpers/getStylesAtomic.native.mjs.map +2 -2
  299. package/dist/esm/helpers/getThemeCSSRules.js +4 -102
  300. package/dist/esm/helpers/getThemeCSSRules.js.map +2 -2
  301. package/dist/esm/helpers/getThemeCSSRules.mjs +4 -102
  302. package/dist/esm/helpers/getThemeCSSRules.mjs.map +2 -2
  303. package/dist/esm/helpers/getThemeCSSRules.native.js +1 -6
  304. package/dist/esm/helpers/getThemeCSSRules.native.js.map +2 -2
  305. package/dist/esm/helpers/getThemeCSSRules.native.mjs +1 -6
  306. package/dist/esm/helpers/getThemeCSSRules.native.mjs.map +2 -2
  307. package/dist/esm/helpers/getVariantExtras.js +1 -66
  308. package/dist/esm/helpers/getVariantExtras.js.map +2 -2
  309. package/dist/esm/helpers/getVariantExtras.mjs +1 -66
  310. package/dist/esm/helpers/getVariantExtras.mjs.map +2 -2
  311. package/dist/esm/helpers/insertStyleRule.js +2 -190
  312. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  313. package/dist/esm/helpers/insertStyleRule.mjs +2 -190
  314. package/dist/esm/helpers/insertStyleRule.mjs.map +2 -2
  315. package/dist/esm/helpers/isObj.js +1 -4
  316. package/dist/esm/helpers/isObj.js.map +2 -2
  317. package/dist/esm/helpers/isObj.mjs +1 -4
  318. package/dist/esm/helpers/isObj.mjs.map +2 -2
  319. package/dist/esm/helpers/isTamaguiComponent.js +1 -7
  320. package/dist/esm/helpers/isTamaguiComponent.js.map +2 -2
  321. package/dist/esm/helpers/isTamaguiComponent.mjs +1 -7
  322. package/dist/esm/helpers/isTamaguiComponent.mjs.map +2 -2
  323. package/dist/esm/helpers/isTamaguiElement.js +1 -8
  324. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  325. package/dist/esm/helpers/isTamaguiElement.mjs +1 -8
  326. package/dist/esm/helpers/isTamaguiElement.mjs.map +2 -2
  327. package/dist/esm/helpers/matchMedia.js +1 -16
  328. package/dist/esm/helpers/matchMedia.js.map +2 -2
  329. package/dist/esm/helpers/matchMedia.mjs +1 -16
  330. package/dist/esm/helpers/matchMedia.mjs.map +2 -2
  331. package/dist/esm/helpers/matchMedia.native.js +1 -22
  332. package/dist/esm/helpers/matchMedia.native.js.map +2 -2
  333. package/dist/esm/helpers/matchMedia.native.mjs +1 -22
  334. package/dist/esm/helpers/matchMedia.native.mjs.map +2 -2
  335. package/dist/esm/helpers/mergeProps.js +1 -29
  336. package/dist/esm/helpers/mergeProps.js.map +2 -2
  337. package/dist/esm/helpers/mergeProps.mjs +1 -29
  338. package/dist/esm/helpers/mergeProps.mjs.map +2 -2
  339. package/dist/esm/helpers/normalizeColor.js +1 -30
  340. package/dist/esm/helpers/normalizeColor.js.map +2 -2
  341. package/dist/esm/helpers/normalizeColor.mjs +1 -30
  342. package/dist/esm/helpers/normalizeColor.mjs.map +2 -2
  343. package/dist/esm/helpers/normalizeShadow.js +1 -22
  344. package/dist/esm/helpers/normalizeShadow.js.map +2 -2
  345. package/dist/esm/helpers/normalizeShadow.mjs +1 -22
  346. package/dist/esm/helpers/normalizeShadow.mjs.map +2 -2
  347. package/dist/esm/helpers/normalizeShadow.native.js +1 -30
  348. package/dist/esm/helpers/normalizeShadow.native.js.map +2 -2
  349. package/dist/esm/helpers/normalizeShadow.native.mjs +1 -30
  350. package/dist/esm/helpers/normalizeShadow.native.mjs.map +2 -2
  351. package/dist/esm/helpers/normalizeStylePropKeys.js +1 -4
  352. package/dist/esm/helpers/normalizeStylePropKeys.js.map +2 -2
  353. package/dist/esm/helpers/normalizeStylePropKeys.mjs +1 -4
  354. package/dist/esm/helpers/normalizeStylePropKeys.mjs.map +2 -2
  355. package/dist/esm/helpers/normalizeStylePropKeys.native.js +1 -15
  356. package/dist/esm/helpers/normalizeStylePropKeys.native.js.map +2 -2
  357. package/dist/esm/helpers/normalizeStylePropKeys.native.mjs +1 -15
  358. package/dist/esm/helpers/normalizeStylePropKeys.native.mjs.map +2 -2
  359. package/dist/esm/helpers/normalizeValueWithProperty.js +1 -100
  360. package/dist/esm/helpers/normalizeValueWithProperty.js.map +2 -2
  361. package/dist/esm/helpers/normalizeValueWithProperty.mjs +1 -100
  362. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +2 -2
  363. package/dist/esm/helpers/proxyThemeVariables.js +1 -15
  364. package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
  365. package/dist/esm/helpers/proxyThemeVariables.mjs +1 -15
  366. package/dist/esm/helpers/proxyThemeVariables.mjs.map +2 -2
  367. package/dist/esm/helpers/pseudoDescriptors.js +1 -28
  368. package/dist/esm/helpers/pseudoDescriptors.js.map +2 -2
  369. package/dist/esm/helpers/pseudoDescriptors.mjs +1 -28
  370. package/dist/esm/helpers/pseudoDescriptors.mjs.map +2 -2
  371. package/dist/esm/helpers/registerCSSVariable.js +1 -13
  372. package/dist/esm/helpers/registerCSSVariable.js.map +2 -2
  373. package/dist/esm/helpers/registerCSSVariable.mjs +1 -13
  374. package/dist/esm/helpers/registerCSSVariable.mjs.map +2 -2
  375. package/dist/esm/helpers/themeable.js +1 -27
  376. package/dist/esm/helpers/themeable.js.map +2 -2
  377. package/dist/esm/helpers/themeable.mjs +1 -27
  378. package/dist/esm/helpers/themeable.mjs.map +2 -2
  379. package/dist/esm/helpers/themes.js +1 -50
  380. package/dist/esm/helpers/themes.js.map +2 -2
  381. package/dist/esm/helpers/themes.mjs +1 -50
  382. package/dist/esm/helpers/themes.mjs.map +2 -2
  383. package/dist/esm/helpers/timer.js +1 -10
  384. package/dist/esm/helpers/timer.js.map +2 -2
  385. package/dist/esm/helpers/timer.mjs +1 -10
  386. package/dist/esm/helpers/timer.mjs.map +2 -2
  387. package/dist/esm/helpers/useShallowSetState.js +1 -34
  388. package/dist/esm/helpers/useShallowSetState.js.map +2 -2
  389. package/dist/esm/helpers/useShallowSetState.mjs +1 -34
  390. package/dist/esm/helpers/useShallowSetState.mjs.map +2 -2
  391. package/dist/esm/helpers/warnOnce.js +1 -13
  392. package/dist/esm/helpers/warnOnce.js.map +2 -2
  393. package/dist/esm/helpers/warnOnce.mjs +1 -13
  394. package/dist/esm/helpers/warnOnce.mjs.map +2 -2
  395. package/dist/esm/helpers/withStaticProperties.js +1 -8
  396. package/dist/esm/helpers/withStaticProperties.js.map +2 -2
  397. package/dist/esm/helpers/withStaticProperties.mjs +1 -8
  398. package/dist/esm/helpers/withStaticProperties.mjs.map +2 -2
  399. package/dist/esm/hooks/getThemeUnwrapped.js +1 -8
  400. package/dist/esm/hooks/getThemeUnwrapped.js.map +2 -2
  401. package/dist/esm/hooks/getThemeUnwrapped.mjs +1 -8
  402. package/dist/esm/hooks/getThemeUnwrapped.mjs.map +2 -2
  403. package/dist/esm/hooks/useAnimationDriver.js +1 -9
  404. package/dist/esm/hooks/useAnimationDriver.js.map +2 -2
  405. package/dist/esm/hooks/useAnimationDriver.mjs +1 -9
  406. package/dist/esm/hooks/useAnimationDriver.mjs.map +2 -2
  407. package/dist/esm/hooks/useId.js +1 -4
  408. package/dist/esm/hooks/useId.js.map +2 -2
  409. package/dist/esm/hooks/useId.mjs +1 -4
  410. package/dist/esm/hooks/useId.mjs.map +2 -2
  411. package/dist/esm/hooks/useIsTouchDevice.js +1 -8
  412. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  413. package/dist/esm/hooks/useIsTouchDevice.mjs +1 -8
  414. package/dist/esm/hooks/useIsTouchDevice.mjs.map +2 -2
  415. package/dist/esm/hooks/useMedia.js +1 -225
  416. package/dist/esm/hooks/useMedia.js.map +2 -2
  417. package/dist/esm/hooks/useMedia.mjs +1 -225
  418. package/dist/esm/hooks/useMedia.mjs.map +2 -2
  419. package/dist/esm/hooks/useSafeRef.js +1 -34
  420. package/dist/esm/hooks/useSafeRef.js.map +2 -2
  421. package/dist/esm/hooks/useSafeRef.mjs +1 -34
  422. package/dist/esm/hooks/useSafeRef.mjs.map +2 -2
  423. package/dist/esm/hooks/useServerHooks.js +1 -10
  424. package/dist/esm/hooks/useServerHooks.js.map +2 -2
  425. package/dist/esm/hooks/useServerHooks.mjs +1 -10
  426. package/dist/esm/hooks/useServerHooks.mjs.map +2 -2
  427. package/dist/esm/hooks/useStyle.js +1 -36
  428. package/dist/esm/hooks/useStyle.js.map +2 -2
  429. package/dist/esm/hooks/useStyle.mjs +1 -36
  430. package/dist/esm/hooks/useStyle.mjs.map +2 -2
  431. package/dist/esm/hooks/useTheme.js +1 -204
  432. package/dist/esm/hooks/useTheme.js.map +2 -2
  433. package/dist/esm/hooks/useTheme.mjs +1 -204
  434. package/dist/esm/hooks/useTheme.mjs.map +2 -2
  435. package/dist/esm/hooks/useThemeName.js +1 -27
  436. package/dist/esm/hooks/useThemeName.js.map +2 -2
  437. package/dist/esm/hooks/useThemeName.mjs +1 -27
  438. package/dist/esm/hooks/useThemeName.mjs.map +2 -2
  439. package/dist/esm/index.js +1 -88
  440. package/dist/esm/index.js.map +2 -2
  441. package/dist/esm/index.mjs +1 -88
  442. package/dist/esm/index.mjs.map +2 -2
  443. package/dist/esm/inject-styles.js +1 -15
  444. package/dist/esm/inject-styles.js.map +2 -2
  445. package/dist/esm/inject-styles.mjs +1 -15
  446. package/dist/esm/inject-styles.mjs.map +2 -2
  447. package/dist/esm/insertFont.js +1 -66
  448. package/dist/esm/insertFont.js.map +2 -2
  449. package/dist/esm/insertFont.mjs +1 -66
  450. package/dist/esm/insertFont.mjs.map +2 -2
  451. package/dist/esm/setupHooks.js +1 -8
  452. package/dist/esm/setupHooks.js.map +2 -2
  453. package/dist/esm/setupHooks.mjs +1 -8
  454. package/dist/esm/setupHooks.mjs.map +2 -2
  455. package/dist/esm/setupReactNative.js +1 -24
  456. package/dist/esm/setupReactNative.js.map +2 -2
  457. package/dist/esm/setupReactNative.mjs +1 -24
  458. package/dist/esm/setupReactNative.mjs.map +2 -2
  459. package/dist/esm/styled.js +1 -69
  460. package/dist/esm/styled.js.map +2 -2
  461. package/dist/esm/styled.mjs +1 -69
  462. package/dist/esm/styled.mjs.map +2 -2
  463. package/dist/esm/updateTheme.js +1 -22
  464. package/dist/esm/updateTheme.js.map +2 -2
  465. package/dist/esm/updateTheme.mjs +1 -22
  466. package/dist/esm/updateTheme.mjs.map +2 -2
  467. package/dist/esm/views/AnimationDriverProvider.js +1 -8
  468. package/dist/esm/views/AnimationDriverProvider.js.map +2 -2
  469. package/dist/esm/views/AnimationDriverProvider.mjs +1 -8
  470. package/dist/esm/views/AnimationDriverProvider.mjs.map +2 -2
  471. package/dist/esm/views/FontLanguage.js +1 -16
  472. package/dist/esm/views/FontLanguage.js.map +2 -2
  473. package/dist/esm/views/FontLanguage.mjs +1 -16
  474. package/dist/esm/views/FontLanguage.mjs.map +2 -2
  475. package/dist/esm/views/FontLanguage.native.js +1 -10
  476. package/dist/esm/views/FontLanguage.native.js.map +2 -2
  477. package/dist/esm/views/FontLanguage.native.mjs +1 -10
  478. package/dist/esm/views/FontLanguage.native.mjs.map +2 -2
  479. package/dist/esm/views/Slot.js +1 -65
  480. package/dist/esm/views/Slot.js.map +2 -2
  481. package/dist/esm/views/Slot.mjs +1 -65
  482. package/dist/esm/views/Slot.mjs.map +2 -2
  483. package/dist/esm/views/Stack.js +1 -13
  484. package/dist/esm/views/Stack.js.map +2 -2
  485. package/dist/esm/views/Stack.mjs +1 -13
  486. package/dist/esm/views/Stack.mjs.map +2 -2
  487. package/dist/esm/views/TamaguiProvider.js +1 -56
  488. package/dist/esm/views/TamaguiProvider.js.map +2 -2
  489. package/dist/esm/views/TamaguiProvider.mjs +1 -56
  490. package/dist/esm/views/TamaguiProvider.mjs.map +2 -2
  491. package/dist/esm/views/Text.js +1 -71
  492. package/dist/esm/views/Text.js.map +2 -2
  493. package/dist/esm/views/Text.mjs +1 -71
  494. package/dist/esm/views/Text.mjs.map +2 -2
  495. package/dist/esm/views/Theme.js +1 -55
  496. package/dist/esm/views/Theme.js.map +2 -2
  497. package/dist/esm/views/Theme.mjs +1 -55
  498. package/dist/esm/views/Theme.mjs.map +2 -2
  499. package/dist/esm/views/ThemeProvider.js +1 -44
  500. package/dist/esm/views/ThemeProvider.js.map +2 -2
  501. package/dist/esm/views/ThemeProvider.mjs +1 -44
  502. package/dist/esm/views/ThemeProvider.mjs.map +2 -2
  503. package/package.json +9 -9
@@ -1,226 +1,2 @@
1
- import { startTransition, useEffect, useMemo, useSyncExternalStore } from "react";
2
- import { getConfig } from "../config.js";
3
- import { createProxy } from "../helpers/createProxy.js";
4
- import { matchMedia } from "../helpers/matchMedia";
5
- import { useSafeRef } from "./useSafeRef.js";
6
- let mediaState = (
7
- // development only safeguard
8
- process.env.NODE_ENV === "development" ? createProxy(
9
- {},
10
- {
11
- get(target, key) {
12
- if (typeof key === "string" && key[0] === "$" && // dont error on $$typeof
13
- key[1] !== "$") {
14
- throw new Error(`Access mediaState should not use "$": ${key}`);
15
- }
16
- return Reflect.get(target, key);
17
- }
18
- }
19
- ) : {}
20
- );
21
- const mediaQueryConfig = {};
22
- const getMedia = () => mediaState;
23
- const mediaKeysWithAndWithout$ = /* @__PURE__ */ new Set();
24
- let initState;
25
- const getInitialMediaState = () => {
26
- return (getConfig().disableSSR ? mediaState : initState) || {};
27
- };
28
- let mediaKeysOrdered;
29
- const getMediaKeyImportance = (key) => {
30
- if (process.env.NODE_ENV === "development" && key[0] === "$") {
31
- throw new Error("use short key");
32
- }
33
- return mediaKeysOrdered.indexOf(key) + 2;
34
- };
35
- const dispose = /* @__PURE__ */ new Set();
36
- const configureMedia = (config) => {
37
- const { media, mediaQueryDefaultActive } = config;
38
- if (!media)
39
- return;
40
- for (const key in media) {
41
- mediaState[key] = (mediaQueryDefaultActive == null ? void 0 : mediaQueryDefaultActive[key]) || false;
42
- mediaKeysWithAndWithout$.add(key);
43
- mediaKeysWithAndWithout$.add(`$${key}`);
44
- }
45
- Object.assign(mediaQueryConfig, media);
46
- initState = { ...mediaState };
47
- updateCurrentState();
48
- mediaKeysOrdered = Object.keys(media);
49
- if (config.disableSSR) {
50
- setupMediaListeners();
51
- }
52
- };
53
- function unlisten() {
54
- dispose.forEach((cb) => cb());
55
- dispose.clear();
56
- }
57
- let configuredKey = "";
58
- function setupMediaListeners() {
59
- const nextKey = JSON.stringify(mediaQueryConfig);
60
- if (nextKey === configuredKey)
61
- return;
62
- configuredKey = nextKey;
63
- unlisten();
64
- for (const key in mediaQueryConfig) {
65
- let update2 = function() {
66
- const next = !!getMatch().matches;
67
- if (next === mediaState[key])
68
- return;
69
- mediaState = { ...mediaState, [key]: next };
70
- updateCurrentState();
71
- };
72
- var update = update2;
73
- const str = mediaObjectToString(mediaQueryConfig[key]);
74
- const getMatch = () => matchMedia(str);
75
- const match = getMatch();
76
- if (!match) {
77
- throw new Error("\u26A0\uFE0F No match");
78
- }
79
- match.addListener(update2);
80
- dispose.add(() => {
81
- match.removeListener(update2);
82
- });
83
- update2();
84
- }
85
- }
86
- function useMediaListeners(config) {
87
- if (config.disableSSR)
88
- return;
89
- useEffect(() => {
90
- setupMediaListeners();
91
- }, []);
92
- }
93
- const listeners = /* @__PURE__ */ new Set();
94
- let flushing = false;
95
- function updateCurrentState() {
96
- if (flushing)
97
- return;
98
- flushing = true;
99
- Promise.resolve().then(() => {
100
- flushing = false;
101
- startTransition(() => {
102
- listeners.forEach((cb) => cb(mediaState));
103
- });
104
- });
105
- }
106
- const shouldUpdate = /* @__PURE__ */ new WeakMap();
107
- function setMediaShouldUpdate(ref, props) {
108
- return shouldUpdate.set(ref, props);
109
- }
110
- function subscribe(subscriber) {
111
- listeners.add(subscriber);
112
- return () => listeners.delete(subscriber);
113
- }
114
- function useMedia(uid, debug) {
115
- const internal = useSafeRef(void 0);
116
- if (!internal.current) {
117
- internal.current = {
118
- prev: initState
119
- };
120
- }
121
- const state = useSyncExternalStore(
122
- subscribe,
123
- () => {
124
- const { touched, prev } = internal.current;
125
- const componentState = uid ? shouldUpdate.get(uid) : void 0;
126
- if ((componentState == null ? void 0 : componentState.enabled) === false) {
127
- return prev;
128
- }
129
- const testKeys = (componentState == null ? void 0 : componentState.keys) ?? ((!componentState || componentState.enabled) && touched ? [...touched] : null);
130
- const hasntUpdated = testKeys == null ? void 0 : testKeys.every((key) => mediaState[key] === prev[key]);
131
- if (hasntUpdated) {
132
- return prev;
133
- }
134
- internal.current.prev = mediaState;
135
- return mediaState;
136
- },
137
- () => initState
138
- );
139
- return useMemo(() => {
140
- return new Proxy(state, {
141
- get(_, key) {
142
- if (typeof key === "string") {
143
- internal.current.touched ||= /* @__PURE__ */ new Set();
144
- internal.current.touched.add(key);
145
- }
146
- return Reflect.get(state, key);
147
- }
148
- });
149
- }, [state]);
150
- }
151
- function useMediaPropsActive(props) {
152
- const media = useMedia();
153
- return useMemo(() => {
154
- const next = {};
155
- const importancesUsed = {};
156
- const propNames = Object.keys(props);
157
- for (let i = propNames.length - 1; i >= 0; i--) {
158
- const key = propNames[i];
159
- const val = props[key];
160
- if (key[0] === "$") {
161
- const mediaKey = key.slice(1);
162
- if (!media[mediaKey])
163
- continue;
164
- if (val && typeof val === "object") {
165
- const subKeys = Object.keys(val);
166
- for (let j = subKeys.length; j--; j >= 0) {
167
- const subKey = subKeys[j];
168
- mergeMediaByImportance(next, mediaKey, subKey, val[subKey], importancesUsed);
169
- }
170
- }
171
- } else {
172
- mergeMediaByImportance(next, "", key, val, importancesUsed);
173
- }
174
- }
175
- return next;
176
- }, [media, props]);
177
- }
178
- const getMediaImportanceIfMoreImportant = (mediaKey, key, importancesUsed) => {
179
- const importance = getMediaKeyImportance(mediaKey);
180
- return !importancesUsed[key] || importance > importancesUsed[key] ? importance : null;
181
- };
182
- function mergeMediaByImportance(onto, mediaKey, key, value, importancesUsed) {
183
- const importance = getMediaImportanceIfMoreImportant(mediaKey, key, importancesUsed);
184
- if (importance === null) {
185
- return false;
186
- }
187
- importancesUsed[key] = importance;
188
- onto[key] = value;
189
- return true;
190
- }
191
- function camelToHyphen(str) {
192
- return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase();
193
- }
194
- function mediaObjectToString(query) {
195
- if (typeof query === "string") {
196
- return query;
197
- }
198
- return Object.entries(query).map(([feature, value]) => {
199
- feature = camelToHyphen(feature);
200
- if (typeof value === "string") {
201
- return `(${feature}: ${value})`;
202
- }
203
- if (typeof value === "number" && /[height|width]$/.test(feature)) {
204
- value = `${value}px`;
205
- }
206
- return `(${feature}: ${value})`;
207
- }).join(" and ");
208
- }
209
- export {
210
- configureMedia,
211
- getInitialMediaState,
212
- getMedia,
213
- getMediaImportanceIfMoreImportant,
214
- getMediaKeyImportance,
215
- mediaKeysWithAndWithout$,
216
- mediaObjectToString,
217
- mediaQueryConfig,
218
- mediaState,
219
- mergeMediaByImportance,
220
- setMediaShouldUpdate,
221
- setupMediaListeners,
222
- useMedia,
223
- useMediaListeners,
224
- useMediaPropsActive
225
- };
1
+ import{startTransition as j,useEffect as E,useMemo as S,useSyncExternalStore as I}from"react";import{getConfig as Q}from"../config.js";import{createProxy as U}from"../helpers/createProxy.js";import{matchMedia as A}from"../helpers/matchMedia";import{useSafeRef as R}from"./useSafeRef.js";let c=process.env.NODE_ENV==="development"?U({},{get(e,n){if(typeof n=="string"&&n[0]==="$"&&n[1]!=="$")throw new Error(`Access mediaState should not use "$": ${n}`);return Reflect.get(e,n)}}):{};const u={},F=()=>c,h=new Set;let f;const H=()=>(Q().disableSSR?c:f)||{};let x;const v=e=>{if(process.env.NODE_ENV==="development"&&e[0]==="$")throw new Error("use short key");return x.indexOf(e)+2},g=new Set,J=e=>{const{media:n,mediaQueryDefaultActive:t}=e;if(n){for(const r in n)c[r]=(t==null?void 0:t[r])||!1,h.add(r),h.add(`$${r}`);Object.assign(u,n),f={...c},w(),x=Object.keys(n),e.disableSSR&&$()}};function C(){g.forEach(e=>e()),g.clear()}let b="";function $(){const e=JSON.stringify(u);if(e!==b){b=e,C();for(const t in u){let o=function(){const a=!!s().matches;a!==c[t]&&(c={...c,[t]:a},w())};var n=o;const r=k(u[t]),s=()=>A(r),i=s();if(!i)throw new Error("\u26A0\uFE0F No match");i.addListener(o),g.add(()=>{i.removeListener(o)}),o()}}}function Z(e){e.disableSSR||E(()=>{$()},[])}const l=new Set;let m=!1;function w(){m||(m=!0,Promise.resolve().then(()=>{m=!1,j(()=>{l.forEach(e=>e(c))})}))}const K=new WeakMap;function z(e,n){return K.set(e,n)}function N(e){return l.add(e),()=>l.delete(e)}function L(e,n){const t=R(void 0);t.current||(t.current={prev:f});const r=I(N,()=>{const{touched:s,prev:i}=t.current,o=e?K.get(e):void 0;if((o==null?void 0:o.enabled)===!1)return i;const a=(o==null?void 0:o.keys)??((!o||o.enabled)&&s?[...s]:null);return(a==null?void 0:a.every(d=>c[d]===i[d]))?i:(t.current.prev=c,c)},()=>f);return S(()=>new Proxy(r,{get(s,i){return typeof i=="string"&&(t.current.touched||=new Set,t.current.touched.add(i)),Reflect.get(r,i)}}),[r])}function G(e){const n=L();return S(()=>{const t={},r={},s=Object.keys(e);for(let i=s.length-1;i>=0;i--){const o=s[i],a=e[o];if(o[0]==="$"){const p=o.slice(1);if(!n[p])continue;if(a&&typeof a=="object"){const d=Object.keys(a);for(let y=d.length;y--;y>=0){const M=d[y];O(t,p,M,a[M],r)}}}else O(t,"",o,a,r)}return t},[n,e])}const T=(e,n,t)=>{const r=v(e);return!t[n]||r>t[n]?r:null};function O(e,n,t,r,s){const i=T(n,t,s);return i===null?!1:(s[t]=i,e[t]=r,!0)}function P(e){return e.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`).toLowerCase()}function k(e){return typeof e=="string"?e:Object.entries(e).map(([n,t])=>(n=P(n),typeof t=="string"?`(${n}: ${t})`:(typeof t=="number"&&/[height|width]$/.test(n)&&(t=`${t}px`),`(${n}: ${t})`))).join(" and ")}export{J as configureMedia,H as getInitialMediaState,F as getMedia,T as getMediaImportanceIfMoreImportant,v as getMediaKeyImportance,h as mediaKeysWithAndWithout$,k as mediaObjectToString,u as mediaQueryConfig,c as mediaState,O as mergeMediaByImportance,z as setMediaShouldUpdate,$ as setupMediaListeners,L as useMedia,Z as useMediaListeners,G as useMediaPropsActive};
226
2
  //# sourceMappingURL=useMedia.js.map
@@ -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": ["update"]
5
+ "mappings": "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",
6
+ "names": ["startTransition", "useEffect", "useMemo", "useSyncExternalStore", "getConfig", "createProxy", "matchMedia", "useSafeRef", "mediaState", "target", "key", "mediaQueryConfig", "getMedia", "mediaKeysWithAndWithout$", "initState", "getInitialMediaState", "mediaKeysOrdered", "getMediaKeyImportance", "dispose", "configureMedia", "config", "media", "mediaQueryDefaultActive", "updateCurrentState", "setupMediaListeners", "unlisten", "cb", "configuredKey", "nextKey", "update", "next", "getMatch", "str", "mediaObjectToString", "match", "useMediaListeners", "listeners", "flushing", "shouldUpdate", "setMediaShouldUpdate", "ref", "props", "subscribe", "subscriber", "useMedia", "uid", "debug", "internal", "state", "touched", "prev", "componentState", "testKeys", "_", "useMediaPropsActive", "importancesUsed", "propNames", "val", "mediaKey", "subKeys", "j", "subKey", "mergeMediaByImportance", "getMediaImportanceIfMoreImportant", "importance", "onto", "value", "camelToHyphen", "m", "query", "feature"]
7
7
  }
@@ -1,226 +1,2 @@
1
- import { startTransition, useEffect, useMemo, useSyncExternalStore } from "react";
2
- import { getConfig } from "../config.js";
3
- import { createProxy } from "../helpers/createProxy.js";
4
- import { matchMedia } from "../helpers/matchMedia";
5
- import { useSafeRef } from "./useSafeRef.js";
6
- let mediaState = (
7
- // development only safeguard
8
- process.env.NODE_ENV === "development" ? createProxy(
9
- {},
10
- {
11
- get(target, key) {
12
- if (typeof key === "string" && key[0] === "$" && // dont error on $$typeof
13
- key[1] !== "$") {
14
- throw new Error(`Access mediaState should not use "$": ${key}`);
15
- }
16
- return Reflect.get(target, key);
17
- }
18
- }
19
- ) : {}
20
- );
21
- const mediaQueryConfig = {};
22
- const getMedia = () => mediaState;
23
- const mediaKeysWithAndWithout$ = /* @__PURE__ */ new Set();
24
- let initState;
25
- const getInitialMediaState = () => {
26
- return (getConfig().disableSSR ? mediaState : initState) || {};
27
- };
28
- let mediaKeysOrdered;
29
- const getMediaKeyImportance = (key) => {
30
- if (process.env.NODE_ENV === "development" && key[0] === "$") {
31
- throw new Error("use short key");
32
- }
33
- return mediaKeysOrdered.indexOf(key) + 2;
34
- };
35
- const dispose = /* @__PURE__ */ new Set();
36
- const configureMedia = (config) => {
37
- const { media, mediaQueryDefaultActive } = config;
38
- if (!media)
39
- return;
40
- for (const key in media) {
41
- mediaState[key] = (mediaQueryDefaultActive == null ? void 0 : mediaQueryDefaultActive[key]) || false;
42
- mediaKeysWithAndWithout$.add(key);
43
- mediaKeysWithAndWithout$.add(`$${key}`);
44
- }
45
- Object.assign(mediaQueryConfig, media);
46
- initState = { ...mediaState };
47
- updateCurrentState();
48
- mediaKeysOrdered = Object.keys(media);
49
- if (config.disableSSR) {
50
- setupMediaListeners();
51
- }
52
- };
53
- function unlisten() {
54
- dispose.forEach((cb) => cb());
55
- dispose.clear();
56
- }
57
- let configuredKey = "";
58
- function setupMediaListeners() {
59
- const nextKey = JSON.stringify(mediaQueryConfig);
60
- if (nextKey === configuredKey)
61
- return;
62
- configuredKey = nextKey;
63
- unlisten();
64
- for (const key in mediaQueryConfig) {
65
- let update2 = function() {
66
- const next = !!getMatch().matches;
67
- if (next === mediaState[key])
68
- return;
69
- mediaState = { ...mediaState, [key]: next };
70
- updateCurrentState();
71
- };
72
- var update = update2;
73
- const str = mediaObjectToString(mediaQueryConfig[key]);
74
- const getMatch = () => matchMedia(str);
75
- const match = getMatch();
76
- if (!match) {
77
- throw new Error("\u26A0\uFE0F No match");
78
- }
79
- match.addListener(update2);
80
- dispose.add(() => {
81
- match.removeListener(update2);
82
- });
83
- update2();
84
- }
85
- }
86
- function useMediaListeners(config) {
87
- if (config.disableSSR)
88
- return;
89
- useEffect(() => {
90
- setupMediaListeners();
91
- }, []);
92
- }
93
- const listeners = /* @__PURE__ */ new Set();
94
- let flushing = false;
95
- function updateCurrentState() {
96
- if (flushing)
97
- return;
98
- flushing = true;
99
- Promise.resolve().then(() => {
100
- flushing = false;
101
- startTransition(() => {
102
- listeners.forEach((cb) => cb(mediaState));
103
- });
104
- });
105
- }
106
- const shouldUpdate = /* @__PURE__ */ new WeakMap();
107
- function setMediaShouldUpdate(ref, props) {
108
- return shouldUpdate.set(ref, props);
109
- }
110
- function subscribe(subscriber) {
111
- listeners.add(subscriber);
112
- return () => listeners.delete(subscriber);
113
- }
114
- function useMedia(uid, debug) {
115
- const internal = useSafeRef(void 0);
116
- if (!internal.current) {
117
- internal.current = {
118
- prev: initState
119
- };
120
- }
121
- const state = useSyncExternalStore(
122
- subscribe,
123
- () => {
124
- const { touched, prev } = internal.current;
125
- const componentState = uid ? shouldUpdate.get(uid) : void 0;
126
- if ((componentState == null ? void 0 : componentState.enabled) === false) {
127
- return prev;
128
- }
129
- const testKeys = (componentState == null ? void 0 : componentState.keys) ?? ((!componentState || componentState.enabled) && touched ? [...touched] : null);
130
- const hasntUpdated = testKeys == null ? void 0 : testKeys.every((key) => mediaState[key] === prev[key]);
131
- if (hasntUpdated) {
132
- return prev;
133
- }
134
- internal.current.prev = mediaState;
135
- return mediaState;
136
- },
137
- () => initState
138
- );
139
- return useMemo(() => {
140
- return new Proxy(state, {
141
- get(_, key) {
142
- if (typeof key === "string") {
143
- internal.current.touched ||= /* @__PURE__ */ new Set();
144
- internal.current.touched.add(key);
145
- }
146
- return Reflect.get(state, key);
147
- }
148
- });
149
- }, [state]);
150
- }
151
- function useMediaPropsActive(props) {
152
- const media = useMedia();
153
- return useMemo(() => {
154
- const next = {};
155
- const importancesUsed = {};
156
- const propNames = Object.keys(props);
157
- for (let i = propNames.length - 1; i >= 0; i--) {
158
- const key = propNames[i];
159
- const val = props[key];
160
- if (key[0] === "$") {
161
- const mediaKey = key.slice(1);
162
- if (!media[mediaKey])
163
- continue;
164
- if (val && typeof val === "object") {
165
- const subKeys = Object.keys(val);
166
- for (let j = subKeys.length; j--; j >= 0) {
167
- const subKey = subKeys[j];
168
- mergeMediaByImportance(next, mediaKey, subKey, val[subKey], importancesUsed);
169
- }
170
- }
171
- } else {
172
- mergeMediaByImportance(next, "", key, val, importancesUsed);
173
- }
174
- }
175
- return next;
176
- }, [media, props]);
177
- }
178
- const getMediaImportanceIfMoreImportant = (mediaKey, key, importancesUsed) => {
179
- const importance = getMediaKeyImportance(mediaKey);
180
- return !importancesUsed[key] || importance > importancesUsed[key] ? importance : null;
181
- };
182
- function mergeMediaByImportance(onto, mediaKey, key, value, importancesUsed) {
183
- const importance = getMediaImportanceIfMoreImportant(mediaKey, key, importancesUsed);
184
- if (importance === null) {
185
- return false;
186
- }
187
- importancesUsed[key] = importance;
188
- onto[key] = value;
189
- return true;
190
- }
191
- function camelToHyphen(str) {
192
- return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase();
193
- }
194
- function mediaObjectToString(query) {
195
- if (typeof query === "string") {
196
- return query;
197
- }
198
- return Object.entries(query).map(([feature, value]) => {
199
- feature = camelToHyphen(feature);
200
- if (typeof value === "string") {
201
- return `(${feature}: ${value})`;
202
- }
203
- if (typeof value === "number" && /[height|width]$/.test(feature)) {
204
- value = `${value}px`;
205
- }
206
- return `(${feature}: ${value})`;
207
- }).join(" and ");
208
- }
209
- export {
210
- configureMedia,
211
- getInitialMediaState,
212
- getMedia,
213
- getMediaImportanceIfMoreImportant,
214
- getMediaKeyImportance,
215
- mediaKeysWithAndWithout$,
216
- mediaObjectToString,
217
- mediaQueryConfig,
218
- mediaState,
219
- mergeMediaByImportance,
220
- setMediaShouldUpdate,
221
- setupMediaListeners,
222
- useMedia,
223
- useMediaListeners,
224
- useMediaPropsActive
225
- };
1
+ import{startTransition as j,useEffect as E,useMemo as S,useSyncExternalStore as I}from"react";import{getConfig as Q}from"../config.js";import{createProxy as U}from"../helpers/createProxy.js";import{matchMedia as A}from"../helpers/matchMedia";import{useSafeRef as R}from"./useSafeRef.js";let c=process.env.NODE_ENV==="development"?U({},{get(e,n){if(typeof n=="string"&&n[0]==="$"&&n[1]!=="$")throw new Error(`Access mediaState should not use "$": ${n}`);return Reflect.get(e,n)}}):{};const u={},F=()=>c,h=new Set;let f;const H=()=>(Q().disableSSR?c:f)||{};let x;const v=e=>{if(process.env.NODE_ENV==="development"&&e[0]==="$")throw new Error("use short key");return x.indexOf(e)+2},g=new Set,J=e=>{const{media:n,mediaQueryDefaultActive:t}=e;if(n){for(const r in n)c[r]=(t==null?void 0:t[r])||!1,h.add(r),h.add(`$${r}`);Object.assign(u,n),f={...c},w(),x=Object.keys(n),e.disableSSR&&$()}};function C(){g.forEach(e=>e()),g.clear()}let b="";function $(){const e=JSON.stringify(u);if(e!==b){b=e,C();for(const t in u){let o=function(){const a=!!s().matches;a!==c[t]&&(c={...c,[t]:a},w())};var n=o;const r=k(u[t]),s=()=>A(r),i=s();if(!i)throw new Error("\u26A0\uFE0F No match");i.addListener(o),g.add(()=>{i.removeListener(o)}),o()}}}function Z(e){e.disableSSR||E(()=>{$()},[])}const l=new Set;let m=!1;function w(){m||(m=!0,Promise.resolve().then(()=>{m=!1,j(()=>{l.forEach(e=>e(c))})}))}const K=new WeakMap;function z(e,n){return K.set(e,n)}function N(e){return l.add(e),()=>l.delete(e)}function L(e,n){const t=R(void 0);t.current||(t.current={prev:f});const r=I(N,()=>{const{touched:s,prev:i}=t.current,o=e?K.get(e):void 0;if((o==null?void 0:o.enabled)===!1)return i;const a=(o==null?void 0:o.keys)??((!o||o.enabled)&&s?[...s]:null);return(a==null?void 0:a.every(d=>c[d]===i[d]))?i:(t.current.prev=c,c)},()=>f);return S(()=>new Proxy(r,{get(s,i){return typeof i=="string"&&(t.current.touched||=new Set,t.current.touched.add(i)),Reflect.get(r,i)}}),[r])}function G(e){const n=L();return S(()=>{const t={},r={},s=Object.keys(e);for(let i=s.length-1;i>=0;i--){const o=s[i],a=e[o];if(o[0]==="$"){const p=o.slice(1);if(!n[p])continue;if(a&&typeof a=="object"){const d=Object.keys(a);for(let y=d.length;y--;y>=0){const M=d[y];O(t,p,M,a[M],r)}}}else O(t,"",o,a,r)}return t},[n,e])}const T=(e,n,t)=>{const r=v(e);return!t[n]||r>t[n]?r:null};function O(e,n,t,r,s){const i=T(n,t,s);return i===null?!1:(s[t]=i,e[t]=r,!0)}function P(e){return e.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`).toLowerCase()}function k(e){return typeof e=="string"?e:Object.entries(e).map(([n,t])=>(n=P(n),typeof t=="string"?`(${n}: ${t})`:(typeof t=="number"&&/[height|width]$/.test(n)&&(t=`${t}px`),`(${n}: ${t})`))).join(" and ")}export{J as configureMedia,H as getInitialMediaState,F as getMedia,T as getMediaImportanceIfMoreImportant,v as getMediaKeyImportance,h as mediaKeysWithAndWithout$,k as mediaObjectToString,u as mediaQueryConfig,c as mediaState,O as mergeMediaByImportance,z as setMediaShouldUpdate,$ as setupMediaListeners,L as useMedia,Z as useMediaListeners,G as useMediaPropsActive};
226
2
  //# sourceMappingURL=useMedia.mjs.map
@@ -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": ["update"]
5
+ "mappings": "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",
6
+ "names": ["startTransition", "useEffect", "useMemo", "useSyncExternalStore", "getConfig", "createProxy", "matchMedia", "useSafeRef", "mediaState", "target", "key", "mediaQueryConfig", "getMedia", "mediaKeysWithAndWithout$", "initState", "getInitialMediaState", "mediaKeysOrdered", "getMediaKeyImportance", "dispose", "configureMedia", "config", "media", "mediaQueryDefaultActive", "updateCurrentState", "setupMediaListeners", "unlisten", "cb", "configuredKey", "nextKey", "update", "next", "getMatch", "str", "mediaObjectToString", "match", "useMediaListeners", "listeners", "flushing", "shouldUpdate", "setMediaShouldUpdate", "ref", "props", "subscribe", "subscriber", "useMedia", "uid", "debug", "internal", "state", "touched", "prev", "componentState", "testKeys", "_", "useMediaPropsActive", "importancesUsed", "propNames", "val", "mediaKey", "subKeys", "j", "subKey", "mergeMediaByImportance", "getMediaImportanceIfMoreImportant", "importance", "onto", "value", "camelToHyphen", "m", "query", "feature"]
7
7
  }
@@ -1,35 +1,2 @@
1
- import { useIsomorphicLayoutEffect } from "@tamagui/constants";
2
- import { useRef } from "react";
3
- const useSafeRef = (initialValue) => {
4
- const rawRef = useRef();
5
- if (!rawRef.current) {
6
- rawRef.current = {
7
- hold: true,
8
- next: initialValue,
9
- cur: initialValue,
10
- ref: {
11
- get current() {
12
- return raw.hold ? raw.cur : raw.next;
13
- },
14
- set current(v) {
15
- if (!raw.hold) {
16
- raw.next = v;
17
- }
18
- raw.cur = v;
19
- }
20
- }
21
- };
22
- }
23
- const raw = rawRef.current;
24
- raw.hold = true;
25
- raw.cur = raw.next;
26
- useIsomorphicLayoutEffect(() => {
27
- raw.hold = false;
28
- raw.next = raw.cur;
29
- });
30
- return raw.ref;
31
- };
32
- export {
33
- useSafeRef
34
- };
1
+ import{useIsomorphicLayoutEffect as u}from"@tamagui/constants";import{useRef as c}from"react";const s=t=>{const e=c();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,u(()=>{r.hold=!1,r.next=r.cur}),r.ref};export{s as useSafeRef};
35
2
  //# sourceMappingURL=useSafeRef.js.map