@tamagui/core 1.0.1-beta.140 → 1.0.1-beta.141

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 (514) hide show
  1. package/dist/cjs/Tamagui.js +0 -0
  2. package/dist/cjs/Tamagui.js.map +0 -0
  3. package/dist/cjs/addTheme.js +0 -0
  4. package/dist/cjs/addTheme.js.map +0 -0
  5. package/dist/cjs/conf.js +0 -0
  6. package/dist/cjs/conf.js.map +0 -0
  7. package/dist/cjs/constants/constants.js +0 -0
  8. package/dist/cjs/constants/constants.js.map +0 -0
  9. package/dist/cjs/constants/platform.js +0 -0
  10. package/dist/cjs/constants/platform.js.map +0 -0
  11. package/dist/cjs/contexts/ButtonInsideButtonContext.js +0 -0
  12. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +0 -0
  13. package/dist/cjs/contexts/FontLanguageContext.js +0 -0
  14. package/dist/cjs/contexts/FontLanguageContext.js.map +0 -0
  15. package/dist/cjs/contexts/TextAncestorContext.js +0 -0
  16. package/dist/cjs/contexts/TextAncestorContext.js.map +0 -0
  17. package/dist/cjs/contexts/ThemeContext.js +0 -0
  18. package/dist/cjs/contexts/ThemeContext.js.map +0 -0
  19. package/dist/cjs/createComponent.js +6 -13
  20. package/dist/cjs/createComponent.js.map +2 -2
  21. package/dist/cjs/createFont.js +0 -0
  22. package/dist/cjs/createFont.js.map +0 -0
  23. package/dist/cjs/createShorthands.js +0 -0
  24. package/dist/cjs/createShorthands.js.map +0 -0
  25. package/dist/cjs/createTamagui.js +24 -27
  26. package/dist/cjs/createTamagui.js.map +2 -2
  27. package/dist/cjs/createTheme.js +0 -0
  28. package/dist/cjs/createTheme.js.map +0 -0
  29. package/dist/cjs/createTokens.js +0 -0
  30. package/dist/cjs/createTokens.js.map +0 -0
  31. package/dist/cjs/createVariable.js +18 -26
  32. package/dist/cjs/createVariable.js.map +2 -2
  33. package/dist/cjs/createVariables.js +0 -0
  34. package/dist/cjs/createVariables.js.map +0 -0
  35. package/dist/cjs/helpers/RNComponents.js +0 -0
  36. package/dist/cjs/helpers/RNComponents.js.map +0 -0
  37. package/dist/cjs/helpers/ThemeManager.js +0 -0
  38. package/dist/cjs/helpers/ThemeManager.js.map +0 -0
  39. package/dist/cjs/helpers/areEqualSets.js +0 -0
  40. package/dist/cjs/helpers/areEqualSets.js.map +0 -0
  41. package/dist/cjs/helpers/assignNativePropsToWeb.js +0 -0
  42. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +0 -0
  43. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +0 -0
  44. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +0 -0
  45. package/dist/cjs/helpers/calc.js +0 -0
  46. package/dist/cjs/helpers/calc.js.map +0 -0
  47. package/dist/cjs/helpers/createMediaStyle.js +0 -0
  48. package/dist/cjs/helpers/createMediaStyle.js.map +0 -0
  49. package/dist/cjs/helpers/createPropMapper.js +0 -0
  50. package/dist/cjs/helpers/createPropMapper.js.map +0 -0
  51. package/dist/cjs/helpers/createShallowUpdate.js +0 -0
  52. package/dist/cjs/helpers/createShallowUpdate.js.map +0 -0
  53. package/dist/cjs/helpers/cssHash.js +0 -0
  54. package/dist/cjs/helpers/cssHash.js.map +0 -0
  55. package/dist/cjs/helpers/expandStyle.js +0 -0
  56. package/dist/cjs/helpers/expandStyle.js.map +0 -0
  57. package/dist/cjs/helpers/expandStyles.js +0 -0
  58. package/dist/cjs/helpers/expandStyles.js.map +0 -0
  59. package/dist/cjs/helpers/extendStaticConfig.js +0 -0
  60. package/dist/cjs/helpers/extendStaticConfig.js.map +0 -0
  61. package/dist/cjs/helpers/fixNativeShadow.js +0 -0
  62. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -0
  63. package/dist/cjs/helpers/getExpandedShorthands.js +0 -0
  64. package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -0
  65. package/dist/cjs/helpers/getFont.js +0 -0
  66. package/dist/cjs/helpers/getFont.js.map +0 -0
  67. package/dist/cjs/helpers/getFontLanguage.js +0 -0
  68. package/dist/cjs/helpers/getFontLanguage.js.map +0 -0
  69. package/dist/cjs/helpers/getSize.js +0 -0
  70. package/dist/cjs/helpers/getSize.js.map +0 -0
  71. package/dist/cjs/helpers/getSplitStyles.js +0 -0
  72. package/dist/cjs/helpers/getSplitStyles.js.map +0 -0
  73. package/dist/cjs/helpers/getStackSize.js +0 -0
  74. package/dist/cjs/helpers/getStackSize.js.map +0 -0
  75. package/dist/cjs/helpers/getStylesAtomic.js +0 -0
  76. package/dist/cjs/helpers/getStylesAtomic.js.map +0 -0
  77. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -0
  78. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -0
  79. package/dist/cjs/helpers/getThemeCSSRules.js +0 -0
  80. package/dist/cjs/helpers/getThemeCSSRules.js.map +0 -0
  81. package/dist/cjs/helpers/getThemeCSSRules.native.js +0 -0
  82. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +0 -0
  83. package/dist/cjs/helpers/getVariantExtras.js +0 -0
  84. package/dist/cjs/helpers/getVariantExtras.js.map +0 -0
  85. package/dist/cjs/helpers/insertStyleRule.js +0 -0
  86. package/dist/cjs/helpers/insertStyleRule.js.map +0 -0
  87. package/dist/cjs/helpers/isObj.js +0 -0
  88. package/dist/cjs/helpers/isObj.js.map +0 -0
  89. package/dist/cjs/helpers/isTamaguiComponent.js +0 -0
  90. package/dist/cjs/helpers/isTamaguiComponent.js.map +0 -0
  91. package/dist/cjs/helpers/isTamaguiElement.js +0 -0
  92. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -0
  93. package/dist/cjs/helpers/matchMedia.js +0 -0
  94. package/dist/cjs/helpers/matchMedia.js.map +0 -0
  95. package/dist/cjs/helpers/matchMedia.native.js +0 -0
  96. package/dist/cjs/helpers/matchMedia.native.js.map +0 -0
  97. package/dist/cjs/helpers/mergeProps.js +0 -0
  98. package/dist/cjs/helpers/mergeProps.js.map +0 -0
  99. package/dist/cjs/helpers/mergeTransform.js +0 -0
  100. package/dist/cjs/helpers/mergeTransform.js.map +0 -0
  101. package/dist/cjs/helpers/normalizeColor.js +0 -0
  102. package/dist/cjs/helpers/normalizeColor.js.map +0 -0
  103. package/dist/cjs/helpers/normalizeValueWithProperty.js +0 -0
  104. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +0 -0
  105. package/dist/cjs/helpers/proxyThemeVariables.js +0 -0
  106. package/dist/cjs/helpers/proxyThemeVariables.js.map +0 -0
  107. package/dist/cjs/helpers/pseudoDescriptors.js +0 -0
  108. package/dist/cjs/helpers/pseudoDescriptors.js.map +0 -0
  109. package/dist/cjs/helpers/registerCSSVariable.js +0 -0
  110. package/dist/cjs/helpers/registerCSSVariable.js.map +2 -2
  111. package/dist/cjs/helpers/startTransition.js +0 -0
  112. package/dist/cjs/helpers/startTransition.js.map +0 -0
  113. package/dist/cjs/helpers/themeable.js +0 -0
  114. package/dist/cjs/helpers/themeable.js.map +0 -0
  115. package/dist/cjs/helpers/themes.js +0 -0
  116. package/dist/cjs/helpers/themes.js.map +0 -0
  117. package/dist/cjs/helpers/validate.js +0 -0
  118. package/dist/cjs/helpers/validate.js.map +0 -0
  119. package/dist/cjs/helpers/withStaticProperties.js +0 -0
  120. package/dist/cjs/helpers/withStaticProperties.js.map +0 -0
  121. package/dist/cjs/hooks/getThemeUnwrapped.js +0 -0
  122. package/dist/cjs/hooks/getThemeUnwrapped.js.map +0 -0
  123. package/dist/cjs/hooks/useConstant.js +3 -0
  124. package/dist/cjs/hooks/useConstant.js.map +2 -2
  125. package/dist/cjs/hooks/useFeatures.js +8 -0
  126. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  127. package/dist/cjs/hooks/useId.js +0 -0
  128. package/dist/cjs/hooks/useId.js.map +0 -0
  129. package/dist/cjs/hooks/useIsMounted.js +0 -0
  130. package/dist/cjs/hooks/useIsMounted.js.map +0 -0
  131. package/dist/cjs/hooks/useIsSSR.js +2 -2
  132. package/dist/cjs/hooks/useIsSSR.js.map +2 -2
  133. package/dist/cjs/hooks/useIsTouchDevice.js +0 -0
  134. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -0
  135. package/dist/cjs/hooks/useMedia.js +0 -0
  136. package/dist/cjs/hooks/useMedia.js.map +0 -0
  137. package/dist/cjs/hooks/usePressable.js +0 -0
  138. package/dist/cjs/hooks/usePressable.js.map +0 -0
  139. package/dist/cjs/hooks/useSafeRef.js +0 -0
  140. package/dist/cjs/hooks/useSafeRef.js.map +0 -0
  141. package/dist/cjs/hooks/useTheme.js +1 -3
  142. package/dist/cjs/hooks/useTheme.js.map +2 -2
  143. package/dist/cjs/hooks/useUnmountEffect.js +0 -0
  144. package/dist/cjs/hooks/useUnmountEffect.js.map +0 -0
  145. package/dist/cjs/index.js +1 -0
  146. package/dist/cjs/index.js.map +2 -2
  147. package/dist/cjs/insertFont.js +0 -0
  148. package/dist/cjs/insertFont.js.map +1 -1
  149. package/dist/cjs/static.js +0 -0
  150. package/dist/cjs/static.js.map +0 -0
  151. package/dist/cjs/styled.js +0 -0
  152. package/dist/cjs/styled.js.map +0 -0
  153. package/dist/cjs/types-rnw.js +0 -0
  154. package/dist/cjs/types-rnw.js.map +0 -0
  155. package/dist/cjs/types.js +0 -0
  156. package/dist/cjs/types.js.map +1 -1
  157. package/dist/cjs/updateTheme.js +0 -0
  158. package/dist/cjs/updateTheme.js.map +0 -0
  159. package/dist/cjs/vendor/Pressability.js +0 -0
  160. package/dist/cjs/vendor/Pressability.js.map +0 -0
  161. package/dist/cjs/vendor/Pressability.native.js +0 -0
  162. package/dist/cjs/vendor/Pressability.native.js.map +0 -0
  163. package/dist/cjs/views/FontLanguage.js +0 -0
  164. package/dist/cjs/views/FontLanguage.js.map +0 -0
  165. package/dist/cjs/views/FontLanguage.native.js +0 -0
  166. package/dist/cjs/views/FontLanguage.native.js.map +0 -0
  167. package/dist/cjs/views/FontLanguage.types.js +0 -0
  168. package/dist/cjs/views/FontLanguage.types.js.map +0 -0
  169. package/dist/cjs/views/Slot.js +0 -0
  170. package/dist/cjs/views/Slot.js.map +0 -0
  171. package/dist/cjs/views/Stack.js +0 -0
  172. package/dist/cjs/views/Stack.js.map +0 -0
  173. package/dist/cjs/{helpers/createTamaguiProvider.js → views/TamaguiProvider.js} +36 -37
  174. package/dist/cjs/views/TamaguiProvider.js.map +7 -0
  175. package/dist/cjs/views/Text.js +0 -0
  176. package/dist/cjs/views/Text.js.map +0 -0
  177. package/dist/cjs/views/Theme.js +4 -3
  178. package/dist/cjs/views/Theme.js.map +2 -2
  179. package/dist/cjs/views/ThemeInverse.js +0 -0
  180. package/dist/cjs/views/ThemeInverse.js.map +0 -0
  181. package/dist/cjs/views/ThemeProvider.js +2 -2
  182. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  183. package/dist/cjs/views/ThemeReset.js +0 -0
  184. package/dist/cjs/views/ThemeReset.js.map +0 -0
  185. package/dist/esm/Tamagui.js +0 -0
  186. package/dist/esm/Tamagui.js.map +0 -0
  187. package/dist/esm/addTheme.js +0 -0
  188. package/dist/esm/addTheme.js.map +0 -0
  189. package/dist/esm/conf.js +0 -0
  190. package/dist/esm/conf.js.map +0 -0
  191. package/dist/esm/constants/constants.js +0 -0
  192. package/dist/esm/constants/constants.js.map +0 -0
  193. package/dist/esm/constants/platform.js +0 -0
  194. package/dist/esm/constants/platform.js.map +0 -0
  195. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  196. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +0 -0
  197. package/dist/esm/contexts/FontLanguageContext.js +0 -0
  198. package/dist/esm/contexts/FontLanguageContext.js.map +0 -0
  199. package/dist/esm/contexts/TextAncestorContext.js +0 -0
  200. package/dist/esm/contexts/TextAncestorContext.js.map +0 -0
  201. package/dist/esm/contexts/ThemeContext.js +0 -0
  202. package/dist/esm/contexts/ThemeContext.js.map +0 -0
  203. package/dist/esm/createComponent.js +7 -14
  204. package/dist/esm/createComponent.js.map +2 -2
  205. package/dist/esm/createFont.js +0 -0
  206. package/dist/esm/createFont.js.map +0 -0
  207. package/dist/esm/createShorthands.js +0 -0
  208. package/dist/esm/createShorthands.js.map +0 -0
  209. package/dist/esm/createTamagui.js +24 -27
  210. package/dist/esm/createTamagui.js.map +2 -2
  211. package/dist/esm/createTheme.js +0 -0
  212. package/dist/esm/createTheme.js.map +0 -0
  213. package/dist/esm/createTokens.js +0 -0
  214. package/dist/esm/createTokens.js.map +0 -0
  215. package/dist/esm/createVariable.js +16 -24
  216. package/dist/esm/createVariable.js.map +2 -2
  217. package/dist/esm/createVariables.js +0 -0
  218. package/dist/esm/createVariables.js.map +0 -0
  219. package/dist/esm/helpers/RNComponents.js +0 -0
  220. package/dist/esm/helpers/RNComponents.js.map +0 -0
  221. package/dist/esm/helpers/ThemeManager.js +0 -0
  222. package/dist/esm/helpers/ThemeManager.js.map +0 -0
  223. package/dist/esm/helpers/areEqualSets.js +0 -0
  224. package/dist/esm/helpers/areEqualSets.js.map +0 -0
  225. package/dist/esm/helpers/assignNativePropsToWeb.js +0 -0
  226. package/dist/esm/helpers/assignNativePropsToWeb.js.map +0 -0
  227. package/dist/esm/helpers/assignNativePropsToWeb.native.js +0 -0
  228. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +0 -0
  229. package/dist/esm/helpers/calc.js +0 -0
  230. package/dist/esm/helpers/calc.js.map +0 -0
  231. package/dist/esm/helpers/createMediaStyle.js +0 -0
  232. package/dist/esm/helpers/createMediaStyle.js.map +0 -0
  233. package/dist/esm/helpers/createPropMapper.js +0 -0
  234. package/dist/esm/helpers/createPropMapper.js.map +0 -0
  235. package/dist/esm/helpers/createShallowUpdate.js +0 -0
  236. package/dist/esm/helpers/createShallowUpdate.js.map +0 -0
  237. package/dist/esm/helpers/cssHash.js +0 -0
  238. package/dist/esm/helpers/cssHash.js.map +0 -0
  239. package/dist/esm/helpers/expandStyle.js +0 -0
  240. package/dist/esm/helpers/expandStyle.js.map +0 -0
  241. package/dist/esm/helpers/expandStyles.js +0 -0
  242. package/dist/esm/helpers/expandStyles.js.map +0 -0
  243. package/dist/esm/helpers/extendStaticConfig.js +0 -0
  244. package/dist/esm/helpers/extendStaticConfig.js.map +0 -0
  245. package/dist/esm/helpers/fixNativeShadow.js +0 -0
  246. package/dist/esm/helpers/fixNativeShadow.js.map +0 -0
  247. package/dist/esm/helpers/getExpandedShorthands.js +0 -0
  248. package/dist/esm/helpers/getExpandedShorthands.js.map +0 -0
  249. package/dist/esm/helpers/getFont.js +0 -0
  250. package/dist/esm/helpers/getFont.js.map +0 -0
  251. package/dist/esm/helpers/getFontLanguage.js +0 -0
  252. package/dist/esm/helpers/getFontLanguage.js.map +0 -0
  253. package/dist/esm/helpers/getSize.js +0 -0
  254. package/dist/esm/helpers/getSize.js.map +0 -0
  255. package/dist/esm/helpers/getSplitStyles.js +0 -0
  256. package/dist/esm/helpers/getSplitStyles.js.map +0 -0
  257. package/dist/esm/helpers/getStackSize.js +0 -0
  258. package/dist/esm/helpers/getStackSize.js.map +0 -0
  259. package/dist/esm/helpers/getStylesAtomic.js +0 -0
  260. package/dist/esm/helpers/getStylesAtomic.js.map +0 -0
  261. package/dist/esm/helpers/getStylesAtomic.native.js +0 -0
  262. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -0
  263. package/dist/esm/helpers/getThemeCSSRules.js +0 -0
  264. package/dist/esm/helpers/getThemeCSSRules.js.map +0 -0
  265. package/dist/esm/helpers/getThemeCSSRules.native.js +0 -0
  266. package/dist/esm/helpers/getThemeCSSRules.native.js.map +0 -0
  267. package/dist/esm/helpers/getVariantExtras.js +0 -0
  268. package/dist/esm/helpers/getVariantExtras.js.map +0 -0
  269. package/dist/esm/helpers/insertStyleRule.js +0 -0
  270. package/dist/esm/helpers/insertStyleRule.js.map +0 -0
  271. package/dist/esm/helpers/isObj.js +0 -0
  272. package/dist/esm/helpers/isObj.js.map +0 -0
  273. package/dist/esm/helpers/isTamaguiComponent.js +0 -0
  274. package/dist/esm/helpers/isTamaguiComponent.js.map +0 -0
  275. package/dist/esm/helpers/isTamaguiElement.js +0 -0
  276. package/dist/esm/helpers/isTamaguiElement.js.map +0 -0
  277. package/dist/esm/helpers/matchMedia.js +0 -0
  278. package/dist/esm/helpers/matchMedia.js.map +0 -0
  279. package/dist/esm/helpers/matchMedia.native.js +0 -0
  280. package/dist/esm/helpers/matchMedia.native.js.map +0 -0
  281. package/dist/esm/helpers/mergeProps.js +0 -0
  282. package/dist/esm/helpers/mergeProps.js.map +0 -0
  283. package/dist/esm/helpers/mergeTransform.js +0 -0
  284. package/dist/esm/helpers/mergeTransform.js.map +0 -0
  285. package/dist/esm/helpers/normalizeColor.js +0 -0
  286. package/dist/esm/helpers/normalizeColor.js.map +0 -0
  287. package/dist/esm/helpers/normalizeValueWithProperty.js +0 -0
  288. package/dist/esm/helpers/normalizeValueWithProperty.js.map +0 -0
  289. package/dist/esm/helpers/proxyThemeVariables.js +0 -0
  290. package/dist/esm/helpers/proxyThemeVariables.js.map +0 -0
  291. package/dist/esm/helpers/pseudoDescriptors.js +0 -0
  292. package/dist/esm/helpers/pseudoDescriptors.js.map +0 -0
  293. package/dist/esm/helpers/registerCSSVariable.js +0 -0
  294. package/dist/esm/helpers/registerCSSVariable.js.map +2 -2
  295. package/dist/esm/helpers/startTransition.js +0 -0
  296. package/dist/esm/helpers/startTransition.js.map +0 -0
  297. package/dist/esm/helpers/themeable.js +0 -0
  298. package/dist/esm/helpers/themeable.js.map +0 -0
  299. package/dist/esm/helpers/themes.js +0 -0
  300. package/dist/esm/helpers/themes.js.map +0 -0
  301. package/dist/esm/helpers/validate.js +0 -0
  302. package/dist/esm/helpers/validate.js.map +0 -0
  303. package/dist/esm/helpers/withStaticProperties.js +0 -0
  304. package/dist/esm/helpers/withStaticProperties.js.map +0 -0
  305. package/dist/esm/hooks/getThemeUnwrapped.js +0 -0
  306. package/dist/esm/hooks/getThemeUnwrapped.js.map +0 -0
  307. package/dist/esm/hooks/useConstant.js +4 -1
  308. package/dist/esm/hooks/useConstant.js.map +2 -2
  309. package/dist/esm/hooks/useFeatures.js +8 -0
  310. package/dist/esm/hooks/useFeatures.js.map +2 -2
  311. package/dist/esm/hooks/useId.js +0 -0
  312. package/dist/esm/hooks/useId.js.map +0 -0
  313. package/dist/esm/hooks/useIsMounted.js +0 -0
  314. package/dist/esm/hooks/useIsMounted.js.map +0 -0
  315. package/dist/esm/hooks/useIsSSR.js +4 -4
  316. package/dist/esm/hooks/useIsSSR.js.map +2 -2
  317. package/dist/esm/hooks/useIsTouchDevice.js +0 -0
  318. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -0
  319. package/dist/esm/hooks/useMedia.js +0 -0
  320. package/dist/esm/hooks/useMedia.js.map +0 -0
  321. package/dist/esm/hooks/usePressable.js +0 -0
  322. package/dist/esm/hooks/usePressable.js.map +0 -0
  323. package/dist/esm/hooks/useSafeRef.js +0 -0
  324. package/dist/esm/hooks/useSafeRef.js.map +0 -0
  325. package/dist/esm/hooks/useTheme.js +2 -4
  326. package/dist/esm/hooks/useTheme.js.map +2 -2
  327. package/dist/esm/hooks/useUnmountEffect.js +0 -0
  328. package/dist/esm/hooks/useUnmountEffect.js.map +0 -0
  329. package/dist/esm/index.js +1 -0
  330. package/dist/esm/index.js.map +2 -2
  331. package/dist/esm/insertFont.js +0 -0
  332. package/dist/esm/insertFont.js.map +1 -1
  333. package/dist/esm/static.js +0 -0
  334. package/dist/esm/static.js.map +0 -0
  335. package/dist/esm/styled.js +0 -0
  336. package/dist/esm/styled.js.map +0 -0
  337. package/dist/esm/types-rnw.js +0 -0
  338. package/dist/esm/types-rnw.js.map +0 -0
  339. package/dist/esm/types.js +0 -0
  340. package/dist/esm/types.js.map +0 -0
  341. package/dist/esm/updateTheme.js +0 -0
  342. package/dist/esm/updateTheme.js.map +0 -0
  343. package/dist/esm/vendor/Pressability.js +0 -0
  344. package/dist/esm/vendor/Pressability.js.map +0 -0
  345. package/dist/esm/vendor/Pressability.native.js +0 -0
  346. package/dist/esm/vendor/Pressability.native.js.map +0 -0
  347. package/dist/esm/views/FontLanguage.js +0 -0
  348. package/dist/esm/views/FontLanguage.js.map +0 -0
  349. package/dist/esm/views/FontLanguage.native.js +0 -0
  350. package/dist/esm/views/FontLanguage.native.js.map +0 -0
  351. package/dist/esm/views/FontLanguage.types.js +0 -0
  352. package/dist/esm/views/FontLanguage.types.js.map +0 -0
  353. package/dist/esm/views/Slot.js +0 -0
  354. package/dist/esm/views/Slot.js.map +0 -0
  355. package/dist/esm/views/Stack.js +0 -0
  356. package/dist/esm/views/Stack.js.map +0 -0
  357. package/dist/esm/views/TamaguiProvider.js +41 -0
  358. package/dist/esm/views/TamaguiProvider.js.map +7 -0
  359. package/dist/esm/views/Text.js +0 -0
  360. package/dist/esm/views/Text.js.map +0 -0
  361. package/dist/esm/views/Theme.js +4 -3
  362. package/dist/esm/views/Theme.js.map +2 -2
  363. package/dist/esm/views/ThemeInverse.js +0 -0
  364. package/dist/esm/views/ThemeInverse.js.map +0 -0
  365. package/dist/esm/views/ThemeProvider.js +2 -2
  366. package/dist/esm/views/ThemeProvider.js.map +2 -2
  367. package/dist/esm/views/ThemeReset.js +0 -0
  368. package/dist/esm/views/ThemeReset.js.map +0 -0
  369. package/package.json +9 -8
  370. package/src/Tamagui.ts +44 -0
  371. package/src/addTheme.ts +54 -0
  372. package/src/conf.ts +34 -0
  373. package/src/constants/constants.ts +15 -0
  374. package/src/constants/platform.ts +13 -0
  375. package/src/contexts/ButtonInsideButtonContext.tsx +3 -0
  376. package/src/contexts/FontLanguageContext.tsx +5 -0
  377. package/src/contexts/TextAncestorContext.tsx +10 -0
  378. package/src/contexts/ThemeContext.tsx +5 -0
  379. package/src/createComponent.tsx +1322 -0
  380. package/src/createFont.ts +26 -0
  381. package/src/createShorthands.ts +5 -0
  382. package/src/createTamagui.ts +226 -0
  383. package/src/createTheme.ts +13 -0
  384. package/src/createTokens.ts +35 -0
  385. package/src/createVariable.ts +94 -0
  386. package/src/createVariables.ts +39 -0
  387. package/src/helpers/RNComponents.tsx +14 -0
  388. package/src/helpers/ThemeManager.tsx +226 -0
  389. package/src/helpers/areEqualSets.tsx +9 -0
  390. package/src/helpers/assignNativePropsToWeb.native.tsx +1 -0
  391. package/src/helpers/assignNativePropsToWeb.tsx +179 -0
  392. package/src/helpers/calc.ts +65 -0
  393. package/src/helpers/createMediaStyle.ts +48 -0
  394. package/src/helpers/createPropMapper.ts +457 -0
  395. package/src/helpers/createShallowUpdate.tsx +20 -0
  396. package/src/helpers/cssHash.ts +28 -0
  397. package/src/helpers/expandStyle.ts +81 -0
  398. package/src/helpers/expandStyles.ts +104 -0
  399. package/src/helpers/extendStaticConfig.ts +76 -0
  400. package/src/helpers/fixNativeShadow.tsx +2 -0
  401. package/src/helpers/getExpandedShorthands.ts +15 -0
  402. package/src/helpers/getFont.tsx +40 -0
  403. package/src/helpers/getFontLanguage.ts +2 -0
  404. package/src/helpers/getSize.ts +22 -0
  405. package/src/helpers/getSplitStyles.tsx +686 -0
  406. package/src/helpers/getStackSize.ts +22 -0
  407. package/src/helpers/getStylesAtomic.native.ts +3 -0
  408. package/src/helpers/getStylesAtomic.ts +289 -0
  409. package/src/helpers/getThemeCSSRules.native.ts +3 -0
  410. package/src/helpers/getThemeCSSRules.ts +105 -0
  411. package/src/helpers/getVariantExtras.tsx +83 -0
  412. package/src/helpers/insertStyleRule.tsx +150 -0
  413. package/src/helpers/isObj.ts +1 -0
  414. package/src/helpers/isTamaguiComponent.tsx +15 -0
  415. package/src/helpers/isTamaguiElement.tsx +14 -0
  416. package/src/helpers/matchMedia.native.ts +6 -0
  417. package/src/helpers/matchMedia.ts +16 -0
  418. package/src/helpers/mergeProps.ts +56 -0
  419. package/src/helpers/mergeTransform.ts +14 -0
  420. package/src/helpers/normalizeColor.ts +53 -0
  421. package/src/helpers/normalizeValueWithProperty.ts +76 -0
  422. package/src/helpers/proxyThemeVariables.tsx +13 -0
  423. package/src/helpers/pseudoDescriptors.ts +18 -0
  424. package/src/helpers/registerCSSVariable.ts +11 -0
  425. package/src/helpers/startTransition.ts +4 -0
  426. package/src/helpers/themeable.tsx +45 -0
  427. package/src/helpers/themes.ts +69 -0
  428. package/src/helpers/validate.ts +80 -0
  429. package/src/helpers/withStaticProperties.tsx +7 -0
  430. package/src/hooks/getThemeUnwrapped.tsx +7 -0
  431. package/src/hooks/useConstant.tsx +19 -0
  432. package/src/hooks/useFeatures.tsx +288 -0
  433. package/src/hooks/useId.tsx +1 -0
  434. package/src/hooks/useIsMounted.ts +17 -0
  435. package/src/hooks/useIsSSR.tsx +20 -0
  436. package/src/hooks/useIsTouchDevice.tsx +21 -0
  437. package/src/hooks/useMedia.tsx +167 -0
  438. package/src/hooks/usePressable.tsx +9 -0
  439. package/src/hooks/useSafeRef.ts +50 -0
  440. package/src/hooks/useTheme.tsx +218 -0
  441. package/src/hooks/useUnmountEffect.ts +5 -0
  442. package/src/index.ts +79 -0
  443. package/src/insertFont.ts +69 -0
  444. package/src/static.ts +15 -0
  445. package/src/styled.tsx +135 -0
  446. package/src/types-rnw.tsx +162 -0
  447. package/src/types.tsx +1234 -0
  448. package/src/updateTheme.ts +23 -0
  449. package/src/vendor/Pressability.native.tsx +3 -0
  450. package/src/vendor/Pressability.tsx +2 -0
  451. package/src/views/FontLanguage.native.tsx +9 -0
  452. package/src/views/FontLanguage.tsx +18 -0
  453. package/src/views/FontLanguage.types.ts +13 -0
  454. package/src/views/Slot.tsx +152 -0
  455. package/src/views/Stack.tsx +24 -0
  456. package/src/views/TamaguiProvider.tsx +50 -0
  457. package/src/views/Text.tsx +79 -0
  458. package/src/views/Theme.tsx +72 -0
  459. package/src/views/ThemeInverse.tsx +33 -0
  460. package/src/views/ThemeProvider.tsx +59 -0
  461. package/src/views/ThemeReset.tsx +43 -0
  462. package/types/conf.d.ts +1 -1
  463. package/types/constants/platform.d.ts +2 -2
  464. package/types/createTamagui.d.ts +1 -1
  465. package/types/createTheme.d.ts +1 -1
  466. package/types/createVariable.d.ts +16 -12
  467. package/types/helpers/registerCSSVariable.d.ts +2 -2
  468. package/types/index.d.ts +1 -0
  469. package/types/types.d.ts +1 -1
  470. package/types/views/TamaguiProvider.d.ts +4 -0
  471. package/dist/cjs/Pressability.js +0 -32
  472. package/dist/cjs/Pressability.js.map +0 -7
  473. package/dist/cjs/Pressability.native.js +0 -32
  474. package/dist/cjs/Pressability.native.js.map +0 -7
  475. package/dist/cjs/ThemeContext.js +0 -30
  476. package/dist/cjs/ThemeContext.js.map +0 -7
  477. package/dist/cjs/ThemeManager.js +0 -211
  478. package/dist/cjs/ThemeManager.js.map +0 -7
  479. package/dist/cjs/defaultComponentState.js +0 -2
  480. package/dist/cjs/defaultComponentState.js.map +0 -7
  481. package/dist/cjs/ensureThemeVariable.js +0 -152
  482. package/dist/cjs/ensureThemeVariable.js.map +0 -7
  483. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  484. package/dist/cjs/helpers/ensureThemeVariable.js +0 -152
  485. package/dist/cjs/helpers/ensureThemeVariable.js.map +0 -7
  486. package/dist/cjs/helpers/nativeGestureHandler.native.js +0 -19
  487. package/dist/cjs/helpers/nativeGestureHandler.native.js.map +0 -7
  488. package/dist/cjs/loadTheme.js +0 -64
  489. package/dist/cjs/loadTheme.js.map +0 -7
  490. package/dist/cjs/views/TextAncestorContext.js +0 -44
  491. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  492. package/dist/esm/Pressability.js +0 -7
  493. package/dist/esm/Pressability.js.map +0 -7
  494. package/dist/esm/Pressability.native.js +0 -7
  495. package/dist/esm/Pressability.native.js.map +0 -7
  496. package/dist/esm/ThemeContext.js +0 -6
  497. package/dist/esm/ThemeContext.js.map +0 -7
  498. package/dist/esm/ThemeManager.js +0 -185
  499. package/dist/esm/ThemeManager.js.map +0 -7
  500. package/dist/esm/defaultComponentState.js +0 -1
  501. package/dist/esm/defaultComponentState.js.map +0 -7
  502. package/dist/esm/ensureThemeVariable.js +0 -125
  503. package/dist/esm/ensureThemeVariable.js.map +0 -7
  504. package/dist/esm/helpers/createTamaguiProvider.js +0 -42
  505. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  506. package/dist/esm/helpers/ensureThemeVariable.js +0 -125
  507. package/dist/esm/helpers/ensureThemeVariable.js.map +0 -7
  508. package/dist/esm/helpers/nativeGestureHandler.native.js +0 -2
  509. package/dist/esm/helpers/nativeGestureHandler.native.js.map +0 -7
  510. package/dist/esm/loadTheme.js +0 -40
  511. package/dist/esm/loadTheme.js.map +0 -7
  512. package/dist/esm/views/TextAncestorContext.js +0 -15
  513. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  514. package/types/helpers/createTamaguiProvider.d.ts +0 -3
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createVariable.ts"],
4
- "sourcesContent": ["import { isWeb } from './constants/platform'\n\nconst IS_VARIABLE_SYMBOL = '__isVariable__'\n\ntype VariableIn<A extends string | number = any> = {\n val: A\n name: string\n key: string\n isFloating?: boolean\n}\n\nexport class Variable<A extends string | number = any> {\n // because we have a separate node runtime we can't do instanceof\n // ran into issues with this and it's potentially fixable but for now\n // lets just do this\n [IS_VARIABLE_SYMBOL] = true\n\n // original key => in themes maps to the base variable key\n key: string\n\n // CSS name => in themes generic\n name: string\n\n // value\n val: A\n\n // full CSS variable using name\n variable: string\n\n isFloating = false\n\n constructor(props: VariableIn) {\n const { val, name, key, isFloating } = props\n // converting to px breaks rn\n this.val = isVariable(val) ? val.val : val\n this.name = name\n this.key = key\n this.variable = isWeb ? createCSSVariable(name) : ''\n if (isFloating) {\n this.isFloating = true\n }\n }\n\n toString() {\n return `${isWeb ? this.variable : this.val}`\n }\n}\n\nexport const createVariable = <A extends string | number = any>(props: VariableIn<A>) => {\n if (isVariable(props)) {\n return props\n }\n return new Variable<A>(props)\n}\n\nexport function isVariable(v: Variable | any): v is Variable {\n return !!(v instanceof Variable || (v && v[IS_VARIABLE_SYMBOL]))\n}\n\nexport function getVariableValue(v: Variable | any) {\n if (isVariable(v)) return v.val\n return v\n}\n\nexport function getVariableName(v: Variable | any) {\n if (isVariable(v)) return v.name\n return v\n}\n\nexport function getVariableVariable(v: Variable | any) {\n if (isVariable(v)) return v.variable\n return v\n}\n\n// bugfix { space: { 0.5: 10 } } was generating var(--space-0.5) (invalid CSS):\nexport const createCSSVariable = (nameProp: string, includeVar = true) => {\n if (process.env.NODE_ENV === 'development') {\n if (!nameProp || typeof nameProp !== 'string') {\n console.trace('createCSSVariable invalid name', nameProp)\n return ``\n }\n }\n let name = ''\n for (let i = 0; i < nameProp.length; i++) {\n const code = nameProp.charCodeAt(i)\n if (\n // A-Z\n (code >= 65 && code <= 90) ||\n // a-z\n (code >= 97 && code <= 122) ||\n // _\n code == 95 ||\n // -\n code === 45 ||\n // 0-9\n (code >= 48 && code <= 57)\n ) {\n name += nameProp[i]\n } else {\n // allow any name but turn it into a stringified num\n name += `-c${code}-`\n }\n }\n return includeVar ? `var(--${name})` : name\n}\n"],
5
- "mappings": "AAAA;AAAA;AAEA,MAAM,qBAAqB;AASpB,MAAM,SAA0C;AAAA,EAoBrD,YAAY,OAAmB;AAhB/B,SAAC,MAAsB;AAcvB,sBAAa;AAGX,UAAM,EAAE,KAAK,MAAM,KAAK,eAAe;AAEvC,SAAK,MAAM,WAAW,GAAG,IAAI,IAAI,MAAM;AACvC,SAAK,OAAO;AACZ,SAAK,MAAM;AACX,SAAK,WAAW,QAAQ,kBAAkB,IAAI,IAAI;AAClD,QAAI,YAAY;AACd,WAAK,aAAa;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,WAAW;AACT,WAAO,GAAG,QAAQ,KAAK,WAAW,KAAK;AAAA,EACzC;AACF;AA9CA,AAeG;AAiCI,MAAM,iBAAiB,CAAkC,UAAyB;AACvF,MAAI,WAAW,KAAK,GAAG;AACrB,WAAO;AAAA,EACT;AACA,SAAO,IAAI,SAAY,KAAK;AAC9B;AAEO,oBAAoB,GAAkC;AAC3D,SAAO,CAAC,CAAE,cAAa,YAAa,KAAK,EAAE;AAC7C;AAEO,0BAA0B,GAAmB;AAClD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAEO,yBAAyB,GAAmB;AACjD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAEO,6BAA6B,GAAmB;AACrD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAGO,MAAM,oBAAoB,CAAC,UAAkB,aAAa,SAAS;AACxE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC,YAAY,OAAO,aAAa,UAAU;AAC7C,cAAQ,MAAM,kCAAkC,QAAQ;AACxD,aAAO;AAAA,IACT;AAAA,EACF;AACA,MAAI,OAAO;AACX,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,UAAM,OAAO,SAAS,WAAW,CAAC;AAClC,QAEG,QAAQ,MAAM,QAAQ,MAEtB,QAAQ,MAAM,QAAQ,OAEvB,QAAQ,MAER,SAAS,MAER,QAAQ,MAAM,QAAQ,IACvB;AACA,cAAQ,SAAS;AAAA,IACnB,OAAO;AAEL,cAAQ,KAAK;AAAA,IACf;AAAA,EACF;AACA,SAAO,aAAa,SAAS,UAAU;AACzC;",
4
+ "sourcesContent": ["import { isWeb } from './constants/platform'\nimport { VariableColorVal } from './types'\n\n/**\n * Should rename this to Token\n * Moving to objects for React Server Components support\n */\n\nconst IS_VAR = '__isVar__'\n\nexport type VariableValue = string | number\n\ntype VariableIn<A extends VariableValue = VariableValue> = {\n val: A\n name: string\n key: string\n isFloating?: boolean\n}\n\nexport type Variable<A extends VariableValue = VariableValue> = VariableIn<A> & {\n [IS_VAR]?: true\n variable?: string\n}\n\nexport const createVariable = <A extends string | number = any>(props: VariableIn<A>) => {\n if (isVariable(props)) {\n return props\n }\n return {\n [IS_VAR]: true,\n // @ts-ignore\n ...props,\n variable: isWeb ? createCSSVariable(props.name) : '',\n }\n}\n\n// on the client maybe we can change the prototype of variable object toString to keep backwards compat\nexport function variableToString(vrble?: Variable | VariableColorVal) {\n if (!vrble) return ''\n if (typeof vrble === 'string') return vrble\n return `${isWeb ? vrble.variable : vrble.val}`\n}\n\nexport function isVariable(v: Variable | any): v is Variable {\n return !!(v && v[IS_VAR])\n}\n\nexport function getVariableValue(v: Variable | any) {\n if (isVariable(v)) return v.val\n return v\n}\n\nexport function getVariableName(v: Variable | any) {\n if (isVariable(v)) return v.name\n return v\n}\n\nexport function getVariableVariable(v: Variable | any) {\n if (isVariable(v)) return v.variable\n return v\n}\n\n// bugfix { space: { 0.5: 10 } } was generating var(--space-0.5) (invalid CSS):\nexport const createCSSVariable = (nameProp: string, includeVar = true) => {\n if (process.env.NODE_ENV === 'development') {\n if (!nameProp || typeof nameProp !== 'string') {\n // eslint-disable-next-line no-console\n console.trace('createCSSVariable invalid name', nameProp)\n return ``\n }\n }\n let name = ''\n for (let i = 0; i < nameProp.length; i++) {\n const code = nameProp.charCodeAt(i)\n if (\n // A-Z\n (code >= 65 && code <= 90) ||\n // a-z\n (code >= 97 && code <= 122) ||\n // _\n code == 95 ||\n // -\n code === 45 ||\n // 0-9\n (code >= 48 && code <= 57)\n ) {\n name += nameProp[i]\n } else {\n // allow any name but turn it into a stringified num\n name += `-c${code}-`\n }\n }\n return includeVar ? `var(--${name})` : name\n}\n"],
5
+ "mappings": "AAAA;AAQA,MAAM,SAAS;AAgBR,MAAM,iBAAiB,CAAkC,UAAyB;AACvF,MAAI,WAAW,KAAK,GAAG;AACrB,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,CAAC,SAAS;AAAA,IAEV,GAAG;AAAA,IACH,UAAU,QAAQ,kBAAkB,MAAM,IAAI,IAAI;AAAA,EACpD;AACF;AAGO,0BAA0B,OAAqC;AACpE,MAAI,CAAC;AAAO,WAAO;AACnB,MAAI,OAAO,UAAU;AAAU,WAAO;AACtC,SAAO,GAAG,QAAQ,MAAM,WAAW,MAAM;AAC3C;AAEO,oBAAoB,GAAkC;AAC3D,SAAO,CAAC,CAAE,MAAK,EAAE;AACnB;AAEO,0BAA0B,GAAmB;AAClD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAEO,yBAAyB,GAAmB;AACjD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAEO,6BAA6B,GAAmB;AACrD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAGO,MAAM,oBAAoB,CAAC,UAAkB,aAAa,SAAS;AACxE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC,YAAY,OAAO,aAAa,UAAU;AAE7C,cAAQ,MAAM,kCAAkC,QAAQ;AACxD,aAAO;AAAA,IACT;AAAA,EACF;AACA,MAAI,OAAO;AACX,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,UAAM,OAAO,SAAS,WAAW,CAAC;AAClC,QAEG,QAAQ,MAAM,QAAQ,MAEtB,QAAQ,MAAM,QAAQ,OAEvB,QAAQ,MAER,SAAS,MAER,QAAQ,MAAM,QAAQ,IACvB;AACA,cAAQ,SAAS;AAAA,IACnB,OAAO;AAEL,cAAQ,KAAK;AAAA,IACf;AAAA,EACF;AACA,SAAO,aAAa,SAAS,UAAU;AACzC;",
6
6
  "names": []
7
7
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/registerCSSVariable.ts"],
4
- "sourcesContent": ["import { Variable, createCSSVariable } from '../createVariable'\n\nexport const registerCSSVariable = (v: Variable) => {\n tokensValueToVariable.set(v.val, v)\n}\n\nexport const variableToCSS = (v: Variable) => {\n return `--${createCSSVariable(v.name, false)}:${typeof v.val === 'number' ? `${v.val}px` : v.val}`\n}\n\nexport const tokensValueToVariable = new Map<string, Variable>()\n"],
5
- "mappings": "AAAA;AAEO,MAAM,sBAAsB,CAAC,MAAgB;AAClD,wBAAsB,IAAI,EAAE,KAAK,CAAC;AACpC;AAEO,MAAM,gBAAgB,CAAC,MAAgB;AAC5C,SAAO,KAAK,kBAAkB,EAAE,MAAM,KAAK,KAAK,OAAO,EAAE,QAAQ,WAAW,GAAG,EAAE,UAAU,EAAE;AAC/F;AAEO,MAAM,wBAAwB,oBAAI,IAAsB;",
4
+ "sourcesContent": ["import { Variable, VariableValue, createCSSVariable } from '../createVariable'\n\nexport const registerCSSVariable = (v: Variable) => {\n tokensValueToVariable.set(v.val, v)\n}\n\nexport const variableToCSS = (v: Variable) => {\n return `--${createCSSVariable(v.name, false)}:${typeof v.val === 'number' ? `${v.val}px` : v.val}`\n}\n\nexport const tokensValueToVariable = new Map<VariableValue, any>()\n"],
5
+ "mappings": "AAAA;AAEO,MAAM,sBAAsB,CAAC,MAAgB;AAClD,wBAAsB,IAAI,EAAE,KAAK,CAAC;AACpC;AAEO,MAAM,gBAAgB,CAAC,MAAgB;AAC5C,SAAO,KAAK,kBAAkB,EAAE,MAAM,KAAK,KAAK,OAAO,EAAE,QAAQ,WAAW,GAAG,EAAE,UAAU,EAAE;AAC/F;AAEO,MAAM,wBAAwB,oBAAI,IAAwB;",
6
6
  "names": []
7
7
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,5 +1,8 @@
1
- import { useRef } from "react";
1
+ import { useMemo, useRef } from "react";
2
2
  function useConstant(fn) {
3
+ if (typeof document === "undefined") {
4
+ return useMemo(() => fn(), []);
5
+ }
3
6
  const ref = useRef();
4
7
  if (!ref.current) {
5
8
  ref.current = { v: fn() };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useConstant.tsx"],
4
- "sourcesContent": ["import { useRef } from 'react'\n\ntype ResultBox<T> = { v: T }\nexport function useConstant<T>(fn: () => T): T {\n const ref = useRef<ResultBox<T>>()\n if (!ref.current) {\n ref.current = { v: fn() }\n }\n return ref.current.v\n}\n"],
5
- "mappings": "AAAA;AAGO,qBAAwB,IAAgB;AAC7C,QAAM,MAAM,OAAqB;AACjC,MAAI,CAAC,IAAI,SAAS;AAChB,QAAI,UAAU,EAAE,GAAG,GAAG,EAAE;AAAA,EAC1B;AACA,SAAO,IAAI,QAAQ;AACrB;",
4
+ "sourcesContent": ["import { useMemo, useRef } from 'react'\n\ntype ResultBox<T> = { v: T }\n\nexport function useConstant<T>(fn: () => T): T {\n // RSC compat\n if (typeof document === 'undefined') {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => fn(), [])\n }\n\n const ref = useRef<ResultBox<T>>()\n\n if (!ref.current) {\n ref.current = { v: fn() }\n }\n\n return ref.current.v\n}\n"],
5
+ "mappings": "AAAA;AAIO,qBAAwB,IAAgB;AAE7C,MAAI,OAAO,aAAa,aAAa;AAEnC,WAAO,QAAQ,MAAM,GAAG,GAAG,CAAC,CAAC;AAAA,EAC/B;AAEA,QAAM,MAAM,OAAqB;AAEjC,MAAI,CAAC,IAAI,SAAS;AAChB,QAAI,UAAU,EAAE,GAAG,GAAG,EAAE;AAAA,EAC1B;AAEA,SAAO,IAAI,QAAQ;AACrB;",
6
6
  "names": []
7
7
  }
@@ -75,6 +75,11 @@ function loadAnimationFeature() {
75
75
  state.focus && pseudos.focusStyle && merge(style, pseudos.focusStyle);
76
76
  state.press && pseudos.pressStyle && merge(style, pseudos.pressStyle);
77
77
  exitStyle && merge(style, exitStyle);
78
+ if (process.env.NODE_ENV === "development") {
79
+ if (props["debug"]) {
80
+ console.log("animation style", style);
81
+ }
82
+ }
78
83
  return style;
79
84
  }
80
85
  });
@@ -111,6 +116,9 @@ function ensureBaseHasDefaults(base, ...pseudos) {
111
116
  for (const key in pseudo) {
112
117
  const val = pseudo[key];
113
118
  if (key === "transform") {
119
+ if (typeof val === "string") {
120
+ continue;
121
+ }
114
122
  for (const t of val) {
115
123
  const tkey = Object.keys(t)[0];
116
124
  const defaultVal = defaults[tkey];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useFeatures.tsx"],
4
- "sourcesContent": ["import React from 'react'\nimport { RefObject } from 'react'\nimport { View, ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getSubStyle } from '../helpers/getSplitStyles'\nimport {\n PseudoStyles,\n SplitStyleState,\n StaticConfigParsed,\n TamaguiComponentState,\n TamaguiInternalConfig,\n UseAnimationHook,\n UseAnimationProps,\n} from '../types'\nimport { addMediaQueryListener, mediaState, removeMediaQueryListener } from './useMedia'\n\ntype FeatureDefinition = {\n isEnabled: (props: any) => boolean\n Component: any\n}\n\ntype FeatureUtils = {\n forceUpdate: Function\n state: SplitStyleState\n setStateShallow: (next: Partial<TamaguiComponentState>) => void\n useAnimations?: UseAnimationHook\n pseudos: PseudoStyles\n style: ViewStyle | null | undefined\n staticConfig: StaticConfigParsed\n theme: any\n onDidAnimate?: () => void\n hostRef: RefObject<HTMLElement | View>\n}\n\nconst createDefinition = ({\n Component,\n propNames,\n}: {\n Component: (props: { _utils: FeatureUtils; [key: string]: any }) => void\n propNames: string[]\n}): FeatureDefinition => ({\n isEnabled: (props: any) => propNames.some((name) => !!props[name]),\n Component,\n})\n\nlet featureDefinitions: Record<string, FeatureDefinition> | null = null\nlet tamaguiConfig: TamaguiInternalConfig\n\ntype FeatureKeys = keyof ReturnType<typeof loadFeatures>\n\nexport const useFeatures = (props: any, utils?: FeatureUtils) => {\n if (!featureDefinitions) {\n featureDefinitions = loadFeatures()\n }\n const elements: JSX.Element[] = []\n const enabled: { [key in FeatureKeys]?: boolean } = {}\n for (const name in featureDefinitions) {\n const { isEnabled, Component } = featureDefinitions[name]\n if (isEnabled(props) && Component) {\n enabled[name] = true\n elements.push(<Component key={name} {...props} _utils={utils} />)\n }\n }\n return {\n elements,\n enabled,\n }\n}\n\nfunction loadFeatures() {\n return {\n // loads animations and sets state with the results\n animation: loadAnimationFeature(),\n\n // will update the parent whenever media query changes\n // no need on web, media queries are inserted and run in css\n mediaQuery: loadMediaQueryFeature(),\n } as const\n}\n\nfunction loadAnimationFeature() {\n tamaguiConfig = tamaguiConfig || getConfig()\n\n return createDefinition({\n Component: ({ _utils, ...props }) => {\n const {\n state,\n useAnimations,\n pseudos,\n style: inStyle,\n setStateShallow,\n staticConfig,\n theme,\n onDidAnimate,\n } = _utils\n\n if (!useAnimations) {\n console.error('no useAnimations hook provided')\n return null\n }\n\n // we always have .animation set\n const propsWithAnimation = props as UseAnimationProps\n\n const res = useAnimations(propsWithAnimation, {\n state,\n pseudos,\n onDidAnimate,\n staticConfig,\n getStyle({ isExiting, isEntering, exitVariant, enterVariant } = {}) {\n // we have to merge such that transforms keys all exist\n const style = inStyle || {}\n\n const enterStyle = isEntering\n ? enterVariant && staticConfig.variants?.[enterVariant]['true']\n ? getSubStyle(\n '',\n staticConfig.variants?.[enterVariant]['true'],\n staticConfig,\n theme,\n props,\n state,\n tamaguiConfig\n ) || pseudos.enterStyle\n : null || pseudos.enterStyle\n : null\n\n const exitStyle = isExiting\n ? exitVariant && staticConfig.variants?.[exitVariant]['true']\n ? getSubStyle(\n '',\n staticConfig.variants?.[exitVariant]['true'],\n staticConfig,\n theme,\n props,\n state,\n tamaguiConfig\n ) || pseudos.exitStyle\n : null || pseudos.exitStyle\n : null\n\n // if you have hoverStyle={{ scale: 1.1 }} and don't have scale set on the base style\n // no animation will run! this is really confusing. this will look at all variants,\n // and fill in base styles if they don't exist. eg:\n // input:\n // base: {}\n // hoverStyle: { scale: 2 }\n // enterStyle: { x: 100 }\n // output:\n // base: { x: 0, scale: 1 }\n ensureBaseHasDefaults(\n style,\n enterStyle,\n pseudos.hoverStyle,\n pseudos.focusStyle,\n pseudos.pressStyle,\n pseudos.pressStyle\n )\n\n enterStyle && merge(style, enterStyle)\n state.hover && pseudos.hoverStyle && merge(style, pseudos.hoverStyle)\n state.focus && pseudos.focusStyle && merge(style, pseudos.focusStyle)\n state.press && pseudos.pressStyle && merge(style, pseudos.pressStyle)\n exitStyle && merge(style, exitStyle)\n\n return style\n },\n //, delay\n })\n\n useIsomorphicLayoutEffect(() => {\n setStateShallow({\n animation: res,\n })\n }, [res])\n\n return null\n },\n propNames: ['animation'],\n })\n}\n\nconst defaults = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n opacity: 1,\n translateX: 0,\n translateY: 0,\n skew: 0,\n skewX: 0,\n skewY: 0,\n scale: 1,\n rotate: '0deg',\n rotateY: '0deg',\n rotateX: '0deg',\n}\n\nfunction ensureBaseHasDefaults(base: ViewStyle, ...pseudos: (ViewStyle | null | undefined)[]) {\n for (const pseudo of pseudos) {\n if (!pseudo) continue\n for (const key in pseudo) {\n const val = pseudo[key]\n if (key === 'transform') {\n for (const t of val) {\n const tkey = Object.keys(t)[0]\n const defaultVal = defaults[tkey]\n const tDefaultVal = { [tkey]: defaultVal } as any\n if (!base.transform) {\n base.transform = [tDefaultVal]\n } else {\n if (!base.transform.find((x) => x[tkey])) {\n base.transform.push(tDefaultVal)\n }\n }\n }\n } else {\n if (!(key in base)) {\n base[key] = defaults[key]\n }\n }\n }\n }\n}\n\nfunction merge(base: ViewStyle, next: ViewStyle) {\n if (!next.transform || !base.transform) {\n Object.assign(base, next)\n return\n }\n const { transform, ...rest } = next\n Object.assign(base, rest)\n for (const t of transform) {\n const key = Object.keys(t)[0]\n const existing = base.transform.find((x) => key in x)\n if (existing) {\n existing[key] = t[key]\n } else {\n base.transform.push(t)\n }\n }\n}\n\nfunction loadMediaQueryFeature() {\n const mediaPropNames = Object.keys(mediaState)\n\n return createDefinition({\n Component: (props: any) => {\n const mediaKeys = mediaPropNames.filter((x) => x in props)\n\n useIsomorphicLayoutEffect(() => {\n for (const key of mediaKeys) {\n addMediaQueryListener(key, props._utils.forceUpdate)\n }\n return () => {\n for (const key of mediaKeys) {\n removeMediaQueryListener(key, props._utils.forceUpdate)\n }\n }\n }, [mediaKeys.join(',')])\n\n return null\n },\n propNames: mediaPropNames,\n })\n}\n\n// TODO\n// measureLayout: createDefinition({\n// Component: (props) => {\n// console.log('measure', props)\n// return null\n// },\n// propNames: ['onLayout'],\n// }),\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React from 'react'\nimport { RefObject } from 'react'\nimport { View, ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { getSubStyle } from '../helpers/getSplitStyles'\nimport {\n PseudoStyles,\n SplitStyleState,\n StaticConfigParsed,\n TamaguiComponentState,\n TamaguiInternalConfig,\n UseAnimationHook,\n UseAnimationProps,\n} from '../types'\nimport { addMediaQueryListener, mediaState, removeMediaQueryListener } from './useMedia'\n\ntype FeatureDefinition = {\n isEnabled: (props: any) => boolean\n Component: any\n}\n\ntype FeatureUtils = {\n forceUpdate: Function\n state: SplitStyleState\n setStateShallow: (next: Partial<TamaguiComponentState>) => void\n useAnimations?: UseAnimationHook\n pseudos: PseudoStyles\n style: ViewStyle | null | undefined\n staticConfig: StaticConfigParsed\n theme: any\n onDidAnimate?: () => void\n hostRef: RefObject<HTMLElement | View>\n}\n\nconst createDefinition = ({\n Component,\n propNames,\n}: {\n Component: (props: { _utils: FeatureUtils; [key: string]: any }) => void\n propNames: string[]\n}): FeatureDefinition => ({\n isEnabled: (props: any) => propNames.some((name) => !!props[name]),\n Component,\n})\n\nlet featureDefinitions: Record<string, FeatureDefinition> | null = null\nlet tamaguiConfig: TamaguiInternalConfig\n\ntype FeatureKeys = keyof ReturnType<typeof loadFeatures>\n\nexport const useFeatures = (props: any, utils?: FeatureUtils) => {\n if (!featureDefinitions) {\n featureDefinitions = loadFeatures()\n }\n const elements: JSX.Element[] = []\n const enabled: { [key in FeatureKeys]?: boolean } = {}\n for (const name in featureDefinitions) {\n const { isEnabled, Component } = featureDefinitions[name]\n if (isEnabled(props) && Component) {\n enabled[name] = true\n elements.push(<Component key={name} {...props} _utils={utils} />)\n }\n }\n return {\n elements,\n enabled,\n }\n}\n\nfunction loadFeatures() {\n return {\n // loads animations and sets state with the results\n animation: loadAnimationFeature(),\n\n // will update the parent whenever media query changes\n // no need on web, media queries are inserted and run in css\n mediaQuery: loadMediaQueryFeature(),\n } as const\n}\n\nfunction loadAnimationFeature() {\n tamaguiConfig = tamaguiConfig || getConfig()\n\n return createDefinition({\n Component: ({ _utils, ...props }) => {\n const {\n state,\n useAnimations,\n pseudos,\n style: inStyle,\n setStateShallow,\n staticConfig,\n theme,\n onDidAnimate,\n } = _utils\n\n if (!useAnimations) {\n console.error('no useAnimations hook provided')\n return null\n }\n\n // we always have .animation set\n const propsWithAnimation = props as UseAnimationProps\n\n const res = useAnimations(propsWithAnimation, {\n state,\n pseudos,\n onDidAnimate,\n staticConfig,\n getStyle({ isExiting, isEntering, exitVariant, enterVariant } = {}) {\n // we have to merge such that transforms keys all exist\n const style = inStyle || {}\n\n const enterStyle = isEntering\n ? enterVariant && staticConfig.variants?.[enterVariant]['true']\n ? getSubStyle(\n '',\n staticConfig.variants?.[enterVariant]['true'],\n staticConfig,\n theme,\n props,\n state,\n tamaguiConfig\n ) || pseudos.enterStyle\n : null || pseudos.enterStyle\n : null\n\n const exitStyle = isExiting\n ? exitVariant && staticConfig.variants?.[exitVariant]['true']\n ? getSubStyle(\n '',\n staticConfig.variants?.[exitVariant]['true'],\n staticConfig,\n theme,\n props,\n state,\n tamaguiConfig\n ) || pseudos.exitStyle\n : null || pseudos.exitStyle\n : null\n\n // if you have hoverStyle={{ scale: 1.1 }} and don't have scale set on the base style\n // no animation will run! this is really confusing. this will look at all variants,\n // and fill in base styles if they don't exist. eg:\n // input:\n // base: {}\n // hoverStyle: { scale: 2 }\n // enterStyle: { x: 100 }\n // output:\n // base: { x: 0, scale: 1 }\n ensureBaseHasDefaults(\n style,\n enterStyle,\n pseudos.hoverStyle,\n pseudos.focusStyle,\n pseudos.pressStyle,\n pseudos.pressStyle\n )\n\n enterStyle && merge(style, enterStyle)\n state.hover && pseudos.hoverStyle && merge(style, pseudos.hoverStyle)\n state.focus && pseudos.focusStyle && merge(style, pseudos.focusStyle)\n state.press && pseudos.pressStyle && merge(style, pseudos.pressStyle)\n exitStyle && merge(style, exitStyle)\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // eslint-disable-next-line no-console\n console.log('animation style', style)\n }\n }\n\n return style\n },\n //, delay\n })\n\n useIsomorphicLayoutEffect(() => {\n setStateShallow({\n animation: res,\n })\n }, [res])\n\n return null\n },\n propNames: ['animation'],\n })\n}\n\nconst defaults = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n opacity: 1,\n translateX: 0,\n translateY: 0,\n skew: 0,\n skewX: 0,\n skewY: 0,\n scale: 1,\n rotate: '0deg',\n rotateY: '0deg',\n rotateX: '0deg',\n}\n\nfunction ensureBaseHasDefaults(base: ViewStyle, ...pseudos: (ViewStyle | null | undefined)[]) {\n for (const pseudo of pseudos) {\n if (!pseudo) continue\n for (const key in pseudo) {\n const val = pseudo[key]\n if (key === 'transform') {\n if (typeof val === 'string') {\n continue\n }\n for (const t of val) {\n const tkey = Object.keys(t)[0]\n const defaultVal = defaults[tkey]\n const tDefaultVal = { [tkey]: defaultVal } as any\n if (!base.transform) {\n base.transform = [tDefaultVal]\n } else {\n if (!base.transform.find((x) => x[tkey])) {\n base.transform.push(tDefaultVal)\n }\n }\n }\n } else {\n if (!(key in base)) {\n base[key] = defaults[key]\n }\n }\n }\n }\n}\n\nfunction merge(base: ViewStyle, next: ViewStyle) {\n if (!next.transform || !base.transform) {\n Object.assign(base, next)\n return\n }\n const { transform, ...rest } = next\n Object.assign(base, rest)\n for (const t of transform) {\n const key = Object.keys(t)[0]\n const existing = base.transform.find((x) => key in x)\n if (existing) {\n existing[key] = t[key]\n } else {\n base.transform.push(t)\n }\n }\n}\n\nfunction loadMediaQueryFeature() {\n const mediaPropNames = Object.keys(mediaState)\n\n return createDefinition({\n Component: (props: any) => {\n const mediaKeys = mediaPropNames.filter((x) => x in props)\n\n useIsomorphicLayoutEffect(() => {\n for (const key of mediaKeys) {\n addMediaQueryListener(key, props._utils.forceUpdate)\n }\n return () => {\n for (const key of mediaKeys) {\n removeMediaQueryListener(key, props._utils.forceUpdate)\n }\n }\n }, [mediaKeys.join(',')])\n\n return null\n },\n propNames: mediaPropNames,\n })\n}\n\n// TODO\n// measureLayout: createDefinition({\n// Component: (props) => {\n// console.log('measure', props)\n// return null\n// },\n// propNames: ['onLayout'],\n// }),\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
File without changes
File without changes
File without changes
File without changes
@@ -1,9 +1,9 @@
1
- import { useEffect, useState } from "react";
2
- import { isSSR, isWeb } from "../constants/platform";
1
+ import { useState } from "react";
2
+ import { isSSR, isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
3
3
  import { startTransition } from "../helpers/startTransition";
4
4
  const useIsSSR = () => {
5
- const [val, setVal] = useState(isSSR);
6
- useEffect(() => {
5
+ const [val, setVal] = useState(true);
6
+ useIsomorphicLayoutEffect(() => {
7
7
  if (isWeb && !isSSR) {
8
8
  startTransition(() => {
9
9
  setVal(false);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useIsSSR.tsx"],
4
- "sourcesContent": ["import { useEffect, useState } from 'react'\n\nimport { isSSR, isWeb } from '../constants/platform'\nimport { startTransition } from '../helpers/startTransition'\n\n// because any change before first useEffect causes hydration / mismatch issues\n\nexport const useIsSSR = () => {\n const [val, setVal] = useState(isSSR)\n\n useEffect(() => {\n if (isWeb && !isSSR) {\n startTransition(() => {\n setVal(false)\n })\n }\n }, [])\n\n return val\n}\n"],
5
- "mappings": "AAAA;AAEA;AACA;AAIO,MAAM,WAAW,MAAM;AAC5B,QAAM,CAAC,KAAK,UAAU,SAAS,KAAK;AAEpC,YAAU,MAAM;AACd,QAAI,SAAS,CAAC,OAAO;AACnB,sBAAgB,MAAM;AACpB,eAAO,KAAK;AAAA,MACd,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;",
4
+ "sourcesContent": ["import { useState } from 'react'\n\nimport { isSSR, isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { startTransition } from '../helpers/startTransition'\n\n// because any change before first useEffect causes hydration / mismatch issues\n\nexport const useIsSSR = () => {\n const [val, setVal] = useState(true)\n\n useIsomorphicLayoutEffect(() => {\n if (isWeb && !isSSR) {\n startTransition(() => {\n setVal(false)\n })\n }\n }, [])\n\n return val\n}\n"],
5
+ "mappings": "AAAA;AAEA;AACA;AAIO,MAAM,WAAW,MAAM;AAC5B,QAAM,CAAC,KAAK,UAAU,SAAS,IAAI;AAEnC,4BAA0B,MAAM;AAC9B,QAAI,SAAS,CAAC,OAAO;AACnB,sBAAgB,MAAM;AACpB,eAAO,KAAK;AAAA,MACd,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;",
6
6
  "names": []
7
7
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,7 +1,7 @@
1
1
  import { useForceUpdate } from "@tamagui/use-force-update";
2
2
  import { useContext, useLayoutEffect, useMemo, useRef, useState } from "react";
3
3
  import { getConfig } from "../conf";
4
- import { isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
4
+ import { isSSR, useIsomorphicLayoutEffect } from "../constants/platform";
5
5
  import { ThemeContext } from "../contexts/ThemeContext";
6
6
  import { areEqualSets } from "../helpers/areEqualSets";
7
7
  import {
@@ -121,11 +121,9 @@ const useChangeThemeEffect = (name, componentName, props, forceUpdateProp) => {
121
121
  const next = parentManager.getNextTheme(getThemeProps, debug);
122
122
  const forceUpdate = forceUpdateProp || useForceUpdate();
123
123
  const themeManager = useConstant(() => {
124
- if (!next)
125
- return null;
126
124
  return new ThemeManager(next.name, next.theme, parentManager, reset);
127
125
  });
128
- if (!isWeb || typeof document !== "undefined") {
126
+ if (!isSSR) {
129
127
  useLayoutEffect(() => {
130
128
  if (!themeManager)
131
129
  return;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useTheme.tsx"],
4
- "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport React, { useContext, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport { getConfig } from '../conf'\nimport { isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { ThemeContext } from '../contexts/ThemeContext'\nimport { areEqualSets } from '../helpers/areEqualSets'\nimport {\n GetNextThemeProps,\n ThemeManager,\n ThemeManagerContext,\n emptyManager,\n} from '../helpers/ThemeManager'\nimport { ThemeName, ThemeObject } from '../types'\nimport { GetThemeUnwrapped } from './getThemeUnwrapped'\nimport { useConstant } from './useConstant'\n\nexport type ThemeProps = {\n className?: string\n disableThemeClass?: boolean\n name: Exclude<ThemeName, number> | null\n componentName?: string\n children?: any\n reset?: boolean\n debug?: boolean | 'verbose'\n}\n\ntype UseThemeState = {\n uuid: Object\n keys: Set<string>\n isRendering: boolean\n}\n\nexport const useTheme = (\n themeName?: string | null,\n componentName?: string,\n props?: ThemeProps,\n forceUpdate?: any\n): ThemeObject => {\n const { name, theme, themes, themeManager, className } = useChangeThemeEffect(\n themeName,\n componentName,\n props,\n forceUpdate\n )\n\n if (process.env.NODE_ENV === 'development') {\n if (props?.debug === 'verbose') {\n // eslint-disable-next-line no-console\n console.log(' \uD83D\uDD39 useTheme', { themeName, componentName, name, className })\n }\n }\n\n const state = useRef() as React.MutableRefObject<UseThemeState>\n if (!state.current) {\n state.current = {\n uuid: {},\n keys: new Set(),\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n const cur = themeManager?.keys.get(st.uuid)\n if (!cur || !areEqualSets(st.keys, cur)) {\n themeManager?.track(st.uuid, st.keys)\n }\n })\n\n const debugProp = props && props['debug']\n\n if (!theme) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('No theme with name', themeName)\n }\n return themes[getConfig().defaultTheme || 'light']\n }\n\n return useMemo(() => {\n return new Proxy(theme, {\n has(_, key) {\n if (typeof key === 'string') {\n if (key[0] === '$') {\n key = key.slice(1)\n }\n }\n return Reflect.has(theme, key)\n },\n get(_, key) {\n if (key === GetThemeUnwrapped) {\n return theme\n }\n if (key === GetThemeManager) {\n return themeManager\n }\n if (key === 'name') {\n return name\n }\n if (key === 'className') {\n return className\n }\n if (!name || key === '__proto__' || typeof key === 'symbol' || key === '$typeof') {\n return Reflect.get(_, key)\n }\n if (!themeManager) {\n console.error('No themeManager')\n return\n }\n // auto convert variables to plain\n if (key[0] === '$') {\n key = key.slice(1)\n }\n if (state.current.isRendering && !state.current.keys.has(key)) {\n state.current.keys.add(key)\n if (process.env.NODE_ENV === 'development' && debugProp === 'verbose') {\n console.log(' \uD83D\uDD38 tracking theme', key)\n }\n }\n return themeManager.getValue(key)\n },\n })\n }, [name, theme, componentName, className, debugProp])\n}\n\nconst GetThemeManager = Symbol()\n\nexport const getThemeManager = (theme: any): ThemeManager | undefined => {\n if (!theme) return\n return theme[GetThemeManager]\n}\n\nexport const useThemeName = (opts?: { parent?: true }) => {\n const parent = useContext(ThemeManagerContext)\n const [name, setName] = useState(parent?.name || '')\n\n useIsomorphicLayoutEffect(() => {\n if (!parent) return\n return parent.onChangeTheme((next, manager) => {\n const name = opts?.parent ? manager.parentName || next : next\n if (!name) return\n setName(name)\n })\n }, [parent])\n\n return name\n}\n\nexport const useDefaultThemeName = () => {\n return useContext(ThemeContext)?.defaultTheme\n}\n\nexport const activeThemeManagers = new Set<ThemeManager>()\n\nexport const useChangeThemeEffect = (\n name?: string | null,\n componentName?: string,\n props?: ThemeProps,\n forceUpdateProp?: any\n) => {\n const debug = props && props['debug']\n const parentManager = useContext(ThemeManagerContext) || emptyManager\n const { themes } = useContext(ThemeContext)!\n const reset = props?.reset || false\n const getThemeProps: GetNextThemeProps = { name, componentName, themes, reset }\n const next = parentManager.getNextTheme(getThemeProps, debug)\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const forceUpdate = forceUpdateProp || useForceUpdate()\n\n const themeManager = useConstant<ThemeManager | null>(() => {\n if (!next) return null\n return new ThemeManager(next.name, next.theme, parentManager, reset)\n })\n\n // if not SSR\n if (!isWeb || typeof document !== 'undefined') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n if (!themeManager) return\n\n activeThemeManagers.add(themeManager)\n\n if (next?.name) {\n themeManager.update(next)\n }\n\n const disposeParentOnChange = parentManager.onChangeTheme(() => {\n const next = parentManager.getNextTheme(getThemeProps, debug)\n if (!next) return\n if (themeManager.update(next)) {\n forceUpdate()\n }\n })\n\n return () => {\n activeThemeManagers.delete(themeManager)\n disposeParentOnChange()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [themes, name, componentName, debug, next?.name])\n }\n\n return {\n ...(parentManager && {\n name: parentManager.name,\n theme: parentManager.theme,\n }),\n ...next,\n themes,\n themeManager,\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport React, { useContext, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport { getConfig } from '../conf'\nimport { isSSR, isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { ThemeContext } from '../contexts/ThemeContext'\nimport { areEqualSets } from '../helpers/areEqualSets'\nimport {\n GetNextThemeProps,\n ThemeManager,\n ThemeManagerContext,\n emptyManager,\n} from '../helpers/ThemeManager'\nimport { ThemeName, ThemeObject } from '../types'\nimport { GetThemeUnwrapped } from './getThemeUnwrapped'\nimport { useConstant } from './useConstant'\n\nexport type ThemeProps = {\n className?: string\n disableThemeClass?: boolean\n name: Exclude<ThemeName, number> | null\n componentName?: string\n children?: any\n reset?: boolean\n debug?: boolean | 'verbose'\n}\n\ntype UseThemeState = {\n uuid: Object\n keys: Set<string>\n isRendering: boolean\n}\n\nexport const useTheme = (\n themeName?: string | null,\n componentName?: string,\n props?: ThemeProps,\n forceUpdate?: any\n): ThemeObject => {\n const { name, theme, themes, themeManager, className } = useChangeThemeEffect(\n themeName,\n componentName,\n props,\n forceUpdate\n )\n\n if (process.env.NODE_ENV === 'development') {\n if (props?.debug === 'verbose') {\n // eslint-disable-next-line no-console\n console.log(' \uD83D\uDD39 useTheme', { themeName, componentName, name, className })\n }\n }\n\n const state = useRef() as React.MutableRefObject<UseThemeState>\n if (!state.current) {\n state.current = {\n uuid: {},\n keys: new Set(),\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n const cur = themeManager?.keys.get(st.uuid)\n if (!cur || !areEqualSets(st.keys, cur)) {\n themeManager?.track(st.uuid, st.keys)\n }\n })\n\n const debugProp = props && props['debug']\n\n if (!theme) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('No theme with name', themeName)\n }\n return themes[getConfig().defaultTheme || 'light']\n }\n\n return useMemo(() => {\n return new Proxy(theme, {\n has(_, key) {\n if (typeof key === 'string') {\n if (key[0] === '$') {\n key = key.slice(1)\n }\n }\n return Reflect.has(theme, key)\n },\n get(_, key) {\n if (key === GetThemeUnwrapped) {\n return theme\n }\n if (key === GetThemeManager) {\n return themeManager\n }\n if (key === 'name') {\n return name\n }\n if (key === 'className') {\n return className\n }\n if (!name || key === '__proto__' || typeof key === 'symbol' || key === '$typeof') {\n return Reflect.get(_, key)\n }\n if (!themeManager) {\n console.error('No themeManager')\n return\n }\n // auto convert variables to plain\n if (key[0] === '$') {\n key = key.slice(1)\n }\n if (state.current.isRendering && !state.current.keys.has(key)) {\n state.current.keys.add(key)\n if (process.env.NODE_ENV === 'development' && debugProp === 'verbose') {\n console.log(' \uD83D\uDD38 tracking theme', key)\n }\n }\n return themeManager.getValue(key)\n },\n })\n }, [name, theme, componentName, className, debugProp])\n}\n\nconst GetThemeManager = Symbol()\n\nexport const getThemeManager = (theme: any): ThemeManager | undefined => {\n if (!theme) return\n return theme[GetThemeManager]\n}\n\nexport const useThemeName = (opts?: { parent?: true }) => {\n const parent = useContext(ThemeManagerContext)\n const [name, setName] = useState(parent?.name || '')\n\n useIsomorphicLayoutEffect(() => {\n if (!parent) return\n return parent.onChangeTheme((next, manager) => {\n const name = opts?.parent ? manager.parentName || next : next\n if (!name) return\n setName(name)\n })\n }, [parent])\n\n return name\n}\n\nexport const useDefaultThemeName = () => {\n return useContext(ThemeContext)?.defaultTheme\n}\n\nexport const activeThemeManagers = new Set<ThemeManager>()\n\nexport const useChangeThemeEffect = (\n name?: string | null,\n componentName?: string,\n props?: ThemeProps,\n forceUpdateProp?: any\n) => {\n const debug = props && props['debug']\n const parentManager = useContext(ThemeManagerContext) || emptyManager\n const { themes } = useContext(ThemeContext)!\n const reset = props?.reset || false\n const getThemeProps: GetNextThemeProps = { name, componentName, themes, reset }\n const next = parentManager.getNextTheme(getThemeProps, debug)\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const forceUpdate = forceUpdateProp || useForceUpdate()\n\n const themeManager = useConstant<ThemeManager | null>(() => {\n // if (!next) return null\n // RSC test\n // if (typeof document === 'undefined') return null\n return new ThemeManager(next.name, next.theme, parentManager, reset)\n })\n\n // if not SSR\n if (!isSSR) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n if (!themeManager) return\n\n activeThemeManagers.add(themeManager)\n\n if (next?.name) {\n themeManager.update(next)\n }\n\n const disposeParentOnChange = parentManager.onChangeTheme(() => {\n const next = parentManager.getNextTheme(getThemeProps, debug)\n if (!next) return\n if (themeManager.update(next)) {\n forceUpdate()\n }\n })\n\n return () => {\n activeThemeManagers.delete(themeManager)\n disposeParentOnChange()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [themes, name, componentName, debug, next?.name])\n }\n\n return {\n ...(parentManager && {\n name: parentManager.name,\n theme: parentManager.theme,\n }),\n ...next,\n themes,\n themeManager,\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
File without changes
File without changes
package/dist/esm/index.js CHANGED
@@ -64,6 +64,7 @@ export * from "./views/ThemeInverse";
64
64
  export * from "./views/ThemeProvider";
65
65
  export * from "./views/ThemeReset";
66
66
  export * from "./views/FontLanguage";
67
+ export * from "./views/TamaguiProvider";
67
68
  export * from "@tamagui/use-force-update";
68
69
  export * from "@tamagui/use-event";
69
70
  export * from "@tamagui/helpers";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["export * from './Tamagui'\nexport * from './createComponent'\nexport * from './createShorthands'\nexport * from './createTheme'\nexport * from './createTamagui'\nexport * from './createFont'\nexport * from './createTokens'\nexport * from './createVariable'\nexport * from './createVariables'\nexport * from './insertFont'\nexport * from './addTheme'\nexport * from './updateTheme'\nexport * from './styled'\nexport * from './types'\n\n// for type portability\nexport type { RNWTextProps, RNWViewProps } from './types-rnw'\nexport { getHasConfigured, getConfig, getThemes, getTokens, onConfiguredOnce } from './conf'\n\nexport * from './constants/constants'\nexport * from './constants/platform'\nexport { createDOMProps } from '@tamagui/rnw'\n\nexport * from './helpers/calc'\nexport * from './helpers/createShallowUpdate'\nexport * from './helpers/getStackSize'\nexport * from './helpers/getVariantExtras'\nexport * from './helpers/getExpandedShorthands'\nexport * from './helpers/getSize'\nexport * from './helpers/getSplitStyles'\nexport * from './helpers/getStylesAtomic'\nexport * from './helpers/pseudoDescriptors'\nexport * from './helpers/mergeProps'\nexport * from './helpers/expandStyles'\nexport * from './helpers/getFont'\nexport * from './helpers/isObj'\nexport * from './helpers/isTamaguiElement'\nexport * from './helpers/isTamaguiComponent'\nexport * from './helpers/matchMedia'\nexport * from './helpers/startTransition'\nexport * from './helpers/themeable'\nexport * from './helpers/withStaticProperties'\n\nexport * from './contexts/ButtonInsideButtonContext'\n\nexport * from './hooks/useConstant'\nexport * from './hooks/useId'\nexport * from './hooks/useIsMounted'\nexport * from './hooks/useIsTouchDevice'\nexport {\n configureMedia,\n getMedia,\n mediaState,\n useMedia,\n mediaObjectToString,\n addMediaQueryListener,\n removeMediaQueryListener,\n mediaQueryConfig,\n} from './hooks/useMedia'\nexport * from './hooks/usePressable'\nexport * from './hooks/useTheme'\nexport * from './hooks/useIsSSR'\nexport * from './hooks/useUnmountEffect'\nexport * from './hooks/useSafeRef'\n\nexport * from './views/Slot'\nexport * from './views/Stack'\nexport * from './views/Text'\nexport { TextAncestorProvider, TextAncestorContext } from './contexts/TextAncestorContext'\nexport * from './views/Theme'\nexport * from './views/ThemeInverse'\nexport * from './views/ThemeProvider'\nexport * from './views/ThemeReset'\nexport * from './views/FontLanguage'\n\nexport * from '@tamagui/use-force-update'\nexport * from '@tamagui/use-event'\nexport * from '@tamagui/helpers'\n"],
5
- "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;",
4
+ "sourcesContent": ["export * from './Tamagui'\nexport * from './createComponent'\nexport * from './createShorthands'\nexport * from './createTheme'\nexport * from './createTamagui'\nexport * from './createFont'\nexport * from './createTokens'\nexport * from './createVariable'\nexport * from './createVariables'\nexport * from './insertFont'\nexport * from './addTheme'\nexport * from './updateTheme'\nexport * from './styled'\nexport * from './types'\n\n// for type portability\nexport type { RNWTextProps, RNWViewProps } from './types-rnw'\nexport { getHasConfigured, getConfig, getThemes, getTokens, onConfiguredOnce } from './conf'\n\nexport * from './constants/constants'\nexport * from './constants/platform'\nexport { createDOMProps } from '@tamagui/rnw'\n\nexport * from './helpers/calc'\nexport * from './helpers/createShallowUpdate'\nexport * from './helpers/getStackSize'\nexport * from './helpers/getVariantExtras'\nexport * from './helpers/getExpandedShorthands'\nexport * from './helpers/getSize'\nexport * from './helpers/getSplitStyles'\nexport * from './helpers/getStylesAtomic'\nexport * from './helpers/pseudoDescriptors'\nexport * from './helpers/mergeProps'\nexport * from './helpers/expandStyles'\nexport * from './helpers/getFont'\nexport * from './helpers/isObj'\nexport * from './helpers/isTamaguiElement'\nexport * from './helpers/isTamaguiComponent'\nexport * from './helpers/matchMedia'\nexport * from './helpers/startTransition'\nexport * from './helpers/themeable'\nexport * from './helpers/withStaticProperties'\n\nexport * from './contexts/ButtonInsideButtonContext'\n\nexport * from './hooks/useConstant'\nexport * from './hooks/useId'\nexport * from './hooks/useIsMounted'\nexport * from './hooks/useIsTouchDevice'\nexport {\n configureMedia,\n getMedia,\n mediaState,\n useMedia,\n mediaObjectToString,\n addMediaQueryListener,\n removeMediaQueryListener,\n mediaQueryConfig,\n} from './hooks/useMedia'\nexport * from './hooks/usePressable'\nexport * from './hooks/useTheme'\nexport * from './hooks/useIsSSR'\nexport * from './hooks/useUnmountEffect'\nexport * from './hooks/useSafeRef'\n\nexport * from './views/Slot'\nexport * from './views/Stack'\nexport * from './views/Text'\nexport { TextAncestorProvider, TextAncestorContext } from './contexts/TextAncestorContext'\nexport * from './views/Theme'\nexport * from './views/ThemeInverse'\nexport * from './views/ThemeProvider'\nexport * from './views/ThemeReset'\nexport * from './views/FontLanguage'\nexport * from './views/TamaguiProvider'\n\nexport * from '@tamagui/use-force-update'\nexport * from '@tamagui/use-event'\nexport * from '@tamagui/helpers'\n"],
5
+ "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;",
6
6
  "names": []
7
7
  }
File without changes
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/insertFont.ts"],
4
- "sourcesContent": ["import { setConfigFont } from './conf'\nimport { createFont } from './createFont'\nimport { Variable } from './createVariable'\nimport { DeepVariableObject, createVariables } from './createVariables'\nimport { registerCSSVariable, variableToCSS } from './helpers/registerCSSVariable'\nimport { GenericFont } from './types'\n\n/**\n * Runtime dynamic insert font\n */\nexport function insertFont<A extends GenericFont>(name: string, fontIn: A): DeepVariableObject<A> {\n const font = createFont(fontIn)\n const tokened = createVariables(font, name) as GenericFont\n const parsed = parseFont(tokened) as DeepVariableObject<A>\n if (process.env.TAMAGUI_TARGET === 'web' && typeof document !== 'undefined') {\n const fontVars = registerFontVariables(parsed)\n const style = document.createElement('style')\n style.innerText = `:root .font_${name} {${fontVars.join(';')}}`\n style.setAttribute('data-tamagui-font', name)\n document.head.appendChild(style)\n }\n setConfigFont(name, tokened, parsed)\n return parsed\n}\n\nexport function parseFont<A extends GenericFont>(definition: A): DeepVariableObject<A> {\n const parsed: any = {}\n for (const attrKey in definition) {\n const attr = definition[attrKey]\n if (attrKey === 'family') {\n parsed[attrKey] = attr\n continue\n }\n parsed[attrKey] = {}\n for (const key in attr) {\n let val = attr[key] as any as Variable\n // is a theme reference\n if (val.val?.[0] === '$') {\n val = val.val\n }\n parsed[attrKey][`$${key}`] = val\n }\n }\n return parsed\n}\n\nexport function registerFontVariables(parsedFont: any) {\n const response: string[] = []\n\n for (const fkey in parsedFont) {\n if (fkey === 'family') {\n const val = parsedFont[fkey] as Variable\n registerCSSVariable(val)\n response.push(variableToCSS(val))\n } else {\n for (const fskey in parsedFont[fkey]) {\n const fval = parsedFont[fkey][fskey]\n if (typeof fval === 'string') {\n // no need to add its a theme reference like \"$borderColor\"\n } else {\n const val = parsedFont[fkey][fskey] as Variable\n registerCSSVariable(val)\n response.push(variableToCSS(val))\n }\n }\n }\n }\n return response\n}\n"],
4
+ "sourcesContent": ["import { setConfigFont } from './conf'\nimport { createFont } from './createFont'\nimport { Variable } from './createVariable'\nimport { DeepVariableObject, createVariables } from './createVariables'\nimport { registerCSSVariable, variableToCSS } from './helpers/registerCSSVariable'\nimport { GenericFont } from './types'\n\n/**\n * Runtime dynamic insert font\n */\nexport function insertFont<A extends GenericFont>(name: string, fontIn: A): DeepVariableObject<A> {\n const font = createFont(fontIn)\n const tokened = createVariables(font, name) as GenericFont\n const parsed = parseFont(tokened) as DeepVariableObject<A>\n if (process.env.TAMAGUI_TARGET === 'web' && typeof document !== 'undefined') {\n const fontVars = registerFontVariables(parsed)\n const style = document.createElement('style')\n style.innerText = `:root .font_${name} {${fontVars.join(';')}}`\n style.setAttribute('data-tamagui-font', name)\n document.head.appendChild(style)\n }\n setConfigFont(name, tokened, parsed)\n return parsed\n}\n\nexport function parseFont<A extends GenericFont>(definition: A): DeepVariableObject<A> {\n const parsed: any = {}\n for (const attrKey in definition) {\n const attr = definition[attrKey]\n if (attrKey === 'family') {\n parsed[attrKey] = attr\n continue\n }\n parsed[attrKey] = {}\n for (const key in attr) {\n let val = attr[key] as any\n // is a theme reference\n if (val.val?.[0] === '$') {\n val = val.val\n }\n parsed[attrKey][`$${key}`] = val\n }\n }\n return parsed\n}\n\nexport function registerFontVariables(parsedFont: any) {\n const response: string[] = []\n\n for (const fkey in parsedFont) {\n if (fkey === 'family') {\n const val = parsedFont[fkey] as Variable\n registerCSSVariable(val)\n response.push(variableToCSS(val))\n } else {\n for (const fskey in parsedFont[fkey]) {\n const fval = parsedFont[fkey][fskey]\n if (typeof fval === 'string') {\n // no need to add its a theme reference like \"$borderColor\"\n } else {\n const val = parsedFont[fkey][fskey] as Variable\n registerCSSVariable(val)\n response.push(variableToCSS(val))\n }\n }\n }\n }\n return response\n}\n"],
5
5
  "mappings": "AAAA;AACA;AAEA;AACA;AAMO,oBAA2C,MAAc,QAAkC;AAChG,QAAM,OAAO,WAAW,MAAM;AAC9B,QAAM,UAAU,gBAAgB,MAAM,IAAI;AAC1C,QAAM,SAAS,UAAU,OAAO;AAChC,MAAI,QAAQ,IAAI,mBAAmB,SAAS,OAAO,aAAa,aAAa;AAC3E,UAAM,WAAW,sBAAsB,MAAM;AAC7C,UAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,UAAM,YAAY,eAAe,SAAS,SAAS,KAAK,GAAG;AAC3D,UAAM,aAAa,qBAAqB,IAAI;AAC5C,aAAS,KAAK,YAAY,KAAK;AAAA,EACjC;AACA,gBAAc,MAAM,SAAS,MAAM;AACnC,SAAO;AACT;AAEO,mBAA0C,YAAsC;AAzBvF;AA0BE,QAAM,SAAc,CAAC;AACrB,aAAW,WAAW,YAAY;AAChC,UAAM,OAAO,WAAW;AACxB,QAAI,YAAY,UAAU;AACxB,aAAO,WAAW;AAClB;AAAA,IACF;AACA,WAAO,WAAW,CAAC;AACnB,eAAW,OAAO,MAAM;AACtB,UAAI,MAAM,KAAK;AAEf,UAAI,WAAI,QAAJ,mBAAU,QAAO,KAAK;AACxB,cAAM,IAAI;AAAA,MACZ;AACA,aAAO,SAAS,IAAI,SAAS;AAAA,IAC/B;AAAA,EACF;AACA,SAAO;AACT;AAEO,+BAA+B,YAAiB;AACrD,QAAM,WAAqB,CAAC;AAE5B,aAAW,QAAQ,YAAY;AAC7B,QAAI,SAAS,UAAU;AACrB,YAAM,MAAM,WAAW;AACvB,0BAAoB,GAAG;AACvB,eAAS,KAAK,cAAc,GAAG,CAAC;AAAA,IAClC,OAAO;AACL,iBAAW,SAAS,WAAW,OAAO;AACpC,cAAM,OAAO,WAAW,MAAM;AAC9B,YAAI,OAAO,SAAS,UAAU;AAAA,QAE9B,OAAO;AACL,gBAAM,MAAM,WAAW,MAAM;AAC7B,8BAAoB,GAAG;AACvB,mBAAS,KAAK,cAAc,GAAG,CAAC;AAAA,QAClC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
6
6
  "names": []
7
7
  }