@tamagui/core 1.0.0-beta.189 → 1.0.0-beta.193

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 (371) hide show
  1. package/dist/cjs/Tamagui.js +18 -1
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/ThemeContext.js +4 -0
  4. package/dist/cjs/ThemeContext.js.map +0 -0
  5. package/dist/cjs/ThemeManager.js +30 -14
  6. package/dist/cjs/ThemeManager.js.map +2 -2
  7. package/dist/cjs/conf.js +10 -1
  8. package/dist/cjs/conf.js.map +2 -2
  9. package/dist/cjs/constants/constants.js +6 -0
  10. package/dist/cjs/constants/constants.js.map +0 -0
  11. package/dist/cjs/constants/platform.js +15 -0
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/rnw.js +4 -0
  14. package/dist/cjs/constants/rnw.js.map +0 -0
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +0 -0
  17. package/dist/cjs/createComponent.js +136 -128
  18. package/dist/cjs/createComponent.js.map +2 -2
  19. package/dist/cjs/createFont.js +4 -0
  20. package/dist/cjs/createFont.js.map +0 -0
  21. package/dist/cjs/createShorthands.js +4 -0
  22. package/dist/cjs/createShorthands.js.map +0 -0
  23. package/dist/cjs/createTamagui.js +38 -18
  24. package/dist/cjs/createTamagui.js.map +2 -2
  25. package/dist/cjs/createTheme.js +4 -0
  26. package/dist/cjs/createTheme.js.map +0 -0
  27. package/dist/cjs/createTokens.js +7 -6
  28. package/dist/cjs/createTokens.js.map +2 -2
  29. package/dist/cjs/createVariable.js +18 -2
  30. package/dist/cjs/createVariable.js.map +2 -2
  31. package/dist/cjs/defaultComponentState.js +0 -30
  32. package/dist/cjs/defaultComponentState.js.map +3 -3
  33. package/dist/cjs/helpers/RNComponents.js +38 -0
  34. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  35. package/dist/cjs/helpers/addStylesUsingClassname.js +8 -0
  36. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  37. package/dist/cjs/helpers/areEqualSets.js +4 -0
  38. package/dist/cjs/helpers/areEqualSets.js.map +0 -0
  39. package/dist/cjs/helpers/createMediaStyle.js +5 -0
  40. package/dist/cjs/helpers/createMediaStyle.js.map +0 -0
  41. package/dist/cjs/helpers/createPropMapper.js +63 -61
  42. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  43. package/dist/cjs/helpers/createShallowUpdate.js +55 -0
  44. package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
  45. package/dist/cjs/helpers/createTamaguiProvider.js +5 -5
  46. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  47. package/dist/cjs/helpers/extendStaticConfig.js +9 -6
  48. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  49. package/dist/cjs/helpers/fixNativeShadow.js +4 -0
  50. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -0
  51. package/dist/cjs/helpers/fixNativeShadow.native.js +6 -2
  52. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  53. package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
  54. package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -0
  55. package/dist/cjs/helpers/getSplitStyles.js +111 -61
  56. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  57. package/dist/cjs/helpers/getStylesAtomic.js +20 -2
  58. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  59. package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
  60. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -0
  61. package/dist/cjs/helpers/insertStyleRule.js +46 -26
  62. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  63. package/dist/cjs/helpers/isObj.js +4 -0
  64. package/dist/cjs/helpers/isObj.js.map +0 -0
  65. package/dist/cjs/helpers/isTamaguiElement.js +4 -0
  66. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -0
  67. package/dist/cjs/helpers/matchMedia.js +4 -0
  68. package/dist/cjs/helpers/matchMedia.js.map +0 -0
  69. package/dist/cjs/helpers/matchMedia.native.js +4 -0
  70. package/dist/cjs/helpers/matchMedia.native.js.map +0 -0
  71. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  72. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  73. package/dist/cjs/helpers/themeable.js +7 -2
  74. package/dist/cjs/helpers/themeable.js.map +2 -2
  75. package/dist/cjs/helpers/validate.js +53 -11
  76. package/dist/cjs/helpers/validate.js.map +2 -2
  77. package/dist/cjs/helpers/withStaticProperties.js +4 -0
  78. package/dist/cjs/helpers/withStaticProperties.js.map +0 -0
  79. package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
  80. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +0 -0
  81. package/dist/cjs/hooks/useConstant.js +4 -0
  82. package/dist/cjs/hooks/useConstant.js.map +0 -0
  83. package/dist/cjs/hooks/useFeatures.js +101 -12
  84. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  85. package/dist/cjs/hooks/useIsMounted.js +4 -0
  86. package/dist/cjs/hooks/useIsMounted.js.map +0 -0
  87. package/dist/cjs/hooks/useIsTouchDevice.js +4 -0
  88. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -0
  89. package/dist/cjs/hooks/useMedia.js +31 -12
  90. package/dist/cjs/hooks/useMedia.js.map +2 -2
  91. package/dist/cjs/hooks/usePressable.js +4 -0
  92. package/dist/cjs/hooks/usePressable.js.map +0 -0
  93. package/dist/cjs/hooks/useTheme.js +36 -23
  94. package/dist/cjs/hooks/useTheme.js.map +2 -2
  95. package/dist/cjs/hooks/useUnmountEffect.js +4 -0
  96. package/dist/cjs/hooks/useUnmountEffect.js.map +0 -0
  97. package/dist/cjs/index.js +14 -0
  98. package/dist/cjs/index.js.map +2 -2
  99. package/dist/cjs/static.js +3 -0
  100. package/dist/cjs/static.js.map +2 -2
  101. package/dist/cjs/styled.js +8 -15
  102. package/dist/cjs/styled.js.map +2 -2
  103. package/dist/cjs/types-rnw.js +0 -0
  104. package/dist/cjs/types-rnw.js.map +1 -1
  105. package/dist/cjs/types.js +0 -0
  106. package/dist/cjs/types.js.map +1 -1
  107. package/dist/cjs/views/Stack.js +5 -0
  108. package/dist/cjs/views/Stack.js.map +2 -2
  109. package/dist/cjs/views/Text.js +5 -0
  110. package/dist/cjs/views/Text.js.map +2 -2
  111. package/dist/cjs/views/TextAncestorContext.js +6 -0
  112. package/dist/cjs/views/TextAncestorContext.js.map +0 -0
  113. package/dist/cjs/views/Theme.js +11 -4
  114. package/dist/cjs/views/Theme.js.map +2 -2
  115. package/dist/cjs/views/ThemeInverse.js +5 -0
  116. package/dist/cjs/views/ThemeInverse.js.map +0 -0
  117. package/dist/cjs/views/ThemeProvider.js +4 -0
  118. package/dist/cjs/views/ThemeProvider.js.map +0 -0
  119. package/dist/cjs/views/ThemeReset.js +4 -0
  120. package/dist/cjs/views/ThemeReset.js.map +0 -0
  121. package/dist/esm/Tamagui.js +10 -2
  122. package/dist/esm/Tamagui.js.map +2 -2
  123. package/dist/esm/ThemeContext.js +0 -0
  124. package/dist/esm/ThemeContext.js.map +0 -0
  125. package/dist/esm/ThemeManager.js +21 -11
  126. package/dist/esm/ThemeManager.js.map +2 -2
  127. package/dist/esm/conf.js +0 -1
  128. package/dist/esm/conf.js.map +2 -2
  129. package/dist/esm/constants/constants.js +0 -0
  130. package/dist/esm/constants/constants.js.map +0 -0
  131. package/dist/esm/constants/platform.js +2 -0
  132. package/dist/esm/constants/platform.js.map +2 -2
  133. package/dist/esm/constants/rnw.js +0 -0
  134. package/dist/esm/constants/rnw.js.map +0 -0
  135. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  136. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +0 -0
  137. package/dist/esm/createComponent.js +126 -131
  138. package/dist/esm/createComponent.js.map +2 -2
  139. package/dist/esm/createFont.js +0 -0
  140. package/dist/esm/createFont.js.map +0 -0
  141. package/dist/esm/createShorthands.js +0 -0
  142. package/dist/esm/createShorthands.js.map +0 -0
  143. package/dist/esm/createTamagui.js +34 -18
  144. package/dist/esm/createTamagui.js.map +2 -2
  145. package/dist/esm/createTheme.js +0 -0
  146. package/dist/esm/createTheme.js.map +0 -0
  147. package/dist/esm/createTokens.js +2 -6
  148. package/dist/esm/createTokens.js.map +2 -2
  149. package/dist/esm/createVariable.js +8 -2
  150. package/dist/esm/createVariable.js.map +2 -2
  151. package/dist/esm/defaultComponentState.js +0 -11
  152. package/dist/esm/defaultComponentState.js.map +3 -3
  153. package/dist/esm/helpers/RNComponents.js +12 -0
  154. package/dist/esm/helpers/RNComponents.js.map +7 -0
  155. package/dist/esm/helpers/addStylesUsingClassname.js +4 -1
  156. package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
  157. package/dist/esm/helpers/areEqualSets.js +0 -0
  158. package/dist/esm/helpers/areEqualSets.js.map +0 -0
  159. package/dist/esm/helpers/createMediaStyle.js +0 -0
  160. package/dist/esm/helpers/createMediaStyle.js.map +0 -0
  161. package/dist/esm/helpers/createPropMapper.js +59 -61
  162. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  163. package/dist/esm/helpers/createShallowUpdate.js +19 -0
  164. package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
  165. package/dist/esm/helpers/createTamaguiProvider.js +1 -4
  166. package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
  167. package/dist/esm/helpers/extendStaticConfig.js +9 -6
  168. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  169. package/dist/esm/helpers/fixNativeShadow.js +0 -0
  170. package/dist/esm/helpers/fixNativeShadow.js.map +0 -0
  171. package/dist/esm/helpers/fixNativeShadow.native.js +2 -2
  172. package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
  173. package/dist/esm/helpers/getExpandedShorthands.js +0 -0
  174. package/dist/esm/helpers/getExpandedShorthands.js.map +0 -0
  175. package/dist/esm/helpers/getSplitStyles.js +107 -63
  176. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  177. package/dist/esm/helpers/getStylesAtomic.js +15 -2
  178. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  179. package/dist/esm/helpers/getStylesAtomic.native.js +0 -0
  180. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -0
  181. package/dist/esm/helpers/insertStyleRule.js +36 -26
  182. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  183. package/dist/esm/helpers/isObj.js +0 -0
  184. package/dist/esm/helpers/isObj.js.map +0 -0
  185. package/dist/esm/helpers/isTamaguiElement.js +0 -0
  186. package/dist/esm/helpers/isTamaguiElement.js.map +0 -0
  187. package/dist/esm/helpers/matchMedia.js +0 -0
  188. package/dist/esm/helpers/matchMedia.js.map +0 -0
  189. package/dist/esm/helpers/matchMedia.native.js +0 -0
  190. package/dist/esm/helpers/matchMedia.native.js.map +0 -0
  191. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  192. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  193. package/dist/esm/helpers/themeable.js +3 -2
  194. package/dist/esm/helpers/themeable.js.map +2 -2
  195. package/dist/esm/helpers/validate.js +24 -11
  196. package/dist/esm/helpers/validate.js.map +2 -2
  197. package/dist/esm/helpers/withStaticProperties.js +0 -0
  198. package/dist/esm/helpers/withStaticProperties.js.map +0 -0
  199. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -0
  200. package/dist/esm/helpers/wrapThemeManagerContext.js.map +0 -0
  201. package/dist/esm/hooks/useConstant.js +0 -0
  202. package/dist/esm/hooks/useConstant.js.map +0 -0
  203. package/dist/esm/hooks/useFeatures.js +96 -17
  204. package/dist/esm/hooks/useFeatures.js.map +2 -2
  205. package/dist/esm/hooks/useIsMounted.js +0 -0
  206. package/dist/esm/hooks/useIsMounted.js.map +0 -0
  207. package/dist/esm/hooks/useIsTouchDevice.js +0 -0
  208. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -0
  209. package/dist/esm/hooks/useMedia.js +20 -12
  210. package/dist/esm/hooks/useMedia.js.map +2 -2
  211. package/dist/esm/hooks/usePressable.js +0 -0
  212. package/dist/esm/hooks/usePressable.js.map +0 -0
  213. package/dist/esm/hooks/useTheme.js +28 -23
  214. package/dist/esm/hooks/useTheme.js.map +2 -2
  215. package/dist/esm/hooks/useUnmountEffect.js +0 -0
  216. package/dist/esm/hooks/useUnmountEffect.js.map +0 -0
  217. package/dist/esm/index.js +3 -0
  218. package/dist/esm/index.js.map +2 -2
  219. package/dist/esm/static.js +3 -0
  220. package/dist/esm/static.js.map +2 -2
  221. package/dist/esm/styled.js +4 -12
  222. package/dist/esm/styled.js.map +2 -2
  223. package/dist/esm/types-rnw.js +0 -0
  224. package/dist/esm/types-rnw.js.map +0 -0
  225. package/dist/esm/types.js +0 -0
  226. package/dist/esm/types.js.map +0 -0
  227. package/dist/esm/views/Stack.js +1 -0
  228. package/dist/esm/views/Stack.js.map +2 -2
  229. package/dist/esm/views/Text.js +1 -0
  230. package/dist/esm/views/Text.js.map +2 -2
  231. package/dist/esm/views/TextAncestorContext.js +0 -0
  232. package/dist/esm/views/TextAncestorContext.js.map +0 -0
  233. package/dist/esm/views/Theme.js +7 -4
  234. package/dist/esm/views/Theme.js.map +2 -2
  235. package/dist/esm/views/ThemeInverse.js +0 -0
  236. package/dist/esm/views/ThemeInverse.js.map +0 -0
  237. package/dist/esm/views/ThemeProvider.js +0 -0
  238. package/dist/esm/views/ThemeProvider.js.map +0 -0
  239. package/dist/esm/views/ThemeReset.js +0 -0
  240. package/dist/esm/views/ThemeReset.js.map +0 -0
  241. package/dist/jsx/Tamagui.js +10 -2
  242. package/dist/jsx/ThemeContext.js +0 -0
  243. package/dist/jsx/ThemeManager.js +21 -11
  244. package/dist/jsx/conf.js +0 -1
  245. package/dist/jsx/constants/constants.js +0 -0
  246. package/dist/jsx/constants/platform.js +2 -0
  247. package/dist/jsx/constants/rnw.js +0 -0
  248. package/dist/jsx/contexts/ButtonInsideButtonContext.js +0 -0
  249. package/dist/jsx/createComponent.js +119 -125
  250. package/dist/jsx/createFont.js +0 -0
  251. package/dist/jsx/createShorthands.js +0 -0
  252. package/dist/jsx/createTamagui.js +34 -18
  253. package/dist/jsx/createTheme.js +0 -0
  254. package/dist/jsx/createTokens.js +2 -6
  255. package/dist/jsx/createVariable.js +8 -2
  256. package/dist/jsx/defaultComponentState.js +0 -11
  257. package/dist/jsx/helpers/RNComponents.js +11 -0
  258. package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
  259. package/dist/jsx/helpers/areEqualSets.js +0 -0
  260. package/dist/jsx/helpers/createMediaStyle.js +0 -0
  261. package/dist/jsx/helpers/createPropMapper.js +59 -61
  262. package/dist/jsx/helpers/createShallowUpdate.js +18 -0
  263. package/dist/jsx/helpers/createTamaguiProvider.js +1 -2
  264. package/dist/jsx/helpers/extendStaticConfig.js +9 -6
  265. package/dist/jsx/helpers/fixNativeShadow.js +0 -0
  266. package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
  267. package/dist/jsx/helpers/getExpandedShorthands.js +0 -0
  268. package/dist/jsx/helpers/getSplitStyles.js +107 -63
  269. package/dist/jsx/helpers/getStylesAtomic.js +15 -2
  270. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -0
  271. package/dist/jsx/helpers/insertStyleRule.js +36 -26
  272. package/dist/jsx/helpers/isObj.js +0 -0
  273. package/dist/jsx/helpers/isTamaguiElement.js +0 -0
  274. package/dist/jsx/helpers/matchMedia.js +0 -0
  275. package/dist/jsx/helpers/matchMedia.native.js +0 -0
  276. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  277. package/dist/jsx/helpers/themeable.js +3 -3
  278. package/dist/jsx/helpers/validate.js +24 -11
  279. package/dist/jsx/helpers/withStaticProperties.js +0 -0
  280. package/dist/jsx/helpers/wrapThemeManagerContext.js +0 -0
  281. package/dist/jsx/hooks/useConstant.js +0 -0
  282. package/dist/jsx/hooks/useFeatures.js +96 -17
  283. package/dist/jsx/hooks/useIsMounted.js +0 -0
  284. package/dist/jsx/hooks/useIsTouchDevice.js +0 -0
  285. package/dist/jsx/hooks/useMedia.js +20 -12
  286. package/dist/jsx/hooks/usePressable.js +0 -0
  287. package/dist/jsx/hooks/useTheme.js +28 -23
  288. package/dist/jsx/hooks/useUnmountEffect.js +0 -0
  289. package/dist/jsx/index.js +3 -0
  290. package/dist/jsx/static.js +3 -0
  291. package/dist/jsx/styled.js +4 -12
  292. package/dist/jsx/types-rnw.js +0 -0
  293. package/dist/jsx/types.js +0 -0
  294. package/dist/jsx/views/Stack.js +1 -0
  295. package/dist/jsx/views/Text.js +1 -0
  296. package/dist/jsx/views/TextAncestorContext.js +0 -0
  297. package/dist/jsx/views/Theme.js +7 -4
  298. package/dist/jsx/views/ThemeInverse.js +0 -0
  299. package/dist/jsx/views/ThemeProvider.js +0 -0
  300. package/dist/jsx/views/ThemeReset.js +0 -0
  301. package/package.json +6 -6
  302. package/types/Tamagui.d.ts +18 -1
  303. package/types/Tamagui.d.ts.map +1 -1
  304. package/types/ThemeManager.d.ts +3 -3
  305. package/types/ThemeManager.d.ts.map +1 -1
  306. package/types/conf.d.ts +2 -0
  307. package/types/conf.d.ts.map +1 -1
  308. package/types/constants/platform.d.ts +1 -0
  309. package/types/constants/platform.d.ts.map +1 -1
  310. package/types/createComponent.d.ts +5 -7
  311. package/types/createComponent.d.ts.map +1 -1
  312. package/types/createFont.d.ts +1 -1
  313. package/types/createFont.d.ts.map +1 -1
  314. package/types/createTamagui.d.ts +1 -1
  315. package/types/createTamagui.d.ts.map +1 -1
  316. package/types/createTokens.d.ts +0 -26
  317. package/types/createTokens.d.ts.map +1 -1
  318. package/types/createVariable.d.ts +1 -0
  319. package/types/createVariable.d.ts.map +1 -1
  320. package/types/defaultComponentState.d.ts +0 -12
  321. package/types/defaultComponentState.d.ts.map +1 -1
  322. package/types/helpers/RNComponents.d.ts +2 -0
  323. package/types/helpers/RNComponents.d.ts.map +1 -0
  324. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
  325. package/types/helpers/createPropMapper.d.ts +2 -2
  326. package/types/helpers/createPropMapper.d.ts.map +1 -1
  327. package/types/helpers/createShallowUpdate.d.ts +4 -0
  328. package/types/helpers/createShallowUpdate.d.ts.map +1 -0
  329. package/types/helpers/createTamaguiProvider.d.ts +1 -1
  330. package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
  331. package/types/helpers/extendStaticConfig.d.ts +2 -2
  332. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  333. package/types/helpers/getSplitStyles.d.ts +6 -14
  334. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  335. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  336. package/types/helpers/insertStyleRule.d.ts +2 -1
  337. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  338. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  339. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  340. package/types/helpers/themeable.d.ts +3 -1
  341. package/types/helpers/themeable.d.ts.map +1 -1
  342. package/types/helpers/validate.d.ts.map +1 -1
  343. package/types/hooks/useFeatures.d.ts +7 -5
  344. package/types/hooks/useFeatures.d.ts.map +1 -1
  345. package/types/hooks/useMedia.d.ts +3 -3
  346. package/types/hooks/useMedia.d.ts.map +1 -1
  347. package/types/hooks/useTheme.d.ts +1 -1
  348. package/types/hooks/useTheme.d.ts.map +1 -1
  349. package/types/index.d.ts +1 -0
  350. package/types/index.d.ts.map +1 -1
  351. package/types/static.d.ts +3 -0
  352. package/types/static.d.ts.map +1 -1
  353. package/types/styled.d.ts +13 -8
  354. package/types/styled.d.ts.map +1 -1
  355. package/types/types-rnw.d.ts +0 -5
  356. package/types/types-rnw.d.ts.map +1 -1
  357. package/types/types.d.ts +144 -103
  358. package/types/types.d.ts.map +1 -1
  359. package/types/views/Stack.d.ts +2 -2
  360. package/types/views/Stack.d.ts.map +1 -1
  361. package/types/views/Text.d.ts +2 -2
  362. package/types/views/Text.d.ts.map +1 -1
  363. package/types/views/Theme.d.ts +1 -0
  364. package/types/views/Theme.d.ts.map +1 -1
  365. package/dist/cjs/spacedChildren.js +0 -86
  366. package/dist/cjs/spacedChildren.js.map +0 -7
  367. package/dist/esm/spacedChildren.js +0 -52
  368. package/dist/esm/spacedChildren.js.map +0 -7
  369. package/dist/jsx/spacedChildren.js +0 -44
  370. package/types/spacedChildren.d.ts +0 -9
  371. package/types/spacedChildren.d.ts.map +0 -1
@@ -0,0 +1,18 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ function proxyThemeVariables(obj) {
4
+ return new Proxy(obj, {
5
+ has(target, key) {
6
+ return Reflect.has(target, removeStarting$(key));
7
+ },
8
+ get(target, key) {
9
+ return Reflect.get(target, removeStarting$(key));
10
+ }
11
+ });
12
+ }
13
+ __name(proxyThemeVariables, "proxyThemeVariables");
14
+ const removeStarting$ = /* @__PURE__ */ __name((str) => typeof str === "string" && str[0] === "$" ? str.slice(1) : str, "removeStarting$");
15
+ export {
16
+ proxyThemeVariables
17
+ };
18
+ //# sourceMappingURL=proxyThemeVariables.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/proxyThemeVariables.tsx"],
4
+ "sourcesContent": ["export function proxyThemeVariables<A extends Object>(obj: A): A {\n return new Proxy<A>(obj, {\n has(target, key) {\n return Reflect.has(target, removeStarting$(key))\n },\n get(target, key) {\n return Reflect.get(target, removeStarting$(key))\n },\n })\n}\n\nconst removeStarting$ = (str: string | symbol) =>\n typeof str === 'string' && str[0] === '$' ? str.slice(1) : str\n"],
5
+ "mappings": ";;AAAO,6BAA+C,KAAW;AAC/D,SAAO,IAAI,MAAS,KAAK;AAAA,IACvB,IAAI,QAAQ,KAAK;AACf,aAAO,QAAQ,IAAI,QAAQ,gBAAgB,GAAG,CAAC;AAAA,IACjD;AAAA,IACA,IAAI,QAAQ,KAAK;AACf,aAAO,QAAQ,IAAI,QAAQ,gBAAgB,GAAG,CAAC;AAAA,IACjD;AAAA,EACF,CAAC;AACH;AATgB;AAWhB,MAAM,kBAAkB,wBAAC,QACvB,OAAO,QAAQ,YAAY,IAAI,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,KADrC;",
6
+ "names": []
7
+ }
@@ -3,14 +3,15 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
  import React, { forwardRef } from "react";
4
4
  import { Theme } from "../views/Theme";
5
5
  import { ThemeInverse } from "../views/ThemeInverse";
6
- function themeable(component) {
6
+ function themeable(component, opts) {
7
7
  const withThemeComponent = forwardRef(/* @__PURE__ */ __name(function WithTheme({ themeInverse, theme, ...rest }, ref) {
8
8
  const element = React.createElement(component, { ...rest, ref });
9
9
  if (themeInverse) {
10
10
  return /* @__PURE__ */ React.createElement(ThemeInverse, null, element);
11
11
  }
12
- if (theme) {
12
+ if (theme || opts) {
13
13
  return /* @__PURE__ */ React.createElement(Theme, {
14
+ componentName: opts == null ? void 0 : opts.componentName,
14
15
  name: theme || null
15
16
  }, element);
16
17
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/themeable.tsx"],
4
- "sourcesContent": ["import React, { forwardRef } from 'react'\n\nimport { ThemeName } from '../types'\nimport { Theme } from '../views/Theme'\nimport { ThemeInverse } from '../views/ThemeInverse'\n\nexport type ThemeableProps = {\n theme?: ThemeName | string | null\n themeInverse?: boolean\n}\n\nexport function themeable<Component extends (props: any) => any>(component: Component) {\n const withThemeComponent = forwardRef(function WithTheme(\n { themeInverse, theme, ...rest }: any,\n ref\n ) {\n const element = React.createElement(component, { ...rest, ref } as any)\n if (themeInverse) {\n return <ThemeInverse>{element}</ThemeInverse>\n }\n if (theme) {\n return <Theme name={(theme as any) || null}>{element}</Theme>\n }\n return element\n })\n\n const withTheme: any = withThemeComponent\n withTheme.displayName = `Themed(${\n (component as any)?.displayName || (component as any)?.name || 'Anonymous'\n })`\n\n return withTheme as Component extends (props: infer P) => infer R\n ? (\n props: Omit<P, 'theme' | 'themeInverse'> & {\n theme?: ThemeName | null\n themeInverse?: boolean\n }\n ) => R\n : unknown\n}\n"],
5
- "mappings": ";;AAAA;AAGA;AACA;AAOO,mBAA0D,WAAsB;AACrF,QAAM,qBAAqB,WAAW,0CACpC,EAAE,cAAc,UAAU,QAC1B,KACA;AACA,UAAM,UAAU,MAAM,cAAc,WAAW,KAAK,MAAM,IAAI,CAAQ;AACtE,QAAI,cAAc;AAChB,aAAO,oCAAC,oBAAc,OAAQ;AAAA,IAChC;AACA,QAAI,OAAO;AACT,aAAO,oCAAC;AAAA,QAAM,MAAO,SAAiB;AAAA,SAAO,OAAQ;AAAA,IACvD;AACA,WAAO;AAAA,EACT,GAZsC,YAYrC;AAED,QAAM,YAAiB;AACvB,YAAU,cAAc,UACrB,wCAAmB,gBAAgB,wCAAmB,SAAQ;AAGjE,SAAO;AAQT;AA5BgB;",
4
+ "sourcesContent": ["import React, { forwardRef } from 'react'\n\nimport { ThemeName } from '../types'\nimport { Theme } from '../views/Theme'\nimport { ThemeInverse } from '../views/ThemeInverse'\n\nexport type ThemeableProps = {\n theme?: ThemeName | string | null\n themeInverse?: boolean\n}\n\nexport function themeable<Component extends (props: any) => any>(\n component: Component,\n opts?: { componentName?: string }\n) {\n const withThemeComponent = forwardRef(function WithTheme(\n { themeInverse, theme, ...rest }: any,\n ref\n ) {\n const element = React.createElement(component, { ...rest, ref } as any)\n if (themeInverse) {\n return <ThemeInverse>{element}</ThemeInverse>\n }\n if (theme || opts) {\n return (\n <Theme componentName={opts?.componentName} name={(theme as any) || null}>\n {element}\n </Theme>\n )\n }\n return element\n })\n\n const withTheme: any = withThemeComponent\n withTheme.displayName = `Themed(${\n (component as any)?.displayName || (component as any)?.name || 'Anonymous'\n })`\n\n return withTheme as Component extends (props: infer P) => infer R\n ? (\n props: Omit<P, 'theme' | 'themeInverse'> & {\n theme?: ThemeName | null\n themeInverse?: boolean\n }\n ) => R\n : unknown\n}\n"],
5
+ "mappings": ";;AAAA;AAGA;AACA;AAOO,mBACL,WACA,MACA;AACA,QAAM,qBAAqB,WAAW,0CACpC,EAAE,cAAc,UAAU,QAC1B,KACA;AACA,UAAM,UAAU,MAAM,cAAc,WAAW,KAAK,MAAM,IAAI,CAAQ;AACtE,QAAI,cAAc;AAChB,aAAO,oCAAC,oBAAc,OAAQ;AAAA,IAChC;AACA,QAAI,SAAS,MAAM;AACjB,aACE,oCAAC;AAAA,QAAM,eAAe,6BAAM;AAAA,QAAe,MAAO,SAAiB;AAAA,SAChE,OACH;AAAA,IAEJ;AACA,WAAO;AAAA,EACT,GAhBsC,YAgBrC;AAED,QAAM,YAAiB;AACvB,YAAU,cAAc,UACrB,wCAAmB,gBAAgB,wCAAmB,SAAQ;AAGjE,SAAO;AAQT;AAnCgB;",
6
6
  "names": []
7
7
  }
@@ -3,7 +3,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
  const { default: ow } = require("@tamagui/ow/dev-only");
4
4
  let Config;
5
5
  let Tokens;
6
- let Font;
6
+ let FontRequired;
7
+ let FontOptional;
7
8
  const validateConfig = /* @__PURE__ */ __name((conf) => {
8
9
  if (!conf) {
9
10
  console.warn("no conf?");
@@ -24,12 +25,26 @@ const validateTokens = /* @__PURE__ */ __name((tokens) => {
24
25
  }, "validateTokens");
25
26
  const validateFont = /* @__PURE__ */ __name((font) => {
26
27
  try {
27
- ow(font, Font);
28
+ const { style, transform, color, ...required } = font;
29
+ ow(required, FontRequired);
30
+ ow({ style, transform, color }, FontOptional);
28
31
  } catch (err) {
29
32
  console.warn("Given font:\n", JSON.stringify(font, null, 2), err);
30
33
  }
31
34
  }, "validateFont");
32
35
  if (process.env.NODE_ENV === "development") {
36
+ const fontReq = {
37
+ family: ow.string,
38
+ size: ow.object.nonEmpty.valuesOfType(ow.number),
39
+ lineHeight: ow.object.nonEmpty.valuesOfType(ow.number),
40
+ weight: ow.object.nonEmpty.valuesOfType(ow.string),
41
+ letterSpacing: ow.object.nonEmpty.valuesOfType(ow.number)
42
+ };
43
+ const fontOpt = {
44
+ style: ow.optional.object.valuesOfType(ow.string),
45
+ transform: ow.optional.object.valuesOfType(ow.string),
46
+ color: ow.optional.object.valuesOfType(ow.string)
47
+ };
33
48
  Config = ow.object.exactShape({
34
49
  defaultTheme: ow.optional.string,
35
50
  disableRootThemeClass: ow.optional.boolean,
@@ -37,17 +52,15 @@ if (process.env.NODE_ENV === "development") {
37
52
  themes: ow.object.valuesOfType(ow.object),
38
53
  tokens: ow.object.valuesOfType(ow.object),
39
54
  media: ow.object.valuesOfType(ow.object),
40
- animations: ow.object.valuesOfType(ow.object)
41
- });
42
- Font = ow.object.exactShape({
43
- family: ow.string,
44
- size: ow.object.nonEmpty.valuesOfType(ow.number),
45
- lineHeight: ow.object.nonEmpty.valuesOfType(ow.number),
46
- weight: ow.object.nonEmpty.valuesOfType(ow.string),
47
- letterSpacing: ow.object.nonEmpty.valuesOfType(ow.number)
55
+ animations: ow.object.valuesOfType(ow.object),
56
+ fonts: ow.object.valuesOfType(ow.object.partialShape({
57
+ ...fontReq,
58
+ ...fontOpt
59
+ }))
48
60
  });
61
+ FontRequired = ow.object.exactShape(fontReq);
62
+ FontOptional = ow.object.partialShape(fontOpt);
49
63
  Tokens = ow.object.exactShape({
50
- font: ow.object.valuesOfType(Font),
51
64
  size: ow.object.nonEmpty.valuesOfType(ow.number),
52
65
  space: ow.object.nonEmpty.valuesOfType(ow.number),
53
66
  zIndex: ow.object.nonEmpty.valuesOfType(ow.number),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/validate.ts"],
4
- "sourcesContent": ["// published a patched version that works on native\n// @ts-ignore\nconst { default: ow } = require('@tamagui/ow/dev-only')\n\nlet Config: any\nlet Tokens: any\nlet Font: any\n\nexport const validateConfig = (conf: any) => {\n if (!conf) {\n console.warn('no conf?')\n return\n }\n try {\n ow(conf, Config)\n } catch (err: any) {\n console.warn('Given config:\\n', JSON.stringify(conf, null, 2), err)\n }\n}\n\nexport const validateTokens = (tokens: any) => {\n try {\n ow(tokens, Tokens)\n } catch (err: any) {\n console.warn('Given tokens:\\n', JSON.stringify(tokens, null, 2), err)\n }\n}\n\nexport const validateFont = (font: any) => {\n try {\n ow(font, Font)\n } catch (err: any) {\n console.warn('Given font:\\n', JSON.stringify(font, null, 2), err)\n }\n}\n\nif (process.env.NODE_ENV === 'development') {\n Config = ow.object.exactShape({\n defaultTheme: ow.optional.string,\n disableRootThemeClass: ow.optional.boolean,\n shorthands: ow.optional.object.valuesOfType(ow.string),\n themes: ow.object.valuesOfType(ow.object),\n tokens: ow.object.valuesOfType(ow.object),\n media: ow.object.valuesOfType(ow.object),\n animations: ow.object.valuesOfType(ow.object),\n })\n\n Font = ow.object.exactShape({\n family: ow.string,\n size: ow.object.nonEmpty.valuesOfType(ow.number),\n lineHeight: ow.object.nonEmpty.valuesOfType(ow.number),\n weight: ow.object.nonEmpty.valuesOfType(ow.string),\n letterSpacing: ow.object.nonEmpty.valuesOfType(ow.number),\n })\n\n Tokens = ow.object.exactShape({\n font: ow.object.valuesOfType(Font),\n size: ow.object.nonEmpty.valuesOfType(ow.number),\n space: ow.object.nonEmpty.valuesOfType(ow.number),\n zIndex: ow.object.nonEmpty.valuesOfType(ow.number),\n radius: ow.object.nonEmpty.valuesOfType(ow.number),\n color: ow.object.nonEmpty.valuesOfType(ow.string),\n })\n}\n"],
5
- "mappings": ";;AAEA,MAAM,EAAE,SAAS,OAAO,QAAQ,sBAAsB;AAEtD,IAAI;AACJ,IAAI;AACJ,IAAI;AAEG,MAAM,iBAAiB,wBAAC,SAAc;AAC3C,MAAI,CAAC,MAAM;AACT,YAAQ,KAAK,UAAU;AACvB;AAAA,EACF;AACA,MAAI;AACF,OAAG,MAAM,MAAM;AAAA,EACjB,SAAS,KAAP;AACA,YAAQ,KAAK,mBAAmB,KAAK,UAAU,MAAM,MAAM,CAAC,GAAG,GAAG;AAAA,EACpE;AACF,GAV8B;AAYvB,MAAM,iBAAiB,wBAAC,WAAgB;AAC7C,MAAI;AACF,OAAG,QAAQ,MAAM;AAAA,EACnB,SAAS,KAAP;AACA,YAAQ,KAAK,mBAAmB,KAAK,UAAU,QAAQ,MAAM,CAAC,GAAG,GAAG;AAAA,EACtE;AACF,GAN8B;AAQvB,MAAM,eAAe,wBAAC,SAAc;AACzC,MAAI;AACF,OAAG,MAAM,IAAI;AAAA,EACf,SAAS,KAAP;AACA,YAAQ,KAAK,iBAAiB,KAAK,UAAU,MAAM,MAAM,CAAC,GAAG,GAAG;AAAA,EAClE;AACF,GAN4B;AAQ5B,IAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,WAAS,GAAG,OAAO,WAAW;AAAA,IAC5B,cAAc,GAAG,SAAS;AAAA,IAC1B,uBAAuB,GAAG,SAAS;AAAA,IACnC,YAAY,GAAG,SAAS,OAAO,aAAa,GAAG,MAAM;AAAA,IACrD,QAAQ,GAAG,OAAO,aAAa,GAAG,MAAM;AAAA,IACxC,QAAQ,GAAG,OAAO,aAAa,GAAG,MAAM;AAAA,IACxC,OAAO,GAAG,OAAO,aAAa,GAAG,MAAM;AAAA,IACvC,YAAY,GAAG,OAAO,aAAa,GAAG,MAAM;AAAA,EAC9C,CAAC;AAED,SAAO,GAAG,OAAO,WAAW;AAAA,IAC1B,QAAQ,GAAG;AAAA,IACX,MAAM,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IAC/C,YAAY,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IACrD,QAAQ,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IACjD,eAAe,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,EAC1D,CAAC;AAED,WAAS,GAAG,OAAO,WAAW;AAAA,IAC5B,MAAM,GAAG,OAAO,aAAa,IAAI;AAAA,IACjC,MAAM,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IAC/C,OAAO,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IAChD,QAAQ,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IACjD,QAAQ,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IACjD,OAAO,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,EAClD,CAAC;AACH;",
4
+ "sourcesContent": ["// published a patched version that works on native\n// @ts-ignore\nconst { default: ow } = require('@tamagui/ow/dev-only')\n\nlet Config: any\nlet Tokens: any\nlet FontRequired: any\nlet FontOptional: any\n\nexport const validateConfig = (conf: any) => {\n if (!conf) {\n console.warn('no conf?')\n return\n }\n try {\n ow(conf, Config)\n } catch (err: any) {\n console.warn('Given config:\\n', JSON.stringify(conf, null, 2), err)\n }\n}\n\nexport const validateTokens = (tokens: any) => {\n try {\n ow(tokens, Tokens)\n } catch (err: any) {\n console.warn('Given tokens:\\n', JSON.stringify(tokens, null, 2), err)\n }\n}\n\nexport const validateFont = (font: any) => {\n try {\n const { style, transform, color, ...required } = font\n ow(required, FontRequired)\n ow({ style, transform, color }, FontOptional)\n } catch (err: any) {\n console.warn('Given font:\\n', JSON.stringify(font, null, 2), err)\n }\n}\n\nif (process.env.NODE_ENV === 'development') {\n const fontReq = {\n family: ow.string,\n size: ow.object.nonEmpty.valuesOfType(ow.number),\n lineHeight: ow.object.nonEmpty.valuesOfType(ow.number),\n weight: ow.object.nonEmpty.valuesOfType(ow.string),\n letterSpacing: ow.object.nonEmpty.valuesOfType(ow.number),\n }\n const fontOpt = {\n style: ow.optional.object.valuesOfType(ow.string),\n transform: ow.optional.object.valuesOfType(ow.string),\n color: ow.optional.object.valuesOfType(ow.string),\n }\n\n Config = ow.object.exactShape({\n defaultTheme: ow.optional.string,\n disableRootThemeClass: ow.optional.boolean,\n shorthands: ow.optional.object.valuesOfType(ow.string),\n themes: ow.object.valuesOfType(ow.object),\n tokens: ow.object.valuesOfType(ow.object),\n media: ow.object.valuesOfType(ow.object),\n animations: ow.object.valuesOfType(ow.object),\n fonts: ow.object.valuesOfType(\n ow.object.partialShape({\n ...fontReq,\n ...fontOpt,\n })\n ),\n })\n\n FontRequired = ow.object.exactShape(fontReq)\n FontOptional = ow.object.partialShape(fontOpt)\n\n Tokens = ow.object.exactShape({\n size: ow.object.nonEmpty.valuesOfType(ow.number),\n space: ow.object.nonEmpty.valuesOfType(ow.number),\n zIndex: ow.object.nonEmpty.valuesOfType(ow.number),\n radius: ow.object.nonEmpty.valuesOfType(ow.number),\n color: ow.object.nonEmpty.valuesOfType(ow.string),\n })\n}\n"],
5
+ "mappings": ";;AAEA,MAAM,EAAE,SAAS,OAAO,QAAQ,sBAAsB;AAEtD,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AAEG,MAAM,iBAAiB,wBAAC,SAAc;AAC3C,MAAI,CAAC,MAAM;AACT,YAAQ,KAAK,UAAU;AACvB;AAAA,EACF;AACA,MAAI;AACF,OAAG,MAAM,MAAM;AAAA,EACjB,SAAS,KAAP;AACA,YAAQ,KAAK,mBAAmB,KAAK,UAAU,MAAM,MAAM,CAAC,GAAG,GAAG;AAAA,EACpE;AACF,GAV8B;AAYvB,MAAM,iBAAiB,wBAAC,WAAgB;AAC7C,MAAI;AACF,OAAG,QAAQ,MAAM;AAAA,EACnB,SAAS,KAAP;AACA,YAAQ,KAAK,mBAAmB,KAAK,UAAU,QAAQ,MAAM,CAAC,GAAG,GAAG;AAAA,EACtE;AACF,GAN8B;AAQvB,MAAM,eAAe,wBAAC,SAAc;AACzC,MAAI;AACF,UAAM,EAAE,OAAO,WAAW,UAAU,aAAa;AACjD,OAAG,UAAU,YAAY;AACzB,OAAG,EAAE,OAAO,WAAW,MAAM,GAAG,YAAY;AAAA,EAC9C,SAAS,KAAP;AACA,YAAQ,KAAK,iBAAiB,KAAK,UAAU,MAAM,MAAM,CAAC,GAAG,GAAG;AAAA,EAClE;AACF,GAR4B;AAU5B,IAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAM,UAAU;AAAA,IACd,QAAQ,GAAG;AAAA,IACX,MAAM,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IAC/C,YAAY,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IACrD,QAAQ,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IACjD,eAAe,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,EAC1D;AACA,QAAM,UAAU;AAAA,IACd,OAAO,GAAG,SAAS,OAAO,aAAa,GAAG,MAAM;AAAA,IAChD,WAAW,GAAG,SAAS,OAAO,aAAa,GAAG,MAAM;AAAA,IACpD,OAAO,GAAG,SAAS,OAAO,aAAa,GAAG,MAAM;AAAA,EAClD;AAEA,WAAS,GAAG,OAAO,WAAW;AAAA,IAC5B,cAAc,GAAG,SAAS;AAAA,IAC1B,uBAAuB,GAAG,SAAS;AAAA,IACnC,YAAY,GAAG,SAAS,OAAO,aAAa,GAAG,MAAM;AAAA,IACrD,QAAQ,GAAG,OAAO,aAAa,GAAG,MAAM;AAAA,IACxC,QAAQ,GAAG,OAAO,aAAa,GAAG,MAAM;AAAA,IACxC,OAAO,GAAG,OAAO,aAAa,GAAG,MAAM;AAAA,IACvC,YAAY,GAAG,OAAO,aAAa,GAAG,MAAM;AAAA,IAC5C,OAAO,GAAG,OAAO,aACf,GAAG,OAAO,aAAa;AAAA,SAClB;AAAA,SACA;AAAA,IACL,CAAC,CACH;AAAA,EACF,CAAC;AAED,iBAAe,GAAG,OAAO,WAAW,OAAO;AAC3C,iBAAe,GAAG,OAAO,aAAa,OAAO;AAE7C,WAAS,GAAG,OAAO,WAAW;AAAA,IAC5B,MAAM,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IAC/C,OAAO,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IAChD,QAAQ,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IACjD,QAAQ,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,IACjD,OAAO,GAAG,OAAO,SAAS,aAAa,GAAG,MAAM;AAAA,EAClD,CAAC;AACH;",
6
6
  "names": []
7
7
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,7 +1,8 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import React from "react";
4
- import { isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
4
+ import { useIsomorphicLayoutEffect } from "../constants/platform";
5
+ import { getSubStyle } from "../helpers/getSplitStyles";
5
6
  import { addMediaQueryListener, mediaState, removeMediaQueryListener } from "./useMedia";
6
7
  const createDefinition = /* @__PURE__ */ __name(({
7
8
  Component,
@@ -31,47 +32,125 @@ const useFeatures = /* @__PURE__ */ __name((props, utils) => {
31
32
  function loadFeatures() {
32
33
  return {
33
34
  animation: loadAnimationFeature(),
34
- ...!isWeb && {
35
- mediaQuery: loadMediaQueryFeature()
36
- }
35
+ mediaQuery: loadMediaQueryFeature()
37
36
  };
38
37
  }
39
38
  __name(loadFeatures, "loadFeatures");
40
39
  function loadAnimationFeature() {
41
40
  return createDefinition({
42
41
  Component: ({ _utils, ...props }) => {
43
- const { state, useAnimations, pseudos, style, setStateShallow } = _utils;
42
+ const {
43
+ state,
44
+ useAnimations,
45
+ pseudos,
46
+ style: inStyle,
47
+ setStateShallow,
48
+ staticConfig,
49
+ theme,
50
+ onDidAnimate
51
+ } = _utils;
44
52
  if (!useAnimations) {
45
53
  console.error("no useAnimations hook provided");
46
54
  return null;
47
55
  }
48
- const animatedStyleIn = {
49
- ...style,
50
- ...state.hover && pseudos.hoverStyle,
51
- ...state.focus && pseudos.focusStyle,
52
- ...state.press && pseudos.pressStyle
53
- };
54
- const res = useAnimations(props, {
55
- isMounted: state.mounted,
56
- style: animatedStyleIn,
57
- exitStyle: pseudos == null ? void 0 : pseudos.exitStyle
56
+ const propsWithAnimation = props;
57
+ const res = useAnimations(propsWithAnimation, {
58
+ state,
59
+ pseudos,
60
+ onDidAnimate,
61
+ staticConfig,
62
+ getStyle({ isEntering, exitVariant, enterVariant } = {}) {
63
+ var _a, _b, _c, _d;
64
+ const style = inStyle || {};
65
+ const enterStyle = isEntering === true || state.mounted === false ? enterVariant && ((_a = staticConfig.variants) == null ? void 0 : _a[enterVariant]["true"]) ? getSubStyle((_b = staticConfig.variants) == null ? void 0 : _b[enterVariant]["true"], staticConfig, theme, props, state) || pseudos.enterStyle : pseudos.enterStyle : null;
66
+ const exitStyle = isEntering === false ? exitVariant && ((_c = staticConfig.variants) == null ? void 0 : _c[exitVariant]["true"]) ? getSubStyle((_d = staticConfig.variants) == null ? void 0 : _d[exitVariant]["true"], staticConfig, theme, props, state) || pseudos.exitStyle : pseudos.exitStyle : null;
67
+ ensureBaseHasDefaults(style, enterStyle, pseudos.hoverStyle, pseudos.focusStyle, pseudos.pressStyle, pseudos.pressStyle);
68
+ enterStyle && merge(style, enterStyle);
69
+ state.hover && pseudos.hoverStyle && merge(style, pseudos.hoverStyle);
70
+ state.focus && pseudos.focusStyle && merge(style, pseudos.focusStyle);
71
+ state.press && pseudos.pressStyle && merge(style, pseudos.pressStyle);
72
+ exitStyle && merge(style, exitStyle);
73
+ return style;
74
+ }
58
75
  });
59
76
  useIsomorphicLayoutEffect(() => {
60
77
  setStateShallow({
61
78
  animation: res
62
79
  });
63
- }, [JSON.stringify(style)]);
80
+ }, [res]);
64
81
  return null;
65
82
  },
66
83
  propNames: ["animation"]
67
84
  });
68
85
  }
69
86
  __name(loadAnimationFeature, "loadAnimationFeature");
87
+ const defaults = {
88
+ left: 0,
89
+ right: 0,
90
+ top: 0,
91
+ bottom: 0,
92
+ opacity: 1,
93
+ translateX: 0,
94
+ translateY: 0,
95
+ skew: 0,
96
+ skewX: 0,
97
+ skewY: 0,
98
+ scale: 1,
99
+ rotate: "0deg",
100
+ rotateY: "0deg",
101
+ rotateX: "0deg"
102
+ };
103
+ function ensureBaseHasDefaults(base, ...pseudos) {
104
+ for (const pseudo of pseudos) {
105
+ if (!pseudo)
106
+ continue;
107
+ for (const key in pseudo) {
108
+ const val = pseudo[key];
109
+ if (key === "transform") {
110
+ for (const t of val) {
111
+ const tkey = Object.keys(t)[0];
112
+ const defaultVal = defaults[tkey];
113
+ const tDefaultVal = { [tkey]: defaultVal };
114
+ if (!base.transform) {
115
+ base.transform = [tDefaultVal];
116
+ } else {
117
+ if (!base.transform.find((x) => x[tkey])) {
118
+ base.transform.push(tDefaultVal);
119
+ }
120
+ }
121
+ }
122
+ } else {
123
+ if (!(key in base)) {
124
+ base[key] = defaults[key];
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ __name(ensureBaseHasDefaults, "ensureBaseHasDefaults");
131
+ function merge(base, next) {
132
+ if (!next.transform || !base.transform) {
133
+ Object.assign(base, next);
134
+ return;
135
+ }
136
+ const { transform, ...rest } = next;
137
+ Object.assign(base, rest);
138
+ for (const t of transform) {
139
+ const key = Object.keys(t)[0];
140
+ const existing = base.transform.find((x) => key in x);
141
+ if (existing) {
142
+ existing[key] = t[key];
143
+ } else {
144
+ base.transform.push(t);
145
+ }
146
+ }
147
+ }
148
+ __name(merge, "merge");
70
149
  function loadMediaQueryFeature() {
71
150
  const mediaPropNames = Object.keys(mediaState);
72
151
  return createDefinition({
73
152
  Component: (props) => {
74
- const keys = mediaPropNames.flatMap((x) => x in props ? x.slice(1) : []);
153
+ const keys = mediaPropNames.filter((x) => x in props);
75
154
  useIsomorphicLayoutEffect(() => {
76
155
  for (const key of keys) {
77
156
  addMediaQueryListener(key, props._utils.forceUpdate);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useFeatures.tsx"],
4
- "sourcesContent": ["import React from 'react'\nimport { ViewStyle } from 'react-native'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { ComponentState } from '../defaultComponentState'\nimport { PseudoStyles } from '../static'\nimport { UseAnimationHook } from '../types'\nimport { addMediaQueryListener, mediaState, removeMediaQueryListener } from './useMedia'\n\ntype FeatureDefinition = {\n isEnabled: (props: any) => boolean\n Component: any\n}\n\ntype FeatureUtils = {\n forceUpdate: Function\n state: ComponentState\n setStateShallow: (next: Partial<ComponentState>) => void\n useAnimations?: UseAnimationHook\n pseudos: PseudoStyles\n style: ViewStyle | null | undefined\n}\n\nconst createDefinition = ({\n Component,\n propNames,\n}: {\n Component: (props: { _utils: FeatureUtils; [key: string]: any }) => void\n propNames: string[]\n}): FeatureDefinition => ({\n isEnabled: (props: any) => propNames.some((name) => !!props[name]),\n Component,\n})\n\nlet featureDefinitions: Record<string, FeatureDefinition> | null = null\n\nexport const useFeatures = (props: any, utils?: FeatureUtils) => {\n if (!featureDefinitions) {\n featureDefinitions = loadFeatures()\n }\n const features: JSX.Element[] = []\n for (const name in featureDefinitions) {\n const { isEnabled, Component } = featureDefinitions[name]\n if (isEnabled(props) && Component) {\n features.push(<Component key={name} {...props} _utils={utils} />)\n }\n }\n return features\n}\n\nfunction loadFeatures(): Record<string, FeatureDefinition> {\n return {\n // loads animations and sets state with the results\n animation: loadAnimationFeature(),\n\n // will update the parent whenever media query changes\n // no need on web, media queries are inserted and run in css\n ...(!isWeb && {\n mediaQuery: loadMediaQueryFeature(),\n }),\n }\n}\n\nfunction loadAnimationFeature() {\n return createDefinition({\n Component: ({ _utils, ...props }) => {\n const { state, useAnimations, pseudos, style, setStateShallow } = _utils\n\n if (!useAnimations) {\n console.error('no useAnimations hook provided')\n return null\n }\n\n const animatedStyleIn = {\n ...style,\n ...(state.hover && pseudos.hoverStyle),\n ...(state.focus && pseudos.focusStyle),\n ...(state.press && pseudos.pressStyle),\n }\n\n const res = useAnimations(props as any, {\n isMounted: state.mounted,\n style: animatedStyleIn,\n exitStyle: pseudos?.exitStyle,\n // onDidAnimate, delay\n })\n\n useIsomorphicLayoutEffect(() => {\n setStateShallow({\n animation: res,\n })\n }, [JSON.stringify(style)])\n\n return null\n },\n propNames: ['animation'],\n })\n}\n\nfunction loadMediaQueryFeature() {\n const mediaPropNames = Object.keys(mediaState)\n\n return createDefinition({\n Component: (props: any) => {\n const keys = mediaPropNames.flatMap((x) => (x in props ? x.slice(1) : []))\n\n useIsomorphicLayoutEffect(() => {\n for (const key of keys) {\n addMediaQueryListener(key, props._utils.forceUpdate)\n }\n return () => {\n for (const key of keys) {\n removeMediaQueryListener(key, props._utils.forceUpdate)\n }\n }\n }, [keys.join(',')])\n\n return null\n },\n propNames: mediaPropNames,\n })\n}\n\n// TODO\n// measureLayout: createDefinition({\n// Component: (props) => {\n// console.log('measure', props)\n// return null\n// },\n// propNames: ['onLayout'],\n// }),\n"],
5
- "mappings": ";;AAAA;AAGA;AAIA;AAgBA,MAAM,mBAAmB,wBAAC;AAAA,EACxB;AAAA,EACA;AAAA,MAIwB;AAAA,EACxB,WAAW,CAAC,UAAe,UAAU,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AAAA,EACjE;AACF,IATyB;AAWzB,IAAI,qBAA+D;AAE5D,MAAM,cAAc,wBAAC,OAAY,UAAyB;AAC/D,MAAI,CAAC,oBAAoB;AACvB,yBAAqB,aAAa;AAAA,EACpC;AACA,QAAM,WAA0B,CAAC;AACjC,aAAW,QAAQ,oBAAoB;AACrC,UAAM,EAAE,WAAW,cAAc,mBAAmB;AACpD,QAAI,UAAU,KAAK,KAAK,WAAW;AACjC,eAAS,KAAK,oCAAC;AAAA,QAAU,KAAK;AAAA,WAAU;AAAA,QAAO,QAAQ;AAAA,OAAO,CAAE;AAAA,IAClE;AAAA,EACF;AACA,SAAO;AACT,GAZ2B;AAc3B,wBAA2D;AACzD,SAAO;AAAA,IAEL,WAAW,qBAAqB;AAAA,OAI5B,CAAC,SAAS;AAAA,MACZ,YAAY,sBAAsB;AAAA,IACpC;AAAA,EACF;AACF;AAXS;AAaT,gCAAgC;AAC9B,SAAO,iBAAiB;AAAA,IACtB,WAAW,CAAC,EAAE,WAAW,YAAY;AACnC,YAAM,EAAE,OAAO,eAAe,SAAS,OAAO,oBAAoB;AAElE,UAAI,CAAC,eAAe;AAClB,gBAAQ,MAAM,gCAAgC;AAC9C,eAAO;AAAA,MACT;AAEA,YAAM,kBAAkB;AAAA,WACnB;AAAA,WACC,MAAM,SAAS,QAAQ;AAAA,WACvB,MAAM,SAAS,QAAQ;AAAA,WACvB,MAAM,SAAS,QAAQ;AAAA,MAC7B;AAEA,YAAM,MAAM,cAAc,OAAc;AAAA,QACtC,WAAW,MAAM;AAAA,QACjB,OAAO;AAAA,QACP,WAAW,mCAAS;AAAA,MAEtB,CAAC;AAED,gCAA0B,MAAM;AAC9B,wBAAgB;AAAA,UACd,WAAW;AAAA,QACb,CAAC;AAAA,MACH,GAAG,CAAC,KAAK,UAAU,KAAK,CAAC,CAAC;AAE1B,aAAO;AAAA,IACT;AAAA,IACA,WAAW,CAAC,WAAW;AAAA,EACzB,CAAC;AACH;AAlCS;AAoCT,iCAAiC;AAC/B,QAAM,iBAAiB,OAAO,KAAK,UAAU;AAE7C,SAAO,iBAAiB;AAAA,IACtB,WAAW,CAAC,UAAe;AACzB,YAAM,OAAO,eAAe,QAAQ,CAAC,MAAO,KAAK,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAE;AAEzE,gCAA0B,MAAM;AAC9B,mBAAW,OAAO,MAAM;AACtB,gCAAsB,KAAK,MAAM,OAAO,WAAW;AAAA,QACrD;AACA,eAAO,MAAM;AACX,qBAAW,OAAO,MAAM;AACtB,qCAAyB,KAAK,MAAM,OAAO,WAAW;AAAA,UACxD;AAAA,QACF;AAAA,MACF,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;AAEnB,aAAO;AAAA,IACT;AAAA,IACA,WAAW;AAAA,EACb,CAAC;AACH;AAtBS;",
4
+ "sourcesContent": ["import React from 'react'\nimport { ViewStyle } from 'react-native'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getSubStyle } from '../helpers/getSplitStyles'\nimport { PseudoStyles, SplitStyleState } from '../types'\nimport {\n StaticConfig,\n StaticConfigParsed,\n TamaguiComponentState,\n UseAnimationHook,\n UseAnimationProps,\n} from '../types'\nimport { addMediaQueryListener, mediaState, removeMediaQueryListener } from './useMedia'\n\ntype FeatureDefinition = {\n isEnabled: (props: any) => boolean\n Component: any\n}\n\ntype FeatureUtils = {\n forceUpdate: Function\n state: SplitStyleState\n setStateShallow: (next: Partial<TamaguiComponentState>) => void\n useAnimations?: UseAnimationHook\n pseudos: PseudoStyles\n style: ViewStyle | null | undefined\n staticConfig: StaticConfigParsed\n theme: any\n onDidAnimate?: () => void\n}\n\nconst createDefinition = ({\n Component,\n propNames,\n}: {\n Component: (props: { _utils: FeatureUtils; [key: string]: any }) => void\n propNames: string[]\n}): FeatureDefinition => ({\n isEnabled: (props: any) => propNames.some((name) => !!props[name]),\n Component,\n})\n\nlet featureDefinitions: Record<string, FeatureDefinition> | null = null\n\nexport const useFeatures = (props: any, utils?: FeatureUtils) => {\n if (!featureDefinitions) {\n featureDefinitions = loadFeatures()\n }\n const features: JSX.Element[] = []\n for (const name in featureDefinitions) {\n const { isEnabled, Component } = featureDefinitions[name]\n if (isEnabled(props) && Component) {\n features.push(<Component key={name} {...props} _utils={utils} />)\n }\n }\n return features\n}\n\nfunction loadFeatures(): Record<string, FeatureDefinition> {\n return {\n // loads animations and sets state with the results\n animation: loadAnimationFeature(),\n\n // will update the parent whenever media query changes\n // no need on web, media queries are inserted and run in css\n mediaQuery: loadMediaQueryFeature(),\n }\n}\n\nfunction loadAnimationFeature() {\n return createDefinition({\n Component: ({ _utils, ...props }) => {\n const {\n state,\n useAnimations,\n pseudos,\n style: inStyle,\n setStateShallow,\n staticConfig,\n theme,\n onDidAnimate,\n } = _utils\n\n if (!useAnimations) {\n console.error('no useAnimations hook provided')\n return null\n }\n\n // const animatedStyleIn =\n\n // we always have .animation set\n const propsWithAnimation = props as UseAnimationProps\n\n const res = useAnimations(propsWithAnimation, {\n state,\n pseudos,\n onDidAnimate,\n staticConfig,\n getStyle({ isEntering, exitVariant, enterVariant } = {}) {\n // we have to merge such that transforms keys all exist\n const style = inStyle || {}\n\n const enterStyle =\n isEntering === true || state.mounted === false\n ? enterVariant && staticConfig.variants?.[enterVariant]['true']\n ? getSubStyle(\n staticConfig.variants?.[enterVariant]['true'],\n staticConfig,\n theme,\n props,\n state\n ) || pseudos.enterStyle\n : null || pseudos.enterStyle\n : null\n\n const exitStyle =\n isEntering === false\n ? exitVariant && staticConfig.variants?.[exitVariant]['true']\n ? getSubStyle(\n staticConfig.variants?.[exitVariant]['true'],\n staticConfig,\n theme,\n props,\n state\n ) || pseudos.exitStyle\n : null || pseudos.exitStyle\n : null\n\n // if you have hoverStyle={{ scale: 1.1 }} and don't have scale set on the base style\n // no animation will run! this is really confusing. this will look at all variants,\n // and fill in base styles if they don't exist. eg:\n // input:\n // base: {}\n // hoverStyle: { scale: 2 }\n // enterStyle: { x: 100 }\n // output:\n // base: { x: 0, scale: 1 }\n ensureBaseHasDefaults(\n style,\n enterStyle,\n pseudos.hoverStyle,\n pseudos.focusStyle,\n pseudos.pressStyle,\n pseudos.pressStyle\n )\n\n enterStyle && merge(style, enterStyle)\n state.hover && pseudos.hoverStyle && merge(style, pseudos.hoverStyle)\n state.focus && pseudos.focusStyle && merge(style, pseudos.focusStyle)\n state.press && pseudos.pressStyle && merge(style, pseudos.pressStyle)\n exitStyle && merge(style, exitStyle)\n\n return style\n },\n //, delay\n })\n\n useIsomorphicLayoutEffect(() => {\n setStateShallow({\n animation: res,\n })\n }, [res])\n\n return null\n },\n propNames: ['animation'],\n })\n}\n\nconst defaults = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n opacity: 1,\n translateX: 0,\n translateY: 0,\n skew: 0,\n skewX: 0,\n skewY: 0,\n scale: 1,\n rotate: '0deg',\n rotateY: '0deg',\n rotateX: '0deg',\n}\n\nfunction ensureBaseHasDefaults(base: ViewStyle, ...pseudos: (ViewStyle | null | undefined)[]) {\n for (const pseudo of pseudos) {\n if (!pseudo) continue\n for (const key in pseudo) {\n const val = pseudo[key]\n if (key === 'transform') {\n for (const t of val) {\n const tkey = Object.keys(t)[0]\n const defaultVal = defaults[tkey]\n const tDefaultVal = { [tkey]: defaultVal } as any\n if (!base.transform) {\n base.transform = [tDefaultVal]\n } else {\n if (!base.transform.find((x) => x[tkey])) {\n base.transform.push(tDefaultVal)\n }\n }\n }\n } else {\n if (!(key in base)) {\n base[key] = defaults[key]\n }\n }\n }\n }\n}\n\nfunction merge(base: ViewStyle, next: ViewStyle) {\n if (!next.transform || !base.transform) {\n Object.assign(base, next)\n return\n }\n const { transform, ...rest } = next\n Object.assign(base, rest)\n for (const t of transform) {\n const key = Object.keys(t)[0]\n const existing = base.transform.find((x) => key in x)\n if (existing) {\n existing[key] = t[key]\n } else {\n base.transform.push(t)\n }\n }\n}\n\nfunction loadMediaQueryFeature() {\n const mediaPropNames = Object.keys(mediaState)\n\n return createDefinition({\n Component: (props: any) => {\n const keys = mediaPropNames.filter((x) => x in props)\n\n useIsomorphicLayoutEffect(() => {\n for (const key of keys) {\n addMediaQueryListener(key, props._utils.forceUpdate)\n }\n return () => {\n for (const key of keys) {\n removeMediaQueryListener(key, props._utils.forceUpdate)\n }\n }\n }, [keys.join(',')])\n\n return null\n },\n propNames: mediaPropNames,\n })\n}\n\n// TODO\n// measureLayout: createDefinition({\n// Component: (props) => {\n// console.log('measure', props)\n// return null\n// },\n// propNames: ['onLayout'],\n// }),\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
File without changes
File without changes
File without changes
File without changes
@@ -34,29 +34,33 @@ const configureMedia = /* @__PURE__ */ __name(({
34
34
  }
35
35
  for (const key in queries) {
36
36
  const str = mediaObjectToString(queries[key]);
37
+ const propKey = `$${key}`;
37
38
  try {
38
- const getMatch = /* @__PURE__ */ __name(() => matchMedia(str), "getMatch");
39
- const match = getMatch();
40
- if (!match || typeof match.addListener !== "function") {
41
- throw new Error("\u26A0\uFE0F No match (seeing this in RN sometimes)");
42
- }
43
- mediaState[key] = !!match.matches;
44
- match.addListener(() => {
39
+ let update = function() {
45
40
  const next = !!getMatch().matches;
46
- if (next === mediaState[key])
41
+ if (next === mediaState[propKey])
47
42
  return;
48
- mediaState[key] = next;
49
- const listeners = mediaQueryListeners[key];
43
+ mediaState[propKey] = next;
44
+ const listeners = mediaQueryListeners[propKey];
50
45
  if (listeners == null ? void 0 : listeners.size) {
51
46
  for (const cb of [...listeners]) {
52
47
  cb();
53
48
  }
54
49
  }
55
- });
50
+ };
51
+ __name(update, "update");
52
+ const getMatch = /* @__PURE__ */ __name(() => matchMedia(str), "getMatch");
53
+ const match = getMatch();
54
+ if (!match || typeof match.addListener !== "function") {
55
+ throw new Error("\u26A0\uFE0F No match (seeing this in RN sometimes)");
56
+ }
57
+ mediaState[propKey] = !!match.matches;
58
+ match.addListener(update);
59
+ update();
56
60
  } catch (err) {
57
61
  console.error("Error running media query", str, err.message, err.stack);
58
62
  const isDefaultActive = (_a = defaultActive == null ? void 0 : defaultActive.includes(key)) != null ? _a : true;
59
- mediaState[key] = isDefaultActive;
63
+ mediaState[propKey] = isDefaultActive;
60
64
  }
61
65
  }
62
66
  }, "configureMedia");
@@ -82,6 +86,7 @@ const useMedia = /* @__PURE__ */ __name(() => {
82
86
  }
83
87
  for (const key in st.nextSelections) {
84
88
  if (!(key in st.selections)) {
89
+ console.log("lsiten", key);
85
90
  addMediaQueryListener(key, forceUpdate);
86
91
  }
87
92
  }
@@ -103,6 +108,9 @@ const useMedia = /* @__PURE__ */ __name(() => {
103
108
  const st = state.current;
104
109
  return new Proxy(mediaState, {
105
110
  get(target, key) {
111
+ if (key[0] !== "$") {
112
+ key = `$${key}`;
113
+ }
106
114
  if (!(key in mediaState)) {
107
115
  return Reflect.get(target, key);
108
116
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useMedia.tsx"],
4
- "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport { useRef } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { matchMedia } from '../helpers/matchMedia'\nimport {\n ConfigureMediaQueryOptions,\n MediaQueries,\n MediaQueryObject,\n MediaQueryState,\n} from '../types'\nimport { useConstant } from './useConstant'\n\nexport const mediaState: { [key in keyof MediaQueryState]: boolean } = {} as any\nconst mediaQueryListeners: { [key: string]: Set<Function> } = {}\n\nexport const addMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key] = mediaQueryListeners[key] || new Set()\n mediaQueryListeners[key].add(cb)\n}\n\nexport const removeMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key]?.delete(cb)\n}\n\nlet hasConfigured = false\nexport const mediaQueryConfig: MediaQueries = {}\n\nexport const getMedia = () => {\n return mediaState\n}\n\nexport const configureMedia = ({\n queries,\n defaultActive = ['sm', 'xs'],\n}: ConfigureMediaQueryOptions = {}) => {\n if (hasConfigured) {\n console.warn(\n `Already configured mediaQueries once (you may have called getMedia() before configureMedia())`\n )\n }\n\n if (queries) {\n Object.assign(mediaQueryConfig, queries)\n hasConfigured = true\n }\n\n // setup\n for (const key in queries) {\n const str = mediaObjectToString(queries[key])\n try {\n const getMatch = () => matchMedia(str)\n const match = getMatch()\n if (!match || typeof match.addListener !== 'function') {\n // caught below\n throw new Error('\u26A0\uFE0F No match (seeing this in RN sometimes)')\n }\n mediaState[key] = !!match.matches\n match.addListener(() => {\n const next = !!getMatch().matches\n if (next === mediaState[key]) return\n mediaState[key] = next\n const listeners = mediaQueryListeners[key]\n if (listeners?.size) {\n for (const cb of [...listeners]) {\n cb()\n }\n }\n })\n } catch (err: any) {\n console.error('Error running media query', str, err.message, err.stack)\n const isDefaultActive = defaultActive?.includes(key as any) ?? true\n mediaState[key] = isDefaultActive\n }\n }\n}\n\ntype UseMediaState = {\n selections: { [key: string]: boolean }\n nextSelections: { [key: string]: boolean }\n isRendering: boolean\n isUnmounted: boolean\n}\n\nexport const useMedia = () => {\n const forceUpdate = useForceUpdate()\n const state = useRef() as React.MutableRefObject<UseMediaState>\n if (!state.current) {\n state.current = {\n selections: {},\n nextSelections: {},\n isUnmounted: false,\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n // delete old\n for (const key in st.selections) {\n if (!(key in st.nextSelections)) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n // add new\n for (const key in st.nextSelections) {\n if (!(key in st.selections)) {\n addMediaQueryListener(key, forceUpdate)\n }\n }\n })\n\n // unmount\n useIsomorphicLayoutEffect(() => {\n return () => {\n const st = state.current\n st.isUnmounted = true\n const allKeys = {\n ...st.selections,\n ...st.nextSelections,\n }\n for (const key in allKeys) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n }, [])\n\n return useConstant(() => {\n const st = state.current\n return new Proxy(mediaState, {\n get(target, key: string) {\n if (!(key in mediaState)) {\n return Reflect.get(target, key)\n }\n if (!st.isUnmounted) {\n if (st.isRendering) {\n st.nextSelections[key] = true\n }\n }\n if (key in mediaState) {\n return mediaState[key]\n }\n return Reflect.get(mediaState, key)\n },\n })\n })\n}\n\nfunction camelToHyphen(str: string) {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()\n}\n\nexport function mediaObjectToString(query: string | MediaQueryObject) {\n if (typeof query === 'string') {\n return query\n }\n return Object.entries(query)\n .map(([feature, value]) => {\n feature = camelToHyphen(feature)\n if (typeof value === 'string') {\n return `(${feature}: ${value})`\n }\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = `${value}px`\n }\n return `(${feature}: ${value})`\n })\n .join(' and ')\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport { useRef } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { matchMedia } from '../helpers/matchMedia'\nimport {\n ConfigureMediaQueryOptions,\n MediaPropKeys,\n MediaQueries,\n MediaQueryKey,\n MediaQueryObject,\n} from '../types'\nimport { useConstant } from './useConstant'\n\nexport const mediaState: { [key in MediaPropKeys]: boolean } = {} as any\nconst mediaQueryListeners: { [key: string]: Set<Function> } = {}\n\nexport const addMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key] = mediaQueryListeners[key] || new Set()\n mediaQueryListeners[key].add(cb)\n}\n\nexport const removeMediaQueryListener = (key: string, cb: any) => {\n mediaQueryListeners[key]?.delete(cb)\n}\n\nlet hasConfigured = false\nexport const mediaQueryConfig: MediaQueries = {}\n\nexport const getMedia = () => {\n return mediaState\n}\n\nexport const configureMedia = ({\n queries,\n defaultActive = ['sm', 'xs'],\n}: ConfigureMediaQueryOptions = {}) => {\n if (hasConfigured) {\n console.warn(\n `Already configured mediaQueries once (you may have called getMedia() before configureMedia())`\n )\n }\n\n if (queries) {\n Object.assign(mediaQueryConfig, queries)\n hasConfigured = true\n }\n\n // setup\n for (const key in queries) {\n const str = mediaObjectToString(queries[key])\n const propKey = `$${key}`\n try {\n const getMatch = () => matchMedia(str)\n const match = getMatch()\n if (!match || typeof match.addListener !== 'function') {\n // caught below\n throw new Error('\u26A0\uFE0F No match (seeing this in RN sometimes)')\n }\n mediaState[propKey] = !!match.matches\n match.addListener(update)\n\n function update() {\n const next = !!getMatch().matches\n if (next === mediaState[propKey]) return\n mediaState[propKey] = next\n const listeners = mediaQueryListeners[propKey]\n if (listeners?.size) {\n for (const cb of [...listeners]) {\n cb()\n }\n }\n }\n\n update()\n } catch (err: any) {\n console.error('Error running media query', str, err.message, err.stack)\n const isDefaultActive = defaultActive?.includes(key as any) ?? true\n mediaState[propKey] = isDefaultActive\n }\n }\n}\n\ntype UseMediaState = {\n selections: { [key: string]: boolean }\n nextSelections: { [key: string]: boolean }\n isRendering: boolean\n isUnmounted: boolean\n}\n\nexport const useMedia = () => {\n const forceUpdate = useForceUpdate()\n const state = useRef() as React.MutableRefObject<UseMediaState>\n if (!state.current) {\n state.current = {\n selections: {},\n nextSelections: {},\n isUnmounted: false,\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n // delete old\n for (const key in st.selections) {\n if (!(key in st.nextSelections)) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n // add new\n for (const key in st.nextSelections) {\n if (!(key in st.selections)) {\n console.log('lsiten', key)\n addMediaQueryListener(key, forceUpdate)\n }\n }\n })\n\n // unmount\n useIsomorphicLayoutEffect(() => {\n return () => {\n const st = state.current\n st.isUnmounted = true\n const allKeys = {\n ...st.selections,\n ...st.nextSelections,\n }\n for (const key in allKeys) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n }, [])\n\n return useConstant(() => {\n const st = state.current\n return new Proxy(\n mediaState as {\n [key in MediaQueryKey]: boolean\n },\n {\n get(target, key: string) {\n if (key[0] !== '$') {\n key = `$${key}`\n }\n if (!(key in mediaState)) {\n return Reflect.get(target, key)\n }\n if (!st.isUnmounted) {\n if (st.isRendering) {\n st.nextSelections[key] = true\n }\n }\n if (key in mediaState) {\n return mediaState[key]\n }\n return Reflect.get(mediaState, key)\n },\n }\n )\n })\n}\n\nfunction camelToHyphen(str: string) {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()\n}\n\nexport function mediaObjectToString(query: string | MediaQueryObject) {\n if (typeof query === 'string') {\n return query\n }\n return Object.entries(query)\n .map(([feature, value]) => {\n feature = camelToHyphen(feature)\n if (typeof value === 'string') {\n return `(${feature}: ${value})`\n }\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = `${value}px`\n }\n return `(${feature}: ${value})`\n })\n .join(' and ')\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
File without changes
File without changes
@@ -49,14 +49,22 @@ const useTheme = /* @__PURE__ */ __name((themeName, componentName, props, forceU
49
49
  return Reflect.has(theme, key);
50
50
  },
51
51
  get(_, key) {
52
- if (!name || key === "__proto__") {
52
+ if (!name || key === "__proto__" || typeof key === "symbol") {
53
+ if (key === GetThemeManager) {
54
+ if (process.env.NODE_ENV === "development") {
55
+ if (props["debug"]) {
56
+ console.log("did change", { themeName, didChangeTheme, name, componentName }, themeManager == null ? void 0 : themeManager.parentName);
57
+ }
58
+ }
59
+ if (!didChangeTheme) {
60
+ return null;
61
+ }
62
+ return themeManager;
63
+ }
53
64
  return Reflect.get(_, key);
54
65
  }
55
- if (key === GetThemeManager) {
56
- if (!didChangeTheme) {
57
- return null;
58
- }
59
- return themeManager;
66
+ if (typeof key !== "string" || key === "$typeof") {
67
+ return Reflect.get(_, key);
60
68
  }
61
69
  if (process.env.NODE_ENV === "development") {
62
70
  if (key === "__state") {
@@ -73,26 +81,23 @@ const useTheme = /* @__PURE__ */ __name((themeName, componentName, props, forceU
73
81
  console.error("No themeManager");
74
82
  return;
75
83
  }
76
- if (process.env.NODE_ENV === "development") {
77
- if ((props == null ? void 0 : props["debug"]) === "verbose") {
78
- console.log(" \xBB accessing theme val", key, { ...state.current });
79
- }
84
+ if (key[0] === "$") {
85
+ key = key.slice(1);
80
86
  }
81
- if (typeof key === "string") {
82
- if (key[0] === "$") {
83
- key = key.slice(1);
84
- }
85
- const val = themeManager.getValue(key);
86
- if (val) {
87
- if (state.current.isRendering) {
88
- state.current.keys.add(key);
87
+ const val = themeManager.getValue(key);
88
+ if (val) {
89
+ if (state.current.isRendering) {
90
+ state.current.keys.add(key);
91
+ if (process.env.NODE_ENV === "development") {
92
+ if ((props == null ? void 0 : props["debug"]) === "verbose") {
93
+ console.log(" \xBB tracking theme key", key);
94
+ }
89
95
  }
90
- return val;
91
- }
92
- if (process.env.NODE_ENV === "development") {
93
- console.warn(`No theme value "${String(key)}" in ${name}`);
94
- return null;
95
96
  }
97
+ return val;
98
+ }
99
+ if (process.env.NODE_ENV === "development") {
100
+ console.log(`No theme value "${String(key)}" in ${name}`);
96
101
  }
97
102
  return Reflect.get(_, key);
98
103
  }