@tamagui/core 1.0.0-alpha.9 → 1.0.0-beta.187

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 (613) hide show
  1. package/dist/cjs/Tamagui.js +52 -0
  2. package/dist/cjs/Tamagui.js.map +7 -0
  3. package/dist/cjs/ThemeContext.js +25 -0
  4. package/dist/cjs/ThemeContext.js.map +7 -0
  5. package/dist/cjs/ThemeManager.js +195 -0
  6. package/dist/cjs/ThemeManager.js.map +7 -0
  7. package/dist/cjs/conf.js +55 -0
  8. package/dist/cjs/conf.js.map +7 -0
  9. package/dist/cjs/constants/constants.js +15 -15
  10. package/dist/cjs/constants/constants.js.map +2 -2
  11. package/dist/cjs/constants/platform.js +18 -18
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/rnw.js +17 -3
  14. package/dist/cjs/constants/rnw.js.map +2 -2
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +25 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +7 -0
  17. package/dist/cjs/createComponent.js +344 -206
  18. package/dist/cjs/createComponent.js.map +2 -2
  19. package/dist/cjs/createFont.js +11 -15
  20. package/dist/cjs/createFont.js.map +1 -1
  21. package/dist/cjs/createShorthands.js +15 -3
  22. package/dist/cjs/createShorthands.js.map +1 -1
  23. package/dist/cjs/createTamagui.js +109 -104
  24. package/dist/cjs/createTamagui.js.map +2 -2
  25. package/dist/cjs/createTheme.js +11 -28
  26. package/dist/cjs/createTheme.js.map +2 -2
  27. package/dist/cjs/createTokens.js +12 -16
  28. package/dist/cjs/createTokens.js.map +1 -1
  29. package/dist/cjs/createVariable.js +33 -19
  30. package/dist/cjs/createVariable.js.map +2 -2
  31. package/dist/cjs/defaultComponentState.js +31 -0
  32. package/dist/cjs/defaultComponentState.js.map +7 -0
  33. package/dist/cjs/helpers/addStylesUsingClassname.js +29 -29
  34. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  35. package/dist/cjs/helpers/areEqualSets.js +34 -0
  36. package/dist/cjs/helpers/areEqualSets.js.map +7 -0
  37. package/dist/cjs/helpers/createMediaStyle.js +14 -21
  38. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  39. package/dist/cjs/helpers/createPropMapper.js +151 -115
  40. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  41. package/dist/cjs/helpers/createTamaguiProvider.js +42 -23
  42. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  43. package/dist/cjs/helpers/extendStaticConfig.js +23 -26
  44. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  45. package/dist/cjs/helpers/fixNativeShadow.js +15 -3
  46. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  47. package/dist/cjs/helpers/fixNativeShadow.native.js +38 -22
  48. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  49. package/dist/cjs/helpers/getExpandedShorthands.js +37 -0
  50. package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
  51. package/dist/cjs/helpers/getSplitStyles.js +175 -99
  52. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  53. package/dist/cjs/helpers/getStylesAtomic.js +98 -56
  54. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  55. package/dist/cjs/helpers/getStylesAtomic.native.js +15 -3
  56. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  57. package/dist/cjs/helpers/insertStyleRule.js +80 -24
  58. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  59. package/dist/cjs/helpers/isObj.js +15 -3
  60. package/dist/cjs/helpers/isObj.js.map +1 -1
  61. package/dist/cjs/helpers/isTamaguiElement.js +11 -15
  62. package/dist/cjs/helpers/isTamaguiElement.js.map +1 -1
  63. package/dist/cjs/helpers/matchMedia.js +15 -3
  64. package/dist/cjs/helpers/matchMedia.js.map +1 -1
  65. package/dist/cjs/helpers/matchMedia.native.js +12 -13
  66. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  67. package/dist/cjs/helpers/themeable.js +24 -24
  68. package/dist/cjs/helpers/themeable.js.map +2 -2
  69. package/dist/cjs/helpers/validate.js +46 -47
  70. package/dist/cjs/helpers/validate.js.map +2 -2
  71. package/dist/cjs/helpers/withStaticProperties.js +28 -0
  72. package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
  73. package/dist/cjs/helpers/wrapThemeManagerContext.js +35 -0
  74. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +7 -0
  75. package/dist/cjs/hooks/useConstant.js +11 -15
  76. package/dist/cjs/hooks/useConstant.js.map +1 -1
  77. package/dist/cjs/hooks/useFeatures.js +55 -16
  78. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  79. package/dist/cjs/hooks/useIsMounted.js +37 -0
  80. package/dist/cjs/hooks/useIsMounted.js.map +7 -0
  81. package/dist/cjs/hooks/useIsTouchDevice.js +35 -0
  82. package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
  83. package/dist/cjs/hooks/useMedia.js +23 -47
  84. package/dist/cjs/hooks/useMedia.js.map +2 -2
  85. package/dist/cjs/hooks/usePressable.js +11 -15
  86. package/dist/cjs/hooks/usePressable.js.map +1 -1
  87. package/dist/cjs/hooks/useTheme.js +162 -67
  88. package/dist/cjs/hooks/useTheme.js.map +2 -2
  89. package/dist/cjs/hooks/useUnmountEffect.js +29 -0
  90. package/dist/cjs/hooks/useUnmountEffect.js.map +7 -0
  91. package/dist/cjs/index.js +56 -43
  92. package/dist/cjs/index.js.map +2 -2
  93. package/dist/cjs/spacedChildren.js +86 -0
  94. package/dist/cjs/spacedChildren.js.map +7 -0
  95. package/dist/cjs/static.js +23 -27
  96. package/dist/cjs/static.js.map +2 -2
  97. package/dist/cjs/styled.js +45 -16
  98. package/dist/cjs/styled.js.map +3 -3
  99. package/dist/cjs/types-rnw.js +16 -0
  100. package/dist/cjs/types-rnw.js.map +7 -0
  101. package/dist/cjs/types.js +14 -2
  102. package/dist/cjs/types.js.map +2 -2
  103. package/dist/cjs/views/Stack.js +12 -16
  104. package/dist/cjs/views/Stack.js.map +2 -2
  105. package/dist/cjs/views/Text.js +18 -21
  106. package/dist/cjs/views/Text.js.map +2 -2
  107. package/dist/cjs/views/TextAncestorContext.js +19 -21
  108. package/dist/cjs/views/TextAncestorContext.js.map +2 -2
  109. package/dist/cjs/views/Theme.js +28 -63
  110. package/dist/cjs/views/Theme.js.map +2 -2
  111. package/dist/cjs/views/ThemeInverse.js +15 -16
  112. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  113. package/dist/cjs/views/ThemeProvider.js +32 -37
  114. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  115. package/dist/cjs/views/ThemeReset.js +59 -0
  116. package/dist/cjs/views/ThemeReset.js.map +7 -0
  117. package/dist/esm/Tamagui.js +34 -0
  118. package/dist/esm/Tamagui.js.map +7 -0
  119. package/dist/{views → esm}/ThemeContext.js +0 -0
  120. package/dist/esm/ThemeContext.js.map +7 -0
  121. package/dist/esm/ThemeManager.js +177 -0
  122. package/dist/esm/ThemeManager.js.map +7 -0
  123. package/dist/esm/conf.js +37 -0
  124. package/dist/esm/conf.js.map +7 -0
  125. package/dist/{constants → esm/constants}/constants.js +4 -0
  126. package/dist/esm/constants/constants.js.map +7 -0
  127. package/dist/{constants → esm/constants}/platform.js +6 -1
  128. package/dist/esm/constants/platform.js.map +7 -0
  129. package/dist/{constants → esm/constants}/rnw.js +2 -0
  130. package/dist/esm/constants/rnw.js.map +7 -0
  131. package/dist/esm/contexts/ButtonInsideButtonContext.js +6 -0
  132. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +7 -0
  133. package/dist/esm/createComponent.js +611 -0
  134. package/dist/esm/createComponent.js.map +7 -0
  135. package/dist/{createFont.js → esm/createFont.js} +0 -0
  136. package/dist/{createFont.js.map → esm/createFont.js.map} +2 -2
  137. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  138. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +2 -2
  139. package/dist/esm/createTamagui.js +177 -0
  140. package/dist/esm/createTamagui.js.map +7 -0
  141. package/dist/esm/createTheme.js +7 -0
  142. package/dist/esm/createTheme.js.map +7 -0
  143. package/dist/{createTokens.js → esm/createTokens.js} +0 -0
  144. package/dist/{createTokens.js.map → esm/createTokens.js.map} +2 -2
  145. package/dist/esm/createVariable.js +43 -0
  146. package/dist/esm/createVariable.js.map +7 -0
  147. package/dist/esm/defaultComponentState.js +12 -0
  148. package/dist/esm/defaultComponentState.js.map +7 -0
  149. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +16 -12
  150. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  151. package/dist/esm/helpers/areEqualSets.js +16 -0
  152. package/dist/esm/helpers/areEqualSets.js.map +7 -0
  153. package/dist/{helpers → esm/helpers}/createMediaStyle.js +3 -6
  154. package/dist/esm/helpers/createMediaStyle.js.map +7 -0
  155. package/dist/esm/helpers/createPropMapper.js +208 -0
  156. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  157. package/dist/esm/helpers/createTamaguiProvider.js +43 -0
  158. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  159. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +14 -14
  160. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  161. package/dist/{helpers → esm/helpers}/fixNativeShadow.js +0 -0
  162. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +2 -2
  163. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  164. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  165. package/dist/esm/helpers/getExpandedShorthands.js +19 -0
  166. package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
  167. package/dist/esm/helpers/getSplitStyles.js +233 -0
  168. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  169. package/dist/esm/helpers/getStylesAtomic.js +118 -0
  170. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  171. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js +0 -0
  172. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js.map +2 -2
  173. package/dist/esm/helpers/insertStyleRule.js +84 -0
  174. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  175. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  176. package/dist/{helpers → esm/helpers}/isObj.js.map +2 -2
  177. package/dist/{helpers → esm/helpers}/isTamaguiElement.js +2 -1
  178. package/dist/{helpers → esm/helpers}/isTamaguiElement.js.map +2 -2
  179. package/dist/{helpers → esm/helpers}/matchMedia.js +0 -0
  180. package/dist/{helpers → esm/helpers}/matchMedia.js.map +2 -2
  181. package/dist/{helpers → esm/helpers}/matchMedia.native.js +0 -0
  182. package/dist/{helpers → esm/helpers}/matchMedia.native.js.map +2 -2
  183. package/dist/{helpers → esm/helpers}/themeable.js +11 -10
  184. package/dist/esm/helpers/themeable.js.map +7 -0
  185. package/dist/esm/helpers/validate.js +63 -0
  186. package/dist/esm/helpers/validate.js.map +7 -0
  187. package/dist/esm/helpers/withStaticProperties.js +10 -0
  188. package/dist/esm/helpers/withStaticProperties.js.map +7 -0
  189. package/dist/esm/helpers/wrapThemeManagerContext.js +14 -0
  190. package/dist/esm/helpers/wrapThemeManagerContext.js.map +7 -0
  191. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  192. package/dist/{hooks → esm/hooks}/useConstant.js.map +2 -2
  193. package/dist/{hooks → esm/hooks}/useFeatures.js +31 -0
  194. package/dist/esm/hooks/useFeatures.js.map +7 -0
  195. package/dist/esm/hooks/useIsMounted.js +19 -0
  196. package/dist/esm/hooks/useIsMounted.js.map +7 -0
  197. package/dist/esm/hooks/useIsTouchDevice.js +17 -0
  198. package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
  199. package/dist/{hooks → esm/hooks}/useMedia.js +11 -30
  200. package/dist/esm/hooks/useMedia.js.map +7 -0
  201. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  202. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  203. package/dist/esm/hooks/useTheme.js +173 -0
  204. package/dist/esm/hooks/useTheme.js.map +7 -0
  205. package/dist/esm/hooks/useUnmountEffect.js +11 -0
  206. package/dist/esm/hooks/useUnmountEffect.js.map +7 -0
  207. package/dist/{index.js → esm/index.js} +21 -5
  208. package/dist/esm/index.js.map +7 -0
  209. package/dist/esm/spacedChildren.js +52 -0
  210. package/dist/esm/spacedChildren.js.map +7 -0
  211. package/dist/{static.js → esm/static.js} +1 -2
  212. package/dist/{static.js.map → esm/static.js.map} +3 -3
  213. package/dist/esm/styled.js +53 -0
  214. package/dist/esm/styled.js.map +7 -0
  215. package/dist/esm/types-rnw.js +1 -0
  216. package/dist/{helpers/pseudos.js.map → esm/types-rnw.js.map} +0 -0
  217. package/dist/{types.js → esm/types.js} +0 -0
  218. package/dist/{types.js.map → esm/types.js.map} +0 -0
  219. package/dist/{views → esm/views}/Stack.js +0 -0
  220. package/dist/esm/views/Stack.js.map +7 -0
  221. package/dist/{views → esm/views}/Text.js +5 -4
  222. package/dist/esm/views/Text.js.map +7 -0
  223. package/dist/esm/views/TextAncestorContext.js +18 -0
  224. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  225. package/dist/esm/views/Theme.js +32 -0
  226. package/dist/esm/views/Theme.js.map +7 -0
  227. package/dist/{views → esm/views}/ThemeInverse.js +1 -1
  228. package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
  229. package/dist/esm/views/ThemeProvider.js +41 -0
  230. package/dist/esm/views/ThemeProvider.js.map +7 -0
  231. package/dist/esm/views/ThemeReset.js +38 -0
  232. package/dist/esm/views/ThemeReset.js.map +7 -0
  233. package/dist/jsx/Tamagui.js +33 -0
  234. package/dist/jsx/ThemeContext.js +5 -0
  235. package/dist/jsx/ThemeManager.js +176 -0
  236. package/dist/jsx/conf.js +36 -0
  237. package/dist/jsx/constants/constants.js +17 -0
  238. package/dist/jsx/constants/platform.js +23 -0
  239. package/dist/jsx/constants/rnw.js +23 -0
  240. package/dist/jsx/contexts/ButtonInsideButtonContext.js +5 -0
  241. package/dist/jsx/createComponent.js +598 -0
  242. package/dist/jsx/createFont.js +27 -0
  243. package/dist/jsx/createShorthands.js +9 -0
  244. package/dist/jsx/createTamagui.js +176 -0
  245. package/dist/jsx/createTheme.js +6 -0
  246. package/dist/jsx/createTokens.js +32 -0
  247. package/dist/jsx/createVariable.js +42 -0
  248. package/dist/jsx/defaultComponentState.js +11 -0
  249. package/dist/jsx/helpers/addStylesUsingClassname.js +60 -0
  250. package/dist/jsx/helpers/areEqualSets.js +15 -0
  251. package/dist/jsx/helpers/createMediaStyle.js +30 -0
  252. package/dist/jsx/helpers/createPropMapper.js +207 -0
  253. package/dist/jsx/helpers/createTamaguiProvider.js +35 -0
  254. package/dist/jsx/helpers/extendStaticConfig.js +58 -0
  255. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  256. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  257. package/dist/jsx/helpers/getExpandedShorthands.js +18 -0
  258. package/dist/jsx/helpers/getSplitStyles.js +232 -0
  259. package/dist/jsx/helpers/getStylesAtomic.js +117 -0
  260. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  261. package/dist/jsx/helpers/insertStyleRule.js +83 -0
  262. package/dist/jsx/helpers/isObj.js +6 -0
  263. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  264. package/dist/jsx/helpers/matchMedia.js +17 -0
  265. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  266. package/dist/jsx/helpers/themeable.js +24 -0
  267. package/dist/jsx/helpers/validate.js +62 -0
  268. package/dist/jsx/helpers/withStaticProperties.js +9 -0
  269. package/dist/jsx/helpers/wrapThemeManagerContext.js +10 -0
  270. package/dist/jsx/hooks/useConstant.js +14 -0
  271. package/dist/jsx/hooks/useFeatures.js +88 -0
  272. package/dist/jsx/hooks/useIsMounted.js +18 -0
  273. package/dist/jsx/hooks/useIsTouchDevice.js +16 -0
  274. package/dist/jsx/hooks/useMedia.js +151 -0
  275. package/dist/jsx/hooks/usePressable.js +13 -0
  276. package/dist/jsx/hooks/useTheme.js +172 -0
  277. package/dist/jsx/hooks/useUnmountEffect.js +10 -0
  278. package/dist/jsx/index.js +47 -0
  279. package/dist/jsx/spacedChildren.js +44 -0
  280. package/dist/jsx/static.js +13 -0
  281. package/dist/jsx/styled.js +52 -0
  282. package/dist/jsx/types-rnw.js +0 -0
  283. package/dist/jsx/types.js +0 -0
  284. package/dist/jsx/views/Stack.js +11 -0
  285. package/dist/jsx/views/Text.js +60 -0
  286. package/dist/jsx/views/TextAncestorContext.js +15 -0
  287. package/dist/jsx/views/Theme.js +28 -0
  288. package/dist/jsx/views/ThemeInverse.js +22 -0
  289. package/dist/jsx/views/ThemeProvider.js +35 -0
  290. package/dist/jsx/views/ThemeReset.js +34 -0
  291. package/package.json +22 -20
  292. package/types/Tamagui.d.ts +13 -0
  293. package/types/Tamagui.d.ts.map +1 -0
  294. package/types/ThemeContext.d.ts +7 -0
  295. package/types/ThemeContext.d.ts.map +1 -0
  296. package/types/ThemeManager.d.ts +49 -0
  297. package/types/ThemeManager.d.ts.map +1 -0
  298. package/types/conf.d.ts +25 -0
  299. package/types/conf.d.ts.map +1 -0
  300. package/{dist/packages/core/src → types}/constants/constants.d.ts +2 -0
  301. package/types/constants/constants.d.ts.map +1 -0
  302. package/{dist/packages/core/src → types}/constants/platform.d.ts +2 -0
  303. package/types/constants/platform.d.ts.map +1 -0
  304. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  305. package/types/constants/rnw.d.ts.map +1 -0
  306. package/types/contexts/ButtonInsideButtonContext.d.ts +3 -0
  307. package/types/contexts/ButtonInsideButtonContext.d.ts.map +1 -0
  308. package/types/createComponent.d.ts +21 -0
  309. package/types/createComponent.d.ts.map +1 -0
  310. package/types/createFont.d.ts +3 -0
  311. package/types/createFont.d.ts.map +1 -0
  312. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  313. package/types/createShorthands.d.ts.map +1 -0
  314. package/types/createTamagui.d.ts +16 -0
  315. package/types/createTamagui.d.ts.map +1 -0
  316. package/types/createTheme.d.ts +7 -0
  317. package/types/createTheme.d.ts.map +1 -0
  318. package/{dist/packages/core/src → types}/createTokens.d.ts +24 -14
  319. package/types/createTokens.d.ts.map +1 -0
  320. package/{dist/packages/core/src → types}/createVariable.d.ts +6 -1
  321. package/types/createVariable.d.ts.map +1 -0
  322. package/types/defaultComponentState.d.ts +13 -0
  323. package/types/defaultComponentState.d.ts.map +1 -0
  324. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  325. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  326. package/types/helpers/areEqualSets.d.ts +2 -0
  327. package/types/helpers/areEqualSets.d.ts.map +1 -0
  328. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +1 -1
  329. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  330. package/types/helpers/createPropMapper.d.ts +4 -0
  331. package/types/helpers/createPropMapper.d.ts.map +1 -0
  332. package/types/helpers/createTamaguiProvider.d.ts +7 -0
  333. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  334. package/types/helpers/extendStaticConfig.d.ts +4 -0
  335. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  336. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  337. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  338. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  339. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  340. package/types/helpers/getExpandedShorthands.d.ts +3 -0
  341. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  342. package/types/helpers/getSplitStyles.d.ts +27 -0
  343. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  344. package/types/helpers/getStylesAtomic.d.ts +27 -0
  345. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  346. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  347. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  348. package/types/helpers/insertStyleRule.d.ts +7 -0
  349. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  350. package/types/helpers/isObj.d.ts +2 -0
  351. package/types/helpers/isObj.d.ts.map +1 -0
  352. package/types/helpers/isTamaguiElement.d.ts +3 -0
  353. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  354. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  355. package/types/helpers/matchMedia.d.ts.map +1 -0
  356. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  357. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  358. package/types/helpers/themeable.d.ts +10 -0
  359. package/types/helpers/themeable.d.ts.map +1 -0
  360. package/types/helpers/validate.d.ts +4 -0
  361. package/types/helpers/validate.d.ts.map +1 -0
  362. package/types/helpers/withStaticProperties.d.ts +2 -0
  363. package/types/helpers/withStaticProperties.d.ts.map +1 -0
  364. package/types/helpers/wrapThemeManagerContext.d.ts +3 -0
  365. package/types/helpers/wrapThemeManagerContext.d.ts.map +1 -0
  366. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  367. package/types/hooks/useConstant.d.ts.map +1 -0
  368. package/types/hooks/useFeatures.d.ts +16 -0
  369. package/types/hooks/useFeatures.d.ts.map +1 -0
  370. package/types/hooks/useIsMounted.d.ts +3 -0
  371. package/types/hooks/useIsMounted.d.ts.map +1 -0
  372. package/types/hooks/useIsTouchDevice.d.ts +2 -0
  373. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  374. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +0 -0
  375. package/types/hooks/useMedia.d.ts.map +1 -0
  376. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  377. package/types/hooks/usePressable.d.ts.map +1 -0
  378. package/types/hooks/useTheme.d.ts +36 -0
  379. package/types/hooks/useTheme.d.ts.map +1 -0
  380. package/types/hooks/useUnmountEffect.d.ts +2 -0
  381. package/types/hooks/useUnmountEffect.d.ts.map +1 -0
  382. package/{dist/packages/core/src → types}/index.d.ts +16 -3
  383. package/types/index.d.ts.map +1 -0
  384. package/types/spacedChildren.d.ts +9 -0
  385. package/types/spacedChildren.d.ts.map +1 -0
  386. package/{dist/packages/core/src → types}/static.d.ts +4 -2
  387. package/types/static.d.ts.map +1 -0
  388. package/types/styled.d.ts +11 -0
  389. package/types/styled.d.ts.map +1 -0
  390. package/types/types-rnw.d.ts +79 -0
  391. package/types/types-rnw.d.ts.map +1 -0
  392. package/types/types.d.ts +365 -0
  393. package/types/types.d.ts.map +1 -0
  394. package/types/views/Stack.d.ts +4 -0
  395. package/types/views/Stack.d.ts.map +1 -0
  396. package/types/views/Text.d.ts +4 -0
  397. package/types/views/Text.d.ts.map +1 -0
  398. package/types/views/TextAncestorContext.d.ts +5 -0
  399. package/types/views/TextAncestorContext.d.ts.map +1 -0
  400. package/types/views/Theme.d.ts +11 -0
  401. package/types/views/Theme.d.ts.map +1 -0
  402. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  403. package/types/views/ThemeInverse.d.ts.map +1 -0
  404. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +0 -1
  405. package/types/views/ThemeProvider.d.ts.map +1 -0
  406. package/types/views/ThemeReset.d.ts +4 -0
  407. package/types/views/ThemeReset.d.ts.map +1 -0
  408. package/dist/cjs/constants/pseudos.js +0 -25
  409. package/dist/cjs/constants/pseudos.js.map +0 -7
  410. package/dist/cjs/static/postProcessStyles.js +0 -40
  411. package/dist/cjs/static/postProcessStyles.js.map +0 -7
  412. package/dist/cjs/views/Animated.js +0 -129
  413. package/dist/cjs/views/Animated.js.map +0 -7
  414. package/dist/cjs/views/ThemeContext.js +0 -29
  415. package/dist/cjs/views/ThemeContext.js.map +0 -7
  416. package/dist/cjs/views/ThemeManagerContext.js +0 -84
  417. package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
  418. package/dist/constants/constants.js.map +0 -7
  419. package/dist/constants/platform.js.map +0 -7
  420. package/dist/constants/pseudos.js +0 -18
  421. package/dist/constants/pseudos.js.map +0 -7
  422. package/dist/constants/rnw.js.map +0 -7
  423. package/dist/constants/styleConstants.js +0 -46
  424. package/dist/constants/styleConstants.js.map +0 -7
  425. package/dist/createComponent.js +0 -463
  426. package/dist/createComponent.js.map +0 -7
  427. package/dist/createTamagui.js +0 -168
  428. package/dist/createTamagui.js.map +0 -7
  429. package/dist/createTheme.js +0 -20
  430. package/dist/createTheme.js.map +0 -7
  431. package/dist/createVariable.js +0 -25
  432. package/dist/createVariable.js.map +0 -7
  433. package/dist/helpers/addStylesUsingClassname.js.map +0 -7
  434. package/dist/helpers/createMediaStyle.js.map +0 -7
  435. package/dist/helpers/createPropMapper.js +0 -153
  436. package/dist/helpers/createPropMapper.js.map +0 -7
  437. package/dist/helpers/createTamaguiProvider.js +0 -25
  438. package/dist/helpers/createTamaguiProvider.js.map +0 -7
  439. package/dist/helpers/extendStaticConfig.js.map +0 -7
  440. package/dist/helpers/fixNativeShadow.native.js +0 -30
  441. package/dist/helpers/fixNativeShadow.native.js.map +0 -7
  442. package/dist/helpers/getSplitStyles.js +0 -150
  443. package/dist/helpers/getSplitStyles.js.map +0 -7
  444. package/dist/helpers/getStylesAtomic.js +0 -83
  445. package/dist/helpers/getStylesAtomic.js.map +0 -7
  446. package/dist/helpers/insertStyleRule.js +0 -24
  447. package/dist/helpers/insertStyleRule.js.map +0 -7
  448. package/dist/helpers/isComponent.js +0 -10
  449. package/dist/helpers/isComponent.js.map +0 -7
  450. package/dist/helpers/isTamaguiComponent.js +0 -10
  451. package/dist/helpers/isTamaguiComponent.js.map +0 -7
  452. package/dist/helpers/pseudos.js +0 -1
  453. package/dist/helpers/themeable.js.map +0 -7
  454. package/dist/helpers/validate.js +0 -60
  455. package/dist/helpers/validate.js.map +0 -7
  456. package/dist/helpers/validateConfig.js +0 -46
  457. package/dist/helpers/validateConfig.js.map +0 -7
  458. package/dist/helpers/validateTokens.js +0 -29
  459. package/dist/helpers/validateTokens.js.map +0 -7
  460. package/dist/hooks/useFeatures.js.map +0 -7
  461. package/dist/hooks/useForceUpdate.js +0 -28
  462. package/dist/hooks/useForceUpdate.js.map +0 -7
  463. package/dist/hooks/useMedia.js.map +0 -7
  464. package/dist/hooks/useTheme.js +0 -89
  465. package/dist/hooks/useTheme.js.map +0 -7
  466. package/dist/index.cjs +0 -2202
  467. package/dist/index.cjs.map +0 -7
  468. package/dist/index.js.map +0 -7
  469. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  470. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  471. package/dist/packages/core/src/constants/pseudos.d.ts +0 -15
  472. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  473. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  474. package/dist/packages/core/src/createComponent.d.ts +0 -16
  475. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  476. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  477. package/dist/packages/core/src/createTamagui.d.ts +0 -37
  478. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  479. package/dist/packages/core/src/createTheme.d.ts +0 -5
  480. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  481. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  482. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  483. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  484. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  485. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  486. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts +0 -5
  487. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  488. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts +0 -5
  489. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  490. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  491. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +0 -2
  492. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  493. package/dist/packages/core/src/helpers/getSplitStyles.d.ts +0 -15
  494. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  495. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  496. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  497. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  498. package/dist/packages/core/src/helpers/insertStyleRule.d.ts +0 -2
  499. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  500. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  501. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  502. package/dist/packages/core/src/helpers/themeable.d.ts +0 -10
  503. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  504. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  505. package/dist/packages/core/src/hooks/useFeatures.d.ts +0 -5
  506. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  507. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  508. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  509. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  510. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  511. package/dist/packages/core/src/hooks/useTheme.d.ts +0 -18
  512. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  513. package/dist/packages/core/src/index.d.ts.map +0 -1
  514. package/dist/packages/core/src/static/postProcessStyles.d.ts +0 -7
  515. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  516. package/dist/packages/core/src/static.d.ts.map +0 -1
  517. package/dist/packages/core/src/styled.d.ts +0 -16
  518. package/dist/packages/core/src/styled.d.ts.map +0 -1
  519. package/dist/packages/core/src/types.d.ts +0 -305
  520. package/dist/packages/core/src/types.d.ts.map +0 -1
  521. package/dist/packages/core/src/views/Animated.d.ts +0 -15
  522. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  523. package/dist/packages/core/src/views/Stack.d.ts +0 -3
  524. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  525. package/dist/packages/core/src/views/Text.d.ts +0 -3
  526. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  527. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  528. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  529. package/dist/packages/core/src/views/Theme.d.ts +0 -8
  530. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  531. package/dist/packages/core/src/views/ThemeContext.d.ts +0 -18
  532. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  533. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  534. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  535. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  536. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  537. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  538. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  539. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  540. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  541. package/dist/packages/helpers/src/index.d.ts +0 -5
  542. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  543. package/dist/packages/helpers/src/types.d.ts +0 -8
  544. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  545. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  546. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  547. package/dist/static/postProcessStyles.js +0 -18
  548. package/dist/static/postProcessStyles.js.map +0 -7
  549. package/dist/styled.js +0 -21
  550. package/dist/styled.js.map +0 -7
  551. package/dist/views/Animated.js +0 -79
  552. package/dist/views/Animated.js.map +0 -7
  553. package/dist/views/SafeAreaProvider.js +0 -30
  554. package/dist/views/SafeAreaProvider.js.map +0 -7
  555. package/dist/views/Stack.js.map +0 -7
  556. package/dist/views/Text.js.map +0 -7
  557. package/dist/views/TextAncestorContext.js +0 -18
  558. package/dist/views/TextAncestorContext.js.map +0 -7
  559. package/dist/views/Theme.js +0 -65
  560. package/dist/views/Theme.js.map +0 -7
  561. package/dist/views/ThemeContext.js.map +0 -7
  562. package/dist/views/ThemeManagerContext.js +0 -61
  563. package/dist/views/ThemeManagerContext.js.map +0 -7
  564. package/dist/views/ThemeProvider.js +0 -45
  565. package/dist/views/ThemeProvider.js.map +0 -7
  566. package/src/constants/constants.ts +0 -12
  567. package/src/constants/platform.ts +0 -15
  568. package/src/constants/pseudos.ts +0 -14
  569. package/src/constants/rnw.tsx +0 -20
  570. package/src/createComponent.tsx +0 -612
  571. package/src/createFont.ts +0 -31
  572. package/src/createShorthands.ts +0 -5
  573. package/src/createTamagui.ts +0 -217
  574. package/src/createTheme.ts +0 -19
  575. package/src/createTokens.ts +0 -88
  576. package/src/createVariable.ts +0 -26
  577. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  578. package/src/helpers/createMediaStyle.ts +0 -46
  579. package/src/helpers/createPropMapper.ts +0 -184
  580. package/src/helpers/createTamaguiProvider.tsx +0 -22
  581. package/src/helpers/extendStaticConfig.ts +0 -68
  582. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  583. package/src/helpers/fixNativeShadow.tsx +0 -2
  584. package/src/helpers/getSplitStyles.tsx +0 -200
  585. package/src/helpers/getStylesAtomic.native.ts +0 -3
  586. package/src/helpers/getStylesAtomic.ts +0 -103
  587. package/src/helpers/insertStyleRule.tsx +0 -18
  588. package/src/helpers/isObj.ts +0 -1
  589. package/src/helpers/isTamaguiElement.tsx +0 -5
  590. package/src/helpers/matchMedia.native.ts +0 -6
  591. package/src/helpers/matchMedia.ts +0 -17
  592. package/src/helpers/themeable.tsx +0 -42
  593. package/src/helpers/validate.ts +0 -59
  594. package/src/hooks/useConstant.tsx +0 -10
  595. package/src/hooks/useFeatures.tsx +0 -79
  596. package/src/hooks/useMedia.tsx +0 -194
  597. package/src/hooks/usePressable.tsx +0 -9
  598. package/src/hooks/useTheme.tsx +0 -106
  599. package/src/index.ts +0 -32
  600. package/src/static/postProcessStyles.tsx +0 -20
  601. package/src/static.ts +0 -22
  602. package/src/styled.ts +0 -82
  603. package/src/types.tsx +0 -562
  604. package/src/views/Animated.tsx +0 -121
  605. package/src/views/Stack.tsx +0 -21
  606. package/src/views/Text.tsx +0 -66
  607. package/src/views/TextAncestorContext.tsx +0 -12
  608. package/src/views/Theme.tsx +0 -90
  609. package/src/views/ThemeContext.tsx +0 -5
  610. package/src/views/ThemeInverse.tsx +0 -22
  611. package/src/views/ThemeManagerContext.tsx +0 -62
  612. package/src/views/ThemeProvider.tsx +0 -52
  613. package/types.d.ts +0 -559
@@ -21,7 +21,6 @@ var __spreadValues = (a, b) => {
21
21
  return a;
22
22
  };
23
23
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
24
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
26
25
  var __objRest = (source, exclude) => {
27
26
  var target = {};
@@ -36,49 +35,65 @@ var __objRest = (source, exclude) => {
36
35
  return target;
37
36
  };
38
37
  var __export = (target, all) => {
39
- __markAsModule(target);
40
38
  for (var name in all)
41
39
  __defProp(target, name, { get: all[name], enumerable: true });
42
40
  };
43
- var __reExport = (target, module2, desc) => {
44
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
45
- for (let key of __getOwnPropNames(module2))
46
- if (!__hasOwnProp.call(target, key) && key !== "default")
47
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
41
+ var __copyProps = (to, from, except, desc) => {
42
+ if (from && typeof from === "object" || typeof from === "function") {
43
+ for (let key of __getOwnPropNames(from))
44
+ if (!__hasOwnProp.call(to, key) && key !== except)
45
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
48
46
  }
49
- return target;
50
- };
51
- var __toModule = (module2) => {
52
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
47
+ return to;
53
48
  };
54
- __export(exports, {
49
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
50
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
51
+ var createComponent_exports = {};
52
+ __export(createComponent_exports, {
53
+ AbsoluteFill: () => AbsoluteFill,
55
54
  Spacer: () => Spacer,
56
55
  createComponent: () => createComponent,
57
56
  mouseUps: () => mouseUps,
58
57
  spacedChildren: () => spacedChildren
59
58
  });
60
- var import_helpers = __toModule(require("@tamagui/helpers"));
61
- var import_use_force_update = __toModule(require("@tamagui/use-force-update"));
62
- var import_react = __toModule(require("react"));
63
- var import_react_native = __toModule(require("react-native"));
64
- var import_constants = __toModule(require("./constants/constants"));
65
- var import_platform = __toModule(require("./constants/platform"));
66
- var import_rnw = __toModule(require("./constants/rnw"));
67
- var import_createTamagui = __toModule(require("./createTamagui"));
68
- var import_addStylesUsingClassname = __toModule(require("./helpers/addStylesUsingClassname"));
69
- var import_extendStaticConfig = __toModule(require("./helpers/extendStaticConfig"));
70
- var import_getSplitStyles = __toModule(require("./helpers/getSplitStyles"));
71
- var import_useFeatures = __toModule(require("./hooks/useFeatures"));
72
- var import_usePressable = __toModule(require("./hooks/usePressable"));
73
- var import_TextAncestorContext = __toModule(require("./views/TextAncestorContext"));
74
- var import_ThemeManagerContext = __toModule(require("./views/ThemeManagerContext"));
75
- const mouseUps = new Set();
59
+ module.exports = __toCommonJS(createComponent_exports);
60
+ var import_helpers = require("@tamagui/helpers");
61
+ var import_use_force_update = require("@tamagui/use-force-update");
62
+ var import_react = __toESM(require("react"));
63
+ var import_react_native = require("react-native");
64
+ var import_conf = require("./conf");
65
+ var import_constants = require("./constants/constants");
66
+ var import_platform = require("./constants/platform");
67
+ var import_rnw = require("./constants/rnw");
68
+ var import_createVariable = require("./createVariable");
69
+ var import_defaultComponentState = require("./defaultComponentState");
70
+ var import_extendStaticConfig = require("./helpers/extendStaticConfig");
71
+ var import_getSplitStyles = require("./helpers/getSplitStyles");
72
+ var import_wrapThemeManagerContext = require("./helpers/wrapThemeManagerContext");
73
+ var import_useFeatures = require("./hooks/useFeatures");
74
+ var import_usePressable = require("./hooks/usePressable");
75
+ var import_useTheme = require("./hooks/useTheme");
76
+ var import_TextAncestorContext = require("./views/TextAncestorContext");
77
+ const mouseUps = /* @__PURE__ */ new Set();
76
78
  if (typeof document !== "undefined") {
77
79
  document.addEventListener("mouseup", () => {
78
80
  mouseUps.forEach((x) => x());
79
81
  mouseUps.clear();
80
82
  });
81
83
  }
84
+ function createShallowUpdate(setter) {
85
+ return (next) => {
86
+ setter((prev) => {
87
+ for (const key in next) {
88
+ if (prev[key] !== next[key]) {
89
+ return __spreadValues(__spreadValues({}, prev), next);
90
+ }
91
+ }
92
+ return prev;
93
+ });
94
+ };
95
+ }
96
+ __name(createShallowUpdate, "createShallowUpdate");
82
97
  function createComponent(configIn) {
83
98
  let staticConfig;
84
99
  if ("parsed" in configIn) {
@@ -86,48 +101,58 @@ function createComponent(configIn) {
86
101
  } else {
87
102
  staticConfig = (0, import_extendStaticConfig.parseStaticConfig)(configIn);
88
103
  }
89
- const { Component, validStyles, isText, isZStack } = staticConfig;
90
- const validStyleProps = validStyles ?? import_helpers.stylePropsView;
91
- let defaultProps = null;
104
+ const { Component, validStyles, isText, isZStack, componentName } = staticConfig;
105
+ const componentClassName = `is_${componentName}`;
106
+ const validStyleProps = validStyles || import_helpers.stylePropsView;
92
107
  let tamaguiConfig;
93
- let defaultsStyle;
94
- let defaultsClassName = "";
108
+ let AnimatedText;
109
+ let AnimatedView;
110
+ let avoidClasses = false;
111
+ let defaultPseudos = {};
112
+ let defaultNativeStyle;
113
+ let defaultNativeStyleSheet = null;
114
+ let defaultsClassName = null;
95
115
  let initialTheme;
116
+ let splitStyleResult = null;
117
+ function addPseudoToStyles(styles, name, pseudos) {
118
+ const pseudoStyle = pseudos[name];
119
+ if (pseudoStyle) {
120
+ styles.push(import_platform.isWeb ? { [name]: pseudoStyle } : pseudoStyle);
121
+ }
122
+ const defaultPseudoStyle = defaultPseudos[name];
123
+ if (defaultPseudoStyle) {
124
+ styles.push(import_platform.isWeb ? { [name]: defaultPseudoStyle } : defaultPseudoStyle);
125
+ }
126
+ }
127
+ __name(addPseudoToStyles, "addPseudoToStyles");
96
128
  const component = (0, import_react.forwardRef)((props, forwardedRef) => {
97
- var _b;
98
- const forceUpdate = (0, import_use_force_update.useForceUpdate)();
99
- const features = (0, import_useFeatures.useFeatures)(props, { forceUpdate });
100
- const manager = (0, import_react.useContext)(import_ThemeManagerContext.ThemeManagerContext);
101
- const [state, set_] = (0, import_react.useState)(() => ({
102
- hover: false,
103
- press: false,
104
- pressIn: false,
105
- theme: manager.name
106
- }));
107
- const set = /* @__PURE__ */ __name((next) => set_((prev) => {
108
- for (const key in next) {
109
- if (prev[key] !== next[key]) {
110
- return __spreadValues(__spreadValues({}, prev), next);
111
- }
129
+ var _a, _c, _d, _e;
130
+ if (process.env.NODE_ENV === "development") {
131
+ if (props["debug"]) {
132
+ console.warn(componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]", " debug prop on:", { props: Object.entries(props) });
133
+ if (props["debug"] === "break")
134
+ debugger;
112
135
  }
113
- return prev;
114
- }), "set");
115
- if (process.env.NODE_ENV === "development" && !isText && import_platform.isWeb) {
116
- import_react.Children.toArray(props.children).forEach((item) => {
117
- if (typeof item === "string") {
118
- console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
119
- }
120
- });
121
136
  }
122
- const hasTextAncestor = import_platform.isWeb ? (0, import_react.useContext)(import_TextAncestorContext.TextAncestorContext) : false;
123
- const hostRef = (0, import_react.useRef)(null);
124
- const {
125
- viewProps: viewPropsIn,
126
- pseudos,
127
- style,
128
- classNames
129
- } = (0, import_getSplitStyles.getSplitStyles)(props, staticConfig, manager.theme || initialTheme);
130
- const _a = viewPropsIn, {
137
+ const forceUpdate = (0, import_use_force_update.useForceUpdate)();
138
+ const theme = (0, import_useTheme.useTheme)(props.theme, componentName, props, forceUpdate);
139
+ const [state, set_] = (0, import_react.useState)(import_defaultComponentState.defaultComponentState);
140
+ const setStateShallow = createShallowUpdate(set_);
141
+ const shouldAvoidClasses = !!(state.animation && avoidClasses);
142
+ const splitInfo = (0, import_getSplitStyles.getSplitStyles)(props, staticConfig, theme, shouldAvoidClasses ? __spreadProps(__spreadValues({}, state), { noClassNames: true, resolveVariablesAs: "value" }) : state, defaultsClassName);
143
+ const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitInfo;
144
+ const useAnimations = (_a = tamaguiConfig.animations) == null ? void 0 : _a.useAnimations;
145
+ const isAnimated = !!(useAnimations && props.animation);
146
+ const styleWithPseudos = props.animation ? merge(__spreadValues(__spreadValues({}, defaultNativeStyle), style), state.hover && pseudos.hoverStyle, state.press && pseudos.pressStyle, state.focus && pseudos.focusStyle, ...Object.values(medias)) : null;
147
+ const features = (0, import_useFeatures.useFeatures)(props, {
148
+ forceUpdate,
149
+ setStateShallow,
150
+ useAnimations,
151
+ state,
152
+ style: styleWithPseudos,
153
+ pseudos
154
+ });
155
+ const _b = viewPropsIn, {
131
156
  tag,
132
157
  hitSlop,
133
158
  children,
@@ -159,11 +184,15 @@ function createComponent(configIn) {
159
184
  onStartShouldSetResponder,
160
185
  onStartShouldSetResponderCapture,
161
186
  onMouseDown,
162
- onClick,
187
+ nativeID,
163
188
  accessible,
164
189
  accessibilityRole,
190
+ collapsable,
191
+ focusable,
192
+ theme: _themeProp,
193
+ defaultVariants,
165
194
  onLayout
166
- } = _a, viewProps = __objRest(_a, [
195
+ } = _b, viewPropsRest = __objRest(_b, [
167
196
  "tag",
168
197
  "hitSlop",
169
198
  "children",
@@ -195,11 +224,53 @@ function createComponent(configIn) {
195
224
  "onStartShouldSetResponder",
196
225
  "onStartShouldSetResponderCapture",
197
226
  "onMouseDown",
198
- "onClick",
227
+ "nativeID",
199
228
  "accessible",
200
229
  "accessibilityRole",
230
+ "collapsable",
231
+ "focusable",
232
+ "theme",
233
+ "defaultVariants",
201
234
  "onLayout"
202
235
  ]);
236
+ let viewProps = viewPropsRest;
237
+ if (process.env.NODE_ENV === "development" && !isText && import_platform.isWeb) {
238
+ import_react.Children.toArray(props.children).forEach((item) => {
239
+ if (typeof item === "string") {
240
+ console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
241
+ }
242
+ });
243
+ }
244
+ const hasTextAncestor = import_platform.isWeb ? (0, import_react.useContext)(import_TextAncestorContext.TextAncestorContext) : false;
245
+ const hostRef = (0, import_react.useRef)(null);
246
+ const hasEnterStyle = !!props.enterStyle;
247
+ const internal = (0, import_react.useRef)();
248
+ if (!internal.current) {
249
+ internal.current = {
250
+ isMounted: true
251
+ };
252
+ }
253
+ (0, import_react.useEffect)(() => {
254
+ if (hasEnterStyle) {
255
+ setStateShallow({
256
+ mounted: true
257
+ });
258
+ }
259
+ internal.current.isMounted = true;
260
+ return () => {
261
+ mouseUps.delete(unPress);
262
+ internal.current.isMounted = false;
263
+ };
264
+ }, []);
265
+ if (nativeID) {
266
+ viewProps.id = nativeID;
267
+ }
268
+ if (import_platform.isAndroid) {
269
+ if (collapsable)
270
+ viewProps.collapsable = collapsable;
271
+ if (focusable)
272
+ viewProps.focusable = focusable;
273
+ }
203
274
  if (!import_platform.isWeb) {
204
275
  if (accessible)
205
276
  viewProps.accessible = accessible;
@@ -226,53 +297,49 @@ function createComponent(configIn) {
226
297
  onStartShouldSetResponderCapture
227
298
  });
228
299
  }
229
- const isTracking = (0, import_react.useRef)(false);
230
- const internal = (0, import_react.useRef)();
231
- if (!internal.current) {
232
- internal.current = {
233
- isMounted: true
234
- };
300
+ const isTaggable = !Component || typeof Component === "string";
301
+ const element = import_platform.isWeb ? isTaggable ? tag || Component : Component : Component;
302
+ const BaseTextComponent = !import_platform.isWeb ? import_react_native.Text : element || "span";
303
+ const BaseViewComponent = !import_platform.isWeb ? import_react_native.View : element || (hasTextAncestor ? "span" : "div");
304
+ let ViewComponent = isText ? (isAnimated ? AnimatedText || import_react_native.Text : null) || BaseTextComponent : (isAnimated ? AnimatedView || import_react_native.View : null) || BaseViewComponent;
305
+ ViewComponent = Component || ViewComponent;
306
+ let styles;
307
+ const isStringElement = typeof ViewComponent === "string";
308
+ const animationStyles = state.animation ? state.animation.style : null;
309
+ if (isStringElement && shouldAvoidClasses) {
310
+ styles = __spreadValues(__spreadValues(__spreadValues({}, defaultNativeStyle), animationStyles), medias);
311
+ } else {
312
+ styles = [
313
+ import_platform.isWeb ? null : defaultNativeStyleSheet ? defaultNativeStyleSheet.base : null,
314
+ animationStyles ? animationStyles : style,
315
+ medias
316
+ ];
317
+ if (!animationStyles) {
318
+ state.hover && addPseudoToStyles(styles, "hoverStyle", pseudos);
319
+ state.focus && addPseudoToStyles(styles, "focusStyle", pseudos);
320
+ state.press && addPseudoToStyles(styles, "pressStyle", pseudos);
321
+ }
235
322
  }
236
- (0, import_react.useEffect)(() => {
237
- internal.current.isMounted = true;
238
- const dispose = manager == null ? void 0 : manager.onChangeTheme((name) => {
239
- if (isTracking.current) {
240
- set({ theme: name });
241
- }
242
- });
243
- return () => {
244
- dispose();
245
- mouseUps.delete(unPress);
246
- isTracking.current = false;
247
- internal.current.isMounted = false;
248
- };
249
- }, [manager]);
250
- const element = import_platform.isWeb ? !Component || typeof Component === "string" ? tag || Component : Component : Component;
251
- const ReactView = !import_platform.isWeb ? import_react_native.View : element || (hasTextAncestor ? "span" : "div");
252
- const ReactText = !import_platform.isWeb ? import_react_native.Text : element || "span";
253
- const ViewComponent = isText ? ReactText : ReactView;
254
- const isHovering = !import_platform.isTouchDevice && !disabled && pseudos && state.hover;
255
- const isPressing = !disabled && pseudos && state.press;
256
- const styles = [
257
- style,
258
- isHovering ? pseudos.hoverStyle || null : null,
259
- isPressing ? pseudos.pressStyle || null : null
260
- ];
261
323
  if (import_platform.isWeb) {
262
- const stylesClassNames = (0, import_addStylesUsingClassname.useStylesAsClassname)(styles);
263
- const classList = isText ? [
264
- defaultsClassName,
265
- classNames,
266
- stylesClassNames,
267
- props.className
268
- ] : [defaultsClassName, props.className, classNames, stylesClassNames];
269
- const className = (0, import_helpers.concatClassName)(...classList);
270
- if (process.env.NODE_ENV === "development") {
271
- if (props["debug"]) {
272
- console.log("\u{1F95A} className", { style, styles, classList, stylesClassNames, className });
324
+ if (!shouldAvoidClasses) {
325
+ const fontFamilyName = isText ? props.fontFamily || staticConfig.defaultProps.fontFamily : null;
326
+ const fontFamily = fontFamilyName && fontFamilyName[0] === "$" ? fontFamilyName.slice(1) : null;
327
+ const classList = [
328
+ componentName ? componentClassName : "",
329
+ fontFamily ? `font_${fontFamily}` : "",
330
+ theme.className,
331
+ classNames ? Object.values(classNames).join(" ") : ""
332
+ ];
333
+ const className = classList.join(" ");
334
+ if (process.env.NODE_ENV === "development") {
335
+ if (props["debug"]) {
336
+ console.log(" \xBB className", { isStringElement, pseudos, state, defaultsClassName, classNames, propsClassName: props.className, style, classList, className: className.trim().split(" "), themeClassName: theme.className });
337
+ }
273
338
  }
339
+ viewProps.className = className;
340
+ } else {
341
+ viewProps.style = styles;
274
342
  }
275
- viewProps.className = className;
276
343
  } else {
277
344
  viewProps.style = styles;
278
345
  }
@@ -282,7 +349,13 @@ function createComponent(configIn) {
282
349
  if (import_platform.isWeb) {
283
350
  const platformMethodsRef = import_rnw.rnw.usePlatformMethods(viewProps);
284
351
  const setRef = import_rnw.rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef);
285
- viewProps.ref = setRef;
352
+ if (!isAnimated) {
353
+ viewProps.ref = setRef;
354
+ } else {
355
+ if (forwardedRef) {
356
+ viewProps.ref = forwardedRef;
357
+ }
358
+ }
286
359
  if (props.href != null && hrefAttrs != null) {
287
360
  const { download, rel, target } = hrefAttrs;
288
361
  if (download != null) {
@@ -300,16 +373,15 @@ function createComponent(configIn) {
300
373
  viewProps.ref = forwardedRef;
301
374
  }
302
375
  }
303
- const attachPress = !!(pseudos && pseudos.pressStyle || onPress || onPressOut || onPressIn || onClick);
304
- const attachHover = import_platform.isWeb && !import_platform.isTouchDevice && !!(pseudos && pseudos.hoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
305
- const shouldAttach = internal.current.hasEverHadEvents || attachPress || attachHover || "pressStyle" in props || "onPress" in props || "onPressIn" in props || "onPressOut" in props || import_platform.isWeb && ("hoverStyle" in props || "onClick" in props || "onHoverIn" in props || "onHoverOut" in props || "onMouseEnter" in props || "onMouseLeave" in props);
306
- if (shouldAttach) {
307
- internal.current.hasEverHadEvents = true;
308
- }
376
+ const attachPress = !!(pseudos && pseudos.pressStyle || onPress || onPressOut || onPressIn);
377
+ const isHoverable = import_platform.isWeb && !import_platform.isTouchDevice;
378
+ const attachHover = isHoverable && !!(pseudos && pseudos.hoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
379
+ const pressEventKey = isStringElement ? "onClick" : "onPress";
380
+ const shouldAttach = attachPress || attachHover || "pressStyle" in props || "onPress" in props || "onPressIn" in props || "onPressOut" in props || import_platform.isWeb && ("hoverStyle" in props || "onHoverIn" in props || "onHoverOut" in props || "onMouseEnter" in props || "onMouseLeave" in props);
309
381
  const unPress = (0, import_react.useCallback)(() => {
310
382
  if (!internal.current.isMounted)
311
383
  return;
312
- set({
384
+ setStateShallow({
313
385
  press: false,
314
386
  pressIn: false
315
387
  });
@@ -319,8 +391,8 @@ function createComponent(configIn) {
319
391
  unPress();
320
392
  onPressOut == null ? void 0 : onPressOut(e);
321
393
  }
322
- }), import_platform.isWeb && !import_platform.isTouchDevice && {
323
- onMouseEnter: attachHover || attachPress ? (e) => {
394
+ }), isHoverable && {
395
+ onMouseEnter: attachHover ? (e) => {
324
396
  let next = {};
325
397
  if (attachHover) {
326
398
  next.hover = true;
@@ -329,12 +401,12 @@ function createComponent(configIn) {
329
401
  next.press = true;
330
402
  }
331
403
  if (Object.keys(next).length) {
332
- set(next);
404
+ setStateShallow(next);
333
405
  }
334
406
  onHoverIn == null ? void 0 : onHoverIn(e);
335
407
  onMouseEnter == null ? void 0 : onMouseEnter(e);
336
408
  } : void 0,
337
- onMouseLeave: attachHover || attachPress ? (e) => {
409
+ onMouseLeave: attachHover ? (e) => {
338
410
  let next = {};
339
411
  mouseUps.add(unPress);
340
412
  if (attachHover) {
@@ -345,102 +417,124 @@ function createComponent(configIn) {
345
417
  next.pressIn = false;
346
418
  }
347
419
  if (Object.keys(next).length) {
348
- set(next);
420
+ setStateShallow(next);
349
421
  }
350
422
  onHoverOut == null ? void 0 : onHoverOut(e);
351
423
  onMouseLeave == null ? void 0 : onMouseLeave(e);
352
424
  } : void 0
353
425
  }), {
354
426
  onMouseDown: attachPress ? (e) => {
355
- set({
427
+ setStateShallow({
356
428
  press: true,
357
429
  pressIn: true
358
430
  });
359
431
  onPressIn == null ? void 0 : onPressIn(e);
360
432
  onMouseDown == null ? void 0 : onMouseDown(e);
361
- } : onPressIn,
362
- onClick: attachPress ? (e) => {
433
+ } : null,
434
+ [pressEventKey]: attachPress ? (e) => {
363
435
  onPress == null ? void 0 : onPress(e);
364
- onClick == null ? void 0 : onClick(e);
365
436
  unPress();
366
437
  onPressOut == null ? void 0 : onPressOut(e);
367
- } : onPressOut
438
+ } : null
368
439
  }) : null;
440
+ let childEls = !children ? children : (0, import_wrapThemeManagerContext.wrapThemeManagerContext)(spacedChildren({
441
+ children,
442
+ space,
443
+ flexDirection: props.flexDirection || ((_c = staticConfig.defaultProps) == null ? void 0 : _c.flexDirection),
444
+ isZStack
445
+ }), (0, import_useTheme.getThemeManagerIfChanged)(theme));
446
+ const [pressProps] = (0, import_usePressable.usePressable)(events ? __spreadProps(__spreadValues({
447
+ disabled
448
+ }, hitSlop && {
449
+ hitSlop
450
+ }), {
451
+ onPressIn: events.onMouseDown,
452
+ onPressOut: events.onPressOut,
453
+ onPress: events[pressEventKey]
454
+ }) : {
455
+ disabled: true
456
+ });
369
457
  if (events) {
370
- if (typeof ViewComponent !== "string") {
371
- const [pressProps] = (0, import_usePressable.usePressable)({
372
- disabled,
373
- hitSlop,
374
- onPressIn: events.onMouseDown,
375
- onPressOut: events.onPressOut,
376
- onPress: events.onClick
377
- });
458
+ if (!isStringElement) {
378
459
  Object.assign(viewProps, pressProps);
379
460
  } else {
380
461
  Object.assign(viewProps, events);
381
462
  }
463
+ if (import_platform.isWeb && isHoverable) {
464
+ childEls = /* @__PURE__ */ import_react.default.createElement("span", {
465
+ style: {
466
+ display: "contents"
467
+ },
468
+ onMouseEnter: events.onMouseEnter,
469
+ onMouseLeave: events.onMouseLeave
470
+ }, children);
471
+ }
382
472
  }
383
- const childEls = spacedChildren({
384
- children,
385
- space,
386
- flexDirection: props.flexDirection || (defaultProps == null ? void 0 : defaultProps.flexDirection),
387
- isZStack
388
- });
389
473
  let content;
390
- if (import_platform.isWeb && import_rnw.rnw) {
391
- const domProps = import_rnw.rnw.createDOMProps(viewProps);
392
- const className = domProps.className && domProps.className !== viewProps.className ? `${domProps.className} ${viewProps.className}` : viewProps.className;
393
- Object.assign(viewProps, domProps);
394
- viewProps.className = className;
395
- content = (0, import_react.createElement)(ViewComponent, viewProps, childEls);
396
- } else {
397
- content = (0, import_react.createElement)(ViewComponent, viewProps, childEls);
398
- }
399
- const shouldWrapTextAncestor = import_platform.isWeb && isText && !hasTextAncestor;
400
- if (shouldWrapTextAncestor) {
401
- content = (0, import_react.createElement)(import_TextAncestorContext.TextAncestorContext.Provider, { value: true }, content);
474
+ if (import_platform.isWeb) {
475
+ if (staticConfig.isReactNativeWeb) {
476
+ viewProps.dataSet = __spreadProps(__spreadValues({}, viewProps.dataSet), {
477
+ className: viewProps.className
478
+ });
479
+ } else {
480
+ const rnProps = import_rnw.rnw.createDOMProps(viewProps);
481
+ const className = rnProps.className && rnProps.className !== viewProps.className ? `${rnProps.className} ${viewProps.className}` : viewProps.className;
482
+ Object.assign(viewProps, rnProps);
483
+ if (className) {
484
+ viewProps.className = className;
485
+ }
486
+ }
402
487
  }
488
+ content = (0, import_react.createElement)(ViewComponent, viewProps, childEls);
403
489
  if (process.env.NODE_ENV === "development") {
404
490
  if (props["debug"]) {
405
491
  viewProps["debug"] = true;
406
- console.log("\u{1F95A} props in:", props);
407
- console.log("\u{1F95A} props out:", viewProps);
408
- console.log((_b = props.onClick) == null ? void 0 : _b.toString());
409
- console.log("\u{1F95A} etc:", { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls });
410
- if (import_platform.isWeb) {
411
- console.log("\u{1F95A} component info", { staticConfig, tamaguiConfig });
412
- }
492
+ console.log(" \xBB ", __spreadValues({ propsIn: __spreadValues({}, props), propsOut: __spreadValues({}, viewProps), animationStyles, isStringElement, classNamesIn: (_d = props.className) == null ? void 0 : _d.split(" "), classNamesOut: (_e = viewProps.className) == null ? void 0 : _e.split(" "), pressProps, events, shouldAttach, ViewComponent, viewProps, state, styles, pseudos, content, childEls, shouldAvoidClasses, animation: props.animation, style, defaultNativeStyle, splitStyleResult }, typeof window !== "undefined" ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null));
413
493
  }
414
494
  }
415
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, features, content);
495
+ if (features.length) {
496
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, features, content);
497
+ }
498
+ return content;
416
499
  });
417
- (0, import_createTamagui.onConfiguredOnce)((conf) => {
418
- var _a;
500
+ (0, import_conf.onConfiguredOnce)((conf) => {
501
+ var _a, _b, _c, _d;
502
+ const shouldDebug = (_a = staticConfig.defaultProps) == null ? void 0 : _a.debug;
419
503
  tamaguiConfig = conf;
504
+ avoidClasses = !!((_b = tamaguiConfig.animations) == null ? void 0 : _b.avoidClasses);
505
+ AnimatedText = (_c = tamaguiConfig.animations) == null ? void 0 : _c.Text;
506
+ AnimatedView = (_d = tamaguiConfig == null ? void 0 : tamaguiConfig.animations) == null ? void 0 : _d.View;
420
507
  initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
421
- const next = (0, import_getSplitStyles.getSplitStyles)(staticConfig.defaultProps, staticConfig, initialTheme, true);
508
+ splitStyleResult = (0, import_getSplitStyles.getSplitStyles)(staticConfig.defaultProps, staticConfig, initialTheme, {
509
+ mounted: true,
510
+ resolveVariablesAs: "variable"
511
+ });
512
+ const { classNames, pseudos, style, viewProps } = splitStyleResult;
422
513
  if (import_platform.isWeb) {
423
- if (next.classNames) {
424
- defaultsClassName += next.classNames + " ";
425
- }
426
- defaultsClassName += (0, import_addStylesUsingClassname.addStylesUsingClassname)([next.style, next.pseudos]);
427
- } else {
428
- if (!hasWarnedOnce) {
429
- hasWarnedOnce = true;
430
- console.log("\u26A0\uFE0F TODO account for default styles for media queries");
431
- }
514
+ defaultsClassName = classNames;
432
515
  }
433
- component.defaultProps = __spreadValues(__spreadValues({}, next.viewProps), component.defaultProps);
434
- if (process.env.NODE_ENV === "development") {
435
- if ((_a = staticConfig.defaultProps) == null ? void 0 : _a.debug) {
436
- console.log("tamagui debug component:", next, defaultsClassName, component.defaultProps);
437
- }
516
+ defaultPseudos = pseudos;
517
+ defaultNativeStyle = {};
518
+ for (const key in style) {
519
+ const v = style[key];
520
+ defaultNativeStyle[key] = (0, import_createVariable.isVariable)(v) ? v.val : v;
521
+ }
522
+ defaultNativeStyleSheet = import_react_native.StyleSheet.create({
523
+ base: defaultNativeStyle
524
+ });
525
+ component.displayName = staticConfig.componentName;
526
+ component.defaultProps = __spreadValues(__spreadValues({}, viewProps), component.defaultProps);
527
+ if (process.env.NODE_ENV === "development" && shouldDebug && process.env.IS_STATIC !== "is_static") {
528
+ console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, __spreadValues({ staticConfig }, splitStyleResult));
438
529
  }
439
530
  });
440
- component["staticConfig"] = __spreadValues({
531
+ let res = component;
532
+ if (configIn.memo) {
533
+ res = (0, import_react.memo)(res);
534
+ }
535
+ res["staticConfig"] = __spreadValues({
441
536
  validStyles: validStyleProps
442
537
  }, staticConfig);
443
- const res = component;
444
538
  res["extractable"] = (Component2, conf) => {
445
539
  Component2["staticConfig"] = (0, import_extendStaticConfig.extendStaticConfig)(res, __spreadProps(__spreadValues({}, conf), {
446
540
  neverFlatten: true,
@@ -451,8 +545,8 @@ function createComponent(configIn) {
451
545
  return res;
452
546
  }
453
547
  __name(createComponent, "createComponent");
454
- let hasWarnedOnce = false;
455
548
  const Spacer = createComponent({
549
+ memo: true,
456
550
  defaultProps: __spreadProps(__spreadValues({}, import_constants.stackDefaultStyles), {
457
551
  size: true
458
552
  }),
@@ -460,18 +554,28 @@ const Spacer = createComponent({
460
554
  size: {
461
555
  "...size": (size, { tokens }) => {
462
556
  size = size == true ? "$true" : size;
557
+ const sizePx = tokens.size[size] ?? size;
463
558
  return {
464
- width: tokens.size[size] ?? size,
465
- height: tokens.size[size] ?? size
559
+ width: sizePx,
560
+ height: sizePx,
561
+ minWidth: sizePx,
562
+ minHeight: sizePx
466
563
  };
467
564
  }
468
565
  },
566
+ flex: {
567
+ true: {
568
+ flex: 1
569
+ }
570
+ },
469
571
  direction: {
470
572
  horizontal: {
471
- height: 0
573
+ height: 0,
574
+ minHeight: 0
472
575
  },
473
576
  vertical: {
474
- width: 0
577
+ width: 0,
578
+ minWidth: 0
475
579
  }
476
580
  }
477
581
  }
@@ -480,52 +584,86 @@ function spacedChildren({
480
584
  isZStack,
481
585
  children,
482
586
  space,
483
- flexDirection
587
+ flexDirection,
588
+ spaceFlex
484
589
  }) {
485
590
  var _a;
486
- if (!space && !isZStack) {
487
- return children;
488
- }
489
591
  const childrenList = import_react.Children.toArray(children);
490
592
  const len = childrenList.length;
491
593
  if (len === 1) {
492
- return children;
594
+ return childrenList;
493
595
  }
494
596
  const next = [];
495
597
  for (const [index, child] of childrenList.entries()) {
496
598
  if (child === null || child === void 0) {
497
599
  continue;
498
600
  }
499
- const key = `${(child == null ? void 0 : child["key"]) ?? index}`;
500
- next.push(/* @__PURE__ */ import_react.default.createElement(import_react.Fragment, {
501
- key
502
- }, isZStack ? /* @__PURE__ */ import_react.default.createElement(Absolute, null, child) : child));
503
- if ((_a = child == null ? void 0 : child["type"]) == null ? void 0 : _a["isVisuallyHidden"]) {
601
+ if (!child || child["key"] && !isZStack) {
602
+ next.push(child);
603
+ } else {
604
+ next.push(/* @__PURE__ */ import_react.default.createElement(import_react.Fragment, {
605
+ key: index
606
+ }, isZStack ? /* @__PURE__ */ import_react.default.createElement(AbsoluteFill, null, child) : child));
607
+ }
608
+ if ((_a = child["type"]) == null ? void 0 : _a["isVisuallyHidden"]) {
504
609
  continue;
505
610
  }
506
611
  if (index !== len - 1) {
507
612
  if (space) {
508
- next.push(/* @__PURE__ */ import_react.default.createElement(Spacer, {
509
- key: `${key}_spacer`,
613
+ next.push(/* @__PURE__ */ import_react.default.createElement(Spacer, __spreadValues({
614
+ key: `_${index}_spacer`,
510
615
  direction: flexDirection === "row" || flexDirection === "row-reverse" ? "horizontal" : "vertical",
511
616
  size: space
512
- }));
617
+ }, spaceFlex && {
618
+ flex: spaceFlex
619
+ })));
513
620
  }
514
621
  }
515
622
  }
516
623
  return next;
517
624
  }
518
625
  __name(spacedChildren, "spacedChildren");
519
- const Absolute = /* @__PURE__ */ __name(({ children }) => /* @__PURE__ */ import_react.default.createElement(import_react_native.View, {
520
- style: sheet.fullscreen
521
- }, children), "Absolute");
522
- const sheet = import_react_native.StyleSheet.create({
523
- fullscreen: {
626
+ const merge = /* @__PURE__ */ __name((...styles) => {
627
+ if (!styles[0])
628
+ return;
629
+ const res = {};
630
+ const len = styles.length;
631
+ for (let i = len - 1; i >= 0; i--) {
632
+ const cur = styles[i];
633
+ if (!cur)
634
+ continue;
635
+ for (const key in cur) {
636
+ const val = cur[key];
637
+ if (key !== "transform") {
638
+ if (!(key in res)) {
639
+ res[key] = val;
640
+ }
641
+ continue;
642
+ }
643
+ if (!res.transform) {
644
+ res.transform = val;
645
+ continue;
646
+ }
647
+ for (const t of val) {
648
+ const tkey = Object.keys(t)[0];
649
+ if (res.transform.find((existing) => tkey in existing)) {
650
+ continue;
651
+ }
652
+ res.transform.push(t);
653
+ }
654
+ }
655
+ }
656
+ return res;
657
+ }, "merge");
658
+ const AbsoluteFill = /* @__PURE__ */ __name((props) => import_platform.isWeb ? /* @__PURE__ */ import_react.default.createElement("div", {
659
+ style: {
524
660
  position: "absolute",
525
661
  top: 0,
526
662
  left: 0,
527
663
  right: 0,
528
664
  bottom: 0
529
665
  }
530
- });
666
+ }, props.children) : /* @__PURE__ */ import_react.default.createElement(import_react_native.View, {
667
+ style: import_react_native.StyleSheet.absoluteFill
668
+ }, props.child), "AbsoluteFill");
531
669
  //# sourceMappingURL=createComponent.js.map