@tamagui/core 1.0.1-beta.92 → 1.0.1-beta.95

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 (445) hide show
  1. package/dist/cjs/Pressability.js +0 -0
  2. package/dist/cjs/Pressability.js.map +0 -0
  3. package/dist/cjs/Pressability.native.js +0 -0
  4. package/dist/cjs/Pressability.native.js.map +0 -0
  5. package/dist/cjs/Tamagui.js +0 -0
  6. package/dist/cjs/Tamagui.js.map +0 -0
  7. package/dist/cjs/ThemeContext.js +0 -0
  8. package/dist/cjs/ThemeContext.js.map +0 -0
  9. package/dist/cjs/ThemeManager.js +0 -0
  10. package/dist/cjs/ThemeManager.js.map +0 -0
  11. package/dist/cjs/conf.js +0 -0
  12. package/dist/cjs/conf.js.map +0 -0
  13. package/dist/cjs/constants/constants.js +0 -0
  14. package/dist/cjs/constants/constants.js.map +0 -0
  15. package/dist/cjs/constants/platform.js +0 -0
  16. package/dist/cjs/constants/platform.js.map +0 -0
  17. package/dist/cjs/constants/rnw.js +0 -0
  18. package/dist/cjs/constants/rnw.js.map +0 -0
  19. package/dist/cjs/constants/rnw.native.js +0 -0
  20. package/dist/cjs/constants/rnw.native.js.map +0 -0
  21. package/dist/cjs/contexts/ButtonInsideButtonContext.js +0 -0
  22. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +0 -0
  23. package/dist/cjs/createComponent.js +39 -49
  24. package/dist/cjs/createComponent.js.map +2 -2
  25. package/dist/cjs/createFont.js +0 -0
  26. package/dist/cjs/createFont.js.map +0 -0
  27. package/dist/cjs/createShorthands.js +0 -0
  28. package/dist/cjs/createShorthands.js.map +0 -0
  29. package/dist/cjs/createTamagui.js +15 -10
  30. package/dist/cjs/createTamagui.js.map +2 -2
  31. package/dist/cjs/createTheme.js +0 -0
  32. package/dist/cjs/createTheme.js.map +0 -0
  33. package/dist/cjs/createTokens.js +0 -0
  34. package/dist/cjs/createTokens.js.map +0 -0
  35. package/dist/cjs/createVariable.js +0 -0
  36. package/dist/cjs/createVariable.js.map +0 -0
  37. package/dist/cjs/createVariables.js +0 -0
  38. package/dist/cjs/createVariables.js.map +0 -0
  39. package/dist/cjs/defaultComponentState.js +0 -0
  40. package/dist/cjs/defaultComponentState.js.map +0 -0
  41. package/dist/cjs/helpers/RNComponents.js +0 -0
  42. package/dist/cjs/helpers/RNComponents.js.map +0 -0
  43. package/dist/cjs/helpers/areEqualSets.js +0 -0
  44. package/dist/cjs/helpers/areEqualSets.js.map +0 -0
  45. package/dist/cjs/helpers/assignNativePropsToWeb.js +0 -0
  46. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +0 -0
  47. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +0 -0
  48. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +0 -0
  49. package/dist/cjs/helpers/calc.js +0 -0
  50. package/dist/cjs/helpers/calc.js.map +0 -0
  51. package/dist/cjs/helpers/createMediaStyle.js +0 -0
  52. package/dist/cjs/helpers/createMediaStyle.js.map +0 -0
  53. package/dist/cjs/helpers/createPropMapper.js +24 -17
  54. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  55. package/dist/cjs/helpers/createShallowUpdate.js +0 -0
  56. package/dist/cjs/helpers/createShallowUpdate.js.map +0 -0
  57. package/dist/cjs/helpers/createTamaguiProvider.js +0 -0
  58. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -0
  59. package/dist/cjs/helpers/expandStyle.js +120 -0
  60. package/dist/cjs/helpers/expandStyle.js.map +7 -0
  61. package/dist/cjs/helpers/expandStyles.js +126 -0
  62. package/dist/cjs/helpers/expandStyles.js.map +7 -0
  63. package/dist/cjs/helpers/extendStaticConfig.js +5 -3
  64. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  65. package/dist/cjs/helpers/fixNativeShadow.js +0 -0
  66. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -0
  67. package/dist/cjs/helpers/getExpandedShorthands.js +0 -0
  68. package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -0
  69. package/dist/cjs/helpers/getFont.js +61 -0
  70. package/dist/cjs/helpers/getFont.js.map +7 -0
  71. package/dist/cjs/helpers/getSize.js +0 -0
  72. package/dist/cjs/helpers/getSize.js.map +0 -0
  73. package/dist/cjs/helpers/getSplitStyles.js +113 -108
  74. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  75. package/dist/cjs/helpers/getStackSize.js +7 -0
  76. package/dist/cjs/helpers/getStackSize.js.map +2 -2
  77. package/dist/cjs/helpers/getStylesAtomic.js +165 -4
  78. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  79. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -0
  80. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -0
  81. package/dist/cjs/helpers/getTextSize.js +0 -0
  82. package/dist/cjs/helpers/getTextSize.js.map +0 -0
  83. package/dist/cjs/helpers/getVariantExtras.js +0 -0
  84. package/dist/cjs/helpers/getVariantExtras.js.map +0 -0
  85. package/dist/cjs/helpers/insertStyleRule.js +0 -0
  86. package/dist/cjs/helpers/insertStyleRule.js.map +0 -0
  87. package/dist/cjs/helpers/isObj.js +0 -0
  88. package/dist/cjs/helpers/isObj.js.map +0 -0
  89. package/dist/cjs/helpers/isTamaguiComponent.js +0 -0
  90. package/dist/cjs/helpers/isTamaguiComponent.js.map +0 -0
  91. package/dist/cjs/helpers/isTamaguiElement.js +0 -0
  92. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -0
  93. package/dist/cjs/helpers/matchMedia.js +0 -0
  94. package/dist/cjs/helpers/matchMedia.js.map +0 -0
  95. package/dist/cjs/helpers/matchMedia.native.js +0 -0
  96. package/dist/cjs/helpers/matchMedia.native.js.map +0 -0
  97. package/dist/cjs/helpers/mergeProps.js +0 -0
  98. package/dist/cjs/helpers/mergeProps.js.map +0 -0
  99. package/dist/cjs/helpers/mergeTransform.js +0 -0
  100. package/dist/cjs/helpers/mergeTransform.js.map +0 -0
  101. package/dist/cjs/helpers/nativeGestureHandler.native.js +0 -0
  102. package/dist/cjs/helpers/nativeGestureHandler.native.js.map +0 -0
  103. package/dist/cjs/helpers/normalizeColor.js +76 -0
  104. package/dist/cjs/helpers/normalizeColor.js.map +7 -0
  105. package/dist/cjs/helpers/normalizeValueWithProperty.js +90 -0
  106. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
  107. package/dist/cjs/helpers/proxyThemeVariables.js +0 -0
  108. package/dist/cjs/helpers/proxyThemeVariables.js.map +0 -0
  109. package/dist/cjs/helpers/pseudoDescriptors.js +0 -0
  110. package/dist/cjs/helpers/pseudoDescriptors.js.map +0 -0
  111. package/dist/cjs/helpers/registerCSSVariable.js +0 -0
  112. package/dist/cjs/helpers/registerCSSVariable.js.map +0 -0
  113. package/dist/cjs/helpers/themeable.js +0 -0
  114. package/dist/cjs/helpers/themeable.js.map +0 -0
  115. package/dist/cjs/helpers/validate.js +0 -0
  116. package/dist/cjs/helpers/validate.js.map +0 -0
  117. package/dist/cjs/helpers/withStaticProperties.js +0 -0
  118. package/dist/cjs/helpers/withStaticProperties.js.map +0 -0
  119. package/dist/cjs/helpers/wrapThemeManagerContext.js +0 -0
  120. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +0 -0
  121. package/dist/cjs/hooks/useConstant.js +0 -0
  122. package/dist/cjs/hooks/useConstant.js.map +0 -0
  123. package/dist/cjs/hooks/useFeatures.js +5 -2
  124. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  125. package/dist/cjs/hooks/useId.js +0 -0
  126. package/dist/cjs/hooks/useId.js.map +0 -0
  127. package/dist/cjs/hooks/useIsMounted.js +0 -0
  128. package/dist/cjs/hooks/useIsMounted.js.map +0 -0
  129. package/dist/cjs/hooks/useIsTouchDevice.js +0 -0
  130. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -0
  131. package/dist/cjs/hooks/useMedia.js +0 -0
  132. package/dist/cjs/hooks/useMedia.js.map +0 -0
  133. package/dist/cjs/hooks/usePressable.js +0 -0
  134. package/dist/cjs/hooks/usePressable.js.map +0 -0
  135. package/dist/cjs/hooks/usePrevious.js +0 -0
  136. package/dist/cjs/hooks/usePrevious.js.map +0 -0
  137. package/dist/cjs/hooks/useTheme.js +1 -1
  138. package/dist/cjs/hooks/useTheme.js.map +2 -2
  139. package/dist/cjs/hooks/useUnmountEffect.js +0 -0
  140. package/dist/cjs/hooks/useUnmountEffect.js.map +0 -0
  141. package/dist/cjs/index.js +2 -4
  142. package/dist/cjs/index.js.map +2 -2
  143. package/dist/cjs/insertFont.js +0 -0
  144. package/dist/cjs/insertFont.js.map +0 -0
  145. package/dist/cjs/static.js +1 -1
  146. package/dist/cjs/static.js.map +2 -2
  147. package/dist/cjs/styled.js +0 -0
  148. package/dist/cjs/styled.js.map +2 -2
  149. package/dist/cjs/types-rnw.js +0 -0
  150. package/dist/cjs/types-rnw.js.map +0 -0
  151. package/dist/cjs/types.js +0 -0
  152. package/dist/cjs/types.js.map +1 -1
  153. package/dist/cjs/views/Slot.js +0 -0
  154. package/dist/cjs/views/Slot.js.map +0 -0
  155. package/dist/cjs/views/Stack.js +0 -0
  156. package/dist/cjs/views/Stack.js.map +0 -0
  157. package/dist/cjs/views/Text.js +0 -0
  158. package/dist/cjs/views/Text.js.map +0 -0
  159. package/dist/cjs/views/TextAncestorContext.js +0 -0
  160. package/dist/cjs/views/TextAncestorContext.js.map +0 -0
  161. package/dist/cjs/views/Theme.js +0 -0
  162. package/dist/cjs/views/Theme.js.map +0 -0
  163. package/dist/cjs/views/ThemeInverse.js +0 -0
  164. package/dist/cjs/views/ThemeInverse.js.map +0 -0
  165. package/dist/cjs/views/ThemeProvider.js +0 -0
  166. package/dist/cjs/views/ThemeProvider.js.map +0 -0
  167. package/dist/cjs/views/ThemeReset.js +0 -0
  168. package/dist/cjs/views/ThemeReset.js.map +0 -0
  169. package/dist/esm/Pressability.js +0 -0
  170. package/dist/esm/Pressability.js.map +0 -0
  171. package/dist/esm/Pressability.native.js +0 -0
  172. package/dist/esm/Pressability.native.js.map +0 -0
  173. package/dist/esm/Tamagui.js +0 -0
  174. package/dist/esm/Tamagui.js.map +0 -0
  175. package/dist/esm/ThemeContext.js +0 -0
  176. package/dist/esm/ThemeContext.js.map +0 -0
  177. package/dist/esm/ThemeManager.js +0 -0
  178. package/dist/esm/ThemeManager.js.map +0 -0
  179. package/dist/esm/conf.js +0 -0
  180. package/dist/esm/conf.js.map +0 -0
  181. package/dist/esm/constants/constants.js +0 -0
  182. package/dist/esm/constants/constants.js.map +0 -0
  183. package/dist/esm/constants/platform.js +0 -0
  184. package/dist/esm/constants/platform.js.map +0 -0
  185. package/dist/esm/constants/rnw.js +0 -0
  186. package/dist/esm/constants/rnw.js.map +0 -0
  187. package/dist/esm/constants/rnw.native.js +0 -0
  188. package/dist/esm/constants/rnw.native.js.map +0 -0
  189. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  190. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +0 -0
  191. package/dist/esm/createComponent.js +39 -49
  192. package/dist/esm/createComponent.js.map +2 -2
  193. package/dist/esm/createFont.js +0 -0
  194. package/dist/esm/createFont.js.map +0 -0
  195. package/dist/esm/createShorthands.js +0 -0
  196. package/dist/esm/createShorthands.js.map +0 -0
  197. package/dist/esm/createTamagui.js +15 -10
  198. package/dist/esm/createTamagui.js.map +2 -2
  199. package/dist/esm/createTheme.js +0 -0
  200. package/dist/esm/createTheme.js.map +0 -0
  201. package/dist/esm/createTokens.js +0 -0
  202. package/dist/esm/createTokens.js.map +0 -0
  203. package/dist/esm/createVariable.js +0 -0
  204. package/dist/esm/createVariable.js.map +0 -0
  205. package/dist/esm/createVariables.js +0 -0
  206. package/dist/esm/createVariables.js.map +0 -0
  207. package/dist/esm/defaultComponentState.js +0 -0
  208. package/dist/esm/defaultComponentState.js.map +0 -0
  209. package/dist/esm/helpers/RNComponents.js +0 -0
  210. package/dist/esm/helpers/RNComponents.js.map +0 -0
  211. package/dist/esm/helpers/areEqualSets.js +0 -0
  212. package/dist/esm/helpers/areEqualSets.js.map +0 -0
  213. package/dist/esm/helpers/assignNativePropsToWeb.js +0 -0
  214. package/dist/esm/helpers/assignNativePropsToWeb.js.map +0 -0
  215. package/dist/esm/helpers/assignNativePropsToWeb.native.js +0 -0
  216. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +0 -0
  217. package/dist/esm/helpers/calc.js +0 -0
  218. package/dist/esm/helpers/calc.js.map +0 -0
  219. package/dist/esm/helpers/createMediaStyle.js +0 -0
  220. package/dist/esm/helpers/createMediaStyle.js.map +0 -0
  221. package/dist/esm/helpers/createPropMapper.js +22 -15
  222. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  223. package/dist/esm/helpers/createShallowUpdate.js +0 -0
  224. package/dist/esm/helpers/createShallowUpdate.js.map +0 -0
  225. package/dist/esm/helpers/createTamaguiProvider.js +0 -0
  226. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -0
  227. package/dist/esm/helpers/expandStyle.js +99 -0
  228. package/dist/esm/helpers/expandStyle.js.map +7 -0
  229. package/dist/esm/helpers/expandStyles.js +103 -0
  230. package/dist/esm/helpers/expandStyles.js.map +7 -0
  231. package/dist/esm/helpers/extendStaticConfig.js +5 -3
  232. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  233. package/dist/esm/helpers/fixNativeShadow.js +0 -0
  234. package/dist/esm/helpers/fixNativeShadow.js.map +0 -0
  235. package/dist/esm/helpers/getExpandedShorthands.js +0 -0
  236. package/dist/esm/helpers/getExpandedShorthands.js.map +0 -0
  237. package/dist/esm/helpers/getFont.js +38 -0
  238. package/dist/esm/helpers/getFont.js.map +7 -0
  239. package/dist/esm/helpers/getSize.js +0 -0
  240. package/dist/esm/helpers/getSize.js.map +0 -0
  241. package/dist/esm/helpers/getSplitStyles.js +114 -108
  242. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  243. package/dist/esm/helpers/getStackSize.js +7 -0
  244. package/dist/esm/helpers/getStackSize.js.map +2 -2
  245. package/dist/esm/helpers/getStylesAtomic.js +158 -2
  246. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  247. package/dist/esm/helpers/getStylesAtomic.native.js +0 -0
  248. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -0
  249. package/dist/esm/helpers/getTextSize.js +0 -0
  250. package/dist/esm/helpers/getTextSize.js.map +0 -0
  251. package/dist/esm/helpers/getVariantExtras.js +0 -0
  252. package/dist/esm/helpers/getVariantExtras.js.map +0 -0
  253. package/dist/esm/helpers/insertStyleRule.js +0 -0
  254. package/dist/esm/helpers/insertStyleRule.js.map +0 -0
  255. package/dist/esm/helpers/isObj.js +0 -0
  256. package/dist/esm/helpers/isObj.js.map +0 -0
  257. package/dist/esm/helpers/isTamaguiComponent.js +0 -0
  258. package/dist/esm/helpers/isTamaguiComponent.js.map +0 -0
  259. package/dist/esm/helpers/isTamaguiElement.js +0 -0
  260. package/dist/esm/helpers/isTamaguiElement.js.map +0 -0
  261. package/dist/esm/helpers/matchMedia.js +0 -0
  262. package/dist/esm/helpers/matchMedia.js.map +0 -0
  263. package/dist/esm/helpers/matchMedia.native.js +0 -0
  264. package/dist/esm/helpers/matchMedia.native.js.map +0 -0
  265. package/dist/esm/helpers/mergeProps.js +0 -0
  266. package/dist/esm/helpers/mergeProps.js.map +0 -0
  267. package/dist/esm/helpers/mergeTransform.js +0 -0
  268. package/dist/esm/helpers/mergeTransform.js.map +0 -0
  269. package/dist/esm/helpers/nativeGestureHandler.native.js +0 -0
  270. package/dist/esm/helpers/nativeGestureHandler.native.js.map +0 -0
  271. package/dist/esm/helpers/normalizeColor.js +49 -0
  272. package/dist/esm/helpers/normalizeColor.js.map +7 -0
  273. package/dist/esm/helpers/normalizeValueWithProperty.js +67 -0
  274. package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
  275. package/dist/esm/helpers/proxyThemeVariables.js +0 -0
  276. package/dist/esm/helpers/proxyThemeVariables.js.map +0 -0
  277. package/dist/esm/helpers/pseudoDescriptors.js +0 -0
  278. package/dist/esm/helpers/pseudoDescriptors.js.map +0 -0
  279. package/dist/esm/helpers/registerCSSVariable.js +0 -0
  280. package/dist/esm/helpers/registerCSSVariable.js.map +0 -0
  281. package/dist/esm/helpers/themeable.js +0 -0
  282. package/dist/esm/helpers/themeable.js.map +0 -0
  283. package/dist/esm/helpers/validate.js +0 -0
  284. package/dist/esm/helpers/validate.js.map +0 -0
  285. package/dist/esm/helpers/withStaticProperties.js +0 -0
  286. package/dist/esm/helpers/withStaticProperties.js.map +0 -0
  287. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -0
  288. package/dist/esm/helpers/wrapThemeManagerContext.js.map +0 -0
  289. package/dist/esm/hooks/useConstant.js +0 -0
  290. package/dist/esm/hooks/useConstant.js.map +0 -0
  291. package/dist/esm/hooks/useFeatures.js +5 -2
  292. package/dist/esm/hooks/useFeatures.js.map +2 -2
  293. package/dist/esm/hooks/useId.js +0 -0
  294. package/dist/esm/hooks/useId.js.map +0 -0
  295. package/dist/esm/hooks/useIsMounted.js +0 -0
  296. package/dist/esm/hooks/useIsMounted.js.map +0 -0
  297. package/dist/esm/hooks/useIsTouchDevice.js +0 -0
  298. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -0
  299. package/dist/esm/hooks/useMedia.js +0 -0
  300. package/dist/esm/hooks/useMedia.js.map +0 -0
  301. package/dist/esm/hooks/usePressable.js +0 -0
  302. package/dist/esm/hooks/usePressable.js.map +0 -0
  303. package/dist/esm/hooks/usePrevious.js +0 -0
  304. package/dist/esm/hooks/usePrevious.js.map +0 -0
  305. package/dist/esm/hooks/useTheme.js +1 -1
  306. package/dist/esm/hooks/useTheme.js.map +2 -2
  307. package/dist/esm/hooks/useUnmountEffect.js +0 -0
  308. package/dist/esm/hooks/useUnmountEffect.js.map +0 -0
  309. package/dist/esm/index.js +2 -3
  310. package/dist/esm/index.js.map +1 -1
  311. package/dist/esm/insertFont.js +0 -0
  312. package/dist/esm/insertFont.js.map +0 -0
  313. package/dist/esm/static.js +1 -1
  314. package/dist/esm/static.js.map +1 -1
  315. package/dist/esm/styled.js +0 -0
  316. package/dist/esm/styled.js.map +2 -2
  317. package/dist/esm/types-rnw.js +0 -0
  318. package/dist/esm/types-rnw.js.map +0 -0
  319. package/dist/esm/types.js +0 -0
  320. package/dist/esm/types.js.map +0 -0
  321. package/dist/esm/views/Slot.js +0 -0
  322. package/dist/esm/views/Slot.js.map +0 -0
  323. package/dist/esm/views/Stack.js +0 -0
  324. package/dist/esm/views/Stack.js.map +0 -0
  325. package/dist/esm/views/Text.js +0 -0
  326. package/dist/esm/views/Text.js.map +0 -0
  327. package/dist/esm/views/TextAncestorContext.js +0 -0
  328. package/dist/esm/views/TextAncestorContext.js.map +0 -0
  329. package/dist/esm/views/Theme.js +0 -0
  330. package/dist/esm/views/Theme.js.map +0 -0
  331. package/dist/esm/views/ThemeInverse.js +0 -0
  332. package/dist/esm/views/ThemeInverse.js.map +0 -0
  333. package/dist/esm/views/ThemeProvider.js +0 -0
  334. package/dist/esm/views/ThemeProvider.js.map +0 -0
  335. package/dist/esm/views/ThemeReset.js +0 -0
  336. package/dist/esm/views/ThemeReset.js.map +0 -0
  337. package/package.json +7 -7
  338. package/reset.css +1 -1
  339. package/types/Tamagui.d.ts.map +0 -0
  340. package/types/ThemeContext.d.ts.map +0 -0
  341. package/types/ThemeManager.d.ts.map +0 -0
  342. package/types/conf.d.ts.map +0 -0
  343. package/types/createComponent.d.ts.map +1 -1
  344. package/types/createFont.d.ts.map +0 -0
  345. package/types/createTamagui.d.ts.map +1 -1
  346. package/types/createTokens.d.ts.map +0 -0
  347. package/types/helpers/assignNativePropsToWeb.d.ts.map +0 -0
  348. package/types/helpers/calc.d.ts.map +0 -0
  349. package/types/helpers/createMediaStyle.d.ts.map +0 -0
  350. package/types/helpers/createPropMapper.d.ts +2 -2
  351. package/types/helpers/createPropMapper.d.ts.map +1 -1
  352. package/types/helpers/createTamaguiProvider.d.ts +0 -1
  353. package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
  354. package/types/helpers/expandStyle.d.ts +2 -0
  355. package/types/helpers/expandStyles.d.ts +7 -0
  356. package/types/helpers/expandStyles.d.ts.map +1 -0
  357. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  358. package/types/helpers/getExpandedShorthands.d.ts.map +0 -0
  359. package/types/helpers/getFont.d.ts +3 -0
  360. package/types/helpers/getFont.d.ts.map +1 -0
  361. package/types/helpers/getSize.d.ts.map +0 -0
  362. package/types/helpers/getSplitStyles.d.ts +2 -3
  363. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  364. package/types/helpers/getStackSize.d.ts +1 -1
  365. package/types/helpers/getStackSize.d.ts.map +1 -1
  366. package/types/helpers/getStylesAtomic.d.ts +6 -0
  367. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  368. package/types/helpers/getVariantExtras.d.ts.map +0 -0
  369. package/types/helpers/isTamaguiComponent.d.ts.map +0 -0
  370. package/types/helpers/isTamaguiElement.d.ts.map +0 -0
  371. package/types/helpers/normalizeColor.d.ts +3 -0
  372. package/types/helpers/normalizeValueWithProperty.d.ts +2 -0
  373. package/types/helpers/themeable.d.ts.map +0 -0
  374. package/types/helpers/wrapThemeManagerContext.d.ts.map +0 -0
  375. package/types/hooks/useFeatures.d.ts.map +1 -1
  376. package/types/hooks/useMedia.d.ts.map +0 -0
  377. package/types/hooks/useTheme.d.ts.map +1 -1
  378. package/types/index.d.ts +2 -2
  379. package/types/index.d.ts.map +1 -1
  380. package/types/insertFont.d.ts.map +0 -0
  381. package/types/static.d.ts +1 -1
  382. package/types/static.d.ts.map +1 -1
  383. package/types/styled.d.ts.map +1 -1
  384. package/types/types.d.ts +5 -3
  385. package/types/types.d.ts.map +1 -1
  386. package/types/views/Stack.d.ts.map +0 -0
  387. package/types/views/Text.d.ts.map +0 -0
  388. package/types/views/Theme.d.ts.map +0 -0
  389. package/types/views/ThemeInverse.d.ts.map +0 -0
  390. package/types/views/ThemeProvider.d.ts.map +0 -0
  391. package/types/views/ThemeReset.d.ts.map +0 -0
  392. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -51
  393. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  394. package/dist/cjs/helpers/generateAtomicStyles.js +0 -437
  395. package/dist/cjs/helpers/generateAtomicStyles.js.map +0 -7
  396. package/dist/esm/helpers/fixNativeShadow.native.js +0 -28
  397. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  398. package/dist/esm/helpers/generateAtomicStyles.js +0 -410
  399. package/dist/esm/helpers/generateAtomicStyles.js.map +0 -7
  400. package/types/Pressability.d.ts.map +0 -1
  401. package/types/Pressability.native.d.ts.map +0 -1
  402. package/types/constants/constants.d.ts.map +0 -1
  403. package/types/constants/platform.d.ts.map +0 -1
  404. package/types/constants/rnw.d.ts.map +0 -1
  405. package/types/constants/rnw.native.d.ts.map +0 -1
  406. package/types/contexts/ButtonInsideButtonContext.d.ts.map +0 -1
  407. package/types/createShorthands.d.ts.map +0 -1
  408. package/types/createTheme.d.ts.map +0 -1
  409. package/types/createVariable.d.ts.map +0 -1
  410. package/types/createVariables.d.ts.map +0 -1
  411. package/types/defaultComponentState.d.ts.map +0 -1
  412. package/types/helpers/RNComponents.d.ts.map +0 -1
  413. package/types/helpers/areEqualSets.d.ts.map +0 -1
  414. package/types/helpers/assignNativePropsToWeb.native.d.ts.map +0 -1
  415. package/types/helpers/createShallowUpdate.d.ts.map +0 -1
  416. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  417. package/types/helpers/fixNativeShadow.native.d.ts +0 -3
  418. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  419. package/types/helpers/generateAtomicStyles.d.ts +0 -12
  420. package/types/helpers/generateAtomicStyles.d.ts.map +0 -1
  421. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  422. package/types/helpers/getTextSize.d.ts +0 -3
  423. package/types/helpers/getTextSize.d.ts.map +0 -1
  424. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  425. package/types/helpers/isObj.d.ts.map +0 -1
  426. package/types/helpers/matchMedia.d.ts.map +0 -1
  427. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  428. package/types/helpers/mergeProps.d.ts.map +0 -1
  429. package/types/helpers/mergeTransform.d.ts.map +0 -1
  430. package/types/helpers/nativeGestureHandler.native.d.ts.map +0 -1
  431. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  432. package/types/helpers/pseudoDescriptors.d.ts.map +0 -1
  433. package/types/helpers/registerCSSVariable.d.ts.map +0 -1
  434. package/types/helpers/validate.d.ts.map +0 -1
  435. package/types/helpers/withStaticProperties.d.ts.map +0 -1
  436. package/types/hooks/useConstant.d.ts.map +0 -1
  437. package/types/hooks/useId.d.ts.map +0 -1
  438. package/types/hooks/useIsMounted.d.ts.map +0 -1
  439. package/types/hooks/useIsTouchDevice.d.ts.map +0 -1
  440. package/types/hooks/usePressable.d.ts.map +0 -1
  441. package/types/hooks/usePrevious.d.ts.map +0 -1
  442. package/types/hooks/useUnmountEffect.d.ts.map +0 -1
  443. package/types/types-rnw.d.ts.map +0 -1
  444. package/types/views/Slot.d.ts.map +0 -1
  445. package/types/views/TextAncestorContext.d.ts.map +0 -1
@@ -20,8 +20,8 @@ import { getConfig } from "../conf";
20
20
  import { isClient, isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
21
21
  import { mediaQueryConfig, mediaState } from "../hooks/useMedia";
22
22
  import { createMediaStyle } from "./createMediaStyle";
23
- import { fixNativeShadow } from "./fixNativeShadow";
24
- import { getAtomicStyle, getStylesAtomic } from "./getStylesAtomic";
23
+ import { fixStyles } from "./expandStyles";
24
+ import { getAtomicStyle, getStylesAtomic, styleToCSS } from "./getStylesAtomic";
25
25
  import {
26
26
  insertStyleRule,
27
27
  insertedTransforms,
@@ -29,6 +29,7 @@ import {
29
29
  updateInsertedCache
30
30
  } from "./insertStyleRule";
31
31
  import { mergeTransform } from "./mergeTransform";
32
+ import { normalizeValueWithProperty } from "./normalizeValueWithProperty";
32
33
  import { pseudoDescriptors } from "./pseudoDescriptors";
33
34
  const skipProps = __spreadValues({
34
35
  animation: true,
@@ -71,7 +72,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
71
72
  let transforms = null;
72
73
  let rulesToInsert = null;
73
74
  function addStyle(prop, rule) {
74
- if (isWeb) {
75
+ if (process.env.TAMAGUI_TARGET === "web") {
75
76
  if (updateInsertedCache(prop, rule) || !isClient && process.env.NODE_ENV === "production") {
76
77
  rulesToInsert = rulesToInsert || [];
77
78
  rulesToInsert.push([prop, rule]);
@@ -79,46 +80,45 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
79
80
  }
80
81
  }
81
82
  function mergeClassName(key, val, isMediaOrPseudo = false) {
82
- if (!val)
83
- return;
84
- if (val.startsWith("_transform-")) {
85
- const namespace = isMediaOrPseudo ? key : "transform";
86
- let transform = insertedTransforms[val];
87
- if (isClient) {
88
- if (!transform) {
89
- updateInserted();
90
- transform = insertedTransforms[val];
91
- if (process.env.NODE_ENV === "development") {
92
- if (!transform) {
93
- console.warn("no transform found", { insertedTransforms, val });
83
+ if (process.env.TAMAGUI_TARGET === "web") {
84
+ if (!val)
85
+ return;
86
+ if (val.startsWith("_transform-")) {
87
+ const namespace = isMediaOrPseudo ? key : "transform";
88
+ let transform = insertedTransforms[val];
89
+ if (isClient) {
90
+ if (!transform) {
91
+ updateInserted();
92
+ transform = insertedTransforms[val];
93
+ if (process.env.NODE_ENV === "development") {
94
+ if (!transform) {
95
+ console.warn("no transform found", { insertedTransforms, val });
96
+ }
94
97
  }
95
98
  }
96
- }
97
- if (!transform) {
98
- if (isWeb && val[0] !== "_") {
99
- transform = val;
99
+ if (!transform) {
100
+ if (isWeb && val[0] !== "_") {
101
+ transform = val;
102
+ }
103
+ }
104
+ if (process.env.NODE_ENV === "development" && debug === "verbose") {
105
+ console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms });
100
106
  }
101
107
  }
102
- if (process.env.NODE_ENV === "development" && debug === "verbose") {
103
- console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms });
108
+ transforms = transforms || {};
109
+ transforms[namespace] = transforms[namespace] || ["", ""];
110
+ const identifier = val.replace("_transform", "");
111
+ transforms[namespace][0] += identifier;
112
+ if (transform) {
113
+ transforms[namespace][1] += transform;
104
114
  }
115
+ } else {
116
+ classNames[key] = val;
105
117
  }
106
- transforms = transforms || {};
107
- transforms[namespace] = transforms[namespace] || ["", ""];
108
- const identifier = val.replace("_transform", "");
109
- transforms[namespace][0] += identifier;
110
- if (transform) {
111
- transforms[namespace][1] += transform;
112
- }
113
- } else {
114
- classNames[key] = val;
115
118
  }
116
119
  }
117
120
  const propKeys = Object.keys(props);
118
121
  const shouldDoClasses = (isWeb || process.env.IS_STATIC === "is_static") && !state.noClassNames;
119
- if (process.env.NODE_ENV === "development" && debug === "verbose") {
120
- console.log("propKeys", propKeys, props);
121
- }
122
122
  const len = propKeys.length;
123
123
  for (let i = len - 1; i >= 0; i--) {
124
124
  const keyInit = propKeys[i];
@@ -149,58 +149,60 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
149
149
  }
150
150
  continue;
151
151
  }
152
- if (keyInit === "className") {
153
- let nonTamaguis = "";
154
- if (!valInit)
155
- continue;
156
- for (const cn of valInit.split(" ")) {
157
- if (cn[0] === "_") {
158
- const [shorthand, mediaOrPseudo] = cn.slice(1).split("-");
159
- const isMedia2 = mediaOrPseudo[0] === "_";
160
- const isPseudo2 = mediaOrPseudo[0] === "0";
161
- const isMediaOrPseudo2 = isMedia2 || isPseudo2;
162
- let fullKey = conf.shorthands[shorthand];
163
- if (isMedia2) {
164
- let mediaShortKey = mediaOrPseudo.slice(1);
165
- mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf("_"));
166
- fullKey += `${PROP_SPLIT}${mediaShortKey}`;
167
- } else if (isPseudo2) {
168
- const pseudoShortKey = mediaOrPseudo.slice(1);
169
- fullKey += `${PROP_SPLIT}${pseudoShortKey}`;
152
+ if (process.env.TAMAGUI_TARGET === "web") {
153
+ if (keyInit === "className") {
154
+ let nonTamaguis = "";
155
+ if (!valInit)
156
+ continue;
157
+ for (const cn of valInit.split(" ")) {
158
+ if (cn[0] === "_") {
159
+ const [shorthand, mediaOrPseudo] = cn.slice(1).split("-");
160
+ const isMedia2 = mediaOrPseudo[0] === "_";
161
+ const isPseudo2 = mediaOrPseudo[0] === "0";
162
+ const isMediaOrPseudo2 = isMedia2 || isPseudo2;
163
+ let fullKey = conf.shorthands[shorthand];
164
+ if (isMedia2) {
165
+ let mediaShortKey = mediaOrPseudo.slice(1);
166
+ mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf("_"));
167
+ fullKey += `${PROP_SPLIT}${mediaShortKey}`;
168
+ } else if (isPseudo2) {
169
+ const pseudoShortKey = mediaOrPseudo.slice(1);
170
+ fullKey += `${PROP_SPLIT}${pseudoShortKey}`;
171
+ }
172
+ usedKeys.add(fullKey);
173
+ mergeClassName(fullKey, cn, isMediaOrPseudo2);
174
+ } else {
175
+ nonTamaguis += " " + cn;
170
176
  }
171
- usedKeys.add(fullKey);
172
- mergeClassName(fullKey, cn, isMediaOrPseudo2);
173
- } else {
174
- nonTamaguis += " " + cn;
175
177
  }
176
- }
177
- if (nonTamaguis) {
178
- usedKeys.add(keyInit);
179
- mergeClassName(keyInit, nonTamaguis);
180
- }
181
- continue;
182
- }
183
- if (valInit && valInit[0] === "_") {
184
- const isValidClassName = validStyles[keyInit];
185
- const isMediaOrPseudo2 = !isValidClassName && keyInit.includes(PROP_SPLIT) && validStyles[keyInit.split(PROP_SPLIT)[0]];
186
- if (isValidClassName || isMediaOrPseudo2) {
187
- usedKeys.add(keyInit);
188
- mergeClassName(keyInit, valInit, isMediaOrPseudo2);
178
+ if (nonTamaguis) {
179
+ usedKeys.add(keyInit);
180
+ mergeClassName(keyInit, nonTamaguis);
181
+ }
189
182
  continue;
190
183
  }
184
+ if (valInit && valInit[0] === "_") {
185
+ const isValidClassName = validStyles[keyInit];
186
+ const isMediaOrPseudo2 = !isValidClassName && keyInit.includes(PROP_SPLIT) && validStyles[keyInit.split(PROP_SPLIT)[0]];
187
+ if (isValidClassName || isMediaOrPseudo2) {
188
+ usedKeys.add(keyInit);
189
+ mergeClassName(keyInit, valInit, isMediaOrPseudo2);
190
+ continue;
191
+ }
192
+ }
191
193
  }
192
194
  if (state.keepVariantsAsProps && staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {
193
195
  viewProps[keyInit] = valInit;
194
196
  }
195
197
  let isMedia = keyInit[0] === "$";
196
198
  let isPseudo = validPseudoKeys[keyInit];
199
+ let isMediaOrPseudo = isMedia || isPseudo;
197
200
  if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
198
201
  usedKeys.add(keyInit);
199
202
  viewProps[keyInit] = valInit;
200
203
  continue;
201
204
  }
202
205
  const expanded = isMedia || isPseudo ? [[keyInit, valInit]] : staticConfig.propMapper(keyInit, valInit, theme, props, state, void 0, debug);
203
- let isMediaOrPseudo = isMedia || isPseudo;
204
206
  if (process.env.NODE_ENV === "development" && debug === "verbose") {
205
207
  console.log(" \xBB getSplitStyles", keyInit, valInit, expanded);
206
208
  }
@@ -228,7 +230,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
228
230
  continue;
229
231
  }
230
232
  pseudos[key] = pseudos[key] || {};
231
- pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, true);
233
+ pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, conf, true);
232
234
  if (shouldDoClasses) {
233
235
  const pseudoStyles = getAtomicStyle(pseudos[key], pseudoDescriptors[key]);
234
236
  for (const style2 of pseudoStyles) {
@@ -252,7 +254,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
252
254
  }
253
255
  continue;
254
256
  }
255
- const mediaStyle = getSubStyle(val, staticConfig, theme, props, state);
257
+ const mediaStyle = getSubStyle(val, staticConfig, theme, props, state, conf);
256
258
  if (process.env.NODE_ENV === "development" && debug === "verbose") {
257
259
  console.log(" \xBB getSplitStyles mediaStyle", { mediaKey, mediaStyle, props, shouldDoClasses });
258
260
  }
@@ -289,7 +291,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
289
291
  } else if (key in stylePropsTransform) {
290
292
  mergeTransform(style, key, val, true);
291
293
  } else {
292
- style[key] = val;
294
+ style[key] = normalizeValueWithProperty(val, key);
293
295
  }
294
296
  continue;
295
297
  }
@@ -301,6 +303,10 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
301
303
  }
302
304
  }
303
305
  }
306
+ fixStyles(style);
307
+ if (isWeb) {
308
+ styleToCSS(style);
309
+ }
304
310
  if (defaultClassNames) {
305
311
  classNames = __spreadValues(__spreadValues({}, defaultClassNames), classNames);
306
312
  }
@@ -316,21 +322,25 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
316
322
  }
317
323
  }
318
324
  }
319
- if (transforms) {
320
- for (const namespace in transforms) {
321
- if (!transforms[namespace]) {
322
- console.warn("Error no transform");
323
- continue;
324
- }
325
- const [hash, val] = transforms[namespace];
326
- const identifier = `_transform${hash}`;
327
- if (isClient) {
328
- if (!insertedTransforms[identifier]) {
329
- const rule = `.${identifier} { transform: ${val}; }`;
330
- addStyle(identifier, rule);
325
+ if (process.env.TAMAGUI_TARGET === "web") {
326
+ if (transforms) {
327
+ for (const namespace in transforms) {
328
+ if (!transforms[namespace]) {
329
+ if (process.env.NODE_ENV === "development") {
330
+ console.warn("Error no transform", transforms, namespace);
331
+ }
332
+ continue;
331
333
  }
334
+ const [hash, val] = transforms[namespace];
335
+ const identifier = `_transform${hash}`;
336
+ if (isClient) {
337
+ if (!insertedTransforms[identifier]) {
338
+ const rule = `.${identifier} { transform: ${val}; }`;
339
+ addStyle(identifier, rule);
340
+ }
341
+ }
342
+ classNames[namespace] = identifier;
332
343
  }
333
- classNames[namespace] = identifier;
334
344
  }
335
345
  }
336
346
  if (process.env.NODE_ENV === "development" && debug === "verbose") {
@@ -347,6 +357,25 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, de
347
357
  rulesToInsert
348
358
  };
349
359
  };
360
+ const getSubStyle = (styleIn, staticConfig, theme, props, state, conf2, avoidDefaultProps) => {
361
+ const styleOut = {};
362
+ for (let key in styleIn) {
363
+ const val = styleIn[key];
364
+ key = conf2.shorthands[key] || key;
365
+ const expanded = staticConfig.propMapper(key, val, theme, props, state, avoidDefaultProps);
366
+ if (!expanded)
367
+ continue;
368
+ for (const [skey, sval] of expanded) {
369
+ if (skey in stylePropsTransform) {
370
+ mergeTransform(styleOut, skey, sval);
371
+ } else {
372
+ styleOut[skey] = normalizeValueWithProperty(sval, key);
373
+ }
374
+ }
375
+ }
376
+ fixStyles(styleOut);
377
+ return styleOut;
378
+ };
350
379
  const insertSplitStyles = (...args) => {
351
380
  const res = getSplitStyles(...args);
352
381
  if (res.rulesToInsert) {
@@ -369,34 +398,11 @@ const useSplitStyles = (...args) => {
369
398
  }, [res.rulesToInsert]);
370
399
  return res;
371
400
  };
372
- const getSubStyle = (styleIn, staticConfig, theme, props, state, avoidDefaultProps) => {
373
- const styleOut = {};
374
- for (const key in styleIn) {
375
- const val = styleIn[key];
376
- const expanded = staticConfig.propMapper(key, val, theme, props, state, avoidDefaultProps);
377
- if (!expanded)
378
- continue;
379
- for (const [skey, sval] of expanded) {
380
- if (skey in stylePropsTransform) {
381
- mergeTransform(styleOut, skey, sval);
382
- } else {
383
- styleOut[skey] = sval;
384
- }
385
- }
386
- }
387
- return styleOut;
388
- };
389
- function normalizeStyleObject(style) {
390
- if (!isWeb) {
391
- fixNativeShadow(style);
392
- }
393
- }
394
401
  export {
395
402
  PROP_SPLIT,
396
403
  getSplitStyles,
397
404
  getSubStyle,
398
405
  insertSplitStyles,
399
- normalizeStyleObject,
400
406
  pseudoCNInverse,
401
407
  useSplitStyles
402
408
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/getSplitStyles.tsx"],
4
- "sourcesContent": ["import { stylePropsText, stylePropsTransform, validPseudoKeys, validStyles } from '@tamagui/helpers'\nimport { useInsertionEffect } from 'react'\nimport { ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { isClient, isSSR, isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { mediaQueryConfig, mediaState } from '../hooks/useMedia'\nimport {\n DebugProp,\n MediaKeys,\n MediaQueryKey,\n PseudoPropKeys,\n PseudoStyles,\n SplitStyleState,\n StackProps,\n StaticConfigParsed,\n TamaguiInternalConfig,\n ThemeObject,\n} from '../types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { fixNativeShadow } from './fixNativeShadow'\nimport { getAtomicStyle, getStylesAtomic } from './getStylesAtomic'\nimport {\n insertStyleRule,\n insertedTransforms,\n updateInserted,\n updateInsertedCache,\n} from './insertStyleRule'\nimport { mergeTransform } from './mergeTransform'\nimport { pseudoDescriptors } from './pseudoDescriptors'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\nexport type ClassNamesObject = Record<string, string>\nexport type SplitStyleResult = ReturnType<typeof getSplitStyles>\n\nconst skipProps = {\n animation: true,\n animateOnly: true,\n debug: true,\n componentName: true,\n\n ...(!isWeb && {\n tag: true,\n whiteSpace: true,\n wordWrap: true,\n textOverflow: true,\n textDecorationDistance: true,\n userSelect: true,\n selectable: true,\n cursor: true,\n contain: true,\n boxSizing: true,\n boxShadow: true,\n }),\n}\n\ntype TransformNamespaceKey = 'transform' | PseudoPropKeys | MediaQueryKey\n\nlet conf: TamaguiInternalConfig\n\ntype StyleSplitter = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n state: SplitStyleState,\n defaultClassNames?: any,\n debug?: DebugProp\n) => {\n pseudos: PseudoStyles\n medias: Record<MediaKeys, ViewStyle>\n style: ViewStyle\n classNames: ClassNamesObject\n rulesToInsert: [string, string][] | null\n viewProps: StackProps\n}\n\nexport const PROP_SPLIT = '-'\n\n// this is how compiler outputs psueodo identifier\n// TODO remove in next refactor\nexport const pseudoCNInverse = {\n hover: 'hoverStyle',\n focus: 'focusStyle',\n press: 'pressStyle',\n}\n\n// loop props backwards\n// track used keys:\n// const keys = new Set<string>()\n// keep classnames and styles separate:\n// const styles = {}\n// const classNames = {}\n\nexport const getSplitStyles: StyleSplitter = (\n props,\n staticConfig,\n theme,\n state,\n defaultClassNames,\n debug\n) => {\n conf = conf || getConfig()\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: StackProps = {}\n const pseudos: PseudoStyles = {}\n const medias: Record<MediaKeys, ViewStyle> = {}\n const usedKeys = new Set<string>()\n\n let style: ViewStyle = {}\n if (state.hasTextAncestor) {\n // parity with react-native-web\n style.display = 'inline-flex' as any\n }\n let classNames: ClassNamesObject = {}\n // we need to gather these specific to each media query / pseudo\n // value is [hash, val], so [\"-jnjad-asdnjk\", \"scaleX(1) rotate(10deg)\"]\n let transforms = null as Record<TransformNamespaceKey, [string, string]> | null\n\n let rulesToInsert: [string, string][] | null = null\n function addStyle(prop: string, rule: string) {\n if (isWeb) {\n // NOTE this is super tricky\n // for some reason, next.js dev SSR actually misses a lot of styles (pre-hydrate) with || !isClient\n // which doesn't really make sense, because that should strictly extract *more* css, but oh well\n // meanwhile, production builds *need* to always be truthy here for node, thus the cheat conditional\n if (updateInsertedCache(prop, rule) || (!isClient && process.env.NODE_ENV === 'production')) {\n rulesToInsert = rulesToInsert || []\n rulesToInsert.push([prop, rule])\n }\n }\n }\n\n function mergeClassName(key: string, val: string, isMediaOrPseudo = false) {\n // empty classnames passed by compiler sometimes\n if (!val) return\n if (val.startsWith('_transform-')) {\n const namespace: TransformNamespaceKey = isMediaOrPseudo ? key : 'transform'\n\n let transform = insertedTransforms[val]\n if (isClient) {\n if (!transform) {\n // HMR or loaded a new chunk\n updateInserted()\n transform = insertedTransforms[val]\n if (process.env.NODE_ENV === 'development') {\n if (!transform) {\n console.warn('no transform found', { insertedTransforms, val })\n }\n }\n }\n if (!transform) {\n if (isWeb && val[0] !== '_') {\n // runtime insert\n transform = val\n }\n }\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \u00BB getSplitStyles mergeClassName transform', { key, val, namespace, transform, insertedTransforms })\n }\n }\n transforms = transforms || {}\n transforms[namespace] = transforms[namespace] || ['', '']\n const identifier = val.replace('_transform', '')\n transforms[namespace][0] += identifier\n // ssr doesn't need to do anything just make the right classname\n if (transform) {\n transforms[namespace][1] += transform\n }\n } else {\n classNames[key] = val\n }\n }\n\n const propKeys = Object.keys(props)\n const shouldDoClasses = (isWeb || process.env.IS_STATIC === 'is_static') && !state.noClassNames\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n console.log('propKeys', propKeys, props)\n }\n\n const len = propKeys.length\n for (let i = len - 1; i >= 0; i--) {\n const keyInit = propKeys[i]\n\n if (usedKeys.has(keyInit)) continue\n if (skipProps[keyInit]) continue\n if (!isWeb && keyInit.startsWith('data-')) continue\n\n const valInit = props[keyInit]\n\n if (keyInit === 'style' || keyInit.startsWith('_style')) {\n if (!valInit) continue\n for (const key in valInit) {\n if (usedKeys.has(key)) continue\n if (valInit && typeof valInit === 'object') {\n // newer react native versions return a full object instead of ID\n for (const skey in valInit) {\n if (usedKeys.has(skey)) continue\n usedKeys.add(skey)\n style[skey] = valInit[skey]\n }\n } else {\n usedKeys.add(key)\n style[key] = valInit\n }\n }\n continue\n }\n\n if (keyInit === 'className') {\n let nonTamaguis = ''\n if (!valInit) continue\n for (const cn of valInit.split(' ')) {\n if (cn[0] === '_') {\n // tamagui, merge it expanded on key, eventually this will go away with better compiler\n const [shorthand, mediaOrPseudo] = cn.slice(1).split('-')\n const isMedia = mediaOrPseudo[0] === '_'\n const isPseudo = mediaOrPseudo[0] === '0'\n const isMediaOrPseudo = isMedia || isPseudo\n let fullKey = conf.shorthands[shorthand]\n if (isMedia) {\n // is media\n let mediaShortKey = mediaOrPseudo.slice(1)\n mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf('_'))\n fullKey += `${PROP_SPLIT}${mediaShortKey}`\n } else if (isPseudo) {\n // is pseudo\n const pseudoShortKey = mediaOrPseudo.slice(1)\n fullKey += `${PROP_SPLIT}${pseudoShortKey}`\n }\n usedKeys.add(fullKey)\n mergeClassName(fullKey, cn, isMediaOrPseudo)\n } else {\n nonTamaguis += ' ' + cn\n }\n }\n if (nonTamaguis) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, nonTamaguis)\n }\n continue\n }\n\n if (valInit && valInit[0] === '_') {\n // if valid style key (or pseudo like color-hover):\n // this conditional and esp the pseudo check rarely runs so not a perf issue\n const isValidClassName = validStyles[keyInit]\n const isMediaOrPseudo =\n !isValidClassName &&\n keyInit.includes(PROP_SPLIT) &&\n validStyles[keyInit.split(PROP_SPLIT)[0]]\n if (isValidClassName || isMediaOrPseudo) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, valInit, isMediaOrPseudo)\n continue\n }\n }\n\n if (\n state.keepVariantsAsProps &&\n staticConfig.defaultVariants &&\n keyInit in staticConfig.defaultVariants\n ) {\n viewProps[keyInit] = valInit\n }\n\n let isMedia = keyInit[0] === '$'\n let isPseudo = validPseudoKeys[keyInit]\n\n if (\n !isMedia &&\n !isPseudo &&\n !staticConfig.variants?.[keyInit] &&\n !validStyleProps[keyInit] &&\n !conf.shorthands[keyInit]\n ) {\n usedKeys.add(keyInit)\n viewProps[keyInit] = valInit\n continue\n }\n\n const expanded =\n isMedia || isPseudo\n ? [[keyInit, valInit]]\n : staticConfig.propMapper(keyInit, valInit, theme, props, state, undefined, debug)\n\n let isMediaOrPseudo = isMedia || isPseudo\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n console.log(' \u00BB getSplitStyles', keyInit, valInit, expanded)\n }\n\n if (!expanded) {\n continue\n }\n\n for (const [key, val] of expanded) {\n if (val === undefined) continue\n\n isMedia = key[0] === '$'\n isPseudo = validPseudoKeys[key]\n isMediaOrPseudo = isMedia || isPseudo\n\n if (!isMediaOrPseudo) {\n if (usedKeys.has(key)) continue\n }\n\n if (\n (staticConfig.deoptProps && staticConfig.deoptProps.has(key)) ||\n (staticConfig.inlineProps && staticConfig.inlineProps.has(key)) ||\n (staticConfig.inlineWhenUnflattened && staticConfig.inlineWhenUnflattened.has(key))\n ) {\n usedKeys.add(key)\n viewProps[key] = props[key] ?? val\n }\n\n // pseudo\n if (isPseudo) {\n if (!val) continue\n if (key === 'enterStyle' && state.mounted) {\n // once mounted we can ignore enterStyle\n continue\n }\n pseudos[key] = pseudos[key] || {}\n pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, true)\n if (shouldDoClasses) {\n const pseudoStyles = getAtomicStyle(pseudos[key], pseudoDescriptors[key])\n for (const style of pseudoStyles) {\n const postfix = pseudoDescriptors[key]?.name || key // exitStyle/enterStyle dont have pseudoDescriptors\n const fullKey = `${style.property}${PROP_SPLIT}${postfix}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyle(style.identifier, style.rules.join(';'))\n mergeClassName(fullKey, style.identifier, isMediaOrPseudo)\n }\n }\n }\n continue\n }\n\n // media\n if (isMedia) {\n const mediaKey = key\n const mediaKeyShort = mediaKey.slice(1)\n\n if (!mediaQueryConfig[mediaKeyShort]) {\n if (!usedKeys.has(key)) {\n // this isn't a media key, pass through\n viewProps[key] = val\n }\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n // THIS USED TO PROXY BACK TO REGULAR PROPS BUT THAT IS THE WRONG BEHAVIOR\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n const mediaStyle = getSubStyle(val, staticConfig, theme, props, state)\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \u00BB getSplitStyles mediaStyle', { mediaKey, mediaStyle, props, shouldDoClasses })\n }\n\n if (shouldDoClasses) {\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKeyShort, mediaQueryConfig)\n // TODO handle pseudo + media, not too hard just need to set up example case\n const fullKey = `${style.property}${PROP_SPLIT}${mediaKeyShort}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyle(out.identifier, out.styleRule)\n mergeClassName(fullKey, out.identifier, true)\n }\n }\n } else {\n if (mediaState[mediaKey]) {\n if (process.env.NODE_ENV === 'development' && debug) {\n console.log('apply media style', mediaKey, mediaState)\n }\n Object.assign(shouldDoClasses ? medias : style, mediaStyle)\n }\n }\n continue\n }\n\n if (!isWeb && key === 'pointerEvents') {\n usedKeys.add(key)\n viewProps[key] = val\n continue\n }\n\n if (validStyleProps[key]) {\n usedKeys.add(key)\n if (val && val[0] === '_') {\n classNames[key] = val\n } else if (key in stylePropsTransform) {\n mergeTransform(style, key, val, true)\n } else {\n style[key] = val\n }\n continue\n }\n\n // pass to view props\n if (!staticConfig.variants || !(key in staticConfig.variants)) {\n if (!skipProps[key]) {\n viewProps[key] = val\n usedKeys.add(key)\n }\n }\n }\n }\n\n // add in defaults if not set:\n if (defaultClassNames) {\n classNames = {\n ...defaultClassNames,\n ...classNames,\n }\n }\n\n if (shouldDoClasses) {\n const atomic = getStylesAtomic(style)\n for (const atomicStyle of atomic) {\n const key = atomicStyle.property\n if (!state.dynamicStylesInline) {\n addStyle(atomicStyle.identifier, atomicStyle.rules.join(';'))\n mergeClassName(key, atomicStyle.identifier)\n } else {\n style[key] = atomicStyle.value\n }\n }\n }\n\n if (transforms) {\n for (const namespace in transforms) {\n if (!transforms[namespace]) {\n console.warn('Error no transform')\n continue\n }\n const [hash, val] = transforms[namespace]\n const identifier = `_transform${hash}`\n if (isClient) {\n if (!insertedTransforms[identifier]) {\n const rule = `.${identifier} { transform: ${val}; }`\n addStyle(identifier, rule)\n }\n }\n classNames[namespace] = identifier\n }\n }\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n if (typeof document !== 'undefined') {\n // prettier-ignore\n console.log(' \u00BB getSplitStyles out', { style, pseudos, medias, classNames, viewProps, state })\n }\n }\n\n return {\n viewProps,\n style,\n medias,\n pseudos,\n classNames,\n rulesToInsert,\n }\n}\n\nexport const insertSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n if (res.rulesToInsert) {\n for (const [prop, rule] of res.rulesToInsert) {\n insertStyleRule(prop, rule)\n }\n }\n return res\n}\n\n// on native no need to insert any css\nconst useInsertEffectCompat = isWeb ? useInsertionEffect || useIsomorphicLayoutEffect : () => {}\n\nexport const useSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n\n useInsertEffectCompat(() => {\n if (!res.rulesToInsert) return\n for (const [prop, rule] of res.rulesToInsert) {\n insertStyleRule(prop, rule)\n }\n }, [res.rulesToInsert])\n\n return res\n}\n\nexport const getSubStyle = (\n styleIn: Object,\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n props: any,\n state: SplitStyleState,\n avoidDefaultProps?: boolean\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (const key in styleIn) {\n const val = styleIn[key]\n const expanded = staticConfig.propMapper(key, val, theme, props, state, avoidDefaultProps)\n if (!expanded) continue\n for (const [skey, sval] of expanded) {\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = sval\n }\n }\n }\n return styleOut\n}\n\nexport function normalizeStyleObject(style: any) {\n if (!isWeb) {\n fixNativeShadow(style)\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { stylePropsText, stylePropsTransform, validPseudoKeys, validStyles } from '@tamagui/helpers'\nimport { useInsertionEffect } from 'react'\nimport { ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { isClient, isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { mediaQueryConfig, mediaState } from '../hooks/useMedia'\nimport {\n DebugProp,\n MediaKeys,\n MediaQueryKey,\n PseudoPropKeys,\n PseudoStyles,\n SplitStyleState,\n StackProps,\n StaticConfigParsed,\n TamaguiInternalConfig,\n ThemeObject,\n} from '../types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { fixStyles } from './expandStyles'\nimport { getAtomicStyle, getStylesAtomic, styleToCSS } from './getStylesAtomic'\nimport {\n insertStyleRule,\n insertedTransforms,\n updateInserted,\n updateInsertedCache,\n} from './insertStyleRule'\nimport { mergeTransform } from './mergeTransform'\nimport { normalizeValueWithProperty } from './normalizeValueWithProperty'\nimport { pseudoDescriptors } from './pseudoDescriptors'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\nexport type ClassNamesObject = Record<string, string>\nexport type SplitStyleResult = ReturnType<typeof getSplitStyles>\n\nconst skipProps = {\n animation: true,\n animateOnly: true,\n debug: true,\n componentName: true,\n\n ...(!isWeb && {\n tag: true,\n whiteSpace: true,\n wordWrap: true,\n textOverflow: true,\n textDecorationDistance: true,\n userSelect: true,\n selectable: true,\n cursor: true,\n contain: true,\n boxSizing: true,\n boxShadow: true,\n }),\n}\n\ntype TransformNamespaceKey = 'transform' | PseudoPropKeys | MediaQueryKey\n\nlet conf: TamaguiInternalConfig\n\ntype StyleSplitter = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n state: SplitStyleState,\n defaultClassNames?: any,\n debug?: DebugProp\n) => {\n pseudos: PseudoStyles\n medias: Record<MediaKeys, ViewStyle>\n style: ViewStyle\n classNames: ClassNamesObject\n rulesToInsert: [string, string][] | null\n viewProps: StackProps\n}\n\nexport const PROP_SPLIT = '-'\n\n// this is how compiler outputs psueodo identifier\n// TODO remove in next refactor\nexport const pseudoCNInverse = {\n hover: 'hoverStyle',\n focus: 'focusStyle',\n press: 'pressStyle',\n}\n\n// loop props backwards\n// track used keys:\n// const keys = new Set<string>()\n// keep classnames and styles separate:\n// const styles = {}\n// const classNames = {}\n\nexport const getSplitStyles: StyleSplitter = (\n props,\n staticConfig,\n theme,\n state,\n defaultClassNames,\n debug\n) => {\n conf = conf || getConfig()\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: StackProps = {}\n const pseudos: PseudoStyles = {}\n const medias: Record<MediaKeys, ViewStyle> = {}\n const usedKeys = new Set<string>()\n\n let style: ViewStyle = {}\n if (state.hasTextAncestor) {\n // parity with react-native-web\n style.display = 'inline-flex' as any\n }\n let classNames: ClassNamesObject = {}\n // we need to gather these specific to each media query / pseudo\n // value is [hash, val], so [\"-jnjad-asdnjk\", \"scaleX(1) rotate(10deg)\"]\n let transforms = null as Record<TransformNamespaceKey, [string, string]> | null\n\n let rulesToInsert: [string, string][] | null = null\n function addStyle(prop: string, rule: string) {\n if (process.env.TAMAGUI_TARGET === 'web') {\n // NOTE this is super tricky\n // for some reason, next.js dev SSR actually misses a lot of styles (pre-hydrate) with || !isClient\n // which doesn't really make sense, because that should strictly extract *more* css, but oh well\n // meanwhile, production builds *need* to always be truthy here for node, thus the cheat conditional\n if (updateInsertedCache(prop, rule) || (!isClient && process.env.NODE_ENV === 'production')) {\n rulesToInsert = rulesToInsert || []\n rulesToInsert.push([prop, rule])\n }\n }\n }\n\n function mergeClassName(key: string, val: string, isMediaOrPseudo = false) {\n if (process.env.TAMAGUI_TARGET === 'web') {\n // empty classnames passed by compiler sometimes\n if (!val) return\n if (val.startsWith('_transform-')) {\n const namespace: TransformNamespaceKey = isMediaOrPseudo ? key : 'transform'\n\n let transform = insertedTransforms[val]\n if (isClient) {\n if (!transform) {\n // HMR or loaded a new chunk\n updateInserted()\n transform = insertedTransforms[val]\n if (process.env.NODE_ENV === 'development') {\n if (!transform) {\n console.warn('no transform found', { insertedTransforms, val })\n }\n }\n }\n if (!transform) {\n if (isWeb && val[0] !== '_') {\n // runtime insert\n transform = val\n }\n }\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \u00BB getSplitStyles mergeClassName transform', { key, val, namespace, transform, insertedTransforms })\n }\n }\n transforms = transforms || {}\n transforms[namespace] = transforms[namespace] || ['', '']\n const identifier = val.replace('_transform', '')\n transforms[namespace][0] += identifier\n // ssr doesn't need to do anything just make the right classname\n if (transform) {\n transforms[namespace][1] += transform\n }\n } else {\n classNames[key] = val\n }\n }\n }\n\n const propKeys = Object.keys(props)\n const shouldDoClasses = (isWeb || process.env.IS_STATIC === 'is_static') && !state.noClassNames\n const len = propKeys.length\n\n // loop backwards so we can skip already-used props\n for (let i = len - 1; i >= 0; i--) {\n const keyInit = propKeys[i]\n\n if (usedKeys.has(keyInit)) continue\n if (skipProps[keyInit]) continue\n if (!isWeb && keyInit.startsWith('data-')) continue\n\n const valInit = props[keyInit]\n\n if (keyInit === 'style' || keyInit.startsWith('_style')) {\n if (!valInit) continue\n for (const key in valInit) {\n if (usedKeys.has(key)) continue\n if (valInit && typeof valInit === 'object') {\n // newer react native versions return a full object instead of ID\n for (const skey in valInit) {\n if (usedKeys.has(skey)) continue\n usedKeys.add(skey)\n style[skey] = valInit[skey]\n }\n } else {\n usedKeys.add(key)\n style[key] = valInit\n }\n }\n continue\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (keyInit === 'className') {\n let nonTamaguis = ''\n if (!valInit) continue\n for (const cn of valInit.split(' ')) {\n if (cn[0] === '_') {\n // tamagui, merge it expanded on key, eventually this will go away with better compiler\n const [shorthand, mediaOrPseudo] = cn.slice(1).split('-')\n const isMedia = mediaOrPseudo[0] === '_'\n const isPseudo = mediaOrPseudo[0] === '0'\n const isMediaOrPseudo = isMedia || isPseudo\n let fullKey = conf.shorthands[shorthand]\n if (isMedia) {\n // is media\n let mediaShortKey = mediaOrPseudo.slice(1)\n mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf('_'))\n fullKey += `${PROP_SPLIT}${mediaShortKey}`\n } else if (isPseudo) {\n // is pseudo\n const pseudoShortKey = mediaOrPseudo.slice(1)\n fullKey += `${PROP_SPLIT}${pseudoShortKey}`\n }\n usedKeys.add(fullKey)\n mergeClassName(fullKey, cn, isMediaOrPseudo)\n } else {\n nonTamaguis += ' ' + cn\n }\n }\n if (nonTamaguis) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, nonTamaguis)\n }\n continue\n }\n\n if (valInit && valInit[0] === '_') {\n // if valid style key (or pseudo like color-hover):\n // this conditional and esp the pseudo check rarely runs so not a perf issue\n const isValidClassName = validStyles[keyInit]\n const isMediaOrPseudo =\n !isValidClassName &&\n keyInit.includes(PROP_SPLIT) &&\n validStyles[keyInit.split(PROP_SPLIT)[0]]\n if (isValidClassName || isMediaOrPseudo) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, valInit, isMediaOrPseudo)\n continue\n }\n }\n }\n\n if (\n state.keepVariantsAsProps &&\n staticConfig.defaultVariants &&\n keyInit in staticConfig.defaultVariants\n ) {\n viewProps[keyInit] = valInit\n }\n\n /**\n * There's (some) reason to this madness: we want to allow returning media/pseudo from variants\n * Say you have a variant hoverable: { true: { hoverStyle: {} } }\n * We run propMapper first to expand variant, then we run the inner loop and look again\n * for if there's a pseudo/media returned from it.\n */\n\n let isMedia = keyInit[0] === '$'\n let isPseudo = validPseudoKeys[keyInit]\n let isMediaOrPseudo = isMedia || isPseudo\n\n if (\n !isMedia &&\n !isPseudo &&\n !staticConfig.variants?.[keyInit] &&\n !validStyleProps[keyInit] &&\n !conf.shorthands[keyInit]\n ) {\n usedKeys.add(keyInit)\n viewProps[keyInit] = valInit\n continue\n }\n\n const expanded =\n isMedia || isPseudo\n ? [[keyInit, valInit]]\n : staticConfig.propMapper(keyInit, valInit, theme, props, state, undefined, debug)\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n console.log(' \u00BB getSplitStyles', keyInit, valInit, expanded)\n }\n\n if (!expanded) {\n continue\n }\n\n for (const [key, val] of expanded) {\n if (val === undefined) continue\n\n isMedia = key[0] === '$'\n isPseudo = validPseudoKeys[key]\n isMediaOrPseudo = isMedia || isPseudo\n\n if (!isMediaOrPseudo) {\n if (usedKeys.has(key)) continue\n }\n\n if (\n (staticConfig.deoptProps && staticConfig.deoptProps.has(key)) ||\n (staticConfig.inlineProps && staticConfig.inlineProps.has(key)) ||\n (staticConfig.inlineWhenUnflattened && staticConfig.inlineWhenUnflattened.has(key))\n ) {\n usedKeys.add(key)\n viewProps[key] = props[key] ?? val\n }\n\n // pseudo\n if (isPseudo) {\n if (!val) continue\n if (key === 'enterStyle' && state.mounted) {\n // once mounted we can ignore enterStyle\n continue\n }\n pseudos[key] = pseudos[key] || {}\n pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, conf, true)\n if (shouldDoClasses) {\n const pseudoStyles = getAtomicStyle(pseudos[key], pseudoDescriptors[key])\n for (const style of pseudoStyles) {\n const postfix = pseudoDescriptors[key]?.name || key // exitStyle/enterStyle dont have pseudoDescriptors\n const fullKey = `${style.property}${PROP_SPLIT}${postfix}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyle(style.identifier, style.rules.join(';'))\n mergeClassName(fullKey, style.identifier, isMediaOrPseudo)\n }\n }\n }\n continue\n }\n\n // media\n if (isMedia) {\n const mediaKey = key\n const mediaKeyShort = mediaKey.slice(1)\n\n if (!mediaQueryConfig[mediaKeyShort]) {\n if (!usedKeys.has(key)) {\n // this isn't a media key, pass through\n viewProps[key] = val\n }\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n // THIS USED TO PROXY BACK TO REGULAR PROPS BUT THAT IS THE WRONG BEHAVIOR\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n const mediaStyle = getSubStyle(val, staticConfig, theme, props, state, conf)\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \u00BB getSplitStyles mediaStyle', { mediaKey, mediaStyle, props, shouldDoClasses })\n }\n\n if (shouldDoClasses) {\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKeyShort, mediaQueryConfig)\n // TODO handle pseudo + media, not too hard just need to set up example case\n const fullKey = `${style.property}${PROP_SPLIT}${mediaKeyShort}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyle(out.identifier, out.styleRule)\n mergeClassName(fullKey, out.identifier, true)\n }\n }\n } else {\n if (mediaState[mediaKey]) {\n if (process.env.NODE_ENV === 'development' && debug) {\n console.log('apply media style', mediaKey, mediaState)\n }\n Object.assign(shouldDoClasses ? medias : style, mediaStyle)\n }\n }\n continue\n }\n\n if (!isWeb && key === 'pointerEvents') {\n usedKeys.add(key)\n viewProps[key] = val\n continue\n }\n\n if (validStyleProps[key]) {\n usedKeys.add(key)\n if (val && val[0] === '_') {\n classNames[key] = val\n } else if (key in stylePropsTransform) {\n mergeTransform(style, key, val, true)\n } else {\n style[key] = normalizeValueWithProperty(val, key)\n }\n continue\n }\n\n // pass to view props\n if (!staticConfig.variants || !(key in staticConfig.variants)) {\n if (!skipProps[key]) {\n viewProps[key] = val\n usedKeys.add(key)\n }\n }\n }\n }\n\n fixStyles(style)\n if (isWeb) {\n styleToCSS(style)\n }\n\n // add in defaults if not set:\n if (defaultClassNames) {\n classNames = {\n ...defaultClassNames,\n ...classNames,\n }\n }\n\n if (shouldDoClasses) {\n const atomic = getStylesAtomic(style)\n for (const atomicStyle of atomic) {\n const key = atomicStyle.property\n if (!state.dynamicStylesInline) {\n addStyle(atomicStyle.identifier, atomicStyle.rules.join(';'))\n mergeClassName(key, atomicStyle.identifier)\n } else {\n style[key] = atomicStyle.value\n }\n }\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (transforms) {\n for (const namespace in transforms) {\n if (!transforms[namespace]) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Error no transform', transforms, namespace)\n }\n continue\n }\n const [hash, val] = transforms[namespace]\n const identifier = `_transform${hash}`\n if (isClient) {\n if (!insertedTransforms[identifier]) {\n const rule = `.${identifier} { transform: ${val}; }`\n addStyle(identifier, rule)\n }\n }\n classNames[namespace] = identifier\n }\n }\n }\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n if (typeof document !== 'undefined') {\n // prettier-ignore\n console.log(' \u00BB getSplitStyles out', { style, pseudos, medias, classNames, viewProps, state })\n }\n }\n\n return {\n viewProps,\n style,\n medias,\n pseudos,\n classNames,\n rulesToInsert,\n }\n}\n\nexport const getSubStyle = (\n styleIn: Object,\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n props: any,\n state: SplitStyleState,\n conf: TamaguiInternalConfig,\n avoidDefaultProps?: boolean\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (let key in styleIn) {\n const val = styleIn[key]\n key = conf.shorthands[key] || key\n const expanded = staticConfig.propMapper(key, val, theme, props, state, avoidDefaultProps)\n if (!expanded) continue\n for (const [skey, sval] of expanded) {\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = normalizeValueWithProperty(sval, key)\n }\n }\n }\n\n fixStyles(styleOut)\n\n return styleOut\n}\n\nexport const insertSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n if (res.rulesToInsert) {\n for (const [prop, rule] of res.rulesToInsert) {\n insertStyleRule(prop, rule)\n }\n }\n return res\n}\n\n// on native no need to insert any css\nconst useInsertEffectCompat = isWeb ? useInsertionEffect || useIsomorphicLayoutEffect : () => {}\n\nexport const useSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n\n useInsertEffectCompat(() => {\n if (!res.rulesToInsert) return\n for (const [prop, rule] of res.rulesToInsert) {\n insertStyleRule(prop, rule)\n }\n }, [res.rulesToInsert])\n\n return res\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,12 @@
1
1
  import { getSize, stepTokenUpOrDown } from "./getSize";
2
2
  const getButtonSize = (val, { tokens }) => {
3
+ if (typeof val === "number") {
4
+ return {
5
+ paddingHorizontal: val * 0.25,
6
+ height: val,
7
+ borderRadius: val * 0.2
8
+ };
9
+ }
3
10
  const ySize = getSize(val, 0);
4
11
  const xSize = stepTokenUpOrDown(tokens.space, val);
5
12
  const radiusToken = tokens.radius[val] ?? tokens.radius["$4"];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/getStackSize.ts"],
4
- "sourcesContent": ["import { SizeTokens, VariantSpreadExtras } from '../types'\nimport { getSize, stepTokenUpOrDown } from './getSize'\n\nexport type ScaleVariantExtras = Pick<VariantSpreadExtras<any>, 'tokens' | 'props' | 'fonts'>\n\nexport const getButtonSize = (val: SizeTokens, { tokens }: VariantSpreadExtras<any>) => {\n const ySize = getSize(val, 0)\n const xSize = stepTokenUpOrDown(tokens.space, val)\n const radiusToken = tokens.radius[val] ?? tokens.radius['$4']\n return {\n paddingHorizontal: xSize,\n height: ySize,\n borderRadius: radiusToken,\n }\n}\n"],
5
- "mappings": "AACA;AAIO,MAAM,gBAAgB,CAAC,KAAiB,EAAE,aAAuC;AACtF,QAAM,QAAQ,QAAQ,KAAK,CAAC;AAC5B,QAAM,QAAQ,kBAAkB,OAAO,OAAO,GAAG;AACjD,QAAM,cAAc,OAAO,OAAO,QAAQ,OAAO,OAAO;AACxD,SAAO;AAAA,IACL,mBAAmB;AAAA,IACnB,QAAQ;AAAA,IACR,cAAc;AAAA,EAChB;AACF;",
4
+ "sourcesContent": ["import { SizeTokens, VariantSpreadExtras } from '../types'\nimport { getSize, stepTokenUpOrDown } from './getSize'\n\nexport type ScaleVariantExtras = Pick<VariantSpreadExtras<any>, 'tokens' | 'props' | 'fonts'>\n\nexport const getButtonSize = (val: SizeTokens | number, { tokens }: VariantSpreadExtras<any>) => {\n if (typeof val === 'number') {\n return {\n paddingHorizontal: val * 0.25,\n height: val,\n borderRadius: val * 0.2,\n }\n }\n const ySize = getSize(val, 0)\n const xSize = stepTokenUpOrDown(tokens.space, val)\n const radiusToken = tokens.radius[val] ?? tokens.radius['$4']\n return {\n paddingHorizontal: xSize,\n height: ySize,\n borderRadius: radiusToken,\n }\n}\n"],
5
+ "mappings": "AACA;AAIO,MAAM,gBAAgB,CAAC,KAA0B,EAAE,aAAuC;AAC/F,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO;AAAA,MACL,mBAAmB,MAAM;AAAA,MACzB,QAAQ;AAAA,MACR,cAAc,MAAM;AAAA,IACtB;AAAA,EACF;AACA,QAAM,QAAQ,QAAQ,KAAK,CAAC;AAC5B,QAAM,QAAQ,kBAAkB,OAAO,OAAO,GAAG;AACjD,QAAM,cAAc,OAAO,OAAO,QAAQ,OAAO,OAAO;AACxD,SAAO;AAAA,IACL,mBAAmB;AAAA,IACnB,QAAQ;AAAA,IACR,cAAc;AAAA,EAChB;AACF;",
6
6
  "names": []
7
7
  }