@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
package/dist/index.cjs CHANGED
@@ -56,7 +56,6 @@ var __toModule = (module2) => {
56
56
  __export(exports, {
57
57
  AnimatedStack: () => AnimatedStack,
58
58
  GET_DEFAULT_THEME: () => GET_DEFAULT_THEME,
59
- SafeAreaProvider: () => SafeAreaProvider,
60
59
  Spacer: () => Spacer,
61
60
  Stack: () => Stack,
62
61
  Text: () => Text2,
@@ -83,6 +82,7 @@ __export(exports, {
83
82
  isChrome: () => isChrome,
84
83
  isObj: () => isObj,
85
84
  isSSR: () => isSSR,
85
+ isTamaguiElement: () => isTamaguiElement,
86
86
  isTouchDevice: () => isTouchDevice,
87
87
  isVariable: () => isVariable,
88
88
  isWeb: () => isWeb,
@@ -104,7 +104,6 @@ __export(exports, {
104
104
  themeable: () => themeable,
105
105
  useConstant: () => useConstant,
106
106
  useDefaultThemeName: () => useDefaultThemeName,
107
- useForceUpdate: () => useForceUpdate,
108
107
  useIsomorphicLayoutEffect: () => useIsomorphicLayoutEffect,
109
108
  useMedia: () => useMedia,
110
109
  useTheme: () => useTheme,
@@ -113,14 +112,15 @@ __export(exports, {
113
112
 
114
113
  // src/createComponent.tsx
115
114
  var import_helpers4 = __toModule(require("@tamagui/helpers"));
116
- var import_react12 = __toModule(require("react"));
115
+ var import_use_force_update2 = __toModule(require("@tamagui/use-force-update"));
116
+ var import_react11 = __toModule(require("react"));
117
117
  var import_react_native3 = __toModule(require("react-native"));
118
118
 
119
119
  // src/constants/platform.ts
120
120
  var import_react = __toModule(require("react"));
121
121
  var import_react_native = __toModule(require("react-native"));
122
122
  var _a;
123
- var isWeb = process.env.TAMAGUI_TARGET !== "web" ? false : ((_a = import_react_native.Platform) == null ? void 0 : _a.OS) === "web";
123
+ var isWeb = process.env.TAMAGUI_TARGET === "web" ? true : ((_a = import_react_native.Platform) == null ? void 0 : _a.OS) === "web";
124
124
  var isSSR = isWeb && typeof window === "undefined";
125
125
  var useIsomorphicLayoutEffect = isSSR ? import_react.useEffect : import_react.useLayoutEffect;
126
126
  var isChrome = typeof navigator !== "undefined" && /Chrome/.test(navigator.userAgent || "");
@@ -166,6 +166,9 @@ var Variable = class {
166
166
  this.name = name;
167
167
  this.variable = isWeb ? `var(--${name})` : this.val;
168
168
  }
169
+ toString() {
170
+ return isWeb ? this.variable : this.val;
171
+ }
169
172
  };
170
173
  __name(Variable, "Variable");
171
174
  var createVariable = /* @__PURE__ */ __name((props) => new Variable(props), "createVariable");
@@ -216,16 +219,22 @@ var import_react5 = __toModule(require("react"));
216
219
  var ThemeManager = class {
217
220
  constructor() {
218
221
  this.name = "light";
222
+ this.parentName = null;
219
223
  this.keys = new Map();
220
224
  this.listeners = new Map();
221
225
  this.callbacks = new Set();
222
226
  this.theme = null;
223
227
  }
224
- setActiveTheme(name, theme) {
228
+ setActiveTheme({
229
+ name,
230
+ theme,
231
+ parentName
232
+ }) {
225
233
  if (name === this.name)
226
234
  return;
227
235
  this.name = name;
228
236
  this.theme = theme;
237
+ this.parentName = parentName || null;
229
238
  this.update();
230
239
  }
231
240
  track(uuid, keys) {
@@ -269,28 +278,37 @@ var Theme = /* @__PURE__ */ __name((props) => {
269
278
  const themes = (0, import_react6.useContext)(ThemeContext);
270
279
  const [parentName, setParentName] = (0, import_react6.useState)(parent.name || "light");
271
280
  if (!themes) {
272
- console.warn("no themes???", props);
281
+ console.warn("Error, no themes in context", props);
273
282
  return props.children;
274
283
  }
275
284
  const name = props.name;
276
- const theme = themes[name] || themes[`${name}-${parentName}`];
285
+ const nextNameParent = `${name}-${parentName}`;
286
+ const nextNameParentParent = `${name}-${parent.parentName}`;
287
+ const activeName = !name ? null : name in themes ? name : nextNameParent in themes ? nextNameParent : nextNameParentParent in themes ? nextNameParentParent : null;
288
+ const theme = activeName ? themes[activeName] : null;
277
289
  const themeManager = useConstant(() => {
290
+ if (!theme) {
291
+ return null;
292
+ }
278
293
  const manager = new ThemeManager();
279
294
  if (name) {
280
- manager.setActiveTheme(name, themes[name]);
295
+ manager.setActiveTheme({ name, theme: themes[name], parentName });
281
296
  }
282
297
  return manager;
283
298
  });
284
299
  useIsomorphicLayoutEffect(() => {
285
- themeManager.setActiveTheme(name, theme);
300
+ if (!themeManager) {
301
+ return;
302
+ }
303
+ themeManager.setActiveTheme({ name: activeName, theme, parentName });
286
304
  return parent.onChangeTheme((next) => {
287
305
  if (next) {
288
- themeManager.setActiveTheme(next, themes[next]);
306
+ themeManager.setActiveTheme({ name: next, theme: themes[next], parentName });
289
307
  setParentName(next);
290
308
  }
291
309
  });
292
- }, [themes, name]);
293
- if (!name) {
310
+ }, [themes, activeName, parentName]);
311
+ if (!name || !theme) {
294
312
  return props.children;
295
313
  }
296
314
  const contents = themeManager ? /* @__PURE__ */ import_react6.default.createElement(ThemeManagerContext.Provider, {
@@ -363,13 +381,71 @@ function createTamaguiProvider(themeProps) {
363
381
  }
364
382
  __name(createTamaguiProvider, "createTamaguiProvider");
365
383
 
384
+ // src/helpers/validate.ts
385
+ var import_ow = __toModule(require("@tamagui/ow"));
386
+ var validateConfig = /* @__PURE__ */ __name((conf3) => {
387
+ if (!conf3) {
388
+ console.warn("no conf?");
389
+ return;
390
+ }
391
+ try {
392
+ (0, import_ow.default)(conf3, validConfig);
393
+ } catch (err) {
394
+ console.log("Given config:\n", JSON.stringify(conf3, null, 2));
395
+ throw err;
396
+ }
397
+ }, "validateConfig");
398
+ var validConfig = import_ow.default.object.exactShape({
399
+ defaultTheme: import_ow.default.optional.string,
400
+ disableRootThemeClass: import_ow.default.optional.boolean,
401
+ shorthands: import_ow.default.optional.object.valuesOfType(import_ow.default.string),
402
+ themes: import_ow.default.object.valuesOfType(import_ow.default.object),
403
+ tokens: import_ow.default.object.valuesOfType(import_ow.default.object),
404
+ media: import_ow.default.object.valuesOfType(import_ow.default.object)
405
+ });
406
+ var validFont = import_ow.default.object.exactShape({
407
+ family: import_ow.default.string,
408
+ size: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
409
+ lineHeight: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
410
+ weight: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.string),
411
+ letterSpacing: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number)
412
+ });
413
+ var validTokens = import_ow.default.object.exactShape({
414
+ font: import_ow.default.object.valuesOfType(validFont),
415
+ size: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
416
+ space: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
417
+ zIndex: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
418
+ radius: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.number),
419
+ color: import_ow.default.object.nonEmpty.valuesOfType(import_ow.default.string)
420
+ });
421
+ var validateTokens = /* @__PURE__ */ __name((tokens) => {
422
+ try {
423
+ (0, import_ow.default)(tokens, validTokens);
424
+ } catch (err) {
425
+ console.log("Given tokens:\n", JSON.stringify(tokens, null, 2));
426
+ throw err;
427
+ }
428
+ }, "validateTokens");
429
+ var validateFont = /* @__PURE__ */ __name((font) => {
430
+ try {
431
+ (0, import_ow.default)(font, validFont);
432
+ } catch (err) {
433
+ console.log("Given font:\n", JSON.stringify(font, null, 2));
434
+ throw err;
435
+ }
436
+ }, "validateFont");
437
+
366
438
  // src/hooks/useMedia.tsx
367
- var import_react9 = __toModule(require("react"));
439
+ var import_use_force_update = __toModule(require("@tamagui/use-force-update"));
440
+ var import_react8 = __toModule(require("react"));
368
441
 
369
442
  // src/helpers/matchMedia.ts
370
443
  var matchMedia = typeof window !== "undefined" && window.matchMedia || /* @__PURE__ */ __name(function matchMediaFallback(query) {
371
444
  return {
372
445
  addListener() {
446
+ if (process.env.NODE_ENV === "development") {
447
+ console.log("warning: matchMedia not loading! Is native picking up .native.js files?");
448
+ }
373
449
  },
374
450
  removeListener() {
375
451
  },
@@ -377,30 +453,6 @@ var matchMedia = typeof window !== "undefined" && window.matchMedia || /* @__PUR
377
453
  };
378
454
  }, "matchMediaFallback");
379
455
 
380
- // src/hooks/useForceUpdate.tsx
381
- var import_react8 = __toModule(require("react"));
382
- function useForceUpdate() {
383
- const setState = (0, import_react8.useState)(0)[1];
384
- const internal = (0, import_react8.useRef)();
385
- if (!internal.current) {
386
- internal.current = {
387
- isMounted: true,
388
- update: () => {
389
- if (internal.current.isMounted) {
390
- setState(Math.random());
391
- }
392
- }
393
- };
394
- }
395
- (0, import_react8.useEffect)(() => {
396
- return () => {
397
- internal.current.isMounted = false;
398
- };
399
- }, []);
400
- return internal.current.update;
401
- }
402
- __name(useForceUpdate, "useForceUpdate");
403
-
404
456
  // src/hooks/useMedia.tsx
405
457
  var mediaState = {};
406
458
  var mediaQueryListeners = {};
@@ -477,8 +529,8 @@ var configureMedia = /* @__PURE__ */ __name(({
477
529
  }
478
530
  }, "configureMedia");
479
531
  var useMedia = /* @__PURE__ */ __name(() => {
480
- const forceUpdate = useForceUpdate();
481
- const state = (0, import_react9.useRef)();
532
+ const forceUpdate = (0, import_use_force_update.useForceUpdate)();
533
+ const state = (0, import_react8.useRef)();
482
534
  if (!state.current) {
483
535
  state.current = {
484
536
  selections: {},
@@ -567,6 +619,11 @@ var onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
567
619
  }, "onConfiguredOnce");
568
620
  var PREFIX = `theme--`;
569
621
  function createTamagui(config) {
622
+ if (process.env.NODE_ENV === "development") {
623
+ if (!config["parsed"]) {
624
+ validateConfig(config);
625
+ }
626
+ }
570
627
  if (conf2) {
571
628
  console.warn("Called createTamagui twice! Should never do so");
572
629
  }
@@ -653,6 +710,7 @@ ${vars}
653
710
  themeConfig,
654
711
  themeParsed,
655
712
  tokensParsed,
713
+ parsed: true,
656
714
  getCSS() {
657
715
  return `${themeConfig.css}
658
716
  ${[...(0, import_helpers.getStyleRules)()].join("\n")}`;
@@ -700,7 +758,7 @@ var parseTokens = /* @__PURE__ */ __name((tokens) => {
700
758
  }, "parseTokens");
701
759
 
702
760
  // src/helpers/addStylesUsingClassname.tsx
703
- var import_react10 = __toModule(require("react"));
761
+ var import_react9 = __toModule(require("react"));
704
762
 
705
763
  // src/helpers/getStylesAtomic.ts
706
764
  var import_helpers2 = __toModule(require("@tamagui/helpers"));
@@ -817,7 +875,7 @@ __name(insertStyleRule, "insertStyleRule");
817
875
  // src/helpers/addStylesUsingClassname.tsx
818
876
  var added = new Set();
819
877
  function useStylesAsClassname(styles) {
820
- if (!import_react10.useInsertionEffect) {
878
+ if (!import_react9.useInsertionEffect) {
821
879
  return addStylesUsingClassname(styles);
822
880
  } else {
823
881
  const insertions = [];
@@ -826,7 +884,7 @@ function useStylesAsClassname(styles) {
826
884
  insertions.push(rule);
827
885
  }
828
886
  });
829
- (0, import_react10.useInsertionEffect)(() => {
887
+ (0, import_react9.useInsertionEffect)(() => {
830
888
  for (const ruleset of insertions) {
831
889
  insertStyleRule(ruleset);
832
890
  }
@@ -1090,7 +1148,6 @@ var getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSplit
1090
1148
  const validStyleProps = staticConfig.isText ? import_helpers3.stylePropsText : import_helpers3.validStyles;
1091
1149
  const viewProps = {};
1092
1150
  const style = [];
1093
- const blacklistProps = isSplittingDefaultProps ? blacklistDefaultProps : blacklistFinalProps;
1094
1151
  let pseudos2 = null;
1095
1152
  let cur = null;
1096
1153
  let classNames = null;
@@ -1104,14 +1161,14 @@ var getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSplit
1104
1161
  }
1105
1162
  const mediaProps = __spreadValues(__spreadValues({}, props), valInit);
1106
1163
  const mediaStyle = getSubStyle(valInit, staticConfig, theme, props);
1107
- const mediaStyles = getStylesAtomic(mediaStyle);
1108
- if (process.env.NODE_ENV === "development") {
1109
- if (props["debug"]) {
1110
- console.log("mediaStyles", keyInit, { mediaProps, mediaStyle, mediaStyles });
1164
+ if (isWeb) {
1165
+ const mediaStyles = getStylesAtomic(mediaStyle);
1166
+ if (process.env.NODE_ENV === "development") {
1167
+ if (props["debug"]) {
1168
+ console.log("mediaStyles", keyInit, { mediaProps, mediaStyle, mediaStyles });
1169
+ }
1111
1170
  }
1112
- }
1113
- for (const style2 of mediaStyles) {
1114
- if (isWeb) {
1171
+ for (const style2 of mediaStyles) {
1115
1172
  const out2 = createMediaStyle(style2, mediaKey, mediaQueryConfig);
1116
1173
  classNames = classNames || [];
1117
1174
  classNames.push(out2.identifier);
@@ -1120,8 +1177,10 @@ var getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSplit
1120
1177
  if (process.env.NODE_ENV === "development" && props["debug"]) {
1121
1178
  console.log("mediaProp", style2.identifier, out2, mediaProps, mediaStyle, mediaStyles);
1122
1179
  }
1123
- } else {
1124
- console.log("TODO native media style logic");
1180
+ }
1181
+ } else {
1182
+ if (mediaState[mediaKey]) {
1183
+ style.push(mediaStyle);
1125
1184
  }
1126
1185
  }
1127
1186
  continue;
@@ -1169,7 +1228,7 @@ var getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, isSplit
1169
1228
  cur[key] = val;
1170
1229
  continue;
1171
1230
  }
1172
- if (!blacklistProps[key]) {
1231
+ if (!staticConfig.variants || !(key in staticConfig.variants)) {
1173
1232
  viewProps[key] = val;
1174
1233
  }
1175
1234
  }
@@ -1207,13 +1266,6 @@ var getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props) =
1207
1266
  fixNativeShadow(styleOut);
1208
1267
  return styleOut;
1209
1268
  }, "getSubStyle");
1210
- var blacklistDefaultProps = __spreadValues(__spreadValues({}, import_helpers3.validStyles), import_helpers3.stylePropsText);
1211
- var blacklistFinalProps = __spreadProps(__spreadValues({}, blacklistDefaultProps), {
1212
- tag: true,
1213
- debug: true,
1214
- space: true,
1215
- hitSlop: true
1216
- });
1217
1269
  var mapTransformKeys = {
1218
1270
  x: "translateX",
1219
1271
  y: "translateY"
@@ -1225,41 +1277,43 @@ var mergeTransform = /* @__PURE__ */ __name((obj, key, val) => {
1225
1277
  }, "mergeTransform");
1226
1278
 
1227
1279
  // src/hooks/useFeatures.tsx
1228
- var import_react11 = __toModule(require("react"));
1229
- var createDefinition = /* @__PURE__ */ __name(({ Component, propNames }) => ({
1280
+ var import_react10 = __toModule(require("react"));
1281
+ var createDefinition = /* @__PURE__ */ __name(({
1282
+ Component,
1283
+ propNames
1284
+ }) => ({
1230
1285
  isEnabled: (props) => propNames.some((name) => !!props[name]),
1231
1286
  Component
1232
1287
  }), "createDefinition");
1233
- var mediaQueryPropNames = [
1234
- "$xs",
1235
- "$sm",
1236
- "$md",
1237
- "$lg",
1238
- "$xl",
1239
- "$xxl",
1240
- "$pointerCoarse",
1241
- "$hoverNone",
1242
- "$tall",
1243
- "$short",
1244
- "$gtSm",
1245
- "$notXs",
1246
- "$gtMd",
1247
- "$gtLg"
1248
- ];
1249
- var featureDefinitions = {
1250
- measureLayout: createDefinition({
1251
- Component: (props) => {
1252
- console.log("measure", props);
1253
- return null;
1254
- },
1255
- propNames: ["onLayout"]
1256
- }),
1257
- mediaQuery: createDefinition({
1288
+ var featureDefinitions = null;
1289
+ var useFeatures = /* @__PURE__ */ __name((props, utils) => {
1290
+ if (!featureDefinitions) {
1291
+ featureDefinitions = loadFeatures();
1292
+ }
1293
+ const features = [];
1294
+ for (const name in featureDefinitions) {
1295
+ const { isEnabled, Component } = featureDefinitions[name];
1296
+ if (isEnabled(props) && Component) {
1297
+ features.push(/* @__PURE__ */ import_react10.default.createElement(Component, __spreadProps(__spreadValues({
1298
+ key: name
1299
+ }, props), {
1300
+ _utils: utils
1301
+ })));
1302
+ }
1303
+ }
1304
+ return features;
1305
+ }, "useFeatures");
1306
+ function loadFeatures() {
1307
+ return __spreadValues({}, !isWeb && {
1308
+ mediaQuery: loadMediaQueryFeature()
1309
+ });
1310
+ }
1311
+ __name(loadFeatures, "loadFeatures");
1312
+ function loadMediaQueryFeature() {
1313
+ const mediaPropNames = Object.keys(mediaState);
1314
+ return createDefinition({
1258
1315
  Component: (props) => {
1259
- if (isWeb) {
1260
- return;
1261
- }
1262
- const keys = mediaQueryPropNames.flatMap((x) => x in props ? x.slice(1) : []);
1316
+ const keys = mediaPropNames.flatMap((x) => x in props ? x.slice(1) : []);
1263
1317
  useIsomorphicLayoutEffect(() => {
1264
1318
  for (const key of keys) {
1265
1319
  addMediaQueryListener(key, props._utils.forceUpdate);
@@ -1272,26 +1326,10 @@ var featureDefinitions = {
1272
1326
  }, [keys.join(",")]);
1273
1327
  return null;
1274
1328
  },
1275
- propNames: mediaQueryPropNames
1276
- })
1277
- };
1278
- var featureNames = Object.keys(featureDefinitions);
1279
- var numFeatures = featureNames.length;
1280
- var useFeatures = /* @__PURE__ */ __name((props, utils) => {
1281
- const features = [];
1282
- for (let i = 0; i < numFeatures; i++) {
1283
- const name = featureNames[i];
1284
- const { isEnabled, Component } = featureDefinitions[name];
1285
- if (isEnabled(props) && Component) {
1286
- features.push(/* @__PURE__ */ import_react11.default.createElement(Component, __spreadProps(__spreadValues({
1287
- key: name
1288
- }, props), {
1289
- _utils: utils
1290
- })));
1291
- }
1292
- }
1293
- return features;
1294
- }, "useFeatures");
1329
+ propNames: mediaPropNames
1330
+ });
1331
+ }
1332
+ __name(loadMediaQueryFeature, "loadMediaQueryFeature");
1295
1333
 
1296
1334
  // src/hooks/usePressable.tsx
1297
1335
  var import_react_native2 = __toModule(require("react-native"));
@@ -1325,9 +1363,41 @@ function createComponent(configIn) {
1325
1363
  let defaultsStyle;
1326
1364
  let defaultsClassName = "";
1327
1365
  let initialTheme;
1328
- const component = (0, import_react12.forwardRef)((props, forwardedRef) => {
1329
- var _a4;
1366
+ const component = (0, import_react11.forwardRef)((props, forwardedRef) => {
1367
+ var _b2;
1368
+ const forceUpdate = (0, import_use_force_update2.useForceUpdate)();
1369
+ const features = useFeatures(props, { forceUpdate });
1370
+ const manager = (0, import_react11.useContext)(ThemeManagerContext);
1371
+ const [state, set_] = (0, import_react11.useState)(() => ({
1372
+ hover: false,
1373
+ press: false,
1374
+ pressIn: false,
1375
+ theme: manager.name
1376
+ }));
1377
+ const set = /* @__PURE__ */ __name((next) => set_((prev) => {
1378
+ for (const key in next) {
1379
+ if (prev[key] !== next[key]) {
1380
+ return __spreadValues(__spreadValues({}, prev), next);
1381
+ }
1382
+ }
1383
+ return prev;
1384
+ }), "set");
1385
+ if (process.env.NODE_ENV === "development" && !isText && isWeb) {
1386
+ import_react11.Children.toArray(props.children).forEach((item) => {
1387
+ if (typeof item === "string") {
1388
+ console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
1389
+ }
1390
+ });
1391
+ }
1392
+ const hasTextAncestor = isWeb ? (0, import_react11.useContext)(TextAncestorContext) : false;
1393
+ const hostRef = (0, import_react11.useRef)(null);
1330
1394
  const {
1395
+ viewProps: viewPropsIn,
1396
+ pseudos: pseudos2,
1397
+ style,
1398
+ classNames
1399
+ } = getSplitStyles(props, staticConfig, manager.theme || initialTheme);
1400
+ const _a4 = viewPropsIn, {
1331
1401
  tag,
1332
1402
  hitSlop,
1333
1403
  children,
@@ -1360,34 +1430,52 @@ function createComponent(configIn) {
1360
1430
  onStartShouldSetResponderCapture,
1361
1431
  onMouseDown,
1362
1432
  onClick,
1433
+ accessible,
1434
+ accessibilityRole,
1363
1435
  onLayout
1364
- } = props;
1365
- const forceUpdate = useForceUpdate();
1366
- const features = useFeatures(props, { forceUpdate });
1367
- const manager = (0, import_react12.useContext)(ThemeManagerContext);
1368
- const [state, set_] = (0, import_react12.useState)(() => ({
1369
- hover: false,
1370
- press: false,
1371
- pressIn: false,
1372
- theme: manager.name
1373
- }));
1374
- const set = /* @__PURE__ */ __name((next) => set_((prev) => {
1375
- for (const key in next) {
1376
- if (prev[key] !== next[key]) {
1377
- return __spreadValues(__spreadValues({}, prev), next);
1378
- }
1379
- }
1380
- return prev;
1381
- }), "set");
1382
- if (process.env.NODE_ENV === "development" && !isText && isWeb) {
1383
- import_react12.Children.toArray(props.children).forEach((item) => {
1384
- if (typeof item === "string") {
1385
- console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
1386
- }
1387
- });
1436
+ } = _a4, viewProps = __objRest(_a4, [
1437
+ "tag",
1438
+ "hitSlop",
1439
+ "children",
1440
+ "pointerEvents",
1441
+ "onPress",
1442
+ "onPressIn",
1443
+ "onPressOut",
1444
+ "onHoverIn",
1445
+ "onHoverOut",
1446
+ "space",
1447
+ "disabled",
1448
+ "onMouseEnter",
1449
+ "onMouseLeave",
1450
+ "hrefAttrs",
1451
+ "onMoveShouldSetResponder",
1452
+ "onMoveShouldSetResponderCapture",
1453
+ "onResponderEnd",
1454
+ "onResponderGrant",
1455
+ "onResponderMove",
1456
+ "onResponderReject",
1457
+ "onResponderRelease",
1458
+ "onResponderStart",
1459
+ "onResponderTerminate",
1460
+ "onResponderTerminationRequest",
1461
+ "onScrollShouldSetResponder",
1462
+ "onScrollShouldSetResponderCapture",
1463
+ "onSelectionChangeShouldSetResponder",
1464
+ "onSelectionChangeShouldSetResponderCapture",
1465
+ "onStartShouldSetResponder",
1466
+ "onStartShouldSetResponderCapture",
1467
+ "onMouseDown",
1468
+ "onClick",
1469
+ "accessible",
1470
+ "accessibilityRole",
1471
+ "onLayout"
1472
+ ]);
1473
+ if (!isWeb) {
1474
+ if (accessible)
1475
+ viewProps.accessible = accessible;
1476
+ if (accessibilityRole)
1477
+ viewProps.accessibilityRole = accessibilityRole;
1388
1478
  }
1389
- const hasTextAncestor = isWeb ? (0, import_react12.useContext)(TextAncestorContext) : false;
1390
- const hostRef = (0, import_react12.useRef)(null);
1391
1479
  if (isWeb) {
1392
1480
  rnw.useResponderEvents(hostRef, {
1393
1481
  onMoveShouldSetResponder,
@@ -1408,15 +1496,14 @@ function createComponent(configIn) {
1408
1496
  onStartShouldSetResponderCapture
1409
1497
  });
1410
1498
  }
1411
- const isTracking = (0, import_react12.useRef)(false);
1412
- const { viewProps, pseudos: pseudos2, style, classNames } = getSplitStyles(props, staticConfig, manager.theme || initialTheme);
1413
- const internal = (0, import_react12.useRef)();
1499
+ const isTracking = (0, import_react11.useRef)(false);
1500
+ const internal = (0, import_react11.useRef)();
1414
1501
  if (!internal.current) {
1415
1502
  internal.current = {
1416
1503
  isMounted: true
1417
1504
  };
1418
1505
  }
1419
- (0, import_react12.useEffect)(() => {
1506
+ (0, import_react11.useEffect)(() => {
1420
1507
  internal.current.isMounted = true;
1421
1508
  const dispose = manager == null ? void 0 : manager.onChangeTheme((name) => {
1422
1509
  if (isTracking.current) {
@@ -1489,7 +1576,7 @@ function createComponent(configIn) {
1489
1576
  if (shouldAttach) {
1490
1577
  internal.current.hasEverHadEvents = true;
1491
1578
  }
1492
- const unPress = (0, import_react12.useCallback)(() => {
1579
+ const unPress = (0, import_react11.useCallback)(() => {
1493
1580
  if (!internal.current.isMounted)
1494
1581
  return;
1495
1582
  set({
@@ -1575,27 +1662,27 @@ function createComponent(configIn) {
1575
1662
  const className = domProps.className && domProps.className !== viewProps.className ? `${domProps.className} ${viewProps.className}` : viewProps.className;
1576
1663
  Object.assign(viewProps, domProps);
1577
1664
  viewProps.className = className;
1578
- content = (0, import_react12.createElement)(ViewComponent, viewProps, childEls);
1665
+ content = (0, import_react11.createElement)(ViewComponent, viewProps, childEls);
1579
1666
  } else {
1580
- content = (0, import_react12.createElement)(ViewComponent, viewProps, childEls);
1667
+ content = (0, import_react11.createElement)(ViewComponent, viewProps, childEls);
1581
1668
  }
1582
1669
  const shouldWrapTextAncestor = isWeb && isText && !hasTextAncestor;
1583
1670
  if (shouldWrapTextAncestor) {
1584
- content = (0, import_react12.createElement)(TextAncestorContext.Provider, { value: true }, content);
1671
+ content = (0, import_react11.createElement)(TextAncestorContext.Provider, { value: true }, content);
1585
1672
  }
1586
1673
  if (process.env.NODE_ENV === "development") {
1587
1674
  if (props["debug"]) {
1588
1675
  viewProps["debug"] = true;
1589
1676
  console.log("\u{1F95A} props in:", props);
1590
1677
  console.log("\u{1F95A} props out:", viewProps);
1591
- console.log((_a4 = props.onClick) == null ? void 0 : _a4.toString());
1678
+ console.log((_b2 = props.onClick) == null ? void 0 : _b2.toString());
1592
1679
  console.log("\u{1F95A} etc:", { shouldAttach, ViewComponent, viewProps, styles, pseudos: pseudos2, content, childEls });
1593
1680
  if (isWeb) {
1594
1681
  console.log("\u{1F95A} component info", { staticConfig, tamaguiConfig });
1595
1682
  }
1596
1683
  }
1597
1684
  }
1598
- return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, features, content);
1685
+ return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, features, content);
1599
1686
  });
1600
1687
  onConfiguredOnce((conf3) => {
1601
1688
  var _a4;
@@ -1610,7 +1697,7 @@ function createComponent(configIn) {
1610
1697
  } else {
1611
1698
  if (!hasWarnedOnce) {
1612
1699
  hasWarnedOnce = true;
1613
- console.log("\u26A0\uFE0F we need to account for default styles for media queries");
1700
+ console.log("\u26A0\uFE0F TODO account for default styles for media queries");
1614
1701
  }
1615
1702
  }
1616
1703
  component.defaultProps = __spreadValues(__spreadValues({}, next.viewProps), component.defaultProps);
@@ -1669,7 +1756,7 @@ function spacedChildren({
1669
1756
  if (!space && !isZStack) {
1670
1757
  return children;
1671
1758
  }
1672
- const childrenList = import_react12.Children.toArray(children);
1759
+ const childrenList = import_react11.Children.toArray(children);
1673
1760
  const len = childrenList.length;
1674
1761
  if (len === 1) {
1675
1762
  return children;
@@ -1680,15 +1767,15 @@ function spacedChildren({
1680
1767
  continue;
1681
1768
  }
1682
1769
  const key = `${(child == null ? void 0 : child["key"]) ?? index}`;
1683
- next.push(/* @__PURE__ */ import_react12.default.createElement(import_react12.Fragment, {
1770
+ next.push(/* @__PURE__ */ import_react11.default.createElement(import_react11.Fragment, {
1684
1771
  key
1685
- }, isZStack ? /* @__PURE__ */ import_react12.default.createElement(Absolute, null, child) : child));
1772
+ }, isZStack ? /* @__PURE__ */ import_react11.default.createElement(Absolute, null, child) : child));
1686
1773
  if ((_a4 = child == null ? void 0 : child["type"]) == null ? void 0 : _a4["isVisuallyHidden"]) {
1687
1774
  continue;
1688
1775
  }
1689
1776
  if (index !== len - 1) {
1690
1777
  if (space) {
1691
- next.push(/* @__PURE__ */ import_react12.default.createElement(Spacer, {
1778
+ next.push(/* @__PURE__ */ import_react11.default.createElement(Spacer, {
1692
1779
  key: `${key}_spacer`,
1693
1780
  direction: flexDirection === "row" || flexDirection === "row-reverse" ? "horizontal" : "vertical",
1694
1781
  size: space
@@ -1699,7 +1786,7 @@ function spacedChildren({
1699
1786
  return next;
1700
1787
  }
1701
1788
  __name(spacedChildren, "spacedChildren");
1702
- var Absolute = /* @__PURE__ */ __name(({ children }) => /* @__PURE__ */ import_react12.default.createElement(import_react_native3.View, {
1789
+ var Absolute = /* @__PURE__ */ __name(({ children }) => /* @__PURE__ */ import_react11.default.createElement(import_react_native3.View, {
1703
1790
  style: sheet.fullscreen
1704
1791
  }, children), "Absolute");
1705
1792
  var sheet = import_react_native3.StyleSheet.create({
@@ -1735,6 +1822,9 @@ var createTheme = /* @__PURE__ */ __name((theme) => {
1735
1822
 
1736
1823
  // src/createFont.ts
1737
1824
  var createFont = /* @__PURE__ */ __name((font) => {
1825
+ if (process.env.NODE_ENV === "development") {
1826
+ validateFont(font);
1827
+ }
1738
1828
  const sizeKeys = Object.keys(font.size);
1739
1829
  for (const key in font) {
1740
1830
  if (key === "size" || key === "family")
@@ -1755,6 +1845,9 @@ var createFont = /* @__PURE__ */ __name((font) => {
1755
1845
 
1756
1846
  // src/createTokens.ts
1757
1847
  function createTokens(tokens) {
1848
+ if (process.env.NODE_ENV === "development") {
1849
+ validateTokens(tokens);
1850
+ }
1758
1851
  return setupTokens(tokens);
1759
1852
  }
1760
1853
  __name(createTokens, "createTokens");
@@ -1792,13 +1885,14 @@ function styled(Component, options, staticExtractionOptions) {
1792
1885
  __name(styled, "styled");
1793
1886
 
1794
1887
  // src/helpers/themeable.tsx
1795
- var import_react15 = __toModule(require("react"));
1888
+ var import_react14 = __toModule(require("react"));
1796
1889
 
1797
1890
  // src/views/ThemeInverse.tsx
1798
- var import_react14 = __toModule(require("react"));
1891
+ var import_react13 = __toModule(require("react"));
1799
1892
 
1800
1893
  // src/hooks/useTheme.tsx
1801
- var import_react13 = __toModule(require("react"));
1894
+ var import_use_force_update3 = __toModule(require("@tamagui/use-force-update"));
1895
+ var import_react12 = __toModule(require("react"));
1802
1896
  var areEqualSets = /* @__PURE__ */ __name((a, b) => {
1803
1897
  if (a.size !== b.size)
1804
1898
  return false;
@@ -1810,9 +1904,9 @@ var areEqualSets = /* @__PURE__ */ __name((a, b) => {
1810
1904
  return true;
1811
1905
  }, "areEqualSets");
1812
1906
  var useThemeName = /* @__PURE__ */ __name(() => {
1813
- const parent = (0, import_react13.useContext)(ThemeManagerContext);
1814
- const [name, setName] = (0, import_react13.useState)(parent.name);
1815
- (0, import_react13.useEffect)(() => {
1907
+ const parent = (0, import_react12.useContext)(ThemeManagerContext);
1908
+ const [name, setName] = (0, import_react12.useState)(parent.name);
1909
+ (0, import_react12.useEffect)(() => {
1816
1910
  return parent.onChangeTheme((next) => {
1817
1911
  setName((prev) => {
1818
1912
  if (prev === next)
@@ -1824,13 +1918,13 @@ var useThemeName = /* @__PURE__ */ __name(() => {
1824
1918
  return name || "light";
1825
1919
  }, "useThemeName");
1826
1920
  var useDefaultThemeName = /* @__PURE__ */ __name(() => {
1827
- return (0, import_react13.useContext)(ThemeContext)[GET_DEFAULT_THEME];
1921
+ return (0, import_react12.useContext)(ThemeContext)[GET_DEFAULT_THEME];
1828
1922
  }, "useDefaultThemeName");
1829
1923
  var useTheme = /* @__PURE__ */ __name(() => {
1830
- const forceUpdate = useForceUpdate();
1831
- const manager = (0, import_react13.useContext)(ThemeManagerContext);
1832
- const themes = (0, import_react13.useContext)(ThemeContext);
1833
- const state = (0, import_react13.useRef)();
1924
+ const forceUpdate = (0, import_use_force_update3.useForceUpdate)();
1925
+ const manager = (0, import_react12.useContext)(ThemeManagerContext);
1926
+ const themes = (0, import_react12.useContext)(ThemeContext);
1927
+ const state = (0, import_react12.useRef)();
1834
1928
  if (!state.current) {
1835
1929
  state.current = {
1836
1930
  uuid: {},
@@ -1847,11 +1941,11 @@ var useTheme = /* @__PURE__ */ __name(() => {
1847
1941
  manager.track(st.uuid, st.keys);
1848
1942
  }
1849
1943
  });
1850
- (0, import_react13.useEffect)(() => {
1944
+ (0, import_react12.useEffect)(() => {
1851
1945
  return manager.onUpdate(state.current.uuid, forceUpdate);
1852
1946
  }, []);
1853
1947
  const theme = (manager.name ? themes[manager.name] : themes.light) ?? themes.light;
1854
- return (0, import_react13.useMemo)(() => {
1948
+ return (0, import_react12.useMemo)(() => {
1855
1949
  return new Proxy(theme, {
1856
1950
  get(_, key) {
1857
1951
  const name = manager.name;
@@ -1891,22 +1985,21 @@ var ThemeInverse = /* @__PURE__ */ __name((props) => {
1891
1985
  const themeName = useThemeName();
1892
1986
  const defaultTheme = useDefaultThemeName();
1893
1987
  const name = inversions[themeName] || inversions[defaultTheme] || null;
1894
- console.log("todo fixme invert", { themeName, defaultTheme, next: name });
1895
- return /* @__PURE__ */ import_react14.default.createElement(Theme, {
1988
+ return /* @__PURE__ */ import_react13.default.createElement(Theme, {
1896
1989
  name
1897
1990
  }, props.children);
1898
1991
  }, "ThemeInverse");
1899
1992
 
1900
1993
  // src/helpers/themeable.tsx
1901
1994
  var themeable = /* @__PURE__ */ __name(function graphql(component) {
1902
- const withThemeComponent = (0, import_react15.forwardRef)(/* @__PURE__ */ __name(function WithTheme(_a4, ref) {
1995
+ const withThemeComponent = (0, import_react14.forwardRef)(/* @__PURE__ */ __name(function WithTheme(_a4, ref) {
1903
1996
  var _b2 = _a4, { themeInverse } = _b2, rest = __objRest(_b2, ["themeInverse"]);
1904
- const el = import_react15.default.createElement(component, __spreadProps(__spreadValues({}, rest), { ref }));
1997
+ const el = import_react14.default.createElement(component, __spreadProps(__spreadValues({}, rest), { ref }));
1905
1998
  if (themeInverse) {
1906
- return /* @__PURE__ */ import_react15.default.createElement(ThemeInverse, null, el);
1999
+ return /* @__PURE__ */ import_react14.default.createElement(ThemeInverse, null, el);
1907
2000
  }
1908
2001
  if (rest.theme) {
1909
- return /* @__PURE__ */ import_react15.default.createElement(Theme, {
2002
+ return /* @__PURE__ */ import_react14.default.createElement(Theme, {
1910
2003
  name: rest.theme || null
1911
2004
  }, el);
1912
2005
  }
@@ -1917,6 +2010,13 @@ var themeable = /* @__PURE__ */ __name(function graphql(component) {
1917
2010
  return withTheme;
1918
2011
  }, "graphql");
1919
2012
 
2013
+ // src/helpers/isTamaguiElement.tsx
2014
+ var import_react15 = __toModule(require("react"));
2015
+ var isTamaguiElement = /* @__PURE__ */ __name((child) => {
2016
+ var _a4;
2017
+ return (0, import_react15.isValidElement)(child) && !!((_a4 = child.type["staticConfig"]) == null ? void 0 : _a4.parsed);
2018
+ }, "isTamaguiElement");
2019
+
1920
2020
  // src/views/Animated.tsx
1921
2021
  var import_react16 = __toModule(require("react"));
1922
2022
  var import_react_native4 = __toModule(require("react-native"));
@@ -2099,27 +2199,4 @@ var Text2 = createComponent({
2099
2199
  cursor: true
2100
2200
  })
2101
2201
  });
2102
-
2103
- // src/views/SafeAreaProvider.tsx
2104
- var import_react17 = __toModule(require("react"));
2105
- var import_react_native5 = __toModule(require("react-native"));
2106
- var import_react_native_safe_area_context = __toModule(require("react-native-safe-area-context"));
2107
- var defaultMetrics = null;
2108
- var SafeAreaProvider = /* @__PURE__ */ __name(({
2109
- initialWindowMetrics,
2110
- children
2111
- }) => {
2112
- if (!initialWindowMetrics && !defaultMetrics) {
2113
- defaultMetrics = import_react_native5.Platform.select({
2114
- web: {
2115
- frame: { x: 0, y: 0, width: 0, height: 0 },
2116
- insets: { top: 0, left: 0, right: 0, bottom: 0 }
2117
- },
2118
- default: import_react_native_safe_area_context.initialWindowMetrics
2119
- });
2120
- }
2121
- return /* @__PURE__ */ import_react17.default.createElement(import_react_native_safe_area_context.SafeAreaProvider, {
2122
- initialMetrics: initialWindowMetrics ?? defaultMetrics
2123
- }, children);
2124
- }, "SafeAreaProvider");
2125
2202
  //# sourceMappingURL=index.cjs.map