@tamagui/core 1.0.0-alpha.0 → 1.0.0-alpha.12

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 (426) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/constants/constants.js +50 -0
  3. package/dist/cjs/constants/constants.js.map +7 -0
  4. package/dist/cjs/constants/platform.js +43 -0
  5. package/dist/cjs/constants/platform.js.map +7 -0
  6. package/dist/cjs/constants/pseudos.js +25 -0
  7. package/dist/cjs/constants/pseudos.js.map +7 -0
  8. package/dist/cjs/constants/rnw.js +28 -0
  9. package/dist/cjs/constants/rnw.js.map +7 -0
  10. package/dist/cjs/createComponent.js +532 -0
  11. package/dist/cjs/createComponent.js.map +7 -0
  12. package/dist/cjs/createFont.js +50 -0
  13. package/dist/cjs/createFont.js.map +7 -0
  14. package/dist/cjs/createShorthands.js +16 -0
  15. package/dist/cjs/createShorthands.js.map +7 -0
  16. package/dist/cjs/createTamagui.js +206 -0
  17. package/dist/cjs/createTamagui.js.map +7 -0
  18. package/dist/cjs/createTheme.js +42 -0
  19. package/dist/cjs/createTheme.js.map +7 -0
  20. package/dist/cjs/createTokens.js +55 -0
  21. package/dist/cjs/createTokens.js.map +7 -0
  22. package/dist/cjs/createVariable.js +47 -0
  23. package/dist/cjs/createVariable.js.map +7 -0
  24. package/dist/cjs/helpers/addStylesUsingClassname.js +79 -0
  25. package/dist/cjs/helpers/addStylesUsingClassname.js.map +7 -0
  26. package/dist/cjs/helpers/createMediaStyle.js +56 -0
  27. package/dist/cjs/helpers/createMediaStyle.js.map +7 -0
  28. package/dist/cjs/helpers/createPropMapper.js +197 -0
  29. package/dist/cjs/helpers/createPropMapper.js.map +7 -0
  30. package/dist/cjs/helpers/createTamaguiProvider.js +74 -0
  31. package/dist/cjs/helpers/createTamaguiProvider.js.map +7 -0
  32. package/dist/cjs/helpers/extendStaticConfig.js +82 -0
  33. package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
  34. package/dist/cjs/helpers/fixNativeShadow.js +14 -0
  35. package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
  36. package/dist/cjs/helpers/fixNativeShadow.native.js +36 -0
  37. package/dist/cjs/helpers/fixNativeShadow.native.js.map +7 -0
  38. package/dist/cjs/helpers/getSplitStyles.js +180 -0
  39. package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
  40. package/dist/cjs/helpers/getStylesAtomic.js +117 -0
  41. package/dist/cjs/helpers/getStylesAtomic.js.map +7 -0
  42. package/dist/cjs/helpers/getStylesAtomic.native.js +16 -0
  43. package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
  44. package/dist/cjs/helpers/insertStyleRule.js +46 -0
  45. package/dist/cjs/helpers/insertStyleRule.js.map +7 -0
  46. package/dist/cjs/helpers/isObj.js +13 -0
  47. package/dist/cjs/helpers/isObj.js.map +7 -0
  48. package/dist/cjs/helpers/isTamaguiElement.js +33 -0
  49. package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
  50. package/dist/cjs/helpers/matchMedia.js +24 -0
  51. package/dist/cjs/helpers/matchMedia.js.map +7 -0
  52. package/dist/cjs/helpers/matchMedia.native.js +31 -0
  53. package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
  54. package/dist/cjs/helpers/themeable.js +78 -0
  55. package/dist/cjs/helpers/themeable.js.map +7 -0
  56. package/dist/cjs/helpers/validate.js +82 -0
  57. package/dist/cjs/helpers/validate.js.map +7 -0
  58. package/dist/cjs/hooks/useConstant.js +37 -0
  59. package/dist/cjs/hooks/useConstant.js.map +7 -0
  60. package/dist/cjs/hooks/useFeatures.js +100 -0
  61. package/dist/cjs/hooks/useFeatures.js.map +7 -0
  62. package/dist/cjs/hooks/useMedia.js +206 -0
  63. package/dist/cjs/hooks/useMedia.js.map +7 -0
  64. package/dist/cjs/hooks/usePressable.js +50 -0
  65. package/dist/cjs/hooks/usePressable.js.map +7 -0
  66. package/dist/cjs/hooks/useTheme.js +111 -0
  67. package/dist/cjs/hooks/useTheme.js.map +7 -0
  68. package/dist/cjs/index.js +55 -0
  69. package/dist/cjs/index.js.map +7 -0
  70. package/dist/cjs/static/postProcessStyles.js +40 -0
  71. package/dist/cjs/static/postProcessStyles.js.map +7 -0
  72. package/dist/cjs/static.js +34 -0
  73. package/dist/cjs/static.js.map +7 -0
  74. package/dist/cjs/styled.js +72 -0
  75. package/dist/cjs/styled.js.map +7 -0
  76. package/dist/cjs/types.js +4 -0
  77. package/dist/cjs/types.js.map +7 -0
  78. package/dist/cjs/views/Animated.js +129 -0
  79. package/dist/cjs/views/Animated.js.map +7 -0
  80. package/dist/cjs/views/Stack.js +51 -0
  81. package/dist/cjs/views/Stack.js.map +7 -0
  82. package/dist/cjs/views/Text.js +93 -0
  83. package/dist/cjs/views/Text.js.map +7 -0
  84. package/dist/cjs/views/TextAncestorContext.js +41 -0
  85. package/dist/cjs/views/TextAncestorContext.js.map +7 -0
  86. package/dist/cjs/views/Theme.js +91 -0
  87. package/dist/cjs/views/Theme.js.map +7 -0
  88. package/dist/cjs/views/ThemeContext.js +29 -0
  89. package/dist/cjs/views/ThemeContext.js.map +7 -0
  90. package/dist/cjs/views/ThemeInverse.js +48 -0
  91. package/dist/cjs/views/ThemeInverse.js.map +7 -0
  92. package/dist/cjs/views/ThemeManagerContext.js +84 -0
  93. package/dist/cjs/views/ThemeManagerContext.js.map +7 -0
  94. package/dist/cjs/views/ThemeProvider.js +67 -0
  95. package/dist/cjs/views/ThemeProvider.js.map +7 -0
  96. package/dist/constants/platform.js +1 -1
  97. package/dist/constants/platform.js.map +2 -2
  98. package/dist/createComponent.js +51 -32
  99. package/dist/createComponent.js.map +2 -2
  100. package/dist/createFont.js +4 -0
  101. package/dist/createFont.js.map +2 -2
  102. package/dist/createTamagui.js +11 -2
  103. package/dist/createTamagui.js.map +2 -2
  104. package/dist/createTokens.js +4 -0
  105. package/dist/createTokens.js.map +2 -2
  106. package/dist/createVariable.js +3 -0
  107. package/dist/createVariable.js.map +2 -2
  108. package/{_ → dist/esm}/constants/constants.js +0 -0
  109. package/{_ → dist/esm}/constants/constants.js.map +1 -1
  110. package/{_ → dist/esm}/constants/platform.js +1 -2
  111. package/dist/esm/constants/platform.js.map +7 -0
  112. package/{_ → dist/esm}/constants/pseudos.js +0 -0
  113. package/{_ → dist/esm}/constants/pseudos.js.map +1 -1
  114. package/{_ → dist/esm}/constants/rnw.js +0 -0
  115. package/{_ → dist/esm}/constants/rnw.js.map +1 -1
  116. package/{_ → dist/esm}/createComponent.js +115 -78
  117. package/dist/esm/createComponent.js.map +7 -0
  118. package/dist/esm/createFont.js +28 -0
  119. package/dist/esm/createFont.js.map +7 -0
  120. package/{_ → dist/esm}/createShorthands.js +0 -0
  121. package/{_ → dist/esm}/createShorthands.js.map +1 -1
  122. package/{_ → dist/esm}/createTamagui.js +61 -15
  123. package/dist/esm/createTamagui.js.map +7 -0
  124. package/{_ → dist/esm}/createTheme.js +0 -0
  125. package/{_ → dist/esm}/createTheme.js.map +1 -1
  126. package/{_ → dist/esm}/createTokens.js +4 -0
  127. package/dist/esm/createTokens.js.map +7 -0
  128. package/{_ → dist/esm}/createVariable.js +3 -0
  129. package/{_ → dist/esm}/createVariable.js.map +3 -3
  130. package/dist/esm/helpers/addStylesUsingClassname.js +57 -0
  131. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  132. package/{_ → dist/esm}/helpers/createMediaStyle.js +0 -0
  133. package/{_ → dist/esm}/helpers/createMediaStyle.js.map +1 -1
  134. package/dist/esm/helpers/createPropMapper.js +160 -0
  135. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  136. package/{_ → dist/esm}/helpers/createTamaguiProvider.js +2 -19
  137. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  138. package/dist/esm/helpers/extendStaticConfig.js +59 -0
  139. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  140. package/{_ → dist/esm}/helpers/fixNativeShadow.js +0 -0
  141. package/{_ → dist/esm}/helpers/fixNativeShadow.js.map +1 -1
  142. package/{_ → dist/esm}/helpers/fixNativeShadow.native.js +0 -0
  143. package/{_ → dist/esm}/helpers/fixNativeShadow.native.js.map +1 -1
  144. package/{_ → dist/esm}/helpers/getSplitStyles.js +18 -28
  145. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  146. package/{_ → dist/esm}/helpers/getStylesAtomic.js +1 -2
  147. package/{_ → dist/esm}/helpers/getStylesAtomic.js.map +2 -2
  148. package/{_ → dist/esm}/helpers/getStylesAtomic.native.js +0 -0
  149. package/{_ → dist/esm}/helpers/getStylesAtomic.native.js.map +1 -1
  150. package/{_ → dist/esm}/helpers/insertStyleRule.js +0 -0
  151. package/{_ → dist/esm}/helpers/insertStyleRule.js.map +1 -1
  152. package/dist/esm/helpers/isObj.js +7 -0
  153. package/dist/esm/helpers/isObj.js.map +7 -0
  154. package/dist/esm/helpers/isTamaguiElement.js +10 -0
  155. package/dist/esm/helpers/isTamaguiElement.js.map +7 -0
  156. package/{_ → dist/esm}/helpers/matchMedia.js +3 -0
  157. package/dist/esm/helpers/matchMedia.js.map +7 -0
  158. package/{_ → dist/esm}/helpers/matchMedia.native.js +1 -0
  159. package/{_ → dist/esm}/helpers/matchMedia.native.js.map +3 -3
  160. package/{_ → dist/esm}/helpers/themeable.js +1 -1
  161. package/{_ → dist/esm}/helpers/themeable.js.map +2 -2
  162. package/dist/esm/helpers/validate.js +60 -0
  163. package/dist/esm/helpers/validate.js.map +7 -0
  164. package/{_ → dist/esm}/hooks/useConstant.js +0 -0
  165. package/{_ → dist/esm}/hooks/useConstant.js.map +1 -1
  166. package/{_ → dist/esm}/hooks/useFeatures.js +39 -51
  167. package/dist/esm/hooks/useFeatures.js.map +7 -0
  168. package/{_ → dist/esm}/hooks/useMedia.js +7 -7
  169. package/dist/esm/hooks/useMedia.js.map +7 -0
  170. package/{_ → dist/esm}/hooks/usePressable.js +1 -2
  171. package/{_ → dist/esm}/hooks/usePressable.js.map +2 -2
  172. package/{_ → dist/esm}/hooks/useTheme.js +6 -11
  173. package/dist/esm/hooks/useTheme.js.map +7 -0
  174. package/{_ → dist/esm}/index.js +3 -1
  175. package/dist/esm/index.js.map +7 -0
  176. package/{_ → dist/esm}/static/postProcessStyles.js +0 -0
  177. package/{_ → dist/esm}/static/postProcessStyles.js.map +1 -1
  178. package/{_ → dist/esm}/static.js +3 -0
  179. package/dist/esm/static.js.map +7 -0
  180. package/{_ → dist/esm}/styled.js +2 -2
  181. package/dist/esm/styled.js.map +7 -0
  182. package/{_ → dist/esm}/types.js +0 -0
  183. package/{_ → dist/esm}/types.js.map +0 -0
  184. package/{_ → dist/esm}/views/Animated.js +0 -0
  185. package/{_ → dist/esm}/views/Animated.js.map +1 -1
  186. package/{_ → dist/esm}/views/Stack.js +0 -0
  187. package/{_ → dist/esm}/views/Stack.js.map +1 -1
  188. package/{_ → dist/esm}/views/Text.js +0 -0
  189. package/{_ → dist/esm}/views/Text.js.map +1 -1
  190. package/{_ → dist/esm}/views/TextAncestorContext.js +1 -2
  191. package/{_ → dist/esm}/views/TextAncestorContext.js.map +2 -2
  192. package/{_ → dist/esm}/views/Theme.js +25 -14
  193. package/dist/esm/views/Theme.js.map +7 -0
  194. package/{_ → dist/esm}/views/ThemeContext.js +0 -0
  195. package/{_ → dist/esm}/views/ThemeContext.js.map +1 -1
  196. package/{_ → dist/esm}/views/ThemeInverse.js +0 -1
  197. package/{_ → dist/esm}/views/ThemeInverse.js.map +3 -3
  198. package/{_ → dist/esm}/views/ThemeManagerContext.js +12 -7
  199. package/dist/esm/views/ThemeManagerContext.js.map +7 -0
  200. package/{_ → dist/esm}/views/ThemeProvider.js +0 -0
  201. package/{_ → dist/esm}/views/ThemeProvider.js.map +1 -1
  202. package/dist/helpers/createPropMapper.js +16 -9
  203. package/dist/helpers/createPropMapper.js.map +2 -2
  204. package/dist/helpers/getSplitStyles.js +13 -23
  205. package/dist/helpers/getSplitStyles.js.map +2 -2
  206. package/dist/helpers/isComponent.js +10 -0
  207. package/dist/helpers/isComponent.js.map +7 -0
  208. package/dist/helpers/isTamaguiComponent.js +10 -0
  209. package/dist/helpers/isTamaguiComponent.js.map +7 -0
  210. package/dist/helpers/isTamaguiElement.js +10 -0
  211. package/dist/helpers/isTamaguiElement.js.map +7 -0
  212. package/dist/helpers/matchMedia.js +3 -0
  213. package/dist/helpers/matchMedia.js.map +2 -2
  214. package/dist/helpers/matchMedia.native.js +1 -0
  215. package/dist/helpers/matchMedia.native.js.map +2 -2
  216. package/dist/helpers/validate.js +60 -0
  217. package/dist/helpers/validate.js.map +7 -0
  218. package/dist/helpers/validateConfig.js +46 -0
  219. package/dist/helpers/validateConfig.js.map +7 -0
  220. package/dist/helpers/validateTokens.js +29 -0
  221. package/dist/helpers/validateTokens.js.map +7 -0
  222. package/dist/hooks/useFeatures.js +39 -51
  223. package/dist/hooks/useFeatures.js.map +2 -2
  224. package/dist/hooks/useMedia.js +5 -3
  225. package/dist/hooks/useMedia.js.map +2 -2
  226. package/dist/hooks/useTheme.js +5 -9
  227. package/dist/hooks/useTheme.js.map +2 -2
  228. package/dist/index.cjs +274 -197
  229. package/dist/index.cjs.map +3 -3
  230. package/dist/index.js +1 -2
  231. package/dist/index.js.map +2 -2
  232. package/dist/jsx/constants/constants.js +13 -0
  233. package/dist/jsx/constants/platform.js +18 -0
  234. package/dist/jsx/constants/pseudos.js +17 -0
  235. package/dist/jsx/constants/rnw.js +21 -0
  236. package/dist/jsx/createComponent.js +458 -0
  237. package/dist/jsx/createFont.js +27 -0
  238. package/dist/jsx/createShorthands.js +9 -0
  239. package/dist/jsx/createTamagui.js +167 -0
  240. package/dist/jsx/createTheme.js +19 -0
  241. package/dist/jsx/createTokens.js +32 -0
  242. package/dist/jsx/createVariable.js +24 -0
  243. package/dist/jsx/helpers/addStylesUsingClassname.js +56 -0
  244. package/dist/jsx/helpers/createMediaStyle.js +33 -0
  245. package/dist/jsx/helpers/createPropMapper.js +159 -0
  246. package/dist/jsx/helpers/createTamaguiProvider.js +19 -0
  247. package/dist/jsx/helpers/extendStaticConfig.js +58 -0
  248. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  249. package/dist/jsx/helpers/fixNativeShadow.native.js +29 -0
  250. package/dist/jsx/helpers/getSplitStyles.js +149 -0
  251. package/dist/jsx/helpers/getStylesAtomic.js +82 -0
  252. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  253. package/dist/jsx/helpers/insertStyleRule.js +23 -0
  254. package/dist/jsx/helpers/isObj.js +6 -0
  255. package/dist/jsx/helpers/isTamaguiElement.js +9 -0
  256. package/dist/jsx/helpers/matchMedia.js +17 -0
  257. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  258. package/dist/jsx/helpers/themeable.js +23 -0
  259. package/dist/jsx/helpers/validate.js +59 -0
  260. package/dist/jsx/hooks/useConstant.js +14 -0
  261. package/dist/jsx/hooks/useFeatures.js +57 -0
  262. package/dist/jsx/hooks/useMedia.js +172 -0
  263. package/dist/jsx/hooks/usePressable.js +12 -0
  264. package/dist/jsx/hooks/useTheme.js +88 -0
  265. package/dist/jsx/index.js +31 -0
  266. package/dist/jsx/static/postProcessStyles.js +17 -0
  267. package/dist/jsx/static.js +14 -0
  268. package/dist/jsx/styled.js +20 -0
  269. package/dist/jsx/types.js +0 -0
  270. package/dist/jsx/views/Animated.js +74 -0
  271. package/dist/jsx/views/Stack.js +11 -0
  272. package/dist/jsx/views/Text.js +59 -0
  273. package/dist/jsx/views/TextAncestorContext.js +14 -0
  274. package/dist/jsx/views/Theme.js +62 -0
  275. package/dist/jsx/views/ThemeContext.js +5 -0
  276. package/dist/jsx/views/ThemeInverse.js +22 -0
  277. package/dist/jsx/views/ThemeManagerContext.js +60 -0
  278. package/dist/jsx/views/ThemeProvider.js +39 -0
  279. package/dist/views/Theme.js +25 -13
  280. package/dist/views/Theme.js.map +2 -2
  281. package/dist/views/ThemeInverse.js +0 -1
  282. package/dist/views/ThemeInverse.js.map +2 -2
  283. package/dist/views/ThemeManagerContext.js +11 -5
  284. package/dist/views/ThemeManagerContext.js.map +2 -2
  285. package/package.json +17 -9
  286. package/src/constants/platform.ts +1 -1
  287. package/src/createComponent.tsx +59 -41
  288. package/src/createFont.ts +5 -0
  289. package/src/createTamagui.ts +11 -1
  290. package/src/createTokens.ts +6 -1
  291. package/src/createVariable.ts +4 -0
  292. package/src/helpers/createPropMapper.ts +16 -8
  293. package/src/helpers/getSplitStyles.tsx +16 -26
  294. package/src/helpers/isTamaguiElement.tsx +5 -0
  295. package/src/helpers/matchMedia.native.ts +3 -0
  296. package/src/helpers/matchMedia.ts +9 -1
  297. package/src/helpers/validate.ts +59 -0
  298. package/src/hooks/useFeatures.tsx +54 -53
  299. package/src/hooks/useMedia.tsx +5 -3
  300. package/src/hooks/useTheme.tsx +7 -8
  301. package/src/index.ts +1 -2
  302. package/src/types.tsx +9 -8
  303. package/src/views/Text.tsx +2 -1
  304. package/src/views/Theme.tsx +42 -21
  305. package/src/views/ThemeInverse.tsx +0 -1
  306. package/src/views/ThemeManagerContext.tsx +18 -6
  307. package/types/constants/constants.d.ts +8 -0
  308. package/types/constants/constants.d.ts.map +1 -0
  309. package/types/constants/platform.d.ts +9 -0
  310. package/types/constants/platform.d.ts.map +1 -0
  311. package/types/constants/pseudos.d.ts +15 -0
  312. package/types/constants/pseudos.d.ts.map +1 -0
  313. package/types/constants/rnw.d.ts +2 -0
  314. package/types/constants/rnw.d.ts.map +1 -0
  315. package/types/createComponent.d.ts +17 -0
  316. package/types/createComponent.d.ts.map +1 -0
  317. package/types/createFont.d.ts +3 -0
  318. package/types/createFont.d.ts.map +1 -0
  319. package/types/createShorthands.d.ts +2 -0
  320. package/types/createShorthands.d.ts.map +1 -0
  321. package/types/createTamagui.d.ts +38 -0
  322. package/types/createTamagui.d.ts.map +1 -0
  323. package/types/createTheme.d.ts +5 -0
  324. package/types/createTheme.d.ts.map +1 -0
  325. package/types/createTokens.d.ts +55 -0
  326. package/types/createTokens.d.ts.map +1 -0
  327. package/types/createVariable.d.ts +15 -0
  328. package/types/createVariable.d.ts.map +1 -0
  329. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  330. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  331. package/types/helpers/createMediaStyle.d.ts +8 -0
  332. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  333. package/types/helpers/createPropMapper.d.ts +3 -0
  334. package/types/helpers/createPropMapper.d.ts.map +1 -0
  335. package/types/helpers/createTamaguiProvider.d.ts +5 -0
  336. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  337. package/types/helpers/extendStaticConfig.d.ts +5 -0
  338. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  339. package/types/helpers/fixNativeShadow.d.ts +2 -0
  340. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  341. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  342. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  343. package/types/helpers/getSplitStyles.d.ts +15 -0
  344. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  345. package/types/helpers/getStylesAtomic.d.ts +3 -0
  346. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  347. package/types/helpers/getStylesAtomic.native.d.ts +2 -0
  348. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  349. package/types/helpers/insertStyleRule.d.ts +2 -0
  350. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  351. package/types/helpers/isObj.d.ts +2 -0
  352. package/types/helpers/isObj.d.ts.map +1 -0
  353. package/types/helpers/isTamaguiElement.d.ts +3 -0
  354. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  355. package/types/helpers/matchMedia.d.ts +2 -0
  356. package/types/helpers/matchMedia.d.ts.map +1 -0
  357. package/types/helpers/matchMedia.native.d.ts +3 -0
  358. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  359. package/types/helpers/themeable.d.ts +10 -0
  360. package/types/helpers/themeable.d.ts.map +1 -0
  361. package/types/helpers/validate.d.ts +4 -0
  362. package/types/helpers/validate.d.ts.map +1 -0
  363. package/types/hooks/useConstant.d.ts +2 -0
  364. package/types/hooks/useConstant.d.ts.map +1 -0
  365. package/types/hooks/useFeatures.d.ts +5 -0
  366. package/types/hooks/useFeatures.d.ts.map +1 -0
  367. package/types/hooks/useMedia.d.ts +16 -0
  368. package/types/hooks/useMedia.d.ts.map +1 -0
  369. package/types/hooks/usePressable.d.ts +3 -0
  370. package/types/hooks/usePressable.d.ts.map +1 -0
  371. package/types/hooks/useTheme.d.ts +20 -0
  372. package/types/hooks/useTheme.d.ts.map +1 -0
  373. package/types/index.d.ts +29 -0
  374. package/types/index.d.ts.map +1 -0
  375. package/types/static/postProcessStyles.d.ts +7 -0
  376. package/types/static/postProcessStyles.d.ts.map +1 -0
  377. package/types/static.d.ts +15 -0
  378. package/types/static.d.ts.map +1 -0
  379. package/types/styled.d.ts +21 -0
  380. package/types/styled.d.ts.map +1 -0
  381. package/types/types.d.ts +306 -0
  382. package/types/types.d.ts.map +1 -0
  383. package/types/views/Animated.d.ts +15 -0
  384. package/types/views/Animated.d.ts.map +1 -0
  385. package/types/views/Stack.d.ts +3 -0
  386. package/types/views/Stack.d.ts.map +1 -0
  387. package/types/views/Text.d.ts +3 -0
  388. package/types/views/Text.d.ts.map +1 -0
  389. package/types/views/TextAncestorContext.d.ts +3 -0
  390. package/types/views/TextAncestorContext.d.ts.map +1 -0
  391. package/types/views/Theme.d.ts +8 -0
  392. package/types/views/Theme.d.ts.map +1 -0
  393. package/types/views/ThemeContext.d.ts +18 -0
  394. package/types/views/ThemeContext.d.ts.map +1 -0
  395. package/types/views/ThemeInverse.d.ts +10 -0
  396. package/types/views/ThemeInverse.d.ts.map +1 -0
  397. package/types/views/ThemeManagerContext.d.ts +22 -0
  398. package/types/views/ThemeManagerContext.d.ts.map +1 -0
  399. package/types/views/ThemeProvider.d.ts +10 -0
  400. package/types/views/ThemeProvider.d.ts.map +1 -0
  401. package/.ultra.cache.json +0 -1
  402. package/_/constants/platform.js.map +0 -7
  403. package/_/createComponent.js.map +0 -7
  404. package/_/createTamagui.js.map +0 -7
  405. package/_/createTokens.js.map +0 -7
  406. package/_/helpers/addStylesUsingClassname.js +0 -32
  407. package/_/helpers/addStylesUsingClassname.js.map +0 -7
  408. package/_/helpers/createTamaguiProvider.js.map +0 -7
  409. package/_/helpers/extendStaticConfig.js +0 -176
  410. package/_/helpers/extendStaticConfig.js.map +0 -7
  411. package/_/helpers/getSplitStyles.js.map +0 -7
  412. package/_/helpers/matchMedia.js.map +0 -7
  413. package/_/hooks/useFeatures.js.map +0 -7
  414. package/_/hooks/useForceUpdate.js +0 -28
  415. package/_/hooks/useForceUpdate.js.map +0 -7
  416. package/_/hooks/useMedia.js.map +0 -7
  417. package/_/hooks/useTheme.js.map +0 -7
  418. package/_/index.js.map +0 -7
  419. package/_/static.js.map +0 -7
  420. package/_/styled.js.map +0 -7
  421. package/_/views/Theme.js.map +0 -7
  422. package/_/views/ThemeManagerContext.js.map +0 -7
  423. package/src/hooks/useForceUpdate.tsx +0 -26
  424. package/src/views/SafeAreaProvider.tsx +0 -33
  425. package/tsconfig.json +0 -8
  426. package/types.d.ts +0 -558
@@ -0,0 +1,149 @@
1
+ var __defProp = Object.defineProperty;
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";
10
+ import { isWeb } from "../constants/platform";
11
+ import { mediaQueryConfig, mediaState } from "../hooks/useMedia";
12
+ import { createMediaStyle } from "./createMediaStyle";
13
+ import { fixNativeShadow } from "./fixNativeShadow";
14
+ import { getStylesAtomic } from "./getStylesAtomic";
15
+ import { insertStyleRule } from "./insertStyleRule";
16
+ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSplittingDefaultProps) => {
17
+ const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
18
+ const viewProps = {};
19
+ const style = [];
20
+ let pseudos = null;
21
+ let cur = null;
22
+ let classNames = null;
23
+ for (const keyInit in props) {
24
+ const valInit = props[keyInit];
25
+ if (keyInit[0] === "$") {
26
+ const mediaKey = keyInit.slice(1);
27
+ if (!mediaQueryConfig[mediaKey]) {
28
+ viewProps[keyInit] = valInit;
29
+ continue;
30
+ }
31
+ const mediaProps = { ...props, ...valInit };
32
+ const mediaStyle = getSubStyle(valInit, staticConfig, theme, props);
33
+ if (isWeb) {
34
+ const mediaStyles = getStylesAtomic(mediaStyle);
35
+ 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"]) {
47
+ console.log("mediaProp", style2.identifier, out2, mediaProps, mediaStyle, mediaStyles);
48
+ }
49
+ }
50
+ } else {
51
+ if (mediaState[mediaKey]) {
52
+ style.push(mediaStyle);
53
+ }
54
+ }
55
+ continue;
56
+ }
57
+ if (validStylesPseudo[keyInit]) {
58
+ if (!valInit)
59
+ continue;
60
+ pseudos = pseudos || {};
61
+ pseudos[keyInit] = getSubStyle(valInit, staticConfig, theme, props);
62
+ continue;
63
+ }
64
+ const out = staticConfig.propMapper(keyInit, valInit, theme, props);
65
+ const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
66
+ for (const [key, val] of expanded) {
67
+ const keyFirstChar = key[0];
68
+ if (key === "style" || keyFirstChar === "_" && key.startsWith("_style")) {
69
+ if (cur) {
70
+ fixNativeShadow(cur);
71
+ style.push(cur);
72
+ cur = null;
73
+ }
74
+ fixNativeShadow(val);
75
+ style.push(val);
76
+ continue;
77
+ }
78
+ if (key === "flex") {
79
+ cur = cur || {};
80
+ Object.assign(cur, {
81
+ flexGrow: val,
82
+ flexShrink: 1
83
+ });
84
+ continue;
85
+ }
86
+ if (!isWeb && key === "pointerEvents") {
87
+ viewProps[key] = val;
88
+ continue;
89
+ }
90
+ if (validStyleProps[key]) {
91
+ if (key in stylePropsTransform) {
92
+ cur = cur || {};
93
+ mergeTransform(cur, key, val);
94
+ continue;
95
+ }
96
+ cur = cur || {};
97
+ cur[key] = val;
98
+ continue;
99
+ }
100
+ if (!staticConfig.variants || !(key in staticConfig.variants)) {
101
+ viewProps[key] = val;
102
+ }
103
+ }
104
+ }
105
+ if (cur) {
106
+ fixNativeShadow(cur);
107
+ style.push(cur);
108
+ }
109
+ if (process.env.NODE_ENV === "development") {
110
+ if (props["debug"]) {
111
+ console.log(" \u{1F95A} splitProps:", { props, viewProps, style });
112
+ }
113
+ }
114
+ return {
115
+ viewProps,
116
+ style,
117
+ pseudos,
118
+ classNames
119
+ };
120
+ }, "getSplitStyles");
121
+ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props) => {
122
+ const styleOut = {};
123
+ for (const key in styleIn) {
124
+ const val = styleIn[key];
125
+ const out = staticConfig.propMapper(key, val, theme, props);
126
+ const expanded = out === true || !out ? [[key, val]] : Object.entries(out);
127
+ for (const [skey, sval] of expanded) {
128
+ if (skey in stylePropsTransform) {
129
+ mergeTransform(styleOut, skey, sval);
130
+ } else {
131
+ styleOut[skey] = sval;
132
+ }
133
+ }
134
+ }
135
+ fixNativeShadow(styleOut);
136
+ return styleOut;
137
+ }, "getSubStyle");
138
+ const mapTransformKeys = {
139
+ x: "translateX",
140
+ y: "translateY"
141
+ };
142
+ const mergeTransform = /* @__PURE__ */ __name((obj, key, val) => {
143
+ const transform = obj.transform ? Array.isArray(obj.transform) ? obj.transform : [obj.transform] : [];
144
+ transform.push({ [mapTransformKeys[key] || key]: val });
145
+ obj.transform = transform;
146
+ }, "mergeTransform");
147
+ export {
148
+ getSplitStyles
149
+ };
@@ -0,0 +1,82 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { AllRules } from "@tamagui/helpers";
4
+ import { pseudos } from "../constants/pseudos";
5
+ import { rnw } from "../constants/rnw";
6
+ const generateStyle = /* @__PURE__ */ __name((style) => {
7
+ const { atomic, createCompileableStyle, createReactDOMStyle, i18Style } = rnw;
8
+ return {
9
+ ...atomic(createCompileableStyle(createReactDOMStyle(i18Style(style))))
10
+ };
11
+ }, "generateStyle");
12
+ const borderDefaults = {
13
+ borderWidth: "borderStyle",
14
+ borderBottomWidth: "borderBottomStyle",
15
+ borderTopWidth: "borderTopStyle",
16
+ borderLeftWidth: "borderLeftStyle",
17
+ borderRightWidth: "borderRightStyle"
18
+ };
19
+ function getStylesAtomic(style, avoidCollection = false) {
20
+ const styles = {
21
+ base: {}
22
+ };
23
+ for (const key in style) {
24
+ if (!!pseudos[key]) {
25
+ styles[key] = style[key];
26
+ } else {
27
+ styles.base[key] = style[key];
28
+ }
29
+ }
30
+ return Object.keys(styles).map((key) => {
31
+ return getAtomicStyle(styles[key], pseudos[key], avoidCollection);
32
+ }).flat();
33
+ }
34
+ __name(getStylesAtomic, "getStylesAtomic");
35
+ const importantRegex = /\!important*/g;
36
+ function getAtomicStyle(style, pseudo, avoidCollection) {
37
+ if (style == null || typeof style !== "object") {
38
+ throw new Error(`Wrong style type: "${typeof style}": ${style}`);
39
+ }
40
+ for (const key in borderDefaults) {
41
+ if (key in style) {
42
+ style[borderDefaults[key]] = style[borderDefaults[key]] ?? "solid";
43
+ }
44
+ }
45
+ const all = generateStyle(style);
46
+ return Object.keys(all).map((key) => {
47
+ const val = all[key];
48
+ const hash = val.identifier.slice(`${val.identifier}`.lastIndexOf("-") + 1);
49
+ const psuedoPrefix = pseudo ? `-${pseudo.name}-` : "";
50
+ const identifier = `_${val.property}-${psuedoPrefix}${hash}`;
51
+ const className = `.${identifier}`;
52
+ const rules = val.rules.map((rule) => {
53
+ if (pseudo) {
54
+ const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ":root").join("") + " ";
55
+ let res = rule.replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`).replace("{", `:${pseudo.name}{`);
56
+ if (pseudo.name === "hover") {
57
+ res = `@media not all and (hover: none) { ${res} }`;
58
+ }
59
+ return res;
60
+ }
61
+ return rule.replace(`.${val.identifier}`, className).replace(importantRegex, "");
62
+ });
63
+ if (!avoidCollection) {
64
+ if (rules.length > 1) {
65
+ console.warn("have never seen more than one, verifying");
66
+ }
67
+ AllRules.add(rules[0]);
68
+ }
69
+ const result = {
70
+ property: val.property,
71
+ value: val.value,
72
+ identifier,
73
+ className,
74
+ rules
75
+ };
76
+ return result;
77
+ });
78
+ }
79
+ __name(getAtomicStyle, "getAtomicStyle");
80
+ export {
81
+ getStylesAtomic
82
+ };
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ function getStylesAtomic() {
4
+ console.warn("no-op native");
5
+ }
6
+ __name(getStylesAtomic, "getStylesAtomic");
7
+ export {
8
+ getStylesAtomic
9
+ };
@@ -0,0 +1,23 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isWeb } from "../constants/platform";
4
+ function insertStyleRule(rule) {
5
+ if (typeof window === "undefined") {
6
+ return;
7
+ }
8
+ if (process.env.NODE_ENV === "development") {
9
+ if (!isWeb) {
10
+ console.warn("non web platform, dont use this");
11
+ return;
12
+ }
13
+ }
14
+ const sheet = window.document.styleSheets[0];
15
+ if (!sheet) {
16
+ return;
17
+ }
18
+ sheet.insertRule(rule, sheet.cssRules.length);
19
+ }
20
+ __name(insertStyleRule, "insertStyleRule");
21
+ export {
22
+ insertStyleRule
23
+ };
@@ -0,0 +1,6 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const isObj = /* @__PURE__ */ __name((x) => x && !Array.isArray(x) && typeof x === "object", "isObj");
4
+ export {
5
+ isObj
6
+ };
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isValidElement } from "react";
4
+ const isTamaguiElement = /* @__PURE__ */ __name((child) => {
5
+ return isValidElement(child) && !!child.type["staticConfig"]?.parsed;
6
+ }, "isTamaguiElement");
7
+ export {
8
+ isTamaguiElement
9
+ };
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const matchMedia = typeof window !== "undefined" && window.matchMedia || /* @__PURE__ */ __name(function matchMediaFallback(query) {
4
+ return {
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
+ },
10
+ removeListener() {
11
+ },
12
+ matches: false
13
+ };
14
+ }, "matchMediaFallback");
15
+ export {
16
+ matchMedia
17
+ };
@@ -0,0 +1,8 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import MediaQueryList from "@expo/match-media/build/MediaQueryList.js";
4
+ const matchMedia = /* @__PURE__ */ __name((media) => new MediaQueryList(media), "matchMedia");
5
+ globalThis["matchMedia"] = matchMedia;
6
+ export {
7
+ matchMedia
8
+ };
@@ -0,0 +1,23 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import React, { forwardRef } from "react";
4
+ import { Theme } from "../views/Theme";
5
+ import { ThemeInverse } from "../views/ThemeInverse";
6
+ const themeable = /* @__PURE__ */ __name(function graphql(component) {
7
+ const withThemeComponent = forwardRef(/* @__PURE__ */ __name(function WithTheme({ themeInverse, ...rest }, ref) {
8
+ const el = React.createElement(component, { ...rest, ref });
9
+ if (themeInverse) {
10
+ return <ThemeInverse>{el}</ThemeInverse>;
11
+ }
12
+ if (rest.theme) {
13
+ return <Theme name={rest.theme || null}>{el}</Theme>;
14
+ }
15
+ return el;
16
+ }, "WithTheme"));
17
+ const withTheme = withThemeComponent;
18
+ withTheme.displayName = `Themed(${component?.displayName || component?.name || "Anonymous"})`;
19
+ return withTheme;
20
+ }, "graphql");
21
+ export {
22
+ themeable
23
+ };
@@ -0,0 +1,59 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import ow from "@tamagui/ow";
4
+ const validateConfig = /* @__PURE__ */ __name((conf) => {
5
+ if (!conf) {
6
+ console.warn("no conf?");
7
+ return;
8
+ }
9
+ try {
10
+ ow(conf, validConfig);
11
+ } catch (err) {
12
+ console.log("Given config:\n", JSON.stringify(conf, null, 2));
13
+ throw err;
14
+ }
15
+ }, "validateConfig");
16
+ const validConfig = ow.object.exactShape({
17
+ defaultTheme: ow.optional.string,
18
+ disableRootThemeClass: ow.optional.boolean,
19
+ shorthands: ow.optional.object.valuesOfType(ow.string),
20
+ themes: ow.object.valuesOfType(ow.object),
21
+ tokens: ow.object.valuesOfType(ow.object),
22
+ media: ow.object.valuesOfType(ow.object)
23
+ });
24
+ const validFont = ow.object.exactShape({
25
+ family: ow.string,
26
+ size: ow.object.nonEmpty.valuesOfType(ow.number),
27
+ lineHeight: ow.object.nonEmpty.valuesOfType(ow.number),
28
+ weight: ow.object.nonEmpty.valuesOfType(ow.string),
29
+ letterSpacing: ow.object.nonEmpty.valuesOfType(ow.number)
30
+ });
31
+ const validTokens = ow.object.exactShape({
32
+ font: ow.object.valuesOfType(validFont),
33
+ size: ow.object.nonEmpty.valuesOfType(ow.number),
34
+ space: ow.object.nonEmpty.valuesOfType(ow.number),
35
+ zIndex: ow.object.nonEmpty.valuesOfType(ow.number),
36
+ radius: ow.object.nonEmpty.valuesOfType(ow.number),
37
+ color: ow.object.nonEmpty.valuesOfType(ow.string)
38
+ });
39
+ const validateTokens = /* @__PURE__ */ __name((tokens) => {
40
+ try {
41
+ ow(tokens, validTokens);
42
+ } catch (err) {
43
+ console.log("Given tokens:\n", JSON.stringify(tokens, null, 2));
44
+ throw err;
45
+ }
46
+ }, "validateTokens");
47
+ const validateFont = /* @__PURE__ */ __name((font) => {
48
+ try {
49
+ ow(font, validFont);
50
+ } catch (err) {
51
+ console.log("Given font:\n", JSON.stringify(font, null, 2));
52
+ throw err;
53
+ }
54
+ }, "validateFont");
55
+ export {
56
+ validateConfig,
57
+ validateFont,
58
+ validateTokens
59
+ };
@@ -0,0 +1,14 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { useRef } from "react";
4
+ function useConstant(fn) {
5
+ const ref = useRef();
6
+ if (!ref.current) {
7
+ ref.current = { v: fn() };
8
+ }
9
+ return ref.current.v;
10
+ }
11
+ __name(useConstant, "useConstant");
12
+ export {
13
+ useConstant
14
+ };
@@ -0,0 +1,57 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
4
+ import { addMediaQueryListener, mediaState, removeMediaQueryListener } from "./useMedia";
5
+ const createDefinition = /* @__PURE__ */ __name(({
6
+ Component,
7
+ propNames
8
+ }) => ({
9
+ isEnabled: (props) => propNames.some((name) => !!props[name]),
10
+ Component
11
+ }), "createDefinition");
12
+ let featureDefinitions = null;
13
+ const useFeatures = /* @__PURE__ */ __name((props, utils) => {
14
+ if (!featureDefinitions) {
15
+ featureDefinitions = loadFeatures();
16
+ }
17
+ const features = [];
18
+ for (const name in featureDefinitions) {
19
+ const { isEnabled, Component } = featureDefinitions[name];
20
+ if (isEnabled(props) && Component) {
21
+ features.push(<Component key={name} {...props} _utils={utils} />);
22
+ }
23
+ }
24
+ return features;
25
+ }, "useFeatures");
26
+ function loadFeatures() {
27
+ return {
28
+ ...!isWeb && {
29
+ mediaQuery: loadMediaQueryFeature()
30
+ }
31
+ };
32
+ }
33
+ __name(loadFeatures, "loadFeatures");
34
+ function loadMediaQueryFeature() {
35
+ const mediaPropNames = Object.keys(mediaState);
36
+ return createDefinition({
37
+ Component: (props) => {
38
+ const keys = mediaPropNames.flatMap((x) => x in props ? x.slice(1) : []);
39
+ useIsomorphicLayoutEffect(() => {
40
+ for (const key of keys) {
41
+ addMediaQueryListener(key, props._utils.forceUpdate);
42
+ }
43
+ return () => {
44
+ for (const key of keys) {
45
+ removeMediaQueryListener(key, props._utils.forceUpdate);
46
+ }
47
+ };
48
+ }, [keys.join(",")]);
49
+ return null;
50
+ },
51
+ propNames: mediaPropNames
52
+ });
53
+ }
54
+ __name(loadMediaQueryFeature, "loadMediaQueryFeature");
55
+ export {
56
+ useFeatures
57
+ };
@@ -0,0 +1,172 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { useForceUpdate } from "@tamagui/use-force-update";
4
+ import { useRef } from "react";
5
+ import { useIsomorphicLayoutEffect } from "../constants/platform";
6
+ import { matchMedia } from "../helpers/matchMedia";
7
+ import { useConstant } from "./useConstant";
8
+ const mediaState = {};
9
+ const mediaQueryListeners = {};
10
+ const addMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
11
+ mediaQueryListeners[key] = mediaQueryListeners[key] || new Set();
12
+ mediaQueryListeners[key].add(cb);
13
+ }, "addMediaQueryListener");
14
+ const removeMediaQueryListener = /* @__PURE__ */ __name((key, cb) => {
15
+ mediaQueryListeners[key].delete(cb);
16
+ }, "removeMediaQueryListener");
17
+ let conf = null;
18
+ const mediaQueryConfig = new Proxy({}, {
19
+ get(target, key) {
20
+ if (!conf) {
21
+ console.warn("Warning: accessing media query before init");
22
+ return null;
23
+ }
24
+ return Reflect.get(conf, key);
25
+ },
26
+ ownKeys() {
27
+ if (!conf) {
28
+ console.warn("Warning: accessing media query before init");
29
+ return [];
30
+ }
31
+ return Object.keys(conf);
32
+ },
33
+ getOwnPropertyDescriptor() {
34
+ return {
35
+ enumerable: true,
36
+ configurable: true
37
+ };
38
+ }
39
+ });
40
+ const getMedia = /* @__PURE__ */ __name(() => {
41
+ if (!conf) {
42
+ throw new Error(`not configured yet`);
43
+ }
44
+ return mediaState;
45
+ }, "getMedia");
46
+ const configureMedia = /* @__PURE__ */ __name(({
47
+ queries,
48
+ defaultActive = ["sm", "xs"]
49
+ } = {}) => {
50
+ if (conf) {
51
+ console.warn(`Already configured mediaQueries once (you may have called getMedia() before configureMedia())`);
52
+ }
53
+ if (queries) {
54
+ conf = queries;
55
+ }
56
+ for (const key in queries) {
57
+ const str = mediaObjectToString(queries[key]);
58
+ try {
59
+ const getMatch = /* @__PURE__ */ __name(() => matchMedia(str), "getMatch");
60
+ const match = getMatch();
61
+ if (!match || typeof match.addListener !== "function") {
62
+ throw new Error("\u26A0\uFE0F No match (seeing this in RN sometimes)");
63
+ }
64
+ mediaState[key] = !!match.matches;
65
+ match.addListener(() => {
66
+ const next = !!getMatch().matches;
67
+ if (next === mediaState[key])
68
+ return;
69
+ mediaState[key] = next;
70
+ const listeners = mediaQueryListeners[key];
71
+ if (listeners?.size) {
72
+ for (const cb of [...listeners]) {
73
+ cb();
74
+ }
75
+ }
76
+ });
77
+ } catch (err) {
78
+ console.error("Error running media query", str, err.message, err.stack);
79
+ const isDefaultActive = defaultActive?.includes(key) ?? true;
80
+ mediaState[key] = isDefaultActive;
81
+ }
82
+ }
83
+ }, "configureMedia");
84
+ const useMedia = /* @__PURE__ */ __name(() => {
85
+ const forceUpdate = useForceUpdate();
86
+ const state = useRef();
87
+ if (!state.current) {
88
+ state.current = {
89
+ selections: {},
90
+ nextSelections: {},
91
+ isUnmounted: false,
92
+ isRendering: true
93
+ };
94
+ }
95
+ state.current.isRendering = true;
96
+ useIsomorphicLayoutEffect(() => {
97
+ const st = state.current;
98
+ st.isRendering = false;
99
+ for (const key in st.selections) {
100
+ if (!(key in st.nextSelections)) {
101
+ removeMediaQueryListener(key, forceUpdate);
102
+ }
103
+ }
104
+ for (const key in st.nextSelections) {
105
+ if (!(key in st.selections)) {
106
+ addMediaQueryListener(key, forceUpdate);
107
+ }
108
+ }
109
+ });
110
+ useIsomorphicLayoutEffect(() => {
111
+ return () => {
112
+ const st = state.current;
113
+ st.isUnmounted = true;
114
+ const allKeys = {
115
+ ...st.selections,
116
+ ...st.nextSelections
117
+ };
118
+ for (const key in allKeys) {
119
+ removeMediaQueryListener(key, forceUpdate);
120
+ }
121
+ };
122
+ }, []);
123
+ return useConstant(() => {
124
+ const st = state.current;
125
+ return new Proxy(mediaState, {
126
+ get(target, key) {
127
+ if (!(key in mediaState)) {
128
+ return Reflect.get(target, key);
129
+ }
130
+ if (!st.isUnmounted) {
131
+ if (st.isRendering) {
132
+ st.nextSelections[key] = true;
133
+ }
134
+ }
135
+ if (key in mediaState) {
136
+ return mediaState[key];
137
+ }
138
+ return Reflect.get(mediaState, key);
139
+ }
140
+ });
141
+ });
142
+ }, "useMedia");
143
+ function camelToHyphen(str) {
144
+ return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase();
145
+ }
146
+ __name(camelToHyphen, "camelToHyphen");
147
+ function mediaObjectToString(query) {
148
+ if (typeof query === "string") {
149
+ return query;
150
+ }
151
+ return Object.entries(query).map(([feature, value]) => {
152
+ feature = camelToHyphen(feature);
153
+ if (typeof value === "string") {
154
+ return `(${feature}: ${value})`;
155
+ }
156
+ if (typeof value === "number" && /[height|width]$/.test(feature)) {
157
+ value = `${value}px`;
158
+ }
159
+ return `(${feature}: ${value})`;
160
+ }).join(" and ");
161
+ }
162
+ __name(mediaObjectToString, "mediaObjectToString");
163
+ export {
164
+ addMediaQueryListener,
165
+ configureMedia,
166
+ getMedia,
167
+ mediaObjectToString,
168
+ mediaQueryConfig,
169
+ mediaState,
170
+ removeMediaQueryListener,
171
+ useMedia
172
+ };
@@ -0,0 +1,12 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { Pressable } from "react-native";
4
+ const getPressable = Pressable?.["type"]?.["render"];
5
+ const usePressable = /* @__PURE__ */ __name((props) => {
6
+ const out = getPressable(props);
7
+ const { children, style, ...pressableProps } = out.props;
8
+ return [pressableProps, style];
9
+ }, "usePressable");
10
+ export {
11
+ usePressable
12
+ };