@tamagui/core 1.2.4 → 1.2.5

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 (606) hide show
  1. package/README.md +4 -0
  2. package/dist/cjs/hooks/usePlatformMethods.js +48 -0
  3. package/dist/cjs/hooks/usePlatformMethods.js.map +7 -0
  4. package/dist/cjs/index.js +152 -75
  5. package/dist/cjs/index.js.map +3 -3
  6. package/dist/cjs/{types.js → reactNativeTypes.js} +3 -3
  7. package/dist/cjs/reactNativeTypes.js.map +7 -0
  8. package/dist/esm/hooks/usePlatformMethods.js +24 -0
  9. package/dist/esm/hooks/usePlatformMethods.js.map +7 -0
  10. package/dist/esm/index.js +157 -71
  11. package/dist/esm/index.js.map +2 -2
  12. package/dist/esm/reactNativeTypes.js +1 -0
  13. package/dist/esm/{types-rnw.js.map → reactNativeTypes.js.map} +0 -0
  14. package/package.json +5 -11
  15. package/src/hooks/usePlatformMethods.ts +26 -0
  16. package/src/index.ts +214 -71
  17. package/src/reactNativeTypes.ts +104 -0
  18. package/types/hooks/usePlatformMethods.d.ts +3 -0
  19. package/types/hooks/usePlatformMethods.d.ts.map +1 -0
  20. package/types/index.d.ts +6 -54
  21. package/types/index.d.ts.map +1 -1
  22. package/types/reactNativeTypes.d.ts +26 -0
  23. package/types/reactNativeTypes.d.ts.map +1 -0
  24. package/dist/cjs/Tamagui.js +0 -77
  25. package/dist/cjs/Tamagui.js.map +0 -7
  26. package/dist/cjs/addTheme.js +0 -78
  27. package/dist/cjs/addTheme.js.map +0 -7
  28. package/dist/cjs/config.js +0 -91
  29. package/dist/cjs/config.js.map +0 -7
  30. package/dist/cjs/constants/constants.js +0 -49
  31. package/dist/cjs/constants/constants.js.map +0 -7
  32. package/dist/cjs/constants/isDevTools.js +0 -37
  33. package/dist/cjs/constants/isDevTools.js.map +0 -7
  34. package/dist/cjs/contexts/ButtonNestingContext.js +0 -30
  35. package/dist/cjs/contexts/ButtonNestingContext.js.map +0 -7
  36. package/dist/cjs/contexts/FontLanguageContext.js +0 -30
  37. package/dist/cjs/contexts/FontLanguageContext.js.map +0 -7
  38. package/dist/cjs/contexts/TextAncestorContext.js +0 -30
  39. package/dist/cjs/contexts/TextAncestorContext.js.map +0 -7
  40. package/dist/cjs/createComponent.js +0 -993
  41. package/dist/cjs/createComponent.js.map +0 -7
  42. package/dist/cjs/createFont.js +0 -69
  43. package/dist/cjs/createFont.js.map +0 -7
  44. package/dist/cjs/createFont.web.test.js +0 -125
  45. package/dist/cjs/createFont.web.test.js.map +0 -7
  46. package/dist/cjs/createShorthands.js +0 -31
  47. package/dist/cjs/createShorthands.js.map +0 -7
  48. package/dist/cjs/createTamagui.js +0 -206
  49. package/dist/cjs/createTamagui.js.map +0 -7
  50. package/dist/cjs/createTheme.js +0 -31
  51. package/dist/cjs/createTheme.js.map +0 -7
  52. package/dist/cjs/createTokens.js +0 -39
  53. package/dist/cjs/createTokens.js.map +0 -7
  54. package/dist/cjs/createTokens.web.test.js +0 -28
  55. package/dist/cjs/createTokens.web.test.js.map +0 -7
  56. package/dist/cjs/createVariable.js +0 -111
  57. package/dist/cjs/createVariable.js.map +0 -7
  58. package/dist/cjs/createVariable.web.test.js +0 -7
  59. package/dist/cjs/createVariable.web.test.js.map +0 -7
  60. package/dist/cjs/createVariables.js +0 -60
  61. package/dist/cjs/createVariables.js.map +0 -7
  62. package/dist/cjs/helpers/RNComponents.js +0 -40
  63. package/dist/cjs/helpers/RNComponents.js.map +0 -7
  64. package/dist/cjs/helpers/ThemeManager.js +0 -234
  65. package/dist/cjs/helpers/ThemeManager.js.map +0 -7
  66. package/dist/cjs/helpers/ThemeManager.test.js +0 -465
  67. package/dist/cjs/helpers/ThemeManager.test.js.map +0 -7
  68. package/dist/cjs/helpers/ThemeManagerContext.js +0 -30
  69. package/dist/cjs/helpers/ThemeManagerContext.js.map +0 -7
  70. package/dist/cjs/helpers/createMediaStyle.js +0 -67
  71. package/dist/cjs/helpers/createMediaStyle.js.map +0 -7
  72. package/dist/cjs/helpers/createPropMapper.js +0 -423
  73. package/dist/cjs/helpers/createPropMapper.js.map +0 -7
  74. package/dist/cjs/helpers/createProxy.js +0 -43
  75. package/dist/cjs/helpers/createProxy.js.map +0 -7
  76. package/dist/cjs/helpers/expandStyle.js +0 -95
  77. package/dist/cjs/helpers/expandStyle.js.map +0 -7
  78. package/dist/cjs/helpers/expandStyles.js +0 -116
  79. package/dist/cjs/helpers/expandStyles.js.map +0 -7
  80. package/dist/cjs/helpers/extendStaticConfig.js +0 -91
  81. package/dist/cjs/helpers/extendStaticConfig.js.map +0 -7
  82. package/dist/cjs/helpers/fixNativeShadow.js +0 -30
  83. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -7
  84. package/dist/cjs/helpers/getAnimationDriver.js +0 -32
  85. package/dist/cjs/helpers/getAnimationDriver.js.map +0 -7
  86. package/dist/cjs/helpers/getExpandedShorthands.js +0 -40
  87. package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -7
  88. package/dist/cjs/helpers/getFontLanguage.js +0 -29
  89. package/dist/cjs/helpers/getFontLanguage.js.map +0 -7
  90. package/dist/cjs/helpers/getSplitStyles.js +0 -848
  91. package/dist/cjs/helpers/getSplitStyles.js.map +0 -7
  92. package/dist/cjs/helpers/getStylesAtomic.js +0 -226
  93. package/dist/cjs/helpers/getStylesAtomic.js.map +0 -7
  94. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -38
  95. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -7
  96. package/dist/cjs/helpers/getThemeCSSRules.js +0 -110
  97. package/dist/cjs/helpers/getThemeCSSRules.js.map +0 -7
  98. package/dist/cjs/helpers/getThemeCSSRules.native.js +0 -31
  99. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +0 -7
  100. package/dist/cjs/helpers/getVariantExtras.js +0 -92
  101. package/dist/cjs/helpers/getVariantExtras.js.map +0 -7
  102. package/dist/cjs/helpers/insertStyleRule.js +0 -218
  103. package/dist/cjs/helpers/insertStyleRule.js.map +0 -7
  104. package/dist/cjs/helpers/isObj.js +0 -29
  105. package/dist/cjs/helpers/isObj.js.map +0 -7
  106. package/dist/cjs/helpers/isTamaguiComponent.js +0 -32
  107. package/dist/cjs/helpers/isTamaguiComponent.js.map +0 -7
  108. package/dist/cjs/helpers/isTamaguiElement.js +0 -33
  109. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -7
  110. package/dist/cjs/helpers/matchMedia.js +0 -42
  111. package/dist/cjs/helpers/matchMedia.js.map +0 -7
  112. package/dist/cjs/helpers/matchMedia.native.js +0 -48
  113. package/dist/cjs/helpers/matchMedia.native.js.map +0 -7
  114. package/dist/cjs/helpers/mergeProps.js +0 -54
  115. package/dist/cjs/helpers/mergeProps.js.map +0 -7
  116. package/dist/cjs/helpers/mergeTransform.js +0 -47
  117. package/dist/cjs/helpers/mergeTransform.js.map +0 -7
  118. package/dist/cjs/helpers/normalizeColor.js +0 -71
  119. package/dist/cjs/helpers/normalizeColor.js.map +0 -7
  120. package/dist/cjs/helpers/normalizeValueWithProperty.js +0 -138
  121. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +0 -7
  122. package/dist/cjs/helpers/proxyThemeVariables.js +0 -40
  123. package/dist/cjs/helpers/proxyThemeVariables.js.map +0 -7
  124. package/dist/cjs/helpers/pseudoDescriptors.js +0 -53
  125. package/dist/cjs/helpers/pseudoDescriptors.js.map +0 -7
  126. package/dist/cjs/helpers/registerCSSVariable.js +0 -40
  127. package/dist/cjs/helpers/registerCSSVariable.js.map +0 -7
  128. package/dist/cjs/helpers/themeable.js +0 -62
  129. package/dist/cjs/helpers/themeable.js.map +0 -7
  130. package/dist/cjs/helpers/themes.js +0 -78
  131. package/dist/cjs/helpers/themes.js.map +0 -7
  132. package/dist/cjs/helpers/timer.js +0 -35
  133. package/dist/cjs/helpers/timer.js.map +0 -7
  134. package/dist/cjs/helpers/useShallowSetState.js +0 -59
  135. package/dist/cjs/helpers/useShallowSetState.js.map +0 -7
  136. package/dist/cjs/helpers/warnOnce.js +0 -38
  137. package/dist/cjs/helpers/warnOnce.js.map +0 -7
  138. package/dist/cjs/helpers/withStaticProperties.js +0 -32
  139. package/dist/cjs/helpers/withStaticProperties.js.map +0 -7
  140. package/dist/cjs/hooks/getThemeUnwrapped.js +0 -34
  141. package/dist/cjs/hooks/getThemeUnwrapped.js.map +0 -7
  142. package/dist/cjs/hooks/useId.js +0 -29
  143. package/dist/cjs/hooks/useId.js.map +0 -7
  144. package/dist/cjs/hooks/useIsTouchDevice.js +0 -33
  145. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -7
  146. package/dist/cjs/hooks/useMedia.js +0 -263
  147. package/dist/cjs/hooks/useMedia.js.map +0 -7
  148. package/dist/cjs/hooks/useSafeRef.js +0 -59
  149. package/dist/cjs/hooks/useSafeRef.js.map +0 -7
  150. package/dist/cjs/hooks/useServerHooks.js +0 -36
  151. package/dist/cjs/hooks/useServerHooks.js.map +0 -7
  152. package/dist/cjs/hooks/useStyle.js +0 -61
  153. package/dist/cjs/hooks/useStyle.js.map +0 -7
  154. package/dist/cjs/hooks/useTheme.js +0 -230
  155. package/dist/cjs/hooks/useTheme.js.map +0 -7
  156. package/dist/cjs/hooks/useThemeName.js +0 -52
  157. package/dist/cjs/hooks/useThemeName.js.map +0 -7
  158. package/dist/cjs/insertFont.js +0 -93
  159. package/dist/cjs/insertFont.js.map +0 -7
  160. package/dist/cjs/setupReactNative.js +0 -51
  161. package/dist/cjs/setupReactNative.js.map +0 -7
  162. package/dist/cjs/static.js +0 -20
  163. package/dist/cjs/static.js.map +0 -7
  164. package/dist/cjs/styled.js +0 -95
  165. package/dist/cjs/styled.js.map +0 -7
  166. package/dist/cjs/types-rnw.js +0 -17
  167. package/dist/cjs/types-rnw.js.map +0 -7
  168. package/dist/cjs/types.js.map +0 -7
  169. package/dist/cjs/updateTheme.js +0 -47
  170. package/dist/cjs/updateTheme.js.map +0 -7
  171. package/dist/cjs/views/FontLanguage.js +0 -41
  172. package/dist/cjs/views/FontLanguage.js.map +0 -7
  173. package/dist/cjs/views/FontLanguage.native.js +0 -35
  174. package/dist/cjs/views/FontLanguage.native.js.map +0 -7
  175. package/dist/cjs/views/FontLanguage.types.js +0 -17
  176. package/dist/cjs/views/FontLanguage.types.js.map +0 -7
  177. package/dist/cjs/views/Slot.js +0 -92
  178. package/dist/cjs/views/Slot.js.map +0 -7
  179. package/dist/cjs/views/Stack.js +0 -38
  180. package/dist/cjs/views/Stack.js.map +0 -7
  181. package/dist/cjs/views/Stack.web.test.js +0 -22
  182. package/dist/cjs/views/Stack.web.test.js.map +0 -7
  183. package/dist/cjs/views/TamaguiProvider.js +0 -90
  184. package/dist/cjs/views/TamaguiProvider.js.map +0 -7
  185. package/dist/cjs/views/Text.js +0 -94
  186. package/dist/cjs/views/Text.js.map +0 -7
  187. package/dist/cjs/views/Theme.js +0 -88
  188. package/dist/cjs/views/Theme.js.map +0 -7
  189. package/dist/cjs/views/ThemeProvider.js +0 -70
  190. package/dist/cjs/views/ThemeProvider.js.map +0 -7
  191. package/dist/esm/Tamagui.js +0 -41
  192. package/dist/esm/Tamagui.js.map +0 -7
  193. package/dist/esm/addTheme.js +0 -54
  194. package/dist/esm/addTheme.js.map +0 -7
  195. package/dist/esm/config.js +0 -58
  196. package/dist/esm/config.js.map +0 -7
  197. package/dist/esm/constants/constants.js +0 -22
  198. package/dist/esm/constants/constants.js.map +0 -7
  199. package/dist/esm/constants/isDevTools.js +0 -13
  200. package/dist/esm/constants/isDevTools.js.map +0 -7
  201. package/dist/esm/contexts/ButtonNestingContext.js +0 -6
  202. package/dist/esm/contexts/ButtonNestingContext.js.map +0 -7
  203. package/dist/esm/contexts/FontLanguageContext.js +0 -6
  204. package/dist/esm/contexts/FontLanguageContext.js.map +0 -7
  205. package/dist/esm/contexts/TextAncestorContext.js +0 -6
  206. package/dist/esm/contexts/TextAncestorContext.js.map +0 -7
  207. package/dist/esm/createComponent.js +0 -975
  208. package/dist/esm/createComponent.js.map +0 -7
  209. package/dist/esm/createFont.js +0 -45
  210. package/dist/esm/createFont.js.map +0 -7
  211. package/dist/esm/createFont.web.test.js +0 -124
  212. package/dist/esm/createFont.web.test.js.map +0 -7
  213. package/dist/esm/createShorthands.js +0 -7
  214. package/dist/esm/createShorthands.js.map +0 -7
  215. package/dist/esm/createTamagui.js +0 -190
  216. package/dist/esm/createTamagui.js.map +0 -7
  217. package/dist/esm/createTheme.js +0 -7
  218. package/dist/esm/createTheme.js.map +0 -7
  219. package/dist/esm/createTokens.js +0 -15
  220. package/dist/esm/createTokens.js.map +0 -7
  221. package/dist/esm/createTokens.web.test.js +0 -27
  222. package/dist/esm/createTokens.web.test.js.map +0 -7
  223. package/dist/esm/createVariable.js +0 -78
  224. package/dist/esm/createVariable.js.map +0 -7
  225. package/dist/esm/createVariable.web.test.js +0 -6
  226. package/dist/esm/createVariable.web.test.js.map +0 -7
  227. package/dist/esm/createVariables.js +0 -35
  228. package/dist/esm/createVariables.js.map +0 -7
  229. package/dist/esm/helpers/RNComponents.js +0 -16
  230. package/dist/esm/helpers/RNComponents.js.map +0 -7
  231. package/dist/esm/helpers/ThemeManager.js +0 -209
  232. package/dist/esm/helpers/ThemeManager.js.map +0 -7
  233. package/dist/esm/helpers/ThemeManager.test.js +0 -464
  234. package/dist/esm/helpers/ThemeManager.test.js.map +0 -7
  235. package/dist/esm/helpers/ThemeManagerContext.js +0 -6
  236. package/dist/esm/helpers/ThemeManagerContext.js.map +0 -7
  237. package/dist/esm/helpers/createMediaStyle.js +0 -42
  238. package/dist/esm/helpers/createMediaStyle.js.map +0 -7
  239. package/dist/esm/helpers/createPropMapper.js +0 -396
  240. package/dist/esm/helpers/createPropMapper.js.map +0 -7
  241. package/dist/esm/helpers/createProxy.js +0 -19
  242. package/dist/esm/helpers/createProxy.js.map +0 -7
  243. package/dist/esm/helpers/expandStyle.js +0 -71
  244. package/dist/esm/helpers/expandStyle.js.map +0 -7
  245. package/dist/esm/helpers/expandStyles.js +0 -90
  246. package/dist/esm/helpers/expandStyles.js.map +0 -7
  247. package/dist/esm/helpers/extendStaticConfig.js +0 -66
  248. package/dist/esm/helpers/extendStaticConfig.js.map +0 -7
  249. package/dist/esm/helpers/fixNativeShadow.js +0 -6
  250. package/dist/esm/helpers/fixNativeShadow.js.map +0 -7
  251. package/dist/esm/helpers/getAnimationDriver.js +0 -8
  252. package/dist/esm/helpers/getAnimationDriver.js.map +0 -7
  253. package/dist/esm/helpers/getExpandedShorthands.js +0 -16
  254. package/dist/esm/helpers/getExpandedShorthands.js.map +0 -7
  255. package/dist/esm/helpers/getFontLanguage.js +0 -5
  256. package/dist/esm/helpers/getFontLanguage.js.map +0 -7
  257. package/dist/esm/helpers/getSplitStyles.js +0 -847
  258. package/dist/esm/helpers/getSplitStyles.js.map +0 -7
  259. package/dist/esm/helpers/getStylesAtomic.js +0 -200
  260. package/dist/esm/helpers/getStylesAtomic.js.map +0 -7
  261. package/dist/esm/helpers/getStylesAtomic.native.js +0 -12
  262. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -7
  263. package/dist/esm/helpers/getThemeCSSRules.js +0 -86
  264. package/dist/esm/helpers/getThemeCSSRules.js.map +0 -7
  265. package/dist/esm/helpers/getThemeCSSRules.native.js +0 -7
  266. package/dist/esm/helpers/getThemeCSSRules.native.js.map +0 -7
  267. package/dist/esm/helpers/getVariantExtras.js +0 -67
  268. package/dist/esm/helpers/getVariantExtras.js.map +0 -7
  269. package/dist/esm/helpers/insertStyleRule.js +0 -186
  270. package/dist/esm/helpers/insertStyleRule.js.map +0 -7
  271. package/dist/esm/helpers/isObj.js +0 -5
  272. package/dist/esm/helpers/isObj.js.map +0 -7
  273. package/dist/esm/helpers/isTamaguiComponent.js +0 -8
  274. package/dist/esm/helpers/isTamaguiComponent.js.map +0 -7
  275. package/dist/esm/helpers/isTamaguiElement.js +0 -9
  276. package/dist/esm/helpers/isTamaguiElement.js.map +0 -7
  277. package/dist/esm/helpers/matchMedia.js +0 -17
  278. package/dist/esm/helpers/matchMedia.js.map +0 -7
  279. package/dist/esm/helpers/matchMedia.native.js +0 -23
  280. package/dist/esm/helpers/matchMedia.native.js.map +0 -7
  281. package/dist/esm/helpers/mergeProps.js +0 -30
  282. package/dist/esm/helpers/mergeProps.js.map +0 -7
  283. package/dist/esm/helpers/mergeTransform.js +0 -21
  284. package/dist/esm/helpers/mergeTransform.js.map +0 -7
  285. package/dist/esm/helpers/normalizeColor.js +0 -36
  286. package/dist/esm/helpers/normalizeColor.js.map +0 -7
  287. package/dist/esm/helpers/normalizeValueWithProperty.js +0 -113
  288. package/dist/esm/helpers/normalizeValueWithProperty.js.map +0 -7
  289. package/dist/esm/helpers/proxyThemeVariables.js +0 -16
  290. package/dist/esm/helpers/proxyThemeVariables.js.map +0 -7
  291. package/dist/esm/helpers/pseudoDescriptors.js +0 -29
  292. package/dist/esm/helpers/pseudoDescriptors.js.map +0 -7
  293. package/dist/esm/helpers/registerCSSVariable.js +0 -14
  294. package/dist/esm/helpers/registerCSSVariable.js.map +0 -7
  295. package/dist/esm/helpers/themeable.js +0 -28
  296. package/dist/esm/helpers/themeable.js.map +0 -7
  297. package/dist/esm/helpers/themes.js +0 -53
  298. package/dist/esm/helpers/themes.js.map +0 -7
  299. package/dist/esm/helpers/timer.js +0 -11
  300. package/dist/esm/helpers/timer.js.map +0 -7
  301. package/dist/esm/helpers/useShallowSetState.js +0 -35
  302. package/dist/esm/helpers/useShallowSetState.js.map +0 -7
  303. package/dist/esm/helpers/warnOnce.js +0 -14
  304. package/dist/esm/helpers/warnOnce.js.map +0 -7
  305. package/dist/esm/helpers/withStaticProperties.js +0 -8
  306. package/dist/esm/helpers/withStaticProperties.js.map +0 -7
  307. package/dist/esm/hooks/getThemeUnwrapped.js +0 -9
  308. package/dist/esm/hooks/getThemeUnwrapped.js.map +0 -7
  309. package/dist/esm/hooks/useId.js +0 -5
  310. package/dist/esm/hooks/useId.js.map +0 -7
  311. package/dist/esm/hooks/useIsTouchDevice.js +0 -9
  312. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -7
  313. package/dist/esm/hooks/useMedia.js +0 -225
  314. package/dist/esm/hooks/useMedia.js.map +0 -7
  315. package/dist/esm/hooks/useSafeRef.js +0 -35
  316. package/dist/esm/hooks/useSafeRef.js.map +0 -7
  317. package/dist/esm/hooks/useServerHooks.js +0 -11
  318. package/dist/esm/hooks/useServerHooks.js.map +0 -7
  319. package/dist/esm/hooks/useStyle.js +0 -37
  320. package/dist/esm/hooks/useStyle.js.map +0 -7
  321. package/dist/esm/hooks/useTheme.js +0 -205
  322. package/dist/esm/hooks/useTheme.js.map +0 -7
  323. package/dist/esm/hooks/useThemeName.js +0 -28
  324. package/dist/esm/hooks/useThemeName.js.map +0 -7
  325. package/dist/esm/insertFont.js +0 -67
  326. package/dist/esm/insertFont.js.map +0 -7
  327. package/dist/esm/setupReactNative.js +0 -25
  328. package/dist/esm/setupReactNative.js.map +0 -7
  329. package/dist/esm/static.js +0 -3
  330. package/dist/esm/static.js.map +0 -7
  331. package/dist/esm/styled.js +0 -71
  332. package/dist/esm/styled.js.map +0 -7
  333. package/dist/esm/types-rnw.js +0 -1
  334. package/dist/esm/types.js +0 -1
  335. package/dist/esm/types.js.map +0 -7
  336. package/dist/esm/updateTheme.js +0 -23
  337. package/dist/esm/updateTheme.js.map +0 -7
  338. package/dist/esm/views/FontLanguage.js +0 -17
  339. package/dist/esm/views/FontLanguage.js.map +0 -7
  340. package/dist/esm/views/FontLanguage.native.js +0 -11
  341. package/dist/esm/views/FontLanguage.native.js.map +0 -7
  342. package/dist/esm/views/FontLanguage.types.js +0 -1
  343. package/dist/esm/views/FontLanguage.types.js.map +0 -7
  344. package/dist/esm/views/Slot.js +0 -71
  345. package/dist/esm/views/Slot.js.map +0 -7
  346. package/dist/esm/views/Stack.js +0 -14
  347. package/dist/esm/views/Stack.js.map +0 -7
  348. package/dist/esm/views/Stack.web.test.js +0 -21
  349. package/dist/esm/views/Stack.web.test.js.map +0 -7
  350. package/dist/esm/views/TamaguiProvider.js +0 -56
  351. package/dist/esm/views/TamaguiProvider.js.map +0 -7
  352. package/dist/esm/views/Text.js +0 -70
  353. package/dist/esm/views/Text.js.map +0 -7
  354. package/dist/esm/views/Theme.js +0 -63
  355. package/dist/esm/views/Theme.js.map +0 -7
  356. package/dist/esm/views/ThemeProvider.js +0 -45
  357. package/dist/esm/views/ThemeProvider.js.map +0 -7
  358. package/src/Tamagui.ts +0 -48
  359. package/src/__snapshots__/createTokens.test.ts.snap +0 -772
  360. package/src/__snapshots__/createTokens.web.test.tsx.snap +0 -772
  361. package/src/addTheme.ts +0 -65
  362. package/src/config.ts +0 -62
  363. package/src/constants/constants.ts +0 -17
  364. package/src/constants/isDevTools.ts +0 -12
  365. package/src/contexts/ButtonNestingContext.tsx +0 -3
  366. package/src/contexts/FontLanguageContext.tsx +0 -5
  367. package/src/contexts/TextAncestorContext.tsx +0 -3
  368. package/src/createComponent.tsx +0 -1293
  369. package/src/createFont.ts +0 -50
  370. package/src/createShorthands.ts +0 -7
  371. package/src/createTamagui.ts +0 -253
  372. package/src/createTheme.ts +0 -13
  373. package/src/createTokens.ts +0 -46
  374. package/src/createVariable.ts +0 -93
  375. package/src/createVariables.ts +0 -55
  376. package/src/helpers/RNComponents.tsx +0 -14
  377. package/src/helpers/ThemeManager.tsx +0 -285
  378. package/src/helpers/ThemeManagerContext.tsx +0 -5
  379. package/src/helpers/createMediaStyle.ts +0 -56
  380. package/src/helpers/createPropMapper.ts +0 -562
  381. package/src/helpers/createProxy.ts +0 -16
  382. package/src/helpers/expandStyle.ts +0 -82
  383. package/src/helpers/expandStyles.ts +0 -107
  384. package/src/helpers/extendStaticConfig.ts +0 -78
  385. package/src/helpers/fixNativeShadow.tsx +0 -2
  386. package/src/helpers/getAnimationDriver.tsx +0 -5
  387. package/src/helpers/getExpandedShorthands.ts +0 -17
  388. package/src/helpers/getFontLanguage.ts +0 -2
  389. package/src/helpers/getSplitStyles.tsx +0 -1137
  390. package/src/helpers/getStylesAtomic.native.ts +0 -8
  391. package/src/helpers/getStylesAtomic.ts +0 -274
  392. package/src/helpers/getThemeCSSRules.native.ts +0 -3
  393. package/src/helpers/getThemeCSSRules.ts +0 -120
  394. package/src/helpers/getVariantExtras.tsx +0 -85
  395. package/src/helpers/insertStyleRule.tsx +0 -220
  396. package/src/helpers/isObj.ts +0 -1
  397. package/src/helpers/isTamaguiComponent.tsx +0 -11
  398. package/src/helpers/isTamaguiElement.tsx +0 -15
  399. package/src/helpers/matchMedia.native.ts +0 -23
  400. package/src/helpers/matchMedia.ts +0 -16
  401. package/src/helpers/mergeProps.ts +0 -56
  402. package/src/helpers/mergeTransform.ts +0 -30
  403. package/src/helpers/normalizeColor.ts +0 -38
  404. package/src/helpers/normalizeValueWithProperty.ts +0 -129
  405. package/src/helpers/proxyThemeVariables.tsx +0 -15
  406. package/src/helpers/pseudoDescriptors.ts +0 -40
  407. package/src/helpers/registerCSSVariable.ts +0 -13
  408. package/src/helpers/themeable.tsx +0 -44
  409. package/src/helpers/themes.ts +0 -67
  410. package/src/helpers/timer.ts +0 -9
  411. package/src/helpers/useShallowSetState.tsx +0 -41
  412. package/src/helpers/warnOnce.tsx +0 -11
  413. package/src/helpers/withStaticProperties.tsx +0 -7
  414. package/src/hooks/getThemeUnwrapped.tsx +0 -5
  415. package/src/hooks/useId.tsx +0 -1
  416. package/src/hooks/useIsTouchDevice.tsx +0 -6
  417. package/src/hooks/useMedia.tsx +0 -298
  418. package/src/hooks/useSafeRef.ts +0 -45
  419. package/src/hooks/useServerHooks.tsx +0 -12
  420. package/src/hooks/useStyle.tsx +0 -49
  421. package/src/hooks/useTheme.tsx +0 -274
  422. package/src/hooks/useThemeName.tsx +0 -27
  423. package/src/insertFont.ts +0 -73
  424. package/src/setupReactNative.ts +0 -22
  425. package/src/static.ts +0 -5
  426. package/src/styled.tsx +0 -195
  427. package/src/types-rnw.tsx +0 -162
  428. package/src/types.tsx +0 -1405
  429. package/src/updateTheme.ts +0 -26
  430. package/src/views/FontLanguage.native.tsx +0 -12
  431. package/src/views/FontLanguage.tsx +0 -16
  432. package/src/views/FontLanguage.types.ts +0 -13
  433. package/src/views/Slot.tsx +0 -102
  434. package/src/views/Stack.tsx +0 -25
  435. package/src/views/TamaguiProvider.tsx +0 -65
  436. package/src/views/Text.tsx +0 -88
  437. package/src/views/Theme.tsx +0 -83
  438. package/src/views/ThemeProvider.tsx +0 -55
  439. package/types/Tamagui.d.ts +0 -30
  440. package/types/Tamagui.d.ts.map +0 -1
  441. package/types/addTheme.d.ts +0 -32
  442. package/types/addTheme.d.ts.map +0 -1
  443. package/types/config.d.ts +0 -49
  444. package/types/config.d.ts.map +0 -1
  445. package/types/constants/constants.d.ts +0 -21
  446. package/types/constants/constants.d.ts.map +0 -1
  447. package/types/constants/isDevTools.d.ts +0 -2
  448. package/types/constants/isDevTools.d.ts.map +0 -1
  449. package/types/contexts/ButtonNestingContext.d.ts +0 -3
  450. package/types/contexts/ButtonNestingContext.d.ts.map +0 -1
  451. package/types/contexts/FontLanguageContext.d.ts +0 -5
  452. package/types/contexts/FontLanguageContext.d.ts.map +0 -1
  453. package/types/contexts/TextAncestorContext.d.ts +0 -3
  454. package/types/contexts/TextAncestorContext.d.ts.map +0 -1
  455. package/types/createComponent.d.ts +0 -23
  456. package/types/createComponent.d.ts.map +0 -1
  457. package/types/createFont.d.ts +0 -3
  458. package/types/createFont.d.ts.map +0 -1
  459. package/types/createFont.web.test.d.ts +0 -2
  460. package/types/createFont.web.test.d.ts.map +0 -1
  461. package/types/createShorthands.d.ts +0 -3
  462. package/types/createShorthands.d.ts.map +0 -1
  463. package/types/createTamagui.d.ts +0 -3
  464. package/types/createTamagui.d.ts.map +0 -1
  465. package/types/createTheme.d.ts +0 -7
  466. package/types/createTheme.d.ts.map +0 -1
  467. package/types/createTokens.d.ts +0 -28
  468. package/types/createTokens.d.ts.map +0 -1
  469. package/types/createTokens.web.test.d.ts +0 -2
  470. package/types/createTokens.web.test.d.ts.map +0 -1
  471. package/types/createVariable.d.ts +0 -26
  472. package/types/createVariable.d.ts.map +0 -1
  473. package/types/createVariable.web.test.d.ts +0 -2
  474. package/types/createVariable.web.test.d.ts.map +0 -1
  475. package/types/createVariables.d.ts +0 -11
  476. package/types/createVariables.d.ts.map +0 -1
  477. package/types/helpers/RNComponents.d.ts +0 -2
  478. package/types/helpers/RNComponents.d.ts.map +0 -1
  479. package/types/helpers/ThemeManager.d.ts +0 -36
  480. package/types/helpers/ThemeManager.d.ts.map +0 -1
  481. package/types/helpers/ThemeManager.test.d.ts +0 -2
  482. package/types/helpers/ThemeManager.test.d.ts.map +0 -1
  483. package/types/helpers/ThemeManagerContext.d.ts +0 -4
  484. package/types/helpers/ThemeManagerContext.d.ts.map +0 -1
  485. package/types/helpers/createMediaStyle.d.ts +0 -6
  486. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  487. package/types/helpers/createPropMapper.d.ts +0 -7
  488. package/types/helpers/createPropMapper.d.ts.map +0 -1
  489. package/types/helpers/createProxy.d.ts +0 -2
  490. package/types/helpers/createProxy.d.ts.map +0 -1
  491. package/types/helpers/expandStyle.d.ts +0 -6
  492. package/types/helpers/expandStyle.d.ts.map +0 -1
  493. package/types/helpers/expandStyles.d.ts +0 -26
  494. package/types/helpers/expandStyles.d.ts.map +0 -1
  495. package/types/helpers/extendStaticConfig.d.ts +0 -4
  496. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  497. package/types/helpers/fixNativeShadow.d.ts +0 -2
  498. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  499. package/types/helpers/getAnimationDriver.d.ts +0 -6
  500. package/types/helpers/getAnimationDriver.d.ts.map +0 -1
  501. package/types/helpers/getExpandedShorthands.d.ts +0 -3
  502. package/types/helpers/getExpandedShorthands.d.ts.map +0 -1
  503. package/types/helpers/getFontLanguage.d.ts +0 -2
  504. package/types/helpers/getFontLanguage.d.ts.map +0 -1
  505. package/types/helpers/getSplitStyles.d.ts +0 -43
  506. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  507. package/types/helpers/getStylesAtomic.d.ts +0 -18
  508. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  509. package/types/helpers/getStylesAtomic.native.d.ts +0 -4
  510. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  511. package/types/helpers/getThemeCSSRules.d.ts +0 -8
  512. package/types/helpers/getThemeCSSRules.d.ts.map +0 -1
  513. package/types/helpers/getThemeCSSRules.native.d.ts +0 -2
  514. package/types/helpers/getThemeCSSRules.native.d.ts.map +0 -1
  515. package/types/helpers/getVariantExtras.d.ts +0 -5
  516. package/types/helpers/getVariantExtras.d.ts.map +0 -1
  517. package/types/helpers/insertStyleRule.d.ts +0 -13
  518. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  519. package/types/helpers/isObj.d.ts +0 -2
  520. package/types/helpers/isObj.d.ts.map +0 -1
  521. package/types/helpers/isTamaguiComponent.d.ts +0 -5
  522. package/types/helpers/isTamaguiComponent.d.ts.map +0 -1
  523. package/types/helpers/isTamaguiElement.d.ts +0 -7
  524. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  525. package/types/helpers/matchMedia.d.ts +0 -6
  526. package/types/helpers/matchMedia.d.ts.map +0 -1
  527. package/types/helpers/matchMedia.native.d.ts +0 -4
  528. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  529. package/types/helpers/mergeProps.d.ts +0 -17
  530. package/types/helpers/mergeProps.d.ts.map +0 -1
  531. package/types/helpers/mergeTransform.d.ts +0 -9
  532. package/types/helpers/mergeTransform.d.ts.map +0 -1
  533. package/types/helpers/normalizeColor.d.ts +0 -4
  534. package/types/helpers/normalizeColor.d.ts.map +0 -1
  535. package/types/helpers/normalizeValueWithProperty.d.ts +0 -7
  536. package/types/helpers/normalizeValueWithProperty.d.ts.map +0 -1
  537. package/types/helpers/proxyThemeVariables.d.ts +0 -2
  538. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  539. package/types/helpers/pseudoDescriptors.d.ts +0 -10
  540. package/types/helpers/pseudoDescriptors.d.ts.map +0 -1
  541. package/types/helpers/registerCSSVariable.d.ts +0 -5
  542. package/types/helpers/registerCSSVariable.d.ts.map +0 -1
  543. package/types/helpers/themeable.d.ts +0 -12
  544. package/types/helpers/themeable.d.ts.map +0 -1
  545. package/types/helpers/themes.d.ts +0 -4
  546. package/types/helpers/themes.d.ts.map +0 -1
  547. package/types/helpers/timer.d.ts +0 -2
  548. package/types/helpers/timer.d.ts.map +0 -1
  549. package/types/helpers/useShallowSetState.d.ts +0 -5
  550. package/types/helpers/useShallowSetState.d.ts.map +0 -1
  551. package/types/helpers/warnOnce.d.ts +0 -2
  552. package/types/helpers/warnOnce.d.ts.map +0 -1
  553. package/types/helpers/withStaticProperties.d.ts +0 -2
  554. package/types/helpers/withStaticProperties.d.ts.map +0 -1
  555. package/types/hooks/getThemeUnwrapped.d.ts +0 -3
  556. package/types/hooks/getThemeUnwrapped.d.ts.map +0 -1
  557. package/types/hooks/useId.d.ts +0 -2
  558. package/types/hooks/useId.d.ts.map +0 -1
  559. package/types/hooks/useIsTouchDevice.d.ts +0 -2
  560. package/types/hooks/useIsTouchDevice.d.ts.map +0 -1
  561. package/types/hooks/useMedia.d.ts +0 -33
  562. package/types/hooks/useMedia.d.ts.map +0 -1
  563. package/types/hooks/useSafeRef.d.ts +0 -4
  564. package/types/hooks/useSafeRef.d.ts.map +0 -1
  565. package/types/hooks/useServerHooks.d.ts +0 -4
  566. package/types/hooks/useServerHooks.d.ts.map +0 -1
  567. package/types/hooks/useStyle.d.ts +0 -8
  568. package/types/hooks/useStyle.d.ts.map +0 -1
  569. package/types/hooks/useTheme.d.ts +0 -25
  570. package/types/hooks/useTheme.d.ts.map +0 -1
  571. package/types/hooks/useThemeName.d.ts +0 -5
  572. package/types/hooks/useThemeName.d.ts.map +0 -1
  573. package/types/insertFont.d.ts +0 -9
  574. package/types/insertFont.d.ts.map +0 -1
  575. package/types/setupReactNative.d.ts +0 -5
  576. package/types/setupReactNative.d.ts.map +0 -1
  577. package/types/static.d.ts +0 -3
  578. package/types/static.d.ts.map +0 -1
  579. package/types/styled.d.ts +0 -20
  580. package/types/styled.d.ts.map +0 -1
  581. package/types/types-rnw.d.ts +0 -74
  582. package/types/types-rnw.d.ts.map +0 -1
  583. package/types/types.d.ts +0 -673
  584. package/types/types.d.ts.map +0 -1
  585. package/types/updateTheme.d.ts +0 -30
  586. package/types/updateTheme.d.ts.map +0 -1
  587. package/types/views/FontLanguage.d.ts +0 -4
  588. package/types/views/FontLanguage.d.ts.map +0 -1
  589. package/types/views/FontLanguage.native.d.ts +0 -4
  590. package/types/views/FontLanguage.native.d.ts.map +0 -1
  591. package/types/views/FontLanguage.types.d.ts +0 -11
  592. package/types/views/FontLanguage.types.d.ts.map +0 -1
  593. package/types/views/Slot.d.ts +0 -11
  594. package/types/views/Slot.d.ts.map +0 -1
  595. package/types/views/Stack.d.ts +0 -4
  596. package/types/views/Stack.d.ts.map +0 -1
  597. package/types/views/Stack.web.test.d.ts +0 -2
  598. package/types/views/Stack.web.test.d.ts.map +0 -1
  599. package/types/views/TamaguiProvider.d.ts +0 -4
  600. package/types/views/TamaguiProvider.d.ts.map +0 -1
  601. package/types/views/Text.d.ts +0 -4
  602. package/types/views/Text.d.ts.map +0 -1
  603. package/types/views/Theme.d.ts +0 -8
  604. package/types/views/Theme.d.ts.map +0 -1
  605. package/types/views/ThemeProvider.d.ts +0 -12
  606. package/types/views/ThemeProvider.d.ts.map +0 -1
@@ -1,975 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useComposedRefs } from "@tamagui/compose-refs";
3
- import {
4
- isClient,
5
- isRSC,
6
- isServer,
7
- isWeb,
8
- useIsomorphicLayoutEffect
9
- } from "@tamagui/constants";
10
- import {
11
- composeEventHandlers,
12
- stylePropsView,
13
- validPseudoKeys,
14
- validStyles
15
- } from "@tamagui/helpers";
16
- import { useResponderEvents } from "@tamagui/react-native-use-responder-events";
17
- import React, {
18
- Children,
19
- Fragment,
20
- createElement,
21
- forwardRef,
22
- memo,
23
- useCallback,
24
- useContext,
25
- useEffect,
26
- useRef
27
- } from "react";
28
- import { onConfiguredOnce } from "./config";
29
- import { stackDefaultStyles } from "./constants/constants";
30
- import { FontLanguageContext } from "./contexts/FontLanguageContext";
31
- import { TextAncestorContext } from "./contexts/TextAncestorContext";
32
- import { didGetVariableValue, setDidGetVariableValue } from "./createVariable";
33
- import { extendStaticConfig, parseStaticConfig } from "./helpers/extendStaticConfig";
34
- import { getRect } from "./helpers/getRect";
35
- import { useSplitStyles } from "./helpers/getSplitStyles";
36
- import { getAllSelectors } from "./helpers/insertStyleRule";
37
- import { mergeProps } from "./helpers/mergeProps";
38
- import { proxyThemeVariables } from "./helpers/proxyThemeVariables";
39
- import { useShallowSetState } from "./helpers/useShallowSetState";
40
- import { measureLayout, useElementLayout } from "./hooks/useElementLayout";
41
- import { setMediaShouldUpdate, useMedia } from "./hooks/useMedia";
42
- import { useServerRef, useServerState } from "./hooks/useServerHooks";
43
- import { useThemeWithState } from "./hooks/useTheme";
44
- import { usePressability } from "./vendor/Pressability";
45
- import { Slot, mergeEvent } from "./views/Slot";
46
- import { useThemedChildren } from "./views/Theme";
47
- process.env.TAMAGUI_TARGET;
48
- const defaultComponentState = {
49
- hover: false,
50
- press: false,
51
- pressIn: false,
52
- focus: false,
53
- unmounted: true
54
- };
55
- const defaultComponentStateMounted = {
56
- ...defaultComponentState,
57
- unmounted: false
58
- };
59
- let tamaguiConfig;
60
- let AnimatedText;
61
- let AnimatedView;
62
- let initialTheme;
63
- const mouseUps = /* @__PURE__ */ new Set();
64
- if (typeof document !== "undefined") {
65
- const cancelTouches = () => {
66
- mouseUps.forEach((x) => x());
67
- mouseUps.clear();
68
- };
69
- addEventListener("mouseup", cancelTouches);
70
- addEventListener("touchend", cancelTouches);
71
- addEventListener("touchcancel", cancelTouches);
72
- }
73
- function mergeShorthands({ defaultProps }, { shorthands }) {
74
- for (const key of Object.keys(defaultProps)) {
75
- defaultProps[shorthands[key] || key] = defaultProps[key];
76
- }
77
- }
78
- let BaseText;
79
- let BaseView;
80
- if (process.env.TAMAGUI_TARGET === "native") {
81
- const native = require("react-native");
82
- BaseText = native.Text || native.default.Text;
83
- BaseView = native.View || native.default.View;
84
- }
85
- function createComponent(configIn, ParentComponent) {
86
- const staticConfig = (() => {
87
- const next = extendStaticConfig(configIn, ParentComponent);
88
- if ("parsed" in next) {
89
- return next;
90
- } else {
91
- return parseStaticConfig(next);
92
- }
93
- })();
94
- const defaultComponentClassName = `is_${staticConfig.componentName}`;
95
- let tamaguiDefaultProps;
96
- let defaultTag;
97
- const component = forwardRef((propsIn, forwardedRef) => {
98
- var _a, _b, _c, _d, _e, _f, _g;
99
- if (process.env.NODE_ENV === "test") {
100
- if (propsIn["data-test-renders"]) {
101
- propsIn["data-test-renders"]["current"] ??= 0;
102
- propsIn["data-test-renders"]["current"] += 1;
103
- }
104
- }
105
- let props;
106
- if (tamaguiDefaultProps && !propsIn.asChild) {
107
- props = mergeProps(tamaguiDefaultProps, propsIn)[0];
108
- } else {
109
- props = propsIn;
110
- }
111
- const debugProp = props["debug"];
112
- const { Component, isText, isZStack } = staticConfig;
113
- const componentName = props.componentName || staticConfig.componentName;
114
- const componentClassName = props.asChild ? "" : props.componentName ? `is_${props.componentName}` : defaultComponentClassName;
115
- const animationsConfig = tamaguiConfig.animations;
116
- const useAnimations = animationsConfig == null ? void 0 : animationsConfig.useAnimations;
117
- const avoidClassesWhileAnimating = animationsConfig.isReactNative;
118
- const hasEnterStyle = !!props.enterStyle;
119
- const needsMount = Boolean(
120
- (isWeb ? isClient : true) && (hasEnterStyle || props.animation)
121
- );
122
- const states = useServerState(
123
- needsMount ? defaultComponentState : defaultComponentStateMounted
124
- );
125
- const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0];
126
- const setState = states[1];
127
- const setStateShallow = useShallowSetState(setState, debugProp, componentName);
128
- const stateRef = useRef(
129
- void 0
130
- );
131
- stateRef.current ??= {};
132
- const isAnimated = (() => {
133
- const next = !!(useAnimations && props.animation);
134
- if (next && !stateRef.current.hasAnimated) {
135
- stateRef.current.hasAnimated = true;
136
- }
137
- return next || stateRef.current.hasAnimated;
138
- })();
139
- const usePresence = (_a = tamaguiConfig.animations) == null ? void 0 : _a.usePresence;
140
- const presence = !isRSC && isAnimated ? usePresence() : null;
141
- if (isAnimated && presence) {
142
- const presenceState = presence[2];
143
- if (presenceState) {
144
- if (state.unmounted && presenceState.enterVariant) {
145
- props[presenceState.enterVariant] = true;
146
- }
147
- if (!presenceState.isPresent && presenceState.exitVariant) {
148
- props[presenceState.exitVariant] = true;
149
- }
150
- }
151
- }
152
- const isReactNative = Boolean(
153
- staticConfig.isReactNative || isAnimated && tamaguiConfig.animations.isReactNative
154
- );
155
- if (process.env.NODE_ENV === "development") {
156
- if (debugProp) {
157
- const name = `${componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]"}`;
158
- const type = isReactNative ? "(rnw)" : "";
159
- const dataIs = propsIn["data-is"] || "";
160
- const banner = `${name}${dataIs ? ` ${dataIs}` : ""} ${type}`;
161
- console.group(`%c ${banner}`, "background: yellow;");
162
- if (!isServer) {
163
- console.log("state", state);
164
- }
165
- }
166
- }
167
- const shouldAvoidClasses = !isWeb || !!(props.animation && avoidClassesWhileAnimating) || !staticConfig.acceptsClassName;
168
- const shouldForcePseudo = !!propsIn.forceStyle;
169
- const noClassNames = shouldAvoidClasses || shouldForcePseudo;
170
- const themeState = useThemeWithState({
171
- name: props.theme,
172
- componentName,
173
- reset: props.reset,
174
- inverse: props.themeInverse,
175
- // @ts-expect-error
176
- disable: props["data-themeable"],
177
- debug: props.debug,
178
- shouldUpdate: () => !!stateRef.current.didAccessThemeVariableValue
179
- });
180
- const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false);
181
- const languageContext = isRSC ? null : useContext(FontLanguageContext);
182
- const isDisabled = props.disabled ?? ((_b = props.accessibilityState) == null ? void 0 : _b.disabled);
183
- const isTaggable = !Component || typeof Component === "string";
184
- const element = isWeb ? isTaggable ? props.tag || defaultTag || Component : Component : Component;
185
- const BaseTextComponent = BaseText || element || "span";
186
- const BaseViewComponent = BaseView || element || (hasTextAncestor ? "span" : "div");
187
- let elementType = isText ? (isAnimated ? AnimatedText : null) || BaseTextComponent : (isAnimated ? AnimatedView : null) || BaseViewComponent;
188
- elementType = Component || elementType;
189
- const isStringElement = typeof elementType === "string";
190
- const isExiting = (presence == null ? void 0 : presence[0]) === false;
191
- const mediaState = useMedia(
192
- // @ts-ignore, we just pass a stable object so we can get it later with
193
- // should match to the one used in `setMediaShouldUpdate` below
194
- stateRef,
195
- debugProp ? { props, staticConfig } : null
196
- );
197
- setDidGetVariableValue(false);
198
- const splitStyles = useSplitStyles(
199
- props,
200
- staticConfig,
201
- themeState.theme,
202
- {
203
- ...state,
204
- mediaState,
205
- noClassNames,
206
- dynamicStylesInline: noClassNames,
207
- hasTextAncestor,
208
- resolveVariablesAs: "auto",
209
- isExiting
210
- },
211
- null,
212
- languageContext || void 0,
213
- elementType,
214
- debugProp
215
- );
216
- const isMediaSpaced = Array.isArray(splitStyles.hasMedia);
217
- const shouldListenForMedia = didGetVariableValue() || isMediaSpaced || noClassNames && splitStyles.hasMedia === true;
218
- setMediaShouldUpdate(stateRef, {
219
- enabled: shouldListenForMedia,
220
- keys: noClassNames && isMediaSpaced ? splitStyles.hasMedia : null
221
- });
222
- const hostRef = useServerRef(null);
223
- const isAnimatedReactNativeWeb = isAnimated && avoidClassesWhileAnimating;
224
- if (process.env.NODE_ENV === "development") {
225
- if (!process.env.TAMAGUI_TARGET) {
226
- console.error(
227
- `No process.env.TAMAGUI_TARGET set, please set it to "native" or "web".`
228
- );
229
- }
230
- if (debugProp) {
231
- console.groupCollapsed("props");
232
- console.log("props in", propsIn, "mapped to", props, "in order", Object.keys(props));
233
- console.log("splitStyles", splitStyles);
234
- console.log("shouldListenForMedia", shouldListenForMedia);
235
- console.log("className", Object.values(splitStyles.classNames));
236
- if (isClient) {
237
- console.log("ref", hostRef, "(click to view)");
238
- }
239
- console.groupEnd();
240
- if (debugProp === "break") {
241
- debugger;
242
- }
243
- }
244
- }
245
- const {
246
- viewProps: viewPropsIn,
247
- pseudos,
248
- style: splitStylesStyle,
249
- classNames,
250
- space
251
- } = splitStyles;
252
- const propsWithAnimation = props;
253
- let animationStyles;
254
- if (!isRSC && isAnimated && useAnimations) {
255
- const animations = useAnimations({
256
- props: propsWithAnimation,
257
- style: splitStylesStyle,
258
- presence,
259
- state,
260
- pseudos: pseudos || null,
261
- onDidAnimate: props.onDidAnimate,
262
- hostRef,
263
- staticConfig
264
- });
265
- if (animations) {
266
- animationStyles = animations.style;
267
- }
268
- }
269
- const {
270
- hitSlop,
271
- asChild,
272
- children,
273
- onPress,
274
- onPressIn,
275
- onPressOut,
276
- onHoverIn,
277
- onHoverOut,
278
- themeShallow,
279
- spaceDirection: _spaceDirection,
280
- disabled: disabledProp,
281
- onMouseUp,
282
- onMouseDown,
283
- onMouseEnter,
284
- onMouseLeave,
285
- hrefAttrs,
286
- separator,
287
- // ignore from here on out
288
- forceStyle: _forceStyle,
289
- // @ts-ignore for next/link compat etc
290
- onClick,
291
- theme: _themeProp,
292
- // @ts-ignore
293
- defaultVariants,
294
- ...nonTamaguiProps
295
- } = viewPropsIn;
296
- const disabled = props.accessibilityState != null && props.accessibilityState.disabled === true || props.accessibilityDisabled;
297
- let viewProps;
298
- if (process.env.TAMAGUI_TARGET === "web" && !isReactNative) {
299
- const {
300
- // event props
301
- onMoveShouldSetResponder,
302
- onMoveShouldSetResponderCapture,
303
- onResponderEnd,
304
- onResponderGrant,
305
- onResponderMove,
306
- onResponderReject,
307
- onResponderRelease,
308
- onResponderStart,
309
- onResponderTerminate,
310
- onResponderTerminationRequest,
311
- onScrollShouldSetResponder,
312
- onScrollShouldSetResponderCapture,
313
- onSelectionChangeShouldSetResponder,
314
- onSelectionChangeShouldSetResponderCapture,
315
- onStartShouldSetResponder,
316
- onStartShouldSetResponderCapture,
317
- // android
318
- collapsable,
319
- focusable,
320
- // deprecated,
321
- accessible,
322
- accessibilityDisabled,
323
- onLayout,
324
- ...webProps
325
- } = nonTamaguiProps;
326
- viewProps = webProps;
327
- if (!isRSC) {
328
- usePlatformMethods(hostRef);
329
- useElementLayout(hostRef, onLayout);
330
- useResponderEvents(hostRef, {
331
- onMoveShouldSetResponder,
332
- onMoveShouldSetResponderCapture,
333
- onResponderEnd,
334
- onResponderGrant,
335
- onResponderMove,
336
- onResponderReject,
337
- onResponderRelease,
338
- onResponderStart,
339
- onResponderTerminate,
340
- onResponderTerminationRequest,
341
- onScrollShouldSetResponder,
342
- onScrollShouldSetResponderCapture,
343
- onSelectionChangeShouldSetResponder,
344
- onSelectionChangeShouldSetResponderCapture,
345
- onStartShouldSetResponder,
346
- onStartShouldSetResponderCapture
347
- });
348
- }
349
- if (viewProps.href !== void 0 && hrefAttrs !== void 0) {
350
- const { download, rel, target } = hrefAttrs;
351
- if (download != null) {
352
- viewProps.download = download;
353
- }
354
- if (rel != null) {
355
- viewProps.rel = rel;
356
- }
357
- if (typeof target === "string") {
358
- viewProps.target = target.charAt(0) !== "_" ? `_${target}` : target;
359
- }
360
- }
361
- if (!viewProps.tabIndex) {
362
- const _focusable = focusable !== void 0 ? focusable : accessible;
363
- const role = viewProps.role;
364
- if (_focusable === false) {
365
- viewProps.tabIndex = "-1";
366
- }
367
- if (
368
- // These native elements are focusable by default
369
- elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea"
370
- ) {
371
- if (_focusable === false || accessibilityDisabled === true) {
372
- viewProps.tabIndex = "-1";
373
- }
374
- } else if (
375
- // These roles are made focusable by default
376
- role === "button" || role === "checkbox" || role === "link" || role === "radio" || role === "textbox" || role === "switch"
377
- ) {
378
- if (_focusable !== false) {
379
- viewProps.tabIndex = "0";
380
- }
381
- }
382
- if (_focusable === true) {
383
- viewProps.tabIndex = "0";
384
- }
385
- }
386
- } else {
387
- viewProps = nonTamaguiProps;
388
- }
389
- viewProps.ref = useComposedRefs(hostRef, forwardedRef);
390
- if (process.env.NODE_ENV === "development" && !isText && isWeb) {
391
- Children.toArray(props.children).forEach((item) => {
392
- if (typeof item === "string" && item !== "\n") {
393
- console.error(
394
- `Unexpected text node: ${item}. A text node cannot be a child of a <View>.`
395
- );
396
- }
397
- });
398
- }
399
- const unPress = useCallback(() => {
400
- setStateShallow({
401
- press: false,
402
- pressIn: false
403
- });
404
- }, [setStateShallow]);
405
- if (isWeb) {
406
- useEffect(() => {
407
- return () => {
408
- mouseUps.delete(unPress);
409
- };
410
- }, []);
411
- }
412
- const shouldSetMounted = needsMount && state.unmounted;
413
- useEffect(() => {
414
- if (!shouldSetMounted)
415
- return;
416
- if (state.unmounted === true && needsMount) {
417
- setStateShallow({
418
- unmounted: false
419
- });
420
- return;
421
- }
422
- setStateShallow({
423
- unmounted: false
424
- });
425
- }, [shouldSetMounted, state.unmounted]);
426
- let styles;
427
- if (isStringElement && shouldAvoidClasses && !shouldForcePseudo) {
428
- styles = {
429
- ...animationStyles ?? splitStylesStyle
430
- };
431
- } else {
432
- styles = [animationStyles ?? splitStylesStyle];
433
- if (shouldForcePseudo) {
434
- const next = {};
435
- styles.forEach((style) => Object.assign(next, style));
436
- Object.assign(splitStyles.style, next);
437
- }
438
- }
439
- let fontFamily = isText ? splitStyles.fontFamily || staticConfig.defaultProps.fontFamily : null;
440
- if (fontFamily && fontFamily[0] === "$") {
441
- fontFamily = fontFamily.slice(1);
442
- }
443
- const fontFamilyClassName = fontFamily ? `font_${fontFamily}` : "";
444
- const classList = [
445
- hasEnterStyle && (state.unmounted && needsMount || !isClient) ? "t_will-mount" : "",
446
- componentName ? componentClassName : "",
447
- fontFamilyClassName,
448
- classNames ? Object.values(classNames).join(" ") : ""
449
- ];
450
- const className = classList.join(" ");
451
- if (process.env.TAMAGUI_TARGET === "web") {
452
- const style = animationStyles ?? splitStyles.style;
453
- if (isAnimatedReactNativeWeb) {
454
- viewProps.style = style;
455
- } else if (isReactNative) {
456
- const rnwStyle = { $$css: true };
457
- for (const name of className.split(" ")) {
458
- rnwStyle[name] = name;
459
- }
460
- viewProps.style = [rnwStyle, ...Array.isArray(style) ? style : [style]];
461
- if (process.env.NODE_ENV === "development") {
462
- Object.keys(viewProps).forEach((key) => {
463
- if (key.startsWith("data-")) {
464
- viewProps.dataSet ??= {};
465
- viewProps.dataSet[key.replace("data-", "")] = viewProps[key];
466
- delete viewProps[key];
467
- }
468
- });
469
- }
470
- } else {
471
- viewProps.className = className;
472
- viewProps.style = style;
473
- }
474
- }
475
- if (process.env.TAMAGUI_TARGET === "native") {
476
- if (splitStyles.fontFamily) {
477
- const faceInfo = (_c = tamaguiConfig.fontsParsed[splitStyles.fontFamily]) == null ? void 0 : _c.face;
478
- if (faceInfo) {
479
- const [weight, style] = (() => {
480
- var _a2, _b2;
481
- let weight2;
482
- let style2;
483
- for (let i = styles.length; i >= 0; i--) {
484
- weight2 ??= (_a2 = styles[i]) == null ? void 0 : _a2.fontWeight;
485
- style2 ??= (_b2 = styles[i]) == null ? void 0 : _b2.fontStyle;
486
- }
487
- return [weight2 || "400", style2 || "normal"];
488
- })();
489
- const overrideFace = (_e = (_d = faceInfo[weight]) == null ? void 0 : _d[style]) == null ? void 0 : _e.val;
490
- if (overrideFace) {
491
- for (const style2 of styles) {
492
- if (style2 == null ? void 0 : style2.fontFamily) {
493
- style2.fontFamily = overrideFace;
494
- style2.fontWeight = void 0;
495
- style2.fontStyle = void 0;
496
- }
497
- }
498
- }
499
- }
500
- }
501
- viewProps.style = styles;
502
- }
503
- const runtimePressStyle = !disabled && noClassNames && (pseudos == null ? void 0 : pseudos.pressStyle);
504
- const attachPress = Boolean(
505
- runtimePressStyle || onPress || onPressOut || onPressIn || onClick
506
- );
507
- const runtimeHoverStyle = !disabled && noClassNames && (pseudos == null ? void 0 : pseudos.hoverStyle);
508
- const isHoverable = isWeb && !!(runtimeHoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
509
- const handlesPressEvents = !(isWeb || asChild);
510
- const shouldAttach = Boolean(
511
- attachPress || isHoverable || noClassNames && "pressStyle" in props || isWeb && noClassNames && "hoverStyle" in props
512
- );
513
- const events = shouldAttach && !isRSC && !isDisabled && !asChild ? {
514
- onPressOut: attachPress ? (e) => {
515
- unPress();
516
- onPressOut == null ? void 0 : onPressOut(e);
517
- onMouseUp == null ? void 0 : onMouseUp(e);
518
- } : void 0,
519
- ...isHoverable && {
520
- onMouseEnter: isHoverable ? (e) => {
521
- const next = {};
522
- if (isHoverable) {
523
- next.hover = true;
524
- }
525
- if (state.pressIn) {
526
- next.press = true;
527
- }
528
- if (isHoverable || state.pressIn) {
529
- setStateShallow(next);
530
- }
531
- onHoverIn == null ? void 0 : onHoverIn(e);
532
- onMouseEnter == null ? void 0 : onMouseEnter(e);
533
- } : void 0,
534
- onMouseLeave: isHoverable ? (e) => {
535
- const next = {};
536
- mouseUps.add(unPress);
537
- if (isHoverable) {
538
- next.hover = false;
539
- }
540
- if (state.pressIn) {
541
- next.press = false;
542
- next.pressIn = false;
543
- }
544
- if (Object.keys(next).length) {
545
- setStateShallow(next);
546
- }
547
- onHoverOut == null ? void 0 : onHoverOut(e);
548
- onMouseLeave == null ? void 0 : onMouseLeave(e);
549
- } : void 0
550
- },
551
- onPressIn: attachPress ? (e) => {
552
- setStateShallow({
553
- press: true,
554
- pressIn: true,
555
- hover: false
556
- });
557
- onPressIn == null ? void 0 : onPressIn(e);
558
- onMouseDown == null ? void 0 : onMouseDown(e);
559
- if (isWeb) {
560
- mouseUps.add(unPress);
561
- }
562
- } : void 0,
563
- onPress: attachPress ? (e) => {
564
- unPress();
565
- onClick == null ? void 0 : onClick(e);
566
- onPress == null ? void 0 : onPress(e);
567
- } : void 0,
568
- // replicating TouchableWithoutFeedback
569
- ...!isWeb && {
570
- cancelable: !props.rejectResponderTermination,
571
- disabled: isDisabled,
572
- hitSlop: props.hitSlop,
573
- delayLongPress: props.delayLongPress,
574
- delayPressIn: props.delayPressIn,
575
- delayPressOut: props.delayPressOut,
576
- focusable: viewProps.focusable ?? true,
577
- minPressDuration: 0
578
- }
579
- } : null;
580
- if (process.env.TAMAGUI_TARGET === "native") {
581
- const attachFocus = !!(pseudos == null ? void 0 : pseudos.focusStyle);
582
- if (attachFocus) {
583
- viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {
584
- setStateShallow({ focus: true });
585
- });
586
- viewProps.onBlur = mergeEvent(viewProps.onBlur, () => {
587
- setStateShallow({ focus: false });
588
- });
589
- }
590
- const pressability = usePressability(events ? { ...events, hitSlop } : {});
591
- if (attachPress && events) {
592
- for (const key in pressability) {
593
- const og = props[key];
594
- const val = pressability[key];
595
- viewProps[key] = og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val;
596
- }
597
- }
598
- }
599
- const shouldReset = !!(themeShallow && themeState.isNewTheme);
600
- if (shouldReset) {
601
- stateRef.current.themeShallow = true;
602
- }
603
- let content = !children || asChild ? children : spacedChildren({
604
- separator,
605
- children,
606
- space,
607
- direction: props.spaceDirection || "both",
608
- isZStack,
609
- debug: debugProp
610
- });
611
- if (asChild) {
612
- elementType = Slot;
613
- viewProps = {
614
- ...viewProps,
615
- onPress,
616
- onPressIn,
617
- onPressOut
618
- };
619
- }
620
- content = createElement(elementType, viewProps, content);
621
- content = useThemedChildren(themeState, content, {
622
- shallow: stateRef.current.themeShallow
623
- });
624
- if (process.env.TAMAGUI_TARGET === "web") {
625
- if (events || isAnimatedReactNativeWeb) {
626
- content = /* @__PURE__ */ jsx(
627
- "span",
628
- {
629
- className: `${isAnimatedReactNativeWeb ? className : ""} _dsp_contents`,
630
- ...events && {
631
- onMouseEnter: events.onMouseEnter,
632
- onMouseLeave: events.onMouseLeave,
633
- onClick: events.onPress,
634
- onMouseDown: events.onPressIn,
635
- onMouseUp: events.onPressOut,
636
- onTouchStart: events.onPressIn,
637
- onTouchEnd: events.onPressOut
638
- },
639
- children: content
640
- }
641
- );
642
- }
643
- }
644
- if (process.env.NODE_ENV === "development" && process.env.DEBUG !== "tamagui") {
645
- if (debugProp) {
646
- const element2 = typeof elementType === "string" ? elementType : "Component";
647
- console.groupCollapsed(`render <${element2} /> with props`, viewProps);
648
- for (const key in viewProps) {
649
- console.log(key, viewProps[key]);
650
- }
651
- console.log("children", content);
652
- console.groupEnd();
653
- if (typeof window !== "undefined") {
654
- console.log({ state, themeState, isAnimated, isAnimatedReactNativeWeb, 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, shouldAvoidClasses, avoidClasses: avoidClassesWhileAnimating, animation: props.animation, style: splitStylesStyle, staticConfig, tamaguiConfig, shouldForcePseudo, classNamesFull: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) });
655
- }
656
- console.groupEnd();
657
- }
658
- }
659
- return content;
660
- });
661
- if (staticConfig.componentName) {
662
- component.displayName = staticConfig.componentName;
663
- }
664
- onConfiguredOnce((conf) => {
665
- if (!tamaguiConfig) {
666
- tamaguiConfig = conf;
667
- if (tamaguiConfig.animations) {
668
- AnimatedText = tamaguiConfig.animations.Text;
669
- AnimatedView = tamaguiConfig.animations.View;
670
- }
671
- if (!initialTheme) {
672
- const next = conf.themes[Object.keys(conf.themes)[0]];
673
- initialTheme = proxyThemeVariables(next);
674
- if (process.env.NODE_ENV === "development") {
675
- if (!initialTheme) {
676
- console.log("Warning: Missing theme");
677
- }
678
- }
679
- }
680
- }
681
- mergeShorthands(staticConfig, tamaguiConfig);
682
- let defaultPropsIn = staticConfig.defaultProps || {};
683
- const parentNames = [...staticConfig.parentNames || [], staticConfig.componentName];
684
- if (tamaguiConfig.defaultProps && parentNames && staticConfig.componentName) {
685
- defaultPropsIn = mergeConfigDefaultProps(
686
- staticConfig.componentName,
687
- defaultPropsIn,
688
- tamaguiConfig.defaultProps,
689
- parentNames,
690
- tamaguiConfig
691
- );
692
- }
693
- const debug = defaultPropsIn["debug"];
694
- const [ourProps, ourClassNames] = mergeProps(defaultPropsIn, {});
695
- if (ourProps.tag) {
696
- defaultTag = ourProps.tag;
697
- }
698
- const noClassNames = !staticConfig.acceptsClassName;
699
- const { name, variants, defaultVariants, ...restProps } = ourProps;
700
- const [defaults, defaultsClassnames] = mergeProps(component.defaultProps, {
701
- ...defaultVariants,
702
- ...restProps
703
- });
704
- if (!isWeb) {
705
- for (const key in staticConfig.defaultProps) {
706
- const val = staticConfig.defaultProps[key];
707
- if (validPseudoKeys[key])
708
- continue;
709
- defaults[key] = val;
710
- }
711
- }
712
- tamaguiDefaultProps = defaults;
713
- if (process.env.NODE_ENV === "development" && debug) {
714
- if (process.env.IS_STATIC !== "is_static") {
715
- console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, {
716
- staticConfig,
717
- tamaguiDefaultProps,
718
- defaults,
719
- defaultPropsIn,
720
- defaultPropsKeyOrder: Object.keys(staticConfig.defaultProps),
721
- defaultPropsInKeyOrder: Object.keys(defaultPropsIn).map((k) => [
722
- k,
723
- defaultPropsIn[k]
724
- ]),
725
- ourProps,
726
- ourClassNames,
727
- defaultsClassnames,
728
- defaultTag,
729
- noClassNames
730
- });
731
- }
732
- }
733
- });
734
- let res = component;
735
- if (configIn.memo) {
736
- res = memo(res);
737
- }
738
- res.staticConfig = {
739
- validStyles: staticConfig.validStyles || stylePropsView,
740
- ...staticConfig
741
- };
742
- res.extractable = (Component, conf) => {
743
- Component.staticConfig = extendStaticConfig(
744
- {
745
- Component,
746
- ...conf,
747
- neverFlatten: true,
748
- defaultProps: {
749
- ...Component.defaultProps,
750
- ...conf == null ? void 0 : conf.defaultProps
751
- }
752
- },
753
- res
754
- );
755
- return Component;
756
- };
757
- return res;
758
- }
759
- const Unspaced = (props) => {
760
- return props.children;
761
- };
762
- Unspaced["isUnspaced"] = true;
763
- const Spacer = createComponent({
764
- acceptsClassName: true,
765
- memo: true,
766
- componentName: "Spacer",
767
- validStyles,
768
- defaultProps: {
769
- ...stackDefaultStyles,
770
- // avoid nesting issues
771
- tag: "span",
772
- size: true,
773
- pointerEvents: "none"
774
- },
775
- variants: {
776
- size: {
777
- "...size": (size, { tokens }) => {
778
- size = size === true ? "$true" : size;
779
- const sizePx = tokens.space[size] ?? size;
780
- return {
781
- width: sizePx,
782
- height: sizePx,
783
- minWidth: sizePx,
784
- minHeight: sizePx
785
- };
786
- }
787
- },
788
- flex: {
789
- true: {
790
- flexGrow: 1
791
- }
792
- },
793
- direction: {
794
- horizontal: {
795
- height: 0,
796
- minHeight: 0
797
- },
798
- vertical: {
799
- width: 0,
800
- minWidth: 0
801
- },
802
- both: {}
803
- }
804
- }
805
- });
806
- function spacedChildren(props) {
807
- var _a, _b, _c;
808
- const { isZStack, children, space, direction, spaceFlex, separator } = props;
809
- const hasSpace = !!(space || spaceFlex);
810
- const hasSeparator = !(separator === void 0 || separator === null);
811
- if (!(hasSpace || hasSeparator || isZStack)) {
812
- return children;
813
- }
814
- const childrenList = Children.toArray(children);
815
- const len = childrenList.length;
816
- if (len <= 1 && !isZStack && !((_b = (_a = childrenList[0]) == null ? void 0 : _a["type"]) == null ? void 0 : _b["shouldForwardSpace"])) {
817
- return childrenList;
818
- }
819
- const final = [];
820
- for (let [index, child] of childrenList.entries()) {
821
- const isEmpty = child === null || child === void 0 || Array.isArray(child) && child.length === 0;
822
- if (!isEmpty && React.isValidElement(child) && ((_c = child.type) == null ? void 0 : _c["shouldForwardSpace"])) {
823
- child = React.cloneElement(child, {
824
- space,
825
- spaceFlex,
826
- separator,
827
- key: child.key
828
- });
829
- }
830
- if (isEmpty || !child || child["key"] && !isZStack) {
831
- final.push(child);
832
- } else {
833
- final.push(
834
- /* @__PURE__ */ jsx(Fragment, { children: isZStack ? /* @__PURE__ */ jsx(AbsoluteFill, { children: child }) : child }, index)
835
- );
836
- }
837
- if (isUnspaced(child) && index === 0)
838
- continue;
839
- if (isZStack)
840
- continue;
841
- const next = childrenList[index + 1];
842
- if (next && !isUnspaced(next)) {
843
- if (separator) {
844
- if (hasSpace) {
845
- final.push(
846
- createSpacer({
847
- key: `_${index}_00tmgui`,
848
- direction,
849
- space,
850
- spaceFlex
851
- })
852
- );
853
- }
854
- final.push(
855
- React.isValidElement(separator) ? React.cloneElement(separator, { key: `sep_${index}` }) : separator
856
- );
857
- if (hasSpace) {
858
- final.push(
859
- createSpacer({
860
- key: `_${index}01tmgui`,
861
- direction,
862
- space,
863
- spaceFlex
864
- })
865
- );
866
- }
867
- } else {
868
- final.push(
869
- createSpacer({
870
- key: `_${index}02tmgui`,
871
- direction,
872
- space,
873
- spaceFlex
874
- })
875
- );
876
- }
877
- }
878
- }
879
- if (process.env.NODE_ENV === "development") {
880
- if (props.debug) {
881
- console.log(` Spaced children`, final, props);
882
- }
883
- }
884
- return final;
885
- }
886
- function createSpacer({ key, direction, space, spaceFlex }) {
887
- return (
888
- // @ts-ignore this one blew up but the types seem better
889
- /* @__PURE__ */ jsx(
890
- Spacer,
891
- {
892
- size: space,
893
- direction,
894
- ...typeof spaceFlex !== "undefined" && {
895
- flex: spaceFlex === true ? 1 : spaceFlex === false ? 0 : spaceFlex
896
- }
897
- },
898
- key
899
- )
900
- );
901
- }
902
- function isUnspaced(child) {
903
- var _a, _b;
904
- 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"]);
905
- }
906
- const DefaultProps = /* @__PURE__ */ new Map();
907
- function mergeConfigDefaultProps(name, props, configDefaults, parentNames, conf) {
908
- const len = parentNames.length;
909
- let prev;
910
- for (let i = 0; i < len; i++) {
911
- const n = parentNames[i];
912
- if (!n)
913
- continue;
914
- if (DefaultProps.has(n)) {
915
- prev = DefaultProps.get(n);
916
- continue;
917
- }
918
- const props2 = configDefaults[n];
919
- if (!props2) {
920
- if (prev) {
921
- DefaultProps.set(n, prev);
922
- }
923
- continue;
924
- }
925
- prev = mergeProps(prev || {}, props2, false, conf.inverseShorthands)[0];
926
- DefaultProps.set(n, prev);
927
- }
928
- const ourDefaultsMerged = DefaultProps.get(name);
929
- if (ourDefaultsMerged) {
930
- return mergeProps(props, ourDefaultsMerged, false, conf.inverseShorthands)[0];
931
- }
932
- return props;
933
- }
934
- function usePlatformMethods(hostRef) {
935
- useIsomorphicLayoutEffect(() => {
936
- const node = hostRef.current;
937
- if (!node)
938
- return;
939
- node.measure = (callback) => measureLayout(node, null, callback);
940
- node.measureLayout = (relativeToNode, success) => measureLayout(node, relativeToNode, success);
941
- node.measureInWindow = (callback) => {
942
- if (!node)
943
- return;
944
- setTimeout(() => {
945
- const { height, left, top, width } = getRect(node);
946
- callback(left, top, width, height);
947
- }, 0);
948
- };
949
- }, [hostRef]);
950
- }
951
- const AbsoluteFill = createComponent({
952
- componentName: "AbsoluteFill",
953
- defaultProps: {
954
- ...stackDefaultStyles,
955
- flexDirection: "column",
956
- position: "absolute",
957
- top: 0,
958
- right: 0,
959
- bottom: 0,
960
- left: 0,
961
- pointerEvents: "box-none"
962
- }
963
- });
964
- const dontComposePressabilityKeys = {
965
- onClick: true
966
- };
967
- export {
968
- Spacer,
969
- Unspaced,
970
- createComponent,
971
- defaultComponentState,
972
- mouseUps,
973
- spacedChildren
974
- };
975
- //# sourceMappingURL=createComponent.js.map