@tamagui/core 1.0.1-beta.18 → 1.0.1-beta.181

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 (768) hide show
  1. package/dist/cjs/Tamagui.js +14 -12
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/addTheme.js +80 -0
  4. package/dist/cjs/addTheme.js.map +7 -0
  5. package/dist/cjs/{conf.js → config.js} +33 -19
  6. package/dist/cjs/config.js.map +7 -0
  7. package/dist/cjs/constants/constants.js +10 -22
  8. package/dist/cjs/constants/constants.js.map +2 -2
  9. package/dist/cjs/{helpers/nativeGestureHandler.js → constants/isDevTools.js} +8 -8
  10. package/dist/cjs/constants/isDevTools.js.map +7 -0
  11. package/dist/cjs/constants/platform.js +23 -16
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/platform.native.js +62 -0
  14. package/dist/cjs/constants/platform.native.js.map +7 -0
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +1 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +1 -1
  17. package/dist/cjs/contexts/FontLanguageContext.js +30 -0
  18. package/dist/cjs/contexts/FontLanguageContext.js.map +7 -0
  19. package/dist/cjs/{views → contexts}/TextAncestorContext.js +11 -13
  20. package/dist/cjs/contexts/TextAncestorContext.js.map +7 -0
  21. package/dist/cjs/{ThemeContext.js → contexts/ThemeContext.js} +1 -0
  22. package/dist/cjs/contexts/ThemeContext.js.map +7 -0
  23. package/dist/cjs/createComponent.js +917 -480
  24. package/dist/cjs/createComponent.js.map +3 -3
  25. package/dist/cjs/createFont.js +5 -8
  26. package/dist/cjs/createFont.js.map +2 -2
  27. package/dist/cjs/createShorthands.js +1 -2
  28. package/dist/cjs/createShorthands.js.map +1 -1
  29. package/dist/cjs/createTamagui.js +127 -175
  30. package/dist/cjs/createTamagui.js.map +3 -3
  31. package/dist/cjs/createTheme.js +4 -2
  32. package/dist/cjs/createTheme.js.map +2 -2
  33. package/dist/cjs/createTokens.js +5 -25
  34. package/dist/cjs/createTokens.js.map +2 -2
  35. package/dist/cjs/createVariable.js +50 -27
  36. package/dist/cjs/createVariable.js.map +2 -2
  37. package/dist/cjs/createVariables.js +52 -0
  38. package/dist/cjs/createVariables.js.map +7 -0
  39. package/dist/cjs/helpers/RNComponents.js +12 -11
  40. package/dist/cjs/helpers/RNComponents.js.map +2 -2
  41. package/dist/cjs/{ThemeManager.js → helpers/ThemeManager.js} +54 -52
  42. package/dist/cjs/helpers/ThemeManager.js.map +7 -0
  43. package/dist/cjs/helpers/areEqualSets.js +3 -3
  44. package/dist/cjs/helpers/areEqualSets.js.map +1 -1
  45. package/dist/cjs/helpers/assignNativePropsToWeb.js +188 -0
  46. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +7 -0
  47. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +30 -0
  48. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +7 -0
  49. package/dist/cjs/helpers/calc.js +71 -0
  50. package/dist/cjs/helpers/calc.js.map +7 -0
  51. package/dist/cjs/helpers/createMediaStyle.js +17 -9
  52. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  53. package/dist/cjs/helpers/createPropMapper.js +266 -118
  54. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  55. package/dist/cjs/helpers/createShallowUpdate.js +14 -25
  56. package/dist/cjs/helpers/createShallowUpdate.js.map +2 -2
  57. package/dist/cjs/helpers/expandStyle.js +90 -0
  58. package/dist/cjs/helpers/expandStyle.js.map +7 -0
  59. package/dist/cjs/helpers/expandStyles.js +115 -0
  60. package/dist/cjs/helpers/expandStyles.js.map +7 -0
  61. package/dist/cjs/helpers/extendStaticConfig.js +49 -37
  62. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  63. package/dist/cjs/helpers/fixNativeShadow.js +3 -3
  64. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  65. package/dist/cjs/helpers/getAnimationDriver.js +32 -0
  66. package/dist/cjs/helpers/getAnimationDriver.js.map +7 -0
  67. package/dist/cjs/helpers/getExpandedShorthands.js +4 -5
  68. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  69. package/dist/cjs/helpers/{getTextSize.js → getFont.js} +22 -12
  70. package/dist/cjs/helpers/getFont.js.map +7 -0
  71. package/dist/cjs/helpers/getFontLanguage.js +29 -0
  72. package/dist/cjs/helpers/getFontLanguage.js.map +7 -0
  73. package/dist/cjs/helpers/getSize.js +19 -10
  74. package/dist/cjs/helpers/getSize.js.map +2 -2
  75. package/dist/cjs/helpers/getSplitStyles.js +379 -206
  76. package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
  77. package/dist/cjs/helpers/getStackSize.js +46 -0
  78. package/dist/cjs/helpers/getStackSize.js.map +7 -0
  79. package/dist/cjs/helpers/getStylesAtomic.js +199 -133
  80. package/dist/cjs/helpers/getStylesAtomic.js.map +3 -3
  81. package/dist/cjs/helpers/getStylesAtomic.native.js +1 -2
  82. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  83. package/dist/cjs/helpers/getThemeCSSRules.js +103 -0
  84. package/dist/cjs/helpers/getThemeCSSRules.js.map +7 -0
  85. package/dist/cjs/{nativeGestureHandler.native.js → helpers/getThemeCSSRules.native.js} +18 -5
  86. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +7 -0
  87. package/dist/cjs/helpers/getVariantExtras.js +88 -0
  88. package/dist/cjs/helpers/getVariantExtras.js.map +7 -0
  89. package/dist/cjs/helpers/insertStyleRule.js +87 -52
  90. package/dist/cjs/helpers/insertStyleRule.js.map +3 -3
  91. package/dist/cjs/helpers/isObj.js +2 -2
  92. package/dist/cjs/helpers/isObj.js.map +1 -1
  93. package/dist/cjs/helpers/isTamaguiComponent.js +37 -0
  94. package/dist/cjs/helpers/isTamaguiComponent.js.map +7 -0
  95. package/dist/cjs/helpers/isTamaguiElement.js +5 -5
  96. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  97. package/dist/cjs/helpers/matchMedia.js +7 -6
  98. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  99. package/dist/cjs/helpers/matchMedia.native.js +6 -3
  100. package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
  101. package/dist/cjs/helpers/mergeProps.js +54 -0
  102. package/dist/cjs/helpers/mergeProps.js.map +7 -0
  103. package/dist/cjs/helpers/mergeTransform.js +42 -0
  104. package/dist/cjs/helpers/mergeTransform.js.map +7 -0
  105. package/dist/cjs/helpers/normalizeColor.js +80 -0
  106. package/dist/cjs/helpers/normalizeColor.js.map +7 -0
  107. package/dist/cjs/helpers/normalizeValueWithProperty.js +93 -0
  108. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
  109. package/dist/cjs/helpers/proxyThemeVariables.js +7 -4
  110. package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
  111. package/dist/cjs/helpers/pseudoDescriptors.js +42 -0
  112. package/dist/cjs/helpers/pseudoDescriptors.js.map +7 -0
  113. package/dist/cjs/helpers/registerCSSVariable.js +40 -0
  114. package/dist/cjs/helpers/registerCSSVariable.js.map +7 -0
  115. package/dist/cjs/helpers/{wrapThemeManagerContext.js → startTransition.js} +12 -15
  116. package/dist/cjs/helpers/startTransition.js.map +7 -0
  117. package/dist/cjs/helpers/themeable.js +17 -40
  118. package/dist/cjs/helpers/themeable.js.map +3 -3
  119. package/dist/cjs/helpers/themes.js +79 -0
  120. package/dist/cjs/helpers/themes.js.map +7 -0
  121. package/dist/cjs/helpers/useShallowSetState.js +44 -0
  122. package/dist/cjs/helpers/useShallowSetState.js.map +7 -0
  123. package/dist/cjs/helpers/validate.js +1 -122
  124. package/dist/cjs/helpers/validate.js.map +3 -3
  125. package/dist/cjs/helpers/withStaticProperties.js +3 -3
  126. package/dist/cjs/helpers/withStaticProperties.js.map +1 -1
  127. package/dist/cjs/hooks/getThemeUnwrapped.js +39 -0
  128. package/dist/cjs/hooks/getThemeUnwrapped.js.map +7 -0
  129. package/dist/cjs/hooks/useConstant.js +4 -2
  130. package/dist/cjs/hooks/useConstant.js.map +2 -2
  131. package/dist/cjs/hooks/useId.js +3 -33
  132. package/dist/cjs/hooks/useId.js.map +2 -2
  133. package/dist/cjs/hooks/useIsMounted.js +3 -4
  134. package/dist/cjs/hooks/useIsMounted.js.map +2 -2
  135. package/dist/cjs/hooks/useIsSSR.js +46 -0
  136. package/dist/cjs/hooks/useIsSSR.js.map +7 -0
  137. package/dist/cjs/hooks/useIsTouchDevice.js +10 -8
  138. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  139. package/dist/cjs/hooks/useMedia.js +154 -116
  140. package/dist/cjs/hooks/useMedia.js.map +3 -3
  141. package/dist/cjs/hooks/usePressable.js +4 -18
  142. package/dist/cjs/hooks/usePressable.js.map +1 -1
  143. package/dist/cjs/hooks/useSafeRef.js +60 -0
  144. package/dist/cjs/hooks/useSafeRef.js.map +7 -0
  145. package/dist/cjs/hooks/useServerHooks.js +36 -0
  146. package/dist/cjs/hooks/useServerHooks.js.map +7 -0
  147. package/dist/cjs/hooks/useTheme.js +163 -129
  148. package/dist/cjs/hooks/useTheme.js.map +3 -3
  149. package/dist/cjs/hooks/useUnmountEffect.js +1 -2
  150. package/dist/cjs/hooks/useUnmountEffect.js.map +1 -1
  151. package/dist/cjs/index.js +57 -20
  152. package/dist/cjs/index.js.map +2 -2
  153. package/dist/cjs/injectStyles.js +40 -0
  154. package/dist/cjs/injectStyles.js.map +7 -0
  155. package/dist/cjs/insertFont.js +93 -0
  156. package/dist/cjs/insertFont.js.map +7 -0
  157. package/dist/cjs/static.js +22 -15
  158. package/dist/cjs/static.js.map +2 -2
  159. package/dist/cjs/styled.js +47 -44
  160. package/dist/cjs/styled.js.map +2 -2
  161. package/dist/cjs/types-rnw.js +1 -0
  162. package/dist/cjs/types-rnw.js.map +2 -2
  163. package/dist/cjs/types.js +1 -0
  164. package/dist/cjs/types.js.map +2 -2
  165. package/dist/cjs/updateTheme.js +47 -0
  166. package/dist/cjs/updateTheme.js.map +7 -0
  167. package/dist/cjs/vendor/Pressability.js +32 -0
  168. package/dist/cjs/vendor/Pressability.js.map +7 -0
  169. package/dist/cjs/vendor/Pressability.native.js +32 -0
  170. package/dist/cjs/vendor/Pressability.native.js.map +7 -0
  171. package/dist/cjs/views/FontLanguage.js +38 -0
  172. package/dist/cjs/views/FontLanguage.js.map +7 -0
  173. package/dist/cjs/views/FontLanguage.native.js +38 -0
  174. package/dist/cjs/views/FontLanguage.native.js.map +7 -0
  175. package/dist/cjs/{helpers/nativeGestureHandler.native.js → views/FontLanguage.types.js} +4 -5
  176. package/dist/cjs/views/FontLanguage.types.js.map +7 -0
  177. package/dist/cjs/views/Slot.js +63 -65
  178. package/dist/cjs/views/Slot.js.map +2 -2
  179. package/dist/cjs/views/Stack.js +4 -19
  180. package/dist/cjs/views/Stack.js.map +1 -1
  181. package/dist/cjs/views/TamaguiProvider.js +82 -0
  182. package/dist/cjs/views/TamaguiProvider.js.map +7 -0
  183. package/dist/cjs/views/Text.js +25 -26
  184. package/dist/cjs/views/Text.js.map +2 -2
  185. package/dist/cjs/views/Theme.js +41 -19
  186. package/dist/cjs/views/Theme.js.map +3 -3
  187. package/dist/cjs/views/ThemeInverse.js +23 -23
  188. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  189. package/dist/cjs/views/ThemeProvider.js +31 -20
  190. package/dist/cjs/views/ThemeProvider.js.map +3 -3
  191. package/dist/cjs/views/ThemeReset.js +14 -8
  192. package/dist/cjs/views/ThemeReset.js.map +3 -3
  193. package/dist/esm/Tamagui.js +8 -11
  194. package/dist/esm/Tamagui.js.map +2 -2
  195. package/dist/esm/addTheme.js +56 -0
  196. package/dist/esm/addTheme.js.map +7 -0
  197. package/dist/esm/config.js +45 -0
  198. package/dist/esm/config.js.map +7 -0
  199. package/dist/esm/constants/constants.js +1 -1
  200. package/dist/esm/constants/constants.js.map +2 -2
  201. package/dist/esm/constants/isDevTools.js +5 -0
  202. package/dist/esm/constants/isDevTools.js.map +7 -0
  203. package/dist/esm/constants/platform.js +16 -12
  204. package/dist/esm/constants/platform.js.map +2 -2
  205. package/dist/esm/constants/platform.native.js +28 -0
  206. package/dist/esm/constants/platform.native.js.map +7 -0
  207. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  208. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +1 -1
  209. package/dist/esm/contexts/FontLanguageContext.js +6 -0
  210. package/dist/esm/contexts/FontLanguageContext.js.map +7 -0
  211. package/dist/esm/contexts/TextAncestorContext.js +17 -0
  212. package/dist/esm/contexts/TextAncestorContext.js.map +7 -0
  213. package/dist/esm/{ThemeContext.js → contexts/ThemeContext.js} +0 -0
  214. package/dist/esm/contexts/ThemeContext.js.map +7 -0
  215. package/dist/esm/createComponent.js +890 -389
  216. package/dist/esm/createComponent.js.map +3 -3
  217. package/dist/esm/createFont.js +4 -9
  218. package/dist/esm/createFont.js.map +2 -2
  219. package/dist/esm/createShorthands.js +0 -3
  220. package/dist/esm/createShorthands.js.map +1 -1
  221. package/dist/esm/createTamagui.js +128 -158
  222. package/dist/esm/createTamagui.js.map +3 -3
  223. package/dist/esm/createTheme.js +3 -3
  224. package/dist/esm/createTheme.js.map +2 -2
  225. package/dist/esm/createTokens.js +3 -24
  226. package/dist/esm/createTokens.js.map +2 -2
  227. package/dist/esm/createVariable.js +45 -25
  228. package/dist/esm/createVariable.js.map +2 -2
  229. package/dist/esm/createVariables.js +28 -0
  230. package/dist/esm/createVariables.js.map +7 -0
  231. package/dist/esm/helpers/RNComponents.js +11 -8
  232. package/dist/esm/helpers/RNComponents.js.map +2 -2
  233. package/dist/esm/{ThemeManager.js → helpers/ThemeManager.js} +53 -53
  234. package/dist/esm/helpers/ThemeManager.js.map +7 -0
  235. package/dist/esm/helpers/areEqualSets.js +2 -4
  236. package/dist/esm/helpers/areEqualSets.js.map +1 -1
  237. package/dist/esm/helpers/assignNativePropsToWeb.js +164 -0
  238. package/dist/esm/helpers/assignNativePropsToWeb.js.map +7 -0
  239. package/dist/esm/helpers/assignNativePropsToWeb.native.js +6 -0
  240. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +7 -0
  241. package/dist/esm/helpers/calc.js +47 -0
  242. package/dist/esm/helpers/calc.js.map +7 -0
  243. package/dist/esm/helpers/createMediaStyle.js +16 -10
  244. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  245. package/dist/esm/helpers/createPropMapper.js +262 -120
  246. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  247. package/dist/esm/helpers/createShallowUpdate.js +13 -12
  248. package/dist/esm/helpers/createShallowUpdate.js.map +2 -2
  249. package/dist/esm/helpers/expandStyle.js +66 -0
  250. package/dist/esm/helpers/expandStyle.js.map +7 -0
  251. package/dist/esm/helpers/expandStyles.js +89 -0
  252. package/dist/esm/helpers/expandStyles.js.map +7 -0
  253. package/dist/esm/helpers/extendStaticConfig.js +35 -28
  254. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  255. package/dist/esm/helpers/fixNativeShadow.js +2 -4
  256. package/dist/esm/helpers/fixNativeShadow.js.map +1 -1
  257. package/dist/esm/helpers/getAnimationDriver.js +8 -0
  258. package/dist/esm/helpers/getAnimationDriver.js.map +7 -0
  259. package/dist/esm/helpers/getExpandedShorthands.js +2 -5
  260. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  261. package/dist/esm/helpers/{getTextSize.js → getFont.js} +17 -9
  262. package/dist/esm/helpers/getFont.js.map +7 -0
  263. package/dist/esm/helpers/getFontLanguage.js +5 -0
  264. package/dist/esm/helpers/getFontLanguage.js.map +7 -0
  265. package/dist/esm/helpers/getSize.js +16 -10
  266. package/dist/esm/helpers/getSize.js.map +2 -2
  267. package/dist/esm/helpers/getSplitStyles.js +364 -188
  268. package/dist/esm/helpers/getSplitStyles.js.map +3 -3
  269. package/dist/esm/helpers/getStackSize.js +22 -0
  270. package/dist/esm/helpers/getStackSize.js.map +7 -0
  271. package/dist/esm/helpers/getStylesAtomic.js +187 -108
  272. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  273. package/dist/esm/helpers/getStylesAtomic.native.js +0 -3
  274. package/dist/esm/helpers/getStylesAtomic.native.js.map +1 -1
  275. package/dist/esm/helpers/getThemeCSSRules.js +79 -0
  276. package/dist/esm/helpers/getThemeCSSRules.js.map +7 -0
  277. package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
  278. package/dist/esm/helpers/getThemeCSSRules.native.js.map +7 -0
  279. package/dist/esm/helpers/getVariantExtras.js +63 -0
  280. package/dist/esm/helpers/getVariantExtras.js.map +7 -0
  281. package/dist/esm/helpers/insertStyleRule.js +82 -50
  282. package/dist/esm/helpers/insertStyleRule.js.map +3 -3
  283. package/dist/esm/helpers/isObj.js +1 -3
  284. package/dist/esm/helpers/isObj.js.map +1 -1
  285. package/dist/esm/helpers/isTamaguiComponent.js +13 -0
  286. package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
  287. package/dist/esm/helpers/isTamaguiElement.js +4 -6
  288. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  289. package/dist/esm/helpers/matchMedia.js +6 -7
  290. package/dist/esm/helpers/matchMedia.js.map +2 -2
  291. package/dist/esm/helpers/matchMedia.native.js +1 -3
  292. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  293. package/dist/esm/helpers/mergeProps.js +30 -0
  294. package/dist/esm/helpers/mergeProps.js.map +7 -0
  295. package/dist/esm/helpers/mergeTransform.js +17 -0
  296. package/dist/esm/helpers/mergeTransform.js.map +7 -0
  297. package/dist/esm/helpers/normalizeColor.js +49 -0
  298. package/dist/esm/helpers/normalizeColor.js.map +7 -0
  299. package/dist/esm/helpers/normalizeValueWithProperty.js +69 -0
  300. package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
  301. package/dist/esm/helpers/proxyThemeVariables.js +6 -5
  302. package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
  303. package/dist/esm/helpers/pseudoDescriptors.js +18 -0
  304. package/dist/esm/helpers/pseudoDescriptors.js.map +7 -0
  305. package/dist/esm/helpers/registerCSSVariable.js +14 -0
  306. package/dist/esm/helpers/registerCSSVariable.js.map +7 -0
  307. package/dist/esm/helpers/startTransition.js +6 -0
  308. package/dist/esm/helpers/startTransition.js.map +7 -0
  309. package/dist/esm/helpers/themeable.js +11 -9
  310. package/dist/esm/helpers/themeable.js.map +2 -2
  311. package/dist/esm/helpers/themes.js +54 -0
  312. package/dist/esm/helpers/themes.js.map +7 -0
  313. package/dist/esm/helpers/useShallowSetState.js +20 -0
  314. package/dist/esm/helpers/useShallowSetState.js.map +7 -0
  315. package/dist/esm/helpers/validate.js +0 -75
  316. package/dist/esm/helpers/validate.js.map +3 -3
  317. package/dist/esm/helpers/withStaticProperties.js +2 -4
  318. package/dist/esm/helpers/withStaticProperties.js.map +1 -1
  319. package/dist/esm/hooks/getThemeUnwrapped.js +14 -0
  320. package/dist/esm/hooks/getThemeUnwrapped.js.map +7 -0
  321. package/dist/esm/hooks/useConstant.js +4 -4
  322. package/dist/esm/hooks/useConstant.js.map +2 -2
  323. package/dist/esm/hooks/useId.js +1 -31
  324. package/dist/esm/hooks/useId.js.map +2 -2
  325. package/dist/esm/hooks/useIsMounted.js +1 -4
  326. package/dist/esm/hooks/useIsMounted.js.map +2 -2
  327. package/dist/esm/hooks/useIsSSR.js +22 -0
  328. package/dist/esm/hooks/useIsSSR.js.map +7 -0
  329. package/dist/esm/hooks/useIsTouchDevice.js +10 -10
  330. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  331. package/dist/esm/hooks/useMedia.js +150 -107
  332. package/dist/esm/hooks/useMedia.js.map +3 -3
  333. package/dist/esm/hooks/usePressable.js +2 -4
  334. package/dist/esm/hooks/usePressable.js.map +1 -1
  335. package/dist/esm/hooks/useSafeRef.js +36 -0
  336. package/dist/esm/hooks/useSafeRef.js.map +7 -0
  337. package/dist/esm/hooks/useServerHooks.js +11 -0
  338. package/dist/esm/hooks/useServerHooks.js.map +7 -0
  339. package/dist/esm/hooks/useTheme.js +159 -109
  340. package/dist/esm/hooks/useTheme.js.map +3 -3
  341. package/dist/esm/hooks/useUnmountEffect.js +0 -3
  342. package/dist/esm/hooks/useUnmountEffect.js.map +1 -1
  343. package/dist/esm/index.js +49 -12
  344. package/dist/esm/index.js.map +2 -2
  345. package/dist/esm/injectStyles.js +16 -0
  346. package/dist/esm/injectStyles.js.map +7 -0
  347. package/dist/esm/insertFont.js +67 -0
  348. package/dist/esm/insertFont.js.map +7 -0
  349. package/dist/esm/static.js +15 -15
  350. package/dist/esm/static.js.map +2 -2
  351. package/dist/esm/styled.js +40 -12
  352. package/dist/esm/styled.js.map +2 -2
  353. package/dist/esm/types-rnw.js +0 -0
  354. package/dist/esm/types-rnw.js.map +0 -0
  355. package/dist/esm/types.js +0 -0
  356. package/dist/esm/types.js.map +0 -0
  357. package/dist/esm/updateTheme.js +23 -0
  358. package/dist/esm/updateTheme.js.map +7 -0
  359. package/dist/esm/vendor/Pressability.js +7 -0
  360. package/dist/esm/vendor/Pressability.js.map +7 -0
  361. package/dist/esm/vendor/Pressability.native.js +7 -0
  362. package/dist/esm/vendor/Pressability.native.js.map +7 -0
  363. package/dist/esm/views/FontLanguage.js +14 -0
  364. package/dist/esm/views/FontLanguage.js.map +7 -0
  365. package/dist/esm/views/FontLanguage.native.js +14 -0
  366. package/dist/esm/views/FontLanguage.native.js.map +7 -0
  367. package/dist/esm/views/FontLanguage.types.js +1 -0
  368. package/dist/{cjs/defaultComponentState.js.map → esm/views/FontLanguage.types.js.map} +0 -0
  369. package/dist/esm/views/Slot.js +50 -32
  370. package/dist/esm/views/Slot.js.map +2 -2
  371. package/dist/esm/views/Stack.js +0 -0
  372. package/dist/esm/views/Stack.js.map +1 -1
  373. package/dist/esm/views/TamaguiProvider.js +52 -0
  374. package/dist/esm/views/TamaguiProvider.js.map +7 -0
  375. package/dist/esm/views/Text.js +12 -4
  376. package/dist/esm/views/Text.js.map +2 -2
  377. package/dist/esm/views/Theme.js +34 -18
  378. package/dist/esm/views/Theme.js.map +3 -3
  379. package/dist/esm/views/ThemeInverse.js +21 -19
  380. package/dist/esm/views/ThemeInverse.js.map +2 -2
  381. package/dist/esm/views/ThemeProvider.js +26 -20
  382. package/dist/esm/views/ThemeProvider.js.map +2 -2
  383. package/dist/esm/views/ThemeReset.js +9 -8
  384. package/dist/esm/views/ThemeReset.js.map +2 -2
  385. package/package.json +49 -17
  386. package/reset.css +41 -0
  387. package/src/Tamagui.ts +44 -0
  388. package/src/addTheme.ts +66 -0
  389. package/src/config.ts +42 -0
  390. package/src/constants/constants.ts +15 -0
  391. package/src/constants/isDevTools.ts +6 -0
  392. package/src/constants/platform.native.ts +14 -0
  393. package/src/constants/platform.ts +25 -0
  394. package/src/contexts/ButtonInsideButtonContext.tsx +3 -0
  395. package/src/contexts/FontLanguageContext.tsx +5 -0
  396. package/src/contexts/TextAncestorContext.tsx +10 -0
  397. package/src/contexts/ThemeContext.tsx +5 -0
  398. package/src/createComponent.tsx +1596 -0
  399. package/src/createFont.ts +29 -0
  400. package/src/createShorthands.ts +5 -0
  401. package/src/createTamagui.ts +228 -0
  402. package/src/createTheme.ts +13 -0
  403. package/src/createTokens.ts +35 -0
  404. package/src/createVariable.ts +83 -0
  405. package/src/createVariables.ts +42 -0
  406. package/src/helpers/RNComponents.tsx +14 -0
  407. package/src/helpers/ThemeManager.tsx +235 -0
  408. package/src/helpers/areEqualSets.tsx +9 -0
  409. package/src/helpers/assignNativePropsToWeb.native.tsx +1 -0
  410. package/src/helpers/assignNativePropsToWeb.tsx +178 -0
  411. package/src/helpers/calc.ts +67 -0
  412. package/src/helpers/createMediaStyle.ts +48 -0
  413. package/src/helpers/createPropMapper.ts +522 -0
  414. package/src/helpers/expandStyle.ts +81 -0
  415. package/src/helpers/expandStyles.ts +105 -0
  416. package/src/helpers/extendStaticConfig.ts +76 -0
  417. package/src/helpers/fixNativeShadow.tsx +2 -0
  418. package/src/helpers/getAnimationDriver.tsx +5 -0
  419. package/src/helpers/getExpandedShorthands.ts +15 -0
  420. package/src/helpers/getFont.tsx +43 -0
  421. package/src/helpers/getFontLanguage.ts +2 -0
  422. package/src/helpers/getSize.ts +22 -0
  423. package/src/helpers/getSplitStyles.tsx +738 -0
  424. package/src/helpers/getStackSize.ts +22 -0
  425. package/src/helpers/getStylesAtomic.native.ts +3 -0
  426. package/src/helpers/getStylesAtomic.ts +292 -0
  427. package/src/helpers/getThemeCSSRules.native.ts +3 -0
  428. package/src/helpers/getThemeCSSRules.ts +105 -0
  429. package/src/helpers/getVariantExtras.tsx +84 -0
  430. package/src/helpers/insertStyleRule.tsx +150 -0
  431. package/src/helpers/isObj.ts +1 -0
  432. package/src/helpers/isTamaguiComponent.tsx +15 -0
  433. package/src/helpers/isTamaguiElement.tsx +12 -0
  434. package/src/helpers/matchMedia.native.ts +6 -0
  435. package/src/helpers/matchMedia.ts +16 -0
  436. package/src/helpers/mergeProps.ts +56 -0
  437. package/src/helpers/mergeTransform.ts +16 -0
  438. package/src/helpers/normalizeColor.ts +53 -0
  439. package/src/helpers/normalizeValueWithProperty.ts +80 -0
  440. package/src/helpers/proxyThemeVariables.tsx +18 -0
  441. package/src/helpers/pseudoDescriptors.ts +18 -0
  442. package/src/helpers/registerCSSVariable.ts +11 -0
  443. package/src/helpers/startTransition.ts +4 -0
  444. package/src/helpers/themeable.tsx +45 -0
  445. package/src/helpers/themes.ts +69 -0
  446. package/src/helpers/useShallowSetState.tsx +20 -0
  447. package/src/helpers/validate.ts +80 -0
  448. package/src/helpers/withStaticProperties.tsx +7 -0
  449. package/src/hooks/getThemeUnwrapped.tsx +8 -0
  450. package/src/hooks/useConstant.tsx +19 -0
  451. package/src/hooks/useId.tsx +1 -0
  452. package/src/hooks/useIsMounted.ts +17 -0
  453. package/src/hooks/useIsSSR.tsx +25 -0
  454. package/src/hooks/useIsTouchDevice.tsx +21 -0
  455. package/src/hooks/useMedia.tsx +254 -0
  456. package/src/hooks/usePressable.tsx +9 -0
  457. package/src/hooks/useSafeRef.ts +50 -0
  458. package/src/hooks/useServerHooks.tsx +13 -0
  459. package/src/hooks/useTheme.tsx +299 -0
  460. package/src/hooks/useUnmountEffect.ts +5 -0
  461. package/src/index.ts +81 -0
  462. package/src/injectStyles.ts +20 -0
  463. package/src/insertFont.ts +70 -0
  464. package/src/static.ts +15 -0
  465. package/src/styled.tsx +198 -0
  466. package/src/types-rnw.tsx +162 -0
  467. package/src/types.tsx +1306 -0
  468. package/src/updateTheme.ts +23 -0
  469. package/src/vendor/Pressability.native.tsx +3 -0
  470. package/src/vendor/Pressability.tsx +2 -0
  471. package/src/views/FontLanguage.native.tsx +9 -0
  472. package/src/views/FontLanguage.tsx +18 -0
  473. package/src/views/FontLanguage.types.ts +13 -0
  474. package/src/views/Slot.tsx +152 -0
  475. package/src/views/Stack.tsx +24 -0
  476. package/src/views/TamaguiProvider.tsx +56 -0
  477. package/src/views/Text.tsx +79 -0
  478. package/src/views/Theme.tsx +72 -0
  479. package/src/views/ThemeInverse.tsx +33 -0
  480. package/src/views/ThemeProvider.tsx +62 -0
  481. package/src/views/ThemeReset.tsx +43 -0
  482. package/types/Tamagui.d.ts +6 -8
  483. package/types/addTheme.d.ts +11 -0
  484. package/types/conf.d.ts +4 -5
  485. package/types/config.d.ts +47 -0
  486. package/types/constants/constants.d.ts +1 -1
  487. package/types/constants/isDevTools.d.ts +2 -0
  488. package/types/constants/platform.d.ts +5 -4
  489. package/types/constants/platform.native.d.ts +13 -0
  490. package/types/contexts/FontLanguageContext.d.ts +5 -0
  491. package/types/{views → contexts}/TextAncestorContext.d.ts +0 -0
  492. package/types/{ThemeContext.d.ts → contexts/ThemeContext.d.ts} +1 -1
  493. package/types/createComponent.d.ts +32 -15
  494. package/types/createComponent.server.d.ts +36 -0
  495. package/types/createTamagui.d.ts +2 -17
  496. package/types/createTheme.d.ts +1 -1
  497. package/types/createTokens.d.ts +5 -6
  498. package/types/createVariable.d.ts +24 -12
  499. package/types/createVariables.d.ts +10 -0
  500. package/types/helpers/RNComponents.d.ts +1 -1
  501. package/types/helpers/ThemeManager.d.ts +46 -0
  502. package/types/helpers/assignNativePropsToWeb.d.ts +2 -0
  503. package/types/helpers/assignNativePropsToWeb.native.d.ts +2 -0
  504. package/types/helpers/calc.d.ts +17 -0
  505. package/types/helpers/createMediaStyle.d.ts +2 -4
  506. package/types/helpers/createPropMapper.d.ts +6 -3
  507. package/types/helpers/createShallowUpdate.d.ts +1 -2
  508. package/types/helpers/cssHash.d.ts +2 -0
  509. package/types/helpers/expandStyle.d.ts +6 -0
  510. package/types/helpers/expandStyles.d.ts +26 -0
  511. package/types/helpers/getAnimationDriver.d.ts +6 -0
  512. package/types/helpers/getFont.d.ts +3 -0
  513. package/types/helpers/getFontLanguage.d.ts +2 -0
  514. package/types/helpers/getSize.d.ts +3 -2
  515. package/types/helpers/getSplitStyles.d.ts +16 -9
  516. package/types/helpers/getStackSize.d.ts +8 -0
  517. package/types/helpers/getStylesAtomic.d.ts +17 -22
  518. package/types/helpers/getThemeCSSRules.d.ts +8 -0
  519. package/types/helpers/getThemeCSSRules.native.d.ts +2 -0
  520. package/types/helpers/getVariantExtras.d.ts +5 -0
  521. package/types/helpers/insertStyleRule.d.ts +7 -3
  522. package/types/helpers/isTamaguiComponent.d.ts +5 -0
  523. package/types/helpers/isTamaguiElement.d.ts +5 -1
  524. package/types/helpers/matchMedia.d.ts +1 -1
  525. package/types/helpers/mergeProps.d.ts +17 -0
  526. package/types/helpers/mergeTransform.d.ts +7 -0
  527. package/types/helpers/normalizeColor.d.ts +3 -0
  528. package/types/helpers/normalizeValueWithProperty.d.ts +6 -0
  529. package/types/helpers/pseudoDescriptors.d.ts +16 -0
  530. package/types/helpers/registerCSSVariable.d.ts +5 -0
  531. package/types/helpers/startTransition.d.ts +3 -0
  532. package/types/helpers/themes.d.ts +4 -0
  533. package/types/helpers/useAnimationDriver.d.ts +1 -0
  534. package/types/helpers/useShallowSetState.d.ts +3 -0
  535. package/types/helpers/validate.d.ts +0 -3
  536. package/types/hooks/getThemeUnwrapped.d.ts +3 -0
  537. package/types/hooks/useAnimationDriver.d.ts +1 -0
  538. package/types/hooks/useFeatures.d.ts +10 -5
  539. package/types/hooks/useId.d.ts +1 -8
  540. package/types/hooks/useIsSSR.d.ts +4 -0
  541. package/types/hooks/useMedia.d.ts +20 -6
  542. package/types/hooks/useSafeRef.d.ts +4 -0
  543. package/types/hooks/useServerContext.d.ts +2 -0
  544. package/types/hooks/useServerHooks.d.ts +4 -0
  545. package/types/hooks/useTheme.d.ts +21 -31
  546. package/types/index.d.ts +27 -8
  547. package/types/injectStyles.d.ts +7 -0
  548. package/types/insertFont.d.ts +9 -0
  549. package/types/static.d.ts +2 -15
  550. package/types/styled.d.ts +7 -3
  551. package/types/types.d.ts +276 -77
  552. package/types/updateTheme.d.ts +9 -0
  553. package/types/vendor/Pressability.d.ts +3 -0
  554. package/types/vendor/Pressability.native.d.ts +3 -0
  555. package/types/views/FontLanguage.d.ts +4 -0
  556. package/types/views/FontLanguage.native.d.ts +4 -0
  557. package/types/views/FontLanguage.types.d.ts +11 -0
  558. package/types/views/Slot.d.ts +1 -0
  559. package/types/views/TamaguiProvider.d.ts +4 -0
  560. package/types/views/Theme.d.ts +3 -9
  561. package/types/views/ThemeInverse.d.ts +4 -8
  562. package/types/views/ThemeProvider.d.ts +2 -1
  563. package/dist/cjs/ThemeContext.js.map +0 -7
  564. package/dist/cjs/ThemeManager.js.map +0 -7
  565. package/dist/cjs/conf.js.map +0 -7
  566. package/dist/cjs/constants/rnw.js +0 -46
  567. package/dist/cjs/constants/rnw.js.map +0 -7
  568. package/dist/cjs/defaultComponentState.js +0 -1
  569. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -87
  570. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
  571. package/dist/cjs/helpers/createTamaguiProvider.js +0 -93
  572. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  573. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -53
  574. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  575. package/dist/cjs/helpers/getButtonSize.js +0 -45
  576. package/dist/cjs/helpers/getButtonSize.js.map +0 -7
  577. package/dist/cjs/helpers/getTextSize.js.map +0 -7
  578. package/dist/cjs/helpers/nativeGestureHandler.js.map +0 -7
  579. package/dist/cjs/helpers/nativeGestureHandler.native.js.map +0 -7
  580. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +0 -7
  581. package/dist/cjs/hooks/useFeatures.js +0 -228
  582. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  583. package/dist/cjs/hooks/usePrevious.js +0 -1
  584. package/dist/cjs/hooks/usePrevious.js.map +0 -7
  585. package/dist/cjs/nativeGestureHandler.native.js.map +0 -7
  586. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  587. package/dist/esm/ThemeContext.js.map +0 -7
  588. package/dist/esm/ThemeManager.js.map +0 -7
  589. package/dist/esm/conf.js +0 -36
  590. package/dist/esm/conf.js.map +0 -7
  591. package/dist/esm/constants/rnw.js +0 -24
  592. package/dist/esm/constants/rnw.js.map +0 -7
  593. package/dist/esm/defaultComponentState.js +0 -1
  594. package/dist/esm/defaultComponentState.js.map +0 -7
  595. package/dist/esm/helpers/addStylesUsingClassname.js +0 -64
  596. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
  597. package/dist/esm/helpers/createTamaguiProvider.js +0 -40
  598. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  599. package/dist/esm/helpers/fixNativeShadow.native.js +0 -32
  600. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  601. package/dist/esm/helpers/getButtonSize.js +0 -24
  602. package/dist/esm/helpers/getButtonSize.js.map +0 -7
  603. package/dist/esm/helpers/getTextSize.js.map +0 -7
  604. package/dist/esm/helpers/nativeGestureHandler.js +0 -7
  605. package/dist/esm/helpers/nativeGestureHandler.js.map +0 -7
  606. package/dist/esm/helpers/nativeGestureHandler.native.js +0 -2
  607. package/dist/esm/helpers/nativeGestureHandler.native.js.map +0 -7
  608. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -14
  609. package/dist/esm/helpers/wrapThemeManagerContext.js.map +0 -7
  610. package/dist/esm/hooks/useFeatures.js +0 -173
  611. package/dist/esm/hooks/useFeatures.js.map +0 -7
  612. package/dist/esm/hooks/usePrevious.js +0 -1
  613. package/dist/esm/hooks/usePrevious.js.map +0 -7
  614. package/dist/esm/nativeGestureHandler.native.js +0 -2
  615. package/dist/esm/nativeGestureHandler.native.js.map +0 -7
  616. package/dist/esm/views/TextAncestorContext.js +0 -18
  617. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  618. package/dist/jsx/Tamagui.js +0 -41
  619. package/dist/jsx/ThemeContext.js +0 -5
  620. package/dist/jsx/ThemeManager.js +0 -186
  621. package/dist/jsx/conf.js +0 -35
  622. package/dist/jsx/constants/constants.js +0 -17
  623. package/dist/jsx/constants/platform.js +0 -25
  624. package/dist/jsx/constants/rnw.js +0 -23
  625. package/dist/jsx/contexts/ButtonInsideButtonContext.js +0 -5
  626. package/dist/jsx/createComponent.js +0 -636
  627. package/dist/jsx/createFont.js +0 -27
  628. package/dist/jsx/createShorthands.js +0 -9
  629. package/dist/jsx/createTamagui.js +0 -201
  630. package/dist/jsx/createTheme.js +0 -6
  631. package/dist/jsx/createTokens.js +0 -28
  632. package/dist/jsx/createVariable.js +0 -48
  633. package/dist/jsx/defaultComponentState.js +0 -0
  634. package/dist/jsx/helpers/RNComponents.js +0 -11
  635. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -63
  636. package/dist/jsx/helpers/areEqualSets.js +0 -15
  637. package/dist/jsx/helpers/createMediaStyle.js +0 -30
  638. package/dist/jsx/helpers/createPropMapper.js +0 -237
  639. package/dist/jsx/helpers/createShallowUpdate.js +0 -18
  640. package/dist/jsx/helpers/createTamaguiProvider.js +0 -34
  641. package/dist/jsx/helpers/extendStaticConfig.js +0 -61
  642. package/dist/jsx/helpers/fixNativeShadow.js +0 -7
  643. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -31
  644. package/dist/jsx/helpers/getButtonSize.js +0 -23
  645. package/dist/jsx/helpers/getExpandedShorthands.js +0 -18
  646. package/dist/jsx/helpers/getSize.js +0 -12
  647. package/dist/jsx/helpers/getSplitStyles.js +0 -322
  648. package/dist/jsx/helpers/getStylesAtomic.js +0 -130
  649. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
  650. package/dist/jsx/helpers/getTextSize.js +0 -33
  651. package/dist/jsx/helpers/insertStyleRule.js +0 -94
  652. package/dist/jsx/helpers/isObj.js +0 -6
  653. package/dist/jsx/helpers/isTamaguiElement.js +0 -10
  654. package/dist/jsx/helpers/matchMedia.js +0 -17
  655. package/dist/jsx/helpers/matchMedia.native.js +0 -8
  656. package/dist/jsx/helpers/nativeGestureHandler.js +0 -6
  657. package/dist/jsx/helpers/nativeGestureHandler.native.js +0 -1
  658. package/dist/jsx/helpers/proxyThemeVariables.js +0 -17
  659. package/dist/jsx/helpers/themeable.js +0 -24
  660. package/dist/jsx/helpers/validate.js +0 -75
  661. package/dist/jsx/helpers/withStaticProperties.js +0 -9
  662. package/dist/jsx/helpers/wrapThemeManagerContext.js +0 -10
  663. package/dist/jsx/hooks/useConstant.js +0 -14
  664. package/dist/jsx/hooks/useFeatures.js +0 -167
  665. package/dist/jsx/hooks/useId.js +0 -34
  666. package/dist/jsx/hooks/useIsMounted.js +0 -18
  667. package/dist/jsx/hooks/useIsTouchDevice.js +0 -16
  668. package/dist/jsx/hooks/useMedia.js +0 -158
  669. package/dist/jsx/hooks/usePressable.js +0 -13
  670. package/dist/jsx/hooks/usePrevious.js +0 -0
  671. package/dist/jsx/hooks/useTheme.js +0 -177
  672. package/dist/jsx/hooks/useUnmountEffect.js +0 -10
  673. package/dist/jsx/index.js +0 -54
  674. package/dist/jsx/nativeGestureHandler.native.js +0 -1
  675. package/dist/jsx/static.js +0 -16
  676. package/dist/jsx/styled.js +0 -47
  677. package/dist/jsx/types-rnw.js +0 -0
  678. package/dist/jsx/types.js +0 -0
  679. package/dist/jsx/views/Slot.js +0 -75
  680. package/dist/jsx/views/Stack.js +0 -12
  681. package/dist/jsx/views/Text.js +0 -56
  682. package/dist/jsx/views/TextAncestorContext.js +0 -15
  683. package/dist/jsx/views/Theme.js +0 -31
  684. package/dist/jsx/views/ThemeInverse.js +0 -27
  685. package/dist/jsx/views/ThemeProvider.js +0 -35
  686. package/dist/jsx/views/ThemeReset.js +0 -34
  687. package/types/Tamagui.d.ts.map +0 -1
  688. package/types/ThemeContext.d.ts.map +0 -1
  689. package/types/ThemeManager.d.ts +0 -49
  690. package/types/ThemeManager.d.ts.map +0 -1
  691. package/types/conf.d.ts.map +0 -1
  692. package/types/constants/constants.d.ts.map +0 -1
  693. package/types/constants/platform.d.ts.map +0 -1
  694. package/types/constants/rnw.d.ts +0 -2
  695. package/types/constants/rnw.d.ts.map +0 -1
  696. package/types/contexts/ButtonInsideButtonContext.d.ts.map +0 -1
  697. package/types/createComponent.d.ts.map +0 -1
  698. package/types/createFont.d.ts.map +0 -1
  699. package/types/createShorthands.d.ts.map +0 -1
  700. package/types/createTamagui.d.ts.map +0 -1
  701. package/types/createTheme.d.ts.map +0 -1
  702. package/types/createTokens.d.ts.map +0 -1
  703. package/types/createVariable.d.ts.map +0 -1
  704. package/types/defaultComponentState.d.ts +0 -1
  705. package/types/defaultComponentState.d.ts.map +0 -1
  706. package/types/helpers/RNComponents.d.ts.map +0 -1
  707. package/types/helpers/addStylesUsingClassname.d.ts +0 -3
  708. package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
  709. package/types/helpers/areEqualSets.d.ts.map +0 -1
  710. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  711. package/types/helpers/createPropMapper.d.ts.map +0 -1
  712. package/types/helpers/createShallowUpdate.d.ts.map +0 -1
  713. package/types/helpers/createTamaguiProvider.d.ts +0 -7
  714. package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
  715. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  716. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  717. package/types/helpers/fixNativeShadow.native.d.ts +0 -3
  718. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  719. package/types/helpers/getButtonSize.d.ts +0 -8
  720. package/types/helpers/getButtonSize.d.ts.map +0 -1
  721. package/types/helpers/getExpandedShorthands.d.ts.map +0 -1
  722. package/types/helpers/getSize.d.ts.map +0 -1
  723. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  724. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  725. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  726. package/types/helpers/getTextSize.d.ts +0 -3
  727. package/types/helpers/getTextSize.d.ts.map +0 -1
  728. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  729. package/types/helpers/isObj.d.ts.map +0 -1
  730. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  731. package/types/helpers/matchMedia.d.ts.map +0 -1
  732. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  733. package/types/helpers/nativeGestureHandler.d.ts +0 -2
  734. package/types/helpers/nativeGestureHandler.d.ts.map +0 -1
  735. package/types/helpers/nativeGestureHandler.native.d.ts +0 -2
  736. package/types/helpers/nativeGestureHandler.native.d.ts.map +0 -1
  737. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  738. package/types/helpers/themeable.d.ts.map +0 -1
  739. package/types/helpers/validate.d.ts.map +0 -1
  740. package/types/helpers/withStaticProperties.d.ts.map +0 -1
  741. package/types/helpers/wrapThemeManagerContext.d.ts +0 -3
  742. package/types/helpers/wrapThemeManagerContext.d.ts.map +0 -1
  743. package/types/hooks/useConstant.d.ts.map +0 -1
  744. package/types/hooks/useFeatures.d.ts.map +0 -1
  745. package/types/hooks/useId.d.ts.map +0 -1
  746. package/types/hooks/useIsMounted.d.ts.map +0 -1
  747. package/types/hooks/useIsTouchDevice.d.ts.map +0 -1
  748. package/types/hooks/useMedia.d.ts.map +0 -1
  749. package/types/hooks/usePressable.d.ts.map +0 -1
  750. package/types/hooks/usePrevious.d.ts +0 -1
  751. package/types/hooks/usePrevious.d.ts.map +0 -1
  752. package/types/hooks/useTheme.d.ts.map +0 -1
  753. package/types/hooks/useUnmountEffect.d.ts.map +0 -1
  754. package/types/index.d.ts.map +0 -1
  755. package/types/nativeGestureHandler.native.d.ts +0 -2
  756. package/types/nativeGestureHandler.native.d.ts.map +0 -1
  757. package/types/static.d.ts.map +0 -1
  758. package/types/styled.d.ts.map +0 -1
  759. package/types/types-rnw.d.ts.map +0 -1
  760. package/types/types.d.ts.map +0 -1
  761. package/types/views/Slot.d.ts.map +0 -1
  762. package/types/views/Stack.d.ts.map +0 -1
  763. package/types/views/Text.d.ts.map +0 -1
  764. package/types/views/TextAncestorContext.d.ts.map +0 -1
  765. package/types/views/Theme.d.ts.map +0 -1
  766. package/types/views/ThemeInverse.d.ts.map +0 -1
  767. package/types/views/ThemeProvider.d.ts.map +0 -1
  768. package/types/views/ThemeReset.d.ts.map +0 -1
@@ -1,39 +1,10 @@
1
+ "use strict";
1
2
  var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
- var __defProps = Object.defineProperties;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
6
  var __getProtoOf = Object.getPrototypeOf;
9
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
25
- var __objRest = (source, exclude) => {
26
- var target = {};
27
- for (var prop in source)
28
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
- target[prop] = source[prop];
30
- if (source != null && __getOwnPropSymbols)
31
- for (var prop of __getOwnPropSymbols(source)) {
32
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
- target[prop] = source[prop];
34
- }
35
- return target;
36
- };
37
8
  var __export = (target, all) => {
38
9
  for (var name in all)
39
10
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -46,262 +17,293 @@ var __copyProps = (to, from, except, desc) => {
46
17
  }
47
18
  return to;
48
19
  };
49
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
50
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
51
25
  var createComponent_exports = {};
52
26
  __export(createComponent_exports, {
53
- AbsoluteFill: () => AbsoluteFill,
54
27
  Spacer: () => Spacer,
28
+ Unspaced: () => Unspaced,
29
+ accessibilityRoleToWebRole: () => accessibilityRoleToWebRole,
55
30
  createComponent: () => createComponent,
56
31
  mouseUps: () => mouseUps,
32
+ processIDRefList: () => processIDRefList,
57
33
  spacedChildren: () => spacedChildren
58
34
  });
59
35
  module.exports = __toCommonJS(createComponent_exports);
36
+ var import_jsx_runtime = require("react/jsx-runtime");
60
37
  var import_helpers = require("@tamagui/helpers");
38
+ var import_rnw = require("@tamagui/rnw");
61
39
  var import_use_force_update = require("@tamagui/use-force-update");
62
40
  var import_react = __toESM(require("react"));
63
41
  var import_react_native = require("react-native");
64
- var import_conf = require("./conf");
42
+ var import_config = require("./config");
65
43
  var import_constants = require("./constants/constants");
66
44
  var import_platform = require("./constants/platform");
67
- var import_rnw = require("./constants/rnw");
68
- var import_createShallowUpdate = require("./helpers/createShallowUpdate");
45
+ var import_FontLanguageContext = require("./contexts/FontLanguageContext");
46
+ var import_TextAncestorContext = require("./contexts/TextAncestorContext");
47
+ var import_assignNativePropsToWeb = require("./helpers/assignNativePropsToWeb");
48
+ var import_createPropMapper = require("./helpers/createPropMapper");
69
49
  var import_extendStaticConfig = require("./helpers/extendStaticConfig");
70
50
  var import_getSplitStyles = require("./helpers/getSplitStyles");
71
51
  var import_insertStyleRule = require("./helpers/insertStyleRule");
72
- var import_nativeGestureHandler = require("./helpers/nativeGestureHandler");
52
+ var import_mergeProps = require("./helpers/mergeProps");
73
53
  var import_proxyThemeVariables = require("./helpers/proxyThemeVariables");
74
- var import_wrapThemeManagerContext = require("./helpers/wrapThemeManagerContext");
75
- var import_useFeatures = require("./hooks/useFeatures");
76
- var import_useIsTouchDevice = require("./hooks/useIsTouchDevice");
54
+ var import_useShallowSetState = require("./helpers/useShallowSetState");
55
+ var import_useMedia = require("./hooks/useMedia");
77
56
  var import_usePressable = require("./hooks/usePressable");
57
+ var import_useServerHooks = require("./hooks/useServerHooks");
78
58
  var import_useTheme = require("./hooks/useTheme");
59
+ var import_Pressability = require("./vendor/Pressability");
79
60
  var import_Slot = require("./views/Slot");
80
- var import_TextAncestorContext = require("./views/TextAncestorContext");
61
+ var import_Theme = require("./views/Theme");
81
62
  import_react.default["keep"];
82
- const defaultComponentState = {
83
- hover: false,
84
- press: false,
85
- pressIn: false,
86
- focus: false,
87
- mounted: false,
88
- animation: null
89
- };
63
+ let defaultComponentState = null;
90
64
  const mouseUps = /* @__PURE__ */ new Set();
91
65
  if (typeof document !== "undefined") {
92
- document.addEventListener("mouseup", () => {
93
- mouseUps.forEach((x) => x());
94
- mouseUps.clear();
95
- });
96
- document.addEventListener("touchend", () => {
97
- mouseUps.forEach((x) => x());
98
- mouseUps.clear();
99
- });
100
- document.addEventListener("touchcancel", () => {
66
+ const cancelTouches = () => {
101
67
  mouseUps.forEach((x) => x());
102
68
  mouseUps.clear();
103
- });
69
+ };
70
+ document.addEventListener("mouseup", cancelTouches);
71
+ document.addEventListener("touchend", cancelTouches);
72
+ document.addEventListener("touchcancel", cancelTouches);
104
73
  }
105
74
  function mergeShorthands({ defaultProps }, { shorthands }) {
106
- for (const key in defaultProps) {
75
+ for (const key of Object.keys(defaultProps)) {
107
76
  defaultProps[shorthands[key] || key] = defaultProps[key];
108
77
  }
109
78
  }
110
- __name(mergeShorthands, "mergeShorthands");
111
79
  let initialTheme;
80
+ let config;
112
81
  function createComponent(configIn, ParentComponent) {
113
82
  const staticConfig = (() => {
114
- const config = (0, import_extendStaticConfig.extendStaticConfig)(configIn, ParentComponent);
115
- if ("parsed" in config) {
116
- return config;
83
+ const next = (0, import_extendStaticConfig.extendStaticConfig)(configIn, ParentComponent);
84
+ if ("parsed" in next) {
85
+ return next;
117
86
  } else {
118
- return (0, import_extendStaticConfig.parseStaticConfig)(config);
87
+ return (0, import_extendStaticConfig.parseStaticConfig)(next);
119
88
  }
120
89
  })();
121
- const componentClassName = `is_${staticConfig.componentName}`;
90
+ const defaultComponentClassName = `is_${staticConfig.componentName}`;
122
91
  let tamaguiConfig;
123
92
  let AnimatedText;
124
93
  let AnimatedView;
125
94
  let avoidClasses = true;
126
95
  let defaultNativeStyle;
127
- let defaultNativeStyleSheet;
128
96
  let tamaguiDefaultProps;
129
97
  let initialSplitStyles;
130
- function addPseudoToStyles(styles, name, pseudos) {
131
- const pseudoStyle = pseudos[name];
132
- const shouldNestObject = import_platform.isWeb && name !== "enterStyle" && name !== "exitStyle";
133
- const defaultPseudoStyle = initialSplitStyles.pseudos[name];
134
- if (defaultPseudoStyle) {
135
- styles.push(shouldNestObject ? { [name]: defaultPseudoStyle } : defaultPseudoStyle);
136
- }
137
- if (pseudoStyle) {
138
- styles.push(shouldNestObject ? { [name]: pseudoStyle } : pseudoStyle);
98
+ const component = (0, import_react.forwardRef)((propsIn, forwardedRef) => {
99
+ var _a, _b, _c, _d, _e, _f, _g;
100
+ let props;
101
+ if (tamaguiDefaultProps && !propsIn.asChild) {
102
+ props = (0, import_mergeProps.mergeProps)(tamaguiDefaultProps, propsIn)[0];
103
+ } else {
104
+ props = propsIn;
139
105
  }
140
- }
141
- __name(addPseudoToStyles, "addPseudoToStyles");
142
- const component = (0, import_react.forwardRef)((props, forwardedRef) => {
143
- var _a, _c, _d, _e;
144
- props = tamaguiDefaultProps && !props.asChild ? __spreadValues(__spreadValues({}, tamaguiDefaultProps), props) : props;
145
- const { Component, componentName, isText, isZStack } = staticConfig;
106
+ const debugProp = props["debug"];
107
+ const { Component, isText, isZStack } = staticConfig;
108
+ const componentName = props.componentName || staticConfig.componentName;
109
+ const componentClassName = props.asChild ? "" : props.componentName ? `is_${props.componentName}` : defaultComponentClassName;
110
+ const forceUpdate = (0, import_use_force_update.useForceUpdate)();
111
+ config = config || (0, import_config.getConfig)();
112
+ const theme = (0, import_useTheme.useTheme)(props.theme, componentName, props, forceUpdate);
113
+ const states = (0, import_useServerHooks.useServerState)(defaultComponentState);
114
+ const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0];
115
+ const shouldAvoidClasses = !!(props.animation && avoidClasses) || !staticConfig.acceptsClassName;
116
+ const shouldForcePseudo = !!propsIn.forceStyle;
117
+ const hasTextAncestor = !!(import_platform.isWeb && isText ? (0, import_react.useContext)(import_TextAncestorContext.TextAncestorContext) : false);
118
+ const splitStyleState = !shouldAvoidClasses && !shouldForcePseudo ? {
119
+ ...state,
120
+ hasTextAncestor,
121
+ dynamicStylesInline: true
122
+ } : {
123
+ ...state,
124
+ noClassNames: true,
125
+ dynamicStylesInline: true,
126
+ hasTextAncestor,
127
+ resolveVariablesAs: "value"
128
+ };
129
+ const languageContext = import_platform.isRSC ? null : (0, import_react.useContext)(import_FontLanguageContext.FontLanguageContext);
130
+ const splitStyles = (0, import_getSplitStyles.useSplitStyles)(
131
+ props,
132
+ staticConfig,
133
+ theme,
134
+ splitStyleState,
135
+ props.asChild ? null : initialSplitStyles == null ? void 0 : initialSplitStyles.classNames,
136
+ languageContext || void 0,
137
+ debugProp
138
+ );
139
+ const hostRef = (0, import_useServerHooks.useServerRef)(null);
140
+ const setState = states[1];
141
+ const setStateShallow = (0, import_useShallowSetState.useShallowSetState)(setState);
146
142
  if (process.env.NODE_ENV === "development") {
147
- if (props["debug"]) {
148
- console.log("\u26A0\uFE0F", staticConfig.componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]", "debug on");
149
- console.log("props in:", props, Object.keys(props));
150
- if (props["debug"] === "break")
143
+ if (!process.env.TAMAGUI_TARGET) {
144
+ console.error(`No process.env.TAMAGUI_TARGET set, please set it to "native" or "web".`);
145
+ }
146
+ if (debugProp) {
147
+ const name = `${componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]"}`;
148
+ const type = staticConfig.isReactNativeWeb ? "rnw" : "tamagui";
149
+ const banner = `${name} ${propsIn["data-is"] || ""} ${type}`;
150
+ console.group(`%c \u{1F41B} ${banner}`, "background: yellow;");
151
+ console.groupCollapsed("initial props/state");
152
+ console.log("props", propsIn);
153
+ console.log("splitStyles", splitStyles);
154
+ console.log("className", Object.values(splitStyles.classNames));
155
+ if (typeof window !== "undefined") {
156
+ console.log("ref", hostRef, "(click to view)");
157
+ }
158
+ console.groupEnd();
159
+ if (debugProp === "break") {
151
160
  debugger;
161
+ }
152
162
  }
153
163
  }
154
- const forceUpdate = (0, import_use_force_update.useForceUpdate)();
155
- const theme = (0, import_useTheme.useTheme)(props.theme, staticConfig.componentName, props, forceUpdate);
156
- const [state, set_] = (0, import_react.useState)(defaultComponentState);
157
- const setStateShallow = (0, import_createShallowUpdate.createShallowUpdate)(set_);
158
- const shouldAvoidClasses = !!(props.animation && avoidClasses);
159
- const splitStyles = (0, import_getSplitStyles.useSplitStyles)(props, staticConfig, theme, shouldAvoidClasses ? __spreadProps(__spreadValues({}, state), { noClassNames: true, resolveVariablesAs: "value" }) : state, shouldAvoidClasses || props.asChild ? null : initialSplitStyles.classNames);
160
- const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitStyles;
161
- const useAnimations = (_a = tamaguiConfig.animations) == null ? void 0 : _a.useAnimations;
162
- const isAnimated = !!(useAnimations && props.animation);
163
- const hasEnterStyle = !!props.enterStyle;
164
- const features = (0, import_useFeatures.useFeatures)(props, {
165
- forceUpdate,
166
- setStateShallow,
167
- useAnimations,
168
- state,
169
- style: props.animation ? __spreadValues(__spreadValues({}, defaultNativeStyle), style) : null,
164
+ const {
165
+ viewProps: viewPropsIn,
170
166
  pseudos,
171
- staticConfig,
172
- theme,
173
- onDidAnimate: props.onDidAnimate
174
- });
175
- const _b = viewPropsIn, {
167
+ medias,
168
+ style: splitStylesStyle,
169
+ classNames,
170
+ mediaKeys
171
+ } = splitStyles;
172
+ (0, import_platform.useIsomorphicLayoutEffect)(() => {
173
+ if (!mediaKeys.length) {
174
+ return;
175
+ }
176
+ const disposers = [];
177
+ for (const key of mediaKeys) {
178
+ disposers.push(
179
+ (0, import_useMedia.addMediaQueryListener)(key, (next) => {
180
+ setState((prev) => {
181
+ if (prev.mediaState[key] !== next) {
182
+ return {
183
+ ...prev,
184
+ mediaState: {
185
+ ...prev.mediaState,
186
+ [key]: next
187
+ }
188
+ };
189
+ }
190
+ return prev;
191
+ });
192
+ })
193
+ );
194
+ }
195
+ return () => {
196
+ };
197
+ }, [mediaKeys.join(",")]);
198
+ const useAnimations = (_a = tamaguiConfig == null ? void 0 : tamaguiConfig.animations) == null ? void 0 : _a.useAnimations;
199
+ const isAnimated = !!(useAnimations && props.animation);
200
+ const animationFeatureStylesIn = props.animation ? { ...defaultNativeStyle, ...splitStylesStyle } : null;
201
+ const propsWithAnimation = props;
202
+ if (!import_platform.isRSC && isAnimated) {
203
+ const animationState = useAnimations(propsWithAnimation, {
204
+ state,
205
+ pseudos,
206
+ onDidAnimate: props.onDidAnimate,
207
+ hostRef,
208
+ staticConfig,
209
+ getStyle({ isExiting, isEntering, exitVariant, enterVariant } = {}) {
210
+ var _a2, _b2, _c2, _d2;
211
+ const style = animationFeatureStylesIn;
212
+ const enterStyle = isEntering ? enterVariant && ((_a2 = staticConfig.variants) == null ? void 0 : _a2[enterVariant]["true"]) ? (0, import_getSplitStyles.getSubStyle)(
213
+ "",
214
+ (_b2 = staticConfig.variants) == null ? void 0 : _b2[enterVariant]["true"],
215
+ staticConfig,
216
+ theme,
217
+ props,
218
+ state,
219
+ tamaguiConfig
220
+ ) || pseudos.enterStyle : pseudos.enterStyle : null;
221
+ const exitStyle = isExiting ? exitVariant && ((_c2 = staticConfig.variants) == null ? void 0 : _c2[exitVariant]["true"]) ? (0, import_getSplitStyles.getSubStyle)(
222
+ "",
223
+ (_d2 = staticConfig.variants) == null ? void 0 : _d2[exitVariant]["true"],
224
+ staticConfig,
225
+ theme,
226
+ props,
227
+ state,
228
+ tamaguiConfig
229
+ ) || pseudos.exitStyle : pseudos.exitStyle : null;
230
+ ensureBaseHasDefaults(
231
+ style,
232
+ pseudos.hoverStyle,
233
+ pseudos.focusStyle,
234
+ pseudos.pressStyle,
235
+ pseudos.pressStyle
236
+ );
237
+ enterStyle && isEntering && merge(style, enterStyle);
238
+ state.hover && pseudos.hoverStyle && merge(style, pseudos.hoverStyle);
239
+ state.focus && pseudos.focusStyle && merge(style, pseudos.focusStyle);
240
+ state.press && pseudos.pressStyle && merge(style, pseudos.pressStyle);
241
+ exitStyle && isExiting && merge(style, exitStyle);
242
+ if (process.env.NODE_ENV === "development") {
243
+ if (debugProp) {
244
+ console.log("animation style", style);
245
+ }
246
+ }
247
+ return style;
248
+ }
249
+ });
250
+ if (animationState !== state.animation) {
251
+ setStateShallow({
252
+ animation: animationState
253
+ });
254
+ }
255
+ }
256
+ const {
176
257
  tag,
177
258
  hitSlop,
178
259
  asChild,
179
260
  children,
180
- pointerEvents,
181
261
  onPress,
182
262
  onPressIn,
183
263
  onPressOut,
184
264
  onHoverIn,
185
265
  onHoverOut,
186
- space,
187
- disabled,
266
+ themeShallow,
267
+ space: spaceProp,
268
+ spaceDirection: _spaceDirection,
269
+ disabled: disabledProp,
270
+ onMouseUp,
271
+ onMouseDown,
188
272
  onMouseEnter,
189
273
  onMouseLeave,
190
274
  hrefAttrs,
191
- onMoveShouldSetResponder,
192
- onMoveShouldSetResponderCapture,
193
- onResponderEnd,
194
- onResponderGrant,
195
- onResponderMove,
196
- onResponderReject,
197
- onResponderRelease,
198
- onResponderStart,
199
- onResponderTerminate,
200
- onResponderTerminationRequest,
201
- onScrollShouldSetResponder,
202
- onScrollShouldSetResponderCapture,
203
- onSelectionChangeShouldSetResponder,
204
- onSelectionChangeShouldSetResponderCapture,
205
- onStartShouldSetResponder,
206
- onStartShouldSetResponderCapture,
207
- onMouseDown,
208
- nativeID,
209
- accessible,
210
- accessibilityRole,
211
- collapsable,
212
- focusable,
275
+ separator,
276
+ forceStyle: _forceStyle,
213
277
  onClick,
214
278
  theme: _themeProp,
215
279
  defaultVariants,
216
- onLayout
217
- } = _b, viewPropsRest = __objRest(_b, [
218
- "tag",
219
- "hitSlop",
220
- "asChild",
221
- "children",
222
- "pointerEvents",
223
- "onPress",
224
- "onPressIn",
225
- "onPressOut",
226
- "onHoverIn",
227
- "onHoverOut",
228
- "space",
229
- "disabled",
230
- "onMouseEnter",
231
- "onMouseLeave",
232
- "hrefAttrs",
233
- "onMoveShouldSetResponder",
234
- "onMoveShouldSetResponderCapture",
235
- "onResponderEnd",
236
- "onResponderGrant",
237
- "onResponderMove",
238
- "onResponderReject",
239
- "onResponderRelease",
240
- "onResponderStart",
241
- "onResponderTerminate",
242
- "onResponderTerminationRequest",
243
- "onScrollShouldSetResponder",
244
- "onScrollShouldSetResponderCapture",
245
- "onSelectionChangeShouldSetResponder",
246
- "onSelectionChangeShouldSetResponderCapture",
247
- "onStartShouldSetResponder",
248
- "onStartShouldSetResponderCapture",
249
- "onMouseDown",
250
- "nativeID",
251
- "accessible",
252
- "accessibilityRole",
253
- "collapsable",
254
- "focusable",
255
- "onClick",
256
- "theme",
257
- "defaultVariants",
258
- "onLayout"
259
- ]);
260
- let viewProps = viewPropsRest;
261
- if (process.env.NODE_ENV === "development" && !isText && import_platform.isWeb) {
262
- import_react.Children.toArray(props.children).forEach((item) => {
263
- if (typeof item === "string") {
264
- console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
265
- }
266
- });
267
- }
268
- const hasTextAncestor = import_platform.isWeb ? (0, import_react.useContext)(import_TextAncestorContext.TextAncestorContext) : false;
269
- const hostRef = (0, import_react.useRef)(null);
270
- const internal = (0, import_react.useRef)();
271
- if (!internal.current) {
272
- internal.current = {
273
- isMounted: true
274
- };
275
- }
276
- (0, import_platform.useIsomorphicLayoutEffect)(() => {
277
- if (typeof window !== "undefined" && (hasEnterStyle || props.animation)) {
278
- setStateShallow({
279
- mounted: true
280
- });
281
- }
282
- internal.current.isMounted = true;
283
- return () => {
284
- mouseUps.delete(unPress);
285
- internal.current.isMounted = false;
286
- };
287
- }, [hasEnterStyle, props.animation]);
288
- if (nativeID) {
289
- viewProps.id = nativeID;
290
- }
291
- if (import_platform.isAndroid) {
292
- if (collapsable)
293
- viewProps.collapsable = collapsable;
294
- if (focusable)
295
- viewProps.focusable = focusable;
296
- }
297
- if (!import_platform.isWeb) {
298
- if (accessible)
299
- viewProps.accessible = accessible;
300
- if (accessibilityRole)
301
- viewProps.accessibilityRole = accessibilityRole;
302
- }
303
- if (import_platform.isWeb && !asChild) {
304
- import_rnw.rnw.useResponderEvents(hostRef, {
280
+ ...nonTamaguiProps
281
+ } = viewPropsIn;
282
+ const isTaggable = !Component || typeof Component === "string";
283
+ const element = import_platform.isWeb ? isTaggable ? tag || Component : Component : Component;
284
+ const BaseTextComponent = !import_platform.isWeb ? import_react_native.Text : element || "span";
285
+ const BaseViewComponent = !import_platform.isWeb ? import_react_native.View : element || (hasTextAncestor ? "span" : "div");
286
+ let elementType = isText ? (isAnimated ? AnimatedText || import_react_native.Text : null) || BaseTextComponent : (isAnimated ? AnimatedView || import_react_native.View : null) || BaseViewComponent;
287
+ elementType = Component || elementType;
288
+ const isStringElement = typeof elementType === "string";
289
+ const disabled = props.accessibilityState != null && props.accessibilityState.disabled === true || props.accessibilityDisabled;
290
+ let viewProps;
291
+ const hasEnterStyle = !!props.enterStyle;
292
+ const shouldSetMounted = Boolean(
293
+ (import_platform.isWeb ? import_platform.isClient : true) && (hasEnterStyle || props.animation) && !state.mounted
294
+ );
295
+ const setMounted = shouldSetMounted ? () => {
296
+ setTimeout(
297
+ () => {
298
+ setStateShallow({
299
+ mounted: true
300
+ });
301
+ },
302
+ import_platform.isWeb ? 10 : 0
303
+ );
304
+ } : void 0;
305
+ if (process.env.TAMAGUI_TARGET === "web" && !staticConfig.isReactNativeWeb) {
306
+ const {
305
307
  onMoveShouldSetResponder,
306
308
  onMoveShouldSetResponderCapture,
307
309
  onResponderEnd,
@@ -317,71 +319,89 @@ function createComponent(configIn, ParentComponent) {
317
319
  onSelectionChangeShouldSetResponder,
318
320
  onSelectionChangeShouldSetResponderCapture,
319
321
  onStartShouldSetResponder,
320
- onStartShouldSetResponderCapture
321
- });
322
- }
323
- const isTaggable = !Component || typeof Component === "string";
324
- const element = import_platform.isWeb ? isTaggable ? tag || Component : Component : Component;
325
- const BaseTextComponent = !import_platform.isWeb ? import_react_native.Text : element || "span";
326
- const BaseViewComponent = !import_platform.isWeb ? import_react_native.View : element || (hasTextAncestor ? "span" : "div");
327
- let ViewComponent = isText ? (isAnimated ? AnimatedText || import_react_native.Text : null) || BaseTextComponent : (isAnimated ? AnimatedView || import_react_native.View : null) || BaseViewComponent;
328
- ViewComponent = Component || ViewComponent;
329
- let styles;
330
- const isStringElement = typeof ViewComponent === "string";
331
- const animationStyles = state.animation ? state.animation.style : null;
332
- if (isStringElement && shouldAvoidClasses) {
333
- styles = __spreadValues(__spreadValues(__spreadValues({}, defaultNativeStyle), animationStyles), medias);
334
- } else {
335
- styles = [
336
- import_platform.isWeb ? null : defaultNativeStyleSheet ? defaultNativeStyleSheet.base : null,
337
- animationStyles ? animationStyles : style,
338
- medias
339
- ];
340
- if (!animationStyles) {
341
- !state.mounted && addPseudoToStyles(styles, "enterStyle", pseudos);
342
- state.hover && addPseudoToStyles(styles, "hoverStyle", pseudos);
343
- state.focus && addPseudoToStyles(styles, "focusStyle", pseudos);
344
- state.press && addPseudoToStyles(styles, "pressStyle", pseudos);
345
- }
346
- }
347
- if (import_platform.isWeb) {
348
- if (!shouldAvoidClasses) {
349
- const fontFamilyName = isText ? props.fontFamily || staticConfig.defaultProps.fontFamily : null;
350
- const fontFamily = fontFamilyName && fontFamilyName[0] === "$" ? fontFamilyName.slice(1) : null;
351
- const classList = [
352
- componentName ? componentClassName : "",
353
- fontFamily ? `font_${fontFamily}` : "",
354
- theme.className,
355
- classNames ? Object.values(classNames).join(" ") : ""
356
- ];
357
- const className = classList.join(" ");
358
- if (process.env.NODE_ENV === "development") {
359
- if (props["debug"]) {
360
- console.log(" \xBB className", { isStringElement, pseudos, state, classNames, propsClassName: props.className, style, classList, className: className.trim().split(" "), themeClassName: theme.className, values: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, (0, import_insertStyleRule.getAllSelectors)()[v]])) });
361
- }
362
- }
363
- viewProps.className = className;
364
- viewProps.style = animationStyles;
365
- } else {
366
- viewProps.style = styles;
367
- }
368
- } else {
369
- viewProps.style = styles;
370
- }
371
- if (pointerEvents) {
372
- viewProps.pointerEvents = pointerEvents;
373
- }
374
- if (import_platform.isWeb) {
375
- const platformMethodsRef = import_rnw.rnw.usePlatformMethods(viewProps);
376
- const setRef = import_rnw.rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef);
377
- if (!isAnimated) {
322
+ onStartShouldSetResponderCapture,
323
+ nativeID,
324
+ accessibilityActiveDescendant,
325
+ accessibilityAtomic,
326
+ accessibilityAutoComplete,
327
+ accessibilityBusy,
328
+ accessibilityChecked,
329
+ accessibilityColumnCount,
330
+ accessibilityColumnIndex,
331
+ accessibilityColumnSpan,
332
+ accessibilityControls,
333
+ accessibilityCurrent,
334
+ accessibilityDescribedBy,
335
+ accessibilityDetails,
336
+ accessibilityDisabled,
337
+ accessibilityErrorMessage,
338
+ accessibilityExpanded,
339
+ accessibilityFlowTo,
340
+ accessibilityHasPopup,
341
+ accessibilityHidden,
342
+ accessibilityInvalid,
343
+ accessibilityKeyShortcuts,
344
+ accessibilityLabel,
345
+ accessibilityLabelledBy,
346
+ accessibilityLevel,
347
+ accessibilityLiveRegion,
348
+ accessibilityModal,
349
+ accessibilityMultiline,
350
+ accessibilityMultiSelectable,
351
+ accessibilityOrientation,
352
+ accessibilityOwns,
353
+ accessibilityPlaceholder,
354
+ accessibilityPosInSet,
355
+ accessibilityPressed,
356
+ accessibilityReadOnly,
357
+ accessibilityRequired,
358
+ accessibilityRole,
359
+ accessibilityRoleDescription,
360
+ accessibilityRowCount,
361
+ accessibilityRowIndex,
362
+ accessibilityRowSpan,
363
+ accessibilitySelected,
364
+ accessibilitySetSize,
365
+ accessibilitySort,
366
+ accessibilityValueMax,
367
+ accessibilityValueMin,
368
+ accessibilityValueNow,
369
+ accessibilityValueText,
370
+ accessible,
371
+ accessibilityState,
372
+ accessibilityValue,
373
+ collapsable,
374
+ focusable,
375
+ onLayout,
376
+ ...webProps
377
+ } = nonTamaguiProps;
378
+ viewProps = webProps;
379
+ (0, import_assignNativePropsToWeb.assignNativePropsToWeb)(elementType, viewProps, nonTamaguiProps);
380
+ if (!import_platform.isRSC) {
381
+ (0, import_rnw.useElementLayout)(hostRef, onLayout);
382
+ (0, import_rnw.useResponderEvents)(hostRef, {
383
+ onMoveShouldSetResponder,
384
+ onMoveShouldSetResponderCapture,
385
+ onResponderEnd,
386
+ onResponderGrant,
387
+ onResponderMove,
388
+ onResponderReject,
389
+ onResponderRelease,
390
+ onResponderStart,
391
+ onResponderTerminate,
392
+ onResponderTerminationRequest,
393
+ onScrollShouldSetResponder,
394
+ onScrollShouldSetResponderCapture,
395
+ onSelectionChangeShouldSetResponder,
396
+ onSelectionChangeShouldSetResponderCapture,
397
+ onStartShouldSetResponder,
398
+ onStartShouldSetResponderCapture
399
+ });
400
+ const platformMethodsRef = (0, import_rnw.usePlatformMethods)(viewProps);
401
+ const setRef = (0, import_rnw.useMergeRefs)(hostRef, platformMethodsRef, forwardedRef, setMounted);
378
402
  viewProps.ref = setRef;
379
- } else {
380
- if (forwardedRef) {
381
- viewProps.ref = forwardedRef;
382
- }
383
403
  }
384
- if (props.href != null && hrefAttrs != null) {
404
+ if (props.href != void 0 && hrefAttrs != void 0) {
385
405
  const { download, rel, target } = hrefAttrs;
386
406
  if (download != null) {
387
407
  viewProps.download = download;
@@ -393,70 +413,202 @@ function createComponent(configIn, ParentComponent) {
393
413
  viewProps.target = target.charAt(0) !== "_" ? "_" + target : target;
394
414
  }
395
415
  }
416
+ const _focusable = focusable != void 0 ? focusable : accessible;
417
+ const role = viewProps.role;
418
+ if (_focusable === false) {
419
+ viewProps.tabIndex = "-1";
420
+ }
421
+ if (elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea") {
422
+ if (_focusable === false || accessibilityDisabled === true) {
423
+ viewProps.tabIndex = "-1";
424
+ }
425
+ } else if (role === "button" || role === "checkbox" || role === "link" || role === "radio" || role === "textbox" || role === "switch") {
426
+ if (_focusable !== false) {
427
+ viewProps.tabIndex = "0";
428
+ }
429
+ }
430
+ if (_focusable === true) {
431
+ viewProps.tabIndex = "0";
432
+ }
396
433
  } else {
434
+ viewProps = nonTamaguiProps;
397
435
  if (forwardedRef) {
398
436
  viewProps.ref = forwardedRef;
399
437
  }
400
438
  }
401
- const initialPseudos = initialSplitStyles.pseudos;
402
- const attachPress = !!(pseudos && pseudos.pressStyle || initialPseudos && initialPseudos.pressStyle || onPress || onPressOut || onPressIn || onClick);
403
- const isTouch = (0, import_useIsTouchDevice.useIsTouchDevice)();
404
- const isHoverable = import_platform.isWeb && !isTouch;
439
+ if (process.env.NODE_ENV === "development" && !isText && import_platform.isWeb && !staticConfig.isHOC) {
440
+ import_react.Children.toArray(props.children).forEach((item) => {
441
+ if (typeof item === "string") {
442
+ console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
443
+ }
444
+ });
445
+ }
446
+ const unPress = (0, import_react.useCallback)(() => {
447
+ setStateShallow({
448
+ press: false,
449
+ pressIn: false
450
+ });
451
+ }, [setStateShallow]);
452
+ if (!import_platform.isRSC) {
453
+ (0, import_react.useEffect)(() => {
454
+ return () => {
455
+ mouseUps.delete(unPress);
456
+ };
457
+ }, [unPress]);
458
+ }
459
+ let styles;
460
+ const animationStyles = state.animation ? state.animation.style : null;
461
+ if (isStringElement && shouldAvoidClasses && !shouldForcePseudo) {
462
+ styles = {
463
+ ...defaultNativeStyle,
464
+ ...animationStyles ?? splitStylesStyle,
465
+ ...medias
466
+ };
467
+ } else {
468
+ styles = [import_platform.isWeb ? null : defaultNativeStyle, animationStyles ?? splitStylesStyle, medias];
469
+ if (!animationStyles && initialSplitStyles) {
470
+ const initPseudos = initialSplitStyles.pseudos;
471
+ !state.mounted && addPseudoToStyles(styles, initPseudos, pseudos, "enterStyle");
472
+ state.hover && addPseudoToStyles(styles, initPseudos, pseudos, "hoverStyle", shouldForcePseudo);
473
+ state.focus && addPseudoToStyles(styles, initPseudos, pseudos, "focusStyle", shouldForcePseudo);
474
+ state.press && addPseudoToStyles(styles, initPseudos, pseudos, "pressStyle", shouldForcePseudo);
475
+ }
476
+ if (shouldForcePseudo) {
477
+ const next = {};
478
+ for (const style of styles) {
479
+ if (style) {
480
+ Object.assign(next, style);
481
+ }
482
+ }
483
+ Object.assign(splitStyles.style, next);
484
+ }
485
+ }
486
+ if (process.env.TAMAGUI_TARGET === "web") {
487
+ let fontFamily = isText ? splitStyles.fontFamily || staticConfig.defaultProps.fontFamily : null;
488
+ if (fontFamily && fontFamily[0] === "$") {
489
+ fontFamily = fontFamily.slice(1);
490
+ }
491
+ if (process.env.NODE_ENV === "development") {
492
+ if (fontFamily == null ? void 0 : fontFamily.startsWith(`var(`)) {
493
+ console.warn(
494
+ `Received variable instead of resolved name of font, this is a bug. Please report on Github.`,
495
+ {
496
+ fontFamily,
497
+ props,
498
+ splitStyles,
499
+ staticConfig
500
+ }
501
+ );
502
+ }
503
+ }
504
+ const classList = [
505
+ componentName ? componentClassName : "",
506
+ fontFamily ? `font_${fontFamily}` : "",
507
+ theme.className,
508
+ classNames ? Object.values(classNames).join(" ") : ""
509
+ ];
510
+ const className = classList.join(" ");
511
+ const style = animationStyles ?? splitStyles.style;
512
+ const isAnimatedReactNativeWeb = props.animation && avoidClasses;
513
+ if (staticConfig.isReactNativeWeb || isAnimatedReactNativeWeb) {
514
+ viewProps.dataSet = {
515
+ ...viewProps.dataSet,
516
+ className,
517
+ id: props.id
518
+ };
519
+ if (process.env.NODE_ENV === "development") {
520
+ Object.keys(viewProps).forEach((key) => {
521
+ if (key.startsWith("data-")) {
522
+ viewProps.dataSet[key.replace("data-", "")] = viewProps[key];
523
+ delete viewProps[key];
524
+ }
525
+ });
526
+ }
527
+ } else {
528
+ viewProps.className = className;
529
+ }
530
+ viewProps.style = style;
531
+ }
532
+ if (process.env.TAMAGUI_TARGET === "native") {
533
+ const mergedRef = (0, import_rnw.useMergeRefs)(forwardedRef, hostRef, setMounted);
534
+ viewProps.ref = mergedRef;
535
+ if (splitStyles.fontFamily) {
536
+ const faceInfo = (_b = config.fontsParsed[splitStyles.fontFamily]) == null ? void 0 : _b.face;
537
+ if (faceInfo) {
538
+ const [weight, style] = (() => {
539
+ var _a2, _b2;
540
+ let weight2;
541
+ let style2;
542
+ for (let i = styles.length; i >= 0; i--) {
543
+ weight2 ?? (weight2 = (_a2 = styles[i]) == null ? void 0 : _a2.fontWeight);
544
+ style2 ?? (style2 = (_b2 = styles[i]) == null ? void 0 : _b2.fontStyle);
545
+ }
546
+ return [weight2 || "400", style2 || "normal"];
547
+ })();
548
+ const overrideFace = (_d = (_c = faceInfo[weight]) == null ? void 0 : _c[style]) == null ? void 0 : _d.val;
549
+ if (overrideFace) {
550
+ for (const style2 of styles) {
551
+ if (style2 == null ? void 0 : style2.fontFamily) {
552
+ style2.fontFamily = overrideFace;
553
+ }
554
+ }
555
+ }
556
+ }
557
+ }
558
+ viewProps.style = styles;
559
+ }
560
+ const initialPseudos = initialSplitStyles == null ? void 0 : initialSplitStyles.pseudos;
561
+ const attachPress = !!((pseudos == null ? void 0 : pseudos.pressStyle) || (initialPseudos == null ? void 0 : initialPseudos.pressStyle) || onPress || onPressOut || onPressIn || onClick);
562
+ const isHoverable = import_platform.isWeb;
405
563
  const attachHover = isHoverable && !!(pseudos && pseudos.hoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
406
564
  const handlesPressEvents = !isStringElement && !asChild;
407
565
  const pressKey = handlesPressEvents ? "onPress" : "onClick";
408
566
  const pressInKey = handlesPressEvents ? "onPressIn" : "onMouseDown";
409
567
  const pressOutKey = handlesPressEvents ? "onPressOut" : "onMouseUp";
410
568
  const shouldAttach = !asChild && (attachPress || attachHover || "pressStyle" in props || "onPress" in props || "onPressIn" in props || "onPressOut" in props || import_platform.isWeb && ("hoverStyle" in props || "onHoverIn" in props || "onHoverOut" in props || "onMouseEnter" in props || "onMouseLeave" in props));
411
- const unPress = (0, import_react.useCallback)(() => {
412
- if (!internal.current.isMounted)
413
- return;
414
- setStateShallow({
415
- press: false,
416
- pressIn: false
417
- });
418
- }, []);
419
- const events = shouldAttach ? __spreadProps(__spreadValues({
569
+ const events = shouldAttach && !import_platform.isRSC ? {
420
570
  [pressOutKey]: attachPress ? (e) => {
421
571
  unPress();
422
572
  onPressOut == null ? void 0 : onPressOut(e);
423
- } : void 0
424
- }, isHoverable && {
425
- onMouseEnter: attachHover ? (e) => {
426
- let next = {};
427
- if (attachHover) {
428
- next.hover = true;
429
- }
430
- if (state.pressIn) {
431
- next.press = true;
432
- }
433
- if (Object.keys(next).length) {
434
- setStateShallow(next);
435
- }
436
- onHoverIn == null ? void 0 : onHoverIn(e);
437
- onMouseEnter == null ? void 0 : onMouseEnter(e);
573
+ onMouseUp == null ? void 0 : onMouseUp(e);
438
574
  } : void 0,
439
- onMouseLeave: attachHover ? (e) => {
440
- let next = {};
441
- mouseUps.add(unPress);
442
- if (attachHover) {
443
- next.hover = false;
444
- }
445
- if (state.pressIn) {
446
- next.press = false;
447
- next.pressIn = false;
448
- }
449
- if (Object.keys(next).length) {
450
- setStateShallow(next);
451
- }
452
- onHoverOut == null ? void 0 : onHoverOut(e);
453
- onMouseLeave == null ? void 0 : onMouseLeave(e);
454
- } : void 0
455
- }), {
575
+ ...isHoverable && {
576
+ onMouseEnter: attachHover ? (e) => {
577
+ const next = {};
578
+ if (attachHover) {
579
+ next.hover = true;
580
+ }
581
+ if (state.pressIn) {
582
+ next.press = true;
583
+ }
584
+ if (Object.keys(next).length) {
585
+ setStateShallow(next);
586
+ }
587
+ onHoverIn == null ? void 0 : onHoverIn(e);
588
+ onMouseEnter == null ? void 0 : onMouseEnter(e);
589
+ } : void 0,
590
+ onMouseLeave: attachHover ? (e) => {
591
+ const next = {};
592
+ mouseUps.add(unPress);
593
+ if (attachHover) {
594
+ next.hover = false;
595
+ }
596
+ if (state.pressIn) {
597
+ next.press = false;
598
+ next.pressIn = false;
599
+ }
600
+ if (Object.keys(next).length) {
601
+ setStateShallow(next);
602
+ }
603
+ onHoverOut == null ? void 0 : onHoverOut(e);
604
+ onMouseLeave == null ? void 0 : onMouseLeave(e);
605
+ } : void 0
606
+ },
456
607
  [pressInKey]: attachPress ? (e) => {
457
608
  setStateShallow({
458
609
  press: true,
459
- pressIn: true
610
+ pressIn: true,
611
+ hover: false
460
612
  });
461
613
  onPressIn == null ? void 0 : onPressIn(e);
462
614
  onMouseDown == null ? void 0 : onMouseDown(e);
@@ -468,46 +620,68 @@ function createComponent(configIn, ParentComponent) {
468
620
  unPress();
469
621
  onClick == null ? void 0 : onClick(e);
470
622
  onPress == null ? void 0 : onPress(e);
471
- } : null
472
- }) : null;
473
- const childEls = !children || asChild ? children : (0, import_wrapThemeManagerContext.wrapThemeManagerContext)(spacedChildren({
474
- children,
475
- space,
476
- flexDirection: props.flexDirection || ((_c = staticConfig.defaultProps) == null ? void 0 : _c.flexDirection),
477
- isZStack
478
- }), (0, import_useTheme.getThemeManagerIfChanged)(theme));
479
- let content;
480
- if (import_platform.isWeb) {
481
- if (staticConfig.isReactNativeWeb) {
482
- viewProps.dataSet = __spreadProps(__spreadValues({}, viewProps.dataSet), {
483
- className: viewProps.className
484
- });
485
- } else {
486
- const rnProps = import_rnw.rnw.createDOMProps(viewProps);
487
- const className = rnProps.className && rnProps.className !== viewProps.className ? `${rnProps.className} ${viewProps.className}` : viewProps.className;
488
- Object.assign(viewProps, rnProps);
489
- if (className) {
490
- viewProps.className = className;
623
+ } : null,
624
+ ...!import_platform.isWeb && {
625
+ cancelable: !props.rejectResponderTermination,
626
+ disabled: props.disabled !== null ? props.disabled : (_e = props.accessibilityState) == null ? void 0 : _e.disabled,
627
+ hitSlop: props.hitSlop,
628
+ delayLongPress: props.delayLongPress,
629
+ delayPressIn: props.delayPressIn,
630
+ delayPressOut: props.delayPressOut,
631
+ focusable: viewProps.focusable ?? true,
632
+ minPressDuration: 0
633
+ }
634
+ } : null;
635
+ let space = spaceProp;
636
+ if (state.mediaState && mediaKeys.length) {
637
+ for (const key in state.mediaState) {
638
+ if (!state.mediaState[key])
639
+ continue;
640
+ if (props[key] && props[key].space !== void 0) {
641
+ space = props[key].space;
491
642
  }
492
643
  }
493
644
  }
645
+ const themeManager = (0, import_useTheme.getThemeManager)(theme);
646
+ const shouldSetChildrenThemeToParent = Boolean(
647
+ themeShallow && themeManager && themeManager.didChangeTheme
648
+ );
649
+ const shouldProvideThemeManager = shouldSetChildrenThemeToParent || themeManager && themeManager.didChangeTheme;
650
+ const childEls = !children || asChild ? children : (0, import_Theme.wrapThemeManagerContext)(
651
+ spacedChildren({
652
+ separator,
653
+ children,
654
+ space,
655
+ direction: props.spaceDirection || "both",
656
+ isZStack
657
+ }),
658
+ shouldProvideThemeManager ? themeManager : void 0,
659
+ shouldSetChildrenThemeToParent
660
+ );
661
+ let content;
494
662
  if (asChild) {
495
- ViewComponent = import_Slot.Slot;
496
- const onlyChild = import_react.default.Children.only(children);
497
- Object.assign(viewProps, onlyChild.props);
498
- }
499
- if (import_platform.isWeb) {
500
- const [pressableProps] = (0, import_usePressable.usePressable)(events ? __spreadProps(__spreadValues({
501
- disabled
502
- }, hitSlop && {
503
- hitSlop
504
- }), {
505
- onPressOut: events[pressOutKey],
506
- onPressIn: events[pressInKey],
507
- onPress: events[pressKey]
508
- }) : {
509
- disabled: true
510
- });
663
+ elementType = import_Slot.Slot;
664
+ viewProps = {
665
+ ...viewProps,
666
+ onPress,
667
+ onPressIn,
668
+ onPressOut
669
+ };
670
+ }
671
+ if (!import_platform.isRSC && import_platform.isWeb) {
672
+ const [pressableProps] = (0, import_usePressable.usePressable)(
673
+ events ? {
674
+ disabled,
675
+ ...hitSlop && {
676
+ hitSlop
677
+ },
678
+ onPressOut: events[pressOutKey],
679
+ onPressIn: events[pressInKey],
680
+ onPress: events[pressKey]
681
+ } : {
682
+ disabled: true
683
+ }
684
+ );
511
685
  if (events) {
512
686
  if (handlesPressEvents) {
513
687
  Object.assign(viewProps, pressableProps);
@@ -516,87 +690,171 @@ function createComponent(configIn, ParentComponent) {
516
690
  }
517
691
  }
518
692
  }
519
- content = (0, import_react.createElement)(ViewComponent, viewProps, childEls);
520
- if (!import_platform.isWeb) {
693
+ if (process.env.TAMAGUI_TARGET === "native") {
694
+ const attachFocus = !!(pseudos && pseudos.focusStyle || initialPseudos && initialPseudos.focusStyle);
695
+ if (attachFocus) {
696
+ viewProps.onFocus = (0, import_Slot.mergeEvent)(viewProps.onFocus, () => {
697
+ setStateShallow({ focus: true });
698
+ });
699
+ viewProps.onBlur = (0, import_Slot.mergeEvent)(viewProps.onBlur, () => {
700
+ setStateShallow({ focus: false });
701
+ });
702
+ }
703
+ const pressability = (0, import_Pressability.usePressability)(events);
521
704
  if (attachPress && events) {
522
- content = /* @__PURE__ */ import_react.default.createElement(import_react_native.Pressable, {
523
- onPressIn: events[pressInKey],
524
- onPress: events[pressKey]
525
- }, /* @__PURE__ */ import_react.default.createElement(import_nativeGestureHandler.BaseButton, {
526
- onActiveStateChange: (isActive) => {
527
- if (!isActive) {
528
- unPress();
529
- }
530
- }
531
- }, content));
705
+ const dontComposePressabilityKeys = {
706
+ onClick: true
707
+ };
708
+ if (hitSlop) {
709
+ viewProps.hitSlop = hitSlop;
710
+ }
711
+ for (const key in pressability) {
712
+ const og = props[key];
713
+ const val = pressability[key];
714
+ viewProps[key] = og && !dontComposePressabilityKeys[key] ? (0, import_helpers.composeEventHandlers)(og, val) : val;
715
+ }
532
716
  }
533
717
  }
534
- if (import_platform.isWeb && events && attachHover) {
535
- content = /* @__PURE__ */ import_react.default.createElement("span", {
536
- className: "tui_Hoverable",
537
- style: {
538
- display: "contents"
539
- },
540
- onMouseEnter: events.onMouseEnter,
541
- onMouseLeave: events.onMouseLeave
542
- }, content);
718
+ content = (0, import_react.createElement)(elementType, viewProps, childEls);
719
+ if (process.env.TAMAGUI_TARGET === "web") {
720
+ const isAnimatedRNWView = isAnimated && typeof elementType !== "string";
721
+ const shouldWrapWithComponentTheme = !!theme.className && isAnimatedRNWView && (0, import_createPropMapper.getReturnVariablesAs)(props, splitStyleState) === "non-color-value";
722
+ const shouldWrapWithHover = Boolean(events || import_platform.isRSC) && attachHover;
723
+ if (shouldWrapWithHover || shouldWrapWithComponentTheme) {
724
+ const themeClassName = shouldWrapWithComponentTheme ? `${theme.className}` : "";
725
+ const hoverClassName = shouldWrapWithHover ? "t_Hoverable" : "";
726
+ content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
727
+ className: `${hoverClassName} ${themeClassName}`,
728
+ style: {
729
+ display: "contents"
730
+ },
731
+ ...events && shouldWrapWithHover && {
732
+ onMouseEnter: events.onMouseEnter,
733
+ onMouseLeave: events.onMouseLeave
734
+ },
735
+ children: content
736
+ });
737
+ }
543
738
  }
544
739
  if (process.env.NODE_ENV === "development") {
545
- if (props["debug"]) {
546
- console.log(" \xBB ", __spreadValues({ propsIn: __spreadValues({}, props), propsOut: __spreadValues({}, viewProps), state, splitStyles, animationStyles, isStringElement, classNamesIn: (_d = props.className) == null ? void 0 : _d.split(" "), classNamesOut: (_e = viewProps.className) == null ? void 0 : _e.split(" "), events, shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses, animation: props.animation, style, defaultNativeStyle, initialSplitStyles }, typeof window !== "undefined" ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null));
740
+ if (debugProp) {
741
+ const element2 = typeof elementType === "string" ? elementType : "Component";
742
+ console.groupCollapsed(`render <${element2} /> with props`, viewProps);
743
+ for (const key in viewProps) {
744
+ console.log(key, viewProps[key]);
745
+ }
746
+ console.log("children", content);
747
+ console.groupEnd();
748
+ if (typeof window !== "undefined") {
749
+ console.log({ state, shouldProvideThemeManager, tamaguiDefaultProps, viewProps, splitStyles, animationStyles, handlesPressEvents, isStringElement, classNamesIn: (_f = props.className) == null ? void 0 : _f.split(" "), classNamesOut: (_g = viewProps.className) == null ? void 0 : _g.split(" "), events, shouldAttach, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses, animation: props.animation, style: splitStylesStyle, defaultNativeStyle, initialSplitStyles, ...typeof window !== "undefined" ? { theme, themeClassName: theme.className, staticConfig, tamaguiConfig, events, shouldAvoidClasses, shouldForcePseudo, classNames: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, (0, import_insertStyleRule.getAllSelectors)()[v]])) } : null });
750
+ }
751
+ console.groupEnd();
547
752
  }
548
753
  }
549
- if (features.length) {
550
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, features, content);
551
- }
552
754
  return content;
553
755
  });
554
- component.displayName = staticConfig.componentName;
555
- (0, import_conf.onConfiguredOnce)((conf) => {
556
- var _a, _b, _c, _d;
557
- if (process.env.IS_STATIC === "is_static") {
558
- return;
756
+ if (staticConfig.componentName) {
757
+ component.displayName = staticConfig.componentName;
758
+ }
759
+ (0, import_config.onConfiguredOnce)((conf) => {
760
+ if (!defaultComponentState) {
761
+ defaultComponentState = Object.freeze({
762
+ hover: false,
763
+ press: false,
764
+ pressIn: false,
765
+ focus: false,
766
+ mounted: false,
767
+ animation: null,
768
+ mediaState: (0, import_useMedia.getInitialMediaState)()
769
+ });
559
770
  }
771
+ if (process.env.IS_STATIC === "is_static")
772
+ return;
560
773
  tamaguiConfig = conf;
561
774
  mergeShorthands(staticConfig, tamaguiConfig);
562
- avoidClasses = !!((_a = tamaguiConfig.animations) == null ? void 0 : _a.avoidClasses);
563
- AnimatedText = (_b = tamaguiConfig.animations) == null ? void 0 : _b.Text;
564
- AnimatedView = (_c = tamaguiConfig == null ? void 0 : tamaguiConfig.animations) == null ? void 0 : _c.View;
565
- initialTheme = initialTheme || (0, import_proxyThemeVariables.proxyThemeVariables)(conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]);
566
- initialSplitStyles = (0, import_getSplitStyles.insertSplitStyles)(staticConfig.defaultProps, staticConfig, initialTheme, {
567
- mounted: true,
568
- hover: false,
569
- press: false,
570
- pressIn: false,
571
- focus: false,
572
- resolveVariablesAs: "both",
573
- keepVariantsAsProps: true
574
- });
575
- const defaults = __spreadValues(__spreadValues({}, component.defaultProps), initialSplitStyles.viewProps);
775
+ if (tamaguiConfig.animations) {
776
+ avoidClasses = !!tamaguiConfig.animations.avoidClasses;
777
+ AnimatedText = tamaguiConfig.animations.Text;
778
+ AnimatedView = tamaguiConfig.animations.View;
779
+ }
780
+ if (!initialTheme) {
781
+ const next = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
782
+ initialTheme = (0, import_proxyThemeVariables.proxyThemeVariables)(next);
783
+ if (!initialTheme && process.env.NODE_ENV === "development") {
784
+ console.log(`Warning: Missing theme`);
785
+ }
786
+ }
787
+ config = (0, import_config.getConfig)();
788
+ let defaultPropsIn = staticConfig.defaultProps || {};
789
+ const parentNames = [...staticConfig.parentNames || [], staticConfig.componentName];
790
+ if (config.defaultProps && parentNames && staticConfig.componentName) {
791
+ defaultPropsIn = mergeConfigDefaultProps(
792
+ staticConfig.componentName,
793
+ defaultPropsIn,
794
+ config.defaultProps,
795
+ parentNames,
796
+ conf
797
+ );
798
+ }
799
+ const debug = defaultPropsIn["debug"];
800
+ if (process.env.NODE_ENV === "development" && debug === "break") {
801
+ debugger;
802
+ }
803
+ const [parentProps, parentClassNames] = (0, import_mergeProps.mergeProps)(defaultPropsIn, {}, true);
804
+ initialSplitStyles = (0, import_getSplitStyles.insertSplitStyles)(
805
+ parentProps,
806
+ staticConfig,
807
+ initialTheme,
808
+ {
809
+ mounted: true,
810
+ hover: false,
811
+ press: false,
812
+ pressIn: false,
813
+ focus: false,
814
+ resolveVariablesAs: "both",
815
+ noClassNames: !staticConfig.acceptsClassName,
816
+ keepVariantsAsProps: true
817
+ },
818
+ void 0,
819
+ void 0,
820
+ debug
821
+ );
822
+ const [defaults2, defaultsClassnames] = (0, import_mergeProps.mergeProps)(
823
+ component.defaultProps,
824
+ initialSplitStyles.viewProps,
825
+ true
826
+ );
827
+ initialSplitStyles.classNames = {
828
+ ...parentClassNames,
829
+ ...defaultsClassnames,
830
+ ...initialSplitStyles.classNames
831
+ };
576
832
  defaultNativeStyle = {};
577
- const validStyles = staticConfig.validStyles || import_helpers.stylePropsView;
578
- for (const key in staticConfig.defaultProps) {
579
- const val = staticConfig.defaultProps[key];
580
- if (typeof val === "string" && val[0] === "$" || !validStyles[key]) {
581
- defaults[key] = val;
582
- } else {
583
- defaultNativeStyle[key] = val;
833
+ const validStyles2 = staticConfig.validStyles || import_helpers.stylePropsView;
834
+ if (!import_platform.isWeb) {
835
+ for (const key in staticConfig.defaultProps) {
836
+ const val = staticConfig.defaultProps[key];
837
+ if (import_helpers.validPseudoKeys[key])
838
+ continue;
839
+ if (typeof val === "string" && val[0] === "$" || !validStyles2[key]) {
840
+ defaults2[key] = val;
841
+ } else {
842
+ defaultNativeStyle[key] = val;
843
+ }
584
844
  }
585
845
  }
586
- defaultNativeStyleSheet = import_react_native.StyleSheet.create({
587
- base: defaultNativeStyle
588
- });
589
- if (Object.keys(defaults).length) {
590
- tamaguiDefaultProps = defaults;
846
+ if (Object.keys(defaults2).length) {
847
+ tamaguiDefaultProps = defaults2;
591
848
  }
592
- if (process.env.NODE_ENV === "development" && ((_d = staticConfig.defaultProps) == null ? void 0 : _d.debug)) {
849
+ if (process.env.NODE_ENV === "development" && debug) {
593
850
  if (process.env.IS_STATIC !== "is_static") {
594
851
  console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, {
595
852
  staticConfig,
596
853
  initialSplitStyles,
597
854
  tamaguiDefaultProps,
598
855
  defaultNativeStyle,
599
- defaults
856
+ defaults: defaults2,
857
+ defaultPropsIn
600
858
  });
601
859
  }
602
860
  }
@@ -605,35 +863,46 @@ function createComponent(configIn, ParentComponent) {
605
863
  if (configIn.memo) {
606
864
  res = (0, import_react.memo)(res);
607
865
  }
608
- res["staticConfig"] = __spreadValues({
609
- validStyles: staticConfig.validStyles || import_helpers.stylePropsView
610
- }, staticConfig);
611
- if (process.env.NODE_ENV === "development") {
612
- res["whyDidYouRender"] = true;
613
- }
614
- res["extractable"] = (Component, conf) => {
615
- Component["staticConfig"] = (0, import_extendStaticConfig.extendStaticConfig)(__spreadProps(__spreadValues({
616
- Component
617
- }, conf), {
618
- neverFlatten: true,
619
- defaultProps: __spreadValues(__spreadValues({}, Component.defaultProps), conf == null ? void 0 : conf.defaultProps)
620
- }), res);
866
+ res.staticConfig = {
867
+ validStyles: staticConfig.validStyles || import_helpers.stylePropsView,
868
+ ...staticConfig
869
+ };
870
+ res.extractable = (Component, conf) => {
871
+ Component.staticConfig = (0, import_extendStaticConfig.extendStaticConfig)(
872
+ {
873
+ Component,
874
+ ...conf,
875
+ neverFlatten: true,
876
+ isHOC: true,
877
+ defaultProps: {
878
+ ...Component.defaultProps,
879
+ ...conf == null ? void 0 : conf.defaultProps
880
+ }
881
+ },
882
+ res
883
+ );
621
884
  return Component;
622
885
  };
623
886
  return res;
624
887
  }
625
- __name(createComponent, "createComponent");
888
+ const Unspaced = (props) => {
889
+ return props.children;
890
+ };
891
+ Unspaced["isUnspaced"] = true;
626
892
  const Spacer = createComponent({
627
893
  memo: true,
628
894
  componentName: "Spacer",
629
- defaultProps: __spreadProps(__spreadValues({}, import_constants.stackDefaultStyles), {
895
+ validStyles: import_helpers.validStyles,
896
+ defaultProps: {
897
+ ...import_constants.stackDefaultStyles,
898
+ tag: "span",
630
899
  size: true
631
- }),
900
+ },
632
901
  variants: {
633
902
  size: {
634
903
  "...size": (size, { tokens }) => {
635
904
  size = size == true ? "$true" : size;
636
- const sizePx = tokens.size[size] ?? size;
905
+ const sizePx = tokens.space[size] ?? size;
637
906
  return {
638
907
  width: sizePx,
639
908
  height: sizePx,
@@ -644,7 +913,7 @@ const Spacer = createComponent({
644
913
  },
645
914
  flex: {
646
915
  true: {
647
- flex: 1
916
+ flexGrow: 1
648
917
  }
649
918
  },
650
919
  direction: {
@@ -655,75 +924,243 @@ const Spacer = createComponent({
655
924
  vertical: {
656
925
  width: 0,
657
926
  minWidth: 0
658
- }
927
+ },
928
+ both: {}
659
929
  }
660
930
  },
661
931
  defaultVariants: {
662
- direction: "horizontal"
932
+ direction: "both"
663
933
  }
664
934
  });
665
935
  function spacedChildren({
666
936
  isZStack,
667
937
  children,
668
938
  space,
669
- flexDirection,
670
- spaceFlex
939
+ direction,
940
+ spaceFlex,
941
+ separator
671
942
  }) {
672
- var _a;
673
- const childrenList = Array.isArray(children) ? children : import_react.Children.toArray(children);
674
- const len = childrenList.length;
675
- if (len <= 1) {
943
+ const hasSpace = !!(space || spaceFlex);
944
+ const hasSeparator = !(separator === void 0 || separator === null);
945
+ if (!hasSpace && !hasSeparator && !isZStack) {
946
+ return children;
947
+ }
948
+ const childrenList = import_react.Children.toArray(children);
949
+ if (childrenList.length <= 1 && !isZStack) {
676
950
  return childrenList;
677
951
  }
678
952
  const final = [];
679
953
  for (const [index, child] of childrenList.entries()) {
680
- if (child === null || child === void 0 || child === false || Array.isArray(child) && child.length === 0) {
681
- continue;
682
- }
683
- if (!child || child["key"] && !isZStack) {
954
+ const isEmpty = child === null || child === void 0 || Array.isArray(child) && child.length === 0;
955
+ if (isEmpty || !child || child["key"] && !isZStack) {
684
956
  final.push(child);
685
957
  } else {
686
- final.push(/* @__PURE__ */ import_react.default.createElement(import_react.Fragment, {
687
- key: index
688
- }, isZStack ? /* @__PURE__ */ import_react.default.createElement(AbsoluteFill, null, child) : child));
958
+ final.push(
959
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Fragment, {
960
+ children: isZStack ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AbsoluteFill, {
961
+ children: child
962
+ }) : child
963
+ }, index)
964
+ );
965
+ }
966
+ if (isUnspaced(child) && index === 0) {
967
+ continue;
689
968
  }
690
- if ((_a = child["type"]) == null ? void 0 : _a["isVisuallyHidden"]) {
969
+ if (isZStack) {
691
970
  continue;
692
971
  }
693
972
  const next = childrenList[index + 1];
694
- if (next && space) {
695
- final.push(/* @__PURE__ */ import_react.default.createElement(Spacer, __spreadValues({
696
- key: `_${index}_spacer`,
697
- direction: flexDirection === "row" || flexDirection === "row-reverse" ? "horizontal" : "vertical",
698
- size: space
699
- }, spaceFlex && {
700
- flex: spaceFlex
701
- })));
973
+ if (next && !isUnspaced(next)) {
974
+ if (separator) {
975
+ if (hasSpace) {
976
+ final.push(
977
+ createSpacer({
978
+ key: `_${index}_before_sep_spacer`,
979
+ direction,
980
+ space,
981
+ spaceFlex
982
+ })
983
+ );
984
+ }
985
+ final.push(
986
+ import_react.default.isValidElement(separator) ? import_react.default.cloneElement(separator, { key: `sep_${index}` }) : separator
987
+ );
988
+ if (hasSpace) {
989
+ final.push(
990
+ createSpacer({
991
+ key: `_${index}_after_sep_spacer`,
992
+ direction,
993
+ space,
994
+ spaceFlex
995
+ })
996
+ );
997
+ }
998
+ } else {
999
+ final.push(
1000
+ createSpacer({
1001
+ key: `_${index}_spacer`,
1002
+ direction,
1003
+ space,
1004
+ spaceFlex
1005
+ })
1006
+ );
1007
+ }
702
1008
  }
703
1009
  }
704
1010
  return final;
705
1011
  }
706
- __name(spacedChildren, "spacedChildren");
1012
+ function createSpacer({ key, direction, space, spaceFlex }) {
1013
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Spacer, {
1014
+ size: space,
1015
+ direction,
1016
+ ...spaceFlex && {
1017
+ flex: spaceFlex
1018
+ }
1019
+ }, key);
1020
+ }
1021
+ function isUnspaced(child) {
1022
+ var _a, _b;
1023
+ return ((_a = child == null ? void 0 : child["type"]) == null ? void 0 : _a["isVisuallyHidden"]) || ((_b = child == null ? void 0 : child["type"]) == null ? void 0 : _b["isUnspaced"]);
1024
+ }
707
1025
  function AbsoluteFill(props) {
708
- return import_platform.isWeb ? /* @__PURE__ */ import_react.default.createElement("div", {
709
- style: {
710
- position: "absolute",
711
- top: 0,
712
- left: 0,
713
- right: 0,
714
- bottom: 0
715
- }
716
- }, props.children) : /* @__PURE__ */ import_react.default.createElement(import_react_native.View, {
717
- style: import_react_native.StyleSheet.absoluteFill
718
- }, props.child);
1026
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.View, {
1027
+ pointerEvents: "box-none",
1028
+ style: absoluteFill,
1029
+ children: props.children
1030
+ });
1031
+ }
1032
+ const absoluteFill = {
1033
+ position: "absolute",
1034
+ top: 0,
1035
+ left: 0,
1036
+ right: 0,
1037
+ bottom: 0
1038
+ };
1039
+ function processIDRefList(idRefList) {
1040
+ return Array.isArray(idRefList) ? idRefList.join(" ") : idRefList;
1041
+ }
1042
+ const accessibilityRoleToWebRole = {
1043
+ adjustable: "slider",
1044
+ button: "button",
1045
+ header: "heading",
1046
+ image: "img",
1047
+ imagebutton: null,
1048
+ keyboardkey: null,
1049
+ label: null,
1050
+ link: "link",
1051
+ none: "presentation",
1052
+ search: "search",
1053
+ summary: "region",
1054
+ text: null
1055
+ };
1056
+ function addPseudoToStyles(styles, initialPseudos, pseudos, name, force = false) {
1057
+ const pseudoStyle = pseudos[name];
1058
+ const shouldNestObject = import_platform.isWeb && name !== "enterStyle" && name !== "exitStyle";
1059
+ const defaultPseudoStyle = initialPseudos[name];
1060
+ const style = defaultPseudoStyle ? { ...defaultPseudoStyle, ...pseudoStyle } : pseudoStyle;
1061
+ if (style) {
1062
+ styles.push(shouldNestObject && !force ? { [name]: style } : style);
1063
+ }
1064
+ }
1065
+ const DefaultProps = /* @__PURE__ */ new Map();
1066
+ function mergeConfigDefaultProps(name, props, configDefaults, parentNames, conf) {
1067
+ const len = parentNames.length;
1068
+ let prev;
1069
+ for (let i = 0; i < len; i++) {
1070
+ const n = parentNames[i];
1071
+ if (!n)
1072
+ continue;
1073
+ if (DefaultProps.has(n)) {
1074
+ prev = DefaultProps.get(n);
1075
+ continue;
1076
+ }
1077
+ const props2 = configDefaults[n];
1078
+ if (!props2) {
1079
+ if (prev) {
1080
+ DefaultProps.set(n, prev);
1081
+ }
1082
+ continue;
1083
+ }
1084
+ prev = (0, import_mergeProps.mergeProps)(prev || {}, props2, false, conf.inverseShorthands)[0];
1085
+ DefaultProps.set(n, prev);
1086
+ }
1087
+ const ourDefaultsMerged = DefaultProps.get(name);
1088
+ if (ourDefaultsMerged) {
1089
+ return (0, import_mergeProps.mergeProps)(props, ourDefaultsMerged, false, conf.inverseShorthands)[0];
1090
+ }
1091
+ return props;
1092
+ }
1093
+ const defaults = {
1094
+ left: 0,
1095
+ right: 0,
1096
+ top: 0,
1097
+ bottom: 0,
1098
+ opacity: 1,
1099
+ translateX: 0,
1100
+ translateY: 0,
1101
+ skew: 0,
1102
+ skewX: 0,
1103
+ skewY: 0,
1104
+ scale: 1,
1105
+ rotate: "0deg",
1106
+ rotateY: "0deg",
1107
+ rotateX: "0deg"
1108
+ };
1109
+ function ensureBaseHasDefaults(base, ...pseudos) {
1110
+ for (const pseudo of pseudos) {
1111
+ if (!pseudo)
1112
+ continue;
1113
+ for (const key in pseudo) {
1114
+ const val = pseudo[key];
1115
+ if (key === "transform") {
1116
+ if (typeof val === "string") {
1117
+ continue;
1118
+ }
1119
+ for (const t of val) {
1120
+ const tkey = Object.keys(t)[0];
1121
+ const defaultVal = defaults[tkey];
1122
+ const tDefaultVal = { [tkey]: defaultVal };
1123
+ if (!base.transform) {
1124
+ base.transform = [tDefaultVal];
1125
+ } else {
1126
+ if (!base.transform.find((x) => x[tkey])) {
1127
+ base.transform.push(tDefaultVal);
1128
+ }
1129
+ }
1130
+ }
1131
+ } else {
1132
+ if (!(key in base)) {
1133
+ base[key] = defaults[key];
1134
+ }
1135
+ }
1136
+ }
1137
+ }
1138
+ }
1139
+ function merge(base, next) {
1140
+ if (!next.transform || !base.transform) {
1141
+ Object.assign(base, next);
1142
+ return;
1143
+ }
1144
+ const { transform, ...rest } = next;
1145
+ Object.assign(base, rest);
1146
+ for (const t of transform) {
1147
+ const key = Object.keys(t)[0];
1148
+ const existing = base.transform.find((x) => key in x);
1149
+ if (existing) {
1150
+ existing[key] = t[key];
1151
+ } else {
1152
+ base.transform.push(t);
1153
+ }
1154
+ }
719
1155
  }
720
- __name(AbsoluteFill, "AbsoluteFill");
721
1156
  // Annotate the CommonJS export names for ESM import in node:
722
1157
  0 && (module.exports = {
723
- AbsoluteFill,
724
1158
  Spacer,
1159
+ Unspaced,
1160
+ accessibilityRoleToWebRole,
725
1161
  createComponent,
726
1162
  mouseUps,
1163
+ processIDRefList,
727
1164
  spacedChildren
728
1165
  });
729
1166
  //# sourceMappingURL=createComponent.js.map