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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (764) hide show
  1. package/dist/cjs/Tamagui.js +14 -12
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/addTheme.js +80 -0
  4. package/dist/cjs/addTheme.js.map +7 -0
  5. package/dist/cjs/{conf.js → config.js} +33 -19
  6. package/dist/cjs/config.js.map +7 -0
  7. package/dist/cjs/constants/constants.js +11 -23
  8. package/dist/cjs/constants/constants.js.map +2 -2
  9. package/dist/cjs/{helpers/nativeGestureHandler.js → constants/isDevTools.js} +8 -8
  10. package/dist/cjs/constants/isDevTools.js.map +7 -0
  11. package/dist/cjs/constants/platform.js +32 -16
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/platform.native.js +62 -0
  14. package/dist/cjs/constants/platform.native.js.map +7 -0
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +1 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +1 -1
  17. package/dist/cjs/contexts/FontLanguageContext.js +30 -0
  18. package/dist/cjs/contexts/FontLanguageContext.js.map +7 -0
  19. package/dist/cjs/{views → contexts}/TextAncestorContext.js +11 -13
  20. package/dist/cjs/contexts/TextAncestorContext.js.map +7 -0
  21. package/dist/cjs/{ThemeContext.js → contexts/ThemeContext.js} +1 -0
  22. package/dist/cjs/contexts/ThemeContext.js.map +7 -0
  23. package/dist/cjs/createComponent.js +925 -484
  24. package/dist/cjs/createComponent.js.map +3 -3
  25. package/dist/cjs/createFont.js +5 -8
  26. package/dist/cjs/createFont.js.map +2 -2
  27. package/dist/cjs/createShorthands.js +1 -2
  28. package/dist/cjs/createShorthands.js.map +2 -2
  29. package/dist/cjs/createTamagui.js +129 -177
  30. package/dist/cjs/createTamagui.js.map +3 -3
  31. package/dist/cjs/createTheme.js +4 -2
  32. package/dist/cjs/createTheme.js.map +2 -2
  33. package/dist/cjs/createTokens.js +5 -25
  34. package/dist/cjs/createTokens.js.map +2 -2
  35. package/dist/cjs/createVariable.js +52 -28
  36. package/dist/cjs/createVariable.js.map +2 -2
  37. package/dist/cjs/createVariables.js +52 -0
  38. package/dist/cjs/createVariables.js.map +7 -0
  39. package/dist/cjs/helpers/RNComponents.js +12 -11
  40. package/dist/cjs/helpers/RNComponents.js.map +2 -2
  41. package/dist/cjs/{ThemeManager.js → helpers/ThemeManager.js} +54 -52
  42. package/dist/cjs/helpers/ThemeManager.js.map +7 -0
  43. package/dist/cjs/helpers/areEqualSets.js +3 -3
  44. package/dist/cjs/helpers/areEqualSets.js.map +1 -1
  45. package/dist/cjs/helpers/assignNativePropsToWeb.js +188 -0
  46. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +7 -0
  47. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +30 -0
  48. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +7 -0
  49. package/dist/cjs/helpers/calc.js +71 -0
  50. package/dist/cjs/helpers/calc.js.map +7 -0
  51. package/dist/cjs/helpers/createMediaStyle.js +17 -9
  52. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  53. package/dist/cjs/helpers/createPropMapper.js +272 -122
  54. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  55. package/dist/cjs/helpers/createShallowUpdate.js +14 -25
  56. package/dist/cjs/helpers/createShallowUpdate.js.map +2 -2
  57. package/dist/cjs/helpers/expandStyle.js +90 -0
  58. package/dist/cjs/helpers/expandStyle.js.map +7 -0
  59. package/dist/cjs/helpers/expandStyles.js +115 -0
  60. package/dist/cjs/helpers/expandStyles.js.map +7 -0
  61. package/dist/cjs/helpers/extendStaticConfig.js +49 -37
  62. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  63. package/dist/cjs/helpers/fixNativeShadow.js +3 -3
  64. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  65. package/dist/cjs/helpers/getAnimationDriver.js +32 -0
  66. package/dist/cjs/helpers/getAnimationDriver.js.map +7 -0
  67. package/dist/cjs/helpers/getExpandedShorthands.js +4 -5
  68. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  69. package/dist/cjs/helpers/{getTextSize.js → getFont.js} +22 -12
  70. package/dist/cjs/helpers/getFont.js.map +7 -0
  71. package/dist/cjs/helpers/getFontLanguage.js +29 -0
  72. package/dist/cjs/helpers/getFontLanguage.js.map +7 -0
  73. package/dist/cjs/helpers/getSize.js +19 -10
  74. package/dist/cjs/helpers/getSize.js.map +2 -2
  75. package/dist/cjs/helpers/getSplitStyles.js +381 -208
  76. package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
  77. package/dist/cjs/helpers/getStackSize.js +46 -0
  78. package/dist/cjs/helpers/getStackSize.js.map +7 -0
  79. package/dist/cjs/helpers/getStylesAtomic.js +199 -133
  80. package/dist/cjs/helpers/getStylesAtomic.js.map +3 -3
  81. package/dist/cjs/helpers/getStylesAtomic.native.js +1 -2
  82. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  83. package/dist/cjs/helpers/getThemeCSSRules.js +103 -0
  84. package/dist/cjs/helpers/getThemeCSSRules.js.map +7 -0
  85. package/dist/cjs/{nativeGestureHandler.native.js → helpers/getThemeCSSRules.native.js} +18 -5
  86. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +7 -0
  87. package/dist/cjs/helpers/getVariantExtras.js +88 -0
  88. package/dist/cjs/helpers/getVariantExtras.js.map +7 -0
  89. package/dist/cjs/helpers/insertStyleRule.js +83 -52
  90. package/dist/cjs/helpers/insertStyleRule.js.map +3 -3
  91. package/dist/cjs/helpers/isObj.js +2 -2
  92. package/dist/cjs/helpers/isObj.js.map +1 -1
  93. package/dist/cjs/helpers/isTamaguiComponent.js +37 -0
  94. package/dist/cjs/helpers/isTamaguiComponent.js.map +7 -0
  95. package/dist/cjs/helpers/isTamaguiElement.js +5 -5
  96. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  97. package/dist/cjs/helpers/matchMedia.js +7 -6
  98. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  99. package/dist/cjs/helpers/matchMedia.native.js +6 -3
  100. package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
  101. package/dist/cjs/helpers/mergeProps.js +54 -0
  102. package/dist/cjs/helpers/mergeProps.js.map +7 -0
  103. package/dist/cjs/helpers/mergeTransform.js +42 -0
  104. package/dist/cjs/helpers/mergeTransform.js.map +7 -0
  105. package/dist/cjs/helpers/normalizeColor.js +80 -0
  106. package/dist/cjs/helpers/normalizeColor.js.map +7 -0
  107. package/dist/cjs/helpers/normalizeValueWithProperty.js +93 -0
  108. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
  109. package/dist/cjs/helpers/proxyThemeVariables.js +7 -4
  110. package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
  111. package/dist/cjs/helpers/pseudoDescriptors.js +42 -0
  112. package/dist/cjs/helpers/pseudoDescriptors.js.map +7 -0
  113. package/dist/cjs/helpers/registerCSSVariable.js +40 -0
  114. package/dist/cjs/helpers/registerCSSVariable.js.map +7 -0
  115. package/dist/cjs/helpers/{wrapThemeManagerContext.js → startTransition.js} +12 -15
  116. package/dist/cjs/helpers/startTransition.js.map +7 -0
  117. package/dist/cjs/helpers/themeable.js +17 -40
  118. package/dist/cjs/helpers/themeable.js.map +3 -3
  119. package/dist/cjs/helpers/themes.js +79 -0
  120. package/dist/cjs/helpers/themes.js.map +7 -0
  121. package/dist/cjs/helpers/useShallowSetState.js +44 -0
  122. package/dist/cjs/helpers/useShallowSetState.js.map +7 -0
  123. package/dist/cjs/helpers/validate.js +1 -122
  124. package/dist/cjs/helpers/validate.js.map +3 -3
  125. package/dist/cjs/helpers/withStaticProperties.js +3 -3
  126. package/dist/cjs/helpers/withStaticProperties.js.map +1 -1
  127. package/dist/cjs/hooks/getThemeUnwrapped.js +39 -0
  128. package/dist/cjs/hooks/getThemeUnwrapped.js.map +7 -0
  129. package/dist/cjs/hooks/useConstant.js +4 -2
  130. package/dist/cjs/hooks/useConstant.js.map +2 -2
  131. package/dist/cjs/hooks/useDidFinishSSR.js +60 -0
  132. package/dist/cjs/hooks/useDidFinishSSR.js.map +7 -0
  133. package/dist/cjs/hooks/useId.js +3 -33
  134. package/dist/cjs/hooks/useId.js.map +2 -2
  135. package/dist/cjs/hooks/useIsMounted.js +3 -4
  136. package/dist/cjs/hooks/useIsMounted.js.map +2 -2
  137. package/dist/cjs/hooks/useIsSSR.js +46 -0
  138. package/dist/cjs/hooks/useIsSSR.js.map +7 -0
  139. package/dist/cjs/hooks/useIsTouchDevice.js +11 -9
  140. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  141. package/dist/cjs/hooks/useMedia.js +162 -113
  142. package/dist/cjs/hooks/useMedia.js.map +3 -3
  143. package/dist/cjs/hooks/usePressable.js +4 -18
  144. package/dist/cjs/hooks/usePressable.js.map +1 -1
  145. package/dist/cjs/hooks/useSafeRef.js +60 -0
  146. package/dist/cjs/hooks/useSafeRef.js.map +7 -0
  147. package/dist/cjs/hooks/useServerHooks.js +36 -0
  148. package/dist/cjs/hooks/useServerHooks.js.map +7 -0
  149. package/dist/cjs/hooks/useTheme.js +166 -132
  150. package/dist/cjs/hooks/useTheme.js.map +3 -3
  151. package/dist/cjs/hooks/useUnmountEffect.js +1 -2
  152. package/dist/cjs/hooks/useUnmountEffect.js.map +1 -1
  153. package/dist/cjs/index.js +59 -21
  154. package/dist/cjs/index.js.map +2 -2
  155. package/dist/cjs/injectStyles.js +40 -0
  156. package/dist/cjs/injectStyles.js.map +7 -0
  157. package/dist/cjs/insertFont.js +93 -0
  158. package/dist/cjs/insertFont.js.map +7 -0
  159. package/dist/cjs/static.js +22 -15
  160. package/dist/cjs/static.js.map +2 -2
  161. package/dist/cjs/styled.js +47 -44
  162. package/dist/cjs/styled.js.map +2 -2
  163. package/dist/cjs/types-rnw.js +1 -0
  164. package/dist/cjs/types-rnw.js.map +2 -2
  165. package/dist/cjs/types.js +1 -0
  166. package/dist/cjs/types.js.map +2 -2
  167. package/dist/cjs/updateTheme.js +47 -0
  168. package/dist/cjs/updateTheme.js.map +7 -0
  169. package/dist/cjs/vendor/Pressability.js +32 -0
  170. package/dist/cjs/vendor/Pressability.js.map +7 -0
  171. package/dist/cjs/vendor/Pressability.native.js +32 -0
  172. package/dist/cjs/vendor/Pressability.native.js.map +7 -0
  173. package/dist/cjs/views/FontLanguage.js +38 -0
  174. package/dist/cjs/views/FontLanguage.js.map +7 -0
  175. package/dist/cjs/views/FontLanguage.native.js +38 -0
  176. package/dist/cjs/views/FontLanguage.native.js.map +7 -0
  177. package/dist/cjs/{helpers/nativeGestureHandler.native.js → views/FontLanguage.types.js} +4 -5
  178. package/dist/cjs/views/FontLanguage.types.js.map +7 -0
  179. package/dist/cjs/views/Slot.js +64 -72
  180. package/dist/cjs/views/Slot.js.map +2 -2
  181. package/dist/cjs/views/Stack.js +4 -19
  182. package/dist/cjs/views/Stack.js.map +1 -1
  183. package/dist/cjs/views/TamaguiProvider.js +82 -0
  184. package/dist/cjs/views/TamaguiProvider.js.map +7 -0
  185. package/dist/cjs/views/Text.js +28 -29
  186. package/dist/cjs/views/Text.js.map +2 -2
  187. package/dist/cjs/views/Theme.js +43 -21
  188. package/dist/cjs/views/Theme.js.map +3 -3
  189. package/dist/cjs/views/ThemeInverse.js +25 -25
  190. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  191. package/dist/cjs/views/ThemeProvider.js +35 -23
  192. package/dist/cjs/views/ThemeProvider.js.map +3 -3
  193. package/dist/cjs/views/ThemeReset.js +18 -12
  194. package/dist/cjs/views/ThemeReset.js.map +3 -3
  195. package/dist/esm/Tamagui.js +8 -11
  196. package/dist/esm/Tamagui.js.map +2 -2
  197. package/dist/esm/addTheme.js +56 -0
  198. package/dist/esm/addTheme.js.map +7 -0
  199. package/dist/esm/config.js +45 -0
  200. package/dist/esm/config.js.map +7 -0
  201. package/dist/esm/constants/constants.js +2 -2
  202. package/dist/esm/constants/constants.js.map +2 -2
  203. package/dist/esm/constants/isDevTools.js +5 -0
  204. package/dist/esm/constants/isDevTools.js.map +7 -0
  205. package/dist/esm/constants/platform.js +25 -12
  206. package/dist/esm/constants/platform.js.map +2 -2
  207. package/dist/esm/constants/platform.native.js +28 -0
  208. package/dist/esm/constants/platform.native.js.map +7 -0
  209. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  210. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +1 -1
  211. package/dist/esm/contexts/FontLanguageContext.js +6 -0
  212. package/dist/esm/contexts/FontLanguageContext.js.map +7 -0
  213. package/dist/esm/contexts/TextAncestorContext.js +17 -0
  214. package/dist/esm/contexts/TextAncestorContext.js.map +7 -0
  215. package/dist/esm/{ThemeContext.js → contexts/ThemeContext.js} +0 -0
  216. package/dist/esm/contexts/ThemeContext.js.map +7 -0
  217. package/dist/esm/createComponent.js +891 -389
  218. package/dist/esm/createComponent.js.map +3 -3
  219. package/dist/esm/createFont.js +4 -9
  220. package/dist/esm/createFont.js.map +2 -2
  221. package/dist/esm/createShorthands.js +0 -3
  222. package/dist/esm/createShorthands.js.map +2 -2
  223. package/dist/esm/createTamagui.js +128 -158
  224. package/dist/esm/createTamagui.js.map +3 -3
  225. package/dist/esm/createTheme.js +3 -3
  226. package/dist/esm/createTheme.js.map +2 -2
  227. package/dist/esm/createTokens.js +3 -24
  228. package/dist/esm/createTokens.js.map +2 -2
  229. package/dist/esm/createVariable.js +47 -26
  230. package/dist/esm/createVariable.js.map +2 -2
  231. package/dist/esm/createVariables.js +28 -0
  232. package/dist/esm/createVariables.js.map +7 -0
  233. package/dist/esm/helpers/RNComponents.js +11 -8
  234. package/dist/esm/helpers/RNComponents.js.map +2 -2
  235. package/dist/esm/{ThemeManager.js → helpers/ThemeManager.js} +53 -53
  236. package/dist/esm/helpers/ThemeManager.js.map +7 -0
  237. package/dist/esm/helpers/areEqualSets.js +2 -4
  238. package/dist/esm/helpers/areEqualSets.js.map +1 -1
  239. package/dist/esm/helpers/assignNativePropsToWeb.js +164 -0
  240. package/dist/esm/helpers/assignNativePropsToWeb.js.map +7 -0
  241. package/dist/esm/helpers/assignNativePropsToWeb.native.js +6 -0
  242. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +7 -0
  243. package/dist/esm/helpers/calc.js +47 -0
  244. package/dist/esm/helpers/calc.js.map +7 -0
  245. package/dist/esm/helpers/createMediaStyle.js +16 -10
  246. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  247. package/dist/esm/helpers/createPropMapper.js +267 -123
  248. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  249. package/dist/esm/helpers/createShallowUpdate.js +13 -12
  250. package/dist/esm/helpers/createShallowUpdate.js.map +2 -2
  251. package/dist/esm/helpers/expandStyle.js +66 -0
  252. package/dist/esm/helpers/expandStyle.js.map +7 -0
  253. package/dist/esm/helpers/expandStyles.js +89 -0
  254. package/dist/esm/helpers/expandStyles.js.map +7 -0
  255. package/dist/esm/helpers/extendStaticConfig.js +35 -28
  256. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  257. package/dist/esm/helpers/fixNativeShadow.js +2 -4
  258. package/dist/esm/helpers/fixNativeShadow.js.map +1 -1
  259. package/dist/esm/helpers/getAnimationDriver.js +8 -0
  260. package/dist/esm/helpers/getAnimationDriver.js.map +7 -0
  261. package/dist/esm/helpers/getExpandedShorthands.js +2 -5
  262. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  263. package/dist/esm/helpers/{getTextSize.js → getFont.js} +17 -9
  264. package/dist/esm/helpers/getFont.js.map +7 -0
  265. package/dist/esm/helpers/getFontLanguage.js +5 -0
  266. package/dist/esm/helpers/getFontLanguage.js.map +7 -0
  267. package/dist/esm/helpers/getSize.js +16 -10
  268. package/dist/esm/helpers/getSize.js.map +2 -2
  269. package/dist/esm/helpers/getSplitStyles.js +364 -188
  270. package/dist/esm/helpers/getSplitStyles.js.map +3 -3
  271. package/dist/esm/helpers/getStackSize.js +22 -0
  272. package/dist/esm/helpers/getStackSize.js.map +7 -0
  273. package/dist/esm/helpers/getStylesAtomic.js +187 -108
  274. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  275. package/dist/esm/helpers/getStylesAtomic.native.js +0 -3
  276. package/dist/esm/helpers/getStylesAtomic.native.js.map +1 -1
  277. package/dist/esm/helpers/getThemeCSSRules.js +79 -0
  278. package/dist/esm/helpers/getThemeCSSRules.js.map +7 -0
  279. package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
  280. package/dist/esm/helpers/getThemeCSSRules.native.js.map +7 -0
  281. package/dist/esm/helpers/getVariantExtras.js +63 -0
  282. package/dist/esm/helpers/getVariantExtras.js.map +7 -0
  283. package/dist/esm/helpers/insertStyleRule.js +78 -50
  284. package/dist/esm/helpers/insertStyleRule.js.map +3 -3
  285. package/dist/esm/helpers/isObj.js +1 -3
  286. package/dist/esm/helpers/isObj.js.map +1 -1
  287. package/dist/esm/helpers/isTamaguiComponent.js +13 -0
  288. package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
  289. package/dist/esm/helpers/isTamaguiElement.js +4 -6
  290. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  291. package/dist/esm/helpers/matchMedia.js +6 -7
  292. package/dist/esm/helpers/matchMedia.js.map +2 -2
  293. package/dist/esm/helpers/matchMedia.native.js +1 -3
  294. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  295. package/dist/esm/helpers/mergeProps.js +30 -0
  296. package/dist/esm/helpers/mergeProps.js.map +7 -0
  297. package/dist/esm/helpers/mergeTransform.js +17 -0
  298. package/dist/esm/helpers/mergeTransform.js.map +7 -0
  299. package/dist/esm/helpers/normalizeColor.js +49 -0
  300. package/dist/esm/helpers/normalizeColor.js.map +7 -0
  301. package/dist/esm/helpers/normalizeValueWithProperty.js +69 -0
  302. package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
  303. package/dist/esm/helpers/proxyThemeVariables.js +6 -5
  304. package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
  305. package/dist/esm/helpers/pseudoDescriptors.js +18 -0
  306. package/dist/esm/helpers/pseudoDescriptors.js.map +7 -0
  307. package/dist/esm/helpers/registerCSSVariable.js +14 -0
  308. package/dist/esm/helpers/registerCSSVariable.js.map +7 -0
  309. package/dist/esm/helpers/startTransition.js +6 -0
  310. package/dist/esm/helpers/startTransition.js.map +7 -0
  311. package/dist/esm/helpers/themeable.js +11 -9
  312. package/dist/esm/helpers/themeable.js.map +2 -2
  313. package/dist/esm/helpers/themes.js +54 -0
  314. package/dist/esm/helpers/themes.js.map +7 -0
  315. package/dist/esm/helpers/useShallowSetState.js +20 -0
  316. package/dist/esm/helpers/useShallowSetState.js.map +7 -0
  317. package/dist/esm/helpers/validate.js +0 -75
  318. package/dist/esm/helpers/validate.js.map +3 -3
  319. package/dist/esm/helpers/withStaticProperties.js +2 -4
  320. package/dist/esm/helpers/withStaticProperties.js.map +1 -1
  321. package/dist/esm/hooks/getThemeUnwrapped.js +14 -0
  322. package/dist/esm/hooks/getThemeUnwrapped.js.map +7 -0
  323. package/dist/esm/hooks/useConstant.js +4 -4
  324. package/dist/esm/hooks/useConstant.js.map +2 -2
  325. package/dist/esm/hooks/useDidFinishSSR.js +35 -0
  326. package/dist/esm/hooks/useDidFinishSSR.js.map +7 -0
  327. package/dist/esm/hooks/useId.js +1 -31
  328. package/dist/esm/hooks/useId.js.map +2 -2
  329. package/dist/esm/hooks/useIsMounted.js +1 -4
  330. package/dist/esm/hooks/useIsMounted.js.map +2 -2
  331. package/dist/esm/hooks/useIsSSR.js +22 -0
  332. package/dist/esm/hooks/useIsSSR.js.map +7 -0
  333. package/dist/esm/hooks/useIsTouchDevice.js +10 -10
  334. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  335. package/dist/esm/hooks/useMedia.js +157 -103
  336. package/dist/esm/hooks/useMedia.js.map +3 -3
  337. package/dist/esm/hooks/usePressable.js +2 -4
  338. package/dist/esm/hooks/usePressable.js.map +1 -1
  339. package/dist/esm/hooks/useSafeRef.js +36 -0
  340. package/dist/esm/hooks/useSafeRef.js.map +7 -0
  341. package/dist/esm/hooks/useServerHooks.js +11 -0
  342. package/dist/esm/hooks/useServerHooks.js.map +7 -0
  343. package/dist/esm/hooks/useTheme.js +159 -109
  344. package/dist/esm/hooks/useTheme.js.map +3 -3
  345. package/dist/esm/hooks/useUnmountEffect.js +0 -3
  346. package/dist/esm/hooks/useUnmountEffect.js.map +1 -1
  347. package/dist/esm/index.js +51 -13
  348. package/dist/esm/index.js.map +2 -2
  349. package/dist/esm/injectStyles.js +16 -0
  350. package/dist/esm/injectStyles.js.map +7 -0
  351. package/dist/esm/insertFont.js +67 -0
  352. package/dist/esm/insertFont.js.map +7 -0
  353. package/dist/esm/static.js +15 -15
  354. package/dist/esm/static.js.map +2 -2
  355. package/dist/esm/styled.js +40 -12
  356. package/dist/esm/styled.js.map +2 -2
  357. package/dist/esm/types-rnw.js +0 -0
  358. package/dist/esm/types-rnw.js.map +0 -0
  359. package/dist/esm/types.js +0 -0
  360. package/dist/esm/types.js.map +0 -0
  361. package/dist/esm/updateTheme.js +23 -0
  362. package/dist/esm/updateTheme.js.map +7 -0
  363. package/dist/esm/vendor/Pressability.js +7 -0
  364. package/dist/esm/vendor/Pressability.js.map +7 -0
  365. package/dist/esm/vendor/Pressability.native.js +7 -0
  366. package/dist/esm/vendor/Pressability.native.js.map +7 -0
  367. package/dist/esm/views/FontLanguage.js +14 -0
  368. package/dist/esm/views/FontLanguage.js.map +7 -0
  369. package/dist/esm/views/FontLanguage.native.js +14 -0
  370. package/dist/esm/views/FontLanguage.native.js.map +7 -0
  371. package/dist/esm/views/FontLanguage.types.js +1 -0
  372. package/dist/{cjs/defaultComponentState.js.map → esm/views/FontLanguage.types.js.map} +0 -0
  373. package/dist/esm/views/Slot.js +55 -37
  374. package/dist/esm/views/Slot.js.map +2 -2
  375. package/dist/esm/views/Stack.js +0 -0
  376. package/dist/esm/views/Stack.js.map +1 -1
  377. package/dist/esm/views/TamaguiProvider.js +52 -0
  378. package/dist/esm/views/TamaguiProvider.js.map +7 -0
  379. package/dist/esm/views/Text.js +13 -5
  380. package/dist/esm/views/Text.js.map +2 -2
  381. package/dist/esm/views/Theme.js +35 -19
  382. package/dist/esm/views/Theme.js.map +3 -3
  383. package/dist/esm/views/ThemeInverse.js +22 -20
  384. package/dist/esm/views/ThemeInverse.js.map +2 -2
  385. package/dist/esm/views/ThemeProvider.js +28 -21
  386. package/dist/esm/views/ThemeProvider.js.map +2 -2
  387. package/dist/esm/views/ThemeReset.js +13 -12
  388. package/dist/esm/views/ThemeReset.js.map +2 -2
  389. package/package.json +49 -16
  390. package/reset.css +25 -4
  391. package/src/Tamagui.ts +44 -0
  392. package/src/addTheme.ts +68 -0
  393. package/src/config.ts +45 -0
  394. package/src/constants/constants.ts +15 -0
  395. package/src/constants/isDevTools.ts +6 -0
  396. package/src/contexts/ButtonInsideButtonContext.tsx +3 -0
  397. package/src/contexts/FontLanguageContext.tsx +5 -0
  398. package/src/contexts/TextAncestorContext.tsx +10 -0
  399. package/src/contexts/ThemeContext.tsx +5 -0
  400. package/src/createComponent.tsx +1601 -0
  401. package/src/createFont.ts +29 -0
  402. package/src/createShorthands.ts +7 -0
  403. package/src/createTamagui.ts +229 -0
  404. package/src/createTheme.ts +13 -0
  405. package/src/createTokens.ts +35 -0
  406. package/src/createVariable.ts +85 -0
  407. package/src/createVariables.ts +42 -0
  408. package/src/helpers/RNComponents.tsx +14 -0
  409. package/src/helpers/ThemeManager.tsx +235 -0
  410. package/src/helpers/areEqualSets.tsx +9 -0
  411. package/src/helpers/assignNativePropsToWeb.native.tsx +1 -0
  412. package/src/helpers/assignNativePropsToWeb.tsx +178 -0
  413. package/src/helpers/calc.ts +68 -0
  414. package/src/helpers/createMediaStyle.ts +48 -0
  415. package/src/helpers/createPropMapper.ts +526 -0
  416. package/src/helpers/expandStyle.ts +81 -0
  417. package/src/helpers/expandStyles.ts +107 -0
  418. package/src/helpers/extendStaticConfig.ts +76 -0
  419. package/src/helpers/fixNativeShadow.tsx +2 -0
  420. package/src/helpers/getAnimationDriver.tsx +5 -0
  421. package/src/helpers/getExpandedShorthands.ts +15 -0
  422. package/src/helpers/getFont.tsx +43 -0
  423. package/src/helpers/getFontLanguage.ts +2 -0
  424. package/src/helpers/getSize.ts +22 -0
  425. package/src/helpers/getSplitStyles.tsx +738 -0
  426. package/src/helpers/getStackSize.ts +22 -0
  427. package/src/helpers/getStylesAtomic.native.ts +3 -0
  428. package/src/helpers/getStylesAtomic.ts +292 -0
  429. package/src/helpers/getThemeCSSRules.native.ts +3 -0
  430. package/src/helpers/getThemeCSSRules.ts +105 -0
  431. package/src/helpers/getVariantExtras.tsx +84 -0
  432. package/src/helpers/insertStyleRule.tsx +150 -0
  433. package/src/helpers/isObj.ts +1 -0
  434. package/src/helpers/isTamaguiComponent.tsx +15 -0
  435. package/src/helpers/isTamaguiElement.tsx +12 -0
  436. package/src/helpers/matchMedia.native.ts +6 -0
  437. package/src/helpers/matchMedia.ts +16 -0
  438. package/src/helpers/mergeProps.ts +56 -0
  439. package/src/helpers/mergeTransform.ts +16 -0
  440. package/src/helpers/normalizeColor.ts +53 -0
  441. package/src/helpers/normalizeValueWithProperty.ts +80 -0
  442. package/src/helpers/proxyThemeVariables.tsx +18 -0
  443. package/src/helpers/pseudoDescriptors.ts +18 -0
  444. package/src/helpers/registerCSSVariable.ts +11 -0
  445. package/src/helpers/startTransition.ts +4 -0
  446. package/src/helpers/themeable.tsx +45 -0
  447. package/src/helpers/themes.ts +69 -0
  448. package/src/helpers/useShallowSetState.tsx +20 -0
  449. package/src/helpers/validate.ts +80 -0
  450. package/src/helpers/withStaticProperties.tsx +7 -0
  451. package/src/hooks/getThemeUnwrapped.tsx +8 -0
  452. package/src/hooks/useConstant.tsx +19 -0
  453. package/src/hooks/useId.tsx +1 -0
  454. package/src/hooks/useIsMounted.ts +16 -0
  455. package/src/hooks/useIsTouchDevice.tsx +20 -0
  456. package/src/hooks/useMedia.tsx +266 -0
  457. package/src/hooks/usePressable.tsx +9 -0
  458. package/src/hooks/useSafeRef.ts +49 -0
  459. package/src/hooks/useServerHooks.tsx +12 -0
  460. package/src/hooks/useTheme.tsx +299 -0
  461. package/src/hooks/useUnmountEffect.ts +5 -0
  462. package/src/index.ts +83 -0
  463. package/src/injectStyles.ts +20 -0
  464. package/src/insertFont.ts +70 -0
  465. package/src/static.ts +15 -0
  466. package/src/styled.tsx +198 -0
  467. package/src/types-rnw.tsx +162 -0
  468. package/src/types.tsx +1326 -0
  469. package/src/updateTheme.ts +23 -0
  470. package/src/vendor/Pressability.native.tsx +3 -0
  471. package/src/vendor/Pressability.tsx +2 -0
  472. package/src/views/FontLanguage.native.tsx +9 -0
  473. package/src/views/FontLanguage.tsx +18 -0
  474. package/src/views/FontLanguage.types.ts +13 -0
  475. package/src/views/Slot.tsx +147 -0
  476. package/src/views/Stack.tsx +24 -0
  477. package/src/views/TamaguiProvider.tsx +56 -0
  478. package/src/views/Text.tsx +79 -0
  479. package/src/views/Theme.tsx +72 -0
  480. package/src/views/ThemeInverse.tsx +33 -0
  481. package/src/views/ThemeProvider.tsx +63 -0
  482. package/src/views/ThemeReset.tsx +43 -0
  483. package/types/Tamagui.d.ts +7 -9
  484. package/types/addTheme.d.ts +11 -0
  485. package/types/config.d.ts +47 -0
  486. package/types/constants/constants.d.ts +1 -1
  487. package/types/constants/isDevTools.d.ts +2 -0
  488. package/types/constants/platform.d.ts +7 -6
  489. package/types/constants/platform.native.d.ts +13 -0
  490. package/types/contexts/FontLanguageContext.d.ts +5 -0
  491. package/types/{views → contexts}/TextAncestorContext.d.ts +0 -0
  492. package/types/{ThemeContext.d.ts → contexts/ThemeContext.d.ts} +1 -1
  493. package/types/createComponent.d.ts +32 -15
  494. package/types/createShorthands.d.ts +2 -1
  495. package/types/createTamagui.d.ts +2 -17
  496. package/types/createTheme.d.ts +1 -1
  497. package/types/createTokens.d.ts +5 -6
  498. package/types/createVariable.d.ts +24 -12
  499. package/types/createVariables.d.ts +10 -0
  500. package/types/helpers/RNComponents.d.ts +1 -1
  501. package/types/helpers/ThemeManager.d.ts +46 -0
  502. package/types/helpers/assignNativePropsToWeb.d.ts +2 -0
  503. package/types/helpers/assignNativePropsToWeb.native.d.ts +2 -0
  504. package/types/helpers/calc.d.ts +17 -0
  505. package/types/helpers/createMediaStyle.d.ts +2 -4
  506. package/types/helpers/createPropMapper.d.ts +6 -3
  507. package/types/helpers/expandStyle.d.ts +6 -0
  508. package/types/helpers/expandStyles.d.ts +26 -0
  509. package/types/helpers/getAnimationDriver.d.ts +6 -0
  510. package/types/helpers/getFont.d.ts +3 -0
  511. package/types/helpers/getFontLanguage.d.ts +2 -0
  512. package/types/helpers/getSize.d.ts +3 -2
  513. package/types/helpers/getSplitStyles.d.ts +16 -9
  514. package/types/helpers/getStackSize.d.ts +8 -0
  515. package/types/helpers/getStylesAtomic.d.ts +17 -22
  516. package/types/helpers/getThemeCSSRules.d.ts +8 -0
  517. package/types/helpers/getThemeCSSRules.native.d.ts +2 -0
  518. package/types/helpers/getVariantExtras.d.ts +5 -0
  519. package/types/helpers/insertStyleRule.d.ts +7 -3
  520. package/types/helpers/isTamaguiComponent.d.ts +5 -0
  521. package/types/helpers/isTamaguiElement.d.ts +5 -1
  522. package/types/helpers/matchMedia.d.ts +1 -1
  523. package/types/helpers/mergeProps.d.ts +17 -0
  524. package/types/helpers/mergeTransform.d.ts +7 -0
  525. package/types/helpers/normalizeColor.d.ts +3 -0
  526. package/types/helpers/normalizeValueWithProperty.d.ts +6 -0
  527. package/types/helpers/pseudoDescriptors.d.ts +16 -0
  528. package/types/helpers/registerCSSVariable.d.ts +5 -0
  529. package/types/helpers/startTransition.d.ts +3 -0
  530. package/types/helpers/themes.d.ts +4 -0
  531. package/types/helpers/useShallowSetState.d.ts +3 -0
  532. package/types/helpers/validate.d.ts +0 -3
  533. package/types/hooks/getThemeUnwrapped.d.ts +3 -0
  534. package/types/hooks/useId.d.ts +1 -8
  535. package/types/hooks/useMedia.d.ts +20 -6
  536. package/types/hooks/useSafeRef.d.ts +4 -0
  537. package/types/hooks/useServerHooks.d.ts +4 -0
  538. package/types/hooks/useTheme.d.ts +21 -31
  539. package/types/index.d.ts +29 -9
  540. package/types/injectStyles.d.ts +7 -0
  541. package/types/insertFont.d.ts +9 -0
  542. package/types/static.d.ts +2 -15
  543. package/types/styled.d.ts +7 -3
  544. package/types/types.d.ts +303 -92
  545. package/types/updateTheme.d.ts +9 -0
  546. package/types/vendor/Pressability.d.ts +3 -0
  547. package/types/vendor/Pressability.native.d.ts +3 -0
  548. package/types/views/FontLanguage.d.ts +4 -0
  549. package/types/views/FontLanguage.native.d.ts +4 -0
  550. package/types/views/FontLanguage.types.d.ts +11 -0
  551. package/types/views/Slot.d.ts +5 -4
  552. package/types/views/TamaguiProvider.d.ts +4 -0
  553. package/types/views/Theme.d.ts +3 -9
  554. package/types/views/ThemeInverse.d.ts +4 -8
  555. package/types/views/ThemeProvider.d.ts +2 -1
  556. package/dist/cjs/ThemeContext.js.map +0 -7
  557. package/dist/cjs/ThemeManager.js.map +0 -7
  558. package/dist/cjs/conf.js.map +0 -7
  559. package/dist/cjs/constants/rnw.js +0 -46
  560. package/dist/cjs/constants/rnw.js.map +0 -7
  561. package/dist/cjs/defaultComponentState.js +0 -1
  562. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -87
  563. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
  564. package/dist/cjs/helpers/createTamaguiProvider.js +0 -93
  565. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  566. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -53
  567. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  568. package/dist/cjs/helpers/getButtonSize.js +0 -45
  569. package/dist/cjs/helpers/getButtonSize.js.map +0 -7
  570. package/dist/cjs/helpers/getTextSize.js.map +0 -7
  571. package/dist/cjs/helpers/nativeGestureHandler.js.map +0 -7
  572. package/dist/cjs/helpers/nativeGestureHandler.native.js.map +0 -7
  573. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +0 -7
  574. package/dist/cjs/hooks/useFeatures.js +0 -228
  575. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  576. package/dist/cjs/hooks/usePrevious.js +0 -1
  577. package/dist/cjs/hooks/usePrevious.js.map +0 -7
  578. package/dist/cjs/nativeGestureHandler.native.js.map +0 -7
  579. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  580. package/dist/esm/ThemeContext.js.map +0 -7
  581. package/dist/esm/ThemeManager.js.map +0 -7
  582. package/dist/esm/conf.js +0 -36
  583. package/dist/esm/conf.js.map +0 -7
  584. package/dist/esm/constants/rnw.js +0 -24
  585. package/dist/esm/constants/rnw.js.map +0 -7
  586. package/dist/esm/defaultComponentState.js +0 -1
  587. package/dist/esm/defaultComponentState.js.map +0 -7
  588. package/dist/esm/helpers/addStylesUsingClassname.js +0 -64
  589. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
  590. package/dist/esm/helpers/createTamaguiProvider.js +0 -40
  591. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  592. package/dist/esm/helpers/fixNativeShadow.native.js +0 -32
  593. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  594. package/dist/esm/helpers/getButtonSize.js +0 -24
  595. package/dist/esm/helpers/getButtonSize.js.map +0 -7
  596. package/dist/esm/helpers/getTextSize.js.map +0 -7
  597. package/dist/esm/helpers/nativeGestureHandler.js +0 -7
  598. package/dist/esm/helpers/nativeGestureHandler.js.map +0 -7
  599. package/dist/esm/helpers/nativeGestureHandler.native.js +0 -2
  600. package/dist/esm/helpers/nativeGestureHandler.native.js.map +0 -7
  601. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -14
  602. package/dist/esm/helpers/wrapThemeManagerContext.js.map +0 -7
  603. package/dist/esm/hooks/useFeatures.js +0 -173
  604. package/dist/esm/hooks/useFeatures.js.map +0 -7
  605. package/dist/esm/hooks/usePrevious.js +0 -1
  606. package/dist/esm/hooks/usePrevious.js.map +0 -7
  607. package/dist/esm/nativeGestureHandler.native.js +0 -2
  608. package/dist/esm/nativeGestureHandler.native.js.map +0 -7
  609. package/dist/esm/views/TextAncestorContext.js +0 -18
  610. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  611. package/dist/jsx/Tamagui.js +0 -41
  612. package/dist/jsx/ThemeContext.js +0 -5
  613. package/dist/jsx/ThemeManager.js +0 -186
  614. package/dist/jsx/conf.js +0 -35
  615. package/dist/jsx/constants/constants.js +0 -17
  616. package/dist/jsx/constants/platform.js +0 -25
  617. package/dist/jsx/constants/rnw.js +0 -23
  618. package/dist/jsx/contexts/ButtonInsideButtonContext.js +0 -5
  619. package/dist/jsx/createComponent.js +0 -636
  620. package/dist/jsx/createFont.js +0 -27
  621. package/dist/jsx/createShorthands.js +0 -9
  622. package/dist/jsx/createTamagui.js +0 -201
  623. package/dist/jsx/createTheme.js +0 -6
  624. package/dist/jsx/createTokens.js +0 -28
  625. package/dist/jsx/createVariable.js +0 -48
  626. package/dist/jsx/defaultComponentState.js +0 -0
  627. package/dist/jsx/helpers/RNComponents.js +0 -11
  628. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -63
  629. package/dist/jsx/helpers/areEqualSets.js +0 -15
  630. package/dist/jsx/helpers/createMediaStyle.js +0 -30
  631. package/dist/jsx/helpers/createPropMapper.js +0 -237
  632. package/dist/jsx/helpers/createShallowUpdate.js +0 -18
  633. package/dist/jsx/helpers/createTamaguiProvider.js +0 -34
  634. package/dist/jsx/helpers/extendStaticConfig.js +0 -61
  635. package/dist/jsx/helpers/fixNativeShadow.js +0 -7
  636. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -31
  637. package/dist/jsx/helpers/getButtonSize.js +0 -23
  638. package/dist/jsx/helpers/getExpandedShorthands.js +0 -18
  639. package/dist/jsx/helpers/getSize.js +0 -12
  640. package/dist/jsx/helpers/getSplitStyles.js +0 -322
  641. package/dist/jsx/helpers/getStylesAtomic.js +0 -130
  642. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
  643. package/dist/jsx/helpers/getTextSize.js +0 -33
  644. package/dist/jsx/helpers/insertStyleRule.js +0 -94
  645. package/dist/jsx/helpers/isObj.js +0 -6
  646. package/dist/jsx/helpers/isTamaguiElement.js +0 -10
  647. package/dist/jsx/helpers/matchMedia.js +0 -17
  648. package/dist/jsx/helpers/matchMedia.native.js +0 -8
  649. package/dist/jsx/helpers/nativeGestureHandler.js +0 -6
  650. package/dist/jsx/helpers/nativeGestureHandler.native.js +0 -1
  651. package/dist/jsx/helpers/proxyThemeVariables.js +0 -17
  652. package/dist/jsx/helpers/themeable.js +0 -24
  653. package/dist/jsx/helpers/validate.js +0 -75
  654. package/dist/jsx/helpers/withStaticProperties.js +0 -9
  655. package/dist/jsx/helpers/wrapThemeManagerContext.js +0 -10
  656. package/dist/jsx/hooks/useConstant.js +0 -14
  657. package/dist/jsx/hooks/useFeatures.js +0 -167
  658. package/dist/jsx/hooks/useId.js +0 -34
  659. package/dist/jsx/hooks/useIsMounted.js +0 -18
  660. package/dist/jsx/hooks/useIsTouchDevice.js +0 -16
  661. package/dist/jsx/hooks/useMedia.js +0 -158
  662. package/dist/jsx/hooks/usePressable.js +0 -13
  663. package/dist/jsx/hooks/usePrevious.js +0 -0
  664. package/dist/jsx/hooks/useTheme.js +0 -177
  665. package/dist/jsx/hooks/useUnmountEffect.js +0 -10
  666. package/dist/jsx/index.js +0 -54
  667. package/dist/jsx/nativeGestureHandler.native.js +0 -1
  668. package/dist/jsx/static.js +0 -16
  669. package/dist/jsx/styled.js +0 -47
  670. package/dist/jsx/types-rnw.js +0 -0
  671. package/dist/jsx/types.js +0 -0
  672. package/dist/jsx/views/Slot.js +0 -75
  673. package/dist/jsx/views/Stack.js +0 -12
  674. package/dist/jsx/views/Text.js +0 -56
  675. package/dist/jsx/views/TextAncestorContext.js +0 -15
  676. package/dist/jsx/views/Theme.js +0 -31
  677. package/dist/jsx/views/ThemeInverse.js +0 -27
  678. package/dist/jsx/views/ThemeProvider.js +0 -35
  679. package/dist/jsx/views/ThemeReset.js +0 -34
  680. package/types/Tamagui.d.ts.map +0 -1
  681. package/types/ThemeContext.d.ts.map +0 -1
  682. package/types/ThemeManager.d.ts +0 -49
  683. package/types/ThemeManager.d.ts.map +0 -1
  684. package/types/conf.d.ts +0 -27
  685. package/types/conf.d.ts.map +0 -1
  686. package/types/constants/constants.d.ts.map +0 -1
  687. package/types/constants/platform.d.ts.map +0 -1
  688. package/types/constants/rnw.d.ts +0 -2
  689. package/types/constants/rnw.d.ts.map +0 -1
  690. package/types/contexts/ButtonInsideButtonContext.d.ts.map +0 -1
  691. package/types/createComponent.d.ts.map +0 -1
  692. package/types/createFont.d.ts.map +0 -1
  693. package/types/createShorthands.d.ts.map +0 -1
  694. package/types/createTamagui.d.ts.map +0 -1
  695. package/types/createTheme.d.ts.map +0 -1
  696. package/types/createTokens.d.ts.map +0 -1
  697. package/types/createVariable.d.ts.map +0 -1
  698. package/types/defaultComponentState.d.ts +0 -1
  699. package/types/defaultComponentState.d.ts.map +0 -1
  700. package/types/helpers/RNComponents.d.ts.map +0 -1
  701. package/types/helpers/addStylesUsingClassname.d.ts +0 -3
  702. package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
  703. package/types/helpers/areEqualSets.d.ts.map +0 -1
  704. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  705. package/types/helpers/createPropMapper.d.ts.map +0 -1
  706. package/types/helpers/createShallowUpdate.d.ts +0 -4
  707. package/types/helpers/createShallowUpdate.d.ts.map +0 -1
  708. package/types/helpers/createTamaguiProvider.d.ts +0 -7
  709. package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
  710. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  711. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  712. package/types/helpers/fixNativeShadow.native.d.ts +0 -3
  713. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  714. package/types/helpers/getButtonSize.d.ts +0 -8
  715. package/types/helpers/getButtonSize.d.ts.map +0 -1
  716. package/types/helpers/getExpandedShorthands.d.ts.map +0 -1
  717. package/types/helpers/getSize.d.ts.map +0 -1
  718. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  719. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  720. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  721. package/types/helpers/getTextSize.d.ts +0 -3
  722. package/types/helpers/getTextSize.d.ts.map +0 -1
  723. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  724. package/types/helpers/isObj.d.ts.map +0 -1
  725. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  726. package/types/helpers/matchMedia.d.ts.map +0 -1
  727. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  728. package/types/helpers/nativeGestureHandler.d.ts +0 -2
  729. package/types/helpers/nativeGestureHandler.d.ts.map +0 -1
  730. package/types/helpers/nativeGestureHandler.native.d.ts +0 -2
  731. package/types/helpers/nativeGestureHandler.native.d.ts.map +0 -1
  732. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  733. package/types/helpers/themeable.d.ts.map +0 -1
  734. package/types/helpers/validate.d.ts.map +0 -1
  735. package/types/helpers/withStaticProperties.d.ts.map +0 -1
  736. package/types/helpers/wrapThemeManagerContext.d.ts +0 -3
  737. package/types/helpers/wrapThemeManagerContext.d.ts.map +0 -1
  738. package/types/hooks/useConstant.d.ts.map +0 -1
  739. package/types/hooks/useFeatures.d.ts +0 -18
  740. package/types/hooks/useFeatures.d.ts.map +0 -1
  741. package/types/hooks/useId.d.ts.map +0 -1
  742. package/types/hooks/useIsMounted.d.ts.map +0 -1
  743. package/types/hooks/useIsTouchDevice.d.ts.map +0 -1
  744. package/types/hooks/useMedia.d.ts.map +0 -1
  745. package/types/hooks/usePressable.d.ts.map +0 -1
  746. package/types/hooks/usePrevious.d.ts +0 -1
  747. package/types/hooks/usePrevious.d.ts.map +0 -1
  748. package/types/hooks/useTheme.d.ts.map +0 -1
  749. package/types/hooks/useUnmountEffect.d.ts.map +0 -1
  750. package/types/index.d.ts.map +0 -1
  751. package/types/nativeGestureHandler.native.d.ts +0 -2
  752. package/types/nativeGestureHandler.native.d.ts.map +0 -1
  753. package/types/static.d.ts.map +0 -1
  754. package/types/styled.d.ts.map +0 -1
  755. package/types/types-rnw.d.ts.map +0 -1
  756. package/types/types.d.ts.map +0 -1
  757. package/types/views/Slot.d.ts.map +0 -1
  758. package/types/views/Stack.d.ts.map +0 -1
  759. package/types/views/Text.d.ts.map +0 -1
  760. package/types/views/TextAncestorContext.d.ts.map +0 -1
  761. package/types/views/Theme.d.ts.map +0 -1
  762. package/types/views/ThemeInverse.d.ts.map +0 -1
  763. package/types/views/ThemeProvider.d.ts.map +0 -1
  764. package/types/views/ThemeReset.d.ts.map +0 -1
@@ -0,0 +1,67 @@
1
+ import { setConfigFont } from "./config";
2
+ import { createFont } from "./createFont";
3
+ import { createVariables } from "./createVariables";
4
+ import { registerCSSVariable, variableToCSS } from "./helpers/registerCSSVariable";
5
+ function insertFont(name, fontIn) {
6
+ const font = createFont(fontIn);
7
+ const tokened = createVariables(font, name);
8
+ const parsed = parseFont(tokened);
9
+ if (process.env.TAMAGUI_TARGET === "web" && typeof document !== "undefined") {
10
+ const fontVars = registerFontVariables(parsed);
11
+ const style = document.createElement("style");
12
+ style.innerText = `:root .font_${name} {${fontVars.join(";")}}`;
13
+ style.setAttribute("data-tamagui-font", name);
14
+ document.head.appendChild(style);
15
+ }
16
+ setConfigFont(name, tokened, parsed);
17
+ return parsed;
18
+ }
19
+ function parseFont(definition) {
20
+ var _a;
21
+ const parsed = {};
22
+ for (const attrKey in definition) {
23
+ const attr = definition[attrKey];
24
+ if (attrKey === "family" || attrKey === "face") {
25
+ parsed[attrKey] = attr;
26
+ continue;
27
+ }
28
+ parsed[attrKey] = {};
29
+ for (const key in attr) {
30
+ let val = attr[key];
31
+ if (((_a = val.val) == null ? void 0 : _a[0]) === "$") {
32
+ val = val.val;
33
+ }
34
+ parsed[attrKey][`$${key}`] = val;
35
+ }
36
+ }
37
+ return parsed;
38
+ }
39
+ function registerFontVariables(parsedFont) {
40
+ const response = [];
41
+ for (const fkey in parsedFont) {
42
+ if (fkey === "face")
43
+ continue;
44
+ if (fkey === "family") {
45
+ const val = parsedFont[fkey];
46
+ registerCSSVariable(val);
47
+ response.push(variableToCSS(val));
48
+ } else {
49
+ for (const fskey in parsedFont[fkey]) {
50
+ const fval = parsedFont[fkey][fskey];
51
+ if (typeof fval === "string") {
52
+ } else {
53
+ const val = parsedFont[fkey][fskey];
54
+ registerCSSVariable(val);
55
+ response.push(variableToCSS(val));
56
+ }
57
+ }
58
+ }
59
+ }
60
+ return response;
61
+ }
62
+ export {
63
+ insertFont,
64
+ parseFont,
65
+ registerFontVariables
66
+ };
67
+ //# sourceMappingURL=insertFont.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/insertFont.ts"],
4
+ "sourcesContent": ["import { setConfigFont } from './config'\nimport { createFont } from './createFont'\nimport { Variable } from './createVariable'\nimport { DeepVariableObject, createVariables } from './createVariables'\nimport { registerCSSVariable, variableToCSS } from './helpers/registerCSSVariable'\nimport { GenericFont } from './types'\n\n/**\n * Runtime dynamic insert font\n */\nexport function insertFont<A extends GenericFont>(name: string, fontIn: A): DeepVariableObject<A> {\n const font = createFont(fontIn)\n const tokened = createVariables(font, name) as GenericFont\n const parsed = parseFont(tokened) as DeepVariableObject<A>\n if (process.env.TAMAGUI_TARGET === 'web' && typeof document !== 'undefined') {\n const fontVars = registerFontVariables(parsed)\n const style = document.createElement('style')\n style.innerText = `:root .font_${name} {${fontVars.join(';')}}`\n style.setAttribute('data-tamagui-font', name)\n document.head.appendChild(style)\n }\n setConfigFont(name, tokened, parsed)\n return parsed\n}\n\nexport function parseFont<A extends GenericFont>(definition: A): DeepVariableObject<A> {\n const parsed: any = {}\n for (const attrKey in definition) {\n const attr = definition[attrKey]\n if (attrKey === 'family' || attrKey === 'face') {\n parsed[attrKey] = attr\n continue\n }\n parsed[attrKey] = {}\n for (const key in attr) {\n let val = attr[key] as any\n // is a theme reference\n if (val.val?.[0] === '$') {\n val = val.val\n }\n parsed[attrKey][`$${key}`] = val\n }\n }\n return parsed\n}\n\nexport function registerFontVariables(parsedFont: any) {\n const response: string[] = []\n\n for (const fkey in parsedFont) {\n if (fkey === 'face') continue\n if (fkey === 'family') {\n const val = parsedFont[fkey] as Variable\n registerCSSVariable(val)\n response.push(variableToCSS(val))\n } else {\n for (const fskey in parsedFont[fkey]) {\n const fval = parsedFont[fkey][fskey]\n if (typeof fval === 'string') {\n // no need to add its a theme reference like \"$borderColor\"\n } else {\n const val = parsedFont[fkey][fskey] as Variable\n registerCSSVariable(val)\n response.push(variableToCSS(val))\n }\n }\n }\n }\n return response\n}\n"],
5
+ "mappings": "AAAA,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAE3B,SAA6B,uBAAuB;AACpD,SAAS,qBAAqB,qBAAqB;AAM5C,SAAS,WAAkC,MAAc,QAAkC;AAChG,QAAM,OAAO,WAAW,MAAM;AAC9B,QAAM,UAAU,gBAAgB,MAAM,IAAI;AAC1C,QAAM,SAAS,UAAU,OAAO;AAChC,MAAI,QAAQ,IAAI,mBAAmB,SAAS,OAAO,aAAa,aAAa;AAC3E,UAAM,WAAW,sBAAsB,MAAM;AAC7C,UAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,UAAM,YAAY,eAAe,SAAS,SAAS,KAAK,GAAG;AAC3D,UAAM,aAAa,qBAAqB,IAAI;AAC5C,aAAS,KAAK,YAAY,KAAK;AAAA,EACjC;AACA,gBAAc,MAAM,SAAS,MAAM;AACnC,SAAO;AACT;AAEO,SAAS,UAAiC,YAAsC;AAzBvF;AA0BE,QAAM,SAAc,CAAC;AACrB,aAAW,WAAW,YAAY;AAChC,UAAM,OAAO,WAAW;AACxB,QAAI,YAAY,YAAY,YAAY,QAAQ;AAC9C,aAAO,WAAW;AAClB;AAAA,IACF;AACA,WAAO,WAAW,CAAC;AACnB,eAAW,OAAO,MAAM;AACtB,UAAI,MAAM,KAAK;AAEf,YAAI,SAAI,QAAJ,mBAAU,QAAO,KAAK;AACxB,cAAM,IAAI;AAAA,MACZ;AACA,aAAO,SAAS,IAAI,SAAS;AAAA,IAC/B;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,sBAAsB,YAAiB;AACrD,QAAM,WAAqB,CAAC;AAE5B,aAAW,QAAQ,YAAY;AAC7B,QAAI,SAAS;AAAQ;AACrB,QAAI,SAAS,UAAU;AACrB,YAAM,MAAM,WAAW;AACvB,0BAAoB,GAAG;AACvB,eAAS,KAAK,cAAc,GAAG,CAAC;AAAA,IAClC,OAAO;AACL,iBAAW,SAAS,WAAW,OAAO;AACpC,cAAM,OAAO,WAAW,MAAM;AAC9B,YAAI,OAAO,SAAS,UAAU;AAAA,QAE9B,OAAO;AACL,gBAAM,MAAM,WAAW,MAAM;AAC7B,8BAAoB,GAAG;AACvB,mBAAS,KAAK,cAAc,GAAG,CAAC;AAAA,QAClC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -1,17 +1,17 @@
1
- export * from "./styled";
2
- export * from "./createComponent";
3
- export * from "./createFont";
4
- export * from "./createTokens";
5
- export * from "./createTamagui";
6
- export * from "./createVariable";
7
- export * from "./constants/constants";
8
- export * from "./hooks/useMedia";
9
- export * from "./hooks/useTheme";
10
- export * from "./helpers/isObj";
11
- export * from "./helpers/getStylesAtomic";
1
+ export * from "./index";
2
+ import {
3
+ createDOMProps,
4
+ useElementLayout,
5
+ useMergeRefs,
6
+ usePlatformMethods,
7
+ useResponderEvents
8
+ } from "@tamagui/rnw";
12
9
  export * from "./helpers/proxyThemeVariables";
13
- export * from "./helpers/getSplitStyles";
14
- export * from "@tamagui/helpers";
15
- export * from "./constants/rnw";
16
- export * from "./types";
10
+ export {
11
+ createDOMProps,
12
+ useElementLayout,
13
+ useMergeRefs,
14
+ usePlatformMethods,
15
+ useResponderEvents
16
+ };
17
17
  //# sourceMappingURL=static.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/static.ts"],
4
- "sourcesContent": ["// only stuff that gets extracted or needed by tamagui-static\n\nexport * from './styled'\nexport * from './createComponent'\nexport * from './createFont'\nexport * from './createTokens'\nexport * from './createTamagui'\nexport * from './createVariable'\nexport * from './constants/constants'\n\nexport * from './hooks/useMedia'\nexport * from './hooks/useTheme'\n\nexport * from './helpers/isObj'\nexport * from './helpers/getStylesAtomic'\nexport * from './helpers/proxyThemeVariables'\nexport * from './helpers/getSplitStyles'\nexport * from '@tamagui/helpers'\n\nexport * from './constants/rnw'\n\nexport * from './types'\n"],
5
- "mappings": "AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;",
4
+ "sourcesContent": ["// only stuff that gets extracted or needed by tamagui-static\n\nexport * from './index'\n\n// for static\n\nexport {\n createDOMProps,\n useElementLayout,\n useMergeRefs,\n usePlatformMethods,\n useResponderEvents,\n} from '@tamagui/rnw'\n\nexport * from './helpers/proxyThemeVariables'\n"],
5
+ "mappings": "AAEA,cAAc;AAId;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,23 +1,48 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
1
  import { Image, Text, TextInput } from "react-native";
4
2
  import { createComponent } from "./createComponent";
5
3
  import { RNComponents } from "./helpers/RNComponents";
6
4
  function styled(Component, options, staticExtractionOptions) {
7
5
  const staticConfigProps = (() => {
8
- var _a;
6
+ const parentStaticConfig = "staticConfig" in Component ? Component.staticConfig : null;
7
+ if (process.env.NODE_ENV === "development") {
8
+ if (parentStaticConfig == null ? void 0 : parentStaticConfig.isHOC) {
9
+ console.warn(
10
+ `Warning: Parent component is a functional component, not a Tamagui styled() component. Extending with styled() will break and lead to incorrect styles.`
11
+ );
12
+ }
13
+ }
9
14
  if (options) {
10
- const { variants, name, defaultVariants, ...defaultProps } = options;
15
+ const {
16
+ variants,
17
+ name,
18
+ defaultVariants,
19
+ acceptsClassName: acceptsClassNameProp,
20
+ ...defaultProps
21
+ } = options;
11
22
  if (defaultVariants) {
12
23
  Object.assign(defaultProps, defaultVariants);
13
24
  }
14
- const isReactNativeWeb = "staticConfig" in Component ? Component.staticConfig.isReactNativeWeb : RNComponents.has(Component);
15
- const reactNativeWebComponent = isReactNativeWeb ? ((_a = Component["staticConfig"]) == null ? void 0 : _a.reactNativeWebComponent) || Component : null;
16
- const isTamagui = !isReactNativeWeb && "staticConfig" in Component;
25
+ let isReactNativeWeb = (parentStaticConfig == null ? void 0 : parentStaticConfig.isReactNativeWeb) || RNComponents.has(Component);
26
+ if (!("staticConfig" in Component) && !isReactNativeWeb) {
27
+ if (RNComponents.has(Component["displayName"])) {
28
+ RNComponents.add(Component);
29
+ isReactNativeWeb = true;
30
+ } else {
31
+ }
32
+ }
33
+ const reactNativeWebComponent = isReactNativeWeb ? (parentStaticConfig == null ? void 0 : parentStaticConfig.reactNativeWebComponent) || Component : null;
34
+ const isTamagui = !isReactNativeWeb && !!parentStaticConfig;
17
35
  const Comp = reactNativeWebComponent || Component;
18
- const isImage = !!(defaultProps.isImage || (!isTamagui ? Comp === Image : false));
19
- const isInput = !!(defaultProps.isInput || (!isTamagui ? Comp === TextInput : false));
20
- const isText = !!(defaultProps.isText || (!isTamagui ? isInput || Comp === Text : false));
36
+ const isImage = Boolean(
37
+ (staticExtractionOptions == null ? void 0 : staticExtractionOptions.isImage) || (parentStaticConfig == null ? void 0 : parentStaticConfig.isImage) || Comp === Image
38
+ );
39
+ const isInput = Boolean(
40
+ (staticExtractionOptions == null ? void 0 : staticExtractionOptions.isInput) || (parentStaticConfig == null ? void 0 : parentStaticConfig.isInput) || Comp === TextInput
41
+ );
42
+ const isText = Boolean(
43
+ isInput || (staticExtractionOptions == null ? void 0 : staticExtractionOptions.isText) || (parentStaticConfig == null ? void 0 : parentStaticConfig.isText) || Comp === Text
44
+ );
45
+ const acceptsClassName = acceptsClassNameProp ?? (isTamagui || isReactNativeWeb);
21
46
  const conf = {
22
47
  ...staticExtractionOptions,
23
48
  ...!isTamagui && {
@@ -32,8 +57,12 @@ function styled(Component, options, staticExtractionOptions) {
32
57
  reactNativeWebComponent,
33
58
  isInput,
34
59
  isText,
35
- isImage
60
+ isImage,
61
+ acceptsClassName
36
62
  };
63
+ if (defaultProps.children || !acceptsClassName) {
64
+ conf.neverFlatten = true;
65
+ }
37
66
  return conf;
38
67
  }
39
68
  return {};
@@ -41,7 +70,6 @@ function styled(Component, options, staticExtractionOptions) {
41
70
  const component = createComponent(staticConfigProps, Component);
42
71
  return component;
43
72
  }
44
- __name(styled, "styled");
45
73
  export {
46
74
  styled
47
75
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/styled.tsx"],
4
- "sourcesContent": ["import { Image, Text, TextInput } from 'react-native'\n\nimport { createComponent } from './createComponent'\nimport { RNComponents } from './helpers/RNComponents'\nimport {\n GetProps,\n GetVariantValues,\n MediaProps,\n PseudoProps,\n StaticConfig,\n StylableComponent,\n TamaguiComponent,\n VariantDefinitions,\n VariantSpreadFunction,\n} from './types'\n\n// TODO may be able to use this in the options?: arg below directly\nexport type StyledOptions<ParentComponent extends StylableComponent> = GetProps<ParentComponent> & {\n name?: string\n variants?: VariantDefinitions<ParentComponent> | undefined\n defaultVariants?: { [key: string]: any }\n}\n\nexport function styled<\n ParentComponent extends StylableComponent,\n Variants extends VariantDefinitions<ParentComponent> | symbol =\n | VariantDefinitions<ParentComponent>\n | symbol\n>(\n Component: ParentComponent,\n // this should be Partial<GetProps<ParentComponent>> but causes excessively deep type issues\n options?: GetProps<ParentComponent> & {\n name?: string\n variants?: Variants | undefined\n // thought i had this typed, but can't get it linked\n defaultVariants?: { [key: string]: any }\n },\n staticExtractionOptions?: Partial<StaticConfig>\n) {\n const staticConfigProps = (() => {\n if (options) {\n const { variants, name, defaultVariants, ...defaultProps } = options\n if (defaultVariants) {\n Object.assign(defaultProps, defaultVariants)\n }\n const isReactNativeWeb =\n 'staticConfig' in Component\n ? Component.staticConfig.isReactNativeWeb\n : RNComponents.has(Component)\n const reactNativeWebComponent = isReactNativeWeb\n ? Component['staticConfig']?.reactNativeWebComponent || Component\n : null\n const isTamagui = !isReactNativeWeb && 'staticConfig' in Component\n const Comp = reactNativeWebComponent || (Component as any)\n const isImage = !!(defaultProps.isImage || (!isTamagui ? Comp === Image : false))\n const isInput = !!(defaultProps.isInput || (!isTamagui ? Comp === TextInput : false))\n const isText = !!(defaultProps.isText || (!isTamagui ? isInput || Comp === Text : false))\n const conf: Partial<StaticConfig> = {\n ...staticExtractionOptions,\n ...(!isTamagui && {\n Component: Comp,\n }),\n isTamagui,\n // this type gets messed up by options?: Partial<GetProps<ParentComponent>> above\n // take away the Partial<> and it's fine\n variants,\n defaultProps,\n defaultVariants,\n componentName: name,\n isReactNativeWeb,\n // for nesting multiple levels of rnw styled() need keep use the OG component\n reactNativeWebComponent,\n isInput,\n isText,\n isImage,\n }\n\n return conf\n }\n return {}\n })()\n\n const component = createComponent(staticConfigProps, Component)\n\n // get parent props without pseudos and medias so we can rebuild both with new variants\n type ParentPropsBase = ParentComponent extends TamaguiComponent<any, any, infer P>\n ? P\n : GetProps<ParentComponent>\n type ParentVariants = ParentComponent extends TamaguiComponent<any, any, any, infer V> ? V : {}\n\n type OurVariants = Variants extends symbol\n ? {}\n : {\n [Key in keyof Variants]?: Variants[Key] extends VariantSpreadFunction<any, infer Val>\n ? Val\n : GetVariantValues<keyof Variants[Key]>\n }\n\n type VariantProps = Omit<ParentVariants, keyof OurVariants> & OurVariants\n type OurPropsBase = ParentPropsBase & VariantProps\n\n type Props = Variants extends void | symbol\n ? GetProps<ParentComponent>\n : // start with base props\n OurPropsBase &\n // add in media (+ pseudos nested)\n MediaProps<Partial<OurPropsBase>> &\n // add in pseudos\n PseudoProps<Partial<OurPropsBase>>\n\n return component as TamaguiComponent<\n Props,\n // TODO infer ref\n any,\n ParentPropsBase,\n ParentVariants & OurVariants\n >\n}\n\n// test types:\n// // variants\n// export const XStack = styled(Stack, {\n// flexDirection: 'row',\n// name: 'XStack',\n// variants: {\n// fullscreen: {\n// true: {},\n// },\n// elevation: {\n// '...size': (val) => ({}),\n// },\n// },\n// })\n// const InBetween = styled(XStack, {})\n// type INBVariants = typeof InBetween extends TamaguiComponent<any, any, any, infer Variants> ? Variants: never\n// const SwitchFrame = styled(InBetween, {\n// name: 'Switch',\n// tag: 'button',\n// borderRadius: 100,\n// borderWidth: 0,\n// variants: {\n// name: {\n// true: {\n// backgroundColor: 'aliceblue'\n// },\n// // 1: {\n\n// // },\n// // ':number': (val) => {\n// // return {}\n// // },\n// // \"...fontSize\": (val) => {\n// // return {}\n// // },\n// // \"...color\": (val) => {\n// // return {}\n// // }\n// }\n// },\n// defaultVariants: {\n// size: '$4',\n// },\n// })\n// const x = <XStack fullscreen />\n// const y = <XStack fullscreen />\n// const z = <SwitchFrame fullscreen name />\n\n// depth:\n// export const SizableText = styled(Stack, {\n// name: 'SizableText',\n// backgroundColor: 'red',\n// variants: {\n// size: {\n// '...fontSize': (val, { props }) => {\n// return {\n// backgroundColor: '',\n// }\n// },\n// },\n// },\n// })\n// export const Heading = styled(SizableText, {\n// tag: 'span',\n// name: 'Heading',\n// accessibilityRole: 'header',\n// size: '$8',\n// margin: 0,\n// })\n// export const Paragraph = styled(SizableText, {\n// tag: 'p',\n// margin: 10,\n// variants: {\n// another: {\n// true: {},\n// },\n// },\n// })\n// export const Paragraph2 = styled(Paragraph, {\n// tag: 'p',\n// variants: {\n// another: {\n// '...color': (val) => ({\n// backgroundColor: 'red',\n// }),\n// },\n// },\n// })\n// const a = <SizableText size=\"$10\" />\n// const b = <Paragraph size=\"$10\" another />\n// const c = <Paragraph2 size=\"$10\" another=\"aliceblue\" />\n// export const SizableText2 = styled(SizableText, {\n// })\n// const xx = <SizableText2 abc />\n// export const Paragraph = styled(SizableText, {\n// name: 'Paragraph',\n// })\n// export const Heading = styled(Paragraph, {\n// tag: 'span',\n// margin: 0,\n// })\n// export const H2 = styled(Heading, {\n// name: 'H2',\n// })\n// const x = <H2 color=\"red\" />\n"],
5
- "mappings": ";;AAAA;AAEA;AACA;AAoBO,gBAML,WAEA,SAMA,yBACA;AACA,QAAM,oBAAqB,OAAM;AAvCnC;AAwCI,QAAI,SAAS;AACX,YAAM,EAAE,UAAU,MAAM,oBAAoB,iBAAiB;AAC7D,UAAI,iBAAiB;AACnB,eAAO,OAAO,cAAc,eAAe;AAAA,MAC7C;AACA,YAAM,mBACJ,kBAAkB,YACd,UAAU,aAAa,mBACvB,aAAa,IAAI,SAAS;AAChC,YAAM,0BAA0B,mBAC5B,iBAAU,oBAAV,mBAA2B,4BAA2B,YACtD;AACJ,YAAM,YAAY,CAAC,oBAAoB,kBAAkB;AACzD,YAAM,OAAO,2BAA4B;AACzC,YAAM,UAAU,CAAC,CAAE,cAAa,WAAY,EAAC,YAAY,SAAS,QAAQ;AAC1E,YAAM,UAAU,CAAC,CAAE,cAAa,WAAY,EAAC,YAAY,SAAS,YAAY;AAC9E,YAAM,SAAS,CAAC,CAAE,cAAa,UAAW,EAAC,YAAY,WAAW,SAAS,OAAO;AAClF,YAAM,OAA8B;AAAA,WAC/B;AAAA,WACC,CAAC,aAAa;AAAA,UAChB,WAAW;AAAA,QACb;AAAA,QACA;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AACA,WAAO,CAAC;AAAA,EACV,GAAG;AAEH,QAAM,YAAY,gBAAgB,mBAAmB,SAAS;AA4B9D,SAAO;AAOT;AA9FgB;",
4
+ "sourcesContent": ["import { Image, Text, TextInput } from 'react-native'\n\nimport { createComponent } from './createComponent'\nimport { TamaguiReactElement, isTamaguiElement } from './helpers/isTamaguiElement'\nimport { RNComponents } from './helpers/RNComponents'\nimport {\n GetProps,\n GetVariantValues,\n MediaProps,\n PseudoProps,\n StaticConfig,\n StylableComponent,\n TamaguiComponent,\n TamaguiElement,\n VariantDefinitions,\n VariantSpreadFunction,\n} from './types'\n\n// TODO may be able to use this in the options?: arg below directly\nexport type StyledOptions<ParentComponent extends StylableComponent> = GetProps<ParentComponent> & {\n name?: string\n variants?: VariantDefinitions<ParentComponent> | undefined\n defaultVariants?: { [key: string]: any }\n}\n\n// can't infer from styled(<YStack />) which would be nice\n// * excessively deep type instantiation\n\ntype GetBaseProps<A extends StylableComponent> =\n // A extends TamaguiReactElement\n // ? GetBaseProps<A['type']> :\n A extends TamaguiComponent<any, any, infer P> ? P : GetProps<A>\n\ntype GetVariantProps<A extends StylableComponent> =\n // A extends TamaguiReactElement\n // ? GetVariantProps<A['type']>\n // :\n A extends TamaguiComponent<any, any, any, infer V> ? V : {}\n\nexport function styled<\n ParentComponent extends StylableComponent,\n Variants extends VariantDefinitions<ParentComponent> | void = VariantDefinitions<ParentComponent> | void\n>(\n Component: ParentComponent,\n // this should be Partial<GetProps<ParentComponent>> but causes excessively deep type issues\n options?: GetProps<ParentComponent> & {\n name?: string\n variants?: Variants | undefined\n // thought i had this typed, but can't get it linked\n defaultVariants?: { [key: string]: any }\n acceptsClassName?: boolean\n },\n staticExtractionOptions?: Partial<StaticConfig>\n) {\n // * excessively deep type instantiation\n // if (isTamaguiElement(Component)) {\n // const props = Component.props\n // // @ts-ignore\n // Component = Component.type\n // options = options ? { ...props, ...options } : props\n // }\n\n const staticConfigProps = (() => {\n const parentStaticConfig =\n 'staticConfig' in Component ? (Component.staticConfig as StaticConfig) : null\n\n if (process.env.NODE_ENV === 'development') {\n if (parentStaticConfig?.isHOC) {\n // eslint-disable-next-line no-console\n console.warn(\n `Warning: Parent component is a functional component, not a Tamagui styled() component. Extending with styled() will break and lead to incorrect styles.`\n )\n }\n }\n\n if (options) {\n const {\n variants,\n name,\n defaultVariants,\n acceptsClassName: acceptsClassNameProp,\n ...defaultProps\n } = options\n if (defaultVariants) {\n Object.assign(defaultProps, defaultVariants)\n }\n let isReactNativeWeb = parentStaticConfig?.isReactNativeWeb || RNComponents.has(Component)\n // this can happen due to smart-ness in fake-react-native, rough heuristic here to ensure we match (could be better..)\n if (!('staticConfig' in Component) && !isReactNativeWeb) {\n if (RNComponents.has(Component['displayName'])) {\n RNComponents.add(Component)\n isReactNativeWeb = true\n } else {\n // assuming some sort of non-tamagui non-rn view, will always use style={}\n }\n }\n const reactNativeWebComponent = isReactNativeWeb\n ? parentStaticConfig?.reactNativeWebComponent || Component\n : null\n const isTamagui = !isReactNativeWeb && !!parentStaticConfig\n const Comp = reactNativeWebComponent || (Component as any)\n const isImage = Boolean(\n staticExtractionOptions?.isImage || parentStaticConfig?.isImage || Comp === Image\n )\n const isInput = Boolean(\n staticExtractionOptions?.isInput || parentStaticConfig?.isInput || Comp === TextInput\n )\n const isText = Boolean(\n isInput || staticExtractionOptions?.isText || parentStaticConfig?.isText || Comp === Text\n )\n\n const acceptsClassName = acceptsClassNameProp ?? (isTamagui || isReactNativeWeb)\n\n const conf: Partial<StaticConfig> = {\n ...staticExtractionOptions,\n ...(!isTamagui && {\n Component: Comp,\n }),\n isTamagui,\n // this type gets messed up by options?: Partial<GetProps<ParentComponent>> above\n // take away the Partial<> and it's fine\n variants,\n defaultProps,\n defaultVariants,\n componentName: name,\n isReactNativeWeb,\n // for nesting multiple levels of rnw styled() need keep use the OG component\n reactNativeWebComponent,\n isInput,\n isText,\n isImage,\n acceptsClassName,\n }\n\n // TODO compiler doesn't have logic to include children, de-opt (see EnsureFlexed for test usage)\n // bail on non className views as well\n if (defaultProps.children || !acceptsClassName) {\n conf.neverFlatten = true\n }\n\n return conf\n }\n return {}\n })()\n\n const component = createComponent(staticConfigProps, Component)\n\n // get parent props without pseudos and medias so we can rebuild both with new variants\n // get parent props without pseudos and medias so we can rebuild both with new variants\n type ParentPropsBase = GetBaseProps<ParentComponent>\n type ParentVariants = GetVariantProps<ParentComponent>\n\n type OurVariants = Variants extends void\n ? {}\n : {\n [Key in keyof Variants]?: Variants[Key] extends VariantSpreadFunction<any, infer Val>\n ? Val\n : GetVariantValues<keyof Variants[Key]>\n }\n\n type VariantProps = Omit<ParentVariants, keyof OurVariants> & OurVariants\n type OurPropsBase = ParentPropsBase & VariantProps\n\n type Props = Variants extends void\n ? GetProps<ParentComponent>\n : // start with base props\n OurPropsBase &\n // add in media (+ pseudos nested)\n MediaProps<Partial<OurPropsBase>> &\n // add in pseudos\n PseudoProps<Partial<OurPropsBase>>\n\n return component as TamaguiComponent<\n Props,\n TamaguiElement,\n ParentPropsBase,\n ParentVariants & OurVariants\n >\n}\n\n// import { Stack } from './views/Stack'\n// const X = styled(Stack, {\n// variants: {\n// size: {\n// '...size': (val) => {\n// return {}\n// }\n// },\n// disabled: {\n// true: {\n// opacity: 0.5,\n// pointerEvents: 'none',\n// },\n// },\n// } as const\n// })\n// type variants = GetStyledVariants<typeof X>\n// const y = <X disabled size=\"$10\" />\n"],
5
+ "mappings": "AAAA,SAAS,OAAO,MAAM,iBAAiB;AAEvC,SAAS,uBAAuB;AAEhC,SAAS,oBAAoB;AAmCtB,SAAS,OAId,WAEA,SAOA,yBACA;AASA,QAAM,qBAAqB,MAAM;AAC/B,UAAM,qBACJ,kBAAkB,YAAa,UAAU,eAAgC;AAE3E,QAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,UAAI,yDAAoB,OAAO;AAE7B,gBAAQ;AAAA,UACN;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,QAAI,SAAS;AACX,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,WACf;AAAA,MACL,IAAI;AACJ,UAAI,iBAAiB;AACnB,eAAO,OAAO,cAAc,eAAe;AAAA,MAC7C;AACA,UAAI,oBAAmB,yDAAoB,qBAAoB,aAAa,IAAI,SAAS;AAEzF,UAAI,EAAE,kBAAkB,cAAc,CAAC,kBAAkB;AACvD,YAAI,aAAa,IAAI,UAAU,cAAc,GAAG;AAC9C,uBAAa,IAAI,SAAS;AAC1B,6BAAmB;AAAA,QACrB,OAAO;AAAA,QAEP;AAAA,MACF;AACA,YAAM,0BAA0B,oBAC5B,yDAAoB,4BAA2B,YAC/C;AACJ,YAAM,YAAY,CAAC,oBAAoB,CAAC,CAAC;AACzC,YAAM,OAAO,2BAA4B;AACzC,YAAM,UAAU;AAAA,SACd,mEAAyB,aAAW,yDAAoB,YAAW,SAAS;AAAA,MAC9E;AACA,YAAM,UAAU;AAAA,SACd,mEAAyB,aAAW,yDAAoB,YAAW,SAAS;AAAA,MAC9E;AACA,YAAM,SAAS;AAAA,QACb,YAAW,mEAAyB,YAAU,yDAAoB,WAAU,SAAS;AAAA,MACvF;AAEA,YAAM,mBAAmB,yBAAyB,aAAa;AAE/D,YAAM,OAA8B;AAAA,QAClC,GAAG;AAAA,QACH,GAAI,CAAC,aAAa;AAAA,UAChB,WAAW;AAAA,QACb;AAAA,QACA;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAIA,UAAI,aAAa,YAAY,CAAC,kBAAkB;AAC9C,aAAK,eAAe;AAAA,MACtB;AAEA,aAAO;AAAA,IACT;AACA,WAAO,CAAC;AAAA,EACV,GAAG;AAEH,QAAM,YAAY,gBAAgB,mBAAmB,SAAS;AA2B9D,SAAO;AAMT;",
6
6
  "names": []
7
7
  }
File without changes
File without changes
package/dist/esm/types.js CHANGED
File without changes
File without changes
@@ -0,0 +1,23 @@
1
+ import { addTheme } from "./addTheme";
2
+ import { activeThemeManagers } from "./hooks/useTheme";
3
+ function updateTheme({ name, theme }) {
4
+ const next = addTheme({ name, theme, insertCSS: true, update: true });
5
+ if (process.env.TAMAGUI_TARGET === "native") {
6
+ activeThemeManagers.forEach((manager) => {
7
+ if (manager.name === name) {
8
+ manager.update(
9
+ {
10
+ name,
11
+ theme: next.theme
12
+ },
13
+ true
14
+ );
15
+ }
16
+ });
17
+ }
18
+ return next;
19
+ }
20
+ export {
21
+ updateTheme
22
+ };
23
+ //# sourceMappingURL=updateTheme.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/updateTheme.ts"],
4
+ "sourcesContent": ["import { addTheme } from './addTheme'\nimport { activeThemeManagers } from './hooks/useTheme'\nimport { ThemeDefinition } from './types'\n\nexport function updateTheme({ name, theme }: { name: string; theme: ThemeDefinition }) {\n const next = addTheme({ name, theme, insertCSS: true, update: true })\n\n if (process.env.TAMAGUI_TARGET === 'native') {\n activeThemeManagers.forEach((manager) => {\n if (manager.name === name) {\n manager.update(\n {\n name,\n theme: next.theme,\n },\n true\n )\n }\n })\n }\n\n return next\n}\n"],
5
+ "mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,2BAA2B;AAG7B,SAAS,YAAY,EAAE,MAAM,MAAM,GAA6C;AACrF,QAAM,OAAO,SAAS,EAAE,MAAM,OAAO,WAAW,MAAM,QAAQ,KAAK,CAAC;AAEpE,MAAI,QAAQ,IAAI,mBAAmB,UAAU;AAC3C,wBAAoB,QAAQ,CAAC,YAAY;AACvC,UAAI,QAAQ,SAAS,MAAM;AACzB,gBAAQ;AAAA,UACN;AAAA,YACE;AAAA,YACA,OAAO,KAAK;AAAA,UACd;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ const Pressability = {};
2
+ const usePressability = {};
3
+ export {
4
+ Pressability,
5
+ usePressability
6
+ };
7
+ //# sourceMappingURL=Pressability.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/vendor/Pressability.tsx"],
4
+ "sourcesContent": ["export const Pressability = {} as any\nexport const usePressability = {} as Function\n"],
5
+ "mappings": "AAAO,MAAM,eAAe,CAAC;AACtB,MAAM,kBAAkB,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ const Pressability = require("react-native/Libraries/Pressability/Pressability").default;
2
+ const usePressability = require("react-native/Libraries/Pressability/usePressability").default;
3
+ export {
4
+ Pressability,
5
+ usePressability
6
+ };
7
+ //# sourceMappingURL=Pressability.native.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/vendor/Pressability.native.tsx"],
4
+ "sourcesContent": ["export const Pressability = require('react-native/Libraries/Pressability/Pressability').default\nexport const usePressability =\n require('react-native/Libraries/Pressability/usePressability').default\n"],
5
+ "mappings": "AAAO,MAAM,eAAe,QAAQ,kDAAkD,EAAE;AACjF,MAAM,kBACX,QAAQ,qDAAqD,EAAE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ const FontLanguage = ({ children, ...props }) => {
3
+ return /* @__PURE__ */ jsx("div", {
4
+ style: {
5
+ display: "contents"
6
+ },
7
+ className: Object.entries(props).map(([name, language]) => `t_lang-${name}-${language}`).join(" "),
8
+ children
9
+ });
10
+ };
11
+ export {
12
+ FontLanguage
13
+ };
14
+ //# sourceMappingURL=FontLanguage.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/FontLanguage.tsx"],
4
+ "sourcesContent": ["import React from 'react'\n\nimport { FontLanguageProps } from './FontLanguage.types'\n\nexport const FontLanguage = ({ children, ...props }: FontLanguageProps) => {\n return (\n <div\n style={{\n display: 'contents',\n }}\n className={Object.entries(props)\n .map(([name, language]) => `t_lang-${name}-${language}`)\n .join(' ')}\n >\n {children}\n </div>\n )\n}\n"],
5
+ "mappings": "AAMI;AAFG,MAAM,eAAe,CAAC,EAAE,aAAa,MAAM,MAAyB;AACzE,SACE,oBAAC;AAAA,IACC,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,WAAW,OAAO,QAAQ,KAAK,EAC5B,IAAI,CAAC,CAAC,MAAM,QAAQ,MAAM,UAAU,QAAQ,UAAU,EACtD,KAAK,GAAG;AAAA,IAEV;AAAA,GACH;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { FontLanguageContext } from "../contexts/FontLanguageContext";
4
+ const FontLanguage = ({ children, ...props }) => {
5
+ const value = useMemo(() => props, [JSON.stringify(props)]);
6
+ return /* @__PURE__ */ jsx(FontLanguageContext.Provider, {
7
+ value,
8
+ children
9
+ });
10
+ };
11
+ export {
12
+ FontLanguage
13
+ };
14
+ //# sourceMappingURL=FontLanguage.native.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/views/FontLanguage.native.tsx"],
4
+ "sourcesContent": ["import React, { useMemo } from 'react'\n\nimport { FontLanguageContext } from '../contexts/FontLanguageContext'\nimport { FontLanguageProps } from './FontLanguage.types'\n\nexport const FontLanguage = ({ children, ...props }: FontLanguageProps) => {\n const value = useMemo(() => props, [JSON.stringify(props)])\n return <FontLanguageContext.Provider value={value}>{children}</FontLanguageContext.Provider>\n}\n"],
5
+ "mappings": "AAOS;AAPT,SAAgB,eAAe;AAE/B,SAAS,2BAA2B;AAG7B,MAAM,eAAe,CAAC,EAAE,aAAa,MAAM,MAAyB;AACzE,QAAM,QAAQ,QAAQ,MAAM,OAAO,CAAC,KAAK,UAAU,KAAK,CAAC,CAAC;AAC1D,SAAO,oBAAC,oBAAoB,UAApB;AAAA,IAA6B;AAAA,IAAe;AAAA,GAAS;AAC/D;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=FontLanguage.types.js.map
@@ -1,47 +1,61 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
1
+ import { Fragment, jsx } from "react/jsx-runtime";
3
2
  import { composeRefs } from "@tamagui/compose-refs";
4
- import * as React from "react";
5
- const Slot = React.forwardRef((props, forwardedRef) => {
3
+ import { isWeb } from "@tamagui/constants";
4
+ import { Children, cloneElement, forwardRef, isValidElement } from "react";
5
+ const Slot = forwardRef((props, forwardedRef) => {
6
6
  const { children, ...slotProps } = props;
7
- if (React.Children.toArray(children).some(isSlottable)) {
8
- return /* @__PURE__ */ React.createElement(React.Fragment, null, React.Children.map(children, (child) => {
9
- return isSlottable(child) ? /* @__PURE__ */ React.createElement(SlotClone, {
10
- ...slotProps,
11
- ref: forwardedRef
12
- }, child.props.children) : child;
13
- }));
7
+ const childrenArray = Children.toArray(children);
8
+ const slottable = childrenArray.find(isSlottable);
9
+ if (slottable) {
10
+ const newElement = slottable.props.children;
11
+ const newChildren = childrenArray.map((child) => {
12
+ if (child === slottable) {
13
+ if (Children.count(newElement) > 1)
14
+ return Children.only(null);
15
+ return isValidElement(newElement) ? newElement.props.children : null;
16
+ } else {
17
+ return child;
18
+ }
19
+ });
20
+ return /* @__PURE__ */ jsx(SlotClone, {
21
+ ...slotProps,
22
+ ref: forwardedRef,
23
+ children: isValidElement(newElement) ? cloneElement(newElement, void 0, newChildren) : null
24
+ });
14
25
  }
15
- return /* @__PURE__ */ React.createElement(SlotClone, {
26
+ return /* @__PURE__ */ jsx(SlotClone, {
16
27
  ...slotProps,
17
- ref: forwardedRef
18
- }, children);
28
+ ref: forwardedRef,
29
+ children
30
+ });
19
31
  });
20
32
  Slot.displayName = "Slot";
21
- const SlotClone = React.forwardRef((props, forwardedRef) => {
33
+ const SlotClone = forwardRef((props, forwardedRef) => {
22
34
  const { children, ...slotProps } = props;
23
- if (React.isValidElement(children)) {
24
- return React.cloneElement(children, {
25
- ...mergeProps(children, slotProps),
35
+ if (isValidElement(children)) {
36
+ const childProps = {
37
+ ...mergeSlotProps(children, slotProps),
26
38
  ref: composeRefs(forwardedRef, children.ref)
27
- });
39
+ };
40
+ return cloneElement(children, childProps);
28
41
  }
29
- return React.Children.count(children) > 1 ? React.Children.only(null) : null;
42
+ return Children.count(children) > 1 ? Children.only(null) : null;
30
43
  });
31
44
  SlotClone.displayName = "SlotClone";
32
- const Slottable = /* @__PURE__ */ __name(({ children }) => {
33
- return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
34
- }, "Slottable");
45
+ const Slottable = ({ children }) => {
46
+ return /* @__PURE__ */ jsx(Fragment, {
47
+ children
48
+ });
49
+ };
35
50
  function isSlottable(child) {
36
- return React.isValidElement(child);
51
+ return isValidElement(child) && child.type === Slottable;
37
52
  }
38
- __name(isSlottable, "isSlottable");
39
- const pressMap = {
53
+ const pressMap = isWeb ? {
40
54
  onPress: "onClick",
41
- onPressOut: "onMouseOut",
42
- onPressIn: "onMouseIn"
43
- };
44
- function mergeProps(child, slotProps) {
55
+ onPressOut: "onMouseUp",
56
+ onPressIn: "onMouseDown"
57
+ } : {};
58
+ function mergeSlotProps(child, slotProps) {
45
59
  const childProps = child.props;
46
60
  const overrideProps = { ...childProps };
47
61
  const isHTMLChild = typeof child.type === "string";
@@ -60,12 +74,9 @@ function mergeProps(child, slotProps) {
60
74
  propName = pressMap[propName];
61
75
  delete overrideProps[propName];
62
76
  }
63
- const isHandler = /^on[A-Z]/.test(propName);
77
+ const isHandler = handleRegex.test(propName);
64
78
  if (isHandler) {
65
- overrideProps[propName] = (...args) => {
66
- childPropValue == null ? void 0 : childPropValue(...args);
67
- slotPropValue == null ? void 0 : slotPropValue(...args);
68
- };
79
+ overrideProps[propName] = mergeEvent(childPropValue, slotPropValue);
69
80
  } else if (propName === "style") {
70
81
  overrideProps[propName] = { ...slotPropValue, ...childPropValue };
71
82
  } else if (propName === "className") {
@@ -74,9 +85,16 @@ function mergeProps(child, slotProps) {
74
85
  }
75
86
  return { ...slotProps, ...overrideProps };
76
87
  }
77
- __name(mergeProps, "mergeProps");
88
+ const handleRegex = /^on[A-Z]/;
89
+ function mergeEvent(a, b) {
90
+ return (...args) => {
91
+ a == null ? void 0 : a(...args);
92
+ b == null ? void 0 : b(...args);
93
+ };
94
+ }
78
95
  export {
79
96
  Slot,
80
- Slottable
97
+ Slottable,
98
+ mergeEvent
81
99
  };
82
100
  //# sourceMappingURL=Slot.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/views/Slot.tsx"],
4
- "sourcesContent": ["// via radix\n\nimport { composeRefs } from '@tamagui/compose-refs'\nimport * as React from 'react'\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\nexport type SlotProps = {\n children?: React.ReactNode\n}\n\nexport const Slot = React.forwardRef<HTMLElement, SlotProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props\n\n if (React.Children.toArray(children).some(isSlottable)) {\n return (\n <>\n {React.Children.map(children, (child) => {\n return isSlottable(child) ? (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {child.props.children}\n </SlotClone>\n ) : (\n child\n )\n })}\n </>\n )\n }\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {children}\n </SlotClone>\n )\n})\n\nSlot.displayName = 'Slot'\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: React.ReactNode\n}\n\nconst SlotClone = React.forwardRef<any, SlotCloneProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props\n\n if (React.isValidElement(children)) {\n return React.cloneElement(children, {\n ...mergeProps(children, slotProps),\n ref: composeRefs(forwardedRef, (children as any).ref),\n })\n }\n\n return React.Children.count(children) > 1 ? React.Children.only(null) : null\n})\n\nSlotClone.displayName = 'SlotClone'\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Slottable = ({ children }: { children: React.ReactNode }) => {\n return <>{children}</>\n}\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record<string, any>\n\nfunction isSlottable(child: React.ReactNode): child is React.ReactElement {\n return React.isValidElement(child)\n}\n\nconst pressMap = {\n onPress: 'onClick',\n onPressOut: 'onMouseOut',\n onPressIn: 'onMouseIn',\n}\n\nfunction mergeProps(child: any, slotProps: AnyProps) {\n const childProps = child.props\n\n // all child props should override\n const overrideProps = { ...childProps }\n\n const isHTMLChild = typeof child.type === 'string'\n\n if (isHTMLChild) {\n for (const key in pressMap) {\n if (key in slotProps) {\n slotProps[pressMap[key]] = slotProps[key]\n delete slotProps[key]\n }\n }\n }\n\n for (let propName in childProps) {\n const slotPropValue = slotProps[propName]\n const childPropValue = childProps[propName]\n\n if (isHTMLChild && pressMap[propName]) {\n propName = pressMap[propName]\n delete overrideProps[propName]\n }\n\n const isHandler = /^on[A-Z]/.test(propName)\n // if it's a handler, modify the override by composing the base handler\n if (isHandler) {\n overrideProps[propName] = (...args: unknown[]) => {\n childPropValue?.(...args)\n slotPropValue?.(...args)\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue }\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ')\n }\n }\n\n return { ...slotProps, ...overrideProps }\n}\n"],
5
- "mappings": ";;AAEA;AACA;AAUO,MAAM,OAAO,MAAM,WAAmC,CAAC,OAAO,iBAAiB;AACpF,QAAM,EAAE,aAAa,cAAc;AAEnC,MAAI,MAAM,SAAS,QAAQ,QAAQ,EAAE,KAAK,WAAW,GAAG;AACtD,WACE,0DACG,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU;AACvC,aAAO,YAAY,KAAK,IACtB,oCAAC;AAAA,WAAc;AAAA,QAAW,KAAK;AAAA,SAC5B,MAAM,MAAM,QACf,IAEA;AAAA,IAEJ,CAAC,CACH;AAAA,EAEJ;AAEA,SACE,oCAAC;AAAA,OAAc;AAAA,IAAW,KAAK;AAAA,KAC5B,QACH;AAEJ,CAAC;AAED,KAAK,cAAc;AAUnB,MAAM,YAAY,MAAM,WAAgC,CAAC,OAAO,iBAAiB;AAC/E,QAAM,EAAE,aAAa,cAAc;AAEnC,MAAI,MAAM,eAAe,QAAQ,GAAG;AAClC,WAAO,MAAM,aAAa,UAAU;AAAA,SAC/B,WAAW,UAAU,SAAS;AAAA,MACjC,KAAK,YAAY,cAAe,SAAiB,GAAG;AAAA,IACtD,CAAC;AAAA,EACH;AAEA,SAAO,MAAM,SAAS,MAAM,QAAQ,IAAI,IAAI,MAAM,SAAS,KAAK,IAAI,IAAI;AAC1E,CAAC;AAED,UAAU,cAAc;AAMjB,MAAM,YAAY,wBAAC,EAAE,eAA8C;AACxE,SAAO,0DAAG,QAAS;AACrB,GAFyB;AAQzB,qBAAqB,OAAqD;AACxE,SAAO,MAAM,eAAe,KAAK;AACnC;AAFS;AAIT,MAAM,WAAW;AAAA,EACf,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AACb;AAEA,oBAAoB,OAAY,WAAqB;AACnD,QAAM,aAAa,MAAM;AAGzB,QAAM,gBAAgB,KAAK,WAAW;AAEtC,QAAM,cAAc,OAAO,MAAM,SAAS;AAE1C,MAAI,aAAa;AACf,eAAW,OAAO,UAAU;AAC1B,UAAI,OAAO,WAAW;AACpB,kBAAU,SAAS,QAAQ,UAAU;AACrC,eAAO,UAAU;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAEA,WAAS,YAAY,YAAY;AAC/B,UAAM,gBAAgB,UAAU;AAChC,UAAM,iBAAiB,WAAW;AAElC,QAAI,eAAe,SAAS,WAAW;AACrC,iBAAW,SAAS;AACpB,aAAO,cAAc;AAAA,IACvB;AAEA,UAAM,YAAY,WAAW,KAAK,QAAQ;AAE1C,QAAI,WAAW;AACb,oBAAc,YAAY,IAAI,SAAoB;AAChD,yDAAiB,GAAG;AACpB,uDAAgB,GAAG;AAAA,MACrB;AAAA,IACF,WAES,aAAa,SAAS;AAC7B,oBAAc,YAAY,KAAK,kBAAkB,eAAe;AAAA,IAClE,WAAW,aAAa,aAAa;AACnC,oBAAc,YAAY,CAAC,eAAe,cAAc,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,IACpF;AAAA,EACF;AAEA,SAAO,KAAK,cAAc,cAAc;AAC1C;AA3CS;",
4
+ "sourcesContent": ["// via radix\n\nimport { composeRefs } from '@tamagui/compose-refs'\nimport { isWeb } from '@tamagui/constants'\nimport { Children, ReactElement, ReactNode, cloneElement, forwardRef, isValidElement } from 'react'\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\nexport type SlotProps = {\n children?: ReactNode\n}\n\nexport const Slot = forwardRef<HTMLElement, SlotProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props\n const childrenArray = Children.toArray(children)\n const slottable = childrenArray.find(isSlottable)\n\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children as ReactNode\n\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (Children.count(newElement) > 1) return Children.only(null)\n return isValidElement(newElement) ? (newElement.props.children as ReactNode) : null\n } else {\n return child\n }\n })\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {isValidElement(newElement) ? cloneElement(newElement, undefined, newChildren) : null}\n </SlotClone>\n )\n }\n\n return (\n <SlotClone {...slotProps} ref={forwardedRef}>\n {children}\n </SlotClone>\n )\n})\n\nSlot.displayName = 'Slot'\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: ReactNode\n}\n\nconst SlotClone = forwardRef<any, SlotCloneProps>((props, forwardedRef) => {\n const { children, ...slotProps } = props\n\n if (isValidElement(children)) {\n const childProps = {\n ...mergeSlotProps(children, slotProps),\n ref: composeRefs(forwardedRef, (children as any).ref),\n }\n return cloneElement(children, childProps)\n }\n\n return Children.count(children) > 1 ? Children.only(null) : null\n})\n\nSlotClone.displayName = 'SlotClone'\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nexport const Slottable = ({ children }: { children: ReactNode }) => {\n return <>{children}</>\n}\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record<string, any>\n\nfunction isSlottable(child: ReactNode): child is ReactElement {\n return isValidElement(child) && child.type === Slottable\n}\n\nconst pressMap = isWeb\n ? {\n onPress: 'onClick',\n onPressOut: 'onMouseUp',\n onPressIn: 'onMouseDown',\n }\n : {}\n\nfunction mergeSlotProps(child: any, slotProps: AnyProps) {\n const childProps = child.props\n\n // all child props should override\n const overrideProps = { ...childProps }\n const isHTMLChild = typeof child.type === 'string'\n\n if (isHTMLChild) {\n for (const key in pressMap) {\n if (key in slotProps) {\n slotProps[pressMap[key]] = slotProps[key]\n delete slotProps[key]\n }\n }\n }\n\n for (let propName in childProps) {\n const slotPropValue = slotProps[propName]\n const childPropValue = childProps[propName]\n\n if (isHTMLChild && pressMap[propName]) {\n propName = pressMap[propName]\n delete overrideProps[propName]\n }\n\n const isHandler = handleRegex.test(propName)\n // if it's a handler, modify the override by composing the base handler\n if (isHandler) {\n overrideProps[propName] = mergeEvent(childPropValue, slotPropValue)\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue }\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ')\n }\n }\n\n return { ...slotProps, ...overrideProps }\n}\n\nconst handleRegex = /^on[A-Z]/\n\nexport function mergeEvent(a?: Function, b?: Function) {\n return (...args: unknown[]) => {\n a?.(...args)\n b?.(...args)\n }\n}\n"],
5
+ "mappings": "AAmCM,SA4CG,UA5CH;AAjCN,SAAS,mBAAmB;AAC5B,SAAS,aAAa;AACtB,SAAS,UAAmC,cAAc,YAAY,sBAAsB;AAUrF,MAAM,OAAO,WAAmC,CAAC,OAAO,iBAAiB;AAC9E,QAAM,EAAE,aAAa,UAAU,IAAI;AACnC,QAAM,gBAAgB,SAAS,QAAQ,QAAQ;AAC/C,QAAM,YAAY,cAAc,KAAK,WAAW;AAEhD,MAAI,WAAW;AAEb,UAAM,aAAa,UAAU,MAAM;AAEnC,UAAM,cAAc,cAAc,IAAI,CAAC,UAAU;AAC/C,UAAI,UAAU,WAAW;AAGvB,YAAI,SAAS,MAAM,UAAU,IAAI;AAAG,iBAAO,SAAS,KAAK,IAAI;AAC7D,eAAO,eAAe,UAAU,IAAK,WAAW,MAAM,WAAyB;AAAA,MACjF,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,WACE,oBAAC;AAAA,MAAW,GAAG;AAAA,MAAW,KAAK;AAAA,MAC5B,yBAAe,UAAU,IAAI,aAAa,YAAY,QAAW,WAAW,IAAI;AAAA,KACnF;AAAA,EAEJ;AAEA,SACE,oBAAC;AAAA,IAAW,GAAG;AAAA,IAAW,KAAK;AAAA,IAC5B;AAAA,GACH;AAEJ,CAAC;AAED,KAAK,cAAc;AAUnB,MAAM,YAAY,WAAgC,CAAC,OAAO,iBAAiB;AACzE,QAAM,EAAE,aAAa,UAAU,IAAI;AAEnC,MAAI,eAAe,QAAQ,GAAG;AAC5B,UAAM,aAAa;AAAA,MACjB,GAAG,eAAe,UAAU,SAAS;AAAA,MACrC,KAAK,YAAY,cAAe,SAAiB,GAAG;AAAA,IACtD;AACA,WAAO,aAAa,UAAU,UAAU;AAAA,EAC1C;AAEA,SAAO,SAAS,MAAM,QAAQ,IAAI,IAAI,SAAS,KAAK,IAAI,IAAI;AAC9D,CAAC;AAED,UAAU,cAAc;AAMjB,MAAM,YAAY,CAAC,EAAE,SAAS,MAA+B;AAClE,SAAO;AAAA,IAAG;AAAA,GAAS;AACrB;AAMA,SAAS,YAAY,OAAyC;AAC5D,SAAO,eAAe,KAAK,KAAK,MAAM,SAAS;AACjD;AAEA,MAAM,WAAW,QACb;AAAA,EACE,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AACb,IACA,CAAC;AAEL,SAAS,eAAe,OAAY,WAAqB;AACvD,QAAM,aAAa,MAAM;AAGzB,QAAM,gBAAgB,EAAE,GAAG,WAAW;AACtC,QAAM,cAAc,OAAO,MAAM,SAAS;AAE1C,MAAI,aAAa;AACf,eAAW,OAAO,UAAU;AAC1B,UAAI,OAAO,WAAW;AACpB,kBAAU,SAAS,QAAQ,UAAU;AACrC,eAAO,UAAU;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAEA,WAAS,YAAY,YAAY;AAC/B,UAAM,gBAAgB,UAAU;AAChC,UAAM,iBAAiB,WAAW;AAElC,QAAI,eAAe,SAAS,WAAW;AACrC,iBAAW,SAAS;AACpB,aAAO,cAAc;AAAA,IACvB;AAEA,UAAM,YAAY,YAAY,KAAK,QAAQ;AAE3C,QAAI,WAAW;AACb,oBAAc,YAAY,WAAW,gBAAgB,aAAa;AAAA,IACpE,WAES,aAAa,SAAS;AAC7B,oBAAc,YAAY,EAAE,GAAG,eAAe,GAAG,eAAe;AAAA,IAClE,WAAW,aAAa,aAAa;AACnC,oBAAc,YAAY,CAAC,eAAe,cAAc,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,IACpF;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,WAAW,GAAG,cAAc;AAC1C;AAEA,MAAM,cAAc;AAEb,SAAS,WAAW,GAAc,GAAc;AACrD,SAAO,IAAI,SAAoB;AAC7B,2BAAI,GAAG;AACP,2BAAI,GAAG;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
File without changes
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/views/Stack.tsx"],
4
4
  "sourcesContent": ["import { View } from 'react-native'\n\nimport { stackDefaultStyles } from '../constants/constants'\nimport { createComponent } from '../createComponent'\nimport { StackProps, StackPropsBase } from '../types'\n\nexport const Stack = createComponent<StackProps, View, StackPropsBase>({\n componentName: 'Stack',\n defaultProps: {\n ...stackDefaultStyles,\n flexDirection: 'column',\n },\n})\n\n// test types\n// export const YStack = styled(Stack, {\n// flexDirection: 'column',\n// })\n// // test types\n// const x00 = <Stack missing={0} /> // should err\n// const x0 = <YStack missing={0} /> // should err\n// const x1 = (props: StackProps) => <YStack {...props} />\n// type ys = typeof YStack\n// type ysv = ys extends StaticComponent<any, infer V> ? V : unknown\n"],
5
- "mappings": "AAEA;AACA;AAGO,MAAM,QAAQ,gBAAkD;AAAA,EACrE,eAAe;AAAA,EACf,cAAc;AAAA,OACT;AAAA,IACH,eAAe;AAAA,EACjB;AACF,CAAC;",
5
+ "mappings": "AAEA,SAAS,0BAA0B;AACnC,SAAS,uBAAuB;AAGzB,MAAM,QAAQ,gBAAkD;AAAA,EACrE,eAAe;AAAA,EACf,cAAc;AAAA,IACZ,GAAG;AAAA,IACH,eAAe;AAAA,EACjB;AACF,CAAC;",
6
6
  "names": []
7
7
  }