@tamagui/core 1.0.1-beta.19 → 1.0.1-beta.191

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 (764) hide show
  1. package/dist/cjs/Tamagui.js +14 -12
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/addTheme.js +80 -0
  4. package/dist/cjs/addTheme.js.map +7 -0
  5. package/dist/cjs/{conf.js → config.js} +33 -19
  6. package/dist/cjs/config.js.map +7 -0
  7. package/dist/cjs/constants/constants.js +11 -23
  8. package/dist/cjs/constants/constants.js.map +2 -2
  9. package/dist/cjs/{helpers/nativeGestureHandler.js → constants/isDevTools.js} +8 -8
  10. package/dist/cjs/constants/isDevTools.js.map +7 -0
  11. package/dist/cjs/constants/platform.js +32 -16
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/platform.native.js +62 -0
  14. package/dist/cjs/constants/platform.native.js.map +7 -0
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +1 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +1 -1
  17. package/dist/cjs/contexts/FontLanguageContext.js +30 -0
  18. package/dist/cjs/contexts/FontLanguageContext.js.map +7 -0
  19. package/dist/cjs/{views → contexts}/TextAncestorContext.js +11 -13
  20. package/dist/cjs/contexts/TextAncestorContext.js.map +7 -0
  21. package/dist/cjs/{ThemeContext.js → contexts/ThemeContext.js} +1 -0
  22. package/dist/cjs/contexts/ThemeContext.js.map +7 -0
  23. package/dist/cjs/createComponent.js +925 -484
  24. package/dist/cjs/createComponent.js.map +3 -3
  25. package/dist/cjs/createFont.js +5 -8
  26. package/dist/cjs/createFont.js.map +2 -2
  27. package/dist/cjs/createShorthands.js +1 -2
  28. package/dist/cjs/createShorthands.js.map +2 -2
  29. package/dist/cjs/createTamagui.js +129 -177
  30. package/dist/cjs/createTamagui.js.map +3 -3
  31. package/dist/cjs/createTheme.js +4 -2
  32. package/dist/cjs/createTheme.js.map +2 -2
  33. package/dist/cjs/createTokens.js +5 -25
  34. package/dist/cjs/createTokens.js.map +2 -2
  35. package/dist/cjs/createVariable.js +52 -28
  36. package/dist/cjs/createVariable.js.map +2 -2
  37. package/dist/cjs/createVariables.js +52 -0
  38. package/dist/cjs/createVariables.js.map +7 -0
  39. package/dist/cjs/helpers/RNComponents.js +12 -11
  40. package/dist/cjs/helpers/RNComponents.js.map +2 -2
  41. package/dist/cjs/{ThemeManager.js → helpers/ThemeManager.js} +54 -52
  42. package/dist/cjs/helpers/ThemeManager.js.map +7 -0
  43. package/dist/cjs/helpers/areEqualSets.js +3 -3
  44. package/dist/cjs/helpers/areEqualSets.js.map +1 -1
  45. package/dist/cjs/helpers/assignNativePropsToWeb.js +188 -0
  46. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +7 -0
  47. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +30 -0
  48. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +7 -0
  49. package/dist/cjs/helpers/calc.js +71 -0
  50. package/dist/cjs/helpers/calc.js.map +7 -0
  51. package/dist/cjs/helpers/createMediaStyle.js +17 -9
  52. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  53. package/dist/cjs/helpers/createPropMapper.js +272 -122
  54. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  55. package/dist/cjs/helpers/createShallowUpdate.js +14 -25
  56. package/dist/cjs/helpers/createShallowUpdate.js.map +2 -2
  57. package/dist/cjs/helpers/expandStyle.js +90 -0
  58. package/dist/cjs/helpers/expandStyle.js.map +7 -0
  59. package/dist/cjs/helpers/expandStyles.js +115 -0
  60. package/dist/cjs/helpers/expandStyles.js.map +7 -0
  61. package/dist/cjs/helpers/extendStaticConfig.js +49 -37
  62. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  63. package/dist/cjs/helpers/fixNativeShadow.js +3 -3
  64. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  65. package/dist/cjs/helpers/getAnimationDriver.js +32 -0
  66. package/dist/cjs/helpers/getAnimationDriver.js.map +7 -0
  67. package/dist/cjs/helpers/getExpandedShorthands.js +4 -5
  68. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  69. package/dist/cjs/helpers/{getTextSize.js → getFont.js} +22 -12
  70. package/dist/cjs/helpers/getFont.js.map +7 -0
  71. package/dist/cjs/helpers/getFontLanguage.js +29 -0
  72. package/dist/cjs/helpers/getFontLanguage.js.map +7 -0
  73. package/dist/cjs/helpers/getSize.js +19 -10
  74. package/dist/cjs/helpers/getSize.js.map +2 -2
  75. package/dist/cjs/helpers/getSplitStyles.js +381 -208
  76. package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
  77. package/dist/cjs/helpers/getStackSize.js +46 -0
  78. package/dist/cjs/helpers/getStackSize.js.map +7 -0
  79. package/dist/cjs/helpers/getStylesAtomic.js +199 -133
  80. package/dist/cjs/helpers/getStylesAtomic.js.map +3 -3
  81. package/dist/cjs/helpers/getStylesAtomic.native.js +1 -2
  82. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  83. package/dist/cjs/helpers/getThemeCSSRules.js +103 -0
  84. package/dist/cjs/helpers/getThemeCSSRules.js.map +7 -0
  85. package/dist/cjs/{nativeGestureHandler.native.js → helpers/getThemeCSSRules.native.js} +18 -5
  86. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +7 -0
  87. package/dist/cjs/helpers/getVariantExtras.js +88 -0
  88. package/dist/cjs/helpers/getVariantExtras.js.map +7 -0
  89. package/dist/cjs/helpers/insertStyleRule.js +83 -52
  90. package/dist/cjs/helpers/insertStyleRule.js.map +3 -3
  91. package/dist/cjs/helpers/isObj.js +2 -2
  92. package/dist/cjs/helpers/isObj.js.map +1 -1
  93. package/dist/cjs/helpers/isTamaguiComponent.js +37 -0
  94. package/dist/cjs/helpers/isTamaguiComponent.js.map +7 -0
  95. package/dist/cjs/helpers/isTamaguiElement.js +5 -5
  96. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  97. package/dist/cjs/helpers/matchMedia.js +7 -6
  98. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  99. package/dist/cjs/helpers/matchMedia.native.js +6 -3
  100. package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
  101. package/dist/cjs/helpers/mergeProps.js +54 -0
  102. package/dist/cjs/helpers/mergeProps.js.map +7 -0
  103. package/dist/cjs/helpers/mergeTransform.js +42 -0
  104. package/dist/cjs/helpers/mergeTransform.js.map +7 -0
  105. package/dist/cjs/helpers/normalizeColor.js +80 -0
  106. package/dist/cjs/helpers/normalizeColor.js.map +7 -0
  107. package/dist/cjs/helpers/normalizeValueWithProperty.js +93 -0
  108. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
  109. package/dist/cjs/helpers/proxyThemeVariables.js +7 -4
  110. package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
  111. package/dist/cjs/helpers/pseudoDescriptors.js +42 -0
  112. package/dist/cjs/helpers/pseudoDescriptors.js.map +7 -0
  113. package/dist/cjs/helpers/registerCSSVariable.js +40 -0
  114. package/dist/cjs/helpers/registerCSSVariable.js.map +7 -0
  115. package/dist/cjs/helpers/{wrapThemeManagerContext.js → startTransition.js} +12 -15
  116. package/dist/cjs/helpers/startTransition.js.map +7 -0
  117. package/dist/cjs/helpers/themeable.js +17 -40
  118. package/dist/cjs/helpers/themeable.js.map +3 -3
  119. package/dist/cjs/helpers/themes.js +79 -0
  120. package/dist/cjs/helpers/themes.js.map +7 -0
  121. package/dist/cjs/helpers/useShallowSetState.js +44 -0
  122. package/dist/cjs/helpers/useShallowSetState.js.map +7 -0
  123. package/dist/cjs/helpers/validate.js +1 -122
  124. package/dist/cjs/helpers/validate.js.map +3 -3
  125. package/dist/cjs/helpers/withStaticProperties.js +3 -3
  126. package/dist/cjs/helpers/withStaticProperties.js.map +1 -1
  127. package/dist/cjs/hooks/getThemeUnwrapped.js +39 -0
  128. package/dist/cjs/hooks/getThemeUnwrapped.js.map +7 -0
  129. package/dist/cjs/hooks/useConstant.js +4 -2
  130. package/dist/cjs/hooks/useConstant.js.map +2 -2
  131. package/dist/cjs/hooks/useDidFinishSSR.js +60 -0
  132. package/dist/cjs/hooks/useDidFinishSSR.js.map +7 -0
  133. package/dist/cjs/hooks/useId.js +3 -33
  134. package/dist/cjs/hooks/useId.js.map +2 -2
  135. package/dist/cjs/hooks/useIsMounted.js +3 -4
  136. package/dist/cjs/hooks/useIsMounted.js.map +2 -2
  137. package/dist/cjs/hooks/useIsSSR.js +46 -0
  138. package/dist/cjs/hooks/useIsSSR.js.map +7 -0
  139. package/dist/cjs/hooks/useIsTouchDevice.js +11 -9
  140. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  141. package/dist/cjs/hooks/useMedia.js +162 -113
  142. package/dist/cjs/hooks/useMedia.js.map +3 -3
  143. package/dist/cjs/hooks/usePressable.js +4 -18
  144. package/dist/cjs/hooks/usePressable.js.map +1 -1
  145. package/dist/cjs/hooks/useSafeRef.js +60 -0
  146. package/dist/cjs/hooks/useSafeRef.js.map +7 -0
  147. package/dist/cjs/hooks/useServerHooks.js +36 -0
  148. package/dist/cjs/hooks/useServerHooks.js.map +7 -0
  149. package/dist/cjs/hooks/useTheme.js +166 -132
  150. package/dist/cjs/hooks/useTheme.js.map +3 -3
  151. package/dist/cjs/hooks/useUnmountEffect.js +1 -2
  152. package/dist/cjs/hooks/useUnmountEffect.js.map +1 -1
  153. package/dist/cjs/index.js +59 -21
  154. package/dist/cjs/index.js.map +2 -2
  155. package/dist/cjs/injectStyles.js +40 -0
  156. package/dist/cjs/injectStyles.js.map +7 -0
  157. package/dist/cjs/insertFont.js +93 -0
  158. package/dist/cjs/insertFont.js.map +7 -0
  159. package/dist/cjs/static.js +22 -15
  160. package/dist/cjs/static.js.map +2 -2
  161. package/dist/cjs/styled.js +47 -44
  162. package/dist/cjs/styled.js.map +2 -2
  163. package/dist/cjs/types-rnw.js +1 -0
  164. package/dist/cjs/types-rnw.js.map +2 -2
  165. package/dist/cjs/types.js +1 -0
  166. package/dist/cjs/types.js.map +2 -2
  167. package/dist/cjs/updateTheme.js +47 -0
  168. package/dist/cjs/updateTheme.js.map +7 -0
  169. package/dist/cjs/vendor/Pressability.js +32 -0
  170. package/dist/cjs/vendor/Pressability.js.map +7 -0
  171. package/dist/cjs/vendor/Pressability.native.js +32 -0
  172. package/dist/cjs/vendor/Pressability.native.js.map +7 -0
  173. package/dist/cjs/views/FontLanguage.js +38 -0
  174. package/dist/cjs/views/FontLanguage.js.map +7 -0
  175. package/dist/cjs/views/FontLanguage.native.js +38 -0
  176. package/dist/cjs/views/FontLanguage.native.js.map +7 -0
  177. package/dist/cjs/{helpers/nativeGestureHandler.native.js → views/FontLanguage.types.js} +4 -5
  178. package/dist/cjs/views/FontLanguage.types.js.map +7 -0
  179. package/dist/cjs/views/Slot.js +64 -72
  180. package/dist/cjs/views/Slot.js.map +2 -2
  181. package/dist/cjs/views/Stack.js +4 -19
  182. package/dist/cjs/views/Stack.js.map +1 -1
  183. package/dist/cjs/views/TamaguiProvider.js +82 -0
  184. package/dist/cjs/views/TamaguiProvider.js.map +7 -0
  185. package/dist/cjs/views/Text.js +28 -29
  186. package/dist/cjs/views/Text.js.map +2 -2
  187. package/dist/cjs/views/Theme.js +43 -21
  188. package/dist/cjs/views/Theme.js.map +3 -3
  189. package/dist/cjs/views/ThemeInverse.js +25 -25
  190. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  191. package/dist/cjs/views/ThemeProvider.js +35 -23
  192. package/dist/cjs/views/ThemeProvider.js.map +3 -3
  193. package/dist/cjs/views/ThemeReset.js +18 -12
  194. package/dist/cjs/views/ThemeReset.js.map +3 -3
  195. package/dist/esm/Tamagui.js +8 -11
  196. package/dist/esm/Tamagui.js.map +2 -2
  197. package/dist/esm/addTheme.js +56 -0
  198. package/dist/esm/addTheme.js.map +7 -0
  199. package/dist/esm/config.js +45 -0
  200. package/dist/esm/config.js.map +7 -0
  201. package/dist/esm/constants/constants.js +2 -2
  202. package/dist/esm/constants/constants.js.map +2 -2
  203. package/dist/esm/constants/isDevTools.js +5 -0
  204. package/dist/esm/constants/isDevTools.js.map +7 -0
  205. package/dist/esm/constants/platform.js +25 -12
  206. package/dist/esm/constants/platform.js.map +2 -2
  207. package/dist/esm/constants/platform.native.js +28 -0
  208. package/dist/esm/constants/platform.native.js.map +7 -0
  209. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  210. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +1 -1
  211. package/dist/esm/contexts/FontLanguageContext.js +6 -0
  212. package/dist/esm/contexts/FontLanguageContext.js.map +7 -0
  213. package/dist/esm/contexts/TextAncestorContext.js +17 -0
  214. package/dist/esm/contexts/TextAncestorContext.js.map +7 -0
  215. package/dist/esm/{ThemeContext.js → contexts/ThemeContext.js} +0 -0
  216. package/dist/esm/contexts/ThemeContext.js.map +7 -0
  217. package/dist/esm/createComponent.js +891 -389
  218. package/dist/esm/createComponent.js.map +3 -3
  219. package/dist/esm/createFont.js +4 -9
  220. package/dist/esm/createFont.js.map +2 -2
  221. package/dist/esm/createShorthands.js +0 -3
  222. package/dist/esm/createShorthands.js.map +2 -2
  223. package/dist/esm/createTamagui.js +128 -158
  224. package/dist/esm/createTamagui.js.map +3 -3
  225. package/dist/esm/createTheme.js +3 -3
  226. package/dist/esm/createTheme.js.map +2 -2
  227. package/dist/esm/createTokens.js +3 -24
  228. package/dist/esm/createTokens.js.map +2 -2
  229. package/dist/esm/createVariable.js +47 -26
  230. package/dist/esm/createVariable.js.map +2 -2
  231. package/dist/esm/createVariables.js +28 -0
  232. package/dist/esm/createVariables.js.map +7 -0
  233. package/dist/esm/helpers/RNComponents.js +11 -8
  234. package/dist/esm/helpers/RNComponents.js.map +2 -2
  235. package/dist/esm/{ThemeManager.js → helpers/ThemeManager.js} +53 -53
  236. package/dist/esm/helpers/ThemeManager.js.map +7 -0
  237. package/dist/esm/helpers/areEqualSets.js +2 -4
  238. package/dist/esm/helpers/areEqualSets.js.map +1 -1
  239. package/dist/esm/helpers/assignNativePropsToWeb.js +164 -0
  240. package/dist/esm/helpers/assignNativePropsToWeb.js.map +7 -0
  241. package/dist/esm/helpers/assignNativePropsToWeb.native.js +6 -0
  242. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +7 -0
  243. package/dist/esm/helpers/calc.js +47 -0
  244. package/dist/esm/helpers/calc.js.map +7 -0
  245. package/dist/esm/helpers/createMediaStyle.js +16 -10
  246. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  247. package/dist/esm/helpers/createPropMapper.js +267 -123
  248. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  249. package/dist/esm/helpers/createShallowUpdate.js +13 -12
  250. package/dist/esm/helpers/createShallowUpdate.js.map +2 -2
  251. package/dist/esm/helpers/expandStyle.js +66 -0
  252. package/dist/esm/helpers/expandStyle.js.map +7 -0
  253. package/dist/esm/helpers/expandStyles.js +89 -0
  254. package/dist/esm/helpers/expandStyles.js.map +7 -0
  255. package/dist/esm/helpers/extendStaticConfig.js +35 -28
  256. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  257. package/dist/esm/helpers/fixNativeShadow.js +2 -4
  258. package/dist/esm/helpers/fixNativeShadow.js.map +1 -1
  259. package/dist/esm/helpers/getAnimationDriver.js +8 -0
  260. package/dist/esm/helpers/getAnimationDriver.js.map +7 -0
  261. package/dist/esm/helpers/getExpandedShorthands.js +2 -5
  262. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  263. package/dist/esm/helpers/{getTextSize.js → getFont.js} +17 -9
  264. package/dist/esm/helpers/getFont.js.map +7 -0
  265. package/dist/esm/helpers/getFontLanguage.js +5 -0
  266. package/dist/esm/helpers/getFontLanguage.js.map +7 -0
  267. package/dist/esm/helpers/getSize.js +16 -10
  268. package/dist/esm/helpers/getSize.js.map +2 -2
  269. package/dist/esm/helpers/getSplitStyles.js +364 -188
  270. package/dist/esm/helpers/getSplitStyles.js.map +3 -3
  271. package/dist/esm/helpers/getStackSize.js +22 -0
  272. package/dist/esm/helpers/getStackSize.js.map +7 -0
  273. package/dist/esm/helpers/getStylesAtomic.js +187 -108
  274. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  275. package/dist/esm/helpers/getStylesAtomic.native.js +0 -3
  276. package/dist/esm/helpers/getStylesAtomic.native.js.map +1 -1
  277. package/dist/esm/helpers/getThemeCSSRules.js +79 -0
  278. package/dist/esm/helpers/getThemeCSSRules.js.map +7 -0
  279. package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
  280. package/dist/esm/helpers/getThemeCSSRules.native.js.map +7 -0
  281. package/dist/esm/helpers/getVariantExtras.js +63 -0
  282. package/dist/esm/helpers/getVariantExtras.js.map +7 -0
  283. package/dist/esm/helpers/insertStyleRule.js +78 -50
  284. package/dist/esm/helpers/insertStyleRule.js.map +3 -3
  285. package/dist/esm/helpers/isObj.js +1 -3
  286. package/dist/esm/helpers/isObj.js.map +1 -1
  287. package/dist/esm/helpers/isTamaguiComponent.js +13 -0
  288. package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
  289. package/dist/esm/helpers/isTamaguiElement.js +4 -6
  290. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  291. package/dist/esm/helpers/matchMedia.js +6 -7
  292. package/dist/esm/helpers/matchMedia.js.map +2 -2
  293. package/dist/esm/helpers/matchMedia.native.js +1 -3
  294. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  295. package/dist/esm/helpers/mergeProps.js +30 -0
  296. package/dist/esm/helpers/mergeProps.js.map +7 -0
  297. package/dist/esm/helpers/mergeTransform.js +17 -0
  298. package/dist/esm/helpers/mergeTransform.js.map +7 -0
  299. package/dist/esm/helpers/normalizeColor.js +49 -0
  300. package/dist/esm/helpers/normalizeColor.js.map +7 -0
  301. package/dist/esm/helpers/normalizeValueWithProperty.js +69 -0
  302. package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
  303. package/dist/esm/helpers/proxyThemeVariables.js +6 -5
  304. package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
  305. package/dist/esm/helpers/pseudoDescriptors.js +18 -0
  306. package/dist/esm/helpers/pseudoDescriptors.js.map +7 -0
  307. package/dist/esm/helpers/registerCSSVariable.js +14 -0
  308. package/dist/esm/helpers/registerCSSVariable.js.map +7 -0
  309. package/dist/esm/helpers/startTransition.js +6 -0
  310. package/dist/esm/helpers/startTransition.js.map +7 -0
  311. package/dist/esm/helpers/themeable.js +11 -9
  312. package/dist/esm/helpers/themeable.js.map +2 -2
  313. package/dist/esm/helpers/themes.js +54 -0
  314. package/dist/esm/helpers/themes.js.map +7 -0
  315. package/dist/esm/helpers/useShallowSetState.js +20 -0
  316. package/dist/esm/helpers/useShallowSetState.js.map +7 -0
  317. package/dist/esm/helpers/validate.js +0 -75
  318. package/dist/esm/helpers/validate.js.map +3 -3
  319. package/dist/esm/helpers/withStaticProperties.js +2 -4
  320. package/dist/esm/helpers/withStaticProperties.js.map +1 -1
  321. package/dist/esm/hooks/getThemeUnwrapped.js +14 -0
  322. package/dist/esm/hooks/getThemeUnwrapped.js.map +7 -0
  323. package/dist/esm/hooks/useConstant.js +4 -4
  324. package/dist/esm/hooks/useConstant.js.map +2 -2
  325. package/dist/esm/hooks/useDidFinishSSR.js +35 -0
  326. package/dist/esm/hooks/useDidFinishSSR.js.map +7 -0
  327. package/dist/esm/hooks/useId.js +1 -31
  328. package/dist/esm/hooks/useId.js.map +2 -2
  329. package/dist/esm/hooks/useIsMounted.js +1 -4
  330. package/dist/esm/hooks/useIsMounted.js.map +2 -2
  331. package/dist/esm/hooks/useIsSSR.js +22 -0
  332. package/dist/esm/hooks/useIsSSR.js.map +7 -0
  333. package/dist/esm/hooks/useIsTouchDevice.js +10 -10
  334. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  335. package/dist/esm/hooks/useMedia.js +157 -103
  336. package/dist/esm/hooks/useMedia.js.map +3 -3
  337. package/dist/esm/hooks/usePressable.js +2 -4
  338. package/dist/esm/hooks/usePressable.js.map +1 -1
  339. package/dist/esm/hooks/useSafeRef.js +36 -0
  340. package/dist/esm/hooks/useSafeRef.js.map +7 -0
  341. package/dist/esm/hooks/useServerHooks.js +11 -0
  342. package/dist/esm/hooks/useServerHooks.js.map +7 -0
  343. package/dist/esm/hooks/useTheme.js +159 -109
  344. package/dist/esm/hooks/useTheme.js.map +3 -3
  345. package/dist/esm/hooks/useUnmountEffect.js +0 -3
  346. package/dist/esm/hooks/useUnmountEffect.js.map +1 -1
  347. package/dist/esm/index.js +51 -13
  348. package/dist/esm/index.js.map +2 -2
  349. package/dist/esm/injectStyles.js +16 -0
  350. package/dist/esm/injectStyles.js.map +7 -0
  351. package/dist/esm/insertFont.js +67 -0
  352. package/dist/esm/insertFont.js.map +7 -0
  353. package/dist/esm/static.js +15 -15
  354. package/dist/esm/static.js.map +2 -2
  355. package/dist/esm/styled.js +40 -12
  356. package/dist/esm/styled.js.map +2 -2
  357. package/dist/esm/types-rnw.js +0 -0
  358. package/dist/esm/types-rnw.js.map +0 -0
  359. package/dist/esm/types.js +0 -0
  360. package/dist/esm/types.js.map +0 -0
  361. package/dist/esm/updateTheme.js +23 -0
  362. package/dist/esm/updateTheme.js.map +7 -0
  363. package/dist/esm/vendor/Pressability.js +7 -0
  364. package/dist/esm/vendor/Pressability.js.map +7 -0
  365. package/dist/esm/vendor/Pressability.native.js +7 -0
  366. package/dist/esm/vendor/Pressability.native.js.map +7 -0
  367. package/dist/esm/views/FontLanguage.js +14 -0
  368. package/dist/esm/views/FontLanguage.js.map +7 -0
  369. package/dist/esm/views/FontLanguage.native.js +14 -0
  370. package/dist/esm/views/FontLanguage.native.js.map +7 -0
  371. package/dist/esm/views/FontLanguage.types.js +1 -0
  372. package/dist/{cjs/defaultComponentState.js.map → esm/views/FontLanguage.types.js.map} +0 -0
  373. package/dist/esm/views/Slot.js +55 -37
  374. package/dist/esm/views/Slot.js.map +2 -2
  375. package/dist/esm/views/Stack.js +0 -0
  376. package/dist/esm/views/Stack.js.map +1 -1
  377. package/dist/esm/views/TamaguiProvider.js +52 -0
  378. package/dist/esm/views/TamaguiProvider.js.map +7 -0
  379. package/dist/esm/views/Text.js +13 -5
  380. package/dist/esm/views/Text.js.map +2 -2
  381. package/dist/esm/views/Theme.js +35 -19
  382. package/dist/esm/views/Theme.js.map +3 -3
  383. package/dist/esm/views/ThemeInverse.js +22 -20
  384. package/dist/esm/views/ThemeInverse.js.map +2 -2
  385. package/dist/esm/views/ThemeProvider.js +28 -21
  386. package/dist/esm/views/ThemeProvider.js.map +2 -2
  387. package/dist/esm/views/ThemeReset.js +13 -12
  388. package/dist/esm/views/ThemeReset.js.map +2 -2
  389. package/package.json +49 -16
  390. package/reset.css +25 -4
  391. package/src/Tamagui.ts +44 -0
  392. package/src/addTheme.ts +68 -0
  393. package/src/config.ts +45 -0
  394. package/src/constants/constants.ts +15 -0
  395. package/src/constants/isDevTools.ts +6 -0
  396. package/src/contexts/ButtonInsideButtonContext.tsx +3 -0
  397. package/src/contexts/FontLanguageContext.tsx +5 -0
  398. package/src/contexts/TextAncestorContext.tsx +10 -0
  399. package/src/contexts/ThemeContext.tsx +5 -0
  400. package/src/createComponent.tsx +1601 -0
  401. package/src/createFont.ts +29 -0
  402. package/src/createShorthands.ts +7 -0
  403. package/src/createTamagui.ts +229 -0
  404. package/src/createTheme.ts +13 -0
  405. package/src/createTokens.ts +35 -0
  406. package/src/createVariable.ts +85 -0
  407. package/src/createVariables.ts +42 -0
  408. package/src/helpers/RNComponents.tsx +14 -0
  409. package/src/helpers/ThemeManager.tsx +235 -0
  410. package/src/helpers/areEqualSets.tsx +9 -0
  411. package/src/helpers/assignNativePropsToWeb.native.tsx +1 -0
  412. package/src/helpers/assignNativePropsToWeb.tsx +178 -0
  413. package/src/helpers/calc.ts +68 -0
  414. package/src/helpers/createMediaStyle.ts +48 -0
  415. package/src/helpers/createPropMapper.ts +526 -0
  416. package/src/helpers/expandStyle.ts +81 -0
  417. package/src/helpers/expandStyles.ts +107 -0
  418. package/src/helpers/extendStaticConfig.ts +76 -0
  419. package/src/helpers/fixNativeShadow.tsx +2 -0
  420. package/src/helpers/getAnimationDriver.tsx +5 -0
  421. package/src/helpers/getExpandedShorthands.ts +15 -0
  422. package/src/helpers/getFont.tsx +43 -0
  423. package/src/helpers/getFontLanguage.ts +2 -0
  424. package/src/helpers/getSize.ts +22 -0
  425. package/src/helpers/getSplitStyles.tsx +738 -0
  426. package/src/helpers/getStackSize.ts +22 -0
  427. package/src/helpers/getStylesAtomic.native.ts +3 -0
  428. package/src/helpers/getStylesAtomic.ts +292 -0
  429. package/src/helpers/getThemeCSSRules.native.ts +3 -0
  430. package/src/helpers/getThemeCSSRules.ts +105 -0
  431. package/src/helpers/getVariantExtras.tsx +84 -0
  432. package/src/helpers/insertStyleRule.tsx +150 -0
  433. package/src/helpers/isObj.ts +1 -0
  434. package/src/helpers/isTamaguiComponent.tsx +15 -0
  435. package/src/helpers/isTamaguiElement.tsx +12 -0
  436. package/src/helpers/matchMedia.native.ts +6 -0
  437. package/src/helpers/matchMedia.ts +16 -0
  438. package/src/helpers/mergeProps.ts +56 -0
  439. package/src/helpers/mergeTransform.ts +16 -0
  440. package/src/helpers/normalizeColor.ts +53 -0
  441. package/src/helpers/normalizeValueWithProperty.ts +80 -0
  442. package/src/helpers/proxyThemeVariables.tsx +18 -0
  443. package/src/helpers/pseudoDescriptors.ts +18 -0
  444. package/src/helpers/registerCSSVariable.ts +11 -0
  445. package/src/helpers/startTransition.ts +4 -0
  446. package/src/helpers/themeable.tsx +45 -0
  447. package/src/helpers/themes.ts +69 -0
  448. package/src/helpers/useShallowSetState.tsx +20 -0
  449. package/src/helpers/validate.ts +80 -0
  450. package/src/helpers/withStaticProperties.tsx +7 -0
  451. package/src/hooks/getThemeUnwrapped.tsx +8 -0
  452. package/src/hooks/useConstant.tsx +19 -0
  453. package/src/hooks/useId.tsx +1 -0
  454. package/src/hooks/useIsMounted.ts +16 -0
  455. package/src/hooks/useIsTouchDevice.tsx +20 -0
  456. package/src/hooks/useMedia.tsx +266 -0
  457. package/src/hooks/usePressable.tsx +9 -0
  458. package/src/hooks/useSafeRef.ts +49 -0
  459. package/src/hooks/useServerHooks.tsx +12 -0
  460. package/src/hooks/useTheme.tsx +299 -0
  461. package/src/hooks/useUnmountEffect.ts +5 -0
  462. package/src/index.ts +83 -0
  463. package/src/injectStyles.ts +20 -0
  464. package/src/insertFont.ts +70 -0
  465. package/src/static.ts +15 -0
  466. package/src/styled.tsx +198 -0
  467. package/src/types-rnw.tsx +162 -0
  468. package/src/types.tsx +1326 -0
  469. package/src/updateTheme.ts +23 -0
  470. package/src/vendor/Pressability.native.tsx +3 -0
  471. package/src/vendor/Pressability.tsx +2 -0
  472. package/src/views/FontLanguage.native.tsx +9 -0
  473. package/src/views/FontLanguage.tsx +18 -0
  474. package/src/views/FontLanguage.types.ts +13 -0
  475. package/src/views/Slot.tsx +147 -0
  476. package/src/views/Stack.tsx +24 -0
  477. package/src/views/TamaguiProvider.tsx +56 -0
  478. package/src/views/Text.tsx +79 -0
  479. package/src/views/Theme.tsx +72 -0
  480. package/src/views/ThemeInverse.tsx +33 -0
  481. package/src/views/ThemeProvider.tsx +63 -0
  482. package/src/views/ThemeReset.tsx +43 -0
  483. package/types/Tamagui.d.ts +7 -9
  484. package/types/addTheme.d.ts +11 -0
  485. package/types/config.d.ts +47 -0
  486. package/types/constants/constants.d.ts +1 -1
  487. package/types/constants/isDevTools.d.ts +2 -0
  488. package/types/constants/platform.d.ts +7 -6
  489. package/types/constants/platform.native.d.ts +13 -0
  490. package/types/contexts/FontLanguageContext.d.ts +5 -0
  491. package/types/{views → contexts}/TextAncestorContext.d.ts +0 -0
  492. package/types/{ThemeContext.d.ts → contexts/ThemeContext.d.ts} +1 -1
  493. package/types/createComponent.d.ts +32 -15
  494. package/types/createShorthands.d.ts +2 -1
  495. package/types/createTamagui.d.ts +2 -17
  496. package/types/createTheme.d.ts +1 -1
  497. package/types/createTokens.d.ts +5 -6
  498. package/types/createVariable.d.ts +24 -12
  499. package/types/createVariables.d.ts +10 -0
  500. package/types/helpers/RNComponents.d.ts +1 -1
  501. package/types/helpers/ThemeManager.d.ts +46 -0
  502. package/types/helpers/assignNativePropsToWeb.d.ts +2 -0
  503. package/types/helpers/assignNativePropsToWeb.native.d.ts +2 -0
  504. package/types/helpers/calc.d.ts +17 -0
  505. package/types/helpers/createMediaStyle.d.ts +2 -4
  506. package/types/helpers/createPropMapper.d.ts +6 -3
  507. package/types/helpers/expandStyle.d.ts +6 -0
  508. package/types/helpers/expandStyles.d.ts +26 -0
  509. package/types/helpers/getAnimationDriver.d.ts +6 -0
  510. package/types/helpers/getFont.d.ts +3 -0
  511. package/types/helpers/getFontLanguage.d.ts +2 -0
  512. package/types/helpers/getSize.d.ts +3 -2
  513. package/types/helpers/getSplitStyles.d.ts +16 -9
  514. package/types/helpers/getStackSize.d.ts +8 -0
  515. package/types/helpers/getStylesAtomic.d.ts +17 -22
  516. package/types/helpers/getThemeCSSRules.d.ts +8 -0
  517. package/types/helpers/getThemeCSSRules.native.d.ts +2 -0
  518. package/types/helpers/getVariantExtras.d.ts +5 -0
  519. package/types/helpers/insertStyleRule.d.ts +7 -3
  520. package/types/helpers/isTamaguiComponent.d.ts +5 -0
  521. package/types/helpers/isTamaguiElement.d.ts +5 -1
  522. package/types/helpers/matchMedia.d.ts +1 -1
  523. package/types/helpers/mergeProps.d.ts +17 -0
  524. package/types/helpers/mergeTransform.d.ts +7 -0
  525. package/types/helpers/normalizeColor.d.ts +3 -0
  526. package/types/helpers/normalizeValueWithProperty.d.ts +6 -0
  527. package/types/helpers/pseudoDescriptors.d.ts +16 -0
  528. package/types/helpers/registerCSSVariable.d.ts +5 -0
  529. package/types/helpers/startTransition.d.ts +3 -0
  530. package/types/helpers/themes.d.ts +4 -0
  531. package/types/helpers/useShallowSetState.d.ts +3 -0
  532. package/types/helpers/validate.d.ts +0 -3
  533. package/types/hooks/getThemeUnwrapped.d.ts +3 -0
  534. package/types/hooks/useId.d.ts +1 -8
  535. package/types/hooks/useMedia.d.ts +20 -6
  536. package/types/hooks/useSafeRef.d.ts +4 -0
  537. package/types/hooks/useServerHooks.d.ts +4 -0
  538. package/types/hooks/useTheme.d.ts +21 -31
  539. package/types/index.d.ts +29 -9
  540. package/types/injectStyles.d.ts +7 -0
  541. package/types/insertFont.d.ts +9 -0
  542. package/types/static.d.ts +2 -15
  543. package/types/styled.d.ts +7 -3
  544. package/types/types.d.ts +303 -92
  545. package/types/updateTheme.d.ts +9 -0
  546. package/types/vendor/Pressability.d.ts +3 -0
  547. package/types/vendor/Pressability.native.d.ts +3 -0
  548. package/types/views/FontLanguage.d.ts +4 -0
  549. package/types/views/FontLanguage.native.d.ts +4 -0
  550. package/types/views/FontLanguage.types.d.ts +11 -0
  551. package/types/views/Slot.d.ts +5 -4
  552. package/types/views/TamaguiProvider.d.ts +4 -0
  553. package/types/views/Theme.d.ts +3 -9
  554. package/types/views/ThemeInverse.d.ts +4 -8
  555. package/types/views/ThemeProvider.d.ts +2 -1
  556. package/dist/cjs/ThemeContext.js.map +0 -7
  557. package/dist/cjs/ThemeManager.js.map +0 -7
  558. package/dist/cjs/conf.js.map +0 -7
  559. package/dist/cjs/constants/rnw.js +0 -46
  560. package/dist/cjs/constants/rnw.js.map +0 -7
  561. package/dist/cjs/defaultComponentState.js +0 -1
  562. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -87
  563. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
  564. package/dist/cjs/helpers/createTamaguiProvider.js +0 -93
  565. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  566. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -53
  567. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  568. package/dist/cjs/helpers/getButtonSize.js +0 -45
  569. package/dist/cjs/helpers/getButtonSize.js.map +0 -7
  570. package/dist/cjs/helpers/getTextSize.js.map +0 -7
  571. package/dist/cjs/helpers/nativeGestureHandler.js.map +0 -7
  572. package/dist/cjs/helpers/nativeGestureHandler.native.js.map +0 -7
  573. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +0 -7
  574. package/dist/cjs/hooks/useFeatures.js +0 -228
  575. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  576. package/dist/cjs/hooks/usePrevious.js +0 -1
  577. package/dist/cjs/hooks/usePrevious.js.map +0 -7
  578. package/dist/cjs/nativeGestureHandler.native.js.map +0 -7
  579. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  580. package/dist/esm/ThemeContext.js.map +0 -7
  581. package/dist/esm/ThemeManager.js.map +0 -7
  582. package/dist/esm/conf.js +0 -36
  583. package/dist/esm/conf.js.map +0 -7
  584. package/dist/esm/constants/rnw.js +0 -24
  585. package/dist/esm/constants/rnw.js.map +0 -7
  586. package/dist/esm/defaultComponentState.js +0 -1
  587. package/dist/esm/defaultComponentState.js.map +0 -7
  588. package/dist/esm/helpers/addStylesUsingClassname.js +0 -64
  589. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
  590. package/dist/esm/helpers/createTamaguiProvider.js +0 -40
  591. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  592. package/dist/esm/helpers/fixNativeShadow.native.js +0 -32
  593. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  594. package/dist/esm/helpers/getButtonSize.js +0 -24
  595. package/dist/esm/helpers/getButtonSize.js.map +0 -7
  596. package/dist/esm/helpers/getTextSize.js.map +0 -7
  597. package/dist/esm/helpers/nativeGestureHandler.js +0 -7
  598. package/dist/esm/helpers/nativeGestureHandler.js.map +0 -7
  599. package/dist/esm/helpers/nativeGestureHandler.native.js +0 -2
  600. package/dist/esm/helpers/nativeGestureHandler.native.js.map +0 -7
  601. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -14
  602. package/dist/esm/helpers/wrapThemeManagerContext.js.map +0 -7
  603. package/dist/esm/hooks/useFeatures.js +0 -173
  604. package/dist/esm/hooks/useFeatures.js.map +0 -7
  605. package/dist/esm/hooks/usePrevious.js +0 -1
  606. package/dist/esm/hooks/usePrevious.js.map +0 -7
  607. package/dist/esm/nativeGestureHandler.native.js +0 -2
  608. package/dist/esm/nativeGestureHandler.native.js.map +0 -7
  609. package/dist/esm/views/TextAncestorContext.js +0 -18
  610. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  611. package/dist/jsx/Tamagui.js +0 -41
  612. package/dist/jsx/ThemeContext.js +0 -5
  613. package/dist/jsx/ThemeManager.js +0 -186
  614. package/dist/jsx/conf.js +0 -35
  615. package/dist/jsx/constants/constants.js +0 -17
  616. package/dist/jsx/constants/platform.js +0 -25
  617. package/dist/jsx/constants/rnw.js +0 -23
  618. package/dist/jsx/contexts/ButtonInsideButtonContext.js +0 -5
  619. package/dist/jsx/createComponent.js +0 -636
  620. package/dist/jsx/createFont.js +0 -27
  621. package/dist/jsx/createShorthands.js +0 -9
  622. package/dist/jsx/createTamagui.js +0 -201
  623. package/dist/jsx/createTheme.js +0 -6
  624. package/dist/jsx/createTokens.js +0 -28
  625. package/dist/jsx/createVariable.js +0 -48
  626. package/dist/jsx/defaultComponentState.js +0 -0
  627. package/dist/jsx/helpers/RNComponents.js +0 -11
  628. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -63
  629. package/dist/jsx/helpers/areEqualSets.js +0 -15
  630. package/dist/jsx/helpers/createMediaStyle.js +0 -30
  631. package/dist/jsx/helpers/createPropMapper.js +0 -237
  632. package/dist/jsx/helpers/createShallowUpdate.js +0 -18
  633. package/dist/jsx/helpers/createTamaguiProvider.js +0 -34
  634. package/dist/jsx/helpers/extendStaticConfig.js +0 -61
  635. package/dist/jsx/helpers/fixNativeShadow.js +0 -7
  636. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -31
  637. package/dist/jsx/helpers/getButtonSize.js +0 -23
  638. package/dist/jsx/helpers/getExpandedShorthands.js +0 -18
  639. package/dist/jsx/helpers/getSize.js +0 -12
  640. package/dist/jsx/helpers/getSplitStyles.js +0 -322
  641. package/dist/jsx/helpers/getStylesAtomic.js +0 -130
  642. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
  643. package/dist/jsx/helpers/getTextSize.js +0 -33
  644. package/dist/jsx/helpers/insertStyleRule.js +0 -94
  645. package/dist/jsx/helpers/isObj.js +0 -6
  646. package/dist/jsx/helpers/isTamaguiElement.js +0 -10
  647. package/dist/jsx/helpers/matchMedia.js +0 -17
  648. package/dist/jsx/helpers/matchMedia.native.js +0 -8
  649. package/dist/jsx/helpers/nativeGestureHandler.js +0 -6
  650. package/dist/jsx/helpers/nativeGestureHandler.native.js +0 -1
  651. package/dist/jsx/helpers/proxyThemeVariables.js +0 -17
  652. package/dist/jsx/helpers/themeable.js +0 -24
  653. package/dist/jsx/helpers/validate.js +0 -75
  654. package/dist/jsx/helpers/withStaticProperties.js +0 -9
  655. package/dist/jsx/helpers/wrapThemeManagerContext.js +0 -10
  656. package/dist/jsx/hooks/useConstant.js +0 -14
  657. package/dist/jsx/hooks/useFeatures.js +0 -167
  658. package/dist/jsx/hooks/useId.js +0 -34
  659. package/dist/jsx/hooks/useIsMounted.js +0 -18
  660. package/dist/jsx/hooks/useIsTouchDevice.js +0 -16
  661. package/dist/jsx/hooks/useMedia.js +0 -158
  662. package/dist/jsx/hooks/usePressable.js +0 -13
  663. package/dist/jsx/hooks/usePrevious.js +0 -0
  664. package/dist/jsx/hooks/useTheme.js +0 -177
  665. package/dist/jsx/hooks/useUnmountEffect.js +0 -10
  666. package/dist/jsx/index.js +0 -54
  667. package/dist/jsx/nativeGestureHandler.native.js +0 -1
  668. package/dist/jsx/static.js +0 -16
  669. package/dist/jsx/styled.js +0 -47
  670. package/dist/jsx/types-rnw.js +0 -0
  671. package/dist/jsx/types.js +0 -0
  672. package/dist/jsx/views/Slot.js +0 -75
  673. package/dist/jsx/views/Stack.js +0 -12
  674. package/dist/jsx/views/Text.js +0 -56
  675. package/dist/jsx/views/TextAncestorContext.js +0 -15
  676. package/dist/jsx/views/Theme.js +0 -31
  677. package/dist/jsx/views/ThemeInverse.js +0 -27
  678. package/dist/jsx/views/ThemeProvider.js +0 -35
  679. package/dist/jsx/views/ThemeReset.js +0 -34
  680. package/types/Tamagui.d.ts.map +0 -1
  681. package/types/ThemeContext.d.ts.map +0 -1
  682. package/types/ThemeManager.d.ts +0 -49
  683. package/types/ThemeManager.d.ts.map +0 -1
  684. package/types/conf.d.ts +0 -27
  685. package/types/conf.d.ts.map +0 -1
  686. package/types/constants/constants.d.ts.map +0 -1
  687. package/types/constants/platform.d.ts.map +0 -1
  688. package/types/constants/rnw.d.ts +0 -2
  689. package/types/constants/rnw.d.ts.map +0 -1
  690. package/types/contexts/ButtonInsideButtonContext.d.ts.map +0 -1
  691. package/types/createComponent.d.ts.map +0 -1
  692. package/types/createFont.d.ts.map +0 -1
  693. package/types/createShorthands.d.ts.map +0 -1
  694. package/types/createTamagui.d.ts.map +0 -1
  695. package/types/createTheme.d.ts.map +0 -1
  696. package/types/createTokens.d.ts.map +0 -1
  697. package/types/createVariable.d.ts.map +0 -1
  698. package/types/defaultComponentState.d.ts +0 -1
  699. package/types/defaultComponentState.d.ts.map +0 -1
  700. package/types/helpers/RNComponents.d.ts.map +0 -1
  701. package/types/helpers/addStylesUsingClassname.d.ts +0 -3
  702. package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
  703. package/types/helpers/areEqualSets.d.ts.map +0 -1
  704. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  705. package/types/helpers/createPropMapper.d.ts.map +0 -1
  706. package/types/helpers/createShallowUpdate.d.ts +0 -4
  707. package/types/helpers/createShallowUpdate.d.ts.map +0 -1
  708. package/types/helpers/createTamaguiProvider.d.ts +0 -7
  709. package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
  710. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  711. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  712. package/types/helpers/fixNativeShadow.native.d.ts +0 -3
  713. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  714. package/types/helpers/getButtonSize.d.ts +0 -8
  715. package/types/helpers/getButtonSize.d.ts.map +0 -1
  716. package/types/helpers/getExpandedShorthands.d.ts.map +0 -1
  717. package/types/helpers/getSize.d.ts.map +0 -1
  718. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  719. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  720. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  721. package/types/helpers/getTextSize.d.ts +0 -3
  722. package/types/helpers/getTextSize.d.ts.map +0 -1
  723. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  724. package/types/helpers/isObj.d.ts.map +0 -1
  725. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  726. package/types/helpers/matchMedia.d.ts.map +0 -1
  727. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  728. package/types/helpers/nativeGestureHandler.d.ts +0 -2
  729. package/types/helpers/nativeGestureHandler.d.ts.map +0 -1
  730. package/types/helpers/nativeGestureHandler.native.d.ts +0 -2
  731. package/types/helpers/nativeGestureHandler.native.d.ts.map +0 -1
  732. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  733. package/types/helpers/themeable.d.ts.map +0 -1
  734. package/types/helpers/validate.d.ts.map +0 -1
  735. package/types/helpers/withStaticProperties.d.ts.map +0 -1
  736. package/types/helpers/wrapThemeManagerContext.d.ts +0 -3
  737. package/types/helpers/wrapThemeManagerContext.d.ts.map +0 -1
  738. package/types/hooks/useConstant.d.ts.map +0 -1
  739. package/types/hooks/useFeatures.d.ts +0 -18
  740. package/types/hooks/useFeatures.d.ts.map +0 -1
  741. package/types/hooks/useId.d.ts.map +0 -1
  742. package/types/hooks/useIsMounted.d.ts.map +0 -1
  743. package/types/hooks/useIsTouchDevice.d.ts.map +0 -1
  744. package/types/hooks/useMedia.d.ts.map +0 -1
  745. package/types/hooks/usePressable.d.ts.map +0 -1
  746. package/types/hooks/usePrevious.d.ts +0 -1
  747. package/types/hooks/usePrevious.d.ts.map +0 -1
  748. package/types/hooks/useTheme.d.ts.map +0 -1
  749. package/types/hooks/useUnmountEffect.d.ts.map +0 -1
  750. package/types/index.d.ts.map +0 -1
  751. package/types/nativeGestureHandler.native.d.ts +0 -2
  752. package/types/nativeGestureHandler.native.d.ts.map +0 -1
  753. package/types/static.d.ts.map +0 -1
  754. package/types/styled.d.ts.map +0 -1
  755. package/types/types-rnw.d.ts.map +0 -1
  756. package/types/types.d.ts.map +0 -1
  757. package/types/views/Slot.d.ts.map +0 -1
  758. package/types/views/Stack.d.ts.map +0 -1
  759. package/types/views/Text.d.ts.map +0 -1
  760. package/types/views/TextAncestorContext.d.ts.map +0 -1
  761. package/types/views/Theme.d.ts.map +0 -1
  762. package/types/views/ThemeInverse.d.ts.map +0 -1
  763. package/types/views/ThemeProvider.d.ts.map +0 -1
  764. package/types/views/ThemeReset.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createMediaStyle.ts"],
4
- "sourcesContent": ["import { StyleObject } from '@tamagui/helpers'\n\nimport { mediaObjectToString } from '../hooks/useMedia'\nimport { MediaQueries } from '../types'\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\nexport const createMediaStyle = (\n { identifier, rules }: StyleObject,\n mediaKey: string,\n mediaQueries: MediaQueries,\n negate?: boolean,\n importance?: number\n) => {\n const mediaKeys = Object.keys(mediaQueries)\n const importance_ = Math.max(\n 0,\n importance == undefined ? mediaKeys.indexOf(mediaKey) : importance || 0\n )\n const precendencePrefix = new Array(importance_ + 1).fill(':root').join('')\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' : 'screen'\n const mediaSelector = mediaObjectToString(mediaQueries[mediaKey])\n const mediaQuery = `${screenStr} and ${mediaSelector}`\n const styleInner = rules[0].replace(identifier, nextIdentifier)\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 styleRule,\n identifier: nextIdentifier,\n }\n}\n"],
5
- "mappings": ";;AAEA;AAKO,MAAM,YAAY;AAElB,MAAM,mBAAmB,wBAC9B,EAAE,YAAY,SACd,UACA,cACA,QACA,eACG;AACH,QAAM,YAAY,OAAO,KAAK,YAAY;AAC1C,QAAM,cAAc,KAAK,IACvB,GACA,cAAc,SAAY,UAAU,QAAQ,QAAQ,IAAI,cAAc,CACxE;AACA,QAAM,oBAAoB,IAAI,MAAM,cAAc,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE;AAC1E,QAAM,SAAS,SAAS,MAAM;AAC9B,QAAM,WAAW,WAAW,MAAM,GAAG,WAAW,QAAQ,GAAG,IAAI,CAAC;AAChE,QAAM,iBAAiB,GAAG,WAAW,QACnC,UACA,GAAG,WAAW,YAAY,WAAW,SAAS,WAChD;AACA,QAAM,YAAY,SAAS,YAAY;AACvC,QAAM,gBAAgB,oBAAoB,aAAa,SAAS;AAChE,QAAM,aAAa,GAAG,iBAAiB;AACvC,QAAM,aAAa,MAAM,GAAG,QAAQ,YAAY,cAAc;AAE9D,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,YAAY;AAAA,EACd;AACF,GAnCgC;",
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\nexport const createMediaStyle = (\n { property, identifier, rules }: StyleObject,\n mediaKey: string,\n mediaQueries: MediaQueries,\n negate?: boolean,\n importance?: number\n): PartialStyleObject => {\n const mediaKeys = Object.keys(mediaQueries)\n const importance_ = Math.max(\n 0,\n importance == undefined ? mediaKeys.indexOf(mediaKey) : importance || 0\n )\n const precendencePrefix = new Array(importance_ + 1).fill(':root').join('')\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 mediaSelector = mediaObjectToString(mediaQueries[mediaKey])\n const mediaQuery = `${screenStr} ${mediaSelector}`\n const styleInner = rules.map((rule) => rule.replace(identifier, nextIdentifier)).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 styleRule = styleRule.replace(';}', ' !important;}')\n return {\n property,\n rules: [styleRule],\n identifier: nextIdentifier,\n }\n}\n"],
5
+ "mappings": "AAEA,SAAS,2BAA2B;AAM7B,MAAM,YAAY;AAElB,MAAM,mBAAmB,CAC9B,EAAE,UAAU,YAAY,MAAM,GAC9B,UACA,cACA,QACA,eACuB;AACvB,QAAM,YAAY,OAAO,KAAK,YAAY;AAC1C,QAAM,cAAc,KAAK;AAAA,IACvB;AAAA,IACA,cAAc,SAAY,UAAU,QAAQ,QAAQ,IAAI,cAAc;AAAA,EACxE;AACA,QAAM,oBAAoB,IAAI,MAAM,cAAc,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE;AAC1E,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,gBAAgB,oBAAoB,aAAa,SAAS;AAChE,QAAM,aAAa,GAAG,aAAa;AACnC,QAAM,aAAa,MAAM,IAAI,CAAC,SAAS,KAAK,QAAQ,YAAY,cAAc,CAAC,EAAE,KAAK,GAAG;AAEzF,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,cAAY,UAAU,QAAQ,MAAM,eAAe;AACnD,SAAO;AAAA,IACL;AAAA,IACA,OAAO,CAAC,SAAS;AAAA,IACjB,YAAY;AAAA,EACd;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,126 +1,276 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { getConfig } from "../conf";
4
- import { isWeb } from "../constants/platform";
5
- import { isVariable } from "../createVariable";
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";
6
8
  import { isObj } from "./isObj";
7
- function getVariantFunction(variant, key, value) {
8
- if (typeof variant === "function") {
9
- return variant;
10
- }
11
- for (const cat in tokenCategories) {
12
- if (key in tokenCategories[cat]) {
13
- const spreadVariant = variant[`...${cat}`];
14
- if (spreadVariant) {
15
- return spreadVariant;
16
- }
17
- }
18
- }
19
- let fn;
20
- if (typeof value === "number") {
21
- fn = variant[":number"];
22
- } else if (typeof value === "string") {
23
- fn = variant[":string"];
24
- } else if (value === true || value === false) {
25
- fn = variant[":boolean"];
26
- }
27
- fn = fn || variant[value];
28
- return fn || variant["..."] || variant["...size"];
29
- }
30
- __name(getVariantFunction, "getVariantFunction");
31
- const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
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) => {
32
14
  const variants = staticConfig.variants || {};
33
- const defaultProps = staticConfig.defaultProps || {};
34
- return (key, value, theme, props, returnVariablesAs = !!props.animation ? "value" : "auto", avoidDefaultProps = false) => {
15
+ const defaultProps = mergeProps(staticConfig.defaultProps || {}, {}, false)[0];
16
+ const mapper = (key, value, theme, propsIn, state, languageContext, avoidDefaultProps = false, debug) => {
35
17
  const conf = getConfig();
36
18
  if (!conf) {
37
- console.trace("no conf! err");
38
- return;
39
- }
40
- const fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
41
- const variant = variants && variants[key];
42
- if (variant && value !== void 0) {
43
- let variantValue = getVariantFunction(variant, key, value);
44
- if (variantValue) {
45
- if (typeof variantValue === "function") {
46
- const fn = variantValue;
47
- variantValue = fn(value, {
48
- fonts: conf.fontsParsed,
49
- tokens: conf.tokensParsed,
50
- theme,
51
- props: avoidDefaultProps ? props : new Proxy(props, {
52
- get(target, key2) {
53
- if (Reflect.has(target, key2)) {
54
- return Reflect.get(target, key2);
55
- }
56
- if (defaultProps) {
57
- return Reflect.get(defaultProps, key2);
58
- }
59
- }
60
- })
61
- });
62
- }
63
- if (isObj(variantValue)) {
64
- variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs);
65
- }
66
- return expansions(variantValue);
67
- }
19
+ throw new Error(`No tamagui config setup`);
20
+ }
21
+ const props = state.fallbackProps || propsIn;
22
+ const returnVariablesAs = getReturnVariablesAs(props, state);
23
+ const fontFamily = props[conf.inverseShorthands.fontFamily] || props.fontFamily || defaultProps.fontFamily || propsIn.fontFamily || "$body";
24
+ const variantValue = resolveVariants(
25
+ key,
26
+ value,
27
+ props,
28
+ defaultProps,
29
+ theme,
30
+ variants,
31
+ fontFamily,
32
+ conf,
33
+ returnVariablesAs,
34
+ staticConfig,
35
+ "",
36
+ languageContext,
37
+ avoidDefaultProps,
38
+ debug
39
+ );
40
+ if (variantValue) {
41
+ return variantValue;
68
42
  }
69
- let shouldReturn = false;
43
+ let shouldReturn = value !== void 0 && value !== null;
70
44
  if (conf.shorthands[key]) {
71
45
  shouldReturn = true;
72
46
  key = conf.shorthands[key];
73
47
  }
74
48
  if (value) {
75
- shouldReturn = true;
76
49
  if (value[0] === "$") {
77
- value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs);
50
+ value = getToken(
51
+ key,
52
+ value,
53
+ conf,
54
+ theme,
55
+ fontFamily,
56
+ languageContext,
57
+ returnVariablesAs,
58
+ debug
59
+ );
78
60
  } else if (isVariable(value)) {
79
- value = getVariableValue(value, returnVariablesAs);
61
+ value = resolveVariableValue(key, value, returnVariablesAs);
80
62
  }
81
63
  }
82
64
  if (shouldReturn) {
83
- return expansions({
84
- [key]: value
85
- });
65
+ return expandStyle(key, value) || [[key, value]];
86
66
  }
87
67
  };
88
- }, "createPropMapper");
89
- const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily, resolveAs) => {
68
+ return mapper;
69
+ };
70
+ const resolveVariants = (key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, languageContext, avoidDefaultProps = false, debug) => {
71
+ var _a;
72
+ const variant = variants && variants[key];
73
+ if (!variant || value === void 0) {
74
+ return;
75
+ }
76
+ let variantValue = getVariantDefinition(variant, key, value, conf);
77
+ if (!variantValue) {
78
+ if (process.env.NODE_ENV === "development") {
79
+ if ((_a = staticConfig.validStyles) == null ? void 0 : _a[key]) {
80
+ return null;
81
+ }
82
+ if (value === false) {
83
+ return null;
84
+ }
85
+ const name = staticConfig.componentName || "[UnnamedComponent]";
86
+ console.warn(
87
+ `No variant found: ${name} has variant "${key}", but no matching value "${value}"`
88
+ );
89
+ }
90
+ return;
91
+ }
92
+ if (typeof variantValue === "function") {
93
+ const fn = variantValue;
94
+ variantValue = fn(
95
+ value,
96
+ getVariantExtras(props, languageContext, theme, defaultProps, avoidDefaultProps)
97
+ );
98
+ }
99
+ let fontFamilyResult;
100
+ if (isObj(variantValue)) {
101
+ const fontFamilyUpdate = variantValue.fontFamily || variantValue[conf.inverseShorthands.fontFamily];
102
+ if (fontFamilyUpdate) {
103
+ fontFamilyResult = getFontFamilyFromNameOrVariable(fontFamilyUpdate, conf);
104
+ }
105
+ variantValue = resolveTokensAndVariants(
106
+ key,
107
+ variantValue,
108
+ props,
109
+ defaultProps,
110
+ theme,
111
+ variants,
112
+ fontFamilyResult || fontFamily,
113
+ conf,
114
+ returnVariablesAs,
115
+ staticConfig,
116
+ parentVariantKey,
117
+ languageContext,
118
+ avoidDefaultProps,
119
+ debug
120
+ );
121
+ }
122
+ if (variantValue) {
123
+ const next = Object.entries(expandStyles(variantValue));
124
+ if (fontFamilyResult && fontFamilyResult[0] === "$") {
125
+ fontFamilyCache.set(next, getVariableValue(fontFamilyResult));
126
+ }
127
+ return next;
128
+ }
129
+ };
130
+ function getFontFamilyFromNameOrVariable(input, conf) {
131
+ if (isVariable(input)) {
132
+ const val = variableToFontNameCache.get(input);
133
+ if (val) {
134
+ return val;
135
+ } else {
136
+ for (const key in conf.fontsParsed) {
137
+ const familyVariable = conf.fontsParsed[key].family;
138
+ if (isVariable(familyVariable)) {
139
+ variableToFontNameCache.set(familyVariable, key);
140
+ if (familyVariable === input) {
141
+ return key;
142
+ }
143
+ }
144
+ }
145
+ }
146
+ } else if (typeof input === "string") {
147
+ if ((input == null ? void 0 : input[0]) === "$") {
148
+ return input;
149
+ } else {
150
+ if (process.env.NODE_ENV === "development") {
151
+ console.log("[tamagui] should map back", input);
152
+ }
153
+ }
154
+ }
155
+ }
156
+ const variableToFontNameCache = /* @__PURE__ */ new WeakMap();
157
+ const fontFamilyCache = /* @__PURE__ */ new WeakMap();
158
+ const getPropMappedFontFamily = (expanded) => {
159
+ return expanded && fontFamilyCache.get(expanded);
160
+ };
161
+ const resolveTokensAndVariants = (key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, languageContext, avoidDefaultProps, debug) => {
90
162
  var _a;
91
- let res = {};
92
- for (const rKey in input) {
163
+ const res = {};
164
+ for (const rKey in value) {
93
165
  const fKey = conf.shorthands[rKey] || rKey;
94
- const val = input[rKey];
166
+ const val = value[rKey];
95
167
  if (isVariable(val)) {
96
- res[fKey] = resolveAs === "variable" ? val : !isWeb || resolveAs === "value" ? val.val : val.variable;
168
+ res[fKey] = !isWeb || returnVariablesAs === "value" ? val.val : val.variable;
169
+ } else if (variants[fKey]) {
170
+ if (parentVariantKey === key) {
171
+ res[fKey] = val;
172
+ } else {
173
+ Object.assign(
174
+ res,
175
+ Object.fromEntries(
176
+ resolveVariants(
177
+ fKey,
178
+ val,
179
+ props,
180
+ defaultProps,
181
+ theme,
182
+ variants,
183
+ fontFamily,
184
+ conf,
185
+ returnVariablesAs,
186
+ staticConfig,
187
+ key,
188
+ languageContext,
189
+ avoidDefaultProps,
190
+ debug
191
+ )
192
+ )
193
+ );
194
+ }
97
195
  } else if (typeof val === "string") {
98
- const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily, resolveAs) : val;
196
+ const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily, languageContext, returnVariablesAs, debug) : val;
99
197
  res[fKey] = fVal;
100
198
  } else {
101
199
  if (isObj(val)) {
102
- res[fKey] = resolveTokens(val, conf, theme, fontFamily, resolveAs);
200
+ res[fKey] = resolveTokensAndVariants(
201
+ fKey,
202
+ val,
203
+ props,
204
+ defaultProps,
205
+ theme,
206
+ variants,
207
+ fontFamily,
208
+ conf,
209
+ returnVariablesAs,
210
+ staticConfig,
211
+ key,
212
+ languageContext,
213
+ avoidDefaultProps,
214
+ debug
215
+ );
103
216
  } else {
104
- res[fKey] = input[fKey];
217
+ res[fKey] = value[fKey];
105
218
  }
106
219
  }
107
220
  if (process.env.NODE_ENV === "development") {
108
- if (((_a = res[fKey]) == null ? void 0 : _a[0]) === "$") {
109
- console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey]);
221
+ if (debug) {
222
+ if (((_a = res[fKey]) == null ? void 0 : _a[0]) === "$") {
223
+ console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey], theme);
224
+ }
110
225
  }
111
226
  }
112
227
  }
113
228
  return res;
114
- }, "resolveTokens");
229
+ };
230
+ function getVariantDefinition(variant, key, value, conf) {
231
+ if (typeof variant === "function") {
232
+ return variant;
233
+ }
234
+ if (variant[value]) {
235
+ return variant[value];
236
+ }
237
+ const { tokensParsed } = conf;
238
+ if (variant["...size"] && value in tokensParsed.size) {
239
+ return variant["...size"];
240
+ }
241
+ if (variant["...color"] && value in tokensParsed.color) {
242
+ return variant["...color"];
243
+ }
244
+ if (variant["...radius"] && value in tokensParsed.radius) {
245
+ return variant["...radius"];
246
+ }
247
+ if (variant["...space"] && value in tokensParsed.space) {
248
+ return variant["...space"];
249
+ }
250
+ if (variant["...zIndex"] && value in tokensParsed.zIndex) {
251
+ return variant["...zIndex"];
252
+ }
253
+ let fn;
254
+ if (typeof value === "number") {
255
+ fn = variant[":number"];
256
+ } else if (typeof value === "string") {
257
+ fn = variant[":string"];
258
+ } else if (value === true || value === false) {
259
+ fn = variant[":boolean"];
260
+ }
261
+ return fn || variant["..."] || variant["...size"];
262
+ }
115
263
  const fontShorthand = {
116
264
  fontSize: "size",
117
265
  fontWeight: "weight"
118
266
  };
119
- const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed }, theme, fontFamily = "$body", resolveAs) => {
267
+ const getToken = (key, value, conf, theme, fontFamily = "$body", languageContext, resolveAs, debug) => {
120
268
  var _a, _b, _c;
269
+ const tokensParsed = conf.tokensParsed;
270
+ const fontsParsed = languageContext ? getFontsForLanguage(conf.fontsParsed, languageContext) : conf.fontsParsed;
121
271
  let valOrVar;
122
272
  let hasSet = false;
123
- if (value in theme) {
273
+ if (theme[value]) {
124
274
  valOrVar = theme[value];
125
275
  hasSet = true;
126
276
  } else {
@@ -155,21 +305,41 @@ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed
155
305
  }
156
306
  }
157
307
  if (hasSet) {
158
- return getVariableValue(valOrVar, resolveAs);
308
+ if (process.env.NODE_ENV === "development" && isDevTools && debug === "verbose") {
309
+ console.log(` \uFE52 propMapper getToken`, key, valOrVar);
310
+ }
311
+ return resolveVariableValue(key, valOrVar, resolveAs);
159
312
  }
160
313
  if (process.env.NODE_ENV === "development") {
161
314
  if (value && value[0] === "$") {
162
- console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed);
315
+ console.trace(
316
+ `\u26A0\uFE0F You've passed the value "${value}" to the style property "${key}", but there's no theme or token with the key "${value}". Using theme "${theme.name}".
317
+
318
+ Set the debug prop to true to see more detailed debug information.`
319
+ );
320
+ if (debug) {
321
+ if (isDevTools) {
322
+ console.log("Looked in:", { theme, tokensParsed, fontsParsed });
323
+ }
324
+ }
163
325
  return null;
164
326
  }
165
327
  }
166
328
  return value;
167
- }, "getToken");
168
- function getVariableValue(valOrVar, resolveAs = "auto") {
329
+ };
330
+ function resolveVariableValue(key, valOrVar, resolveAs = "auto") {
169
331
  if (isVariable(valOrVar)) {
170
332
  if (resolveAs === "variable") {
171
333
  return valOrVar;
172
334
  }
335
+ if (resolveAs === "non-color-value") {
336
+ if (isWeb) {
337
+ if (key in tokenCategories.color) {
338
+ return valOrVar.variable;
339
+ }
340
+ }
341
+ return valOrVar.val;
342
+ }
173
343
  if (!isWeb || resolveAs === "value") {
174
344
  return valOrVar.val;
175
345
  }
@@ -177,10 +347,13 @@ function getVariableValue(valOrVar, resolveAs = "auto") {
177
347
  }
178
348
  return valOrVar;
179
349
  }
180
- __name(getVariableValue, "getVariableValue");
181
350
  const tokenCategories = {
182
351
  radius: {
183
- borderRadius: true
352
+ borderRadius: true,
353
+ borderTopLeftRadius: true,
354
+ borderTopRightRadius: true,
355
+ borderBottomLeftRadius: true,
356
+ borderBottomRightRadius: true
184
357
  },
185
358
  size: {
186
359
  width: true,
@@ -200,39 +373,10 @@ const tokenCategories = {
200
373
  borderRightColor: true
201
374
  }
202
375
  };
203
- const sidesX = ["Left", "Right"];
204
- const sidesY = ["Top", "Bottom"];
205
- const sidesXY = [...sidesX, ...sidesY];
206
- const expand = {
207
- padding: sidesXY.map((x) => `padding${x}`),
208
- paddingHorizontal: sidesX.map((x) => `padding${x}`),
209
- paddingVertical: sidesY.map((x) => `padding${x}`),
210
- margin: sidesXY.map((x) => `margin${x}`),
211
- marginHorizontal: sidesX.map((x) => `margin${x}`),
212
- marginVertical: sidesY.map((x) => `margin${x}`),
213
- borderWidth: sidesXY.map((x) => `border${x}Width`)
214
- };
215
- function expansions(styleObj) {
216
- var _a, _b;
217
- for (const key in expand) {
218
- if (key in styleObj) {
219
- for (const expandKey of expand[key]) {
220
- styleObj[expandKey] = styleObj[key];
221
- }
222
- delete styleObj[key];
223
- }
224
- }
225
- if ("flex" in styleObj) {
226
- if (typeof styleObj.flex === "number") {
227
- styleObj.flexGrow = (_a = styleObj.flexGrow) != null ? _a : styleObj.flex;
228
- styleObj.flexShrink = (_b = styleObj.flexShrink) != null ? _b : 1;
229
- delete styleObj.flex;
230
- }
231
- }
232
- return styleObj;
233
- }
234
- __name(expansions, "expansions");
235
376
  export {
236
- createPropMapper
377
+ createPropMapper,
378
+ getFontFamilyFromNameOrVariable,
379
+ getPropMappedFontFamily,
380
+ getReturnVariablesAs
237
381
  };
238
382
  //# sourceMappingURL=createPropMapper.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createPropMapper.ts"],
4
- "sourcesContent": ["import { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { Variable, isVariable } from '../createVariable'\nimport { StaticConfig, TamaguiInternalConfig, VariantSpreadFunction } from '../types'\nimport { isObj } from './isObj'\n\nexport type ResolveVariableTypes = 'auto' | 'value' | 'variable' | 'both'\n\n// goes through specificity finding best matching variant function\nfunction getVariantFunction(variant: any, key: string, value: any) {\n if (typeof variant === 'function') {\n return variant\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const spreadVariant = variant[`...${cat}`]\n if (spreadVariant) {\n return spreadVariant\n }\n }\n }\n let fn: any\n if (typeof value === 'number') {\n fn = variant[':number']\n } else if (typeof value === 'string') {\n fn = variant[':string']\n } else if (value === true || value === false) {\n fn = variant[':boolean']\n }\n fn = fn || variant[value]\n // fallback to size ultimately - could do token level detection\n return fn || variant['...'] || variant['...size']\n}\n\nexport const createPropMapper = (staticConfig: Partial<StaticConfig>) => {\n const variants = staticConfig.variants || {}\n const defaultProps = staticConfig.defaultProps || {}\n\n return (\n key: string,\n value: any,\n theme: any,\n props: any,\n returnVariablesAs: ResolveVariableTypes = !!props.animation ? 'value' : 'auto',\n avoidDefaultProps = false\n ) => {\n const conf = getConfig()\n if (!conf) {\n console.trace('no conf! err')\n return\n }\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n const fontFamily = props.fontFamily || defaultProps.fontFamily || '$body'\n const variant = variants && variants[key]\n\n if (variant && value !== undefined) {\n let variantValue = getVariantFunction(variant, key, value)\n\n if (variantValue) {\n if (typeof variantValue === 'function') {\n const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(value, {\n fonts: conf.fontsParsed,\n tokens: conf.tokensParsed,\n theme,\n // TODO do this in splitstlye\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n props: avoidDefaultProps\n ? props\n : new Proxy(props, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n // these props may be extracted into classNames, but we still want to access them\n // at runtime, so we proxy back to defaultProps but don't pass them\n if (defaultProps) {\n return Reflect.get(defaultProps, key)\n }\n },\n }),\n })\n }\n\n if (isObj(variantValue)) {\n variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs)\n }\n\n return expansions(variantValue)\n }\n }\n\n let shouldReturn = false\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n shouldReturn = true\n if (value[0] === '$') {\n value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs)\n } else if (isVariable(value)) {\n value = getVariableValue(value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return expansions({\n [key]: value,\n })\n }\n }\n}\n\nconst resolveTokens = (\n input: Object,\n conf: TamaguiInternalConfig,\n theme: any,\n fontFamily: any,\n resolveAs?: ResolveVariableTypes\n) => {\n let res = {}\n for (const rKey in input) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = input[rKey]\n if (isVariable(val)) {\n res[fKey] =\n resolveAs === 'variable' ? val : !isWeb || resolveAs === 'value' ? val.val : val.variable\n } else if (typeof val === 'string') {\n const fVal = val[0] === '$' ? getToken(fKey, val, conf, theme, fontFamily, resolveAs) : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // for things like shadowOffset, hoverStyle which is a sub-object\n res[fKey] = resolveTokens(val, conf, theme, fontFamily, resolveAs)\n } else {\n // nullish values cant be tokens so need no exrta parsing\n res[fKey] = input[fKey]\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (res[fKey]?.[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey])\n }\n }\n }\n return res\n}\n\nconst fontShorthand = {\n fontSize: 'size',\n fontWeight: 'weight',\n}\n\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed, fontsParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes\n) => {\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 if (hasSet) {\n return getVariableValue(valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed)\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(valOrVar: Variable | any, resolveAs: ResolveVariableTypes = 'auto') {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\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 },\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\n// TODO need to move to own engine for all this... duplicating some functionality temporarily\n\nconst sidesX = ['Left', 'Right']\nconst sidesY = ['Top', 'Bottom']\nconst sidesXY = [...sidesX, ...sidesY]\nconst expand = {\n padding: sidesXY.map((x) => `padding${x}`),\n paddingHorizontal: sidesX.map((x) => `padding${x}`),\n paddingVertical: sidesY.map((x) => `padding${x}`),\n margin: sidesXY.map((x) => `margin${x}`),\n marginHorizontal: sidesX.map((x) => `margin${x}`),\n marginVertical: sidesY.map((x) => `margin${x}`),\n borderWidth: sidesXY.map((x) => `border${x}Width`),\n}\n\nfunction expansions(styleObj: Record<string, any>) {\n for (const key in expand) {\n if (key in styleObj) {\n for (const expandKey of expand[key]) {\n styleObj[expandKey] = styleObj[key]\n }\n delete styleObj[key]\n }\n }\n if ('flex' in styleObj) {\n // see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n if (typeof styleObj.flex === 'number') {\n styleObj.flexGrow = styleObj.flexGrow ?? styleObj.flex\n styleObj.flexShrink = styleObj.flexShrink ?? 1\n delete styleObj.flex\n }\n }\n return styleObj\n}\n"],
5
- "mappings": "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",
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 = 'auto' | 'value' | 'variable' | 'both' | '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 const mapper: PropMapper = (\n key,\n value,\n theme,\n propsIn,\n state,\n languageContext,\n avoidDefaultProps = false,\n debug\n ) => {\n const conf = getConfig()\n if (!conf) {\n throw new Error(`No tamagui config setup`)\n }\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 (conf.shorthands[key]) {\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 && 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(fKey, val, conf, theme, fontFamily, languageContext, returnVariablesAs, debug)\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] = value[fKey]\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 return res\n}\n\n// goes through specificity finding best matching variant function\nfunction getVariantDefinition(variant: any, key: string, value: any, conf: TamaguiInternalConfig) {\n if (typeof variant === 'function') {\n return variant\n }\n if (variant[value]) {\n return variant[value]\n }\n const { tokensParsed } = conf\n if (variant['...size'] && value in tokensParsed.size) {\n return variant['...size']\n }\n if (variant['...color'] && value in tokensParsed.color) {\n return variant['...color']\n }\n if (variant['...radius'] && value in tokensParsed.radius) {\n return variant['...radius']\n }\n if (variant['...space'] && value in tokensParsed.space) {\n return variant['...space']\n }\n if (variant['...zIndex'] && value in tokensParsed.zIndex) {\n return variant['...zIndex']\n }\n let fn: any\n if (typeof value === 'number') {\n fn = variant[':number']\n } else if (typeof value === '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 (theme[value]) {\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 if (hasSet) {\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)\n }\n return resolveVariableValue(key, valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n // eslint-disable-next-line no-console\n console.trace(\n `\u26A0\uFE0F You've 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
6
  "names": []
7
7
  }
@@ -1,18 +1,19 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
1
+ import { useCallback } from "react";
3
2
  function createShallowUpdate(setter) {
4
- return (next) => {
5
- setter((prev) => {
6
- for (const key in next) {
7
- if (prev[key] !== next[key]) {
8
- return { ...prev, ...next };
3
+ return useCallback(
4
+ (next) => {
5
+ setter((prev) => {
6
+ for (const key in next) {
7
+ if (prev[key] !== next[key]) {
8
+ return { ...prev, ...next };
9
+ }
9
10
  }
10
- }
11
- return prev;
12
- });
13
- };
11
+ return prev;
12
+ });
13
+ },
14
+ [setter]
15
+ );
14
16
  }
15
- __name(createShallowUpdate, "createShallowUpdate");
16
17
  export {
17
18
  createShallowUpdate
18
19
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createShallowUpdate.tsx"],
4
- "sourcesContent": ["import React from 'react'\n\nimport { TamaguiComponentState } from '../types'\n\nexport function createShallowUpdate(\n setter: React.Dispatch<React.SetStateAction<TamaguiComponentState>>\n) {\n return (next: Partial<TamaguiComponentState>) => {\n setter((prev) => {\n for (const key in next) {\n if (prev[key] !== next[key]) {\n return { ...prev, ...next }\n }\n }\n return prev\n })\n }\n}\n"],
5
- "mappings": ";;AAIO,6BACL,QACA;AACA,SAAO,CAAC,SAAyC;AAC/C,WAAO,CAAC,SAAS;AACf,iBAAW,OAAO,MAAM;AACtB,YAAI,KAAK,SAAS,KAAK,MAAM;AAC3B,iBAAO,KAAK,SAAS,KAAK;AAAA,QAC5B;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;AAbgB;",
4
+ "sourcesContent": ["import React, { useCallback } from 'react'\n\nexport function createShallowUpdate<State extends Object>(\n setter: React.Dispatch<React.SetStateAction<State>>\n) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useCallback(\n (next: Partial<State>) => {\n setter((prev) => {\n for (const key in next) {\n if (prev[key] !== next[key]) {\n return { ...prev, ...next }\n }\n }\n return prev\n })\n },\n [setter]\n )\n}\n"],
5
+ "mappings": "AAAA,SAAgB,mBAAmB;AAE5B,SAAS,oBACd,QACA;AAEA,SAAO;AAAA,IACL,CAAC,SAAyB;AACxB,aAAO,CAAC,SAAS;AACf,mBAAW,OAAO,MAAM;AACtB,cAAI,KAAK,SAAS,KAAK,MAAM;AAC3B,mBAAO,EAAE,GAAG,MAAM,GAAG,KAAK;AAAA,UAC5B;AAAA,QACF;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }