@tamagui/core 1.0.0-alpha.37 → 1.0.0-alpha.38

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 (331) hide show
  1. package/dist/constants/constants.js +32 -0
  2. package/dist/constants/constants.js.map +7 -0
  3. package/dist/{esm/constants → constants}/platform.js +2 -3
  4. package/dist/constants/platform.js.map +7 -0
  5. package/dist/constants/rnw.js +10 -0
  6. package/dist/constants/rnw.js.map +7 -0
  7. package/dist/constants/styleConstants.js +59 -0
  8. package/dist/constants/styleConstants.js.map +7 -0
  9. package/dist/createComponent.js +395 -0
  10. package/dist/createComponent.js.map +7 -0
  11. package/dist/{esm/createShorthands.js → createShorthands.js} +0 -0
  12. package/dist/createShorthands.js.map +7 -0
  13. package/dist/createTamagui.js +107 -0
  14. package/dist/createTamagui.js.map +7 -0
  15. package/dist/{esm/createTokens.js → createTokens.js} +0 -4
  16. package/dist/createTokens.js.map +7 -0
  17. package/dist/{esm/createVariable.js → createVariable.js} +2 -6
  18. package/dist/createVariable.js.map +7 -0
  19. package/dist/helpers/addStylesUsingClassname.js +28 -0
  20. package/dist/helpers/addStylesUsingClassname.js.map +7 -0
  21. package/dist/{esm/helpers → helpers}/createMediaStyle.js +0 -0
  22. package/dist/{esm/helpers → helpers}/createMediaStyle.js.map +1 -1
  23. package/dist/{esm/helpers → helpers}/createTamaguiProvider.js +20 -2
  24. package/dist/helpers/createTamaguiProvider.js.map +7 -0
  25. package/dist/helpers/extendStaticConfig.js +158 -0
  26. package/dist/helpers/extendStaticConfig.js.map +7 -0
  27. package/dist/helpers/fixNativeShadow.js +38 -0
  28. package/dist/helpers/fixNativeShadow.js.map +7 -0
  29. package/dist/{esm/helpers → helpers}/getSplitStyles.js +40 -43
  30. package/dist/helpers/getSplitStyles.js.map +7 -0
  31. package/dist/{esm/helpers → helpers}/insertStyleRule.js +0 -7
  32. package/dist/helpers/insertStyleRule.js.map +7 -0
  33. package/dist/{esm/helpers → helpers}/matchMedia.js +0 -3
  34. package/dist/helpers/matchMedia.js.map +7 -0
  35. package/dist/{esm/helpers → helpers}/matchMedia.native.js +0 -1
  36. package/dist/{esm/helpers → helpers}/matchMedia.native.js.map +3 -3
  37. package/dist/helpers/setIfChanged.js +17 -0
  38. package/dist/helpers/setIfChanged.js.map +7 -0
  39. package/dist/{esm/helpers → helpers}/themeable.js +1 -1
  40. package/dist/{esm/helpers → helpers}/themeable.js.map +3 -3
  41. package/dist/{esm/hooks → hooks}/useConstant.js +0 -0
  42. package/dist/{esm/hooks → hooks}/useConstant.js.map +1 -1
  43. package/dist/{esm/hooks → hooks}/useFeatures.js +51 -39
  44. package/dist/hooks/useFeatures.js.map +7 -0
  45. package/dist/hooks/useForceUpdate.js +28 -0
  46. package/dist/hooks/useForceUpdate.js.map +7 -0
  47. package/dist/{esm/hooks → hooks}/useMedia.js +18 -20
  48. package/dist/hooks/useMedia.js.map +7 -0
  49. package/dist/{esm/hooks → hooks}/usePressable.js +1 -2
  50. package/dist/{esm/hooks → hooks}/usePressable.js.map +2 -2
  51. package/dist/{esm/hooks → hooks}/useTheme.js +25 -28
  52. package/dist/hooks/useTheme.js.map +7 -0
  53. package/dist/index.cjs +1837 -0
  54. package/dist/index.cjs.map +7 -0
  55. package/dist/{esm/index.js → index.js} +4 -6
  56. package/dist/index.js.map +7 -0
  57. package/dist/{esm/static → static}/postProcessStyles.js +3 -3
  58. package/dist/static/postProcessStyles.js.map +7 -0
  59. package/dist/{esm/static.js → static.js} +1 -6
  60. package/dist/static.js.map +7 -0
  61. package/dist/styled.js +28 -0
  62. package/dist/styled.js.map +7 -0
  63. package/dist/testtypes.js +1 -0
  64. package/dist/{esm/types.js.map → testtypes.js.map} +0 -0
  65. package/dist/{esm/types.js → types.js} +0 -0
  66. package/dist/types.js.map +7 -0
  67. package/dist/{esm/views → views}/Animated.js +0 -0
  68. package/dist/{esm/views → views}/Animated.js.map +3 -3
  69. package/dist/{esm/views → views}/Stack.js +1 -1
  70. package/dist/views/Stack.js.map +7 -0
  71. package/dist/views/Text.js +36 -0
  72. package/dist/views/Text.js.map +7 -0
  73. package/dist/views/TextAncestorContext.js +18 -0
  74. package/dist/views/TextAncestorContext.js.map +7 -0
  75. package/dist/{esm/views → views}/Theme.js +23 -29
  76. package/dist/views/Theme.js.map +7 -0
  77. package/dist/{esm/views → views}/ThemeContext.js +0 -0
  78. package/dist/{esm/views → views}/ThemeContext.js.map +1 -1
  79. package/dist/{esm/views → views}/ThemeInverse.js +1 -0
  80. package/dist/{esm/views → views}/ThemeInverse.js.map +3 -3
  81. package/dist/{esm/views → views}/ThemeManagerContext.js +6 -13
  82. package/dist/views/ThemeManagerContext.js.map +7 -0
  83. package/dist/{esm/views → views}/ThemeProvider.js +10 -10
  84. package/dist/views/ThemeProvider.js.map +7 -0
  85. package/package.json +6 -9
  86. package/dist/cjs/constants/constants.js +0 -50
  87. package/dist/cjs/constants/constants.js.map +0 -7
  88. package/dist/cjs/constants/platform.js +0 -43
  89. package/dist/cjs/constants/platform.js.map +0 -7
  90. package/dist/cjs/constants/pseudos.js +0 -25
  91. package/dist/cjs/constants/pseudos.js.map +0 -7
  92. package/dist/cjs/constants/rnw.js +0 -28
  93. package/dist/cjs/constants/rnw.js.map +0 -7
  94. package/dist/cjs/createComponent.js +0 -529
  95. package/dist/cjs/createComponent.js.map +0 -7
  96. package/dist/cjs/createFont.js +0 -50
  97. package/dist/cjs/createFont.js.map +0 -7
  98. package/dist/cjs/createShorthands.js +0 -16
  99. package/dist/cjs/createShorthands.js.map +0 -7
  100. package/dist/cjs/createTamagui.js +0 -223
  101. package/dist/cjs/createTamagui.js.map +0 -7
  102. package/dist/cjs/createTheme.js +0 -13
  103. package/dist/cjs/createTheme.js.map +0 -7
  104. package/dist/cjs/createTokens.js +0 -55
  105. package/dist/cjs/createTokens.js.map +0 -7
  106. package/dist/cjs/createVariable.js +0 -47
  107. package/dist/cjs/createVariable.js.map +0 -7
  108. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -79
  109. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
  110. package/dist/cjs/helpers/createMediaStyle.js +0 -56
  111. package/dist/cjs/helpers/createMediaStyle.js.map +0 -7
  112. package/dist/cjs/helpers/createPropMapper.js +0 -197
  113. package/dist/cjs/helpers/createPropMapper.js.map +0 -7
  114. package/dist/cjs/helpers/createTamaguiProvider.js +0 -74
  115. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  116. package/dist/cjs/helpers/extendStaticConfig.js +0 -82
  117. package/dist/cjs/helpers/extendStaticConfig.js.map +0 -7
  118. package/dist/cjs/helpers/fixNativeShadow.js +0 -14
  119. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -7
  120. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -40
  121. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  122. package/dist/cjs/helpers/getSplitStyles.js +0 -180
  123. package/dist/cjs/helpers/getSplitStyles.js.map +0 -7
  124. package/dist/cjs/helpers/getStylesAtomic.js +0 -117
  125. package/dist/cjs/helpers/getStylesAtomic.js.map +0 -7
  126. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -16
  127. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -7
  128. package/dist/cjs/helpers/insertStyleRule.js +0 -46
  129. package/dist/cjs/helpers/insertStyleRule.js.map +0 -7
  130. package/dist/cjs/helpers/isObj.js +0 -13
  131. package/dist/cjs/helpers/isObj.js.map +0 -7
  132. package/dist/cjs/helpers/isTamaguiElement.js +0 -33
  133. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -7
  134. package/dist/cjs/helpers/matchMedia.js +0 -24
  135. package/dist/cjs/helpers/matchMedia.js.map +0 -7
  136. package/dist/cjs/helpers/matchMedia.native.js +0 -31
  137. package/dist/cjs/helpers/matchMedia.native.js.map +0 -7
  138. package/dist/cjs/helpers/themeable.js +0 -78
  139. package/dist/cjs/helpers/themeable.js.map +0 -7
  140. package/dist/cjs/helpers/validate.js +0 -82
  141. package/dist/cjs/helpers/validate.js.map +0 -7
  142. package/dist/cjs/hooks/useConstant.js +0 -37
  143. package/dist/cjs/hooks/useConstant.js.map +0 -7
  144. package/dist/cjs/hooks/useFeatures.js +0 -100
  145. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  146. package/dist/cjs/hooks/useMedia.js +0 -207
  147. package/dist/cjs/hooks/useMedia.js.map +0 -7
  148. package/dist/cjs/hooks/usePressable.js +0 -50
  149. package/dist/cjs/hooks/usePressable.js.map +0 -7
  150. package/dist/cjs/hooks/useTheme.js +0 -118
  151. package/dist/cjs/hooks/useTheme.js.map +0 -7
  152. package/dist/cjs/index.js +0 -55
  153. package/dist/cjs/index.js.map +0 -7
  154. package/dist/cjs/static/postProcessStyles.js +0 -40
  155. package/dist/cjs/static/postProcessStyles.js.map +0 -7
  156. package/dist/cjs/static.js +0 -34
  157. package/dist/cjs/static.js.map +0 -7
  158. package/dist/cjs/styled.js +0 -72
  159. package/dist/cjs/styled.js.map +0 -7
  160. package/dist/cjs/types.js +0 -4
  161. package/dist/cjs/types.js.map +0 -7
  162. package/dist/cjs/views/Animated.js +0 -129
  163. package/dist/cjs/views/Animated.js.map +0 -7
  164. package/dist/cjs/views/Stack.js +0 -51
  165. package/dist/cjs/views/Stack.js.map +0 -7
  166. package/dist/cjs/views/Text.js +0 -93
  167. package/dist/cjs/views/Text.js.map +0 -7
  168. package/dist/cjs/views/TextAncestorContext.js +0 -40
  169. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  170. package/dist/cjs/views/Theme.js +0 -91
  171. package/dist/cjs/views/Theme.js.map +0 -7
  172. package/dist/cjs/views/ThemeContext.js +0 -29
  173. package/dist/cjs/views/ThemeContext.js.map +0 -7
  174. package/dist/cjs/views/ThemeInverse.js +0 -48
  175. package/dist/cjs/views/ThemeInverse.js.map +0 -7
  176. package/dist/cjs/views/ThemeManagerContext.js +0 -84
  177. package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
  178. package/dist/cjs/views/ThemeProvider.js +0 -67
  179. package/dist/cjs/views/ThemeProvider.js.map +0 -7
  180. package/dist/esm/constants/constants.js +0 -14
  181. package/dist/esm/constants/constants.js.map +0 -7
  182. package/dist/esm/constants/platform.js.map +0 -7
  183. package/dist/esm/constants/pseudos.js +0 -18
  184. package/dist/esm/constants/pseudos.js.map +0 -7
  185. package/dist/esm/constants/rnw.js +0 -22
  186. package/dist/esm/constants/rnw.js.map +0 -7
  187. package/dist/esm/createComponent.js +0 -465
  188. package/dist/esm/createComponent.js.map +0 -7
  189. package/dist/esm/createFont.js +0 -28
  190. package/dist/esm/createFont.js.map +0 -7
  191. package/dist/esm/createShorthands.js.map +0 -7
  192. package/dist/esm/createTamagui.js +0 -185
  193. package/dist/esm/createTamagui.js.map +0 -7
  194. package/dist/esm/createTheme.js +0 -7
  195. package/dist/esm/createTheme.js.map +0 -7
  196. package/dist/esm/createTokens.js.map +0 -7
  197. package/dist/esm/createVariable.js.map +0 -7
  198. package/dist/esm/helpers/addStylesUsingClassname.js +0 -57
  199. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
  200. package/dist/esm/helpers/createPropMapper.js +0 -162
  201. package/dist/esm/helpers/createPropMapper.js.map +0 -7
  202. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  203. package/dist/esm/helpers/extendStaticConfig.js +0 -60
  204. package/dist/esm/helpers/extendStaticConfig.js.map +0 -7
  205. package/dist/esm/helpers/fixNativeShadow.js +0 -8
  206. package/dist/esm/helpers/fixNativeShadow.js.map +0 -7
  207. package/dist/esm/helpers/fixNativeShadow.native.js +0 -34
  208. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  209. package/dist/esm/helpers/getSplitStyles.js.map +0 -7
  210. package/dist/esm/helpers/getStylesAtomic.js +0 -84
  211. package/dist/esm/helpers/getStylesAtomic.js.map +0 -7
  212. package/dist/esm/helpers/getStylesAtomic.native.js +0 -10
  213. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -7
  214. package/dist/esm/helpers/insertStyleRule.js.map +0 -7
  215. package/dist/esm/helpers/isObj.js +0 -7
  216. package/dist/esm/helpers/isObj.js.map +0 -7
  217. package/dist/esm/helpers/isTamaguiElement.js +0 -11
  218. package/dist/esm/helpers/isTamaguiElement.js.map +0 -7
  219. package/dist/esm/helpers/matchMedia.js.map +0 -7
  220. package/dist/esm/helpers/validate.js +0 -60
  221. package/dist/esm/helpers/validate.js.map +0 -7
  222. package/dist/esm/hooks/useFeatures.js.map +0 -7
  223. package/dist/esm/hooks/useMedia.js.map +0 -7
  224. package/dist/esm/hooks/useTheme.js.map +0 -7
  225. package/dist/esm/index.js.map +0 -7
  226. package/dist/esm/static/postProcessStyles.js.map +0 -7
  227. package/dist/esm/static.js.map +0 -7
  228. package/dist/esm/styled.js +0 -21
  229. package/dist/esm/styled.js.map +0 -7
  230. package/dist/esm/views/Stack.js.map +0 -7
  231. package/dist/esm/views/Text.js +0 -60
  232. package/dist/esm/views/Text.js.map +0 -7
  233. package/dist/esm/views/TextAncestorContext.js +0 -18
  234. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  235. package/dist/esm/views/Theme.js.map +0 -7
  236. package/dist/esm/views/ThemeManagerContext.js.map +0 -7
  237. package/dist/esm/views/ThemeProvider.js.map +0 -7
  238. package/dist/jsx/constants/constants.js +0 -13
  239. package/dist/jsx/constants/platform.js +0 -19
  240. package/dist/jsx/constants/pseudos.js +0 -17
  241. package/dist/jsx/constants/rnw.js +0 -21
  242. package/dist/jsx/createComponent.js +0 -459
  243. package/dist/jsx/createFont.js +0 -27
  244. package/dist/jsx/createShorthands.js +0 -9
  245. package/dist/jsx/createTamagui.js +0 -184
  246. package/dist/jsx/createTheme.js +0 -6
  247. package/dist/jsx/createTokens.js +0 -32
  248. package/dist/jsx/createVariable.js +0 -24
  249. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -56
  250. package/dist/jsx/helpers/createMediaStyle.js +0 -33
  251. package/dist/jsx/helpers/createPropMapper.js +0 -161
  252. package/dist/jsx/helpers/createTamaguiProvider.js +0 -19
  253. package/dist/jsx/helpers/extendStaticConfig.js +0 -59
  254. package/dist/jsx/helpers/fixNativeShadow.js +0 -7
  255. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -33
  256. package/dist/jsx/helpers/getSplitStyles.js +0 -149
  257. package/dist/jsx/helpers/getStylesAtomic.js +0 -83
  258. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
  259. package/dist/jsx/helpers/insertStyleRule.js +0 -23
  260. package/dist/jsx/helpers/isObj.js +0 -6
  261. package/dist/jsx/helpers/isTamaguiElement.js +0 -10
  262. package/dist/jsx/helpers/matchMedia.js +0 -17
  263. package/dist/jsx/helpers/matchMedia.native.js +0 -8
  264. package/dist/jsx/helpers/themeable.js +0 -23
  265. package/dist/jsx/helpers/validate.js +0 -59
  266. package/dist/jsx/hooks/useConstant.js +0 -14
  267. package/dist/jsx/hooks/useFeatures.js +0 -57
  268. package/dist/jsx/hooks/useMedia.js +0 -174
  269. package/dist/jsx/hooks/usePressable.js +0 -13
  270. package/dist/jsx/hooks/useTheme.js +0 -96
  271. package/dist/jsx/index.js +0 -31
  272. package/dist/jsx/static/postProcessStyles.js +0 -17
  273. package/dist/jsx/static.js +0 -14
  274. package/dist/jsx/styled.js +0 -20
  275. package/dist/jsx/types.js +0 -0
  276. package/dist/jsx/views/Animated.js +0 -74
  277. package/dist/jsx/views/Stack.js +0 -11
  278. package/dist/jsx/views/Text.js +0 -59
  279. package/dist/jsx/views/TextAncestorContext.js +0 -15
  280. package/dist/jsx/views/Theme.js +0 -63
  281. package/dist/jsx/views/ThemeContext.js +0 -5
  282. package/dist/jsx/views/ThemeInverse.js +0 -22
  283. package/dist/jsx/views/ThemeManagerContext.js +0 -61
  284. package/dist/jsx/views/ThemeProvider.js +0 -39
  285. package/types/constants/constants.d.ts.map +0 -1
  286. package/types/constants/platform.d.ts.map +0 -1
  287. package/types/constants/pseudos.d.ts.map +0 -1
  288. package/types/constants/rnw.d.ts.map +0 -1
  289. package/types/createComponent.d.ts.map +0 -1
  290. package/types/createFont.d.ts.map +0 -1
  291. package/types/createShorthands.d.ts.map +0 -1
  292. package/types/createTamagui.d.ts.map +0 -1
  293. package/types/createTheme.d.ts.map +0 -1
  294. package/types/createTokens.d.ts.map +0 -1
  295. package/types/createVariable.d.ts.map +0 -1
  296. package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
  297. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  298. package/types/helpers/createPropMapper.d.ts.map +0 -1
  299. package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
  300. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  301. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  302. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  303. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  304. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  305. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  306. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  307. package/types/helpers/isObj.d.ts.map +0 -1
  308. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  309. package/types/helpers/matchMedia.d.ts.map +0 -1
  310. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  311. package/types/helpers/themeable.d.ts.map +0 -1
  312. package/types/helpers/validate.d.ts.map +0 -1
  313. package/types/hooks/useConstant.d.ts.map +0 -1
  314. package/types/hooks/useFeatures.d.ts.map +0 -1
  315. package/types/hooks/useMedia.d.ts.map +0 -1
  316. package/types/hooks/usePressable.d.ts.map +0 -1
  317. package/types/hooks/useTheme.d.ts.map +0 -1
  318. package/types/index.d.ts.map +0 -1
  319. package/types/static/postProcessStyles.d.ts.map +0 -1
  320. package/types/static.d.ts.map +0 -1
  321. package/types/styled.d.ts.map +0 -1
  322. package/types/types.d.ts.map +0 -1
  323. package/types/views/Animated.d.ts.map +0 -1
  324. package/types/views/Stack.d.ts.map +0 -1
  325. package/types/views/Text.d.ts.map +0 -1
  326. package/types/views/TextAncestorContext.d.ts.map +0 -1
  327. package/types/views/Theme.d.ts.map +0 -1
  328. package/types/views/ThemeContext.d.ts.map +0 -1
  329. package/types/views/ThemeInverse.d.ts.map +0 -1
  330. package/types/views/ThemeManagerContext.d.ts.map +0 -1
  331. package/types/views/ThemeProvider.d.ts.map +0 -1
@@ -1,23 +1,16 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import {
4
- AllRules,
5
- stylePropsText,
6
- stylePropsTransform,
7
- validStyles,
8
- validStylesPseudo
9
- } from "@tamagui/helpers";
3
+ import { getStylesAtomic, stylePropsText, stylePropsTransform, validStyles } from "@tamagui/helpers";
10
4
  import { isWeb } from "../constants/platform";
11
- import { mediaQueryConfig, mediaState } from "../hooks/useMedia";
5
+ import { getMedia, mediaQueryConfig } from "../hooks/useMedia";
12
6
  import { createMediaStyle } from "./createMediaStyle";
13
7
  import { fixNativeShadow } from "./fixNativeShadow";
14
- import { getStylesAtomic } from "./getStylesAtomic";
15
8
  import { insertStyleRule } from "./insertStyleRule";
16
- const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSplittingDefaultProps) => {
9
+ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, internalConfig) => {
17
10
  const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
18
11
  const viewProps = {};
19
12
  const style = [];
20
- let pseudos = null;
13
+ let psuedos = null;
21
14
  let cur = null;
22
15
  let classNames = null;
23
16
  for (const keyInit in props) {
@@ -29,49 +22,39 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSpl
29
22
  continue;
30
23
  }
31
24
  const mediaProps = { ...props, ...valInit };
32
- const mediaStyle = getSubStyle(valInit, staticConfig, theme, props);
33
- if (isWeb) {
34
- const mediaStyles = getStylesAtomic(mediaStyle);
25
+ const mediaStyle = getSubStyle(valInit, mediaProps, staticConfig, internalConfig);
26
+ const mediaStyles = getStylesAtomic(mediaStyle);
27
+ for (const style2 of mediaStyles) {
28
+ const out2 = createMediaStyle(style2, mediaKey, mediaQueryConfig);
29
+ classNames = classNames || [];
30
+ classNames.push(out2.identifier);
31
+ insertStyleRule(out2.styleRule);
35
32
  if (process.env.NODE_ENV === "development") {
36
- if (props["debug"]) {
37
- console.log("mediaStyles", keyInit, { mediaProps, mediaStyle, mediaStyles });
38
- }
39
- }
40
- for (const style2 of mediaStyles) {
41
- const out2 = createMediaStyle(style2, mediaKey, mediaQueryConfig);
42
- classNames = classNames || [];
43
- classNames.push(out2.identifier);
44
- AllRules.add(out2.styleRule);
45
- insertStyleRule(out2.styleRule);
46
- if (process.env.NODE_ENV === "development" && props["debug"]) {
33
+ if (props["debug"])
47
34
  console.log("mediaProp", style2.identifier, out2, mediaProps, mediaStyle, mediaStyles);
48
- }
49
- }
50
- } else {
51
- if (mediaState[mediaKey]) {
52
- style.push(mediaStyle);
53
35
  }
54
36
  }
55
37
  continue;
56
38
  }
57
- if (validStylesPseudo[keyInit]) {
39
+ const isPseudo = keyInit === "hoverStyle" || keyInit === "pressStyle" || keyInit === "focusStyle";
40
+ if (isPseudo) {
58
41
  if (!valInit)
59
42
  continue;
60
- pseudos = pseudos || {};
61
- pseudos[keyInit] = getSubStyle(valInit, staticConfig, theme, props);
43
+ psuedos = psuedos || {};
44
+ psuedos[keyInit] = getSubStyle(valInit, props, staticConfig, internalConfig);
62
45
  continue;
63
46
  }
64
- const out = staticConfig.propMapper(keyInit, valInit, theme, props);
47
+ const out = staticConfig.propMapper(keyInit, valInit, props);
65
48
  const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
66
49
  for (const [key, val] of expanded) {
67
50
  const keyFirstChar = key[0];
68
51
  if (key === "style" || keyFirstChar === "_" && key.startsWith("_style")) {
69
52
  if (cur) {
70
- fixNativeShadow(cur);
53
+ fixNativeShadow(cur, true);
71
54
  style.push(cur);
72
55
  cur = null;
73
56
  }
74
- fixNativeShadow(val);
57
+ fixNativeShadow(val, true);
75
58
  style.push(val);
76
59
  continue;
77
60
  }
@@ -97,32 +80,32 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSpl
97
80
  cur[key] = val;
98
81
  continue;
99
82
  }
100
- if (!staticConfig.variants || !(key in staticConfig.variants)) {
83
+ if (!blacklistProps[key]) {
101
84
  viewProps[key] = val;
102
85
  }
103
86
  }
104
87
  }
105
88
  if (cur) {
106
- fixNativeShadow(cur);
89
+ fixNativeShadow(cur, true);
107
90
  style.push(cur);
108
91
  }
109
92
  if (process.env.NODE_ENV === "development") {
110
93
  if (props["debug"]) {
111
- console.log(" \u{1F95A} splitProps:", { props, viewProps, style });
94
+ console.log(" style debug:", { props, viewProps, style }, getMedia());
112
95
  }
113
96
  }
114
97
  return {
115
98
  viewProps,
116
99
  style,
117
- pseudos,
100
+ psuedos,
118
101
  classNames
119
102
  };
120
103
  }, "getSplitStyles");
121
- const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props) => {
104
+ const getSubStyle = /* @__PURE__ */ __name((styleIn, props, staticConfig, internalConfig) => {
122
105
  const styleOut = {};
123
106
  for (const key in styleIn) {
124
107
  const val = styleIn[key];
125
- const out = staticConfig.propMapper(key, val, theme, props);
108
+ const out = staticConfig.propMapper(key, val, props);
126
109
  const expanded = out === true || !out ? [[key, val]] : Object.entries(out);
127
110
  for (const [skey, sval] of expanded) {
128
111
  if (skey in stylePropsTransform) {
@@ -132,9 +115,17 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props)
132
115
  }
133
116
  }
134
117
  }
135
- fixNativeShadow(styleOut);
118
+ fixNativeShadow(styleOut, true);
136
119
  return styleOut;
137
120
  }, "getSubStyle");
121
+ const blacklistProps = {
122
+ debug: true,
123
+ onPress: true,
124
+ spacing: true,
125
+ hitSlop: true,
126
+ ...validStyles,
127
+ ...stylePropsText
128
+ };
138
129
  const mapTransformKeys = {
139
130
  x: "translateX",
140
131
  y: "translateY"
@@ -144,6 +135,12 @@ const mergeTransform = /* @__PURE__ */ __name((obj, key, val) => {
144
135
  transform.push({ [mapTransformKeys[key] || key]: val });
145
136
  obj.transform = transform;
146
137
  }, "mergeTransform");
138
+ const fullscreenStyle = {
139
+ top: 0,
140
+ left: 0,
141
+ right: 0,
142
+ bottom: 0
143
+ };
147
144
  export {
148
145
  getSplitStyles
149
146
  };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers/getSplitStyles.tsx"],
4
+ "sourcesContent": ["import { getStylesAtomic, stylePropsText, stylePropsTransform, validStyles } from '@tamagui/helpers'\nimport { ViewProps, ViewStyle } from 'react-native'\n\nimport { isWeb } from '../constants/platform'\nimport { getMedia, mediaQueryConfig } from '../hooks/useMedia'\nimport { StaticConfigParsed, TamaguiInternalConfig } from '../types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { fixNativeShadow } from './fixNativeShadow'\nimport { insertStyleRule } from './insertStyleRule'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\n\nexport const getSplitStyles = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n internalConfig: TamaguiInternalConfig\n) => {\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: ViewProps = {}\n const style: any[] = []\n let psuedos: { hoverStyle?: ViewStyle; pressStyle?: ViewStyle } | null = null\n let cur: ViewStyle | null = null\n let classNames: string[] | null = null\n for (const keyInit in props) {\n // be sure to sync next few lines below to getSubStyle (*1)\n const valInit = props[keyInit]\n\n // media\n if (keyInit[0] === '$') {\n const mediaKey = keyInit.slice(1)\n\n if (!mediaQueryConfig[mediaKey]) {\n // this isn't a media key, pass through\n viewProps[keyInit] = valInit\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n const mediaProps = { ...props, ...valInit }\n // TODO media + hover\n const mediaStyle = getSubStyle(valInit, mediaProps, staticConfig, internalConfig)\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKey, mediaQueryConfig)\n classNames = classNames || []\n classNames.push(out.identifier)\n insertStyleRule(out.styleRule)\n if (process.env.NODE_ENV === 'development') {\n if (props['debug'])\n console.log('mediaProp', style.identifier, out, mediaProps, mediaStyle, mediaStyles)\n }\n }\n continue\n }\n\n // pseudo\n const isPseudo =\n keyInit === 'hoverStyle' || keyInit === 'pressStyle' || keyInit === 'focusStyle'\n if (isPseudo) {\n if (!valInit) continue\n psuedos = psuedos || {}\n psuedos[keyInit] = getSubStyle(valInit, props, staticConfig, internalConfig)\n continue\n }\n\n const out = staticConfig.propMapper(keyInit, valInit, props)\n const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out)\n for (const [key, val] of expanded) {\n // const val = valueMap(valInit) ?? valInit\n const keyFirstChar = key[0]\n if (key === 'style' || (keyFirstChar === '_' && key.startsWith('_style'))) {\n if (cur) {\n // process last\n fixNativeShadow(cur, true)\n style.push(cur)\n cur = null\n }\n fixNativeShadow(val, true)\n style.push(val)\n continue\n }\n // expand flex so it merged with flexShrink etc properly\n if (key === 'flex') {\n cur = cur || {}\n // see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n Object.assign(cur, {\n flexGrow: val,\n flexShrink: 1,\n })\n continue\n }\n if (!isWeb && key === 'pointerEvents') {\n viewProps[key] = val\n continue\n }\n if (validStyleProps[key]) {\n // transforms\n if (key in stylePropsTransform) {\n cur = cur || {}\n mergeTransform(cur, key, val)\n continue\n }\n cur = cur || {}\n cur[key] = val\n continue\n }\n // TODO this blacklist should be configurable + better set up\n if (!blacklistProps[key]) {\n viewProps[key] = val\n }\n }\n }\n // push last style\n if (cur) {\n fixNativeShadow(cur, true)\n style.push(cur)\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n console.log(' style debug:', { props, viewProps, style }, getMedia())\n }\n }\n\n return {\n viewProps,\n style,\n psuedos,\n classNames,\n }\n}\n\nconst getSubStyle = (\n styleIn: Object,\n props: any,\n staticConfig: StaticConfigParsed,\n internalConfig: TamaguiInternalConfig\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (const key in styleIn) {\n // be sure to sync next few lines below to loop above (*1)\n const val = styleIn[key]\n const out = staticConfig.propMapper(key, val, props)\n const expanded = out === true || !out ? [[key, val]] : Object.entries(out)\n for (const [skey, sval] of expanded) {\n // const sval = valueMap(valInit)\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = sval\n }\n }\n }\n fixNativeShadow(styleOut, true)\n return styleOut\n}\n\n// temp\nconst blacklistProps = {\n debug: true,\n onPress: true,\n spacing: true,\n hitSlop: true,\n ...validStyles,\n ...stylePropsText,\n}\n\nconst mapTransformKeys = {\n x: 'translateX',\n y: 'translateY',\n}\n\nconst mergeTransform = (obj: ViewStyle, key: string, val: any) => {\n const transform = obj.transform\n ? Array.isArray(obj.transform)\n ? obj.transform\n : [obj.transform]\n : []\n // @ts-expect-error\n transform.push({ [mapTransformKeys[key] || key]: val })\n obj.transform = transform\n}\n\n// TODO move otu\nconst fullscreenStyle = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n} as const\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,16 +1,9 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { isWeb } from "../constants/platform";
4
3
  function insertStyleRule(rule) {
5
4
  if (typeof window === "undefined") {
6
5
  return;
7
6
  }
8
- if (process.env.NODE_ENV === "development") {
9
- if (!isWeb) {
10
- console.warn("non web platform, dont use this");
11
- return;
12
- }
13
- }
14
7
  const sheet = window.document.styleSheets[0];
15
8
  if (!sheet) {
16
9
  return;
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers/insertStyleRule.tsx"],
4
+ "sourcesContent": ["export function insertStyleRule(rule: string) {\n if (typeof window === 'undefined') {\n return\n }\n const sheet = window.document.styleSheets[0]\n if (!sheet) {\n return\n }\n sheet.insertRule(rule, sheet.cssRules.length)\n}\n"],
5
+ "mappings": ";;AAAO,yBAAyB,MAAc;AAC5C,MAAI,OAAO,WAAW,aAAa;AACjC;AAAA;AAEF,QAAM,QAAQ,OAAO,SAAS,YAAY;AAC1C,MAAI,CAAC,OAAO;AACV;AAAA;AAEF,QAAM,WAAW,MAAM,MAAM,SAAS;AAAA;AARxB;",
6
+ "names": []
7
+ }
@@ -3,9 +3,6 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
  const matchMedia = typeof window !== "undefined" && window.matchMedia || /* @__PURE__ */ __name(function matchMediaFallback(query) {
4
4
  return {
5
5
  addListener() {
6
- if (process.env.NODE_ENV === "development" && !process.env.IS_STATIC && process.env.TAMAGUI_TARGET !== "web") {
7
- console.log("warning: matchMedia not loading! Is native picking up .native.js files?");
8
- }
9
6
  },
10
7
  removeListener() {
11
8
  },
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers/matchMedia.ts"],
4
+ "sourcesContent": ["export const matchMedia =\n (typeof window !== 'undefined' && window.matchMedia) ||\n (function matchMediaFallback(query: string) {\n return {\n addListener() {},\n removeListener() {},\n matches: false,\n }\n } as any)\n"],
5
+ "mappings": ";;AAAO,MAAM,aACV,OAAO,WAAW,eAAe,OAAO,cACxC,mDAA4B,OAAe;AAC1C,SAAO;AAAA,IACL,cAAc;AAAA;AAAA,IACd,iBAAiB;AAAA;AAAA,IACjB,SAAS;AAAA;AAAA,GAJZ;",
6
+ "names": []
7
+ }
@@ -2,7 +2,6 @@ var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import MediaQueryList from "@expo/match-media/build/MediaQueryList.js";
4
4
  const matchMedia = /* @__PURE__ */ __name((media) => new MediaQueryList(media), "matchMedia");
5
- globalThis["matchMedia"] = matchMedia;
6
5
  export {
7
6
  matchMedia
8
7
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/helpers/matchMedia.native.ts"],
4
- "sourcesContent": ["import MediaQueryList from '@expo/match-media/build/MediaQueryList.js'\n\nexport const matchMedia = (media: string) => new MediaQueryList(media)\n\n// @ts-ignore\nglobalThis['matchMedia'] = matchMedia\n"],
5
- "mappings": ";;AAAA;AAEO,MAAM,aAAa,wBAAC,UAAkB,IAAI,eAAe,QAAtC;AAG1B,WAAW,gBAAgB;",
3
+ "sources": ["../../src/helpers/matchMedia.native.ts"],
4
+ "sourcesContent": ["import MediaQueryList from '@expo/match-media/build/MediaQueryList.js'\n\nexport const matchMedia = (media: string) => new MediaQueryList(media)\n"],
5
+ "mappings": ";;AAAA;AAEO,MAAM,aAAa,wBAAC,UAAkB,IAAI,eAAe,QAAtC;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isEqual } from "@dish/fast-compare";
4
+ const setIfChanged = /* @__PURE__ */ __name((setter, next) => {
5
+ setter((prev) => {
6
+ console.log("should test if this is the right way to check, merge objects??");
7
+ const n = { ...prev, ...next };
8
+ if (isEqual(prev, n)) {
9
+ return prev;
10
+ }
11
+ return n;
12
+ });
13
+ }, "setIfChanged");
14
+ export {
15
+ setIfChanged
16
+ };
17
+ //# sourceMappingURL=setIfChanged.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/helpers/setIfChanged.tsx"],
4
+ "sourcesContent": ["import { isEqual } from '@dish/fast-compare'\n\nexport const setIfChanged = (setter: any, next: Object) => {\n setter((prev) => {\n console.log('should test if this is the right way to check, merge objects??')\n const n = { ...prev, ...next }\n if (isEqual(prev, n)) {\n return prev\n }\n return n\n })\n}\n"],
5
+ "mappings": ";;AAAA;AAEO,MAAM,eAAe,wBAAC,QAAa,SAAiB;AACzD,SAAO,CAAC,SAAS;AACf,YAAQ,IAAI;AACZ,UAAM,IAAI,KAAK,SAAS;AACxB,QAAI,QAAQ,MAAM,IAAI;AACpB,aAAO;AAAA;AAET,WAAO;AAAA;AAAA,GAPiB;",
6
+ "names": []
7
+ }
@@ -17,7 +17,7 @@ const themeable = /* @__PURE__ */ __name(function graphql(component) {
17
17
  return el;
18
18
  }, "WithTheme"));
19
19
  const withTheme = withThemeComponent;
20
- withTheme.displayName = `Themed(${(component == null ? void 0 : component.displayName) || (component == null ? void 0 : component.name) || "Anonymous"})`;
20
+ withTheme.displayName = `Themed(${component?.displayName || component?.name || "Anonymous"})`;
21
21
  return withTheme;
22
22
  }, "graphql");
23
23
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/helpers/themeable.tsx"],
4
- "sourcesContent": ["import React, { ReactElement, forwardRef } from 'react'\n\nimport { Theme } from '../views/Theme'\nimport { ThemeInverse } from '../views/ThemeInverse'\n\nexport type ThemeableProps = {\n theme?: string | null\n themeInverse?: boolean\n}\n\nexport const themeable: ThemeableHOC = function graphql<\n R extends ReactElement<any, any> | null,\n P extends ThemeableProps = {}\n>(component: (props: P) => R) {\n const withThemeComponent = forwardRef(function WithTheme({ themeInverse, ...rest }: P, ref) {\n const el = React.createElement(component, { ...rest, ref } as any) as R\n if (themeInverse) {\n return (<ThemeInverse>{el}</ThemeInverse>) as R\n }\n if (rest.theme) {\n return (<Theme name={rest.theme || null}>{el}</Theme>) as R\n }\n return el\n })\n\n const withTheme: {\n (props: P): R\n displayName: string\n } = withThemeComponent as any\n\n withTheme.displayName = `Themed(${\n (component as any)?.displayName || (component as any)?.name || 'Anonymous'\n })`\n\n return withTheme\n}\n\nexport interface ThemeableHOC {\n <R extends ReactElement<any, any> | null, P extends ThemeableProps = {}>(\n component: (props: P) => R\n ): (props: P) => R\n}\n"],
5
- "mappings": ";;AAAA;AAEA;AACA;AAOO,MAAM,YAA0B,wCAGrC,WAA4B;AAC5B,QAAM,qBAAqB,WAAW,0CAAmB,EAAE,iBAAiB,QAAW,KAAK;AAC1F,UAAM,KAAK,MAAM,cAAc,WAAW,KAAK,MAAM;AACrD,QAAI,cAAc;AAChB,aAAQ,oCAAC,cAAD,MAAe;AAAA;AAEzB,QAAI,KAAK,OAAO;AACd,aAAQ,oCAAC,OAAD;AAAA,QAAO,MAAM,KAAK,SAAS;AAAA,SAAO;AAAA;AAE5C,WAAO;AAAA,KAR6B;AAWtC,QAAM,YAGF;AAEJ,YAAU,cAAc,UACrB,wCAAmB,gBAAgB,wCAAmB,SAAQ;AAGjE,SAAO;AAAA,GAxB8B;",
3
+ "sources": ["../../src/helpers/themeable.tsx"],
4
+ "sourcesContent": ["import React, { ReactElement, forwardRef } from 'react'\n\nimport { Theme } from '../views/Theme'\nimport { ThemeInverse } from '../views/ThemeInverse'\n\nexport type ThemeableProps = {\n theme?: string | null\n themeInverse?: boolean\n}\n\nexport const themeable: ThemeableHOC = function graphql<\n R extends ReactElement<any, any> | null,\n P extends ThemeableProps = {}\n>(component: (props: P) => R) {\n const withThemeComponent = forwardRef(function WithTheme({ themeInverse, ...rest }: P, ref) {\n const el = React.createElement(component, { ...rest, ref } as any) as R\n if (themeInverse) {\n return (<ThemeInverse>{el}</ThemeInverse>) as R\n }\n if (rest.theme) {\n // @ts-ignore\n return (<Theme name={rest.theme || null}>{el}</Theme>) as R\n }\n return el\n })\n\n const withTheme: {\n (props: P): R\n displayName: string\n } = withThemeComponent as any\n\n withTheme.displayName = `Themed(${(component as any)?.displayName || (component as any)?.name || 'Anonymous'})`\n\n return withTheme\n}\n\nexport interface ThemeableHOC {\n <R extends ReactElement<any, any> | null, P extends ThemeableProps = {}>(component: (props: P) => R): (\n props: P\n ) => R\n}\n"],
5
+ "mappings": ";;AAAA;AAEA;AACA;AAOO,MAAM,YAA0B,wCAGrC,WAA4B;AAC5B,QAAM,qBAAqB,WAAW,0CAAmB,EAAE,iBAAiB,QAAW,KAAK;AAC1F,UAAM,KAAK,MAAM,cAAc,WAAW,KAAK,MAAM;AACrD,QAAI,cAAc;AAChB,aAAQ,oCAAC,cAAD,MAAe;AAAA;AAEzB,QAAI,KAAK,OAAO;AAEd,aAAQ,oCAAC,OAAD;AAAA,QAAO,MAAM,KAAK,SAAS;AAAA,SAAO;AAAA;AAE5C,WAAO;AAAA,KAT6B;AAYtC,QAAM,YAGF;AAEJ,YAAU,cAAc,UAAW,WAAmB,eAAgB,WAAmB,QAAQ;AAEjG,SAAO;AAAA,GAvB8B;",
6
6
  "names": []
7
7
  }
File without changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/hooks/useConstant.tsx"],
3
+ "sources": ["../../src/hooks/useConstant.tsx"],
4
4
  "sourcesContent": ["import { useRef } from 'react'\n\ntype ResultBox<T> = { v: T }\nexport function useConstant<T>(fn: () => T): T {\n const ref = useRef<ResultBox<T>>()\n if (!ref.current) {\n ref.current = { v: fn() }\n }\n return ref.current.v\n}\n"],
5
5
  "mappings": ";;AAAA;AAGO,qBAAwB,IAAgB;AAC7C,QAAM,MAAM;AACZ,MAAI,CAAC,IAAI,SAAS;AAChB,QAAI,UAAU,EAAE,GAAG;AAAA;AAErB,SAAO,IAAI,QAAQ;AAAA;AALL;",
6
6
  "names": []
@@ -2,45 +2,41 @@ var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import React from "react";
4
4
  import { isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
5
- import { addMediaQueryListener, mediaState, removeMediaQueryListener } from "./useMedia";
6
- const createDefinition = /* @__PURE__ */ __name(({
7
- Component,
8
- propNames
9
- }) => ({
5
+ import { addMediaQueryListener, removeMediaQueryListener } from "./useMedia";
6
+ const createDefinition = /* @__PURE__ */ __name(({ Component, propNames }) => ({
10
7
  isEnabled: (props) => propNames.some((name) => !!props[name]),
11
8
  Component
12
9
  }), "createDefinition");
13
- let featureDefinitions = null;
14
- const useFeatures = /* @__PURE__ */ __name((props, utils) => {
15
- if (!featureDefinitions) {
16
- featureDefinitions = loadFeatures();
17
- }
18
- const features = [];
19
- for (const name in featureDefinitions) {
20
- const { isEnabled, Component } = featureDefinitions[name];
21
- if (isEnabled(props) && Component) {
22
- features.push(/* @__PURE__ */ React.createElement(Component, {
23
- key: name,
24
- ...props,
25
- _utils: utils
26
- }));
27
- }
28
- }
29
- return features;
30
- }, "useFeatures");
31
- function loadFeatures() {
32
- return {
33
- ...!isWeb && {
34
- mediaQuery: loadMediaQueryFeature()
35
- }
36
- };
37
- }
38
- __name(loadFeatures, "loadFeatures");
39
- function loadMediaQueryFeature() {
40
- const mediaPropNames = Object.keys(mediaState);
41
- return createDefinition({
10
+ const mediaQueryPropNames = [
11
+ "$xs",
12
+ "$sm",
13
+ "$md",
14
+ "$lg",
15
+ "$xl",
16
+ "$xxl",
17
+ "$pointerCoarse",
18
+ "$hoverNone",
19
+ "$tall",
20
+ "$short",
21
+ "$gtSm",
22
+ "$notXs",
23
+ "$gtMd",
24
+ "$gtLg"
25
+ ];
26
+ const featureDefinitions = {
27
+ measureLayout: createDefinition({
28
+ Component: (props) => {
29
+ console.log("measure", props);
30
+ return null;
31
+ },
32
+ propNames: ["onLayout"]
33
+ }),
34
+ mediaQuery: createDefinition({
42
35
  Component: (props) => {
43
- const keys = mediaPropNames.flatMap((x) => x in props ? x.slice(1) : []);
36
+ if (isWeb) {
37
+ return;
38
+ }
39
+ const keys = mediaQueryPropNames.flatMap((x) => x in props ? x.slice(1) : []);
44
40
  useIsomorphicLayoutEffect(() => {
45
41
  for (const key of keys) {
46
42
  addMediaQueryListener(key, props._utils.forceUpdate);
@@ -53,10 +49,26 @@ function loadMediaQueryFeature() {
53
49
  }, [keys.join(",")]);
54
50
  return null;
55
51
  },
56
- propNames: mediaPropNames
57
- });
58
- }
59
- __name(loadMediaQueryFeature, "loadMediaQueryFeature");
52
+ propNames: mediaQueryPropNames
53
+ })
54
+ };
55
+ const featureNames = Object.keys(featureDefinitions);
56
+ const numFeatures = featureNames.length;
57
+ const useFeatures = /* @__PURE__ */ __name((props, utils) => {
58
+ const features = [];
59
+ for (let i = 0; i < numFeatures; i++) {
60
+ const name = featureNames[i];
61
+ const { isEnabled, Component } = featureDefinitions[name];
62
+ if (isEnabled(props) && Component) {
63
+ features.push(/* @__PURE__ */ React.createElement(Component, {
64
+ key: name,
65
+ ...props,
66
+ _utils: utils
67
+ }));
68
+ }
69
+ }
70
+ return features;
71
+ }, "useFeatures");
60
72
  export {
61
73
  useFeatures
62
74
  };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/hooks/useFeatures.tsx"],
4
+ "sourcesContent": ["import React from 'react'\n\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { addMediaQueryListener, removeMediaQueryListener } from './useMedia'\n\n// only needed on native\n// dynamic loading of features to avoid heavy views\n\nconst createDefinition = ({ Component, propNames }: { Component; propNames: string[] }) => ({\n isEnabled: (props: any) => propNames.some((name) => !!props[name]),\n Component,\n})\n\nconst mediaQueryPropNames = [\n '$xs',\n '$sm',\n '$md',\n '$lg',\n '$xl',\n '$xxl',\n '$pointerCoarse',\n '$hoverNone',\n '$tall',\n '$short',\n '$gtSm',\n '$notXs',\n '$gtMd',\n '$gtLg',\n]\n\nconst featureDefinitions = {\n measureLayout: createDefinition({\n Component: (props) => {\n console.log('measure', props)\n return null\n },\n propNames: ['onLayout'],\n }),\n\n // will update the parent whenever media query changes\n mediaQuery: createDefinition({\n Component: (props) => {\n if (isWeb) {\n // no need for media queries are inserted and run in css\n return\n }\n\n const keys = mediaQueryPropNames.flatMap((x) => (x in props ? x.slice(1) : []))\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 return null\n },\n propNames: mediaQueryPropNames,\n }),\n}\n\nconst featureNames = Object.keys(featureDefinitions)\nconst numFeatures = featureNames.length\n\nexport const useFeatures = (props: any, utils?: { forceUpdate?: Function }) => {\n const features: JSX.Element[] = []\n for (let i = 0; i < numFeatures; i++) {\n const name = featureNames[i]\n const { isEnabled, Component } = featureDefinitions[name] as any //FeatureDefinition\n if (isEnabled(props) && Component) {\n features.push(<Component key={name} {...props} _utils={utils} />)\n }\n }\n return features\n}\n"],
5
+ "mappings": ";;AAAA;AAEA;AACA;AAKA,MAAM,mBAAmB,wBAAC,EAAE,WAAW,gBAAqD;AAAA,EAC1F,WAAW,CAAC,UAAe,UAAU,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM;AAAA,EAC5D;AAAA,IAFuB;AAKzB,MAAM,sBAAsB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAGF,MAAM,qBAAqB;AAAA,EACzB,eAAe,iBAAiB;AAAA,IAC9B,WAAW,CAAC,UAAU;AACpB,cAAQ,IAAI,WAAW;AACvB,aAAO;AAAA;AAAA,IAET,WAAW,CAAC;AAAA;AAAA,EAId,YAAY,iBAAiB;AAAA,IAC3B,WAAW,CAAC,UAAU;AACpB,UAAI,OAAO;AAET;AAAA;AAGF,YAAM,OAAO,oBAAoB,QAAQ,CAAC,MAAO,KAAK,QAAQ,EAAE,MAAM,KAAK;AAC3E,gCAA0B,MAAM;AAC9B,mBAAW,OAAO,MAAM;AACtB,gCAAsB,KAAK,MAAM,OAAO;AAAA;AAE1C,eAAO,MAAM;AACX,qBAAW,OAAO,MAAM;AACtB,qCAAyB,KAAK,MAAM,OAAO;AAAA;AAAA;AAAA,SAG9C,CAAC,KAAK,KAAK;AACd,aAAO;AAAA;AAAA,IAET,WAAW;AAAA;AAAA;AAIf,MAAM,eAAe,OAAO,KAAK;AACjC,MAAM,cAAc,aAAa;AAE1B,MAAM,cAAc,wBAAC,OAAY,UAAuC;AAC7E,QAAM,WAA0B;AAChC,WAAS,IAAI,GAAG,IAAI,aAAa,KAAK;AACpC,UAAM,OAAO,aAAa;AAC1B,UAAM,EAAE,WAAW,cAAc,mBAAmB;AACpD,QAAI,UAAU,UAAU,WAAW;AACjC,eAAS,KAAK,oCAAC,WAAD;AAAA,QAAW,KAAK;AAAA,WAAU;AAAA,QAAO,QAAQ;AAAA;AAAA;AAAA;AAG3D,SAAO;AAAA,GATkB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,28 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { useEffect, useRef, useState } from "react";
4
+ function useForceUpdate() {
5
+ const setState = useState(0)[1];
6
+ const internal = useRef();
7
+ if (!internal.current) {
8
+ internal.current = {
9
+ isMounted: true,
10
+ update: () => {
11
+ if (internal.current.isMounted) {
12
+ setState(Math.random());
13
+ }
14
+ }
15
+ };
16
+ }
17
+ useEffect(() => {
18
+ return () => {
19
+ internal.current.isMounted = false;
20
+ };
21
+ }, []);
22
+ return internal.current.update;
23
+ }
24
+ __name(useForceUpdate, "useForceUpdate");
25
+ export {
26
+ useForceUpdate
27
+ };
28
+ //# sourceMappingURL=useForceUpdate.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/hooks/useForceUpdate.tsx"],
4
+ "sourcesContent": ["import { useEffect, useRef, useState } from 'react'\n\n// ensures no updates after unmount\n\nexport function useForceUpdate() {\n const setState = useState(0)[1]\n const internal = useRef<{ update: Function; isMounted: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n update: () => {\n if (internal.current!.isMounted) {\n setState(Math.random())\n }\n },\n }\n }\n\n useEffect(() => {\n return () => {\n internal.current!.isMounted = false\n }\n }, [])\n\n return internal.current.update\n}\n"],
5
+ "mappings": ";;AAAA;AAIO,0BAA0B;AAC/B,QAAM,WAAW,SAAS,GAAG;AAC7B,QAAM,WAAW;AACjB,MAAI,CAAC,SAAS,SAAS;AACrB,aAAS,UAAU;AAAA,MACjB,WAAW;AAAA,MACX,QAAQ,MAAM;AACZ,YAAI,SAAS,QAAS,WAAW;AAC/B,mBAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAMtB,YAAU,MAAM;AACd,WAAO,MAAM;AACX,eAAS,QAAS,YAAY;AAAA;AAAA,KAE/B;AAEH,SAAO,SAAS,QAAQ;AAAA;AApBV;",
6
+ "names": []
7
+ }
@@ -1,10 +1,10 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { useForceUpdate } from "@tamagui/use-force-update";
4
3
  import { useRef } from "react";
5
4
  import { useIsomorphicLayoutEffect } from "../constants/platform";
6
5
  import { matchMedia } from "../helpers/matchMedia";
7
6
  import { useConstant } from "./useConstant";
7
+ import { useForceUpdate } from "./useForceUpdate";
8
8
  const mediaState = {};
9
9
  const mediaQueryListeners = {};
10
10
  const addMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
@@ -12,24 +12,22 @@ const addMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
12
12
  mediaQueryListeners[key].add(cb);
13
13
  }, "addMediaQueryListener");
14
14
  const removeMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
15
- var _a;
16
- (_a = mediaQueryListeners[key]) == null ? void 0 : _a.delete(cb);
15
+ mediaQueryListeners[key].delete(cb);
17
16
  }, "removeMediaQueryListener");
18
- let conf = null;
17
+ let hasConfigured = false;
18
+ let mediaQueryConfigObject = null;
19
19
  const mediaQueryConfig = new Proxy({}, {
20
20
  get(target, key) {
21
- if (!conf) {
22
- console.warn("Warning: accessing media query before init");
23
- return null;
21
+ if (!mediaQueryConfigObject) {
22
+ throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`);
24
23
  }
25
- return Reflect.get(conf, key);
24
+ return Reflect.get(mediaQueryConfigObject, key);
26
25
  },
27
26
  ownKeys() {
28
- if (!conf) {
29
- console.warn("Warning: accessing media query before init");
30
- return [];
27
+ if (!mediaQueryConfigObject) {
28
+ throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`);
31
29
  }
32
- return Object.keys(conf);
30
+ return Object.keys(mediaQueryConfigObject);
33
31
  },
34
32
  getOwnPropertyDescriptor() {
35
33
  return {
@@ -39,7 +37,7 @@ const mediaQueryConfig = new Proxy({}, {
39
37
  }
40
38
  });
41
39
  const getMedia = /* @__PURE__ */ __name(() => {
42
- if (!conf) {
40
+ if (!hasConfigured) {
43
41
  throw new Error(`not configured yet`);
44
42
  }
45
43
  return mediaState;
@@ -48,13 +46,13 @@ const configureMedia = /* @__PURE__ */ __name(({
48
46
  queries,
49
47
  defaultActive = ["sm", "xs"]
50
48
  } = {}) => {
51
- var _a;
52
- if (conf) {
49
+ if (hasConfigured) {
53
50
  console.warn(`Already configured mediaQueries once (you may have called getMedia() before configureMedia())`);
51
+ return;
54
52
  }
55
- if (queries) {
56
- conf = queries;
57
- }
53
+ hasConfigured = true;
54
+ if (queries)
55
+ mediaQueryConfigObject = queries;
58
56
  for (const key in queries) {
59
57
  const str = mediaObjectToString(queries[key]);
60
58
  try {
@@ -70,7 +68,7 @@ const configureMedia = /* @__PURE__ */ __name(({
70
68
  return;
71
69
  mediaState[key] = next;
72
70
  const listeners = mediaQueryListeners[key];
73
- if (listeners == null ? void 0 : listeners.size) {
71
+ if (listeners?.size) {
74
72
  for (const cb of [...listeners]) {
75
73
  cb();
76
74
  }
@@ -78,7 +76,7 @@ const configureMedia = /* @__PURE__ */ __name(({
78
76
  });
79
77
  } catch (err) {
80
78
  console.error("Error running media query", str, err.message, err.stack);
81
- const isDefaultActive = (_a = defaultActive == null ? void 0 : defaultActive.includes(key)) != null ? _a : true;
79
+ const isDefaultActive = defaultActive?.includes(key) ?? true;
82
80
  mediaState[key] = isDefaultActive;
83
81
  }
84
82
  }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/hooks/useMedia.tsx"],
4
+ "sourcesContent": ["import { 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'\nimport { useForceUpdate } from './useForceUpdate'\n\n// For now disabled customization of media queries, but a lot of the initial steps are in place\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\nlet mediaQueryConfigObject: MediaQueries | null = null\n\nexport const mediaQueryConfig = new Proxy<MediaQueries>({} as any, {\n get(target, key) {\n if (!mediaQueryConfigObject) {\n throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`)\n }\n return Reflect.get(mediaQueryConfigObject, key)\n },\n ownKeys() {\n if (!mediaQueryConfigObject) {\n throw new Error(`Be sure to run configureMedia before accessing mediaQueryConfig`)\n }\n return Object.keys(mediaQueryConfigObject)\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n }\n },\n})\n\nexport const getMedia = () => {\n if (!hasConfigured) {\n throw new Error(`not configured yet`)\n }\n return mediaState\n}\n\nexport const configureMedia = ({\n queries,\n defaultActive = ['sm', 'xs'],\n}: ConfigureMediaQueryOptions = {}) => {\n if (hasConfigured) {\n console.warn(\n `Already configured mediaQueries once (you may have called getMedia() before configureMedia())`\n )\n return\n }\n hasConfigured = true\n if (queries) mediaQueryConfigObject = queries\n\n // setup\n for (const key in queries) {\n const str = mediaObjectToString(queries[key])\n try {\n const getMatch = () => matchMedia(str)\n const match = getMatch()\n if (!match || typeof match.addListener !== 'function') {\n // caught below\n throw new Error('\u26A0\uFE0F No match (seeing this in RN sometimes)')\n }\n mediaState[key] = !!match.matches\n match.addListener(() => {\n const next = !!getMatch().matches\n if (next === mediaState[key]) return\n mediaState[key] = next\n const listeners = mediaQueryListeners[key]\n if (listeners?.size) {\n for (const cb of [...listeners]) {\n cb()\n }\n }\n })\n } catch (err: any) {\n console.error('Error running media query', str, err.message, err.stack)\n const isDefaultActive = defaultActive?.includes(key as any) ?? true\n mediaState[key] = isDefaultActive\n }\n }\n}\n\ntype UseMediaState = {\n selections: { [key: string]: boolean }\n nextSelections: { [key: string]: boolean }\n isRendering: boolean\n isUnmounted: boolean\n}\n\nexport const useMedia = () => {\n const forceUpdate = useForceUpdate()\n const state = useRef() as React.MutableRefObject<UseMediaState>\n if (!state.current) {\n state.current = {\n selections: {},\n nextSelections: {},\n isUnmounted: false,\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n // delete old\n for (const key in st.selections) {\n if (!(key in st.nextSelections)) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n // add new\n for (const key in st.nextSelections) {\n if (!(key in st.selections)) {\n addMediaQueryListener(key, forceUpdate)\n }\n }\n })\n\n // unmount\n useIsomorphicLayoutEffect(() => {\n return () => {\n const st = state.current\n st.isUnmounted = true\n const allKeys = {\n ...st.selections,\n ...st.nextSelections,\n }\n for (const key in allKeys) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n }, [])\n\n return useConstant(() => {\n const st = state.current\n return new Proxy(mediaState, {\n get(target, key: string) {\n if (!(key in mediaState)) {\n return Reflect.get(target, key)\n }\n if (!st.isUnmounted) {\n if (st.isRendering) {\n st.nextSelections[key] = true\n }\n }\n if (key in mediaState) {\n return mediaState[key]\n }\n return Reflect.get(mediaState, key)\n },\n })\n })\n}\n\nfunction camelToHyphen(str: string) {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()\n}\n\nexport function mediaObjectToString(query: string | MediaQueryObject) {\n if (typeof query === 'string') {\n return query\n }\n return Object.entries(query)\n .map(([feature, value]) => {\n feature = camelToHyphen(feature)\n if (typeof value === 'string') {\n return `(${feature}: ${value})`\n }\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = `${value}px`\n }\n return `(${feature}: ${value})`\n })\n .join(' and ')\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,8 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- var _a, _b;
4
3
  import { Pressable } from "react-native";
5
- const getPressable = (_b = (_a = Pressable) == null ? void 0 : _a["type"]) == null ? void 0 : _b["render"];
4
+ const getPressable = Pressable?.["type"]?.["render"];
6
5
  const usePressable = /* @__PURE__ */ __name((props) => {
7
6
  const out = getPressable(props);
8
7
  const { children, style, ...pressableProps } = out.props;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/hooks/usePressable.tsx"],
3
+ "sources": ["../../src/hooks/usePressable.tsx"],
4
4
  "sourcesContent": ["import { Pressable, PressableProps } from 'react-native'\n\nconst getPressable = Pressable?.['type']?.['render']\n\nexport const usePressable = (props: PressableProps) => {\n const out = getPressable(props)\n const { children, style, ...pressableProps } = out.props\n return [pressableProps, style] as const\n}\n"],
5
- "mappings": ";;AAAA;AAAA;AAEA,MAAM,eAAe,6CAAY,YAAZ,mBAAsB;AAEpC,MAAM,eAAe,wBAAC,UAA0B;AACrD,QAAM,MAAM,aAAa;AACzB,QAAM,EAAE,UAAU,UAAU,mBAAmB,IAAI;AACnD,SAAO,CAAC,gBAAgB;AAAA,GAHE;",
5
+ "mappings": ";;AAAA;AAEA,MAAM,eAAe,YAAY,UAAU;AAEpC,MAAM,eAAe,wBAAC,UAA0B;AACrD,QAAM,MAAM,aAAa;AACzB,QAAM,EAAE,UAAU,UAAU,mBAAmB,IAAI;AACnD,SAAO,CAAC,gBAAgB;AAAA,GAHE;",
6
6
  "names": []
7
7
  }