@tamagui/core 1.12.2 → 1.13.0

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 (493) hide show
  1. package/dist/cjs/Tamagui.js +77 -0
  2. package/dist/cjs/Tamagui.js.map +7 -0
  3. package/dist/cjs/addTheme.js +78 -0
  4. package/dist/cjs/addTheme.js.map +7 -0
  5. package/dist/cjs/config.js +91 -0
  6. package/dist/cjs/config.js.map +7 -0
  7. package/dist/cjs/constants/constants.js +49 -0
  8. package/dist/cjs/constants/constants.js.map +7 -0
  9. package/dist/cjs/constants/isDevTools.js +37 -0
  10. package/dist/cjs/constants/isDevTools.js.map +7 -0
  11. package/dist/cjs/contexts/ButtonNestingContext.js +30 -0
  12. package/dist/cjs/contexts/ButtonNestingContext.js.map +7 -0
  13. package/dist/cjs/contexts/FontLanguageContext.js +30 -0
  14. package/dist/cjs/contexts/FontLanguageContext.js.map +7 -0
  15. package/dist/cjs/contexts/TextAncestorContext.js +30 -0
  16. package/dist/cjs/contexts/TextAncestorContext.js.map +7 -0
  17. package/dist/cjs/createComponent.js +991 -0
  18. package/dist/cjs/createComponent.js.map +7 -0
  19. package/dist/cjs/createFont.js +69 -0
  20. package/dist/cjs/createFont.js.map +7 -0
  21. package/dist/cjs/createFont.web.test.js +125 -0
  22. package/dist/cjs/createFont.web.test.js.map +7 -0
  23. package/dist/cjs/createShorthands.js +31 -0
  24. package/dist/cjs/createShorthands.js.map +7 -0
  25. package/dist/cjs/createTamagui.js +202 -0
  26. package/dist/cjs/createTamagui.js.map +7 -0
  27. package/dist/cjs/createTheme.js +31 -0
  28. package/dist/cjs/createTheme.js.map +7 -0
  29. package/dist/cjs/createTokens.js +39 -0
  30. package/dist/cjs/createTokens.js.map +7 -0
  31. package/dist/cjs/createTokens.web.test.js +28 -0
  32. package/dist/cjs/createTokens.web.test.js.map +7 -0
  33. package/dist/cjs/createVariable.js +111 -0
  34. package/dist/cjs/createVariable.js.map +7 -0
  35. package/dist/cjs/createVariable.web.test.js +7 -0
  36. package/dist/cjs/createVariable.web.test.js.map +7 -0
  37. package/dist/cjs/createVariables.js +60 -0
  38. package/dist/cjs/createVariables.js.map +7 -0
  39. package/dist/cjs/helpers/RNComponents.js +40 -0
  40. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  41. package/dist/cjs/helpers/ThemeManager.js +234 -0
  42. package/dist/cjs/helpers/ThemeManager.js.map +7 -0
  43. package/dist/cjs/helpers/ThemeManager.test.js +465 -0
  44. package/dist/cjs/helpers/ThemeManager.test.js.map +7 -0
  45. package/dist/cjs/helpers/ThemeManagerContext.js +30 -0
  46. package/dist/cjs/helpers/ThemeManagerContext.js.map +7 -0
  47. package/dist/cjs/helpers/createMediaStyle.js +67 -0
  48. package/dist/cjs/helpers/createMediaStyle.js.map +7 -0
  49. package/dist/cjs/helpers/createPropMapper.js +411 -0
  50. package/dist/cjs/helpers/createPropMapper.js.map +7 -0
  51. package/dist/cjs/helpers/createProxy.js +43 -0
  52. package/dist/cjs/helpers/createProxy.js.map +7 -0
  53. package/dist/cjs/helpers/expandStyle.js +95 -0
  54. package/dist/cjs/helpers/expandStyle.js.map +7 -0
  55. package/dist/cjs/helpers/expandStyles.js +126 -0
  56. package/dist/cjs/helpers/expandStyles.js.map +7 -0
  57. package/dist/cjs/helpers/extendStaticConfig.js +91 -0
  58. package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
  59. package/dist/cjs/helpers/fixNativeShadow.js +30 -0
  60. package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
  61. package/dist/cjs/helpers/getAnimationDriver.js +32 -0
  62. package/dist/cjs/helpers/getAnimationDriver.js.map +7 -0
  63. package/dist/cjs/helpers/getExpandedShorthands.js +40 -0
  64. package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
  65. package/dist/cjs/helpers/getFontLanguage.js +29 -0
  66. package/dist/cjs/helpers/getFontLanguage.js.map +7 -0
  67. package/dist/cjs/helpers/getSplitStyles.js +840 -0
  68. package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
  69. package/dist/cjs/helpers/getStylesAtomic.js +226 -0
  70. package/dist/cjs/helpers/getStylesAtomic.js.map +7 -0
  71. package/dist/cjs/helpers/getStylesAtomic.native.js +35 -0
  72. package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
  73. package/dist/cjs/helpers/getThemeCSSRules.js +110 -0
  74. package/dist/cjs/helpers/getThemeCSSRules.js.map +7 -0
  75. package/dist/cjs/helpers/getThemeCSSRules.native.js +31 -0
  76. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +7 -0
  77. package/dist/cjs/helpers/getVariantExtras.js +92 -0
  78. package/dist/cjs/helpers/getVariantExtras.js.map +7 -0
  79. package/dist/cjs/helpers/insertStyleRule.js +218 -0
  80. package/dist/cjs/helpers/insertStyleRule.js.map +7 -0
  81. package/dist/cjs/helpers/isObj.js +29 -0
  82. package/dist/cjs/helpers/isObj.js.map +7 -0
  83. package/dist/cjs/helpers/isTamaguiComponent.js +32 -0
  84. package/dist/cjs/helpers/isTamaguiComponent.js.map +7 -0
  85. package/dist/cjs/helpers/isTamaguiElement.js +33 -0
  86. package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
  87. package/dist/cjs/helpers/matchMedia.js +42 -0
  88. package/dist/cjs/helpers/matchMedia.js.map +7 -0
  89. package/dist/cjs/helpers/matchMedia.native.js +48 -0
  90. package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
  91. package/dist/cjs/helpers/mergeProps.js +54 -0
  92. package/dist/cjs/helpers/mergeProps.js.map +7 -0
  93. package/dist/cjs/helpers/mergeTransform.js +47 -0
  94. package/dist/cjs/helpers/mergeTransform.js.map +7 -0
  95. package/dist/cjs/helpers/normalizeColor.js +71 -0
  96. package/dist/cjs/helpers/normalizeColor.js.map +7 -0
  97. package/dist/cjs/helpers/normalizeValueWithProperty.js +138 -0
  98. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
  99. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  100. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  101. package/dist/cjs/helpers/pseudoDescriptors.js +53 -0
  102. package/dist/cjs/helpers/pseudoDescriptors.js.map +7 -0
  103. package/dist/cjs/helpers/registerCSSVariable.js +40 -0
  104. package/dist/cjs/helpers/registerCSSVariable.js.map +7 -0
  105. package/dist/cjs/helpers/themeable.js +62 -0
  106. package/dist/cjs/helpers/themeable.js.map +7 -0
  107. package/dist/cjs/helpers/themes.js +78 -0
  108. package/dist/cjs/helpers/themes.js.map +7 -0
  109. package/dist/cjs/helpers/timer.js +35 -0
  110. package/dist/cjs/helpers/timer.js.map +7 -0
  111. package/dist/cjs/helpers/useShallowSetState.js +58 -0
  112. package/dist/cjs/helpers/useShallowSetState.js.map +7 -0
  113. package/dist/cjs/helpers/withStaticProperties.js +32 -0
  114. package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
  115. package/dist/cjs/hooks/getThemeUnwrapped.js +34 -0
  116. package/dist/cjs/hooks/getThemeUnwrapped.js.map +7 -0
  117. package/dist/cjs/hooks/useId.js +29 -0
  118. package/dist/cjs/hooks/useId.js.map +7 -0
  119. package/dist/cjs/hooks/useIsTouchDevice.js +33 -0
  120. package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
  121. package/dist/cjs/hooks/useMedia.js +262 -0
  122. package/dist/cjs/hooks/useMedia.js.map +7 -0
  123. package/dist/cjs/hooks/useSafeRef.js +59 -0
  124. package/dist/cjs/hooks/useSafeRef.js.map +7 -0
  125. package/dist/cjs/hooks/useServerHooks.js +36 -0
  126. package/dist/cjs/hooks/useServerHooks.js.map +7 -0
  127. package/dist/cjs/hooks/useTheme.js +234 -0
  128. package/dist/cjs/hooks/useTheme.js.map +7 -0
  129. package/dist/cjs/hooks/useThemeName.js +52 -0
  130. package/dist/cjs/hooks/useThemeName.js.map +7 -0
  131. package/dist/cjs/insertFont.js +93 -0
  132. package/dist/cjs/insertFont.js.map +7 -0
  133. package/dist/cjs/setupReactNative.js +50 -0
  134. package/dist/cjs/setupReactNative.js.map +7 -0
  135. package/dist/cjs/static.js +20 -0
  136. package/dist/cjs/static.js.map +7 -0
  137. package/dist/cjs/styled.js +95 -0
  138. package/dist/cjs/styled.js.map +7 -0
  139. package/dist/cjs/types-rnw.js +17 -0
  140. package/dist/cjs/types-rnw.js.map +7 -0
  141. package/dist/cjs/types.js +17 -0
  142. package/dist/cjs/types.js.map +7 -0
  143. package/dist/cjs/updateTheme.js +47 -0
  144. package/dist/cjs/updateTheme.js.map +7 -0
  145. package/dist/cjs/views/FontLanguage.js +41 -0
  146. package/dist/cjs/views/FontLanguage.js.map +7 -0
  147. package/dist/cjs/views/FontLanguage.native.js +35 -0
  148. package/dist/cjs/views/FontLanguage.native.js.map +7 -0
  149. package/dist/cjs/views/FontLanguage.types.js +17 -0
  150. package/dist/cjs/views/FontLanguage.types.js.map +7 -0
  151. package/dist/cjs/views/Slot.js +92 -0
  152. package/dist/cjs/views/Slot.js.map +7 -0
  153. package/dist/cjs/views/Stack.js +38 -0
  154. package/dist/cjs/views/Stack.js.map +7 -0
  155. package/dist/cjs/views/Stack.web.test.js +22 -0
  156. package/dist/cjs/views/Stack.web.test.js.map +7 -0
  157. package/dist/cjs/views/TamaguiProvider.js +90 -0
  158. package/dist/cjs/views/TamaguiProvider.js.map +7 -0
  159. package/dist/cjs/views/Text.js +94 -0
  160. package/dist/cjs/views/Text.js.map +7 -0
  161. package/dist/cjs/views/Theme.js +88 -0
  162. package/dist/cjs/views/Theme.js.map +7 -0
  163. package/dist/cjs/views/ThemeProvider.js +70 -0
  164. package/dist/cjs/views/ThemeProvider.js.map +7 -0
  165. package/dist/esm/Tamagui.js +41 -0
  166. package/dist/esm/Tamagui.js.map +7 -0
  167. package/dist/esm/Tamagui.mjs +41 -0
  168. package/dist/esm/Tamagui.mjs.map +7 -0
  169. package/dist/esm/addTheme.js +54 -0
  170. package/dist/esm/addTheme.js.map +7 -0
  171. package/dist/esm/addTheme.mjs +54 -0
  172. package/dist/esm/addTheme.mjs.map +7 -0
  173. package/dist/esm/config.js +58 -0
  174. package/dist/esm/config.js.map +7 -0
  175. package/dist/esm/config.mjs +58 -0
  176. package/dist/esm/config.mjs.map +7 -0
  177. package/dist/esm/constants/constants.js +22 -0
  178. package/dist/esm/constants/constants.js.map +7 -0
  179. package/dist/esm/constants/constants.mjs +22 -0
  180. package/dist/esm/constants/constants.mjs.map +7 -0
  181. package/dist/esm/constants/isDevTools.js +13 -0
  182. package/dist/esm/constants/isDevTools.js.map +7 -0
  183. package/dist/esm/constants/isDevTools.mjs +13 -0
  184. package/dist/esm/constants/isDevTools.mjs.map +7 -0
  185. package/dist/esm/contexts/ButtonNestingContext.js +6 -0
  186. package/dist/esm/contexts/ButtonNestingContext.js.map +7 -0
  187. package/dist/esm/contexts/ButtonNestingContext.mjs +6 -0
  188. package/dist/esm/contexts/ButtonNestingContext.mjs.map +7 -0
  189. package/dist/esm/contexts/FontLanguageContext.js +6 -0
  190. package/dist/esm/contexts/FontLanguageContext.js.map +7 -0
  191. package/dist/esm/contexts/FontLanguageContext.mjs +6 -0
  192. package/dist/esm/contexts/FontLanguageContext.mjs.map +7 -0
  193. package/dist/esm/contexts/TextAncestorContext.js +6 -0
  194. package/dist/esm/contexts/TextAncestorContext.js.map +7 -0
  195. package/dist/esm/contexts/TextAncestorContext.mjs +6 -0
  196. package/dist/esm/contexts/TextAncestorContext.mjs.map +7 -0
  197. package/dist/esm/createComponent.js +973 -0
  198. package/dist/esm/createComponent.js.map +7 -0
  199. package/dist/esm/createComponent.mjs +973 -0
  200. package/dist/esm/createComponent.mjs.map +7 -0
  201. package/dist/esm/createFont.js +45 -0
  202. package/dist/esm/createFont.js.map +7 -0
  203. package/dist/esm/createFont.mjs +45 -0
  204. package/dist/esm/createFont.mjs.map +7 -0
  205. package/dist/esm/createFont.web.test.js +124 -0
  206. package/dist/esm/createFont.web.test.js.map +7 -0
  207. package/dist/esm/createFont.web.test.mjs +124 -0
  208. package/dist/esm/createFont.web.test.mjs.map +7 -0
  209. package/dist/esm/createShorthands.js +7 -0
  210. package/dist/esm/createShorthands.js.map +7 -0
  211. package/dist/esm/createShorthands.mjs +7 -0
  212. package/dist/esm/createShorthands.mjs.map +7 -0
  213. package/dist/esm/createTamagui.js +186 -0
  214. package/dist/esm/createTamagui.js.map +7 -0
  215. package/dist/esm/createTamagui.mjs +186 -0
  216. package/dist/esm/createTamagui.mjs.map +7 -0
  217. package/dist/esm/createTheme.js +7 -0
  218. package/dist/esm/createTheme.js.map +7 -0
  219. package/dist/esm/createTheme.mjs +7 -0
  220. package/dist/esm/createTheme.mjs.map +7 -0
  221. package/dist/esm/createTokens.js +15 -0
  222. package/dist/esm/createTokens.js.map +7 -0
  223. package/dist/esm/createTokens.mjs +15 -0
  224. package/dist/esm/createTokens.mjs.map +7 -0
  225. package/dist/esm/createTokens.web.test.js +27 -0
  226. package/dist/esm/createTokens.web.test.js.map +7 -0
  227. package/dist/esm/createTokens.web.test.mjs +27 -0
  228. package/dist/esm/createTokens.web.test.mjs.map +7 -0
  229. package/dist/esm/createVariable.js +78 -0
  230. package/dist/esm/createVariable.js.map +7 -0
  231. package/dist/esm/createVariable.mjs +78 -0
  232. package/dist/esm/createVariable.mjs.map +7 -0
  233. package/dist/esm/createVariable.web.test.js +6 -0
  234. package/dist/esm/createVariable.web.test.js.map +7 -0
  235. package/dist/esm/createVariable.web.test.mjs +6 -0
  236. package/dist/esm/createVariable.web.test.mjs.map +7 -0
  237. package/dist/esm/createVariables.js +35 -0
  238. package/dist/esm/createVariables.js.map +7 -0
  239. package/dist/esm/createVariables.mjs +35 -0
  240. package/dist/esm/createVariables.mjs.map +7 -0
  241. package/dist/esm/helpers/RNComponents.js +16 -0
  242. package/dist/esm/helpers/RNComponents.js.map +7 -0
  243. package/dist/esm/helpers/RNComponents.mjs +16 -0
  244. package/dist/esm/helpers/RNComponents.mjs.map +7 -0
  245. package/dist/esm/helpers/ThemeManager.js +209 -0
  246. package/dist/esm/helpers/ThemeManager.js.map +7 -0
  247. package/dist/esm/helpers/ThemeManager.mjs +209 -0
  248. package/dist/esm/helpers/ThemeManager.mjs.map +7 -0
  249. package/dist/esm/helpers/ThemeManager.test.js +464 -0
  250. package/dist/esm/helpers/ThemeManager.test.js.map +7 -0
  251. package/dist/esm/helpers/ThemeManager.test.mjs +464 -0
  252. package/dist/esm/helpers/ThemeManager.test.mjs.map +7 -0
  253. package/dist/esm/helpers/ThemeManagerContext.js +6 -0
  254. package/dist/esm/helpers/ThemeManagerContext.js.map +7 -0
  255. package/dist/esm/helpers/ThemeManagerContext.mjs +6 -0
  256. package/dist/esm/helpers/ThemeManagerContext.mjs.map +7 -0
  257. package/dist/esm/helpers/createMediaStyle.js +42 -0
  258. package/dist/esm/helpers/createMediaStyle.js.map +7 -0
  259. package/dist/esm/helpers/createMediaStyle.mjs +42 -0
  260. package/dist/esm/helpers/createMediaStyle.mjs.map +7 -0
  261. package/dist/esm/helpers/createPropMapper.js +384 -0
  262. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  263. package/dist/esm/helpers/createPropMapper.mjs +384 -0
  264. package/dist/esm/helpers/createPropMapper.mjs.map +7 -0
  265. package/dist/esm/helpers/createProxy.js +19 -0
  266. package/dist/esm/helpers/createProxy.js.map +7 -0
  267. package/dist/esm/helpers/createProxy.mjs +19 -0
  268. package/dist/esm/helpers/createProxy.mjs.map +7 -0
  269. package/dist/esm/helpers/expandStyle.js +71 -0
  270. package/dist/esm/helpers/expandStyle.js.map +7 -0
  271. package/dist/esm/helpers/expandStyle.mjs +71 -0
  272. package/dist/esm/helpers/expandStyle.mjs.map +7 -0
  273. package/dist/esm/helpers/expandStyles.js +90 -0
  274. package/dist/esm/helpers/expandStyles.js.map +7 -0
  275. package/dist/esm/helpers/expandStyles.mjs +90 -0
  276. package/dist/esm/helpers/expandStyles.mjs.map +7 -0
  277. package/dist/esm/helpers/extendStaticConfig.js +66 -0
  278. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  279. package/dist/esm/helpers/extendStaticConfig.mjs +66 -0
  280. package/dist/esm/helpers/extendStaticConfig.mjs.map +7 -0
  281. package/dist/esm/helpers/fixNativeShadow.js +6 -0
  282. package/dist/esm/helpers/fixNativeShadow.js.map +7 -0
  283. package/dist/esm/helpers/fixNativeShadow.mjs +6 -0
  284. package/dist/esm/helpers/fixNativeShadow.mjs.map +7 -0
  285. package/dist/esm/helpers/getAnimationDriver.js +8 -0
  286. package/dist/esm/helpers/getAnimationDriver.js.map +7 -0
  287. package/dist/esm/helpers/getAnimationDriver.mjs +8 -0
  288. package/dist/esm/helpers/getAnimationDriver.mjs.map +7 -0
  289. package/dist/esm/helpers/getExpandedShorthands.js +16 -0
  290. package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
  291. package/dist/esm/helpers/getExpandedShorthands.mjs +16 -0
  292. package/dist/esm/helpers/getExpandedShorthands.mjs.map +7 -0
  293. package/dist/esm/helpers/getFontLanguage.js +5 -0
  294. package/dist/esm/helpers/getFontLanguage.js.map +7 -0
  295. package/dist/esm/helpers/getFontLanguage.mjs +5 -0
  296. package/dist/esm/helpers/getFontLanguage.mjs.map +7 -0
  297. package/dist/esm/helpers/getSplitStyles.js +839 -0
  298. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  299. package/dist/esm/helpers/getSplitStyles.mjs +839 -0
  300. package/dist/esm/helpers/getSplitStyles.mjs.map +7 -0
  301. package/dist/esm/helpers/getStylesAtomic.js +200 -0
  302. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  303. package/dist/esm/helpers/getStylesAtomic.mjs +200 -0
  304. package/dist/esm/helpers/getStylesAtomic.mjs.map +7 -0
  305. package/dist/esm/helpers/getStylesAtomic.native.js +10 -0
  306. package/dist/esm/helpers/getStylesAtomic.native.js.map +7 -0
  307. package/dist/esm/helpers/getStylesAtomic.native.mjs +10 -0
  308. package/dist/esm/helpers/getStylesAtomic.native.mjs.map +7 -0
  309. package/dist/esm/helpers/getThemeCSSRules.js +86 -0
  310. package/dist/esm/helpers/getThemeCSSRules.js.map +7 -0
  311. package/dist/esm/helpers/getThemeCSSRules.mjs +86 -0
  312. package/dist/esm/helpers/getThemeCSSRules.mjs.map +7 -0
  313. package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
  314. package/dist/esm/helpers/getThemeCSSRules.native.js.map +7 -0
  315. package/dist/esm/helpers/getThemeCSSRules.native.mjs +7 -0
  316. package/dist/esm/helpers/getThemeCSSRules.native.mjs.map +7 -0
  317. package/dist/esm/helpers/getVariantExtras.js +67 -0
  318. package/dist/esm/helpers/getVariantExtras.js.map +7 -0
  319. package/dist/esm/helpers/getVariantExtras.mjs +67 -0
  320. package/dist/esm/helpers/getVariantExtras.mjs.map +7 -0
  321. package/dist/esm/helpers/insertStyleRule.js +186 -0
  322. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  323. package/dist/esm/helpers/insertStyleRule.mjs +186 -0
  324. package/dist/esm/helpers/insertStyleRule.mjs.map +7 -0
  325. package/dist/esm/helpers/isObj.js +5 -0
  326. package/dist/esm/helpers/isObj.js.map +7 -0
  327. package/dist/esm/helpers/isObj.mjs +5 -0
  328. package/dist/esm/helpers/isObj.mjs.map +7 -0
  329. package/dist/esm/helpers/isTamaguiComponent.js +8 -0
  330. package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
  331. package/dist/esm/helpers/isTamaguiComponent.mjs +8 -0
  332. package/dist/esm/helpers/isTamaguiComponent.mjs.map +7 -0
  333. package/dist/esm/helpers/isTamaguiElement.js +9 -0
  334. package/dist/esm/helpers/isTamaguiElement.js.map +7 -0
  335. package/dist/esm/helpers/isTamaguiElement.mjs +9 -0
  336. package/dist/esm/helpers/isTamaguiElement.mjs.map +7 -0
  337. package/dist/esm/helpers/matchMedia.js +17 -0
  338. package/dist/esm/helpers/matchMedia.js.map +7 -0
  339. package/dist/esm/helpers/matchMedia.mjs +17 -0
  340. package/dist/esm/helpers/matchMedia.mjs.map +7 -0
  341. package/dist/esm/helpers/matchMedia.native.js +23 -0
  342. package/dist/esm/helpers/matchMedia.native.js.map +7 -0
  343. package/dist/esm/helpers/matchMedia.native.mjs +23 -0
  344. package/dist/esm/helpers/matchMedia.native.mjs.map +7 -0
  345. package/dist/esm/helpers/mergeProps.js +30 -0
  346. package/dist/esm/helpers/mergeProps.js.map +7 -0
  347. package/dist/esm/helpers/mergeProps.mjs +30 -0
  348. package/dist/esm/helpers/mergeProps.mjs.map +7 -0
  349. package/dist/esm/helpers/mergeTransform.js +21 -0
  350. package/dist/esm/helpers/mergeTransform.js.map +7 -0
  351. package/dist/esm/helpers/mergeTransform.mjs +21 -0
  352. package/dist/esm/helpers/mergeTransform.mjs.map +7 -0
  353. package/dist/esm/helpers/normalizeColor.js +36 -0
  354. package/dist/esm/helpers/normalizeColor.js.map +7 -0
  355. package/dist/esm/helpers/normalizeColor.mjs +36 -0
  356. package/dist/esm/helpers/normalizeColor.mjs.map +7 -0
  357. package/dist/esm/helpers/normalizeValueWithProperty.js +113 -0
  358. package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
  359. package/dist/esm/helpers/normalizeValueWithProperty.mjs +113 -0
  360. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +7 -0
  361. package/dist/esm/helpers/proxyThemeVariables.js +16 -0
  362. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  363. package/dist/esm/helpers/proxyThemeVariables.mjs +16 -0
  364. package/dist/esm/helpers/proxyThemeVariables.mjs.map +7 -0
  365. package/dist/esm/helpers/pseudoDescriptors.js +29 -0
  366. package/dist/esm/helpers/pseudoDescriptors.js.map +7 -0
  367. package/dist/esm/helpers/pseudoDescriptors.mjs +29 -0
  368. package/dist/esm/helpers/pseudoDescriptors.mjs.map +7 -0
  369. package/dist/esm/helpers/registerCSSVariable.js +14 -0
  370. package/dist/esm/helpers/registerCSSVariable.js.map +7 -0
  371. package/dist/esm/helpers/registerCSSVariable.mjs +14 -0
  372. package/dist/esm/helpers/registerCSSVariable.mjs.map +7 -0
  373. package/dist/esm/helpers/themeable.js +28 -0
  374. package/dist/esm/helpers/themeable.js.map +7 -0
  375. package/dist/esm/helpers/themeable.mjs +28 -0
  376. package/dist/esm/helpers/themeable.mjs.map +7 -0
  377. package/dist/esm/helpers/themes.js +53 -0
  378. package/dist/esm/helpers/themes.js.map +7 -0
  379. package/dist/esm/helpers/themes.mjs +53 -0
  380. package/dist/esm/helpers/themes.mjs.map +7 -0
  381. package/dist/esm/helpers/timer.js +11 -0
  382. package/dist/esm/helpers/timer.js.map +7 -0
  383. package/dist/esm/helpers/timer.mjs +11 -0
  384. package/dist/esm/helpers/timer.mjs.map +7 -0
  385. package/dist/esm/helpers/useShallowSetState.js +34 -0
  386. package/dist/esm/helpers/useShallowSetState.js.map +7 -0
  387. package/dist/esm/helpers/useShallowSetState.mjs +34 -0
  388. package/dist/esm/helpers/useShallowSetState.mjs.map +7 -0
  389. package/dist/esm/helpers/withStaticProperties.js +8 -0
  390. package/dist/esm/helpers/withStaticProperties.js.map +7 -0
  391. package/dist/esm/helpers/withStaticProperties.mjs +8 -0
  392. package/dist/esm/helpers/withStaticProperties.mjs.map +7 -0
  393. package/dist/esm/hooks/getThemeUnwrapped.js +9 -0
  394. package/dist/esm/hooks/getThemeUnwrapped.js.map +7 -0
  395. package/dist/esm/hooks/getThemeUnwrapped.mjs +9 -0
  396. package/dist/esm/hooks/getThemeUnwrapped.mjs.map +7 -0
  397. package/dist/esm/hooks/useId.js +5 -0
  398. package/dist/esm/hooks/useId.js.map +7 -0
  399. package/dist/esm/hooks/useId.mjs +5 -0
  400. package/dist/esm/hooks/useId.mjs.map +7 -0
  401. package/dist/esm/hooks/useIsTouchDevice.js +9 -0
  402. package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
  403. package/dist/esm/hooks/useIsTouchDevice.mjs +9 -0
  404. package/dist/esm/hooks/useIsTouchDevice.mjs.map +7 -0
  405. package/dist/esm/hooks/useMedia.js +224 -0
  406. package/dist/esm/hooks/useMedia.js.map +7 -0
  407. package/dist/esm/hooks/useMedia.mjs +224 -0
  408. package/dist/esm/hooks/useMedia.mjs.map +7 -0
  409. package/dist/esm/hooks/useSafeRef.js +35 -0
  410. package/dist/esm/hooks/useSafeRef.js.map +7 -0
  411. package/dist/esm/hooks/useSafeRef.mjs +35 -0
  412. package/dist/esm/hooks/useSafeRef.mjs.map +7 -0
  413. package/dist/esm/hooks/useServerHooks.js +11 -0
  414. package/dist/esm/hooks/useServerHooks.js.map +7 -0
  415. package/dist/esm/hooks/useServerHooks.mjs +11 -0
  416. package/dist/esm/hooks/useServerHooks.mjs.map +7 -0
  417. package/dist/esm/hooks/useTheme.js +209 -0
  418. package/dist/esm/hooks/useTheme.js.map +7 -0
  419. package/dist/esm/hooks/useTheme.mjs +209 -0
  420. package/dist/esm/hooks/useTheme.mjs.map +7 -0
  421. package/dist/esm/hooks/useThemeName.js +28 -0
  422. package/dist/esm/hooks/useThemeName.js.map +7 -0
  423. package/dist/esm/hooks/useThemeName.mjs +28 -0
  424. package/dist/esm/hooks/useThemeName.mjs.map +7 -0
  425. package/dist/esm/insertFont.js +67 -0
  426. package/dist/esm/insertFont.js.map +7 -0
  427. package/dist/esm/insertFont.mjs +67 -0
  428. package/dist/esm/insertFont.mjs.map +7 -0
  429. package/dist/esm/setupReactNative.js +24 -0
  430. package/dist/esm/setupReactNative.js.map +7 -0
  431. package/dist/esm/setupReactNative.mjs +24 -0
  432. package/dist/esm/setupReactNative.mjs.map +7 -0
  433. package/dist/esm/static.js +3 -0
  434. package/dist/esm/static.js.map +7 -0
  435. package/dist/esm/static.mjs +3 -0
  436. package/dist/esm/static.mjs.map +7 -0
  437. package/dist/esm/styled.js +71 -0
  438. package/dist/esm/styled.js.map +7 -0
  439. package/dist/esm/styled.mjs +71 -0
  440. package/dist/esm/styled.mjs.map +7 -0
  441. package/dist/esm/types-rnw.js +1 -0
  442. package/dist/esm/types-rnw.js.map +7 -0
  443. package/dist/esm/types-rnw.mjs +1 -0
  444. package/dist/esm/types-rnw.mjs.map +7 -0
  445. package/dist/esm/types.js +1 -0
  446. package/dist/esm/types.js.map +7 -0
  447. package/dist/esm/types.mjs +1 -0
  448. package/dist/esm/types.mjs.map +7 -0
  449. package/dist/esm/updateTheme.js +23 -0
  450. package/dist/esm/updateTheme.js.map +7 -0
  451. package/dist/esm/updateTheme.mjs +23 -0
  452. package/dist/esm/updateTheme.mjs.map +7 -0
  453. package/dist/esm/views/FontLanguage.js +17 -0
  454. package/dist/esm/views/FontLanguage.js.map +7 -0
  455. package/dist/esm/views/FontLanguage.mjs +17 -0
  456. package/dist/esm/views/FontLanguage.mjs.map +7 -0
  457. package/dist/esm/views/FontLanguage.native.js +11 -0
  458. package/dist/esm/views/FontLanguage.native.js.map +7 -0
  459. package/dist/esm/views/FontLanguage.native.mjs +11 -0
  460. package/dist/esm/views/FontLanguage.native.mjs.map +7 -0
  461. package/dist/esm/views/FontLanguage.types.js +1 -0
  462. package/dist/esm/views/FontLanguage.types.js.map +7 -0
  463. package/dist/esm/views/FontLanguage.types.mjs +1 -0
  464. package/dist/esm/views/FontLanguage.types.mjs.map +7 -0
  465. package/dist/esm/views/Slot.js +71 -0
  466. package/dist/esm/views/Slot.js.map +7 -0
  467. package/dist/esm/views/Slot.mjs +71 -0
  468. package/dist/esm/views/Slot.mjs.map +7 -0
  469. package/dist/esm/views/Stack.js +14 -0
  470. package/dist/esm/views/Stack.js.map +7 -0
  471. package/dist/esm/views/Stack.mjs +14 -0
  472. package/dist/esm/views/Stack.mjs.map +7 -0
  473. package/dist/esm/views/Stack.web.test.js +21 -0
  474. package/dist/esm/views/Stack.web.test.js.map +7 -0
  475. package/dist/esm/views/Stack.web.test.mjs +21 -0
  476. package/dist/esm/views/Stack.web.test.mjs.map +7 -0
  477. package/dist/esm/views/TamaguiProvider.js +56 -0
  478. package/dist/esm/views/TamaguiProvider.js.map +7 -0
  479. package/dist/esm/views/TamaguiProvider.mjs +56 -0
  480. package/dist/esm/views/TamaguiProvider.mjs.map +7 -0
  481. package/dist/esm/views/Text.js +70 -0
  482. package/dist/esm/views/Text.js.map +7 -0
  483. package/dist/esm/views/Text.mjs +70 -0
  484. package/dist/esm/views/Text.mjs.map +7 -0
  485. package/dist/esm/views/Theme.js +63 -0
  486. package/dist/esm/views/Theme.js.map +7 -0
  487. package/dist/esm/views/Theme.mjs +63 -0
  488. package/dist/esm/views/Theme.mjs.map +7 -0
  489. package/dist/esm/views/ThemeProvider.js +45 -0
  490. package/dist/esm/views/ThemeProvider.js.map +7 -0
  491. package/dist/esm/views/ThemeProvider.mjs +45 -0
  492. package/dist/esm/views/ThemeProvider.mjs.map +7 -0
  493. package/package.json +6 -6
@@ -0,0 +1,42 @@
1
+ import { mediaObjectToString } from "../hooks/useMedia";
2
+ const MEDIA_SEP = "_";
3
+ let prefixes = null;
4
+ let selectors = null;
5
+ const createMediaStyle = ({ property, identifier, rules }, mediaKey, mediaQueries, negate) => {
6
+ if (!(prefixes && selectors)) {
7
+ const mediaKeys = Object.keys(mediaQueries);
8
+ prefixes = Object.fromEntries(
9
+ mediaKeys.map((key, index) => [key, new Array(index + 1).fill(":root").join("")])
10
+ );
11
+ selectors = Object.fromEntries(
12
+ mediaKeys.map((key) => [key, mediaObjectToString(mediaQueries[key])])
13
+ );
14
+ }
15
+ const precendencePrefix = prefixes[mediaKey];
16
+ const mediaSelector = selectors[mediaKey];
17
+ const negKey = negate ? "0" : "";
18
+ const ogPrefix = identifier.slice(0, identifier.indexOf("-") + 1);
19
+ const nextIdentifier = `${identifier.replace(
20
+ ogPrefix,
21
+ `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`
22
+ )}`;
23
+ const screenStr = negate ? "not all and" : "";
24
+ const mediaQuery = `${screenStr} ${mediaSelector}`;
25
+ const styleInner = rules.map((rule) => rule.replace(identifier, nextIdentifier)).join(";");
26
+ let styleRule = "";
27
+ if (styleInner.includes("@media")) {
28
+ styleRule = styleInner.replace("{", ` and ${mediaQuery} {`);
29
+ } else {
30
+ styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`;
31
+ }
32
+ return {
33
+ property,
34
+ rules: [styleRule],
35
+ identifier: nextIdentifier
36
+ };
37
+ };
38
+ export {
39
+ MEDIA_SEP,
40
+ createMediaStyle
41
+ };
42
+ //# sourceMappingURL=createMediaStyle.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/createMediaStyle.ts"],
4
+ "sourcesContent": ["import { StyleObject } from '@tamagui/helpers'\n\nimport { mediaObjectToString } from '../hooks/useMedia'\nimport { MediaQueries } from '../types'\nimport { PartialStyleObject } from './insertStyleRule'\n\n// TODO have this be used by extractMediaStyle in tamagui static\n// not synced to static/constants for now\nexport const MEDIA_SEP = '_'\n\nlet prefixes: Record<string, string> | null = null\nlet selectors: Record<string, string> | null = null\n\nexport const createMediaStyle = (\n { property, identifier, rules }: StyleObject,\n mediaKey: string,\n mediaQueries: MediaQueries,\n negate?: boolean\n): PartialStyleObject => {\n if (!(prefixes && selectors)) {\n // TODO move this into useMedia calc once there and unify w getMediaImportance\n const mediaKeys = Object.keys(mediaQueries)\n prefixes = Object.fromEntries(\n mediaKeys.map((key, index) => [key, new Array(index + 1).fill(':root').join('')])\n )\n selectors = Object.fromEntries(\n mediaKeys.map((key) => [key, mediaObjectToString(mediaQueries[key])])\n )\n }\n const precendencePrefix = prefixes[mediaKey]\n const mediaSelector = selectors[mediaKey]\n const negKey = negate ? '0' : ''\n const ogPrefix = identifier.slice(0, identifier.indexOf('-') + 1)\n const nextIdentifier = `${identifier.replace(\n ogPrefix,\n `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`\n )}`\n const screenStr = negate ? 'not all and' : ''\n const mediaQuery = `${screenStr} ${mediaSelector}`\n const styleInner = rules\n .map((rule) => rule.replace(identifier, nextIdentifier))\n .join(';')\n // combines media queries if they already exist\n let styleRule = ''\n if (styleInner.includes('@media')) {\n // combine\n styleRule = styleInner.replace('{', ` and ${mediaQuery} {`)\n } else {\n styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`\n }\n return {\n property,\n rules: [styleRule],\n identifier: nextIdentifier,\n }\n}\n"],
5
+ "mappings": "AAEA,SAAS,2BAA2B;AAM7B,MAAM,YAAY;AAEzB,IAAI,WAA0C;AAC9C,IAAI,YAA2C;AAExC,MAAM,mBAAmB,CAC9B,EAAE,UAAU,YAAY,MAAM,GAC9B,UACA,cACA,WACuB;AACvB,MAAI,EAAE,YAAY,YAAY;AAE5B,UAAM,YAAY,OAAO,KAAK,YAAY;AAC1C,eAAW,OAAO;AAAA,MAChB,UAAU,IAAI,CAAC,KAAK,UAAU,CAAC,KAAK,IAAI,MAAM,QAAQ,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAAA,IAClF;AACA,gBAAY,OAAO;AAAA,MACjB,UAAU,IAAI,CAAC,QAAQ,CAAC,KAAK,oBAAoB,aAAa,GAAG,CAAC,CAAC,CAAC;AAAA,IACtE;AAAA,EACF;AACA,QAAM,oBAAoB,SAAS,QAAQ;AAC3C,QAAM,gBAAgB,UAAU,QAAQ;AACxC,QAAM,SAAS,SAAS,MAAM;AAC9B,QAAM,WAAW,WAAW,MAAM,GAAG,WAAW,QAAQ,GAAG,IAAI,CAAC;AAChE,QAAM,iBAAiB,GAAG,WAAW;AAAA,IACnC;AAAA,IACA,GAAG,WAAW,YAAY,WAAW,SAAS;AAAA,EAChD;AACA,QAAM,YAAY,SAAS,gBAAgB;AAC3C,QAAM,aAAa,GAAG,aAAa;AACnC,QAAM,aAAa,MAChB,IAAI,CAAC,SAAS,KAAK,QAAQ,YAAY,cAAc,CAAC,EACtD,KAAK,GAAG;AAEX,MAAI,YAAY;AAChB,MAAI,WAAW,SAAS,QAAQ,GAAG;AAEjC,gBAAY,WAAW,QAAQ,KAAK,QAAQ,cAAc;AAAA,EAC5D,OAAO;AACL,gBAAY,UAAU,gBAAgB,qBAAqB;AAAA,EAC7D;AACA,SAAO;AAAA,IACL;AAAA,IACA,OAAO,CAAC,SAAS;AAAA,IACjB,YAAY;AAAA,EACd;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,384 @@
1
+ import { isWeb } from "@tamagui/constants";
2
+ import { getConfig } from "../config";
3
+ import { isDevTools } from "../constants/isDevTools";
4
+ import { getVariableValue, isVariable } from "../createVariable";
5
+ import { expandStyle } from "./expandStyle";
6
+ import { expandStyles } from "./expandStyles";
7
+ import { getFontsForLanguage, getVariantExtras } from "./getVariantExtras";
8
+ import { isObj } from "./isObj";
9
+ import { mergeProps } from "./mergeProps";
10
+ const getReturnVariablesAs = (props, state) => {
11
+ return !!props.animation || state.resolveVariablesAs === "value" ? isWeb ? "non-color-value" : "value" : "auto";
12
+ };
13
+ const createPropMapper = (staticConfig) => {
14
+ const variants = staticConfig.variants || {};
15
+ const defaultProps = mergeProps(staticConfig.defaultProps || {}, {}, false)[0];
16
+ let conf;
17
+ const mapper = (key, value, theme, propsIn, state, languageContext, avoidDefaultProps = false, debug) => {
18
+ conf ||= getConfig();
19
+ const props = state.fallbackProps || propsIn;
20
+ const returnVariablesAs = getReturnVariablesAs(props, state);
21
+ const fontFamily = props[conf.inverseShorthands.fontFamily] || props.fontFamily || defaultProps.fontFamily || propsIn.fontFamily || "$body";
22
+ const variantValue = resolveVariants(
23
+ key,
24
+ value,
25
+ props,
26
+ defaultProps,
27
+ theme,
28
+ variants,
29
+ fontFamily,
30
+ conf,
31
+ returnVariablesAs,
32
+ staticConfig,
33
+ "",
34
+ languageContext,
35
+ avoidDefaultProps,
36
+ debug
37
+ );
38
+ if (variantValue) {
39
+ return variantValue;
40
+ }
41
+ let shouldReturn = value !== void 0 && value !== null;
42
+ if (key in conf.shorthands) {
43
+ shouldReturn = true;
44
+ key = conf.shorthands[key];
45
+ }
46
+ if (value) {
47
+ if (value[0] === "$") {
48
+ value = getToken(
49
+ key,
50
+ value,
51
+ conf,
52
+ theme,
53
+ fontFamily,
54
+ languageContext,
55
+ returnVariablesAs,
56
+ debug
57
+ );
58
+ } else if (isVariable(value)) {
59
+ value = resolveVariableValue(key, value, returnVariablesAs);
60
+ }
61
+ }
62
+ if (shouldReturn) {
63
+ return expandStyle(key, value) || [[key, value]];
64
+ }
65
+ };
66
+ return mapper;
67
+ };
68
+ const resolveVariants = (key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, languageContext, avoidDefaultProps = false, debug) => {
69
+ var _a;
70
+ const variant = variants == null ? void 0 : variants[key];
71
+ if (!variant || value === void 0) {
72
+ return;
73
+ }
74
+ let variantValue = getVariantDefinition(variant, key, value, conf);
75
+ if (!variantValue) {
76
+ if (process.env.NODE_ENV === "development") {
77
+ if ((_a = staticConfig.validStyles) == null ? void 0 : _a[key]) {
78
+ return null;
79
+ }
80
+ if (value === false) {
81
+ return null;
82
+ }
83
+ const name = staticConfig.componentName || "[UnnamedComponent]";
84
+ console.warn(
85
+ `No variant found: ${name} has variant "${key}", but no matching value "${value}"`
86
+ );
87
+ }
88
+ return;
89
+ }
90
+ if (typeof variantValue === "function") {
91
+ const fn = variantValue;
92
+ variantValue = fn(
93
+ value,
94
+ getVariantExtras(props, languageContext, theme, defaultProps, avoidDefaultProps)
95
+ );
96
+ }
97
+ let fontFamilyResult;
98
+ if (isObj(variantValue)) {
99
+ const fontFamilyUpdate = variantValue.fontFamily || variantValue[conf.inverseShorthands.fontFamily];
100
+ if (fontFamilyUpdate) {
101
+ fontFamilyResult = getFontFamilyFromNameOrVariable(fontFamilyUpdate, conf);
102
+ }
103
+ variantValue = resolveTokensAndVariants(
104
+ key,
105
+ variantValue,
106
+ props,
107
+ defaultProps,
108
+ theme,
109
+ variants,
110
+ fontFamilyResult || fontFamily,
111
+ conf,
112
+ returnVariablesAs,
113
+ staticConfig,
114
+ parentVariantKey,
115
+ languageContext,
116
+ avoidDefaultProps,
117
+ debug
118
+ );
119
+ }
120
+ if (variantValue) {
121
+ const next = Object.entries(expandStyles(variantValue));
122
+ if (fontFamilyResult && fontFamilyResult[0] === "$") {
123
+ fontFamilyCache.set(next, getVariableValue(fontFamilyResult));
124
+ }
125
+ return next;
126
+ }
127
+ };
128
+ function getFontFamilyFromNameOrVariable(input, conf) {
129
+ if (isVariable(input)) {
130
+ const val = variableToFontNameCache.get(input);
131
+ if (val) {
132
+ return val;
133
+ } else {
134
+ for (const key in conf.fontsParsed) {
135
+ const familyVariable = conf.fontsParsed[key].family;
136
+ if (isVariable(familyVariable)) {
137
+ variableToFontNameCache.set(familyVariable, key);
138
+ if (familyVariable === input) {
139
+ return key;
140
+ }
141
+ }
142
+ }
143
+ }
144
+ } else if (typeof input === "string") {
145
+ if ((input == null ? void 0 : input[0]) === "$") {
146
+ return input;
147
+ } else {
148
+ if (process.env.NODE_ENV === "development") {
149
+ console.log("[tamagui] should map back", input);
150
+ }
151
+ }
152
+ }
153
+ }
154
+ const variableToFontNameCache = /* @__PURE__ */ new WeakMap();
155
+ const fontFamilyCache = /* @__PURE__ */ new WeakMap();
156
+ const getPropMappedFontFamily = (expanded) => {
157
+ return expanded && fontFamilyCache.get(expanded);
158
+ };
159
+ const resolveTokensAndVariants = (key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, languageContext, avoidDefaultProps, debug) => {
160
+ var _a;
161
+ const res = {};
162
+ for (const rKey in value) {
163
+ const fKey = conf.shorthands[rKey] || rKey;
164
+ const val = value[rKey];
165
+ if (isVariable(val)) {
166
+ res[fKey] = !isWeb || returnVariablesAs === "value" ? val.val : val.variable;
167
+ } else if (variants[fKey]) {
168
+ if (parentVariantKey === key) {
169
+ res[fKey] = val;
170
+ } else {
171
+ Object.assign(
172
+ res,
173
+ Object.fromEntries(
174
+ resolveVariants(
175
+ fKey,
176
+ val,
177
+ props,
178
+ defaultProps,
179
+ theme,
180
+ variants,
181
+ fontFamily,
182
+ conf,
183
+ returnVariablesAs,
184
+ staticConfig,
185
+ key,
186
+ languageContext,
187
+ avoidDefaultProps,
188
+ debug
189
+ )
190
+ )
191
+ );
192
+ }
193
+ } else if (typeof val === "string") {
194
+ const fVal = val[0] === "$" ? getToken(
195
+ fKey,
196
+ val,
197
+ conf,
198
+ theme,
199
+ fontFamily,
200
+ languageContext,
201
+ returnVariablesAs,
202
+ debug
203
+ ) : val;
204
+ res[fKey] = fVal;
205
+ } else {
206
+ if (isObj(val)) {
207
+ res[fKey] = resolveTokensAndVariants(
208
+ fKey,
209
+ val,
210
+ props,
211
+ defaultProps,
212
+ theme,
213
+ variants,
214
+ fontFamily,
215
+ conf,
216
+ returnVariablesAs,
217
+ staticConfig,
218
+ key,
219
+ languageContext,
220
+ avoidDefaultProps,
221
+ debug
222
+ );
223
+ } else {
224
+ res[fKey] = val;
225
+ }
226
+ }
227
+ if (process.env.NODE_ENV === "development") {
228
+ if (debug) {
229
+ if (((_a = res[fKey]) == null ? void 0 : _a[0]) === "$") {
230
+ console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey], theme);
231
+ }
232
+ }
233
+ }
234
+ }
235
+ return res;
236
+ };
237
+ const tokenCats = ["size", "color", "radius", "space", "zIndex"].map((name) => ({
238
+ name,
239
+ spreadName: `...${name}`
240
+ }));
241
+ function getVariantDefinition(variant, key, value, conf) {
242
+ if (typeof variant === "function") {
243
+ return variant;
244
+ }
245
+ if (variant[value]) {
246
+ return variant[value];
247
+ }
248
+ const { tokensParsed } = conf;
249
+ for (const { name, spreadName } of tokenCats) {
250
+ if (variant[spreadName] && value in tokensParsed[name]) {
251
+ return variant[spreadName];
252
+ }
253
+ }
254
+ let fn;
255
+ const type = typeof value;
256
+ if (type === "number") {
257
+ fn = variant[":number"];
258
+ } else if (type === "string") {
259
+ fn = variant[":string"];
260
+ } else if (value === true || value === false) {
261
+ fn = variant[":boolean"];
262
+ }
263
+ return fn || variant["..."] || variant["...size"];
264
+ }
265
+ const fontShorthand = {
266
+ fontSize: "size",
267
+ fontWeight: "weight"
268
+ };
269
+ const getToken = (key, value, conf, theme, fontFamily = "$body", languageContext, resolveAs, debug) => {
270
+ var _a, _b, _c;
271
+ const tokensParsed = conf.tokensParsed;
272
+ const fontsParsed = languageContext ? getFontsForLanguage(conf.fontsParsed, languageContext) : conf.fontsParsed;
273
+ let valOrVar;
274
+ let hasSet = false;
275
+ if (value in theme) {
276
+ valOrVar = theme[value];
277
+ hasSet = true;
278
+ } else {
279
+ switch (key) {
280
+ case "fontFamily":
281
+ valOrVar = ((_a = fontsParsed[value]) == null ? void 0 : _a.family) || value;
282
+ hasSet = true;
283
+ break;
284
+ case "fontSize":
285
+ case "lineHeight":
286
+ case "letterSpacing":
287
+ case "fontWeight":
288
+ valOrVar = ((_c = (_b = fontsParsed[fontFamily]) == null ? void 0 : _b[fontShorthand[key] || key]) == null ? void 0 : _c[value]) || value;
289
+ hasSet = true;
290
+ break;
291
+ }
292
+ for (const cat in tokenCategories) {
293
+ if (key in tokenCategories[cat]) {
294
+ const res = tokensParsed[cat][value];
295
+ if (res) {
296
+ valOrVar = res;
297
+ hasSet = true;
298
+ }
299
+ }
300
+ }
301
+ if (!hasSet) {
302
+ const spaceVar = tokensParsed.space[value];
303
+ if (spaceVar) {
304
+ valOrVar = spaceVar;
305
+ hasSet = true;
306
+ }
307
+ }
308
+ }
309
+ if (process.env.NODE_ENV === "development" && isDevTools && debug === "verbose") {
310
+ console.log(" \uFE52 propMapper getToken", { key, valOrVar, theme, hasSet });
311
+ }
312
+ if (hasSet) {
313
+ return resolveVariableValue(key, valOrVar, resolveAs);
314
+ }
315
+ if (process.env.NODE_ENV === "development") {
316
+ if (value && value[0] === "$") {
317
+ console.warn(
318
+ `\u26A0\uFE0F You passed the value "${value}" to the style property "${key}", but there's no theme or token with the key "${value}". Using theme "${theme.name}".
319
+
320
+ Set the debug prop to true to see more detailed debug information.`
321
+ );
322
+ if (debug) {
323
+ if (isDevTools) {
324
+ console.log("Looked in:", { theme, tokensParsed, fontsParsed });
325
+ }
326
+ }
327
+ return null;
328
+ }
329
+ }
330
+ return value;
331
+ };
332
+ function resolveVariableValue(key, valOrVar, resolveAs = "auto") {
333
+ if (isVariable(valOrVar)) {
334
+ if (resolveAs === "variable") {
335
+ return valOrVar;
336
+ }
337
+ if (resolveAs === "non-color-value") {
338
+ if (isWeb) {
339
+ if (key in tokenCategories.color) {
340
+ return valOrVar.variable;
341
+ }
342
+ }
343
+ return valOrVar.val;
344
+ }
345
+ if (!isWeb || resolveAs === "value") {
346
+ return valOrVar.val;
347
+ }
348
+ return valOrVar.variable;
349
+ }
350
+ return valOrVar;
351
+ }
352
+ const tokenCategories = {
353
+ radius: {
354
+ borderRadius: true,
355
+ borderTopLeftRadius: true,
356
+ borderTopRightRadius: true,
357
+ borderBottomLeftRadius: true,
358
+ borderBottomRightRadius: true
359
+ },
360
+ size: {
361
+ width: true,
362
+ height: true,
363
+ minWidth: true,
364
+ minHeight: true,
365
+ maxWidth: true,
366
+ maxHeight: true
367
+ },
368
+ color: {
369
+ color: true,
370
+ backgroundColor: true,
371
+ borderColor: true,
372
+ borderBottomColor: true,
373
+ borderTopColor: true,
374
+ borderLeftColor: true,
375
+ borderRightColor: true
376
+ }
377
+ };
378
+ export {
379
+ createPropMapper,
380
+ getFontFamilyFromNameOrVariable,
381
+ getPropMappedFontFamily,
382
+ getReturnVariablesAs
383
+ };
384
+ //# sourceMappingURL=createPropMapper.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/createPropMapper.ts"],
4
+ "sourcesContent": ["import { isWeb } from '@tamagui/constants'\n\nimport { getConfig } from '../config'\nimport { isDevTools } from '../constants/isDevTools'\nimport { Variable, getVariableValue, isVariable } from '../createVariable'\nimport {\n DebugProp,\n GenericVariantDefinitions,\n PropMapper,\n SplitStyleState,\n StaticConfigParsed,\n TamaguiInternalConfig,\n VariantSpreadFunction,\n} from '../types'\nimport { LanguageContextType } from '../views/FontLanguage.types'\nimport { expandStyle } from './expandStyle'\nimport { expandStyles } from './expandStyles'\nimport { getFontsForLanguage, getVariantExtras } from './getVariantExtras'\nimport { isObj } from './isObj'\nimport { mergeProps } from './mergeProps'\n\nexport type ResolveVariableTypes =\n | 'auto'\n | 'value'\n | 'variable'\n | 'both'\n | 'non-color-value'\n\nexport const getReturnVariablesAs = (props: any, state: Partial<SplitStyleState>) => {\n return !!props.animation || state.resolveVariablesAs === 'value'\n ? isWeb\n ? 'non-color-value'\n : 'value'\n : 'auto'\n}\n\nexport const createPropMapper = (staticConfig: StaticConfigParsed) => {\n const variants = staticConfig.variants || {}\n\n // temp remove classnames\n const defaultProps = mergeProps(staticConfig.defaultProps || {}, {}, false)[0]\n\n let conf: TamaguiInternalConfig\n\n const mapper: PropMapper = (\n key,\n value,\n theme,\n propsIn,\n state,\n languageContext,\n avoidDefaultProps = false,\n debug\n ) => {\n conf ||= getConfig()\n\n const props = state.fallbackProps || propsIn\n const returnVariablesAs = getReturnVariablesAs(props, state)\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n const fontFamily =\n props[conf.inverseShorthands.fontFamily] ||\n props.fontFamily ||\n defaultProps.fontFamily ||\n propsIn.fontFamily ||\n '$body'\n\n const variantValue = resolveVariants(\n key,\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n '',\n languageContext,\n avoidDefaultProps,\n debug\n )\n\n if (variantValue) {\n return variantValue\n }\n\n let shouldReturn = value !== undefined && value !== null\n\n // handle shorthands\n if (key in conf.shorthands) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n if (value[0] === '$') {\n value = getToken(\n key,\n value,\n conf,\n theme,\n fontFamily,\n languageContext,\n returnVariablesAs,\n debug\n )\n } else if (isVariable(value)) {\n value = resolveVariableValue(key, value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return expandStyle(key, value) || [[key, value]]\n }\n }\n\n return mapper\n}\n\ntype StyleResolver = (\n key: string,\n value: any,\n props: Record<string, any>,\n defaultProps: any,\n theme: any,\n variants: GenericVariantDefinitions,\n fontFamily: string,\n conf: TamaguiInternalConfig,\n returnVariablesAs: 'auto' | 'value' | 'non-color-value',\n staticConfig: StaticConfigParsed,\n parentVariantKey: string,\n languageContext?: LanguageContextType,\n avoidDefaultProps?: boolean,\n debug?: DebugProp\n) => any\n\nconst resolveVariants: StyleResolver = (\n key,\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n languageContext,\n avoidDefaultProps = false,\n debug\n) => {\n const variant = variants?.[key]\n if (!variant || value === undefined) {\n return\n }\n\n let variantValue = getVariantDefinition(variant, key, value, conf)\n\n if (!variantValue) {\n // variant at key exists, but no matching variant value, return nothing\n if (process.env.NODE_ENV === 'development') {\n if (staticConfig.validStyles?.[key]) {\n return null\n }\n if (value === false) {\n // don't warn on missing false values, common to only use true\n return null\n }\n const name = staticConfig.componentName || '[UnnamedComponent]'\n // eslint-disable-next-line no-console\n console.warn(\n `No variant found: ${name} has variant \"${key}\", but no matching value \"${value}\"`\n )\n }\n return\n }\n\n if (typeof variantValue === 'function') {\n const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(\n value,\n getVariantExtras(props, languageContext, theme, defaultProps, avoidDefaultProps)\n )\n }\n\n let fontFamilyResult: any\n\n if (isObj(variantValue)) {\n const fontFamilyUpdate =\n variantValue.fontFamily || variantValue[conf.inverseShorthands.fontFamily]\n\n if (fontFamilyUpdate) {\n fontFamilyResult = getFontFamilyFromNameOrVariable(fontFamilyUpdate, conf)\n }\n\n variantValue = resolveTokensAndVariants(\n key,\n variantValue,\n props,\n defaultProps,\n theme,\n variants,\n fontFamilyResult || fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n languageContext,\n avoidDefaultProps,\n debug\n )\n }\n\n if (variantValue) {\n const next = Object.entries(expandStyles(variantValue))\n\n // store any changed font family (only support variables for now)\n if (fontFamilyResult && fontFamilyResult[0] === '$') {\n fontFamilyCache.set(next, getVariableValue(fontFamilyResult))\n }\n\n return next\n }\n}\n\n// handles finding and resolving the fontFamily to the token name\n// this is used as `font_[name]` in className for nice css variable support\nexport function getFontFamilyFromNameOrVariable(input: any, conf: TamaguiInternalConfig) {\n if (isVariable(input)) {\n const val = variableToFontNameCache.get(input)\n if (val) {\n return val\n } else {\n for (const key in conf.fontsParsed) {\n const familyVariable = conf.fontsParsed[key].family\n if (isVariable(familyVariable)) {\n variableToFontNameCache.set(familyVariable, key)\n if (familyVariable === input) {\n return key\n }\n }\n }\n }\n } else if (typeof input === 'string') {\n if (input?.[0] === '$') {\n return input\n } else {\n // this could be mapped back to\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.log('[tamagui] should map back', input)\n }\n }\n }\n}\n\nconst variableToFontNameCache = new WeakMap<Variable, string>()\n\n// special helper for special font family\nconst fontFamilyCache = new WeakMap()\nexport const getPropMappedFontFamily = (expanded?: any) => {\n return expanded && fontFamilyCache.get(expanded)\n}\n\nconst resolveTokensAndVariants: StyleResolver = (\n key, // we dont use key assume value is object instead\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n languageContext,\n avoidDefaultProps,\n debug\n) => {\n const res = {}\n for (const rKey in value) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = value[rKey]\n\n if (isVariable(val)) {\n res[fKey] = !isWeb || returnVariablesAs === 'value' ? val.val : val.variable\n } else if (variants[fKey]) {\n // avoids infinite loop if variant is matching a style prop\n // eg: { variants: { flex: { true: { flex: 2 } } } }\n if (parentVariantKey === key) {\n res[fKey] = val\n } else {\n Object.assign(\n res,\n Object.fromEntries(\n resolveVariants(\n fKey,\n val,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n key,\n languageContext,\n avoidDefaultProps,\n debug\n )\n )\n )\n }\n } else if (typeof val === 'string') {\n const fVal =\n val[0] === '$'\n ? getToken(\n fKey,\n val,\n conf,\n theme,\n fontFamily,\n languageContext,\n returnVariablesAs,\n debug\n )\n : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // sub-objects: media queries, pseudos, shadowOffset\n res[fKey] = resolveTokensAndVariants(\n fKey,\n val,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n key,\n languageContext,\n avoidDefaultProps,\n debug\n )\n } else {\n // nullish values cant be tokens, need no extra parsing\n res[fKey] = val\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (debug) {\n if (res[fKey]?.[0] === '$') {\n // eslint-disable-next-line no-console\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey], theme)\n }\n }\n }\n }\n\n return res\n}\n\nconst tokenCats = ['size', 'color', 'radius', 'space', 'zIndex'].map((name) => ({\n name,\n spreadName: `...${name}`,\n}))\n\n// goes through specificity finding best matching variant function\nfunction getVariantDefinition(\n variant: any,\n key: string,\n value: any,\n conf: TamaguiInternalConfig\n) {\n if (typeof variant === 'function') {\n return variant\n }\n if (variant[value]) {\n return variant[value]\n }\n const { tokensParsed } = conf\n for (const { name, spreadName } of tokenCats) {\n if (variant[spreadName] && value in tokensParsed[name]) {\n return variant[spreadName]\n }\n }\n let fn: any\n const type = typeof value\n if (type === 'number') {\n fn = variant[':number']\n } else if (type === 'string') {\n fn = variant[':string']\n } else if (value === true || value === false) {\n fn = variant[':boolean']\n }\n // fallback to catch all or size\n return fn || variant['...'] || variant['...size']\n}\n\nconst fontShorthand = {\n fontSize: 'size',\n fontWeight: 'weight',\n}\n\nconst getToken = (\n key: string,\n value: string,\n conf: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n languageContext?: LanguageContextType,\n resolveAs?: ResolveVariableTypes,\n debug?: DebugProp\n) => {\n const tokensParsed = conf.tokensParsed\n const fontsParsed = languageContext\n ? getFontsForLanguage(conf.fontsParsed, languageContext)\n : conf.fontsParsed\n let valOrVar: any\n let hasSet = false\n if (value in theme) {\n valOrVar = theme[value]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = fontsParsed[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n case 'lineHeight':\n case 'letterSpacing':\n case 'fontWeight':\n valOrVar = fontsParsed[fontFamily]?.[fontShorthand[key] || key]?.[value] || value\n hasSet = true\n break\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const res = tokensParsed[cat][value]\n if (res) {\n valOrVar = res\n hasSet = true\n }\n }\n }\n if (!hasSet) {\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n valOrVar = spaceVar\n hasSet = true\n }\n }\n }\n\n if (process.env.NODE_ENV === 'development' && isDevTools && debug === 'verbose') {\n // eslint-disable-next-line no-console\n console.log(' \uFE52 propMapper getToken', { key, valOrVar, theme, hasSet })\n }\n\n if (hasSet) {\n return resolveVariableValue(key, valOrVar, resolveAs)\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n // eslint-disable-next-line no-console\n console.warn(\n `\u26A0\uFE0F You passed the value \"${value}\" to the style property \"${key}\", but there's no theme or token with the key \"${value}\". Using theme \"${theme.name}\".\n\nSet the debug prop to true to see more detailed debug information.`\n )\n if (debug) {\n if (isDevTools) {\n // eslint-disable-next-line no-console\n console.log('Looked in:', { theme, tokensParsed, fontsParsed })\n }\n }\n return null\n }\n }\n return value\n}\n\nfunction resolveVariableValue(\n key: string,\n valOrVar: Variable | any,\n resolveAs: ResolveVariableTypes = 'auto'\n) {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\n }\n if (resolveAs === 'non-color-value') {\n if (isWeb) {\n if (key in tokenCategories.color) {\n return valOrVar.variable\n }\n }\n return valOrVar.val\n }\n if (!isWeb || resolveAs === 'value') {\n return valOrVar.val\n }\n return valOrVar.variable\n }\n return valOrVar\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\nconst tokenCategories = {\n radius: {\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n },\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }