@tamagui/web 1.14.1 → 1.14.2

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 (509) hide show
  1. package/dist/cjs/Tamagui.js +76 -1
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/addTheme.js +77 -2
  4. package/dist/cjs/addTheme.js.map +2 -2
  5. package/dist/cjs/config.js +122 -1
  6. package/dist/cjs/config.js.map +2 -2
  7. package/dist/cjs/constants/constants.js +48 -1
  8. package/dist/cjs/constants/constants.js.map +2 -2
  9. package/dist/cjs/constants/isDevTools.js +36 -1
  10. package/dist/cjs/constants/isDevTools.js.map +2 -2
  11. package/dist/cjs/contexts/AnimationDriverContext.js +29 -1
  12. package/dist/cjs/contexts/AnimationDriverContext.js.map +2 -2
  13. package/dist/cjs/contexts/ButtonNestingContext.js +29 -1
  14. package/dist/cjs/contexts/ButtonNestingContext.js.map +2 -2
  15. package/dist/cjs/contexts/FontLanguageContext.js +29 -1
  16. package/dist/cjs/contexts/FontLanguageContext.js.map +2 -2
  17. package/dist/cjs/contexts/TextAncestorContext.js +29 -1
  18. package/dist/cjs/contexts/TextAncestorContext.js.map +2 -2
  19. package/dist/cjs/createComponent.js +896 -2
  20. package/dist/cjs/createComponent.js.map +2 -2
  21. package/dist/cjs/createFont.js +68 -1
  22. package/dist/cjs/createFont.js.map +2 -2
  23. package/dist/cjs/createShorthands.js +30 -1
  24. package/dist/cjs/createShorthands.js.map +2 -2
  25. package/dist/cjs/createTamagui.js +202 -5
  26. package/dist/cjs/createTamagui.js.map +2 -2
  27. package/dist/cjs/createTheme.js +30 -1
  28. package/dist/cjs/createTheme.js.map +2 -2
  29. package/dist/cjs/createTokens.js +38 -1
  30. package/dist/cjs/createTokens.js.map +2 -2
  31. package/dist/cjs/createVariable.js +110 -1
  32. package/dist/cjs/createVariable.js.map +2 -2
  33. package/dist/cjs/createVariables.js +59 -1
  34. package/dist/cjs/createVariables.js.map +2 -2
  35. package/dist/cjs/helpers/ThemeManager.js +243 -1
  36. package/dist/cjs/helpers/ThemeManager.js.map +2 -2
  37. package/dist/cjs/helpers/ThemeManagerContext.js +29 -1
  38. package/dist/cjs/helpers/ThemeManagerContext.js.map +2 -2
  39. package/dist/cjs/helpers/createMediaStyle.js +66 -1
  40. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  41. package/dist/cjs/helpers/createPropMapper.js +431 -2
  42. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  43. package/dist/cjs/helpers/createProxy.js +41 -2
  44. package/dist/cjs/helpers/createProxy.js.map +2 -2
  45. package/dist/cjs/helpers/defaultOffset.js +28 -1
  46. package/dist/cjs/helpers/defaultOffset.js.map +2 -2
  47. package/dist/cjs/helpers/expandStyle.js +85 -1
  48. package/dist/cjs/helpers/expandStyle.js.map +2 -2
  49. package/dist/cjs/helpers/expandStyles.js +76 -1
  50. package/dist/cjs/helpers/expandStyles.js.map +2 -2
  51. package/dist/cjs/helpers/extendStaticConfig.js +91 -1
  52. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  53. package/dist/cjs/helpers/getAnimationDriver.js +31 -1
  54. package/dist/cjs/helpers/getAnimationDriver.js.map +2 -2
  55. package/dist/cjs/helpers/getExpandedShorthands.js +38 -1
  56. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  57. package/dist/cjs/helpers/getFontLanguage.js +28 -1
  58. package/dist/cjs/helpers/getFontLanguage.js.map +2 -2
  59. package/dist/cjs/helpers/getSplitStyles.js +858 -3
  60. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  61. package/dist/cjs/helpers/getStylesAtomic.js +226 -1
  62. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  63. package/dist/cjs/helpers/getStylesAtomic.native.js +37 -1
  64. package/dist/cjs/helpers/getStylesAtomic.native.js.map +2 -2
  65. package/dist/cjs/helpers/getThemeCSSRules.js +126 -4
  66. package/dist/cjs/helpers/getThemeCSSRules.js.map +2 -2
  67. package/dist/cjs/helpers/getThemeCSSRules.native.js +30 -1
  68. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +2 -2
  69. package/dist/cjs/helpers/getVariantExtras.js +91 -1
  70. package/dist/cjs/helpers/getVariantExtras.js.map +2 -2
  71. package/dist/cjs/helpers/insertStyleRule.js +222 -2
  72. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  73. package/dist/cjs/helpers/isObj.js +28 -1
  74. package/dist/cjs/helpers/isObj.js.map +2 -2
  75. package/dist/cjs/helpers/isTamaguiComponent.js +31 -1
  76. package/dist/cjs/helpers/isTamaguiComponent.js.map +2 -2
  77. package/dist/cjs/helpers/isTamaguiElement.js +32 -1
  78. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  79. package/dist/cjs/helpers/matchMedia.js +41 -1
  80. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  81. package/dist/cjs/helpers/matchMedia.native.js +47 -1
  82. package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
  83. package/dist/cjs/helpers/mergeProps.js +53 -1
  84. package/dist/cjs/helpers/mergeProps.js.map +2 -2
  85. package/dist/cjs/helpers/normalizeColor.js +66 -1
  86. package/dist/cjs/helpers/normalizeColor.js.map +2 -2
  87. package/dist/cjs/helpers/normalizeShadow.js +46 -1
  88. package/dist/cjs/helpers/normalizeShadow.js.map +2 -2
  89. package/dist/cjs/helpers/normalizeShadow.native.js +54 -1
  90. package/dist/cjs/helpers/normalizeShadow.native.js.map +2 -2
  91. package/dist/cjs/helpers/normalizeStylePropKeys.js +28 -1
  92. package/dist/cjs/helpers/normalizeStylePropKeys.js.map +2 -2
  93. package/dist/cjs/helpers/normalizeStylePropKeys.native.js +39 -1
  94. package/dist/cjs/helpers/normalizeStylePropKeys.native.js.map +2 -2
  95. package/dist/cjs/helpers/normalizeValueWithProperty.js +125 -1
  96. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +2 -2
  97. package/dist/cjs/helpers/proxyThemeVariables.js +39 -1
  98. package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
  99. package/dist/cjs/helpers/pseudoDescriptors.js +52 -1
  100. package/dist/cjs/helpers/pseudoDescriptors.js.map +2 -2
  101. package/dist/cjs/helpers/registerCSSVariable.js +39 -1
  102. package/dist/cjs/helpers/registerCSSVariable.js.map +2 -2
  103. package/dist/cjs/helpers/themeable.js +61 -1
  104. package/dist/cjs/helpers/themeable.js.map +2 -2
  105. package/dist/cjs/helpers/themes.js +75 -1
  106. package/dist/cjs/helpers/themes.js.map +2 -2
  107. package/dist/cjs/helpers/timer.js +34 -1
  108. package/dist/cjs/helpers/timer.js.map +2 -2
  109. package/dist/cjs/helpers/useShallowSetState.js +58 -1
  110. package/dist/cjs/helpers/useShallowSetState.js.map +2 -2
  111. package/dist/cjs/helpers/warnOnce.js +37 -1
  112. package/dist/cjs/helpers/warnOnce.js.map +2 -2
  113. package/dist/cjs/helpers/withStaticProperties.js +32 -1
  114. package/dist/cjs/helpers/withStaticProperties.js.map +2 -2
  115. package/dist/cjs/hooks/getThemeUnwrapped.js +33 -1
  116. package/dist/cjs/hooks/getThemeUnwrapped.js.map +2 -2
  117. package/dist/cjs/hooks/useAnimationDriver.js +33 -1
  118. package/dist/cjs/hooks/useAnimationDriver.js.map +2 -2
  119. package/dist/cjs/hooks/useId.js +28 -1
  120. package/dist/cjs/hooks/useId.js.map +2 -2
  121. package/dist/cjs/hooks/useIsTouchDevice.js +32 -1
  122. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  123. package/dist/cjs/hooks/useMedia.js +264 -1
  124. package/dist/cjs/hooks/useMedia.js.map +2 -2
  125. package/dist/cjs/hooks/useSafeRef.js +58 -1
  126. package/dist/cjs/hooks/useSafeRef.js.map +2 -2
  127. package/dist/cjs/hooks/useServerHooks.js +35 -1
  128. package/dist/cjs/hooks/useServerHooks.js.map +2 -2
  129. package/dist/cjs/hooks/useStyle.js +60 -1
  130. package/dist/cjs/hooks/useStyle.js.map +2 -2
  131. package/dist/cjs/hooks/useTheme.js +276 -1
  132. package/dist/cjs/hooks/useTheme.js.map +2 -2
  133. package/dist/cjs/hooks/useThemeName.js +51 -1
  134. package/dist/cjs/hooks/useThemeName.js.map +2 -2
  135. package/dist/cjs/index.js +110 -1
  136. package/dist/cjs/index.js.map +2 -2
  137. package/dist/cjs/inject-styles.js +39 -1
  138. package/dist/cjs/inject-styles.js.map +2 -2
  139. package/dist/cjs/insertFont.js +92 -1
  140. package/dist/cjs/insertFont.js.map +2 -2
  141. package/dist/cjs/setupHooks.js +33 -1
  142. package/dist/cjs/setupHooks.js.map +2 -2
  143. package/dist/cjs/setupReactNative.js +50 -1
  144. package/dist/cjs/setupReactNative.js.map +2 -2
  145. package/dist/cjs/styled.js +93 -1
  146. package/dist/cjs/styled.js.map +2 -2
  147. package/dist/cjs/types.js +16 -1
  148. package/dist/cjs/types.js.map +2 -2
  149. package/dist/cjs/updateTheme.js +46 -1
  150. package/dist/cjs/updateTheme.js.map +2 -2
  151. package/dist/cjs/views/AnimationDriverProvider.js +32 -1
  152. package/dist/cjs/views/AnimationDriverProvider.js.map +2 -2
  153. package/dist/cjs/views/FontLanguage.js +40 -1
  154. package/dist/cjs/views/FontLanguage.js.map +2 -2
  155. package/dist/cjs/views/FontLanguage.native.js +34 -1
  156. package/dist/cjs/views/FontLanguage.native.js.map +2 -2
  157. package/dist/cjs/views/FontLanguage.types.js +16 -1
  158. package/dist/cjs/views/FontLanguage.types.js.map +2 -2
  159. package/dist/cjs/views/Slot.js +91 -1
  160. package/dist/cjs/views/Slot.js.map +2 -2
  161. package/dist/cjs/views/Stack.js +37 -1
  162. package/dist/cjs/views/Stack.js.map +2 -2
  163. package/dist/cjs/views/TamaguiProvider.js +90 -1
  164. package/dist/cjs/views/TamaguiProvider.js.map +2 -2
  165. package/dist/cjs/views/Text.js +95 -1
  166. package/dist/cjs/views/Text.js.map +2 -2
  167. package/dist/cjs/views/Theme.js +99 -1
  168. package/dist/cjs/views/Theme.js.map +2 -2
  169. package/dist/cjs/views/ThemeDebug.js +72 -1
  170. package/dist/cjs/views/ThemeDebug.js.map +2 -2
  171. package/dist/cjs/views/ThemeProvider.js +69 -1
  172. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  173. package/dist/esm/Tamagui.js +44 -1
  174. package/dist/esm/Tamagui.js.map +2 -2
  175. package/dist/esm/Tamagui.mjs +44 -1
  176. package/dist/esm/Tamagui.mjs.map +2 -2
  177. package/dist/esm/addTheme.js +53 -2
  178. package/dist/esm/addTheme.js.map +2 -2
  179. package/dist/esm/addTheme.mjs +53 -2
  180. package/dist/esm/addTheme.mjs.map +2 -2
  181. package/dist/esm/config.js +89 -1
  182. package/dist/esm/config.js.map +2 -2
  183. package/dist/esm/config.mjs +89 -1
  184. package/dist/esm/config.mjs.map +2 -2
  185. package/dist/esm/constants/constants.js +21 -1
  186. package/dist/esm/constants/constants.js.map +2 -2
  187. package/dist/esm/constants/constants.mjs +21 -1
  188. package/dist/esm/constants/constants.mjs.map +2 -2
  189. package/dist/esm/constants/isDevTools.js +12 -1
  190. package/dist/esm/constants/isDevTools.js.map +2 -2
  191. package/dist/esm/constants/isDevTools.mjs +12 -1
  192. package/dist/esm/constants/isDevTools.mjs.map +2 -2
  193. package/dist/esm/contexts/AnimationDriverContext.js +5 -1
  194. package/dist/esm/contexts/AnimationDriverContext.js.map +2 -2
  195. package/dist/esm/contexts/AnimationDriverContext.mjs +5 -1
  196. package/dist/esm/contexts/AnimationDriverContext.mjs.map +2 -2
  197. package/dist/esm/contexts/ButtonNestingContext.js +5 -1
  198. package/dist/esm/contexts/ButtonNestingContext.js.map +2 -2
  199. package/dist/esm/contexts/ButtonNestingContext.mjs +5 -1
  200. package/dist/esm/contexts/ButtonNestingContext.mjs.map +2 -2
  201. package/dist/esm/contexts/FontLanguageContext.js +5 -1
  202. package/dist/esm/contexts/FontLanguageContext.js.map +2 -2
  203. package/dist/esm/contexts/FontLanguageContext.mjs +5 -1
  204. package/dist/esm/contexts/FontLanguageContext.mjs.map +2 -2
  205. package/dist/esm/contexts/TextAncestorContext.js +5 -1
  206. package/dist/esm/contexts/TextAncestorContext.js.map +2 -2
  207. package/dist/esm/contexts/TextAncestorContext.mjs +5 -1
  208. package/dist/esm/contexts/TextAncestorContext.mjs.map +2 -2
  209. package/dist/esm/createComponent.js +869 -2
  210. package/dist/esm/createComponent.js.map +2 -2
  211. package/dist/esm/createComponent.mjs +869 -2
  212. package/dist/esm/createComponent.mjs.map +2 -2
  213. package/dist/esm/createFont.js +44 -1
  214. package/dist/esm/createFont.js.map +2 -2
  215. package/dist/esm/createFont.mjs +44 -1
  216. package/dist/esm/createFont.mjs.map +2 -2
  217. package/dist/esm/createShorthands.js +6 -1
  218. package/dist/esm/createShorthands.js.map +2 -2
  219. package/dist/esm/createShorthands.mjs +6 -1
  220. package/dist/esm/createShorthands.mjs.map +2 -2
  221. package/dist/esm/createTamagui.js +186 -5
  222. package/dist/esm/createTamagui.js.map +2 -2
  223. package/dist/esm/createTamagui.mjs +186 -5
  224. package/dist/esm/createTamagui.mjs.map +2 -2
  225. package/dist/esm/createTheme.js +6 -1
  226. package/dist/esm/createTheme.js.map +2 -2
  227. package/dist/esm/createTheme.mjs +6 -1
  228. package/dist/esm/createTheme.mjs.map +2 -2
  229. package/dist/esm/createTokens.js +14 -1
  230. package/dist/esm/createTokens.js.map +2 -2
  231. package/dist/esm/createTokens.mjs +14 -1
  232. package/dist/esm/createTokens.mjs.map +2 -2
  233. package/dist/esm/createVariable.js +77 -1
  234. package/dist/esm/createVariable.js.map +2 -2
  235. package/dist/esm/createVariable.mjs +77 -1
  236. package/dist/esm/createVariable.mjs.map +2 -2
  237. package/dist/esm/createVariables.js +34 -1
  238. package/dist/esm/createVariables.js.map +2 -2
  239. package/dist/esm/createVariables.mjs +34 -1
  240. package/dist/esm/createVariables.mjs.map +2 -2
  241. package/dist/esm/helpers/ThemeManager.js +218 -1
  242. package/dist/esm/helpers/ThemeManager.js.map +2 -2
  243. package/dist/esm/helpers/ThemeManager.mjs +218 -1
  244. package/dist/esm/helpers/ThemeManager.mjs.map +2 -2
  245. package/dist/esm/helpers/ThemeManagerContext.js +5 -1
  246. package/dist/esm/helpers/ThemeManagerContext.js.map +2 -2
  247. package/dist/esm/helpers/ThemeManagerContext.mjs +5 -1
  248. package/dist/esm/helpers/ThemeManagerContext.mjs.map +2 -2
  249. package/dist/esm/helpers/createMediaStyle.js +41 -1
  250. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  251. package/dist/esm/helpers/createMediaStyle.mjs +41 -1
  252. package/dist/esm/helpers/createMediaStyle.mjs.map +2 -2
  253. package/dist/esm/helpers/createPropMapper.js +404 -2
  254. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  255. package/dist/esm/helpers/createPropMapper.mjs +404 -2
  256. package/dist/esm/helpers/createPropMapper.mjs.map +2 -2
  257. package/dist/esm/helpers/createProxy.js +17 -2
  258. package/dist/esm/helpers/createProxy.js.map +2 -2
  259. package/dist/esm/helpers/createProxy.mjs +17 -2
  260. package/dist/esm/helpers/createProxy.mjs.map +2 -2
  261. package/dist/esm/helpers/defaultOffset.js +4 -1
  262. package/dist/esm/helpers/defaultOffset.js.map +2 -2
  263. package/dist/esm/helpers/defaultOffset.mjs +4 -1
  264. package/dist/esm/helpers/defaultOffset.mjs.map +2 -2
  265. package/dist/esm/helpers/expandStyle.js +61 -1
  266. package/dist/esm/helpers/expandStyle.js.map +2 -2
  267. package/dist/esm/helpers/expandStyle.mjs +61 -1
  268. package/dist/esm/helpers/expandStyle.mjs.map +2 -2
  269. package/dist/esm/helpers/expandStyles.js +51 -1
  270. package/dist/esm/helpers/expandStyles.js.map +2 -2
  271. package/dist/esm/helpers/expandStyles.mjs +51 -1
  272. package/dist/esm/helpers/expandStyles.mjs.map +2 -2
  273. package/dist/esm/helpers/extendStaticConfig.js +66 -1
  274. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  275. package/dist/esm/helpers/extendStaticConfig.mjs +66 -1
  276. package/dist/esm/helpers/extendStaticConfig.mjs.map +2 -2
  277. package/dist/esm/helpers/getAnimationDriver.js +7 -1
  278. package/dist/esm/helpers/getAnimationDriver.js.map +2 -2
  279. package/dist/esm/helpers/getAnimationDriver.mjs +7 -1
  280. package/dist/esm/helpers/getAnimationDriver.mjs.map +2 -2
  281. package/dist/esm/helpers/getExpandedShorthands.js +14 -1
  282. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  283. package/dist/esm/helpers/getExpandedShorthands.mjs +14 -1
  284. package/dist/esm/helpers/getExpandedShorthands.mjs.map +2 -2
  285. package/dist/esm/helpers/getFontLanguage.js +4 -1
  286. package/dist/esm/helpers/getFontLanguage.js.map +2 -2
  287. package/dist/esm/helpers/getFontLanguage.mjs +4 -1
  288. package/dist/esm/helpers/getFontLanguage.mjs.map +2 -2
  289. package/dist/esm/helpers/getSplitStyles.js +859 -3
  290. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  291. package/dist/esm/helpers/getSplitStyles.mjs +859 -3
  292. package/dist/esm/helpers/getSplitStyles.mjs.map +2 -2
  293. package/dist/esm/helpers/getStylesAtomic.js +200 -1
  294. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  295. package/dist/esm/helpers/getStylesAtomic.mjs +200 -1
  296. package/dist/esm/helpers/getStylesAtomic.mjs.map +2 -2
  297. package/dist/esm/helpers/getStylesAtomic.native.js +11 -1
  298. package/dist/esm/helpers/getStylesAtomic.native.js.map +2 -2
  299. package/dist/esm/helpers/getStylesAtomic.native.mjs +11 -1
  300. package/dist/esm/helpers/getStylesAtomic.native.mjs.map +2 -2
  301. package/dist/esm/helpers/getThemeCSSRules.js +102 -4
  302. package/dist/esm/helpers/getThemeCSSRules.js.map +2 -2
  303. package/dist/esm/helpers/getThemeCSSRules.mjs +102 -4
  304. package/dist/esm/helpers/getThemeCSSRules.mjs.map +2 -2
  305. package/dist/esm/helpers/getThemeCSSRules.native.js +6 -1
  306. package/dist/esm/helpers/getThemeCSSRules.native.js.map +2 -2
  307. package/dist/esm/helpers/getThemeCSSRules.native.mjs +6 -1
  308. package/dist/esm/helpers/getThemeCSSRules.native.mjs.map +2 -2
  309. package/dist/esm/helpers/getVariantExtras.js +66 -1
  310. package/dist/esm/helpers/getVariantExtras.js.map +2 -2
  311. package/dist/esm/helpers/getVariantExtras.mjs +66 -1
  312. package/dist/esm/helpers/getVariantExtras.mjs.map +2 -2
  313. package/dist/esm/helpers/insertStyleRule.js +190 -2
  314. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  315. package/dist/esm/helpers/insertStyleRule.mjs +190 -2
  316. package/dist/esm/helpers/insertStyleRule.mjs.map +2 -2
  317. package/dist/esm/helpers/isObj.js +4 -1
  318. package/dist/esm/helpers/isObj.js.map +2 -2
  319. package/dist/esm/helpers/isObj.mjs +4 -1
  320. package/dist/esm/helpers/isObj.mjs.map +2 -2
  321. package/dist/esm/helpers/isTamaguiComponent.js +7 -1
  322. package/dist/esm/helpers/isTamaguiComponent.js.map +2 -2
  323. package/dist/esm/helpers/isTamaguiComponent.mjs +7 -1
  324. package/dist/esm/helpers/isTamaguiComponent.mjs.map +2 -2
  325. package/dist/esm/helpers/isTamaguiElement.js +8 -1
  326. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  327. package/dist/esm/helpers/isTamaguiElement.mjs +8 -1
  328. package/dist/esm/helpers/isTamaguiElement.mjs.map +2 -2
  329. package/dist/esm/helpers/matchMedia.js +16 -1
  330. package/dist/esm/helpers/matchMedia.js.map +2 -2
  331. package/dist/esm/helpers/matchMedia.mjs +16 -1
  332. package/dist/esm/helpers/matchMedia.mjs.map +2 -2
  333. package/dist/esm/helpers/matchMedia.native.js +22 -1
  334. package/dist/esm/helpers/matchMedia.native.js.map +2 -2
  335. package/dist/esm/helpers/matchMedia.native.mjs +22 -1
  336. package/dist/esm/helpers/matchMedia.native.mjs.map +2 -2
  337. package/dist/esm/helpers/mergeProps.js +29 -1
  338. package/dist/esm/helpers/mergeProps.js.map +2 -2
  339. package/dist/esm/helpers/mergeProps.mjs +29 -1
  340. package/dist/esm/helpers/mergeProps.mjs.map +2 -2
  341. package/dist/esm/helpers/normalizeColor.js +30 -1
  342. package/dist/esm/helpers/normalizeColor.js.map +2 -2
  343. package/dist/esm/helpers/normalizeColor.mjs +30 -1
  344. package/dist/esm/helpers/normalizeColor.mjs.map +2 -2
  345. package/dist/esm/helpers/normalizeShadow.js +22 -1
  346. package/dist/esm/helpers/normalizeShadow.js.map +2 -2
  347. package/dist/esm/helpers/normalizeShadow.mjs +22 -1
  348. package/dist/esm/helpers/normalizeShadow.mjs.map +2 -2
  349. package/dist/esm/helpers/normalizeShadow.native.js +30 -1
  350. package/dist/esm/helpers/normalizeShadow.native.js.map +2 -2
  351. package/dist/esm/helpers/normalizeShadow.native.mjs +30 -1
  352. package/dist/esm/helpers/normalizeShadow.native.mjs.map +2 -2
  353. package/dist/esm/helpers/normalizeStylePropKeys.js +4 -1
  354. package/dist/esm/helpers/normalizeStylePropKeys.js.map +2 -2
  355. package/dist/esm/helpers/normalizeStylePropKeys.mjs +4 -1
  356. package/dist/esm/helpers/normalizeStylePropKeys.mjs.map +2 -2
  357. package/dist/esm/helpers/normalizeStylePropKeys.native.js +15 -1
  358. package/dist/esm/helpers/normalizeStylePropKeys.native.js.map +2 -2
  359. package/dist/esm/helpers/normalizeStylePropKeys.native.mjs +15 -1
  360. package/dist/esm/helpers/normalizeStylePropKeys.native.mjs.map +2 -2
  361. package/dist/esm/helpers/normalizeValueWithProperty.js +100 -1
  362. package/dist/esm/helpers/normalizeValueWithProperty.js.map +2 -2
  363. package/dist/esm/helpers/normalizeValueWithProperty.mjs +100 -1
  364. package/dist/esm/helpers/normalizeValueWithProperty.mjs.map +2 -2
  365. package/dist/esm/helpers/proxyThemeVariables.js +15 -1
  366. package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
  367. package/dist/esm/helpers/proxyThemeVariables.mjs +15 -1
  368. package/dist/esm/helpers/proxyThemeVariables.mjs.map +2 -2
  369. package/dist/esm/helpers/pseudoDescriptors.js +28 -1
  370. package/dist/esm/helpers/pseudoDescriptors.js.map +2 -2
  371. package/dist/esm/helpers/pseudoDescriptors.mjs +28 -1
  372. package/dist/esm/helpers/pseudoDescriptors.mjs.map +2 -2
  373. package/dist/esm/helpers/registerCSSVariable.js +13 -1
  374. package/dist/esm/helpers/registerCSSVariable.js.map +2 -2
  375. package/dist/esm/helpers/registerCSSVariable.mjs +13 -1
  376. package/dist/esm/helpers/registerCSSVariable.mjs.map +2 -2
  377. package/dist/esm/helpers/themeable.js +27 -1
  378. package/dist/esm/helpers/themeable.js.map +2 -2
  379. package/dist/esm/helpers/themeable.mjs +27 -1
  380. package/dist/esm/helpers/themeable.mjs.map +2 -2
  381. package/dist/esm/helpers/themes.js +50 -1
  382. package/dist/esm/helpers/themes.js.map +2 -2
  383. package/dist/esm/helpers/themes.mjs +50 -1
  384. package/dist/esm/helpers/themes.mjs.map +2 -2
  385. package/dist/esm/helpers/timer.js +10 -1
  386. package/dist/esm/helpers/timer.js.map +2 -2
  387. package/dist/esm/helpers/timer.mjs +10 -1
  388. package/dist/esm/helpers/timer.mjs.map +2 -2
  389. package/dist/esm/helpers/useShallowSetState.js +34 -1
  390. package/dist/esm/helpers/useShallowSetState.js.map +2 -2
  391. package/dist/esm/helpers/useShallowSetState.mjs +34 -1
  392. package/dist/esm/helpers/useShallowSetState.mjs.map +2 -2
  393. package/dist/esm/helpers/warnOnce.js +13 -1
  394. package/dist/esm/helpers/warnOnce.js.map +2 -2
  395. package/dist/esm/helpers/warnOnce.mjs +13 -1
  396. package/dist/esm/helpers/warnOnce.mjs.map +2 -2
  397. package/dist/esm/helpers/withStaticProperties.js +8 -1
  398. package/dist/esm/helpers/withStaticProperties.js.map +2 -2
  399. package/dist/esm/helpers/withStaticProperties.mjs +8 -1
  400. package/dist/esm/helpers/withStaticProperties.mjs.map +2 -2
  401. package/dist/esm/hooks/getThemeUnwrapped.js +8 -1
  402. package/dist/esm/hooks/getThemeUnwrapped.js.map +2 -2
  403. package/dist/esm/hooks/getThemeUnwrapped.mjs +8 -1
  404. package/dist/esm/hooks/getThemeUnwrapped.mjs.map +2 -2
  405. package/dist/esm/hooks/useAnimationDriver.js +9 -1
  406. package/dist/esm/hooks/useAnimationDriver.js.map +2 -2
  407. package/dist/esm/hooks/useAnimationDriver.mjs +9 -1
  408. package/dist/esm/hooks/useAnimationDriver.mjs.map +2 -2
  409. package/dist/esm/hooks/useId.js +4 -1
  410. package/dist/esm/hooks/useId.js.map +2 -2
  411. package/dist/esm/hooks/useId.mjs +4 -1
  412. package/dist/esm/hooks/useId.mjs.map +2 -2
  413. package/dist/esm/hooks/useIsTouchDevice.js +8 -1
  414. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  415. package/dist/esm/hooks/useIsTouchDevice.mjs +8 -1
  416. package/dist/esm/hooks/useIsTouchDevice.mjs.map +2 -2
  417. package/dist/esm/hooks/useMedia.js +225 -1
  418. package/dist/esm/hooks/useMedia.js.map +2 -2
  419. package/dist/esm/hooks/useMedia.mjs +225 -1
  420. package/dist/esm/hooks/useMedia.mjs.map +2 -2
  421. package/dist/esm/hooks/useSafeRef.js +34 -1
  422. package/dist/esm/hooks/useSafeRef.js.map +2 -2
  423. package/dist/esm/hooks/useSafeRef.mjs +34 -1
  424. package/dist/esm/hooks/useSafeRef.mjs.map +2 -2
  425. package/dist/esm/hooks/useServerHooks.js +10 -1
  426. package/dist/esm/hooks/useServerHooks.js.map +2 -2
  427. package/dist/esm/hooks/useServerHooks.mjs +10 -1
  428. package/dist/esm/hooks/useServerHooks.mjs.map +2 -2
  429. package/dist/esm/hooks/useStyle.js +36 -1
  430. package/dist/esm/hooks/useStyle.js.map +2 -2
  431. package/dist/esm/hooks/useStyle.mjs +36 -1
  432. package/dist/esm/hooks/useStyle.mjs.map +2 -2
  433. package/dist/esm/hooks/useTheme.js +250 -1
  434. package/dist/esm/hooks/useTheme.js.map +2 -2
  435. package/dist/esm/hooks/useTheme.mjs +250 -1
  436. package/dist/esm/hooks/useTheme.mjs.map +2 -2
  437. package/dist/esm/hooks/useThemeName.js +27 -1
  438. package/dist/esm/hooks/useThemeName.js.map +2 -2
  439. package/dist/esm/hooks/useThemeName.mjs +27 -1
  440. package/dist/esm/hooks/useThemeName.mjs.map +2 -2
  441. package/dist/esm/index.js +88 -1
  442. package/dist/esm/index.js.map +2 -2
  443. package/dist/esm/index.mjs +88 -1
  444. package/dist/esm/index.mjs.map +2 -2
  445. package/dist/esm/inject-styles.js +15 -1
  446. package/dist/esm/inject-styles.js.map +2 -2
  447. package/dist/esm/inject-styles.mjs +15 -1
  448. package/dist/esm/inject-styles.mjs.map +2 -2
  449. package/dist/esm/insertFont.js +66 -1
  450. package/dist/esm/insertFont.js.map +2 -2
  451. package/dist/esm/insertFont.mjs +66 -1
  452. package/dist/esm/insertFont.mjs.map +2 -2
  453. package/dist/esm/setupHooks.js +8 -1
  454. package/dist/esm/setupHooks.js.map +2 -2
  455. package/dist/esm/setupHooks.mjs +8 -1
  456. package/dist/esm/setupHooks.mjs.map +2 -2
  457. package/dist/esm/setupReactNative.js +24 -1
  458. package/dist/esm/setupReactNative.js.map +2 -2
  459. package/dist/esm/setupReactNative.mjs +24 -1
  460. package/dist/esm/setupReactNative.mjs.map +2 -2
  461. package/dist/esm/styled.js +69 -1
  462. package/dist/esm/styled.js.map +2 -2
  463. package/dist/esm/styled.mjs +69 -1
  464. package/dist/esm/styled.mjs.map +2 -2
  465. package/dist/esm/updateTheme.js +22 -1
  466. package/dist/esm/updateTheme.js.map +2 -2
  467. package/dist/esm/updateTheme.mjs +22 -1
  468. package/dist/esm/updateTheme.mjs.map +2 -2
  469. package/dist/esm/views/AnimationDriverProvider.js +8 -1
  470. package/dist/esm/views/AnimationDriverProvider.js.map +2 -2
  471. package/dist/esm/views/AnimationDriverProvider.mjs +8 -1
  472. package/dist/esm/views/AnimationDriverProvider.mjs.map +2 -2
  473. package/dist/esm/views/FontLanguage.js +16 -1
  474. package/dist/esm/views/FontLanguage.js.map +2 -2
  475. package/dist/esm/views/FontLanguage.mjs +16 -1
  476. package/dist/esm/views/FontLanguage.mjs.map +2 -2
  477. package/dist/esm/views/FontLanguage.native.js +10 -1
  478. package/dist/esm/views/FontLanguage.native.js.map +2 -2
  479. package/dist/esm/views/FontLanguage.native.mjs +10 -1
  480. package/dist/esm/views/FontLanguage.native.mjs.map +2 -2
  481. package/dist/esm/views/Slot.js +65 -1
  482. package/dist/esm/views/Slot.js.map +2 -2
  483. package/dist/esm/views/Slot.mjs +65 -1
  484. package/dist/esm/views/Slot.mjs.map +2 -2
  485. package/dist/esm/views/Stack.js +13 -1
  486. package/dist/esm/views/Stack.js.map +2 -2
  487. package/dist/esm/views/Stack.mjs +13 -1
  488. package/dist/esm/views/Stack.mjs.map +2 -2
  489. package/dist/esm/views/TamaguiProvider.js +56 -1
  490. package/dist/esm/views/TamaguiProvider.js.map +2 -2
  491. package/dist/esm/views/TamaguiProvider.mjs +56 -1
  492. package/dist/esm/views/TamaguiProvider.mjs.map +2 -2
  493. package/dist/esm/views/Text.js +71 -1
  494. package/dist/esm/views/Text.js.map +2 -2
  495. package/dist/esm/views/Text.mjs +71 -1
  496. package/dist/esm/views/Text.mjs.map +2 -2
  497. package/dist/esm/views/Theme.js +74 -1
  498. package/dist/esm/views/Theme.js.map +2 -2
  499. package/dist/esm/views/Theme.mjs +74 -1
  500. package/dist/esm/views/Theme.mjs.map +2 -2
  501. package/dist/esm/views/ThemeDebug.js +48 -1
  502. package/dist/esm/views/ThemeDebug.js.map +2 -2
  503. package/dist/esm/views/ThemeDebug.mjs +48 -1
  504. package/dist/esm/views/ThemeDebug.mjs.map +2 -2
  505. package/dist/esm/views/ThemeProvider.js +44 -1
  506. package/dist/esm/views/ThemeProvider.js.map +2 -2
  507. package/dist/esm/views/ThemeProvider.mjs +44 -1
  508. package/dist/esm/views/ThemeProvider.mjs.map +2 -2
  509. package/package.json +9 -9
@@ -1,4 +1,860 @@
1
- import{isClient as le,isRSC as We,isServer as Le,isWeb as z,useIsomorphicLayoutEffect as Ue}from"@tamagui/constants";import{stylePropsFont as He,stylePropsText as Be,stylePropsTransform as Ne,validPseudoKeys as Ae,validStyles as fe,validStylesOnBaseProps as qe}from"@tamagui/helpers";import{useInsertionEffect as ze}from"react";import{getConfig as Qe,getFont as Xe}from"../config.js";import{isDevTools as Oe}from"../constants/isDevTools.js";import{getMediaImportanceIfMoreImportant as Re,mediaState as Ye,mediaKeysWithAndWithout$ as Ze,mediaQueryConfig as Je,mergeMediaByImportance as ke}from"../hooks/useMedia.js";import{createMediaStyle as Ie}from"./createMediaStyle.js";import{getPropMappedFontFamily as es}from"./createPropMapper.js";import{fixStyles as xe}from"./expandStyles.js";import{getAtomicStyle as ss,getStylesAtomic as Ce,styleToCSS as ts}from"./getStylesAtomic";import{insertStyleRules as os,insertedTransforms as ue,scanAllSheets as rs,shouldInsertStyleRules as ns,updateRules as is}from"./insertStyleRule.js";import{normalizeValueWithProperty as _e,reverseMapClassNameToValue as as}from"./normalizeValueWithProperty.js";import{pseudoDescriptors as cs}from"./pseudoDescriptors.js";const Y={animation:!0,space:!0,animateOnly:!0,debug:!0,componentName:!0,tag:!0};process.env.NODE_ENV==="test"&&(Y["data-test-renders"]=!0);const Z=process.env.IS_STATIC==="is_static";process.env.TAMAGUI_TARGET==="native"&&Object.assign(Y,{whiteSpace:!0,wordWrap:!0,textOverflow:!0,textDecorationDistance:!0,cursor:!0,contain:!0,boxSizing:!0,boxShadow:!0});const J={};if(process.env.TAMAGUI_TARGET==="web"){const t={Hidden:!0,ActiveDescendant:!0,Atomic:!0,AutoComplete:!0,Busy:!0,Checked:!0,ColumnCount:"colcount",ColumnIndex:"colindex",ColumnSpan:"colspan",Current:!0,Details:!0,ErrorMessage:!0,Expanded:!0,HasPopup:!0,Invalid:!0,Label:!0,Level:!0,Modal:!0,Multiline:!0,MultiSelectable:!0,Orientation:!0,Owns:!0,Placeholder:!0,PosInSet:!0,Pressed:!0,RoleDescription:!0,RowCount:!0,RowIndex:!0,RowSpan:!0,Selected:!0,SetSize:!0,Sort:!0,ValueMax:!0,ValueMin:!0,ValueNow:!0,ValueText:!0};for(const r in t){let u=t[r];u===!0&&(u=r.toLowerCase()),J[`accessibility${r}`]=`aria-${u}`}}let k;const U="-",ls={adjustable:"slider",header:"heading",image:"img",link:"link",none:"presentation",summary:"region"},Me=t=>Boolean(t[0]==="$"&&Ze.has(t)),fs=(t,r,u,n,S,p,c,d)=>{var ge,Se,Te;if(H.has(t))return H.get(t);k=k||Qe();const{shorthands:x}=k,{variants:C,propMapper:ee,isReactNative:$,inlineProps:O,inlineWhenUnflattened:B}=r,K=r.isText?Be:fe,i={};let R=null,se=null;const de=n.mediaState||Ye,a={},te=Object.keys(t);let oe=t.space,q=!1;const _=r.acceptsClassName&&(z||Z)&&!n.noClassNames;let l={};const j={},$e=te.length,W=[],T={};let re="";const N={};let G;const L={classNames:T,conf:k,props:t,state:n,staticConfig:r,style:l,theme:u,usedKeys:a,viewProps:i,languageContext:p};if(process.env.NODE_ENV==="development"&&d==="verbose"&&(console.groupCollapsed("getSplitStyles (looping backwards)"),console.log({props:t,staticConfig:r,shouldDoClasses:_,state:n,IS_STATIC:Z,propKeys:te,styleState:L}),console.groupEnd()),t.className)for(const e of t.className.split(" "))if(e[0]==="_"){const[s,m]=e.slice(1).split("-"),h=m[0]==="_",F=m[0]==="0",V=h||F;let A=x[s];if(h){let M=m.slice(1);M=M.slice(0,M.indexOf("_")),A+=`${U}${M}`}else if(F){const M=m.slice(1);A+=`${U}${M}`}a[A]=1,Q(N,T,A,e,V)}else e&&(re+=` ${e}`);const ne=[];function me(e,s,m=!1,h=null){var be;if(e==="className")return;if(e in x&&(e=x[e]),process.env.TAMAGUI_TARGET==="native"){if(e==="userSelect")e="selectable",s=s!=="none";else if(e.startsWith("data-")||e.startsWith("aria-"))return}if(!r.isHOC&&e in Y||e in a)return;if(typeof s=="string"&&s[0]==="_"&&(e in K||e.includes("-"))){_?T[e]=s:l[e]=as(e,s),a[e]=1;return}if(e==="dataSet"){for(const o in s)i[`data-${ys(o)}`]=s[o];return}const F=e==="style";if(F||e.startsWith("_style")){if(!s)return;const o=Array.isArray(s)?s:[s],y=o.length;for(let v=y;v>=0;v--){const g=o[v];if(g)for(const f in g)!F&&a[f]||(a[f]=1,l[f]=g[f])}return}if(process.env.TAMAGUI_TARGET==="web"){if(e==="disabled"&&s===!0&&(a[e]=1,i["aria-disabled"]=!0,(c==="button"||c==="form"||c==="input"||c==="select"||c==="textarea")&&(i.disabled=!0),!(C!=null&&C.disabled)))return;if(e==="testID"){a[e]=1,i[$?"testId":"data-testid"]=s;return}if(e==="id"||e==="nativeID"){a[e]=1,$?i.nativeID=s:i.id=s;return}let o=!1;if($){if(J[e]||e.startsWith("accessibility")){i[e]=s,a[e]=1;return}}else if(o=!0,J[e])i[J[e]]=s;else switch(e){case"accessibilityRole":{s==="none"?i.role="presentation":i.role=ls[s]||s;return}case"accessibilityLabelledBy":case"accessibilityFlowTo":case"accessibilityControls":case"accessibilityDescribedBy":{i[`aria-${e.replace("accessibility","").toLowerCase()}`]=ds(s);return}case"accessibilityKeyShortcuts":{Array.isArray(s)&&(i["aria-keyshortcuts"]=s.join(" "));return}case"accessibilityLiveRegion":{i["aria-live"]=s==="none"?"off":s;return}case"accessibilityReadOnly":{i["aria-readonly"]=s,(c==="input"||c==="select"||c==="textarea")&&(i.readOnly=!0);return}case"accessibilityRequired":{i["aria-required"]=s,(c==="input"||c==="select"||c==="textarea")&&(i.required=s);return}default:o=!1}if(o){a[e]=1;return}if(s&&s[0]==="_"){const y=e in fe,v=!y&&e.includes(U)&&fe[e.split(U)[0]];if(y||v){a[e]=1,process.env.NODE_ENV==="development"&&d&&console.log("tamagui classname props",e,s),Q(N,T,e,s,v);return}}}let V=Me(e),A=e in Ae;const M=C&&e in C,Ve=!(V||A||M||e in K||e in x),Fe=((be=r.parentStaticConfig)==null?void 0:be.variants)&&e in r.parentStaticConfig,Ke=r.isHOC&&(V||A),he=Ve||Ke||Fe;if(process.env.NODE_ENV==="development"&&d==="verbose"&&he&&console.log(` \u{1F539} pass through ${e}`),he&&(a[e]=1,i[e]=s,!M))return;process.env.NODE_ENV==="development"&&d==="verbose"&&console.groupCollapsed(" \u{1F539} styles",e,s);const X=V||A?[[e,s]]:ee(e,s,u,m?{...t,fontFamily:h}:t,n,p,void 0,d);if(G||(G=es(X)),process.env.NODE_ENV==="development"&&d==="verbose"&&(!Le&&Oe&&console.log("expanded",X,`
2
- usedKeys`,a,`
3
- current`,{...l}),console.groupEnd()),!!X)for(const[o,y]of X){if(y===void 0)continue;if(o in He&&!m&&o!=="fontFamily"){ne.push([o,y]);continue}V=Me(o),A=o in Ae;const v=V||A;if(!v&&a[o]){process.env.NODE_ENV==="developmnet"&&d==="verbose"&&console.log(`Used media/pseudo ${o}`);continue}if((O!=null&&O.has(o)||B!=null&&B.has(o))&&(a[o]=1,i[o]=t[o]??y),A){if(!y)continue;const g=ve(L,o,y,!0,n.noClassNames),f=cs[o],D=f.name==="enter",w=f.name==="exit";if(!f||w&&!n.isExiting)continue;if((!_||Z)&&(R||={},R[o]||={},Object.assign(R[o],g)),_&&!D&&!w){const P=ss(g,f);for(const E of P){const b=`${E.property}${U}${f.name}`;a[b]||(a[b]=1,I(W,E),Q(N,T,b,E.identifier,v))}}else{if(a[o])continue;let P=!n[f.stateKey||f.name];z&&!le&&D&&(P=!1),P||s===r.defaultProps[e]||(a[o]||=1,process.env.NODE_ENV==="development"&&d==="verbose"&&console.log(`Setting used ${o}`)),se||={};const E=f.priority;for(const b in g){const ce=g[b];if(P){if(!(b in a)&&b in De){const je=De[b];pe(L,j,b,je,!0)}continue}const Pe=se[E]||0,Ee=E>=Pe;Ee&&(se[b]=E,R||={},R[o]||={},R[o][b]=ce,pe(L,j,b,ce)),process.env.NODE_ENV==="development"&&d==="verbose"&&console.log(" merge pseudo?",e,Ee,{importance:E,curImportance:Pe,pkey:b,val:ce})}}continue}if(V){if(!y)continue;q||=!0;const g=ve(L,o,y,!1),f=o.slice(1);if(process.env.NODE_ENV==="development"&&d==="verbose"&&console.log(` \u{1F4FA} ${o}`,{key:o,mediaStyle:g,props:t,shouldDoClasses:_}),"space"in g&&(Array.isArray(q)||(q=[]),q.push(f)),_){if("space"in g&&(delete g.space,de[f])){const w=s.space,P=Re(f,"space",a);P&&(oe=w,a.space=P,process.env.NODE_ENV==="development"&&d==="verbose"&&console.log(`Found more important space for current media ${f}: ${w} (importance: ${P})`))}const D=Ce(g);for(const w of D){const P=Ie(w,f,Je),E=`${w.property}${U}${f}`;a[E]||(a[E]=1,I(W,P),Q(N,T,E,P.identifier,!0))}}else if(de[f]){for(const D in g)if(Re(f,D,a)!==null){if(D==="space"){oe=s.space;continue}ke(l,f,D,g[D],a),o==="fontFamily"&&(G=g.fontFamily)}}continue}if(process.env.TAMAGUI_TARGET==="native"&&o==="pointerEvents"){a[o]=1,i[o]=y;continue}if(o==="fontFamily"&&!G&&s&&y&&(G=s[0]==="$"?s:y),o in K){pe(L,j,o,y);continue}(!C||!(o in C))&&(o in Y||(i[o]=y,a[o]=1))}}for(let e=$e-1;e>=0;e--){const s=te[e],m=t[s];me(s,m)}for(let e=0;e<ne.length;e++){const[s,m]=ne[e];me(s,m,!0,G)}if(xe(l),z&&ts(l),process.env.TAMAGUI_TARGET==="native"&&"fontFamily"in l&&l.fontFamily){const e=(ge=Xe(l.fontFamily))==null?void 0:ge.face;if(e){const s=(Te=(Se=e[l.fontWeight])==null?void 0:Se[l.fontStyle||"normal"])==null?void 0:Te.val;s&&(l.fontFamily=s,G=s,delete l.fontWeight,delete l.fontStyle)}process.env.NODE_ENV==="development"&&d&&console.log(`Found fontFamily native: ${l.fontFamily}`,e)}if(j&&gs(l,j,!0),S){if(process.env.TAMAGUI_TARGET==="web"&&_)for(const e in S.classNames){const s=S.classNames[e];e in l||e in T||(T[e]=s)}if(!_)for(const e in S.style)e in T||e in l||(l[e]=S.style[e])}if(process.env.TAMAGUI_TARGET==="web"){if(_){const e={};if(!l.$$css){const s=Ce(l);for(const m of s){const h=m.property;t.animateOnly&&t.animateOnly.includes(h)?e[h]=m.value:(I(W,m),Q(N,T,h,m.identifier))}Z||(l=e)}}if(N)for(const e in N){if(!N[e]){process.env.NODE_ENV==="development"&&console.warn("Error no transform",N,e);continue}const[s,m]=N[e],h=`_transform${s}`;if(le&&!ue[h]){const F=`.${h} { transform: ${m}; }`;I(W,{identifier:h,rules:[F],property:e})}T[e]=h}}const ye={},ie=Object.keys(i),Ge=ie.length;for(let e=Ge-1;e>=0;e--)ye[ie[e]]=i[ie[e]];const ae={space:oe,hasMedia:q,fontFamily:G,viewProps:ye,style:l,pseudos:R,classNames:T,rulesToInsert:W};if(re&&(T.className=re),process.env.NODE_ENV==="development"&&d==="verbose"&&Oe){console.groupCollapsed(" \u{1F539} styles =>");const e={...ae,state:n,etc:{transforms:N,viewProps:i,rulesToInsert:W,parentSplitStyles:S,flatTransforms:j}};for(const s in e)console.log(s,e[s]);console.groupEnd()}return H.set(t,ae),ae};function Q(t,r,u,n,S=!1){if(process.env.TAMAGUI_TARGET==="web"){if(!n)return;if(n[0]==="_"&&n.startsWith("_transform-")){const p=S?u:"transform";let c=ue[n];le&&!c&&(rs(),c=ue[n],!c&&z&&n[0]!=="_"&&(c=n)),t[p]||=["",""],t[p][0]+=n.replace("_transform",""),c&&(t[p][1]+=c)}else r[u]=n}}const H=new WeakMap;function us(t,r,u){const n=u||r;return H.has(n)||H.set(n,{...t,...r,...u}),H.get(n)}function pe({usedKeys:t,classNames:r,viewProps:u,style:n},S,p,c,d=!1){if(d||(t[p]||=1),c&&c[0]==="_")r[p]=c;else if(p in Ne)S||={},S[p]=c;else{const x=_e(c,p);p in qe?u[p]=x:n[p]=x}}const ve=(t,r,u,n,S)=>{const{staticConfig:p,theme:c,props:d,state:x,conf:C,languageContext:ee}=t,$={};for(let O in u){const B=u[O];O=C.shorthands[O]||O;const K=p.propMapper(O,B,c,us(p.defaultProps,d,d[r]),x,ee,n);if(K)for(const[i,R]of K)!S&&i in Ne?we($,i,R):$[i]=_e(R,O)}return xe($),$},ps=z?ze||Ue:()=>{},vs=(...t)=>{const r=fs(...t);return We||ps(()=>{os(r.rulesToInsert)},[r.rulesToInsert]),r};function I(t,r){if(process.env.TAMAGUI_TARGET==="web"){if(!ns(r.identifier))return;is(r.identifier,r.rules),t.push(r)}}function ds(t){return Array.isArray(t)?t.join(" "):t}const De={opacity:1,scale:1,rotate:"0deg",rotateY:"0deg",rotateX:"0deg"},ms=t=>`-${t.toLowerCase()}`,ys=t=>t.replace(/[A-Z]/g,ms),we=(t,r,u,n=!1)=>{t.transform||=[],t.transform[n?"unshift":"push"]({[Ss[r]||r]:u})},gs=(t,r,u=!1)=>{Object.entries(r).forEach(([n,S])=>{we(t,n,S,u)})},Ss={x:"translateX",y:"translateY"};export{U as PROP_SPLIT,fs as getSplitStyles,ve as getSubStyle,vs as useSplitStyles};
1
+ import {
2
+ isClient,
3
+ isRSC,
4
+ isServer,
5
+ isWeb,
6
+ useIsomorphicLayoutEffect
7
+ } from "@tamagui/constants";
8
+ import {
9
+ stylePropsFont,
10
+ stylePropsText,
11
+ stylePropsTransform,
12
+ validPseudoKeys,
13
+ validStyles,
14
+ validStylesOnBaseProps
15
+ } from "@tamagui/helpers";
16
+ import { useInsertionEffect } from "react";
17
+ import { getConfig, getFont } from "../config.js";
18
+ import { isDevTools } from "../constants/isDevTools.js";
19
+ import {
20
+ getMediaImportanceIfMoreImportant,
21
+ mediaState as globalMediaState,
22
+ mediaKeysWithAndWithout$,
23
+ mediaQueryConfig,
24
+ mergeMediaByImportance
25
+ } from "../hooks/useMedia.js";
26
+ import { createMediaStyle } from "./createMediaStyle.js";
27
+ import { getPropMappedFontFamily } from "./createPropMapper.js";
28
+ import { fixStyles } from "./expandStyles.js";
29
+ import { getAtomicStyle, getStylesAtomic, styleToCSS } from "./getStylesAtomic";
30
+ import {
31
+ insertStyleRules,
32
+ insertedTransforms,
33
+ scanAllSheets,
34
+ shouldInsertStyleRules,
35
+ updateRules
36
+ } from "./insertStyleRule.js";
37
+ import {
38
+ normalizeValueWithProperty,
39
+ reverseMapClassNameToValue
40
+ } from "./normalizeValueWithProperty.js";
41
+ import { pseudoDescriptors } from "./pseudoDescriptors.js";
42
+ const skipProps = {
43
+ animation: true,
44
+ space: true,
45
+ animateOnly: true,
46
+ debug: true,
47
+ componentName: true,
48
+ tag: true
49
+ };
50
+ if (process.env.NODE_ENV === "test") {
51
+ skipProps["data-test-renders"] = true;
52
+ }
53
+ const IS_STATIC = process.env.IS_STATIC === "is_static";
54
+ if (process.env.TAMAGUI_TARGET === "native") {
55
+ Object.assign(skipProps, {
56
+ whiteSpace: true,
57
+ wordWrap: true,
58
+ textOverflow: true,
59
+ textDecorationDistance: true,
60
+ cursor: true,
61
+ contain: true,
62
+ boxSizing: true,
63
+ boxShadow: true
64
+ });
65
+ }
66
+ const accessibilityDirectMap = {};
67
+ if (process.env.TAMAGUI_TARGET === "web") {
68
+ const items = {
69
+ Hidden: true,
70
+ ActiveDescendant: true,
71
+ Atomic: true,
72
+ AutoComplete: true,
73
+ Busy: true,
74
+ Checked: true,
75
+ ColumnCount: "colcount",
76
+ ColumnIndex: "colindex",
77
+ ColumnSpan: "colspan",
78
+ Current: true,
79
+ Details: true,
80
+ ErrorMessage: true,
81
+ Expanded: true,
82
+ HasPopup: true,
83
+ Invalid: true,
84
+ Label: true,
85
+ Level: true,
86
+ Modal: true,
87
+ Multiline: true,
88
+ MultiSelectable: true,
89
+ Orientation: true,
90
+ Owns: true,
91
+ Placeholder: true,
92
+ PosInSet: true,
93
+ Pressed: true,
94
+ RoleDescription: true,
95
+ RowCount: true,
96
+ RowIndex: true,
97
+ RowSpan: true,
98
+ Selected: true,
99
+ SetSize: true,
100
+ Sort: true,
101
+ ValueMax: true,
102
+ ValueMin: true,
103
+ ValueNow: true,
104
+ ValueText: true
105
+ };
106
+ for (const key in items) {
107
+ let val = items[key];
108
+ if (val === true) {
109
+ val = key.toLowerCase();
110
+ }
111
+ accessibilityDirectMap[`accessibility${key}`] = `aria-${val}`;
112
+ }
113
+ }
114
+ let conf;
115
+ const PROP_SPLIT = "-";
116
+ const accessibilityRoleToWebRole = {
117
+ adjustable: "slider",
118
+ header: "heading",
119
+ image: "img",
120
+ link: "link",
121
+ none: "presentation",
122
+ summary: "region"
123
+ };
124
+ const isMediaKey = (key) => Boolean(key[0] === "$" && mediaKeysWithAndWithout$.has(key));
125
+ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, languageContext, elementType, debug) => {
126
+ var _a, _b, _c;
127
+ if (cache.has(props)) {
128
+ return cache.get(props);
129
+ }
130
+ conf = conf || getConfig();
131
+ const { shorthands } = conf;
132
+ const { variants, propMapper, isReactNative, inlineProps, inlineWhenUnflattened } = staticConfig;
133
+ const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
134
+ const viewProps = {};
135
+ let pseudos = null;
136
+ let psuedosUsed = null;
137
+ const mediaState = state.mediaState || globalMediaState;
138
+ const usedKeys = {};
139
+ const propKeys = Object.keys(props);
140
+ let space = props.space;
141
+ let hasMedia = false;
142
+ const shouldDoClasses = staticConfig.acceptsClassName && (isWeb || IS_STATIC) && !state.noClassNames;
143
+ let style = {};
144
+ const flatTransforms = {};
145
+ const len = propKeys.length;
146
+ const rulesToInsert = [];
147
+ const classNames = {};
148
+ let className = "";
149
+ const transforms = {};
150
+ let fontFamily;
151
+ const styleState = {
152
+ classNames,
153
+ conf,
154
+ props,
155
+ state,
156
+ staticConfig,
157
+ style,
158
+ theme,
159
+ usedKeys,
160
+ viewProps,
161
+ languageContext
162
+ };
163
+ if (process.env.NODE_ENV === "development" && debug === "verbose") {
164
+ console.groupCollapsed("getSplitStyles (looping backwards)");
165
+ console.log({ props, staticConfig, shouldDoClasses, state, IS_STATIC, propKeys, styleState });
166
+ console.groupEnd();
167
+ }
168
+ if (props.className) {
169
+ for (const cn of props.className.split(" ")) {
170
+ if (cn[0] === "_") {
171
+ const [shorthand, mediaOrPseudo] = cn.slice(1).split("-");
172
+ const isMedia = mediaOrPseudo[0] === "_";
173
+ const isPseudo = mediaOrPseudo[0] === "0";
174
+ const isMediaOrPseudo = isMedia || isPseudo;
175
+ let fullKey = shorthands[shorthand];
176
+ if (isMedia) {
177
+ let mediaShortKey = mediaOrPseudo.slice(1);
178
+ mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf("_"));
179
+ fullKey += `${PROP_SPLIT}${mediaShortKey}`;
180
+ } else if (isPseudo) {
181
+ const pseudoShortKey = mediaOrPseudo.slice(1);
182
+ fullKey += `${PROP_SPLIT}${pseudoShortKey}`;
183
+ }
184
+ usedKeys[fullKey] = 1;
185
+ mergeClassName(transforms, classNames, fullKey, cn, isMediaOrPseudo);
186
+ } else if (cn) {
187
+ className += ` ${cn}`;
188
+ }
189
+ }
190
+ }
191
+ const specialProps = [];
192
+ function processProp(keyInit, valInit, special = false, fontFamilyOverride = null) {
193
+ var _a2;
194
+ if (keyInit === "className")
195
+ return;
196
+ if (keyInit in shorthands) {
197
+ keyInit = shorthands[keyInit];
198
+ }
199
+ if (process.env.TAMAGUI_TARGET === "native") {
200
+ if (keyInit === "userSelect") {
201
+ keyInit = "selectable";
202
+ valInit = valInit === "none" ? false : true;
203
+ } else if (keyInit.startsWith("data-") || keyInit.startsWith("aria-")) {
204
+ return;
205
+ }
206
+ }
207
+ if (!staticConfig.isHOC) {
208
+ if (keyInit in skipProps) {
209
+ return;
210
+ }
211
+ }
212
+ if (keyInit in usedKeys) {
213
+ return;
214
+ }
215
+ if (typeof valInit === "string" && valInit[0] === "_") {
216
+ if (keyInit in validStyleProps || keyInit.includes("-")) {
217
+ if (shouldDoClasses) {
218
+ classNames[keyInit] = valInit;
219
+ } else {
220
+ style[keyInit] = reverseMapClassNameToValue(keyInit, valInit);
221
+ }
222
+ usedKeys[keyInit] = 1;
223
+ return;
224
+ }
225
+ }
226
+ if (keyInit === "dataSet") {
227
+ for (const key in valInit) {
228
+ viewProps[`data-${hyphenate(key)}`] = valInit[key];
229
+ }
230
+ return;
231
+ }
232
+ const isMainStyle = keyInit === "style";
233
+ if (isMainStyle || keyInit.startsWith("_style")) {
234
+ if (!valInit)
235
+ return;
236
+ const styles = Array.isArray(valInit) ? valInit : [valInit];
237
+ const styleLen = styles.length;
238
+ for (let j = styleLen; j >= 0; j--) {
239
+ const cur = styles[j];
240
+ if (!cur)
241
+ continue;
242
+ for (const key in cur) {
243
+ if (!isMainStyle && usedKeys[key]) {
244
+ continue;
245
+ }
246
+ usedKeys[key] = 1;
247
+ style[key] = cur[key];
248
+ }
249
+ }
250
+ return;
251
+ }
252
+ if (process.env.TAMAGUI_TARGET === "web") {
253
+ if (keyInit === "disabled" && valInit === true) {
254
+ usedKeys[keyInit] = 1;
255
+ viewProps["aria-disabled"] = true;
256
+ if (elementType === "button" || elementType === "form" || elementType === "input" || elementType === "select" || elementType === "textarea") {
257
+ viewProps.disabled = true;
258
+ }
259
+ if (!(variants == null ? void 0 : variants.disabled)) {
260
+ return;
261
+ }
262
+ }
263
+ if (keyInit === "testID") {
264
+ usedKeys[keyInit] = 1;
265
+ viewProps[isReactNative ? "testId" : "data-testid"] = valInit;
266
+ return;
267
+ }
268
+ if (keyInit === "id" || keyInit === "nativeID") {
269
+ usedKeys[keyInit] = 1;
270
+ if (isReactNative) {
271
+ viewProps.nativeID = valInit;
272
+ } else {
273
+ viewProps.id = valInit;
274
+ }
275
+ return;
276
+ }
277
+ let didUseKeyInit = false;
278
+ if (isReactNative) {
279
+ if (accessibilityDirectMap[keyInit] || keyInit.startsWith("accessibility")) {
280
+ viewProps[keyInit] = valInit;
281
+ usedKeys[keyInit] = 1;
282
+ return;
283
+ }
284
+ } else {
285
+ didUseKeyInit = true;
286
+ if (accessibilityDirectMap[keyInit]) {
287
+ viewProps[accessibilityDirectMap[keyInit]] = valInit;
288
+ } else {
289
+ switch (keyInit) {
290
+ case "accessibilityRole": {
291
+ if (valInit === "none") {
292
+ viewProps.role = "presentation";
293
+ } else {
294
+ viewProps.role = accessibilityRoleToWebRole[valInit] || valInit;
295
+ }
296
+ return;
297
+ }
298
+ case "accessibilityLabelledBy":
299
+ case "accessibilityFlowTo":
300
+ case "accessibilityControls":
301
+ case "accessibilityDescribedBy": {
302
+ viewProps[`aria-${keyInit.replace("accessibility", "").toLowerCase()}`] = processIDRefList(valInit);
303
+ return;
304
+ }
305
+ case "accessibilityKeyShortcuts": {
306
+ if (Array.isArray(valInit)) {
307
+ viewProps["aria-keyshortcuts"] = valInit.join(" ");
308
+ }
309
+ return;
310
+ }
311
+ case "accessibilityLiveRegion": {
312
+ viewProps["aria-live"] = valInit === "none" ? "off" : valInit;
313
+ return;
314
+ }
315
+ case "accessibilityReadOnly": {
316
+ viewProps["aria-readonly"] = valInit;
317
+ if (elementType === "input" || elementType === "select" || elementType === "textarea") {
318
+ viewProps.readOnly = true;
319
+ }
320
+ return;
321
+ }
322
+ case "accessibilityRequired": {
323
+ viewProps["aria-required"] = valInit;
324
+ if (elementType === "input" || elementType === "select" || elementType === "textarea") {
325
+ viewProps.required = valInit;
326
+ }
327
+ return;
328
+ }
329
+ default: {
330
+ didUseKeyInit = false;
331
+ }
332
+ }
333
+ }
334
+ }
335
+ if (didUseKeyInit) {
336
+ usedKeys[keyInit] = 1;
337
+ return;
338
+ }
339
+ if (valInit && valInit[0] === "_") {
340
+ const isValidClassName = keyInit in validStyles;
341
+ const isMediaOrPseudo = !isValidClassName && keyInit.includes(PROP_SPLIT) && validStyles[keyInit.split(PROP_SPLIT)[0]];
342
+ if (isValidClassName || isMediaOrPseudo) {
343
+ usedKeys[keyInit] = 1;
344
+ if (process.env.NODE_ENV === "development" && debug) {
345
+ console.log("tamagui classname props", keyInit, valInit);
346
+ }
347
+ mergeClassName(transforms, classNames, keyInit, valInit, isMediaOrPseudo);
348
+ return;
349
+ }
350
+ }
351
+ }
352
+ let isMedia = isMediaKey(keyInit);
353
+ let isPseudo = keyInit in validPseudoKeys;
354
+ const isVariant = variants && keyInit in variants;
355
+ const shouldPassProp = !(isMedia || isPseudo || isVariant || keyInit in validStyleProps || keyInit in shorthands);
356
+ const parentHasVariant = ((_a2 = staticConfig.parentStaticConfig) == null ? void 0 : _a2.variants) && keyInit in staticConfig.parentStaticConfig;
357
+ const isHOCShouldPassThrough = staticConfig.isHOC && (isMedia || isPseudo);
358
+ const shouldPassThrough = shouldPassProp || isHOCShouldPassThrough || parentHasVariant;
359
+ if (process.env.NODE_ENV === "development" && debug === "verbose" && shouldPassThrough) {
360
+ console.log(` \u{1F539} pass through ${keyInit}`);
361
+ }
362
+ if (shouldPassThrough) {
363
+ usedKeys[keyInit] = 1;
364
+ viewProps[keyInit] = valInit;
365
+ if (!isVariant) {
366
+ return;
367
+ }
368
+ }
369
+ if (process.env.NODE_ENV === "development" && debug === "verbose") {
370
+ console.groupCollapsed(" \u{1F539} styles", keyInit, valInit);
371
+ }
372
+ const expanded = isMedia || isPseudo ? [[keyInit, valInit]] : propMapper(
373
+ keyInit,
374
+ valInit,
375
+ theme,
376
+ special ? { ...props, fontFamily: fontFamilyOverride } : props,
377
+ state,
378
+ languageContext,
379
+ void 0,
380
+ debug
381
+ );
382
+ if (!fontFamily) {
383
+ fontFamily = getPropMappedFontFamily(expanded);
384
+ }
385
+ if (process.env.NODE_ENV === "development" && debug === "verbose") {
386
+ if (!isServer && isDevTools) {
387
+ console.log("expanded", expanded, "\nusedKeys", usedKeys, "\ncurrent", {
388
+ ...style
389
+ });
390
+ }
391
+ console.groupEnd();
392
+ }
393
+ if (!expanded)
394
+ return;
395
+ for (const [key, val] of expanded) {
396
+ if (val === void 0)
397
+ continue;
398
+ if (key in stylePropsFont && !special && key !== "fontFamily") {
399
+ specialProps.push([key, val]);
400
+ continue;
401
+ }
402
+ isMedia = isMediaKey(key);
403
+ isPseudo = key in validPseudoKeys;
404
+ const isMediaOrPseudo = isMedia || isPseudo;
405
+ if (!isMediaOrPseudo && usedKeys[key]) {
406
+ if (process.env.NODE_ENV === "developmnet" && debug === "verbose") {
407
+ console.log(`Used media/pseudo ${key}`);
408
+ }
409
+ continue;
410
+ }
411
+ if ((inlineProps == null ? void 0 : inlineProps.has(key)) || (inlineWhenUnflattened == null ? void 0 : inlineWhenUnflattened.has(key))) {
412
+ usedKeys[key] = 1;
413
+ viewProps[key] = props[key] ?? val;
414
+ }
415
+ if (isPseudo) {
416
+ if (!val)
417
+ continue;
418
+ const pseudoStyleObject = getSubStyle(
419
+ styleState,
420
+ key,
421
+ val,
422
+ true,
423
+ state.noClassNames
424
+ );
425
+ const descriptor = pseudoDescriptors[key];
426
+ const isEnter = descriptor.name === "enter";
427
+ const isExit = descriptor.name === "exit";
428
+ if (!descriptor || isExit && !state.isExiting) {
429
+ continue;
430
+ }
431
+ if (!shouldDoClasses || IS_STATIC) {
432
+ pseudos ||= {};
433
+ pseudos[key] ||= {};
434
+ Object.assign(pseudos[key], pseudoStyleObject);
435
+ }
436
+ if (shouldDoClasses && !isEnter && !isExit) {
437
+ const pseudoStyles = getAtomicStyle(pseudoStyleObject, descriptor);
438
+ for (const psuedoStyle of pseudoStyles) {
439
+ const fullKey = `${psuedoStyle.property}${PROP_SPLIT}${descriptor.name}`;
440
+ if (!usedKeys[fullKey]) {
441
+ usedKeys[fullKey] = 1;
442
+ addStyleToInsertRules(rulesToInsert, psuedoStyle);
443
+ mergeClassName(
444
+ transforms,
445
+ classNames,
446
+ fullKey,
447
+ psuedoStyle.identifier,
448
+ isMediaOrPseudo
449
+ );
450
+ }
451
+ }
452
+ } else {
453
+ if (usedKeys[key]) {
454
+ continue;
455
+ }
456
+ let isDisabled = !state[descriptor.stateKey || descriptor.name];
457
+ if (isWeb && !isClient && isEnter) {
458
+ isDisabled = false;
459
+ }
460
+ if (!isDisabled) {
461
+ if (valInit === staticConfig.defaultProps[keyInit]) {
462
+ } else {
463
+ usedKeys[key] ||= 1;
464
+ if (process.env.NODE_ENV === "development" && debug === "verbose") {
465
+ console.log(`Setting used ${key}`);
466
+ }
467
+ }
468
+ }
469
+ psuedosUsed ||= {};
470
+ const importance = descriptor.priority;
471
+ for (const pkey in pseudoStyleObject) {
472
+ const val2 = pseudoStyleObject[pkey];
473
+ if (isDisabled) {
474
+ if (!(pkey in usedKeys) && pkey in animatableDefaults) {
475
+ const defaultVal = animatableDefaults[pkey];
476
+ mergeStyle(styleState, flatTransforms, pkey, defaultVal, true);
477
+ }
478
+ continue;
479
+ }
480
+ const curImportance = psuedosUsed[importance] || 0;
481
+ const shouldMerge = importance >= curImportance;
482
+ if (shouldMerge) {
483
+ psuedosUsed[pkey] = importance;
484
+ pseudos ||= {};
485
+ pseudos[key] ||= {};
486
+ pseudos[key][pkey] = val2;
487
+ mergeStyle(styleState, flatTransforms, pkey, val2);
488
+ }
489
+ if (process.env.NODE_ENV === "development" && debug === "verbose") {
490
+ console.log(" merge pseudo?", keyInit, shouldMerge, { importance, curImportance, pkey, val: val2 });
491
+ }
492
+ }
493
+ }
494
+ continue;
495
+ }
496
+ if (isMedia) {
497
+ if (!val)
498
+ continue;
499
+ hasMedia ||= true;
500
+ const mediaStyle = getSubStyle(
501
+ styleState,
502
+ key,
503
+ val,
504
+ // TODO try true like pseudo
505
+ false
506
+ );
507
+ const mediaKeyShort = key.slice(1);
508
+ if (process.env.NODE_ENV === "development" && debug === "verbose") {
509
+ console.log(` \u{1F4FA} ${key}`, { key, mediaStyle, props, shouldDoClasses });
510
+ }
511
+ if ("space" in mediaStyle) {
512
+ if (!Array.isArray(hasMedia)) {
513
+ hasMedia = [];
514
+ }
515
+ hasMedia.push(mediaKeyShort);
516
+ }
517
+ if (shouldDoClasses) {
518
+ if ("space" in mediaStyle) {
519
+ delete mediaStyle["space"];
520
+ if (mediaState[mediaKeyShort]) {
521
+ const val2 = valInit.space;
522
+ const importance = getMediaImportanceIfMoreImportant(
523
+ mediaKeyShort,
524
+ "space",
525
+ usedKeys
526
+ );
527
+ if (importance) {
528
+ space = val2;
529
+ usedKeys["space"] = importance;
530
+ if (process.env.NODE_ENV === "development" && debug === "verbose") {
531
+ console.log(
532
+ `Found more important space for current media ${mediaKeyShort}: ${val2} (importance: ${importance})`
533
+ );
534
+ }
535
+ }
536
+ }
537
+ }
538
+ const mediaStyles = getStylesAtomic(mediaStyle);
539
+ for (const style2 of mediaStyles) {
540
+ const out = createMediaStyle(style2, mediaKeyShort, mediaQueryConfig);
541
+ const fullKey = `${style2.property}${PROP_SPLIT}${mediaKeyShort}`;
542
+ if (!usedKeys[fullKey]) {
543
+ usedKeys[fullKey] = 1;
544
+ addStyleToInsertRules(rulesToInsert, out);
545
+ mergeClassName(transforms, classNames, fullKey, out.identifier, true);
546
+ }
547
+ }
548
+ } else if (mediaState[mediaKeyShort]) {
549
+ for (const subKey in mediaStyle) {
550
+ const importance = getMediaImportanceIfMoreImportant(
551
+ mediaKeyShort,
552
+ subKey,
553
+ usedKeys
554
+ );
555
+ if (importance === null)
556
+ continue;
557
+ if (subKey === "space") {
558
+ space = valInit.space;
559
+ continue;
560
+ }
561
+ mergeMediaByImportance(
562
+ style,
563
+ mediaKeyShort,
564
+ subKey,
565
+ mediaStyle[subKey],
566
+ usedKeys
567
+ );
568
+ if (key === "fontFamily") {
569
+ fontFamily = mediaStyle.fontFamily;
570
+ }
571
+ }
572
+ }
573
+ continue;
574
+ }
575
+ if (process.env.TAMAGUI_TARGET === "native") {
576
+ if (key === "pointerEvents") {
577
+ usedKeys[key] = 1;
578
+ viewProps[key] = val;
579
+ continue;
580
+ }
581
+ }
582
+ if (key === "fontFamily" && !fontFamily && valInit && val) {
583
+ fontFamily = valInit[0] === "$" ? valInit : val;
584
+ }
585
+ if (key in validStyleProps) {
586
+ mergeStyle(styleState, flatTransforms, key, val);
587
+ continue;
588
+ }
589
+ if (!variants || !(key in variants)) {
590
+ if (!(key in skipProps)) {
591
+ viewProps[key] = val;
592
+ usedKeys[key] = 1;
593
+ }
594
+ }
595
+ }
596
+ }
597
+ for (let i = len - 1; i >= 0; i--) {
598
+ const keyInit = propKeys[i];
599
+ const valInit = props[keyInit];
600
+ processProp(keyInit, valInit);
601
+ }
602
+ for (let i = 0; i < specialProps.length; i++) {
603
+ const [key, value] = specialProps[i];
604
+ processProp(key, value, true, fontFamily);
605
+ }
606
+ fixStyles(style);
607
+ if (isWeb) {
608
+ styleToCSS(style);
609
+ }
610
+ if (process.env.TAMAGUI_TARGET === "native") {
611
+ if ("fontFamily" in style && style.fontFamily) {
612
+ const faceInfo = (_a = getFont(style.fontFamily)) == null ? void 0 : _a.face;
613
+ if (faceInfo) {
614
+ const overrideFace = (_c = (_b = faceInfo[style.fontWeight]) == null ? void 0 : _b[style.fontStyle || "normal"]) == null ? void 0 : _c.val;
615
+ if (overrideFace) {
616
+ style.fontFamily = overrideFace;
617
+ fontFamily = overrideFace;
618
+ delete style.fontWeight;
619
+ delete style.fontStyle;
620
+ }
621
+ }
622
+ if (process.env.NODE_ENV === "development") {
623
+ if (debug) {
624
+ console.log(`Found fontFamily native: ${style.fontFamily}`, faceInfo);
625
+ }
626
+ }
627
+ }
628
+ }
629
+ if (flatTransforms) {
630
+ mergeTransforms(style, flatTransforms, true);
631
+ }
632
+ if (parentSplitStyles) {
633
+ if (process.env.TAMAGUI_TARGET === "web") {
634
+ if (shouldDoClasses) {
635
+ for (const key in parentSplitStyles.classNames) {
636
+ const val = parentSplitStyles.classNames[key];
637
+ if (key in style || key in classNames)
638
+ continue;
639
+ classNames[key] = val;
640
+ }
641
+ }
642
+ }
643
+ if (!shouldDoClasses) {
644
+ for (const key in parentSplitStyles.style) {
645
+ if (key in classNames || key in style)
646
+ continue;
647
+ style[key] = parentSplitStyles.style[key];
648
+ }
649
+ }
650
+ }
651
+ if (process.env.TAMAGUI_TARGET === "web") {
652
+ if (shouldDoClasses) {
653
+ const retainedStyles = {};
654
+ if (style["$$css"]) {
655
+ } else {
656
+ const atomic = getStylesAtomic(style);
657
+ for (const atomicStyle of atomic) {
658
+ const key = atomicStyle.property;
659
+ if (props.animateOnly && props.animateOnly.includes(key)) {
660
+ retainedStyles[key] = atomicStyle.value;
661
+ } else {
662
+ addStyleToInsertRules(rulesToInsert, atomicStyle);
663
+ mergeClassName(transforms, classNames, key, atomicStyle.identifier);
664
+ }
665
+ }
666
+ if (!IS_STATIC) {
667
+ style = retainedStyles;
668
+ }
669
+ }
670
+ }
671
+ if (transforms) {
672
+ for (const namespace in transforms) {
673
+ if (!transforms[namespace]) {
674
+ if (process.env.NODE_ENV === "development") {
675
+ console.warn("Error no transform", transforms, namespace);
676
+ }
677
+ continue;
678
+ }
679
+ const [hash, val] = transforms[namespace];
680
+ const identifier = `_transform${hash}`;
681
+ if (isClient && !insertedTransforms[identifier]) {
682
+ const rule = `.${identifier} { transform: ${val}; }`;
683
+ addStyleToInsertRules(rulesToInsert, {
684
+ identifier,
685
+ rules: [rule],
686
+ property: namespace
687
+ });
688
+ }
689
+ classNames[namespace] = identifier;
690
+ }
691
+ }
692
+ }
693
+ const nextViewProps = {};
694
+ const ks = Object.keys(viewProps);
695
+ const l = ks.length;
696
+ for (let i = l - 1; i >= 0; i--) {
697
+ nextViewProps[ks[i]] = viewProps[ks[i]];
698
+ }
699
+ const result = {
700
+ space,
701
+ hasMedia,
702
+ fontFamily,
703
+ viewProps: nextViewProps,
704
+ style,
705
+ pseudos,
706
+ classNames,
707
+ rulesToInsert
708
+ };
709
+ if (className) {
710
+ classNames.className = className;
711
+ }
712
+ if (process.env.NODE_ENV === "development" && debug === "verbose") {
713
+ if (isDevTools) {
714
+ console.groupCollapsed(" \u{1F539} styles =>");
715
+ const logs = { ...result, state, etc: { transforms, viewProps, rulesToInsert, parentSplitStyles, flatTransforms } };
716
+ for (const key in logs) {
717
+ console.log(key, logs[key]);
718
+ }
719
+ console.groupEnd();
720
+ }
721
+ }
722
+ cache.set(props, result);
723
+ return result;
724
+ };
725
+ function mergeClassName(transforms, classNames, key, val, isMediaOrPseudo = false) {
726
+ if (process.env.TAMAGUI_TARGET === "web") {
727
+ if (!val)
728
+ return;
729
+ if (val[0] === "_" && val.startsWith("_transform-")) {
730
+ const ns = isMediaOrPseudo ? key : "transform";
731
+ let transform = insertedTransforms[val];
732
+ if (isClient && !transform) {
733
+ scanAllSheets();
734
+ transform = insertedTransforms[val];
735
+ if (!transform && isWeb && val[0] !== "_") {
736
+ transform = val;
737
+ }
738
+ }
739
+ transforms[ns] ||= ["", ""];
740
+ transforms[ns][0] += val.replace("_transform", "");
741
+ if (transform) {
742
+ transforms[ns][1] += transform;
743
+ }
744
+ } else {
745
+ classNames[key] = val;
746
+ }
747
+ }
748
+ }
749
+ const cache = /* @__PURE__ */ new WeakMap();
750
+ function getSubStyleProps(defaultProps, baseProps, specificProps) {
751
+ const key = specificProps || baseProps;
752
+ if (!cache.has(key)) {
753
+ cache.set(key, {
754
+ ...defaultProps,
755
+ ...baseProps,
756
+ ...specificProps
757
+ });
758
+ }
759
+ return cache.get(key);
760
+ }
761
+ function mergeStyle({ usedKeys, classNames, viewProps, style }, flatTransforms, key, val, dontSetUsed = false) {
762
+ if (!dontSetUsed) {
763
+ usedKeys[key] ||= 1;
764
+ }
765
+ if (val && val[0] === "_") {
766
+ classNames[key] = val;
767
+ } else if (key in stylePropsTransform) {
768
+ flatTransforms ||= {};
769
+ flatTransforms[key] = val;
770
+ } else {
771
+ const out = normalizeValueWithProperty(val, key);
772
+ if (key in validStylesOnBaseProps) {
773
+ viewProps[key] = out;
774
+ } else {
775
+ style[key] = out;
776
+ }
777
+ }
778
+ }
779
+ const getSubStyle = (styleState, subKey, styleIn, avoidDefaultProps, avoidMergeTransform) => {
780
+ const { staticConfig, theme, props, state, conf: conf2, languageContext } = styleState;
781
+ const styleOut = {};
782
+ for (let key in styleIn) {
783
+ const val = styleIn[key];
784
+ key = conf2.shorthands[key] || key;
785
+ const expanded = staticConfig.propMapper(
786
+ key,
787
+ val,
788
+ theme,
789
+ getSubStyleProps(staticConfig.defaultProps, props, props[subKey]),
790
+ state,
791
+ languageContext,
792
+ avoidDefaultProps
793
+ );
794
+ if (!expanded)
795
+ continue;
796
+ for (const [skey, sval] of expanded) {
797
+ if (!avoidMergeTransform && skey in stylePropsTransform) {
798
+ mergeTransform(styleOut, skey, sval);
799
+ } else {
800
+ styleOut[skey] = normalizeValueWithProperty(sval, key);
801
+ }
802
+ }
803
+ }
804
+ fixStyles(styleOut);
805
+ return styleOut;
806
+ };
807
+ const useInsertEffectCompat = isWeb ? useInsertionEffect || useIsomorphicLayoutEffect : () => {
808
+ };
809
+ const useSplitStyles = (...args) => {
810
+ const res = getSplitStyles(...args);
811
+ if (!isRSC) {
812
+ useInsertEffectCompat(() => {
813
+ insertStyleRules(res.rulesToInsert);
814
+ }, [res.rulesToInsert]);
815
+ }
816
+ return res;
817
+ };
818
+ function addStyleToInsertRules(rulesToInsert, styleObject) {
819
+ if (process.env.TAMAGUI_TARGET === "web") {
820
+ if (!shouldInsertStyleRules(styleObject.identifier)) {
821
+ return;
822
+ }
823
+ updateRules(styleObject.identifier, styleObject.rules);
824
+ rulesToInsert.push(styleObject);
825
+ }
826
+ }
827
+ function processIDRefList(idRefList) {
828
+ return Array.isArray(idRefList) ? idRefList.join(" ") : idRefList;
829
+ }
830
+ const animatableDefaults = {
831
+ opacity: 1,
832
+ scale: 1,
833
+ rotate: "0deg",
834
+ rotateY: "0deg",
835
+ rotateX: "0deg"
836
+ };
837
+ const lowercaseHyphenate = (match) => `-${match.toLowerCase()}`;
838
+ const hyphenate = (str) => str.replace(/[A-Z]/g, lowercaseHyphenate);
839
+ const mergeTransform = (obj, key, val, backwards = false) => {
840
+ obj.transform ||= [];
841
+ obj.transform[backwards ? "unshift" : "push"]({
842
+ [mapTransformKeys[key] || key]: val
843
+ });
844
+ };
845
+ const mergeTransforms = (obj, flatTransforms, backwards = false) => {
846
+ Object.entries(flatTransforms).forEach(([key, val]) => {
847
+ mergeTransform(obj, key, val, backwards);
848
+ });
849
+ };
850
+ const mapTransformKeys = {
851
+ x: "translateX",
852
+ y: "translateY"
853
+ };
854
+ export {
855
+ PROP_SPLIT,
856
+ getSplitStyles,
857
+ getSubStyle,
858
+ useSplitStyles
859
+ };
4
860
  //# sourceMappingURL=getSplitStyles.mjs.map