@tamagui/web 1.110.4 → 1.111.0

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 (430) hide show
  1. package/dist/cjs/Tamagui.native.js +3 -12
  2. package/dist/cjs/Tamagui.native.js.map +1 -1
  3. package/dist/cjs/_withStableStyle.native.js +6 -44
  4. package/dist/cjs/_withStableStyle.native.js.map +1 -1
  5. package/dist/cjs/config.js +15 -4
  6. package/dist/cjs/config.js.map +1 -1
  7. package/dist/cjs/config.native.js +20 -51
  8. package/dist/cjs/config.native.js.map +2 -2
  9. package/dist/cjs/constants/webToNativeProps.native.js +1 -1
  10. package/dist/cjs/constants/webToNativeProps.native.js.map +1 -1
  11. package/dist/cjs/createComponent.native.js +195 -444
  12. package/dist/cjs/createComponent.native.js.map +2 -2
  13. package/dist/cjs/createFont.native.js +7 -55
  14. package/dist/cjs/createFont.native.js.map +1 -1
  15. package/dist/cjs/createTamagui.js +8 -7
  16. package/dist/cjs/createTamagui.js.map +1 -1
  17. package/dist/cjs/createTamagui.native.js +56 -129
  18. package/dist/cjs/createTamagui.native.js.map +2 -2
  19. package/dist/cjs/createVariable.native.js +5 -9
  20. package/dist/cjs/createVariable.native.js.map +1 -1
  21. package/dist/cjs/createVariables.native.js +4 -9
  22. package/dist/cjs/createVariables.native.js.map +1 -1
  23. package/dist/cjs/defaultComponentState.native.js +5 -37
  24. package/dist/cjs/defaultComponentState.native.js.map +1 -1
  25. package/dist/cjs/helpers/ThemeManager.native.js +18 -67
  26. package/dist/cjs/helpers/ThemeManager.native.js.map +2 -2
  27. package/dist/cjs/helpers/createMediaStyle.native.js +11 -53
  28. package/dist/cjs/helpers/createMediaStyle.native.js.map +2 -2
  29. package/dist/cjs/helpers/createShallowSetState.native.js +5 -22
  30. package/dist/cjs/helpers/createShallowSetState.native.js.map +1 -1
  31. package/dist/cjs/helpers/createStyledContext.native.js +6 -46
  32. package/dist/cjs/helpers/createStyledContext.native.js.map +1 -1
  33. package/dist/cjs/helpers/expandStyle.native.js +16 -35
  34. package/dist/cjs/helpers/expandStyle.native.js.map +1 -1
  35. package/dist/cjs/helpers/getGroupPropParts.native.js +1 -42
  36. package/dist/cjs/helpers/getGroupPropParts.native.js.map +2 -2
  37. package/dist/cjs/helpers/getSplitStyles.native.js +75 -131
  38. package/dist/cjs/helpers/getSplitStyles.native.js.map +2 -2
  39. package/dist/cjs/helpers/getVariantExtras.native.js +15 -73
  40. package/dist/cjs/helpers/getVariantExtras.native.js.map +1 -1
  41. package/dist/cjs/helpers/insertStyleRule.native.js +12 -67
  42. package/dist/cjs/helpers/insertStyleRule.native.js.map +1 -1
  43. package/dist/cjs/helpers/isObj.native.js +1 -5
  44. package/dist/cjs/helpers/isObj.native.js.map +1 -1
  45. package/dist/cjs/helpers/log.native.js +1 -29
  46. package/dist/cjs/helpers/log.native.js.map +1 -1
  47. package/dist/cjs/helpers/matchMedia.native.js +1 -26
  48. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  49. package/dist/cjs/helpers/mergeProps.native.js +5 -22
  50. package/dist/cjs/helpers/mergeProps.native.js.map +1 -1
  51. package/dist/cjs/helpers/mergeVariants.native.js +8 -21
  52. package/dist/cjs/helpers/mergeVariants.native.js.map +1 -1
  53. package/dist/cjs/helpers/normalizeColor.native.js +3 -3
  54. package/dist/cjs/helpers/normalizeColor.native.js.map +1 -1
  55. package/dist/cjs/helpers/normalizeShadow.native.js +1 -1
  56. package/dist/cjs/helpers/normalizeShadow.native.js.map +2 -2
  57. package/dist/cjs/helpers/normalizeValueWithProperty.native.js +5 -43
  58. package/dist/cjs/helpers/normalizeValueWithProperty.native.js.map +1 -1
  59. package/dist/cjs/helpers/objectIdentityKey.native.js +1 -5
  60. package/dist/cjs/helpers/objectIdentityKey.native.js.map +1 -1
  61. package/dist/cjs/helpers/propMapper.js +2 -2
  62. package/dist/cjs/helpers/propMapper.js.map +1 -1
  63. package/dist/cjs/helpers/propMapper.native.js +20 -66
  64. package/dist/cjs/helpers/propMapper.native.js.map +2 -2
  65. package/dist/cjs/helpers/proxyThemeToParents.native.js +3 -3
  66. package/dist/cjs/helpers/proxyThemeToParents.native.js.map +1 -1
  67. package/dist/cjs/helpers/proxyThemeVariables.native.js +2 -2
  68. package/dist/cjs/helpers/proxyThemeVariables.native.js.map +1 -1
  69. package/dist/cjs/helpers/pseudoDescriptors.native.js +3 -36
  70. package/dist/cjs/helpers/pseudoDescriptors.native.js.map +1 -1
  71. package/dist/cjs/helpers/registerCSSVariable.native.js +1 -1
  72. package/dist/cjs/helpers/registerCSSVariable.native.js.map +2 -2
  73. package/dist/cjs/helpers/themeable.native.js +6 -62
  74. package/dist/cjs/helpers/themeable.native.js.map +1 -1
  75. package/dist/cjs/helpers/transformsToString.native.js +1 -1
  76. package/dist/cjs/helpers/transformsToString.native.js.map +1 -1
  77. package/dist/cjs/hooks/useConfiguration.native.js +6 -61
  78. package/dist/cjs/hooks/useConfiguration.native.js.map +2 -2
  79. package/dist/cjs/hooks/useMedia.native.js +31 -108
  80. package/dist/cjs/hooks/useMedia.native.js.map +2 -2
  81. package/dist/cjs/hooks/useProps.native.js +18 -96
  82. package/dist/cjs/hooks/useProps.native.js.map +2 -2
  83. package/dist/cjs/hooks/useTheme.native.js +95 -176
  84. package/dist/cjs/hooks/useTheme.native.js.map +2 -2
  85. package/dist/cjs/hooks/useThemeName.native.js +1 -42
  86. package/dist/cjs/hooks/useThemeName.native.js.map +2 -2
  87. package/dist/cjs/inject-styles.native.js +1 -1
  88. package/dist/cjs/inject-styles.native.js.map +1 -1
  89. package/dist/cjs/insertFont.native.js +1 -1
  90. package/dist/cjs/insertFont.native.js.map +1 -1
  91. package/dist/cjs/styled.native.js +16 -65
  92. package/dist/cjs/styled.native.js.map +2 -2
  93. package/dist/cjs/views/Configuration.native.js +5 -22
  94. package/dist/cjs/views/Configuration.native.js.map +1 -1
  95. package/dist/cjs/views/FontLanguage.native.js +2 -22
  96. package/dist/cjs/views/FontLanguage.native.js.map +1 -1
  97. package/dist/cjs/views/Slot.native.js +17 -62
  98. package/dist/cjs/views/Slot.native.js.map +1 -1
  99. package/dist/cjs/views/Stack.native.js.map +1 -1
  100. package/dist/cjs/views/TamaguiProvider.native.js +2 -43
  101. package/dist/cjs/views/TamaguiProvider.native.js.map +2 -2
  102. package/dist/cjs/views/Text.native.js +9 -41
  103. package/dist/cjs/views/Text.native.js.map +2 -2
  104. package/dist/cjs/views/Theme.native.js +12 -38
  105. package/dist/cjs/views/Theme.native.js.map +2 -2
  106. package/dist/cjs/views/ThemeDebug.native.js +1 -1
  107. package/dist/cjs/views/ThemeDebug.native.js.map +1 -1
  108. package/dist/cjs/views/ThemeProvider.native.js +1 -1
  109. package/dist/cjs/views/ThemeProvider.native.js.map +1 -1
  110. package/dist/cjs/views/View.native.js.map +1 -1
  111. package/dist/esm/Tamagui.native.js +3 -12
  112. package/dist/esm/Tamagui.native.js.map +1 -1
  113. package/dist/esm/Tamagui.native.mjs +84 -0
  114. package/dist/esm/Tamagui.native.mjs.map +1 -0
  115. package/dist/esm/_withStableStyle.native.js +5 -42
  116. package/dist/esm/_withStableStyle.native.js.map +1 -1
  117. package/dist/esm/_withStableStyle.native.mjs +19 -0
  118. package/dist/esm/_withStableStyle.native.mjs.map +1 -0
  119. package/dist/esm/config.js +15 -4
  120. package/dist/esm/config.js.map +1 -1
  121. package/dist/esm/config.mjs +16 -4
  122. package/dist/esm/config.mjs.map +1 -1
  123. package/dist/esm/config.native.js +21 -51
  124. package/dist/esm/config.native.js.map +2 -2
  125. package/dist/esm/config.native.mjs +93 -0
  126. package/dist/esm/config.native.mjs.map +1 -0
  127. package/dist/esm/constants/accessibilityDirectMap.native.mjs +7 -0
  128. package/dist/esm/constants/accessibilityDirectMap.native.mjs.map +1 -0
  129. package/dist/esm/constants/constants.native.mjs +17 -0
  130. package/dist/esm/constants/constants.native.mjs.map +1 -0
  131. package/dist/esm/constants/isDevTools.native.mjs +8 -0
  132. package/dist/esm/constants/isDevTools.native.mjs.map +1 -0
  133. package/dist/esm/constants/webToNativeProps.native.js +1 -1
  134. package/dist/esm/constants/webToNativeProps.native.js.map +1 -1
  135. package/dist/esm/constants/webToNativeProps.native.mjs +88 -0
  136. package/dist/esm/constants/webToNativeProps.native.mjs.map +1 -0
  137. package/dist/esm/contexts/ComponentContext.native.mjs +14 -0
  138. package/dist/esm/contexts/ComponentContext.native.mjs.map +1 -0
  139. package/dist/esm/createComponent.native.js +212 -460
  140. package/dist/esm/createComponent.native.js.map +2 -2
  141. package/dist/esm/createComponent.native.mjs +969 -0
  142. package/dist/esm/createComponent.native.mjs.map +1 -0
  143. package/dist/esm/createFont.native.js +7 -55
  144. package/dist/esm/createFont.native.js.map +1 -1
  145. package/dist/esm/createFont.native.mjs +24 -0
  146. package/dist/esm/createFont.native.mjs.map +1 -0
  147. package/dist/esm/createShorthands.native.mjs +5 -0
  148. package/dist/esm/createShorthands.native.mjs.map +1 -0
  149. package/dist/esm/createTamagui.js +8 -7
  150. package/dist/esm/createTamagui.js.map +1 -1
  151. package/dist/esm/createTamagui.mjs +12 -8
  152. package/dist/esm/createTamagui.mjs.map +1 -1
  153. package/dist/esm/createTamagui.native.js +55 -127
  154. package/dist/esm/createTamagui.native.js.map +2 -2
  155. package/dist/esm/createTamagui.native.mjs +253 -0
  156. package/dist/esm/createTamagui.native.mjs.map +1 -0
  157. package/dist/esm/createTheme.native.mjs +5 -0
  158. package/dist/esm/createTheme.native.mjs.map +1 -0
  159. package/dist/esm/createTokens.native.mjs +6 -0
  160. package/dist/esm/createTokens.native.mjs.map +1 -0
  161. package/dist/esm/createVariable.native.js +5 -9
  162. package/dist/esm/createVariable.native.js.map +1 -1
  163. package/dist/esm/createVariable.native.mjs +68 -0
  164. package/dist/esm/createVariable.native.mjs.map +1 -0
  165. package/dist/esm/createVariables.native.js +3 -7
  166. package/dist/esm/createVariables.native.js.map +1 -1
  167. package/dist/esm/createVariables.native.mjs +36 -0
  168. package/dist/esm/createVariables.native.mjs.map +1 -0
  169. package/dist/esm/defaultComponentState.native.js +5 -37
  170. package/dist/esm/defaultComponentState.native.js.map +1 -1
  171. package/dist/esm/defaultComponentState.native.mjs +19 -0
  172. package/dist/esm/defaultComponentState.native.mjs.map +1 -0
  173. package/dist/esm/helpers/ThemeManager.native.js +23 -72
  174. package/dist/esm/helpers/ThemeManager.native.js.map +2 -2
  175. package/dist/esm/helpers/ThemeManager.native.mjs +220 -0
  176. package/dist/esm/helpers/ThemeManager.native.mjs.map +1 -0
  177. package/dist/esm/helpers/ThemeManagerContext.native.mjs +4 -0
  178. package/dist/esm/helpers/ThemeManagerContext.native.mjs.map +1 -0
  179. package/dist/esm/helpers/createMediaStyle.native.js +10 -51
  180. package/dist/esm/helpers/createMediaStyle.native.js.map +1 -1
  181. package/dist/esm/helpers/createMediaStyle.native.mjs +84 -0
  182. package/dist/esm/helpers/createMediaStyle.native.mjs.map +1 -0
  183. package/dist/esm/helpers/createShallowSetState.native.js +4 -20
  184. package/dist/esm/helpers/createShallowSetState.native.js.map +1 -1
  185. package/dist/esm/helpers/createShallowSetState.native.mjs +31 -0
  186. package/dist/esm/helpers/createShallowSetState.native.mjs.map +1 -0
  187. package/dist/esm/helpers/createStyledContext.native.js +6 -46
  188. package/dist/esm/helpers/createStyledContext.native.js.map +1 -1
  189. package/dist/esm/helpers/createStyledContext.native.mjs +39 -0
  190. package/dist/esm/helpers/createStyledContext.native.mjs.map +1 -0
  191. package/dist/esm/helpers/defaultOffset.native.mjs +6 -0
  192. package/dist/esm/helpers/defaultOffset.native.mjs.map +1 -0
  193. package/dist/esm/helpers/expandStyle.native.js +15 -33
  194. package/dist/esm/helpers/expandStyle.native.js.map +1 -1
  195. package/dist/esm/helpers/expandStyle.native.mjs +46 -0
  196. package/dist/esm/helpers/expandStyle.native.mjs.map +1 -0
  197. package/dist/esm/helpers/expandStyles.native.mjs +19 -0
  198. package/dist/esm/helpers/expandStyles.native.mjs.map +1 -0
  199. package/dist/esm/helpers/getExpandedShorthands.native.mjs +10 -0
  200. package/dist/esm/helpers/getExpandedShorthands.native.mjs.map +1 -0
  201. package/dist/esm/helpers/getFontLanguage.native.mjs +5 -0
  202. package/dist/esm/helpers/getFontLanguage.native.mjs.map +1 -0
  203. package/dist/esm/helpers/getGroupPropParts.native.js +1 -42
  204. package/dist/esm/helpers/getGroupPropParts.native.js.map +2 -2
  205. package/dist/esm/helpers/getGroupPropParts.native.mjs +14 -0
  206. package/dist/esm/helpers/getGroupPropParts.native.mjs.map +1 -0
  207. package/dist/esm/helpers/getSplitStyles.native.js +84 -139
  208. package/dist/esm/helpers/getSplitStyles.native.js.map +2 -2
  209. package/dist/esm/helpers/getSplitStyles.native.mjs +683 -0
  210. package/dist/esm/helpers/getSplitStyles.native.mjs.map +1 -0
  211. package/dist/esm/helpers/getStylesAtomic.native.mjs +8 -0
  212. package/dist/esm/helpers/getStylesAtomic.native.mjs.map +1 -0
  213. package/dist/esm/helpers/getThemeCSSRules.native.mjs +5 -0
  214. package/dist/esm/helpers/getThemeCSSRules.native.mjs.map +1 -0
  215. package/dist/esm/helpers/getVariantExtras.native.js +15 -72
  216. package/dist/esm/helpers/getVariantExtras.native.js.map +1 -1
  217. package/dist/esm/helpers/getVariantExtras.native.mjs +42 -0
  218. package/dist/esm/helpers/getVariantExtras.native.mjs.map +1 -0
  219. package/dist/esm/helpers/insertStyleRule.native.js +11 -65
  220. package/dist/esm/helpers/insertStyleRule.native.js.map +1 -1
  221. package/dist/esm/helpers/insertStyleRule.native.mjs +312 -0
  222. package/dist/esm/helpers/insertStyleRule.native.mjs.map +1 -0
  223. package/dist/esm/helpers/isActivePlatform.native.mjs +12 -0
  224. package/dist/esm/helpers/isActivePlatform.native.mjs.map +1 -0
  225. package/dist/esm/helpers/isObj.native.js +1 -5
  226. package/dist/esm/helpers/isObj.native.js.map +1 -1
  227. package/dist/esm/helpers/isObj.native.mjs +5 -0
  228. package/dist/esm/helpers/isObj.native.mjs.map +1 -0
  229. package/dist/esm/helpers/isTamaguiComponent.native.js +1 -1
  230. package/dist/esm/helpers/isTamaguiComponent.native.js.map +1 -1
  231. package/dist/esm/helpers/isTamaguiComponent.native.mjs +6 -0
  232. package/dist/esm/helpers/isTamaguiComponent.native.mjs.map +1 -0
  233. package/dist/esm/helpers/isTamaguiElement.native.mjs +7 -0
  234. package/dist/esm/helpers/isTamaguiElement.native.mjs.map +1 -0
  235. package/dist/esm/helpers/log.native.js +1 -29
  236. package/dist/esm/helpers/log.native.js.map +1 -1
  237. package/dist/esm/helpers/log.native.mjs +14 -0
  238. package/dist/esm/helpers/log.native.mjs.map +1 -0
  239. package/dist/esm/helpers/matchMedia.native.js +1 -26
  240. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  241. package/dist/esm/helpers/matchMedia.native.mjs +20 -0
  242. package/dist/esm/helpers/matchMedia.native.mjs.map +1 -0
  243. package/dist/esm/helpers/mergeProps.native.js +5 -21
  244. package/dist/esm/helpers/mergeProps.native.js.map +1 -1
  245. package/dist/esm/helpers/mergeProps.native.mjs +22 -0
  246. package/dist/esm/helpers/mergeProps.native.mjs.map +1 -0
  247. package/dist/esm/helpers/mergeVariants.native.js +9 -22
  248. package/dist/esm/helpers/mergeVariants.native.js.map +1 -1
  249. package/dist/esm/helpers/mergeVariants.native.mjs +18 -0
  250. package/dist/esm/helpers/mergeVariants.native.mjs.map +1 -0
  251. package/dist/esm/helpers/normalizeColor.native.js +3 -3
  252. package/dist/esm/helpers/normalizeColor.native.js.map +1 -1
  253. package/dist/esm/helpers/normalizeColor.native.mjs +24 -0
  254. package/dist/esm/helpers/normalizeColor.native.mjs.map +1 -0
  255. package/dist/esm/helpers/normalizeShadow.native.js +1 -1
  256. package/dist/esm/helpers/normalizeShadow.native.js.map +1 -1
  257. package/dist/esm/helpers/normalizeShadow.native.mjs +26 -0
  258. package/dist/esm/helpers/normalizeShadow.native.mjs.map +1 -0
  259. package/dist/esm/helpers/normalizeStyle.native.mjs +26 -0
  260. package/dist/esm/helpers/normalizeStyle.native.mjs.map +1 -0
  261. package/dist/esm/helpers/normalizeStylePropKeys.native.mjs +14 -0
  262. package/dist/esm/helpers/normalizeStylePropKeys.native.mjs.map +1 -0
  263. package/dist/esm/helpers/normalizeValueWithProperty.native.js +5 -42
  264. package/dist/esm/helpers/normalizeValueWithProperty.native.js.map +1 -1
  265. package/dist/esm/helpers/normalizeValueWithProperty.native.mjs +35 -0
  266. package/dist/esm/helpers/normalizeValueWithProperty.native.mjs.map +1 -0
  267. package/dist/esm/helpers/objectIdentityKey.native.js +1 -5
  268. package/dist/esm/helpers/objectIdentityKey.native.js.map +1 -1
  269. package/dist/esm/helpers/objectIdentityKey.native.mjs +16 -0
  270. package/dist/esm/helpers/objectIdentityKey.native.mjs.map +1 -0
  271. package/dist/esm/helpers/propMapper.js +2 -2
  272. package/dist/esm/helpers/propMapper.js.map +1 -1
  273. package/dist/esm/helpers/propMapper.mjs +2 -3
  274. package/dist/esm/helpers/propMapper.mjs.map +1 -1
  275. package/dist/esm/helpers/propMapper.native.js +23 -68
  276. package/dist/esm/helpers/propMapper.native.js.map +2 -2
  277. package/dist/esm/helpers/propMapper.native.mjs +290 -0
  278. package/dist/esm/helpers/propMapper.native.mjs.map +1 -0
  279. package/dist/esm/helpers/proxyThemeToParents.native.js +3 -3
  280. package/dist/esm/helpers/proxyThemeToParents.native.js.map +1 -1
  281. package/dist/esm/helpers/proxyThemeToParents.native.mjs +101 -0
  282. package/dist/esm/helpers/proxyThemeToParents.native.mjs.map +1 -0
  283. package/dist/esm/helpers/proxyThemeVariables.native.js +2 -2
  284. package/dist/esm/helpers/proxyThemeVariables.native.js.map +1 -1
  285. package/dist/esm/helpers/proxyThemeVariables.native.mjs +15 -0
  286. package/dist/esm/helpers/proxyThemeVariables.native.mjs.map +1 -0
  287. package/dist/esm/helpers/pseudoDescriptors.native.js +3 -36
  288. package/dist/esm/helpers/pseudoDescriptors.native.js.map +1 -1
  289. package/dist/esm/helpers/pseudoDescriptors.native.mjs +47 -0
  290. package/dist/esm/helpers/pseudoDescriptors.native.mjs.map +1 -0
  291. package/dist/esm/helpers/registerCSSVariable.native.js +1 -1
  292. package/dist/esm/helpers/registerCSSVariable.native.js.map +1 -1
  293. package/dist/esm/helpers/registerCSSVariable.native.mjs +11 -0
  294. package/dist/esm/helpers/registerCSSVariable.native.mjs.map +1 -0
  295. package/dist/esm/helpers/setElementProps.native.mjs +7 -0
  296. package/dist/esm/helpers/setElementProps.native.mjs.map +1 -0
  297. package/dist/esm/helpers/skipProps.native.mjs +21 -0
  298. package/dist/esm/helpers/skipProps.native.mjs.map +1 -0
  299. package/dist/esm/helpers/themeable.native.js +7 -63
  300. package/dist/esm/helpers/themeable.native.js.map +1 -1
  301. package/dist/esm/helpers/themeable.native.mjs +36 -0
  302. package/dist/esm/helpers/themeable.native.mjs.map +1 -0
  303. package/dist/esm/helpers/themes.native.mjs +15 -0
  304. package/dist/esm/helpers/themes.native.mjs.map +1 -0
  305. package/dist/esm/helpers/timer.native.mjs +9 -0
  306. package/dist/esm/helpers/timer.native.mjs.map +1 -0
  307. package/dist/esm/helpers/transformsToString.native.js +1 -1
  308. package/dist/esm/helpers/transformsToString.native.js.map +1 -1
  309. package/dist/esm/helpers/transformsToString.native.mjs +14 -0
  310. package/dist/esm/helpers/transformsToString.native.mjs.map +1 -0
  311. package/dist/esm/helpers/webPropsToSkip.native.mjs +56 -0
  312. package/dist/esm/helpers/webPropsToSkip.native.mjs.map +1 -0
  313. package/dist/esm/hooks/useConfiguration.native.js +5 -59
  314. package/dist/esm/hooks/useConfiguration.native.js.map +2 -2
  315. package/dist/esm/hooks/useConfiguration.native.mjs +21 -0
  316. package/dist/esm/hooks/useConfiguration.native.mjs.map +1 -0
  317. package/dist/esm/hooks/useDidHydrateOnce.native.mjs +23 -0
  318. package/dist/esm/hooks/useDidHydrateOnce.native.mjs.map +1 -0
  319. package/dist/esm/hooks/useDisableSSR.native.js +1 -1
  320. package/dist/esm/hooks/useDisableSSR.native.js.map +1 -1
  321. package/dist/esm/hooks/useDisableSSR.native.mjs +7 -0
  322. package/dist/esm/hooks/useDisableSSR.native.mjs.map +1 -0
  323. package/dist/esm/hooks/useIsTouchDevice.native.mjs +7 -0
  324. package/dist/esm/hooks/useIsTouchDevice.native.mjs.map +1 -0
  325. package/dist/esm/hooks/useMedia.native.js +30 -106
  326. package/dist/esm/hooks/useMedia.native.js.map +2 -2
  327. package/dist/esm/hooks/useMedia.native.mjs +206 -0
  328. package/dist/esm/hooks/useMedia.native.mjs.map +1 -0
  329. package/dist/esm/hooks/useProps.native.js +18 -96
  330. package/dist/esm/hooks/useProps.native.js.map +2 -2
  331. package/dist/esm/hooks/useProps.native.mjs +74 -0
  332. package/dist/esm/hooks/useProps.native.mjs.map +1 -0
  333. package/dist/esm/hooks/useTheme.native.js +102 -182
  334. package/dist/esm/hooks/useTheme.native.js.map +2 -2
  335. package/dist/esm/hooks/useTheme.native.mjs +299 -0
  336. package/dist/esm/hooks/useTheme.native.mjs.map +1 -0
  337. package/dist/esm/hooks/useThemeName.native.js +3 -44
  338. package/dist/esm/hooks/useThemeName.native.js.map +2 -2
  339. package/dist/esm/hooks/useThemeName.native.mjs +16 -0
  340. package/dist/esm/hooks/useThemeName.native.mjs.map +1 -0
  341. package/dist/esm/index.native.mjs +66 -0
  342. package/dist/esm/index.native.mjs.map +1 -0
  343. package/dist/esm/inject-styles.native.js +1 -1
  344. package/dist/esm/inject-styles.native.js.map +1 -1
  345. package/dist/esm/inject-styles.native.mjs +15 -0
  346. package/dist/esm/inject-styles.native.mjs.map +1 -0
  347. package/dist/esm/insertFont.native.js +1 -1
  348. package/dist/esm/insertFont.native.js.map +1 -1
  349. package/dist/esm/insertFont.native.mjs +44 -0
  350. package/dist/esm/insertFont.native.mjs.map +1 -0
  351. package/dist/esm/interfaces/CSSColorNames.native.mjs +2 -0
  352. package/dist/esm/interfaces/CSSColorNames.native.mjs.map +1 -0
  353. package/dist/esm/interfaces/GetRef.native.mjs +2 -0
  354. package/dist/esm/interfaces/GetRef.native.mjs.map +1 -0
  355. package/dist/esm/interfaces/KeyTypes.native.mjs +2 -0
  356. package/dist/esm/interfaces/KeyTypes.native.mjs.map +1 -0
  357. package/dist/esm/interfaces/RNExclusiveTypes.native.mjs +2 -0
  358. package/dist/esm/interfaces/RNExclusiveTypes.native.mjs.map +1 -0
  359. package/dist/esm/interfaces/Role.native.mjs +2 -0
  360. package/dist/esm/interfaces/Role.native.mjs.map +1 -0
  361. package/dist/esm/interfaces/TamaguiComponentEvents.native.mjs +2 -0
  362. package/dist/esm/interfaces/TamaguiComponentEvents.native.mjs.map +1 -0
  363. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.native.mjs +2 -0
  364. package/dist/esm/interfaces/TamaguiComponentPropsBaseBase.native.mjs.map +1 -0
  365. package/dist/esm/interfaces/TamaguiComponentState.native.mjs +2 -0
  366. package/dist/esm/interfaces/TamaguiComponentState.native.mjs.map +1 -0
  367. package/dist/esm/interfaces/WebOnlyPressEvents.native.mjs +2 -0
  368. package/dist/esm/interfaces/WebOnlyPressEvents.native.mjs.map +1 -0
  369. package/dist/esm/setupHooks.native.mjs +7 -0
  370. package/dist/esm/setupHooks.native.mjs.map +1 -0
  371. package/dist/esm/setupReactNative.native.mjs +29 -0
  372. package/dist/esm/setupReactNative.native.mjs.map +1 -0
  373. package/dist/esm/styled.native.js +19 -68
  374. package/dist/esm/styled.native.js.map +2 -2
  375. package/dist/esm/styled.native.mjs +72 -0
  376. package/dist/esm/styled.native.mjs.map +1 -0
  377. package/dist/esm/type-utils.native.mjs +2 -0
  378. package/dist/esm/type-utils.native.mjs.map +1 -0
  379. package/dist/esm/types.native.mjs +3 -0
  380. package/dist/esm/types.native.mjs.map +1 -0
  381. package/dist/esm/views/Configuration.native.js +4 -20
  382. package/dist/esm/views/Configuration.native.js.map +1 -1
  383. package/dist/esm/views/Configuration.native.mjs +13 -0
  384. package/dist/esm/views/Configuration.native.mjs.map +1 -0
  385. package/dist/esm/views/FontLanguage.native.js +2 -21
  386. package/dist/esm/views/FontLanguage.native.js.map +1 -1
  387. package/dist/esm/views/FontLanguage.native.mjs +19 -0
  388. package/dist/esm/views/FontLanguage.native.mjs.map +1 -0
  389. package/dist/esm/views/FontLanguage.types.native.mjs +2 -0
  390. package/dist/esm/views/FontLanguage.types.native.mjs.map +1 -0
  391. package/dist/esm/views/Slot.native.js +16 -60
  392. package/dist/esm/views/Slot.native.js.map +1 -1
  393. package/dist/esm/views/Slot.native.mjs +59 -0
  394. package/dist/esm/views/Slot.native.mjs.map +1 -0
  395. package/dist/esm/views/Stack.native.mjs +11 -0
  396. package/dist/esm/views/Stack.native.mjs.map +1 -0
  397. package/dist/esm/views/TamaguiProvider.native.js +3 -44
  398. package/dist/esm/views/TamaguiProvider.native.js.map +2 -2
  399. package/dist/esm/views/TamaguiProvider.native.mjs +55 -0
  400. package/dist/esm/views/TamaguiProvider.native.mjs.map +1 -0
  401. package/dist/esm/views/Text.native.js +9 -41
  402. package/dist/esm/views/Text.native.js.map +2 -2
  403. package/dist/esm/views/Text.native.mjs +33 -0
  404. package/dist/esm/views/Text.native.mjs.map +1 -0
  405. package/dist/esm/views/Theme.native.js +12 -37
  406. package/dist/esm/views/Theme.native.js.map +2 -2
  407. package/dist/esm/views/Theme.native.mjs +123 -0
  408. package/dist/esm/views/Theme.native.mjs.map +1 -0
  409. package/dist/esm/views/ThemeDebug.native.js +1 -1
  410. package/dist/esm/views/ThemeDebug.native.js.map +1 -1
  411. package/dist/esm/views/ThemeDebug.native.mjs +11 -0
  412. package/dist/esm/views/ThemeDebug.native.mjs.map +1 -0
  413. package/dist/esm/views/ThemeProvider.native.js +1 -1
  414. package/dist/esm/views/ThemeProvider.native.js.map +1 -1
  415. package/dist/esm/views/ThemeProvider.native.mjs +28 -0
  416. package/dist/esm/views/ThemeProvider.native.mjs.map +1 -0
  417. package/dist/esm/views/View.native.mjs +10 -0
  418. package/dist/esm/views/View.native.mjs.map +1 -0
  419. package/package.json +11 -11
  420. package/src/config.ts +19 -3
  421. package/src/createTamagui.ts +17 -15
  422. package/src/helpers/propMapper.ts +2 -3
  423. package/src/types.tsx +1 -0
  424. package/types/config.d.ts.map +1 -1
  425. package/types/createTamagui.d.ts.map +1 -1
  426. package/types/helpers/propMapper.d.ts.map +1 -1
  427. package/types/hooks/useConfiguration.d.ts +1 -0
  428. package/types/hooks/useConfiguration.d.ts.map +1 -1
  429. package/types/types.d.ts +1 -0
  430. package/types/types.d.ts.map +1 -1
@@ -0,0 +1,969 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { composeRefs } from "@tamagui/compose-refs";
4
+ import { isClient, isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
5
+ import { composeEventHandlers, validStyles } from "@tamagui/helpers";
6
+ import { devConfig, getConfig, onConfiguredOnce } from "./config.mjs";
7
+ import { stackDefaultStyles } from "./constants/constants.mjs";
8
+ import { isDevTools } from "./constants/isDevTools.mjs";
9
+ import { ComponentContext } from "./contexts/ComponentContext.mjs";
10
+ import { didGetVariableValue, setDidGetVariableValue } from "./createVariable.mjs";
11
+ import { defaultComponentState, defaultComponentStateMounted, defaultComponentStateShouldEnter } from "./defaultComponentState.mjs";
12
+ import { createShallowSetState, mergeIfNotShallowEqual } from "./helpers/createShallowSetState.mjs";
13
+ import { useSplitStyles } from "./helpers/getSplitStyles.mjs";
14
+ import { isObj } from "./helpers/isObj.mjs";
15
+ import { log } from "./helpers/log.mjs";
16
+ import { mergeProps } from "./helpers/mergeProps.mjs";
17
+ import { setElementProps } from "./helpers/setElementProps.mjs";
18
+ import { themeable } from "./helpers/themeable.mjs";
19
+ import { useDidHydrateOnce } from "./hooks/useDidHydrateOnce.mjs";
20
+ import { getMediaState, setMediaShouldUpdate, useMedia } from "./hooks/useMedia.mjs";
21
+ import { useThemeWithState } from "./hooks/useTheme.mjs";
22
+ import { hooks } from "./setupHooks.mjs";
23
+ import { Slot } from "./views/Slot.mjs";
24
+ import { getThemedChildren } from "./views/Theme.mjs";
25
+ import { ThemeDebug } from "./views/ThemeDebug.mjs";
26
+ var tamaguiConfig,
27
+ time,
28
+ debugKeyListeners,
29
+ startVisualizer,
30
+ componentSetStates = /* @__PURE__ */new Set();
31
+ if (typeof document < "u") {
32
+ var cancelTouches = function () {
33
+ componentSetStates.forEach(function (setState) {
34
+ return setState(function (prev) {
35
+ return prev.press || prev.pressIn ? {
36
+ ...prev,
37
+ press: !1,
38
+ pressIn: !1
39
+ } : prev;
40
+ });
41
+ }), componentSetStates.clear();
42
+ };
43
+ addEventListener("mouseup", cancelTouches), addEventListener("touchend", cancelTouches), addEventListener("touchcancel", cancelTouches), process.env.NODE_ENV === "development" && (startVisualizer = function () {
44
+ var devVisualizerConfig = devConfig === null || devConfig === void 0 ? void 0 : devConfig.visualizer;
45
+ if (devVisualizerConfig) {
46
+ debugKeyListeners = /* @__PURE__ */new Set();
47
+ var tm,
48
+ isShowing = !1,
49
+ options = {
50
+ key: "Alt",
51
+ delay: 800,
52
+ ...(typeof devVisualizerConfig == "object" ? devVisualizerConfig : {})
53
+ };
54
+ document.addEventListener("blur", function () {
55
+ clearTimeout(tm);
56
+ }), document.addEventListener("keydown", function (param) {
57
+ var {
58
+ key,
59
+ defaultPrevented
60
+ } = param;
61
+ defaultPrevented || (clearTimeout(tm), key === options.key && (tm = setTimeout(function () {
62
+ isShowing = !0, debugKeyListeners?.forEach(function (l) {
63
+ return l(!0);
64
+ });
65
+ }, options.delay)));
66
+ }), document.addEventListener("keyup", function (param) {
67
+ var {
68
+ key,
69
+ defaultPrevented
70
+ } = param;
71
+ defaultPrevented || key === options.key && (clearTimeout(tm), isShowing && debugKeyListeners?.forEach(function (l) {
72
+ return l(!1);
73
+ }));
74
+ });
75
+ }
76
+ });
77
+ }
78
+ var useComponentState = function (props, param, staticConfig, config) {
79
+ var {
80
+ animationDriver,
81
+ groups
82
+ } = param,
83
+ _animationDriver_usePresence,
84
+ useAnimations = animationDriver?.useAnimations,
85
+ stateRef = React.useRef(void 0);
86
+ stateRef.current || (stateRef.current = {});
87
+ var hasAnimationProp = !!("animation" in props || props.style && hasAnimatedStyleValue(props.style)),
88
+ supportsCSSVars = animationDriver?.supportsCSSVars,
89
+ curStateRef = stateRef.current,
90
+ willBeAnimatedClient = function () {
91
+ var next = !!(hasAnimationProp && !staticConfig.isHOC && useAnimations);
92
+ return !!(next || curStateRef.hasAnimated);
93
+ }(),
94
+ willBeAnimated = !isServer && willBeAnimatedClient;
95
+ willBeAnimated && !curStateRef.hasAnimated && (curStateRef.hasAnimated = !0);
96
+ var presence = willBeAnimated && props.animatePresence !== !1 && (animationDriver == null || (_animationDriver_usePresence = animationDriver.usePresence) === null || _animationDriver_usePresence === void 0 ? void 0 : _animationDriver_usePresence.call(animationDriver)) || null,
97
+ presenceState = presence?.[2],
98
+ isExiting = presenceState?.isPresent === !1,
99
+ isEntering = presenceState?.isPresent === !0 && presenceState.initial !== !1,
100
+ hasEnterStyle = !!props.enterStyle,
101
+ hasRNAnimation = hasAnimationProp && animationDriver?.isReactNative;
102
+ process.env.NODE_ENV === "development" && time && time`pre-use-state`;
103
+ var hasEnterState = hasEnterStyle || isEntering,
104
+ didHydrateOnce = willBeAnimated ? useDidHydrateOnce() : !0,
105
+ shouldEnter = hasEnterState || !didHydrateOnce && hasRNAnimation,
106
+ shouldEnterFromUnhydrated = isWeb && !didHydrateOnce,
107
+ initialState = shouldEnter ?
108
+ // on the very first render we switch all spring animation drivers to css rendering
109
+ // this is because we need to use css variables, which they don't support to do proper SSR
110
+ // without flickers of the wrong colors.
111
+ // but once we do that initial hydration and we are in client side rendering mode,
112
+ // we can avoid the extra re-render on mount
113
+ shouldEnterFromUnhydrated ? defaultComponentState : defaultComponentStateShouldEnter : defaultComponentStateMounted,
114
+ disabled = isDisabled(props);
115
+ disabled != null && (initialState.disabled = disabled);
116
+ var states = React.useState(initialState),
117
+ state = props.forceStyle ? {
118
+ ...states[0],
119
+ [props.forceStyle]: !0
120
+ } : states[0],
121
+ setState = states[1],
122
+ isHydrated = state.unmounted === !1 || state.unmounted === "should-enter",
123
+ isAnimated = willBeAnimated;
124
+ isWeb && hasRNAnimation && !staticConfig.isHOC && state.unmounted === !0 && (isAnimated = !1, curStateRef.willHydrate = !0), disabled !== state.disabled && (state.disabled = disabled, disabled && Object.assign(state, defaultComponentStateMounted), setState({
125
+ ...state
126
+ }));
127
+ var setStateShallow = createShallowSetState(setState, disabled, !1, props.debug);
128
+ if (presenceState && isAnimated && isHydrated && staticConfig.variants) {
129
+ process.env.NODE_ENV === "development" && props.debug === "verbose" && console.warn(`has presenceState ${JSON.stringify(presenceState)}`);
130
+ var {
131
+ enterVariant,
132
+ exitVariant,
133
+ enterExitVariant,
134
+ custom
135
+ } = presenceState;
136
+ isObj(custom) && Object.assign(props, custom);
137
+ var exv = exitVariant ?? enterExitVariant,
138
+ env = enterVariant ?? enterExitVariant;
139
+ state.unmounted && env && staticConfig.variants[env] ? (process.env.NODE_ENV === "development" && props.debug === "verbose" && console.warn(`Animating presence ENTER "${env}"`), props[env] = !0) : isExiting && exv && (process.env.NODE_ENV === "development" && props.debug === "verbose" && console.warn(`Animating presence EXIT "${exv}"`), props[exv] = exitVariant !== enterExitVariant);
140
+ }
141
+ var shouldAvoidClasses = !isWeb;
142
+ if (isWeb) {
143
+ var {
144
+ disableClassName
145
+ } = props,
146
+ isAnimatedAndHydrated = isAnimated && !supportsCSSVars && didHydrateOnce && !isServer,
147
+ isClassNameDisabled = !staticConfig.acceptsClassName && (config.disableSSR || didHydrateOnce),
148
+ isDisabledManually = disableClassName && !isServer && didHydrateOnce && state.unmounted === !0;
149
+ (isAnimatedAndHydrated || isDisabledManually || isClassNameDisabled) && (shouldAvoidClasses = !0, process.env.NODE_ENV === "development" && props.debug && log("avoiding className", {
150
+ isAnimatedAndHydrated,
151
+ isDisabledManually,
152
+ isClassNameDisabled
153
+ }));
154
+ }
155
+ var groupName = props.group;
156
+ if (groupName && !curStateRef.group) {
157
+ var listeners = /* @__PURE__ */new Set();
158
+ curStateRef.group = {
159
+ listeners,
160
+ emit(name, state2) {
161
+ listeners.forEach(function (l) {
162
+ return l(name, state2);
163
+ });
164
+ },
165
+ subscribe(cb) {
166
+ return listeners.add(cb), function () {
167
+ listeners.delete(cb);
168
+ };
169
+ }
170
+ };
171
+ }
172
+ if (groupName) {
173
+ var groupContextState = groups.state,
174
+ og = setStateShallow;
175
+ setStateShallow = function (state2) {
176
+ og(state2), curStateRef.group.emit(groupName, {
177
+ pseudo: state2
178
+ });
179
+ var next = {
180
+ ...groupContextState[groupName],
181
+ ...state2
182
+ };
183
+ groupContextState[groupName] = next;
184
+ };
185
+ }
186
+ return {
187
+ curStateRef,
188
+ disabled,
189
+ groupName,
190
+ hasAnimationProp,
191
+ hasEnterStyle,
192
+ isAnimated,
193
+ isExiting,
194
+ isHydrated,
195
+ presence,
196
+ presenceState,
197
+ setState,
198
+ setStateShallow,
199
+ shouldAvoidClasses,
200
+ state,
201
+ stateRef,
202
+ supportsCSSVars,
203
+ willBeAnimated,
204
+ willBeAnimatedClient
205
+ };
206
+ },
207
+ BaseText,
208
+ BaseView,
209
+ hasSetupBaseViews = !1,
210
+ lastInteractionWasKeyboard = {
211
+ value: !1
212
+ };
213
+ isWeb && globalThis.document && (document.addEventListener("keydown", function () {
214
+ lastInteractionWasKeyboard.value = !0;
215
+ }), document.addEventListener("mousedown", function () {
216
+ lastInteractionWasKeyboard.value = !1;
217
+ }), document.addEventListener("mousemove", function () {
218
+ lastInteractionWasKeyboard.value = !1;
219
+ }));
220
+ function createComponent(staticConfig) {
221
+ var _staticConfig_defaultProps,
222
+ {
223
+ componentName
224
+ } = staticConfig,
225
+ config = null,
226
+ defaultProps = staticConfig.defaultProps;
227
+ onConfiguredOnce(function (conf) {
228
+ if (config = conf, componentName) {
229
+ var _conf_defaultProps,
230
+ defaultForComponent = (_conf_defaultProps = conf.defaultProps) === null || _conf_defaultProps === void 0 ? void 0 : _conf_defaultProps[componentName];
231
+ defaultForComponent && (defaultProps = {
232
+ ...defaultForComponent,
233
+ ...defaultProps
234
+ });
235
+ }
236
+ });
237
+ var {
238
+ Component,
239
+ isText,
240
+ isZStack,
241
+ isHOC,
242
+ validStyles: _$validStyles = {},
243
+ variants = {}
244
+ } = staticConfig;
245
+ process.env.NODE_ENV === "development" && !((_staticConfig_defaultProps = staticConfig.defaultProps) === null || _staticConfig_defaultProps === void 0) && _staticConfig_defaultProps.debug && process.env.IS_STATIC !== "is_static" && log(`\u{1F41B} [${componentName || "Component"}]`, {
246
+ staticConfig,
247
+ defaultProps,
248
+ defaultPropsKeyOrder: defaultProps ? Object.keys(defaultProps) : []
249
+ });
250
+ var component = /* @__PURE__ */React.forwardRef(function (propsIn, forwardedRef) {
251
+ var _themeState_state,
252
+ _hooks_usePropsTransform,
253
+ _hooks_useEvents,
254
+ _config_animations,
255
+ internalID = process.env.NODE_ENV === "development" ? React.useId() : "";
256
+ if (process.env.NODE_ENV === "development" && startVisualizer && (startVisualizer(), startVisualizer = void 0), !hasSetupBaseViews) {
257
+ var _hooks_getBaseViews;
258
+ hasSetupBaseViews = !0;
259
+ var baseViews = (_hooks_getBaseViews = hooks.getBaseViews) === null || _hooks_getBaseViews === void 0 ? void 0 : _hooks_getBaseViews.call(hooks);
260
+ baseViews && (BaseText = baseViews.Text, BaseView = baseViews.View);
261
+ }
262
+ if (process.env.NODE_ENV === "test" && propsIn["data-test-renders"]) {
263
+ var _propsIn_datatestrenders, _current, _;
264
+ (_ = (_propsIn_datatestrenders = propsIn["data-test-renders"])[_current = "current"]) !== null && _ !== void 0 || (_propsIn_datatestrenders[_current] = 0), propsIn["data-test-renders"].current += 1;
265
+ }
266
+ var componentContext = React.useContext(ComponentContext),
267
+ styledContextProps,
268
+ overriddenContextProps,
269
+ contextValue,
270
+ {
271
+ context,
272
+ isReactNative
273
+ } = staticConfig;
274
+ if (context) {
275
+ contextValue = React.useContext(context);
276
+ var {
277
+ inverseShorthands
278
+ } = getConfig();
279
+ for (var key in context.props) {
280
+ var _propsIn_key,
281
+ _ref,
282
+ _ref1,
283
+ propVal = (_ref1 = (_ref = (_propsIn_key = propsIn[key]) !== null && _propsIn_key !== void 0 ? _propsIn_key : propsIn[inverseShorthands[key]]) !== null && _ref !== void 0 ? _ref : defaultProps?.[key]) !== null && _ref1 !== void 0 ? _ref1 : defaultProps?.[inverseShorthands[key]];
284
+ if (propVal === void 0) {
285
+ var val = contextValue?.[key];
286
+ val !== void 0 && (styledContextProps || (styledContextProps = {}), styledContextProps[key] = val);
287
+ } else overriddenContextProps || (overriddenContextProps = {}), overriddenContextProps[key] = propVal;
288
+ }
289
+ }
290
+ var curDefaultProps = styledContextProps ? {
291
+ ...defaultProps,
292
+ ...styledContextProps
293
+ } : defaultProps,
294
+ props = propsIn;
295
+ curDefaultProps && (props = mergeProps(curDefaultProps, propsIn));
296
+ var debugProp = props.debug,
297
+ componentName2 = props.componentName || staticConfig.componentName;
298
+ if (process.env.NODE_ENV === "development" && isClient && React.useEffect(function () {
299
+ var overlay = null,
300
+ debugVisualizerHandler = function () {
301
+ var show = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1,
302
+ node = curStateRef.host;
303
+ if (node) if (show) {
304
+ overlay = document.createElement("span"), overlay.style.inset = "0px", overlay.style.zIndex = "1000000", overlay.style.position = "absolute", overlay.style.borderColor = "red", overlay.style.borderWidth = "1px", overlay.style.borderStyle = "dotted";
305
+ var dataAt = node.getAttribute("data-at") || "",
306
+ dataIn = node.getAttribute("data-in") || "",
307
+ tooltip = document.createElement("span");
308
+ tooltip.style.position = "absolute", tooltip.style.top = "0px", tooltip.style.left = "0px", tooltip.style.padding = "3px", tooltip.style.background = "rgba(0,0,0,0.75)", tooltip.style.color = "rgba(255,255,255,1)", tooltip.style.fontSize = "12px", tooltip.style.lineHeight = "12px", tooltip.style.fontFamily = "monospace", tooltip.style.webkitFontSmoothing = "none", tooltip.innerText = `${componentName2 || ""} ${dataAt} ${dataIn}`.trim(), overlay.appendChild(tooltip), node.appendChild(overlay);
309
+ } else overlay && node.removeChild(overlay);
310
+ };
311
+ return debugKeyListeners || (debugKeyListeners = /* @__PURE__ */new Set()), debugKeyListeners.add(debugVisualizerHandler), function () {
312
+ debugKeyListeners?.delete(debugVisualizerHandler);
313
+ };
314
+ }, [componentName2]), !process.env.TAMAGUI_IS_CORE_NODE && process.env.NODE_ENV === "development" && debugProp === "profile" && !time) {
315
+ var timer = require("@tamagui/timer").timer();
316
+ time = timer.start();
317
+ }
318
+ process.env.NODE_ENV === "development" && time && time`start (ignore)`, process.env.NODE_ENV === "development" && time && time`did-finish-ssr`, process.env.NODE_ENV === "development" && time && time`stateref`;
319
+ var animationDriver = componentContext.animationDriver,
320
+ useAnimations = animationDriver?.useAnimations,
321
+ {
322
+ curStateRef,
323
+ disabled,
324
+ groupName,
325
+ hasAnimationProp,
326
+ hasEnterStyle,
327
+ isAnimated,
328
+ isExiting,
329
+ isHydrated,
330
+ presence,
331
+ presenceState,
332
+ setState,
333
+ setStateShallow,
334
+ shouldAvoidClasses,
335
+ state,
336
+ stateRef,
337
+ supportsCSSVars,
338
+ willBeAnimated,
339
+ willBeAnimatedClient
340
+ } = useComponentState(props, componentContext, staticConfig, config),
341
+ shouldForcePseudo = !!propsIn.forceStyle,
342
+ noClassNames = shouldAvoidClasses || shouldForcePseudo;
343
+ process.env.NODE_ENV === "development" && time && time`use-state`;
344
+ var hasTextAncestor = !!(isWeb && isText && componentContext.inText);
345
+ process.env.NODE_ENV === "development" && time && time`use-context`;
346
+ var isTaggable = !Component || typeof Component == "string",
347
+ tagProp = props.tag,
348
+ element = isWeb && isTaggable && tagProp || Component,
349
+ BaseTextComponent = BaseText || element || "span",
350
+ BaseViewComponent = BaseView || element || (hasTextAncestor ? "span" : "div"),
351
+ elementType = isText ? BaseTextComponent : BaseViewComponent;
352
+ animationDriver && isAnimated && (elementType = animationDriver[isText ? "Text" : "View"] || elementType);
353
+ var disableThemeProp = !1,
354
+ disableTheme = disableThemeProp || isHOC;
355
+ process.env.NODE_ENV === "development" && time && time`theme-props`, props.themeShallow && (curStateRef.themeShallow = !0);
356
+ var themeStateProps = {
357
+ componentName: componentName2,
358
+ disable: disableTheme,
359
+ shallow: curStateRef.themeShallow,
360
+ debug: debugProp
361
+ };
362
+ if ("themeInverse" in props && (themeStateProps.inverse = props.themeInverse), "theme" in props && (themeStateProps.name = props.theme), typeof curStateRef.isListeningToTheme == "boolean" && (themeStateProps.shouldUpdate = function () {
363
+ return stateRef.current.isListeningToTheme;
364
+ }), themeStateProps.deopt = willBeAnimated, process.env.NODE_ENV === "development" && debugProp && debugProp !== "profile") {
365
+ var name = `${componentName2 || Component?.displayName || Component?.name || "[Unnamed Component]"}`,
366
+ type = (hasEnterStyle ? "(hasEnter)" : " ") + (isAnimated ? "(animated)" : " ") + (isReactNative ? "(rnw)" : " ") + (shouldAvoidClasses ? "(shouldAvoidClasses)" : " ") + (state.press || state.pressIn ? "(PRESSED)" : " ") + (state.hover ? "(HOVERED)" : " ") + (state.focus ? "(FOCUSED)" : " ") + (presenceState?.isPresent === !1 ? "(EXIT)" : ""),
367
+ dataIs = propsIn["data-is"] || "",
368
+ banner = `${internalID} ${name}${dataIs ? ` ${dataIs}` : ""} ${type}`;
369
+ if (console.info(`%c ${banner} (hydrated: ${isHydrated}) (unmounted: ${state.unmounted})`, "background: green; color: white;"), isServer) log({
370
+ noClassNames,
371
+ isAnimated,
372
+ shouldAvoidClasses,
373
+ isWeb,
374
+ supportsCSSVars
375
+ });else {
376
+ console.groupEnd();
377
+ var ch = propsIn.children,
378
+ childLog = typeof ch == "string" ? ch.length > 4 ? ch.slice(0, 4) + "..." : ch : "";
379
+ childLog.length && (childLog = `(children: ${childLog})`), console.groupCollapsed(`${childLog} Props:`), log("props in:", propsIn), log("final props:", props), log({
380
+ state,
381
+ staticConfig,
382
+ elementType,
383
+ themeStateProps
384
+ }), log({
385
+ contextProps: styledContextProps,
386
+ overriddenContextProps
387
+ }), log({
388
+ presence,
389
+ isAnimated,
390
+ isHOC,
391
+ hasAnimationProp,
392
+ useAnimations
393
+ }), console.groupEnd();
394
+ }
395
+ }
396
+ process.env.NODE_ENV === "development" && time && time`pre-theme-media`;
397
+ var [themeState, theme] = useThemeWithState(themeStateProps);
398
+ elementType = Component || elementType;
399
+ var isStringElement = typeof elementType == "string";
400
+ process.env.NODE_ENV === "development" && time && time`theme`;
401
+ var mediaState = useMedia(stateRef, componentContext, debugProp);
402
+ setDidGetVariableValue(!1), process.env.NODE_ENV === "development" && time && time`media`;
403
+ var resolveValues =
404
+ // if HOC + mounted + has animation prop, resolve as value so it passes non-variable to child
405
+ isAnimated && !supportsCSSVars || isHOC && state.unmounted == !1 && hasAnimationProp ? "value" : "auto",
406
+ styleProps = {
407
+ mediaState,
408
+ noClassNames,
409
+ resolveValues,
410
+ isExiting,
411
+ isAnimated,
412
+ willBeAnimated,
413
+ styledContextProps
414
+ },
415
+ splitStyles = useSplitStyles(props, staticConfig, theme, (themeState == null || (_themeState_state = themeState.state) === null || _themeState_state === void 0 ? void 0 : _themeState_state.name) || "", state, styleProps, null, componentContext, elementType, debugProp);
416
+ if (props.group && props.untilMeasured === "hide" && !curStateRef.hasMeasured) {
417
+ var _splitStyles;
418
+ (_splitStyles = splitStyles).style || (_splitStyles.style = {}), splitStyles.style.opacity = 0;
419
+ }
420
+ process.env.NODE_ENV === "development" && time && time`split-styles`, curStateRef.isListeningToTheme = splitStyles.dynamicThemeAccess;
421
+ var hasRuntimeMediaKeys = splitStyles.hasMedia && splitStyles.hasMedia !== !0,
422
+ shouldListenForMedia = didGetVariableValue() || hasRuntimeMediaKeys || noClassNames && splitStyles.hasMedia === !0,
423
+ mediaListeningKeys = hasRuntimeMediaKeys ? splitStyles.hasMedia : null;
424
+ process.env.NODE_ENV === "development" && debugProp && console.info("useMedia() createComponent", shouldListenForMedia, mediaListeningKeys), setMediaShouldUpdate(stateRef, {
425
+ enabled: shouldListenForMedia,
426
+ keys: mediaListeningKeys
427
+ });
428
+ var {
429
+ viewProps: viewPropsIn,
430
+ pseudos,
431
+ style: splitStylesStyle,
432
+ classNames,
433
+ space
434
+ } = splitStyles,
435
+ propsWithAnimation = props,
436
+ {
437
+ asChild,
438
+ children,
439
+ themeShallow,
440
+ spaceDirection: _spaceDirection,
441
+ onPress,
442
+ onLongPress,
443
+ onPressIn,
444
+ onPressOut,
445
+ onHoverIn,
446
+ onHoverOut,
447
+ onMouseUp,
448
+ onMouseDown,
449
+ onMouseEnter,
450
+ onMouseLeave,
451
+ onFocus,
452
+ onBlur,
453
+ separator,
454
+ // ignore from here on out
455
+ forceStyle: _forceStyle,
456
+ // @ts-ignore for next/link compat etc
457
+ onClick,
458
+ theme: _themeProp,
459
+ ...nonTamaguiProps
460
+ } = viewPropsIn,
461
+ viewProps = nonTamaguiProps;
462
+ !isTaggable && props.forceStyle && (viewProps.forceStyle = props.forceStyle), isHOC && _themeProp && (viewProps.theme = _themeProp), elementType.acceptTagProp && (viewProps.tag = tagProp);
463
+ var animationStyles,
464
+ shouldUseAnimation =
465
+ // if it supports css vars we run it on server too to get matching initial style
466
+ (supportsCSSVars ? willBeAnimatedClient : willBeAnimated) && useAnimations && !isHOC;
467
+ if (shouldUseAnimation) {
468
+ var _themeState_state1,
469
+ animations = useAnimations({
470
+ props: propsWithAnimation,
471
+ // if hydrating, send empty style
472
+ style: splitStylesStyle || {},
473
+ presence,
474
+ componentState: state,
475
+ styleProps,
476
+ theme: (_themeState_state1 = themeState.state) === null || _themeState_state1 === void 0 ? void 0 : _themeState_state1.theme,
477
+ pseudos: pseudos || null,
478
+ staticConfig,
479
+ stateRef
480
+ });
481
+ (isAnimated || supportsCSSVars) && animations && (animationStyles = animations.style, viewProps.style = animationStyles, animations.className && (viewProps.className = `${viewProps.className || ""} ${animations.className}`)), process.env.NODE_ENV === "development" && time && time`animations`;
482
+ }
483
+ process.env.NODE_ENV === "development" && props.untilMeasured && !props.group && console.warn(`You set the untilMeasured prop without setting group. This doesn't work, be sure to set untilMeasured on the parent that sets group, not the children that use the $group- prop.
484
+
485
+ If you meant to do this, you can disable this warning - either change untilMeasured and group at the same time, or do group={conditional ? 'name' : undefined}`), process.env.NODE_ENV === "development" && time && time`destructure`, groupName && (nonTamaguiProps.onLayout = composeEventHandlers(nonTamaguiProps.onLayout, function (e) {
486
+ stateRef.current.group.emit(groupName, {
487
+ layout: e.nativeEvent.layout
488
+ }), !stateRef.current.hasMeasured && props.untilMeasured === "hide" && setState(function (prev) {
489
+ return {
490
+ ...prev
491
+ };
492
+ }), stateRef.current.hasMeasured = !0;
493
+ })), viewProps = ((_hooks_usePropsTransform = hooks.usePropsTransform) === null || _hooks_usePropsTransform === void 0 ? void 0 : _hooks_usePropsTransform.call(hooks, elementType, nonTamaguiProps, stateRef, curStateRef.willHydrate)) || nonTamaguiProps, curStateRef.composedRef || (curStateRef.composedRef = composeRefs(function (x) {
494
+ return stateRef.current.host = x;
495
+ }, forwardedRef, setElementProps)), viewProps.ref = curStateRef.composedRef, process.env.NODE_ENV === "development" && !isReactNative && !isText && isWeb && !isHOC && React.Children.toArray(props.children).forEach(function (item) {
496
+ typeof item == "string" && item !== `
497
+ ` && console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
498
+ }), process.env.NODE_ENV === "development" && time && time`events-hooks`;
499
+ var {
500
+ pseudoGroups,
501
+ mediaGroups
502
+ } = splitStyles,
503
+ unPress = function () {
504
+ return setStateShallow({
505
+ press: !1,
506
+ pressIn: !1
507
+ });
508
+ };
509
+ process.env.NODE_ENV === "development" && isWeb && useIsomorphicLayoutEffect(function () {
510
+ debugProp && (console.groupCollapsed("Rendered style >"), console.warn(getComputedStyle(stateRef.current.host)), console.groupEnd());
511
+ }), React.useEffect(function () {
512
+ if (!disabled) {
513
+ if (state.unmounted === !0 && hasEnterStyle) {
514
+ setStateShallow({
515
+ unmounted: "should-enter"
516
+ });
517
+ return;
518
+ }
519
+ if (state.unmounted) {
520
+ setStateShallow({
521
+ unmounted: !1
522
+ });
523
+ return;
524
+ }
525
+ var dispose = subscribeToContextGroup({
526
+ disabled,
527
+ componentContext,
528
+ setStateShallow,
529
+ state,
530
+ mediaGroups,
531
+ pseudoGroups
532
+ });
533
+ return function () {
534
+ dispose?.(), componentSetStates.delete(setState);
535
+ };
536
+ }
537
+ }, [state.unmounted, disabled, pseudoGroups ? Object.keys([...pseudoGroups]).join("") : 0, mediaGroups ? Object.keys([...mediaGroups]).join("") : 0]);
538
+ var runtimePressStyle = !disabled && noClassNames && pseudos?.pressStyle,
539
+ runtimeFocusStyle = !disabled && noClassNames && pseudos?.focusStyle,
540
+ runtimeFocusVisibleStyle = !disabled && noClassNames && pseudos?.focusVisibleStyle,
541
+ attachFocus = !!(runtimePressStyle || runtimeFocusStyle || runtimeFocusVisibleStyle || onFocus || onBlur),
542
+ attachPress = !!(groupName || runtimePressStyle || onPress || onPressOut || onPressIn || onMouseDown || onMouseUp || onLongPress || onClick || pseudos?.focusVisibleStyle),
543
+ runtimeHoverStyle = !disabled && noClassNames && pseudos?.hoverStyle,
544
+ needsHoverState = !!(groupName || runtimeHoverStyle || onHoverIn || onHoverOut),
545
+ attachHover = isWeb && !!(groupName || needsHoverState || onMouseEnter || onMouseLeave),
546
+ shouldAttach = !disabled && !props.asChild && !!(attachFocus || attachPress || attachHover || runtimePressStyle || runtimeHoverStyle || runtimeFocusStyle),
547
+ needsPressState = !!(groupName || runtimePressStyle);
548
+ process.env.NODE_ENV === "development" && time && time`events-setup`, process.env.NODE_ENV === "development" && debugProp === "verbose" && log("\u{1FAA9} events()", {
549
+ runtimeFocusStyle,
550
+ runtimePressStyle,
551
+ runtimeHoverStyle,
552
+ runtimeFocusVisibleStyle,
553
+ attachPress,
554
+ attachFocus,
555
+ attachHover,
556
+ shouldAttach,
557
+ needsHoverState
558
+ });
559
+ var events = shouldAttach ? {
560
+ onPressOut: attachPress ? function (e) {
561
+ unPress(), onPressOut?.(e), onMouseUp?.(e);
562
+ } : void 0,
563
+ ...((attachHover || attachPress) && {
564
+ onMouseEnter: function (e) {
565
+ var next = {};
566
+ needsHoverState && (next.hover = !0), needsPressState && state.pressIn && (next.press = !0), setStateShallow(next), onHoverIn?.(e), onMouseEnter?.(e);
567
+ },
568
+ onMouseLeave: function (e) {
569
+ var next = {};
570
+ needsHoverState && (next.hover = !1), needsPressState && state.pressIn && (next.press = !1, next.pressIn = !1), setStateShallow(next), onHoverOut?.(e), onMouseLeave?.(e);
571
+ }
572
+ }),
573
+ onPressIn: attachPress ? function (e) {
574
+ (runtimePressStyle || groupName) && setStateShallow({
575
+ press: !0,
576
+ pressIn: !0
577
+ }), onPressIn?.(e), onMouseDown?.(e), isWeb && componentSetStates.add(setState);
578
+ } : void 0,
579
+ onPress: attachPress ? function (e) {
580
+ unPress(), isWeb && onClick?.(e), onPress?.(e);
581
+ } : void 0,
582
+ ...(attachPress && onLongPress && {
583
+ onLongPress: function (e) {
584
+ unPress(), onLongPress?.(e);
585
+ }
586
+ }),
587
+ ...(attachFocus && {
588
+ onFocus: function (e) {
589
+ pseudos?.focusVisibleStyle ? setTimeout(function () {
590
+ setStateShallow({
591
+ focus: !0,
592
+ focusVisible: !!lastInteractionWasKeyboard.value
593
+ });
594
+ }, 0) : setStateShallow({
595
+ focus: !0,
596
+ focusVisible: !1
597
+ }), onFocus?.(e);
598
+ },
599
+ onBlur: function (e) {
600
+ setStateShallow({
601
+ focus: !1,
602
+ focusVisible: !1
603
+ }), onBlur?.(e);
604
+ }
605
+ })
606
+ } : null;
607
+ if (events && !asChild) {
608
+ var _viewProps_focusable;
609
+ Object.assign(events, {
610
+ cancelable: !viewProps.rejectResponderTermination,
611
+ disabled,
612
+ hitSlop: viewProps.hitSlop,
613
+ delayLongPress: viewProps.delayLongPress,
614
+ delayPressIn: viewProps.delayPressIn,
615
+ delayPressOut: viewProps.delayPressOut,
616
+ focusable: (_viewProps_focusable = viewProps.focusable) !== null && _viewProps_focusable !== void 0 ? _viewProps_focusable : !0,
617
+ minPressDuration: 0
618
+ });
619
+ }
620
+ process.env.NODE_ENV === "development" && time && time`events`, process.env.NODE_ENV === "development" && debugProp === "verbose" && log("events", {
621
+ events,
622
+ attachHover,
623
+ attachPress
624
+ }), (_hooks_useEvents = hooks.useEvents) === null || _hooks_useEvents === void 0 || _hooks_useEvents.call(hooks, viewProps, events, splitStyles, setStateShallow, staticConfig);
625
+ var direction = props.spaceDirection || "both";
626
+ process.env.NODE_ENV === "development" && time && time`hooks`;
627
+ var content = !children || asChild ? children : spacedChildren({
628
+ separator,
629
+ children,
630
+ space,
631
+ direction,
632
+ isZStack,
633
+ debug: debugProp
634
+ });
635
+ if (asChild) if (elementType = Slot, 0) var webStyleEvents, passEvents;else Object.assign(viewProps, {
636
+ onPress,
637
+ onLongPress
638
+ });
639
+ process.env.NODE_ENV === "development" && time && time`spaced-as-child`;
640
+ var useChildrenResult;
641
+ hooks.useChildren && (useChildrenResult = hooks.useChildren(elementType, content, viewProps, events, staticConfig)), useChildrenResult ? content = useChildrenResult : content = /* @__PURE__ */React.createElement(elementType, viewProps, content);
642
+ var ResetPresence = config == null || (_config_animations = config.animations) === null || _config_animations === void 0 ? void 0 : _config_animations.ResetPresence;
643
+ ResetPresence && willBeAnimated && (hasEnterStyle || presenceState) && content && typeof content != "string" && (content = /* @__PURE__ */_jsx(ResetPresence, {
644
+ children: content
645
+ })), process.env.NODE_ENV === "development" && time && time`create-element`;
646
+ var groupState = curStateRef.group,
647
+ subGroupContext = React.useMemo(function () {
648
+ var _splitStyles_style, _splitStyles_style1;
649
+ if (!(!groupState || !groupName)) return groupState.listeners.clear(), {
650
+ ...componentContext.groups,
651
+ // change reference so as we mutate it doesn't affect siblings etc
652
+ state: {
653
+ ...componentContext.groups.state,
654
+ [groupName]: {
655
+ pseudo: defaultComponentStateMounted,
656
+ // capture just initial width and height if they exist
657
+ // will have top, left, width, height (not x, y)
658
+ layout: {
659
+ width: fromPx((_splitStyles_style = splitStyles.style) === null || _splitStyles_style === void 0 ? void 0 : _splitStyles_style.width),
660
+ height: fromPx((_splitStyles_style1 = splitStyles.style) === null || _splitStyles_style1 === void 0 ? void 0 : _splitStyles_style1.height)
661
+ }
662
+ }
663
+ },
664
+ emit: groupState.emit,
665
+ subscribe: groupState.subscribe
666
+ };
667
+ }, [groupName]);
668
+ if (groupName && subGroupContext && (content = /* @__PURE__ */_jsx(ComponentContext.Provider, {
669
+ ...componentContext,
670
+ groups: subGroupContext,
671
+ children: content
672
+ })), process.env.NODE_ENV === "development" && time && time`group-context`, content = disableTheme ? content : getThemedChildren(themeState, content, themeStateProps, !1, stateRef), process.env.NODE_ENV === "development" && time && time`themed-children`, process.env.NODE_ENV === "development" && props.debug === "visualize" && (content = /* @__PURE__ */_jsx(ThemeDebug, {
673
+ themeState,
674
+ themeProps: props,
675
+ children: content
676
+ })), staticConfig.context) {
677
+ var contextProps = staticConfig.context.props;
678
+ for (var key1 in contextProps) if (viewProps.style && key1 in viewProps.style || key1 in viewProps) {
679
+ var _viewProps_style;
680
+ overriddenContextProps || (overriddenContextProps = {});
681
+ var _viewProps_style_key;
682
+ overriddenContextProps[key1] = (_viewProps_style_key = (_viewProps_style = viewProps.style) === null || _viewProps_style === void 0 ? void 0 : _viewProps_style[key1]) !== null && _viewProps_style_key !== void 0 ? _viewProps_style_key : viewProps[key1];
683
+ }
684
+ }
685
+ if (overriddenContextProps) {
686
+ var Provider = staticConfig.context.Provider;
687
+ content = /* @__PURE__ */_jsx(Provider, {
688
+ ...contextValue,
689
+ ...overriddenContextProps,
690
+ children: content
691
+ });
692
+ }
693
+ if (process.env.TAMAGUI_REACT_19 && !1) var rulesToInsert, keys;
694
+ if (process.env.NODE_ENV === "development" && debugProp && debugProp !== "profile") {
695
+ var element1 = typeof elementType == "string" ? elementType : "Component",
696
+ title = `render <${element1} /> (${internalID}) with props`;
697
+ if (isWeb) {
698
+ console.groupCollapsed(title);
699
+ try {
700
+ log("viewProps", viewProps), log("children", content), typeof window < "u" && (log("props in", propsIn, "mapped to", props, "in order", Object.keys(props)), log({
701
+ animationStyles,
702
+ classNames,
703
+ content,
704
+ defaultProps,
705
+ elementType,
706
+ events,
707
+ isAnimated,
708
+ hasRuntimeMediaKeys,
709
+ isStringElement,
710
+ mediaListeningKeys,
711
+ pseudos,
712
+ shouldAttach,
713
+ shouldAvoidClasses,
714
+ shouldForcePseudo,
715
+ shouldListenForMedia,
716
+ splitStyles,
717
+ splitStylesStyle,
718
+ state,
719
+ stateRef,
720
+ staticConfig,
721
+ styleProps,
722
+ tamaguiConfig,
723
+ themeState,
724
+ viewProps,
725
+ willBeAnimated
726
+ }));
727
+ } catch {} finally {
728
+ console.groupEnd();
729
+ }
730
+ } else {
731
+ log(title), log("state: ", state), isDevTools && log("viewProps", viewProps), log("final styles:");
732
+ for (var key2 in splitStylesStyle) log(key2, splitStylesStyle[key2]);
733
+ }
734
+ if (debugProp === "break") debugger;
735
+ }
736
+ return process.env.NODE_ENV === "development" && time && (time`rest`, globalThis.willPrint || (globalThis.willPrint = !0, setTimeout(function () {
737
+ delete globalThis.willPrint, time.print(), time = null;
738
+ }, 50))), content;
739
+ });
740
+ staticConfig.componentName && (component.displayName = staticConfig.componentName);
741
+ var res = component;
742
+ (process.env.TAMAGUI_FORCE_MEMO || staticConfig.memo) && (res = /* @__PURE__ */React.memo(res)), res.staticConfig = staticConfig;
743
+ function extendStyledConfig(extended) {
744
+ return {
745
+ ...staticConfig,
746
+ ...extended,
747
+ neverFlatten: !0,
748
+ isHOC: !0,
749
+ isStyledHOC: !1
750
+ };
751
+ }
752
+ function extractable(Component2, extended) {
753
+ return Component2.staticConfig = extendStyledConfig(extended), Component2.styleable = styleable, Component2;
754
+ }
755
+ function styleable(Component2, options) {
756
+ var _Component_render,
757
+ isForwardedRefAlready = ((_Component_render = Component2.render) === null || _Component_render === void 0 ? void 0 : _Component_render.length) === 2,
758
+ out = isForwardedRefAlready ? Component2 : /* @__PURE__ */React.forwardRef(Component2),
759
+ extendedConfig = extendStyledConfig(options?.staticConfig);
760
+ return out = options?.disableTheme ? out : themeable(out, extendedConfig), process.env.TAMAGUI_MEMOIZE_STYLEABLE && (out = /* @__PURE__ */React.memo(out)), out.staticConfig = extendedConfig, out.styleable = styleable, out;
761
+ }
762
+ return res.extractable = extractable, res.styleable = styleable, res;
763
+ }
764
+ function Unspaced(props) {
765
+ return props.children;
766
+ }
767
+ Unspaced.isUnspaced = !0;
768
+ var getSpacerSize = function (size, param) {
769
+ var {
770
+ tokens
771
+ } = param;
772
+ size = size === !0 ? "$true" : size;
773
+ var _tokens_space_size,
774
+ sizePx = (_tokens_space_size = tokens.space[size]) !== null && _tokens_space_size !== void 0 ? _tokens_space_size : size;
775
+ return {
776
+ width: sizePx,
777
+ height: sizePx,
778
+ minWidth: sizePx,
779
+ minHeight: sizePx
780
+ };
781
+ },
782
+ Spacer = createComponent({
783
+ acceptsClassName: !0,
784
+ memo: !0,
785
+ componentName: "Spacer",
786
+ validStyles,
787
+ defaultProps: {
788
+ ...stackDefaultStyles,
789
+ // avoid nesting issues
790
+ tag: "span",
791
+ size: !0,
792
+ pointerEvents: "none"
793
+ },
794
+ variants: {
795
+ size: {
796
+ "...": getSpacerSize
797
+ },
798
+ flex: {
799
+ true: {
800
+ flexGrow: 1
801
+ }
802
+ },
803
+ direction: {
804
+ horizontal: {
805
+ height: 0,
806
+ minHeight: 0
807
+ },
808
+ vertical: {
809
+ width: 0,
810
+ minWidth: 0
811
+ },
812
+ both: {}
813
+ }
814
+ }
815
+ });
816
+ function spacedChildren(props) {
817
+ var _childrenList__type,
818
+ _childrenList_,
819
+ {
820
+ isZStack,
821
+ children,
822
+ space,
823
+ direction,
824
+ spaceFlex,
825
+ separator,
826
+ ensureKeys
827
+ } = props,
828
+ hasSpace = !!(space || spaceFlex),
829
+ hasSeparator = separator != null,
830
+ areChildrenArray = Array.isArray(children);
831
+ if (!ensureKeys && !(hasSpace || hasSeparator || isZStack)) return children;
832
+ var childrenList = areChildrenArray ? children : React.Children.toArray(children),
833
+ len = childrenList.length;
834
+ if (len <= 1 && !isZStack && !(!((_childrenList_ = childrenList[0]) === null || _childrenList_ === void 0 || (_childrenList__type = _childrenList_.type) === null || _childrenList__type === void 0) && _childrenList__type.shouldForwardSpace)) return children;
835
+ var final = [],
836
+ _iteratorNormalCompletion = !0,
837
+ _didIteratorError = !1,
838
+ _iteratorError = void 0;
839
+ try {
840
+ for (var _iterator = childrenList.entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
841
+ var [index, child] = _step.value,
842
+ _child_type,
843
+ isEmpty = child == null || Array.isArray(child) && child.length === 0;
844
+ if (!isEmpty && /* @__PURE__ */React.isValidElement(child) && !((_child_type = child.type) === null || _child_type === void 0) && _child_type.shouldForwardSpace && (child = /* @__PURE__ */React.cloneElement(child, {
845
+ space,
846
+ spaceFlex,
847
+ separator,
848
+ key: child.key
849
+ })), isEmpty || !child || child.key && !isZStack ? final.push(child) : final.push(/* @__PURE__ */_jsx(React.Fragment, {
850
+ children: isZStack ? /* @__PURE__ */_jsx(AbsoluteFill, {
851
+ children: child
852
+ }) : child
853
+ }, `${index}0t`)), !(isUnspaced(child) && index === 0) && !isZStack) {
854
+ var next = childrenList[index + 1];
855
+ next && !isEmpty && !isUnspaced(next) && (separator ? (hasSpace && final.push(createSpacer({
856
+ key: `_${index}_00t`,
857
+ direction,
858
+ space,
859
+ spaceFlex
860
+ })), final.push(/* @__PURE__ */_jsx(React.Fragment, {
861
+ children: separator
862
+ }, `${index}03t`)), hasSpace && final.push(createSpacer({
863
+ key: `_${index}01t`,
864
+ direction,
865
+ space,
866
+ spaceFlex
867
+ }))) : final.push(createSpacer({
868
+ key: `_${index}02t`,
869
+ direction,
870
+ space,
871
+ spaceFlex
872
+ })));
873
+ }
874
+ }
875
+ } catch (err) {
876
+ _didIteratorError = !0, _iteratorError = err;
877
+ } finally {
878
+ try {
879
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
880
+ } finally {
881
+ if (_didIteratorError) throw _iteratorError;
882
+ }
883
+ }
884
+ return process.env.NODE_ENV === "development" && props.debug && log(" Spaced children", final, props), final;
885
+ }
886
+ function createSpacer(param) {
887
+ var {
888
+ key,
889
+ direction,
890
+ space,
891
+ spaceFlex
892
+ } = param;
893
+ return /* @__PURE__ */_jsx(Spacer, {
894
+ size: space,
895
+ direction,
896
+ ...(typeof spaceFlex < "u" && {
897
+ flex: spaceFlex === !0 ? 1 : spaceFlex === !1 ? 0 : spaceFlex
898
+ })
899
+ }, key);
900
+ }
901
+ function isUnspaced(child) {
902
+ var t = child?.type;
903
+ return t?.isVisuallyHidden || t?.isUnspaced;
904
+ }
905
+ var AbsoluteFill = createComponent({
906
+ defaultProps: {
907
+ ...stackDefaultStyles,
908
+ flexDirection: "column",
909
+ position: "absolute",
910
+ top: 0,
911
+ right: 0,
912
+ bottom: 0,
913
+ left: 0,
914
+ pointerEvents: "box-none"
915
+ }
916
+ });
917
+ function hasAnimatedStyleValue(style) {
918
+ return Object.keys(style).some(function (k) {
919
+ var val = style[k];
920
+ return val && typeof val == "object" && "_animation" in val;
921
+ });
922
+ }
923
+ var fromPx = function (val) {
924
+ return typeof val != "string" ? val : +val.replace("px", "");
925
+ },
926
+ isDisabled = function (props) {
927
+ var _props_accessibilityState;
928
+ return props.disabled || ((_props_accessibilityState = props.accessibilityState) === null || _props_accessibilityState === void 0 ? void 0 : _props_accessibilityState.disabled) || props["aria-disabled"] || props.accessibilityDisabled || !1;
929
+ },
930
+ subscribeToContextGroup = function (param) {
931
+ var {
932
+ disabled = !1,
933
+ setStateShallow,
934
+ pseudoGroups,
935
+ mediaGroups,
936
+ componentContext,
937
+ state
938
+ } = param;
939
+ if (pseudoGroups || mediaGroups) {
940
+ var _componentContext_groups_subscribe,
941
+ _componentContext_groups,
942
+ current = {
943
+ pseudo: {},
944
+ media: {}
945
+ };
946
+ return process.env.NODE_ENV === "development" && !componentContext.groups && console.debug("No context group found"), (_componentContext_groups = componentContext.groups) === null || _componentContext_groups === void 0 || (_componentContext_groups_subscribe = _componentContext_groups.subscribe) === null || _componentContext_groups_subscribe === void 0 ? void 0 : _componentContext_groups_subscribe.call(_componentContext_groups, function (name, param2) {
947
+ var {
948
+ layout,
949
+ pseudo
950
+ } = param2;
951
+ if (pseudo && pseudoGroups?.has(String(name))) Object.assign(current.pseudo, pseudo), persist();else if (layout && mediaGroups) {
952
+ var mediaState = getMediaState(mediaGroups, layout),
953
+ next = mergeIfNotShallowEqual(current.media, mediaState);
954
+ next !== current.media && (Object.assign(current.media, next), persist());
955
+ }
956
+ function persist() {
957
+ var group = {
958
+ ...state.group,
959
+ [name]: current
960
+ };
961
+ setStateShallow({
962
+ group
963
+ });
964
+ }
965
+ });
966
+ }
967
+ };
968
+ export { Spacer, Unspaced, componentSetStates, createComponent, isDisabled, spacedChildren, subscribeToContextGroup, useComponentState };
969
+ //# sourceMappingURL=createComponent.native.mjs.map