@tamagui/web 1.114.3 → 1.115.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 (299) hide show
  1. package/dist/cjs/Tamagui.cjs +80 -0
  2. package/dist/cjs/_withStableStyle.cjs +51 -0
  3. package/dist/cjs/config.cjs +111 -0
  4. package/dist/cjs/constants/{accessibilityDirectMap.js → accessibilityDirectMap.cjs} +19 -11
  5. package/dist/cjs/constants/accessibilityDirectMap.native.cjs +34 -0
  6. package/dist/cjs/constants/accessibilityDirectMap.native.cjs.map +6 -0
  7. package/dist/cjs/constants/constants.cjs +45 -0
  8. package/dist/cjs/constants/isDevTools.cjs +31 -0
  9. package/dist/cjs/constants/webToNativeProps.cjs +28 -0
  10. package/dist/cjs/constants/webToNativeProps.native.cjs +102 -0
  11. package/dist/cjs/constants/webToNativeProps.native.cjs.map +6 -0
  12. package/dist/cjs/contexts/{ComponentContext.js → ComponentContext.cjs} +17 -12
  13. package/dist/cjs/{createComponent.js → createComponent.cjs} +407 -317
  14. package/dist/cjs/createFont.cjs +42 -0
  15. package/dist/cjs/createShorthands.cjs +28 -0
  16. package/dist/cjs/createTamagui.cjs +235 -0
  17. package/dist/cjs/createTheme.cjs +26 -0
  18. package/dist/cjs/createTokens.cjs +29 -0
  19. package/dist/cjs/{createVariable.js → createVariable.cjs} +31 -24
  20. package/dist/cjs/createVariables.cjs +58 -0
  21. package/dist/cjs/defaultComponentState.cjs +44 -0
  22. package/dist/cjs/helpers/ThemeManager.cjs +184 -0
  23. package/dist/cjs/helpers/{ThemeManagerContext.js → ThemeManagerContext.cjs} +22 -14
  24. package/dist/cjs/helpers/createMediaStyle.cjs +96 -0
  25. package/dist/cjs/helpers/{createShallowSetState.js → createShallowSetState.cjs} +29 -22
  26. package/dist/cjs/helpers/createStyledContext.cjs +70 -0
  27. package/dist/cjs/helpers/defaultOffset.cjs +29 -0
  28. package/dist/cjs/helpers/expandStyle.cjs +67 -0
  29. package/dist/cjs/helpers/expandStyles.cjs +40 -0
  30. package/dist/cjs/helpers/getExpandedShorthands.cjs +33 -0
  31. package/dist/cjs/helpers/getFontLanguage.cjs +26 -0
  32. package/dist/cjs/helpers/getGroupPropParts.cjs +37 -0
  33. package/dist/cjs/helpers/{getSplitStyles.js → getSplitStyles.cjs} +362 -335
  34. package/dist/cjs/helpers/getStylesAtomic.cjs +176 -0
  35. package/dist/cjs/helpers/getStylesAtomic.native.cjs +33 -0
  36. package/dist/cjs/helpers/getStylesAtomic.native.cjs.map +6 -0
  37. package/dist/cjs/helpers/getThemeCSSRules.cjs +119 -0
  38. package/dist/cjs/helpers/getThemeCSSRules.native.cjs +28 -0
  39. package/dist/cjs/helpers/getThemeCSSRules.native.cjs.map +6 -0
  40. package/dist/cjs/helpers/getVariantExtras.cjs +65 -0
  41. package/dist/cjs/helpers/{insertStyleRule.js → insertStyleRule.cjs} +93 -96
  42. package/dist/cjs/helpers/isActivePlatform.cjs +35 -0
  43. package/dist/cjs/helpers/isObj.cjs +26 -0
  44. package/dist/cjs/helpers/isTamaguiComponent.cjs +29 -0
  45. package/dist/cjs/helpers/{isTamaguiElement.js → isTamaguiElement.cjs} +24 -15
  46. package/dist/cjs/helpers/log.cjs +36 -0
  47. package/dist/cjs/helpers/matchMedia.cjs +36 -0
  48. package/dist/cjs/helpers/matchMedia.native.cjs +39 -0
  49. package/dist/cjs/helpers/matchMedia.native.cjs.map +6 -0
  50. package/dist/cjs/helpers/mergeProps.cjs +45 -0
  51. package/dist/cjs/helpers/{mergeVariants.js → mergeVariants.cjs} +19 -17
  52. package/dist/cjs/helpers/normalizeColor.cjs +48 -0
  53. package/dist/cjs/helpers/{normalizeShadow.js → normalizeShadow.cjs} +22 -13
  54. package/dist/cjs/helpers/normalizeStyle.cjs +47 -0
  55. package/dist/cjs/helpers/normalizeStylePropKeys.cjs +26 -0
  56. package/dist/cjs/helpers/normalizeStylePropKeys.native.cjs +37 -0
  57. package/dist/cjs/helpers/normalizeStylePropKeys.native.cjs.map +6 -0
  58. package/dist/cjs/helpers/{normalizeValueWithProperty.js → normalizeValueWithProperty.cjs} +22 -19
  59. package/dist/cjs/helpers/objectIdentityKey.cjs +39 -0
  60. package/dist/cjs/helpers/propMapper.cjs +254 -0
  61. package/dist/cjs/helpers/proxyThemeToParents.cjs +61 -0
  62. package/dist/cjs/helpers/{proxyThemeVariables.js → proxyThemeVariables.cjs} +16 -11
  63. package/dist/cjs/helpers/pseudoDescriptors.cjs +72 -0
  64. package/dist/cjs/helpers/registerCSSVariable.cjs +33 -0
  65. package/dist/cjs/helpers/setElementProps.cjs +29 -0
  66. package/dist/cjs/helpers/setElementProps.native.cjs +30 -0
  67. package/dist/cjs/helpers/setElementProps.native.cjs.map +6 -0
  68. package/dist/cjs/helpers/{skipProps.js → skipProps.cjs} +17 -12
  69. package/dist/cjs/helpers/sortString.cjs +26 -0
  70. package/dist/cjs/helpers/{subscribeToContextGroup.js → subscribeToContextGroup.cjs} +25 -17
  71. package/dist/cjs/helpers/themeable.cjs +83 -0
  72. package/dist/cjs/helpers/{themes.js → themes.cjs} +17 -12
  73. package/dist/cjs/helpers/timer.cjs +32 -0
  74. package/dist/cjs/helpers/transformsToString.cjs +37 -0
  75. package/dist/cjs/helpers/webPropsToSkip.cjs +26 -0
  76. package/dist/cjs/helpers/webPropsToSkip.native.cjs +79 -0
  77. package/dist/cjs/helpers/webPropsToSkip.native.cjs.map +6 -0
  78. package/dist/cjs/helpers/wrapStyleTags.cjs +40 -0
  79. package/dist/cjs/hooks/{useComponentState.js → useComponentState.cjs} +75 -30
  80. package/dist/cjs/hooks/useConfiguration.cjs +55 -0
  81. package/dist/cjs/hooks/{useDidHydrateOnce.js → useDidHydrateOnce.cjs} +27 -16
  82. package/dist/cjs/hooks/useDisableSSR.cjs +29 -0
  83. package/dist/cjs/hooks/useIsTouchDevice.cjs +28 -0
  84. package/dist/cjs/hooks/useMedia.cjs +227 -0
  85. package/dist/cjs/hooks/useProps.cjs +108 -0
  86. package/dist/cjs/hooks/useTheme.cjs +277 -0
  87. package/dist/cjs/hooks/useThemeName.cjs +50 -0
  88. package/dist/cjs/index.cjs +106 -0
  89. package/dist/cjs/inject-styles.cjs +37 -0
  90. package/dist/cjs/insertFont.cjs +72 -0
  91. package/dist/cjs/interfaces/CSSColorNames.cjs +16 -0
  92. package/dist/cjs/interfaces/GetRef.cjs +16 -0
  93. package/dist/cjs/interfaces/KeyTypes.cjs +16 -0
  94. package/dist/cjs/interfaces/RNExclusiveTypes.cjs +16 -0
  95. package/dist/cjs/interfaces/Role.cjs +16 -0
  96. package/dist/cjs/interfaces/TamaguiComponentEvents.cjs +16 -0
  97. package/dist/cjs/interfaces/{TamaguiComponentPropsBaseBase.js → TamaguiComponentPropsBaseBase.cjs} +8 -6
  98. package/dist/cjs/interfaces/TamaguiComponentState.cjs +16 -0
  99. package/dist/cjs/interfaces/WebOnlyPressEvents.cjs +16 -0
  100. package/dist/cjs/setupHooks.cjs +30 -0
  101. package/dist/cjs/setupReactNative.cjs +49 -0
  102. package/dist/cjs/styled.cjs +87 -0
  103. package/dist/cjs/type-utils.cjs +16 -0
  104. package/dist/cjs/types.cjs +19 -0
  105. package/dist/cjs/views/Configuration.cjs +47 -0
  106. package/dist/cjs/views/FontLanguage.cjs +37 -0
  107. package/dist/cjs/views/FontLanguage.native.cjs +50 -0
  108. package/dist/cjs/views/FontLanguage.native.cjs.map +6 -0
  109. package/dist/cjs/views/FontLanguage.types.cjs +16 -0
  110. package/dist/cjs/views/Slot.cjs +78 -0
  111. package/dist/cjs/views/Stack.cjs +34 -0
  112. package/dist/cjs/views/TamaguiProvider.cjs +93 -0
  113. package/dist/cjs/views/Text.cjs +86 -0
  114. package/dist/cjs/views/Theme.cjs +145 -0
  115. package/dist/cjs/views/ThemeDebug.cjs +92 -0
  116. package/dist/cjs/views/ThemeDebug.native.cjs +33 -0
  117. package/dist/cjs/views/ThemeDebug.native.cjs.map +6 -0
  118. package/dist/cjs/views/ThemeProvider.cjs +56 -0
  119. package/dist/cjs/views/View.cjs +33 -0
  120. package/package.json +15 -14
  121. package/dist/cjs/Tamagui.js +0 -63
  122. package/dist/cjs/_withStableStyle.js +0 -33
  123. package/dist/cjs/config.js +0 -97
  124. package/dist/cjs/constants/constants.js +0 -36
  125. package/dist/cjs/constants/isDevTools.js +0 -28
  126. package/dist/cjs/constants/webToNativeProps.js +0 -22
  127. package/dist/cjs/createFont.js +0 -53
  128. package/dist/cjs/createShorthands.js +0 -23
  129. package/dist/cjs/createTamagui.js +0 -189
  130. package/dist/cjs/createTheme.js +0 -21
  131. package/dist/cjs/createTokens.js +0 -24
  132. package/dist/cjs/createVariables.js +0 -47
  133. package/dist/cjs/defaultComponentState.js +0 -37
  134. package/dist/cjs/helpers/ThemeManager.js +0 -166
  135. package/dist/cjs/helpers/createMediaStyle.js +0 -74
  136. package/dist/cjs/helpers/createStyledContext.js +0 -53
  137. package/dist/cjs/helpers/defaultOffset.js +0 -21
  138. package/dist/cjs/helpers/expandStyle.js +0 -73
  139. package/dist/cjs/helpers/expandStyles.js +0 -34
  140. package/dist/cjs/helpers/getExpandedShorthands.js +0 -29
  141. package/dist/cjs/helpers/getFontLanguage.js +0 -21
  142. package/dist/cjs/helpers/getGroupPropParts.js +0 -27
  143. package/dist/cjs/helpers/getStylesAtomic.js +0 -152
  144. package/dist/cjs/helpers/getThemeCSSRules.js +0 -89
  145. package/dist/cjs/helpers/getVariantExtras.js +0 -58
  146. package/dist/cjs/helpers/isActivePlatform.js +0 -29
  147. package/dist/cjs/helpers/isObj.js +0 -21
  148. package/dist/cjs/helpers/isTamaguiComponent.js +0 -24
  149. package/dist/cjs/helpers/log.js +0 -31
  150. package/dist/cjs/helpers/matchMedia.js +0 -34
  151. package/dist/cjs/helpers/mergeProps.js +0 -41
  152. package/dist/cjs/helpers/normalizeColor.js +0 -43
  153. package/dist/cjs/helpers/normalizeStyle.js +0 -36
  154. package/dist/cjs/helpers/normalizeStylePropKeys.js +0 -21
  155. package/dist/cjs/helpers/objectIdentityKey.js +0 -38
  156. package/dist/cjs/helpers/propMapper.js +0 -238
  157. package/dist/cjs/helpers/proxyThemeToParents.js +0 -52
  158. package/dist/cjs/helpers/pseudoDescriptors.js +0 -65
  159. package/dist/cjs/helpers/registerCSSVariable.js +0 -29
  160. package/dist/cjs/helpers/setElementProps.js +0 -24
  161. package/dist/cjs/helpers/sortString.js +0 -21
  162. package/dist/cjs/helpers/themeable.js +0 -63
  163. package/dist/cjs/helpers/timer.js +0 -27
  164. package/dist/cjs/helpers/transformsToString.js +0 -32
  165. package/dist/cjs/helpers/webPropsToSkip.js +0 -21
  166. package/dist/cjs/helpers/wrapStyleTags.js +0 -39
  167. package/dist/cjs/hooks/useConfiguration.js +0 -37
  168. package/dist/cjs/hooks/useDisableSSR.js +0 -24
  169. package/dist/cjs/hooks/useIsTouchDevice.js +0 -22
  170. package/dist/cjs/hooks/useMedia.js +0 -206
  171. package/dist/cjs/hooks/useProps.js +0 -95
  172. package/dist/cjs/hooks/useTheme.js +0 -263
  173. package/dist/cjs/hooks/useThemeName.js +0 -39
  174. package/dist/cjs/index.js +0 -99
  175. package/dist/cjs/inject-styles.js +0 -28
  176. package/dist/cjs/insertFont.js +0 -65
  177. package/dist/cjs/interfaces/CSSColorNames.js +0 -14
  178. package/dist/cjs/interfaces/GetRef.js +0 -14
  179. package/dist/cjs/interfaces/KeyTypes.js +0 -14
  180. package/dist/cjs/interfaces/RNExclusiveTypes.js +0 -14
  181. package/dist/cjs/interfaces/Role.js +0 -14
  182. package/dist/cjs/interfaces/TamaguiComponentEvents.js +0 -14
  183. package/dist/cjs/interfaces/TamaguiComponentState.js +0 -14
  184. package/dist/cjs/interfaces/WebOnlyPressEvents.js +0 -14
  185. package/dist/cjs/setupHooks.js +0 -25
  186. package/dist/cjs/setupReactNative.js +0 -46
  187. package/dist/cjs/styled.js +0 -74
  188. package/dist/cjs/type-utils.js +0 -14
  189. package/dist/cjs/types.js +0 -16
  190. package/dist/cjs/views/Configuration.js +0 -34
  191. package/dist/cjs/views/FontLanguage.js +0 -32
  192. package/dist/cjs/views/FontLanguage.types.js +0 -14
  193. package/dist/cjs/views/Slot.js +0 -59
  194. package/dist/cjs/views/Stack.js +0 -27
  195. package/dist/cjs/views/TamaguiProvider.js +0 -76
  196. package/dist/cjs/views/Text.js +0 -77
  197. package/dist/cjs/views/Theme.js +0 -103
  198. package/dist/cjs/views/ThemeDebug.js +0 -94
  199. package/dist/cjs/views/ThemeProvider.js +0 -45
  200. package/dist/cjs/views/View.js +0 -26
  201. /package/dist/cjs/{Tamagui.js.map → Tamagui.cjs.map} +0 -0
  202. /package/dist/cjs/{_withStableStyle.js.map → _withStableStyle.cjs.map} +0 -0
  203. /package/dist/cjs/{config.js.map → config.cjs.map} +0 -0
  204. /package/dist/cjs/constants/{accessibilityDirectMap.js.map → accessibilityDirectMap.cjs.map} +0 -0
  205. /package/dist/cjs/constants/{constants.js.map → constants.cjs.map} +0 -0
  206. /package/dist/cjs/constants/{isDevTools.js.map → isDevTools.cjs.map} +0 -0
  207. /package/dist/cjs/constants/{webToNativeProps.js.map → webToNativeProps.cjs.map} +0 -0
  208. /package/dist/cjs/contexts/{ComponentContext.js.map → ComponentContext.cjs.map} +0 -0
  209. /package/dist/cjs/{createComponent.js.map → createComponent.cjs.map} +0 -0
  210. /package/dist/cjs/{createFont.js.map → createFont.cjs.map} +0 -0
  211. /package/dist/cjs/{createShorthands.js.map → createShorthands.cjs.map} +0 -0
  212. /package/dist/cjs/{createTamagui.js.map → createTamagui.cjs.map} +0 -0
  213. /package/dist/cjs/{createTheme.js.map → createTheme.cjs.map} +0 -0
  214. /package/dist/cjs/{createTokens.js.map → createTokens.cjs.map} +0 -0
  215. /package/dist/cjs/{createVariable.js.map → createVariable.cjs.map} +0 -0
  216. /package/dist/cjs/{createVariables.js.map → createVariables.cjs.map} +0 -0
  217. /package/dist/cjs/{defaultComponentState.js.map → defaultComponentState.cjs.map} +0 -0
  218. /package/dist/cjs/helpers/{ThemeManager.js.map → ThemeManager.cjs.map} +0 -0
  219. /package/dist/cjs/helpers/{ThemeManagerContext.js.map → ThemeManagerContext.cjs.map} +0 -0
  220. /package/dist/cjs/helpers/{createMediaStyle.js.map → createMediaStyle.cjs.map} +0 -0
  221. /package/dist/cjs/helpers/{createShallowSetState.js.map → createShallowSetState.cjs.map} +0 -0
  222. /package/dist/cjs/helpers/{createStyledContext.js.map → createStyledContext.cjs.map} +0 -0
  223. /package/dist/cjs/helpers/{defaultOffset.js.map → defaultOffset.cjs.map} +0 -0
  224. /package/dist/cjs/helpers/{expandStyle.js.map → expandStyle.cjs.map} +0 -0
  225. /package/dist/cjs/helpers/{expandStyles.js.map → expandStyles.cjs.map} +0 -0
  226. /package/dist/cjs/helpers/{getExpandedShorthands.js.map → getExpandedShorthands.cjs.map} +0 -0
  227. /package/dist/cjs/helpers/{getFontLanguage.js.map → getFontLanguage.cjs.map} +0 -0
  228. /package/dist/cjs/helpers/{getGroupPropParts.js.map → getGroupPropParts.cjs.map} +0 -0
  229. /package/dist/cjs/helpers/{getSplitStyles.js.map → getSplitStyles.cjs.map} +0 -0
  230. /package/dist/cjs/helpers/{getStylesAtomic.js.map → getStylesAtomic.cjs.map} +0 -0
  231. /package/dist/cjs/helpers/{getThemeCSSRules.js.map → getThemeCSSRules.cjs.map} +0 -0
  232. /package/dist/cjs/helpers/{getVariantExtras.js.map → getVariantExtras.cjs.map} +0 -0
  233. /package/dist/cjs/helpers/{insertStyleRule.js.map → insertStyleRule.cjs.map} +0 -0
  234. /package/dist/cjs/helpers/{isActivePlatform.js.map → isActivePlatform.cjs.map} +0 -0
  235. /package/dist/cjs/helpers/{isObj.js.map → isObj.cjs.map} +0 -0
  236. /package/dist/cjs/helpers/{isTamaguiComponent.js.map → isTamaguiComponent.cjs.map} +0 -0
  237. /package/dist/cjs/helpers/{isTamaguiElement.js.map → isTamaguiElement.cjs.map} +0 -0
  238. /package/dist/cjs/helpers/{log.js.map → log.cjs.map} +0 -0
  239. /package/dist/cjs/helpers/{matchMedia.js.map → matchMedia.cjs.map} +0 -0
  240. /package/dist/cjs/helpers/{mergeProps.js.map → mergeProps.cjs.map} +0 -0
  241. /package/dist/cjs/helpers/{mergeVariants.js.map → mergeVariants.cjs.map} +0 -0
  242. /package/dist/cjs/helpers/{normalizeColor.js.map → normalizeColor.cjs.map} +0 -0
  243. /package/dist/cjs/helpers/{normalizeShadow.js.map → normalizeShadow.cjs.map} +0 -0
  244. /package/dist/cjs/helpers/{normalizeStyle.js.map → normalizeStyle.cjs.map} +0 -0
  245. /package/dist/cjs/helpers/{normalizeStylePropKeys.js.map → normalizeStylePropKeys.cjs.map} +0 -0
  246. /package/dist/cjs/helpers/{normalizeValueWithProperty.js.map → normalizeValueWithProperty.cjs.map} +0 -0
  247. /package/dist/cjs/helpers/{objectIdentityKey.js.map → objectIdentityKey.cjs.map} +0 -0
  248. /package/dist/cjs/helpers/{propMapper.js.map → propMapper.cjs.map} +0 -0
  249. /package/dist/cjs/helpers/{proxyThemeToParents.js.map → proxyThemeToParents.cjs.map} +0 -0
  250. /package/dist/cjs/helpers/{proxyThemeVariables.js.map → proxyThemeVariables.cjs.map} +0 -0
  251. /package/dist/cjs/helpers/{pseudoDescriptors.js.map → pseudoDescriptors.cjs.map} +0 -0
  252. /package/dist/cjs/helpers/{registerCSSVariable.js.map → registerCSSVariable.cjs.map} +0 -0
  253. /package/dist/cjs/helpers/{setElementProps.js.map → setElementProps.cjs.map} +0 -0
  254. /package/dist/cjs/helpers/{skipProps.js.map → skipProps.cjs.map} +0 -0
  255. /package/dist/cjs/helpers/{sortString.js.map → sortString.cjs.map} +0 -0
  256. /package/dist/cjs/helpers/{subscribeToContextGroup.js.map → subscribeToContextGroup.cjs.map} +0 -0
  257. /package/dist/cjs/helpers/{themeable.js.map → themeable.cjs.map} +0 -0
  258. /package/dist/cjs/helpers/{themes.js.map → themes.cjs.map} +0 -0
  259. /package/dist/cjs/helpers/{timer.js.map → timer.cjs.map} +0 -0
  260. /package/dist/cjs/helpers/{transformsToString.js.map → transformsToString.cjs.map} +0 -0
  261. /package/dist/cjs/helpers/{webPropsToSkip.js.map → webPropsToSkip.cjs.map} +0 -0
  262. /package/dist/cjs/helpers/{wrapStyleTags.js.map → wrapStyleTags.cjs.map} +0 -0
  263. /package/dist/cjs/hooks/{useComponentState.js.map → useComponentState.cjs.map} +0 -0
  264. /package/dist/cjs/hooks/{useConfiguration.js.map → useConfiguration.cjs.map} +0 -0
  265. /package/dist/cjs/hooks/{useDidHydrateOnce.js.map → useDidHydrateOnce.cjs.map} +0 -0
  266. /package/dist/cjs/hooks/{useDisableSSR.js.map → useDisableSSR.cjs.map} +0 -0
  267. /package/dist/cjs/hooks/{useIsTouchDevice.js.map → useIsTouchDevice.cjs.map} +0 -0
  268. /package/dist/cjs/hooks/{useMedia.js.map → useMedia.cjs.map} +0 -0
  269. /package/dist/cjs/hooks/{useProps.js.map → useProps.cjs.map} +0 -0
  270. /package/dist/cjs/hooks/{useTheme.js.map → useTheme.cjs.map} +0 -0
  271. /package/dist/cjs/hooks/{useThemeName.js.map → useThemeName.cjs.map} +0 -0
  272. /package/dist/cjs/{index.js.map → index.cjs.map} +0 -0
  273. /package/dist/cjs/{inject-styles.js.map → inject-styles.cjs.map} +0 -0
  274. /package/dist/cjs/{insertFont.js.map → insertFont.cjs.map} +0 -0
  275. /package/dist/cjs/interfaces/{CSSColorNames.js.map → CSSColorNames.cjs.map} +0 -0
  276. /package/dist/cjs/interfaces/{GetRef.js.map → GetRef.cjs.map} +0 -0
  277. /package/dist/cjs/interfaces/{KeyTypes.js.map → KeyTypes.cjs.map} +0 -0
  278. /package/dist/cjs/interfaces/{RNExclusiveTypes.js.map → RNExclusiveTypes.cjs.map} +0 -0
  279. /package/dist/cjs/interfaces/{Role.js.map → Role.cjs.map} +0 -0
  280. /package/dist/cjs/interfaces/{TamaguiComponentEvents.js.map → TamaguiComponentEvents.cjs.map} +0 -0
  281. /package/dist/cjs/interfaces/{TamaguiComponentPropsBaseBase.js.map → TamaguiComponentPropsBaseBase.cjs.map} +0 -0
  282. /package/dist/cjs/interfaces/{TamaguiComponentState.js.map → TamaguiComponentState.cjs.map} +0 -0
  283. /package/dist/cjs/interfaces/{WebOnlyPressEvents.js.map → WebOnlyPressEvents.cjs.map} +0 -0
  284. /package/dist/cjs/{setupHooks.js.map → setupHooks.cjs.map} +0 -0
  285. /package/dist/cjs/{setupReactNative.js.map → setupReactNative.cjs.map} +0 -0
  286. /package/dist/cjs/{styled.js.map → styled.cjs.map} +0 -0
  287. /package/dist/cjs/{type-utils.js.map → type-utils.cjs.map} +0 -0
  288. /package/dist/cjs/{types.js.map → types.cjs.map} +0 -0
  289. /package/dist/cjs/views/{Configuration.js.map → Configuration.cjs.map} +0 -0
  290. /package/dist/cjs/views/{FontLanguage.js.map → FontLanguage.cjs.map} +0 -0
  291. /package/dist/cjs/views/{FontLanguage.types.js.map → FontLanguage.types.cjs.map} +0 -0
  292. /package/dist/cjs/views/{Slot.js.map → Slot.cjs.map} +0 -0
  293. /package/dist/cjs/views/{Stack.js.map → Stack.cjs.map} +0 -0
  294. /package/dist/cjs/views/{TamaguiProvider.js.map → TamaguiProvider.cjs.map} +0 -0
  295. /package/dist/cjs/views/{Text.js.map → Text.cjs.map} +0 -0
  296. /package/dist/cjs/views/{Theme.js.map → Theme.cjs.map} +0 -0
  297. /package/dist/cjs/views/{ThemeDebug.js.map → ThemeDebug.cjs.map} +0 -0
  298. /package/dist/cjs/views/{ThemeProvider.js.map → ThemeProvider.cjs.map} +0 -0
  299. /package/dist/cjs/views/{View.js.map → View.cjs.map} +0 -0
@@ -0,0 +1,227 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var useMedia_exports = {};
33
+ __export(useMedia_exports, {
34
+ _dmt: () => _dmt,
35
+ configureMedia: () => configureMedia,
36
+ getMedia: () => getMedia,
37
+ getMediaImportanceIfMoreImportant: () => getMediaImportanceIfMoreImportant,
38
+ getMediaKeyImportance: () => getMediaKeyImportance,
39
+ getMediaState: () => getMediaState,
40
+ isMediaKey: () => isMediaKey,
41
+ mediaKeyMatch: () => mediaKeyMatch,
42
+ mediaKeyToQuery: () => mediaKeyToQuery,
43
+ mediaKeys: () => mediaKeys,
44
+ mediaObjectToString: () => mediaObjectToString,
45
+ mediaQueryConfig: () => mediaQueryConfig,
46
+ mediaState: () => mediaState,
47
+ setMediaShouldUpdate: () => setMediaShouldUpdate,
48
+ setupMediaListeners: () => setupMediaListeners,
49
+ useMedia: () => useMedia
50
+ });
51
+ module.exports = __toCommonJS(useMedia_exports);
52
+ var import_react = __toESM(require("react")),
53
+ import_constants = require("@tamagui/constants"),
54
+ import_config = require("../config.cjs"),
55
+ import_matchMedia = require("../helpers/matchMedia.cjs"),
56
+ import_pseudoDescriptors = require("../helpers/pseudoDescriptors.cjs"),
57
+ import_useDisableSSR = require("./useDisableSSR.cjs");
58
+ let mediaState =
59
+ // development only safeguard
60
+ process.env.NODE_ENV === "development" ? new Proxy({}, {
61
+ get(target, key) {
62
+ if (typeof key == "string" && key[0] === "$" &&
63
+ // dont error on $$typeof
64
+ key[1] !== "$") throw new Error(`Access mediaState should not use "$": ${key}`);
65
+ return Reflect.get(target, key);
66
+ }
67
+ }) : {};
68
+ const mediaQueryConfig = {},
69
+ getMedia = () => mediaState,
70
+ mediaKeys = /* @__PURE__ */new Set(),
71
+ mediaKeyRegex = /\$(platform|theme|group)-/,
72
+ isMediaKey = key => {
73
+ if (mediaKeys.has(key)) return !0;
74
+ if (key[0] === "$") {
75
+ const match = key.match(mediaKeyRegex);
76
+ if (match) return match[1];
77
+ }
78
+ return !1;
79
+ };
80
+ let initState;
81
+ const defaultMediaImportance = Object.keys(import_pseudoDescriptors.pseudoDescriptors).length;
82
+ let mediaKeysOrdered;
83
+ const getMediaKeyImportance = key => {
84
+ if (process.env.NODE_ENV === "development" && key[0] === "$") throw new Error("use short key");
85
+ return (0, import_config.getConfig)().settings.mediaPropOrder ? defaultMediaImportance : mediaKeysOrdered.indexOf(key) + 100;
86
+ },
87
+ dispose = /* @__PURE__ */new Set();
88
+ let mediaVersion = 0;
89
+ const configureMedia = config => {
90
+ const {
91
+ media
92
+ } = config,
93
+ mediaQueryDefaultActive = (0, import_config.getSetting)("mediaQueryDefaultActive");
94
+ if (media) {
95
+ mediaVersion++;
96
+ for (const key in media) mediaState[key] = mediaQueryDefaultActive?.[key] || !1, mediaKeys.add(`$${key}`);
97
+ Object.assign(mediaQueryConfig, media), initState = {
98
+ ...mediaState
99
+ }, mediaKeysOrdered = Object.keys(media), config.disableSSR ? setupMediaListeners() : updateCurrentState();
100
+ }
101
+ };
102
+ function unlisten() {
103
+ dispose.forEach(cb => cb()), dispose.clear();
104
+ }
105
+ let setupVersion = -1;
106
+ function setupMediaListeners() {
107
+ if (!(import_constants.isWeb && import_constants.isServer) && setupVersion !== mediaVersion) {
108
+ setupVersion = mediaVersion, unlisten();
109
+ for (const key in mediaQueryConfig) {
110
+ let update = function () {
111
+ const next = !!getMatch().matches;
112
+ next !== mediaState[key] && (mediaState = {
113
+ ...mediaState,
114
+ [key]: next
115
+ }, updateCurrentState());
116
+ };
117
+ const str = mediaObjectToString(mediaQueryConfig[key], key),
118
+ getMatch = () => (0, import_matchMedia.matchMedia)(str),
119
+ match = getMatch();
120
+ if (!match) throw new Error("\u26A0\uFE0F No match");
121
+ match.addListener(update), dispose.add(() => {
122
+ match.removeListener(update);
123
+ }), update();
124
+ }
125
+ }
126
+ }
127
+ const listeners = /* @__PURE__ */new Set();
128
+ let flushing = !1,
129
+ flushVersion = -1;
130
+ function updateCurrentState() {
131
+ flushing && flushVersion === mediaVersion || (flushVersion = mediaVersion, flushing = !0, Promise.resolve().then(() => {
132
+ flushing = !1, listeners.forEach(cb => cb(mediaState));
133
+ }));
134
+ }
135
+ const States = /* @__PURE__ */new WeakMap();
136
+ function setMediaShouldUpdate(ref, enabled, keys) {
137
+ const cur = States.get(ref);
138
+ (!cur || cur.enabled !== enabled || keys) && States.set(ref, {
139
+ ...cur,
140
+ enabled,
141
+ keys
142
+ });
143
+ }
144
+ function subscribe(subscriber) {
145
+ return listeners.add(subscriber), () => {
146
+ listeners.delete(subscriber);
147
+ };
148
+ }
149
+ function useMedia(uidIn, componentContext, debug) {
150
+ const uid = uidIn ?? import_react.default.useRef(),
151
+ disableSSR = (0, import_useDisableSSR.getDisableSSR)(componentContext),
152
+ initialState = (disableSSR || !import_constants.isWeb ? mediaState : initState) || {};
153
+ let componentState = States.get(uid);
154
+ componentState || (componentState = {
155
+ prev: initialState
156
+ }, States.set(uid, componentState));
157
+ const getSnapshot = () => {
158
+ if (!componentState) return initialState;
159
+ const {
160
+ enabled,
161
+ keys,
162
+ prev = initialState
163
+ } = componentState;
164
+ if (enabled === !1) return prev;
165
+ const testKeys = keys ?? (enabled && keys) ?? null;
166
+ return !testKeys || Object.keys(testKeys).every(key => mediaState[key] === prev[key]) ? prev : (componentState.prev = mediaState, mediaState);
167
+ };
168
+ let state;
169
+ if (process.env.TAMAGUI_SYNC_MEDIA_QUERY) state = import_react.default.useSyncExternalStore(subscribe, getSnapshot, () => initialState);else {
170
+ const [_state, setState] = import_react.default.useState(initialState);
171
+ state = _state, (0, import_constants.useIsomorphicLayoutEffect)(() => {
172
+ function update() {
173
+ setState(getSnapshot);
174
+ }
175
+ return update(), disableSSR || Promise.resolve().then(() => {
176
+ update();
177
+ }), subscribe(update);
178
+ }, []);
179
+ }
180
+ return new Proxy(state, {
181
+ get(_, key) {
182
+ if (!disableMediaTouch) return typeof key == "string" && (componentState.keys ||= {}, componentState.keys[key] = !0, process.env.NODE_ENV === "development" && debug && console.info("useMedia() TOUCH", key)), Reflect.get(state, key);
183
+ }
184
+ });
185
+ }
186
+ let disableMediaTouch = !1;
187
+ function _dmt(val) {
188
+ disableMediaTouch = val;
189
+ }
190
+ function getMediaState(mediaGroups, layout) {
191
+ disableMediaTouch = !0;
192
+ let res;
193
+ try {
194
+ res = Object.fromEntries([...mediaGroups].map(mediaKey => [mediaKey, mediaKeyMatch(mediaKey, layout)]));
195
+ } finally {
196
+ disableMediaTouch = !1;
197
+ }
198
+ return res;
199
+ }
200
+ const getMediaImportanceIfMoreImportant = (mediaKey, key, importancesUsed, isSizeMedia) => {
201
+ const importance = isSizeMedia && !(0, import_config.getSetting)("mediaPropOrder") ? getMediaKeyImportance(mediaKey) : defaultMediaImportance;
202
+ return !importancesUsed[key] || importance > importancesUsed[key] ? importance : null;
203
+ };
204
+ function camelToHyphen(str) {
205
+ return str.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`).toLowerCase();
206
+ }
207
+ const cache = /* @__PURE__ */new WeakMap(),
208
+ cachedMediaKeyToQuery = {};
209
+ function mediaObjectToString(query, key) {
210
+ if (typeof query == "string") return query;
211
+ if (cache.has(query)) return cache.get(query);
212
+ const res = Object.entries(query).map(([feature, value]) => (feature = camelToHyphen(feature), typeof value == "string" ? `(${feature}: ${value})` : (typeof value == "number" && /[height|width]$/.test(feature) && (value = `${value}px`), `(${feature}: ${value})`))).join(" and ");
213
+ return key && (cachedMediaKeyToQuery[key] = res), cache.set(query, res), res;
214
+ }
215
+ function mediaKeyToQuery(key) {
216
+ return cachedMediaKeyToQuery[key] || mediaObjectToString(mediaQueryConfig[key], key);
217
+ }
218
+ function mediaKeyMatch(key, dimensions) {
219
+ const mediaQueries = mediaQueryConfig[key];
220
+ return Object.keys(mediaQueries).every(query => {
221
+ const expectedVal = +mediaQueries[query],
222
+ isMax = query.startsWith("max"),
223
+ isWidth = query.endsWith("Width"),
224
+ givenVal = dimensions[isWidth ? "width" : "height"];
225
+ return isMax ? givenVal < expectedVal : givenVal > expectedVal;
226
+ });
227
+ }
@@ -0,0 +1,108 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var useProps_exports = {};
33
+ __export(useProps_exports, {
34
+ useProps: () => useProps,
35
+ usePropsAndStyle: () => usePropsAndStyle,
36
+ useStyle: () => useStyle
37
+ });
38
+ module.exports = __toCommonJS(useProps_exports);
39
+ var import_react = __toESM(require("react")),
40
+ import_config = require("../config.cjs"),
41
+ import_ComponentContext = require("../contexts/ComponentContext.cjs"),
42
+ import_getSplitStyles = require("../helpers/getSplitStyles.cjs"),
43
+ import_subscribeToContextGroup = require("../helpers/subscribeToContextGroup.cjs"),
44
+ import_Stack = require("../views/Stack.cjs"),
45
+ import_useComponentState = require("./useComponentState.cjs"),
46
+ import_useMedia = require("./useMedia.cjs"),
47
+ import_useTheme = require("./useTheme.cjs");
48
+ function useProps(props, opts) {
49
+ const [propsOut, styleOut] = usePropsAndStyle(props, {
50
+ ...opts,
51
+ noExpand: !0,
52
+ noNormalize: !0,
53
+ resolveValues: "none"
54
+ });
55
+ return {
56
+ ...propsOut,
57
+ ...styleOut
58
+ };
59
+ }
60
+ function useStyle(props, opts) {
61
+ return usePropsAndStyle(props, opts)[1] || {};
62
+ }
63
+ function usePropsAndStyle(props, opts) {
64
+ const staticConfig = opts?.forComponent?.staticConfig ?? import_Stack.Stack.staticConfig,
65
+ [themeState, theme] = (0, import_useTheme.useThemeWithState)({
66
+ componentName: staticConfig.componentName,
67
+ name: "theme" in props ? props.theme : void 0,
68
+ inverse: "themeInverse" in props ? props.themeInverse : void 0
69
+ }),
70
+ componentContext = import_react.default.useContext(import_ComponentContext.ComponentContext),
71
+ {
72
+ state,
73
+ disabled,
74
+ setStateShallow
75
+ } = (0, import_useComponentState.useComponentState)(props, componentContext, staticConfig, (0, import_config.getConfig)()),
76
+ mediaState = (0, import_useMedia.useMedia)(),
77
+ splitStyles = (0, import_getSplitStyles.useSplitStyles)(props, staticConfig, theme, themeState.state?.name || "", state, {
78
+ isAnimated: !1,
79
+ mediaState,
80
+ noSkip: !0,
81
+ noMergeStyle: !0,
82
+ noClassNames: !0,
83
+ resolveValues: "auto",
84
+ ...opts
85
+ }, null, componentContext),
86
+ {
87
+ mediaGroups,
88
+ pseudoGroups
89
+ } = splitStyles;
90
+ return import_react.default.useEffect(() => {
91
+ if (!disabled) {
92
+ if (state.unmounted) {
93
+ setStateShallow({
94
+ unmounted: !1
95
+ });
96
+ return;
97
+ }
98
+ return (0, import_subscribeToContextGroup.subscribeToContextGroup)({
99
+ disabled,
100
+ componentContext,
101
+ setStateShallow,
102
+ state,
103
+ mediaGroups,
104
+ pseudoGroups
105
+ });
106
+ }
107
+ }, [disabled, pseudoGroups ? Object.keys([...pseudoGroups]).join("") : 0, mediaGroups ? Object.keys([...mediaGroups]).join("") : 0]), [splitStyles.viewProps, splitStyles.style || {}, theme, mediaState];
108
+ }
@@ -0,0 +1,277 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var useTheme_exports = {};
33
+ __export(useTheme_exports, {
34
+ activeThemeManagers: () => activeThemeManagers,
35
+ getThemeManager: () => getThemeManager,
36
+ getThemeProxied: () => getThemeProxied,
37
+ useChangeThemeEffect: () => useChangeThemeEffect,
38
+ useTheme: () => useTheme,
39
+ useThemeWithState: () => useThemeWithState
40
+ });
41
+ module.exports = __toCommonJS(useTheme_exports);
42
+ var import_react = __toESM(require("react")),
43
+ import_constants = require("@tamagui/constants"),
44
+ import_config = require("../config.cjs"),
45
+ import_createVariable = require("../createVariable.cjs"),
46
+ import_ThemeManager = require("../helpers/ThemeManager.cjs"),
47
+ import_ThemeManagerContext = require("../helpers/ThemeManagerContext.cjs"),
48
+ import_createShallowSetState = require("../helpers/createShallowSetState.cjs");
49
+ const emptyProps = {
50
+ name: null
51
+ };
52
+ let cached;
53
+ function getDefaultThemeProxied() {
54
+ if (cached) return cached;
55
+ const config = (0, import_config.getConfig)(),
56
+ name = config.themes.light ? "light" : Object.keys(config.themes)[0],
57
+ defaultTheme = config.themes[name];
58
+ return cached = getThemeProxied({
59
+ theme: defaultTheme,
60
+ name
61
+ }), cached;
62
+ }
63
+ const useTheme = (props = emptyProps) => {
64
+ const [_, theme] = useThemeWithState(props);
65
+ return theme || getDefaultThemeProxied();
66
+ },
67
+ useThemeWithState = props => {
68
+ const keys = import_react.default.useRef([]),
69
+ changedThemeState = useChangeThemeEffect(props, !1, keys.current, import_constants.isServer ? void 0 : () => {
70
+ const next = props.shouldUpdate?.() ?? (keys.current.length > 0 ? !0 : void 0);
71
+ return process.env.NODE_ENV === "development" && typeof props.debug == "string" && props.debug !== "profile" && console.info(` \u{1F3A8} useTheme() shouldUpdate? tracking keys ${keys.current.length} ${props.shouldUpdate?.()}`, next), next;
72
+ }),
73
+ {
74
+ themeManager,
75
+ state
76
+ } = changedThemeState;
77
+ process.env.NODE_ENV === "development" && (state?.theme || process.env.TAMAGUI_DISABLE_NO_THEME_WARNING !== "1" && console.error(`[tamagui] No theme found, this could be due to an invalid theme name (given theme props ${JSON.stringify(props)}).
78
+
79
+ If this is intended and you are using Tamagui without any themes, you can disable this warning by setting the environment variable TAMAGUI_DISABLE_NO_THEME_WARNING=1`));
80
+ const themeProxied = import_react.default.useMemo(() => (keys.current = [], !themeManager || !state?.theme ? {} : getThemeProxied(state, props.deopt, themeManager, keys.current, props.debug)), [state?.theme, themeManager, props.deopt, props.debug]);
81
+ return process.env.NODE_ENV === "development" && props.debug === "verbose" && (console.groupCollapsed(` \u{1F539} [${themeManager?.id}] useTheme =>`, state?.name), console.info("returning state", changedThemeState.state, changedThemeState.isNewTheme, "from props", props), console.groupEnd()), [changedThemeState, themeProxied];
82
+ };
83
+ function getThemeProxied({
84
+ theme,
85
+ name,
86
+ scheme
87
+ }, deopt = !1, themeManager, keys, debug) {
88
+ if (!theme) return {};
89
+ const config = (0, import_config.getConfig)();
90
+ function track(key) {
91
+ keys && !keys.includes(key) && (keys.length || setTimeout(() => {
92
+ themeManager?.selfUpdate();
93
+ }), keys.push(key), process.env.NODE_ENV === "development" && debug && console.info(` \u{1F3A8} useTheme() tracking new key: ${key}`));
94
+ }
95
+ return new Proxy(theme, {
96
+ has(_, key) {
97
+ if (Reflect.has(theme, key)) return !0;
98
+ if (typeof key == "string") return key[0] === "$" && (key = key.slice(1)), themeManager?.allKeys.has(key);
99
+ },
100
+ get(_, key) {
101
+ if (
102
+ // dont ask me, idk why but on hermes you can see that useTheme()[undefined] passes in STRING undefined to proxy
103
+ // if someone is crazy enough to use "undefined" as a theme key then this not working is on them
104
+ key !== "undefined" && typeof key == "string") {
105
+ const keyString = key[0] === "$" ? key.slice(1) : key,
106
+ val = theme[keyString];
107
+ if (val && typeof val == "object") return new Proxy(val, {
108
+ // when they touch the actual value we only track it
109
+ // if its a variable (web), its ignored!
110
+ get(_2, subkey) {
111
+ if (subkey === "val") globalThis.tamaguiAvoidTracking || (process.env.NODE_ENV === "development" && debug === "verbose" && console.info(" \u{1F3A8} useTheme() tracking new key because of .val access", new Error().stack), track(keyString));else if (subkey === "get") return platform => (0, import_createVariable.getVariable)(val);
112
+ return Reflect.get(val, subkey);
113
+ }
114
+ });
115
+ if (process.env.NODE_ENV === "development" && process.env.TAMAGUI_FEAT_THROW_ON_MISSING_THEME_VALUE === "1") throw new Error(`[tamagui] No theme key "${key}" found in theme ${name}.
116
+ Keys in theme: ${Object.keys(theme).join(", ")}`);
117
+ }
118
+ return Reflect.get(_, key);
119
+ }
120
+ });
121
+ }
122
+ const activeThemeManagers = /* @__PURE__ */new Set(),
123
+ _uidToManager = /* @__PURE__ */new WeakMap(),
124
+ _idToUID = {},
125
+ getId = id => _idToUID[id],
126
+ getThemeManager = id => _uidToManager.get(getId(id)),
127
+ registerThemeManager = t => {
128
+ if (!_idToUID[t.id]) {
129
+ const id = _idToUID[t.id] = {};
130
+ _uidToManager.set(id, t);
131
+ }
132
+ },
133
+ ogLog = console.error,
134
+ preventWarnSetState = process.env.NODE_ENV === "production" ? ogLog :
135
+ // temporary fix for logs, they are harmless in that i've tried to rewrite this
136
+ // a few times using the "right" ways, but they are always slower. maybe skill issue
137
+ (a, ...args) => {
138
+ if (!(typeof a == "string" && a.includes("Cannot update a component"))) return ogLog(a, ...args);
139
+ },
140
+ useChangeThemeEffect = (props, isRoot = !1, keys, shouldUpdate) => {
141
+ const {
142
+ disable
143
+ } = props,
144
+ parentManagerId = import_react.default.useContext(import_ThemeManagerContext.ThemeManagerIDContext),
145
+ parentManager = getThemeManager(parentManagerId);
146
+ if (!isRoot && !parentManager || disable) return {
147
+ isNewTheme: !1,
148
+ state: parentManager?.state,
149
+ themeManager: parentManager
150
+ };
151
+ const [themeState, setThemeState] = import_react.default.useState(createState),
152
+ {
153
+ state,
154
+ mounted,
155
+ isNewTheme,
156
+ themeManager,
157
+ inversed,
158
+ prevState
159
+ } = themeState,
160
+ isInversingOnMount = !!(!themeState.mounted && props.inverse);
161
+ function getShouldUpdateTheme(manager = themeManager, nextState, prevState2 = state, forceShouldChange = !1) {
162
+ const forceUpdate = shouldUpdate?.();
163
+ if (!manager || !forceShouldChange && forceUpdate === !1) return;
164
+ const next = nextState || manager.getState(props, parentManager);
165
+ if (forceShouldChange) return next;
166
+ if (next && !(forceUpdate !== !0 && !manager.getStateShouldChange(next, prevState2))) return next;
167
+ }
168
+ if (!import_constants.isWeb && themeManager && getShouldUpdateTheme(themeManager)) {
169
+ const next = createState(themeState);
170
+ next.state?.name !== themeState.state?.name && (setThemeState(next), console.error = preventWarnSetState, themeManager.notify(), console.error = ogLog);
171
+ }
172
+ if (import_constants.isServer || (import_react.default.useLayoutEffect(() => {
173
+ themeManager && state && prevState && state !== prevState && themeManager.notify();
174
+ }, [state]), import_react.default.useEffect(() => {
175
+ if (!themeManager) return;
176
+ if (props.inverse && !mounted) {
177
+ setThemeState(prev => createState({
178
+ ...prev,
179
+ mounted: !0
180
+ }));
181
+ return;
182
+ }
183
+ (isNewTheme || getShouldUpdateTheme(themeManager)) && (activeThemeManagers.add(themeManager), setThemeState(createState));
184
+ const selfListenerDispose = themeManager.onChangeTheme((_a, _b, forced) => {
185
+ forced && setThemeState(prev => createState(prev, forced !== "self"));
186
+ }, !0),
187
+ disposeChangeListener = parentManager?.onChangeTheme((name, manager, forced) => {
188
+ const force = forced || shouldUpdate?.() || props.deopt || void 0,
189
+ shouldTryUpdate = force ?? !!(keys?.length || isNewTheme);
190
+ process.env.NODE_ENV === "development" && props.debug === "verbose" && console.info(" \u{1F538} onChange", {
191
+ id: themeManager.id,
192
+ force,
193
+ shouldTryUpdate,
194
+ props,
195
+ name,
196
+ keys
197
+ }), shouldTryUpdate && setThemeState(prev => createState(prev, force));
198
+ }, themeManager.id);
199
+ return () => {
200
+ selfListenerDispose(), disposeChangeListener?.(), isNewTheme && activeThemeManagers.delete(themeManager);
201
+ };
202
+ }, [themeManager, parentManager, isNewTheme, props.componentName, props.inverse, props.name, props.reset, mounted]), process.env.NODE_ENV === "development" && props.debug !== "profile" && import_react.default.useEffect(() => (globalThis.TamaguiThemeManagers ??= /* @__PURE__ */new Set(), globalThis.TamaguiThemeManagers.add(themeManager), () => {
203
+ globalThis.TamaguiThemeManagers.delete(themeManager);
204
+ }), [themeManager])), import_constants.isWeb && isInversingOnMount) return {
205
+ isNewTheme: !1,
206
+ inversed: !1,
207
+ themeManager: parentManager,
208
+ state: {
209
+ name: "",
210
+ ...parentManager?.state,
211
+ className: ""
212
+ }
213
+ };
214
+ return {
215
+ state,
216
+ isNewTheme,
217
+ inversed,
218
+ themeManager
219
+ };
220
+ function createState(prev, force = !1) {
221
+ if (prev && shouldUpdate?.() === !1 && !force) return prev;
222
+ let themeManager2 = parentManager,
223
+ state2;
224
+ if ((0, import_ThemeManager.getHasThemeUpdatingProps)(props)) {
225
+ const getNewThemeManager = () => new import_ThemeManager.ThemeManager(props, isRoot ? "root" : parentManager);
226
+ if (prev?.themeManager) {
227
+ themeManager2 = prev.themeManager;
228
+ const forceChange = force || !!keys?.length,
229
+ next = themeManager2.getState(props, parentManager),
230
+ nextState = getShouldUpdateTheme(themeManager2, next, prev.state, forceChange);
231
+ nextState ? (state2 = nextState, !prev.isNewTheme && !isRoot ? themeManager2 = getNewThemeManager() : themeManager2.updateState(nextState)) : prev.isNewTheme && parentManager && !next && (themeManager2 = parentManager);
232
+ } else themeManager2 = getNewThemeManager(), state2 = {
233
+ ...themeManager2.state
234
+ };
235
+ }
236
+ const isNewTheme2 = !!(themeManager2 !== parentManager || props.inverse);
237
+ isNewTheme2 && registerThemeManager(themeManager2);
238
+ const isWebSSR = import_constants.isWeb ? !(0, import_config.getSetting)("disableSSR") : !1,
239
+ mounted2 = isWebSSR ? isRoot || prev?.mounted : !0;
240
+ state2 || (isNewTheme2 ? state2 = themeManager2.state : (state2 = parentManager.state, themeManager2 = parentManager));
241
+ const wasInversed = prev?.inversed,
242
+ isInherentlyInversed = isNewTheme2 && state2.scheme !== parentManager?.state.scheme,
243
+ inversed2 = isRoot ? !1 : isInherentlyInversed ? !0 : isWebSSR ? wasInversed != null ? !1 : null : props.inverse,
244
+ response = {
245
+ themeManager: themeManager2,
246
+ isNewTheme: isNewTheme2,
247
+ mounted: mounted2,
248
+ inversed: inversed2
249
+ },
250
+ shouldReturnPrev = prev && !force &&
251
+ // isEqualShallow uses the second arg as the keys so this should compare without state first...
252
+ (0, import_createShallowSetState.isEqualShallow)(prev, response) &&
253
+ // ... and then compare just the state, because we make a new state obj but is likely the same
254
+ (0, import_createShallowSetState.isEqualShallow)(prev.state, state2);
255
+ if (prev && shouldReturnPrev) return prev;
256
+ if (response.state = state2, response.prevState = prev?.state, process.env.NODE_ENV === "development" && props.debug && import_constants.isClient) {
257
+ console.groupCollapsed(`\u{1F537} [${themeManager2.id}] useChangeThemeEffect createState`);
258
+ const parentState = {
259
+ ...parentManager?.state
260
+ },
261
+ parentId = parentManager?.id,
262
+ themeManagerState = {
263
+ ...themeManager2.state
264
+ };
265
+ console.info({
266
+ props,
267
+ parentState,
268
+ parentId,
269
+ themeManager: themeManager2,
270
+ prev,
271
+ response,
272
+ themeManagerState
273
+ }), console.groupEnd();
274
+ }
275
+ return response;
276
+ }
277
+ };
@@ -0,0 +1,50 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var useThemeName_exports = {};
33
+ __export(useThemeName_exports, {
34
+ useThemeName: () => useThemeName
35
+ });
36
+ module.exports = __toCommonJS(useThemeName_exports);
37
+ var import_react = __toESM(require("react")),
38
+ import_constants = require("@tamagui/constants"),
39
+ import_ThemeManagerContext = require("../helpers/ThemeManagerContext.cjs"),
40
+ import_useTheme = require("./useTheme.cjs");
41
+ function useThemeName(opts) {
42
+ const manager = (0, import_useTheme.getThemeManager)(import_react.default.useContext(import_ThemeManagerContext.ThemeManagerIDContext)),
43
+ [name, setName] = import_react.default.useState(manager?.state.name || "");
44
+ return (0, import_constants.useIsomorphicLayoutEffect)(() => {
45
+ if (manager) return setName(manager.state.name), manager.onChangeTheme((next, manager2) => {
46
+ const name2 = opts?.parent && manager2.state.parentName || next;
47
+ name2 && setName(name2);
48
+ });
49
+ }, [manager?.state.name]), name;
50
+ }