@tamagui/core 1.0.0-beta.181 → 1.0.0-beta.193

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 (354) hide show
  1. package/dist/cjs/Tamagui.js +0 -0
  2. package/dist/cjs/Tamagui.js.map +0 -0
  3. package/dist/cjs/ThemeContext.js +0 -0
  4. package/dist/cjs/ThemeContext.js.map +0 -0
  5. package/dist/cjs/ThemeManager.js +0 -0
  6. package/dist/cjs/ThemeManager.js.map +0 -0
  7. package/dist/cjs/conf.js +0 -0
  8. package/dist/cjs/conf.js.map +0 -0
  9. package/dist/cjs/constants/constants.js +0 -0
  10. package/dist/cjs/constants/constants.js.map +0 -0
  11. package/dist/cjs/constants/platform.js +3 -0
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/rnw.js +0 -0
  14. package/dist/cjs/constants/rnw.js.map +0 -0
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +0 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +0 -0
  17. package/dist/cjs/createComponent.js +5 -3
  18. package/dist/cjs/createComponent.js.map +2 -2
  19. package/dist/cjs/createFont.js +0 -0
  20. package/dist/cjs/createFont.js.map +0 -0
  21. package/dist/cjs/createShorthands.js +0 -0
  22. package/dist/cjs/createShorthands.js.map +0 -0
  23. package/dist/cjs/createTamagui.js +26 -18
  24. package/dist/cjs/createTamagui.js.map +2 -2
  25. package/dist/cjs/createTheme.js +0 -0
  26. package/dist/cjs/createTheme.js.map +0 -0
  27. package/dist/cjs/createTokens.js +2 -6
  28. package/dist/cjs/createTokens.js.map +2 -2
  29. package/dist/cjs/createVariable.js +9 -2
  30. package/dist/cjs/createVariable.js.map +2 -2
  31. package/dist/cjs/defaultComponentState.js +0 -0
  32. package/dist/cjs/defaultComponentState.js.map +0 -0
  33. package/dist/cjs/helpers/RNComponents.js +0 -0
  34. package/dist/cjs/helpers/RNComponents.js.map +0 -0
  35. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -0
  36. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -0
  37. package/dist/cjs/helpers/areEqualSets.js +0 -0
  38. package/dist/cjs/helpers/areEqualSets.js.map +0 -0
  39. package/dist/cjs/helpers/createMediaStyle.js +0 -0
  40. package/dist/cjs/helpers/createMediaStyle.js.map +0 -0
  41. package/dist/cjs/helpers/createPropMapper.js +9 -8
  42. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  43. package/dist/cjs/helpers/createShallowUpdate.js +0 -0
  44. package/dist/cjs/helpers/createShallowUpdate.js.map +0 -0
  45. package/dist/cjs/helpers/createTamaguiProvider.js +0 -0
  46. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -0
  47. package/dist/cjs/helpers/extendStaticConfig.js +1 -0
  48. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  49. package/dist/cjs/helpers/fixNativeShadow.js +0 -0
  50. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -0
  51. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -0
  52. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -0
  53. package/dist/cjs/helpers/getExpandedShorthands.js +0 -0
  54. package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -0
  55. package/dist/cjs/helpers/getSplitStyles.js +33 -30
  56. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  57. package/dist/cjs/helpers/getStylesAtomic.js +0 -0
  58. package/dist/cjs/helpers/getStylesAtomic.js.map +0 -0
  59. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -0
  60. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -0
  61. package/dist/cjs/helpers/insertStyleRule.js +1 -1
  62. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  63. package/dist/cjs/helpers/isObj.js +0 -0
  64. package/dist/cjs/helpers/isObj.js.map +0 -0
  65. package/dist/cjs/helpers/isTamaguiElement.js +0 -0
  66. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -0
  67. package/dist/cjs/helpers/matchMedia.js +0 -0
  68. package/dist/cjs/helpers/matchMedia.js.map +0 -0
  69. package/dist/cjs/helpers/matchMedia.native.js +0 -0
  70. package/dist/cjs/helpers/matchMedia.native.js.map +0 -0
  71. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  72. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  73. package/dist/cjs/helpers/themeable.js +0 -1
  74. package/dist/cjs/helpers/themeable.js.map +2 -2
  75. package/dist/cjs/helpers/validate.js +14 -13
  76. package/dist/cjs/helpers/validate.js.map +2 -2
  77. package/dist/cjs/helpers/withStaticProperties.js +0 -0
  78. package/dist/cjs/helpers/withStaticProperties.js.map +0 -0
  79. package/dist/cjs/helpers/wrapThemeManagerContext.js +0 -0
  80. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +0 -0
  81. package/dist/cjs/hooks/useConstant.js +0 -0
  82. package/dist/cjs/hooks/useConstant.js.map +0 -0
  83. package/dist/cjs/hooks/useFeatures.js +0 -0
  84. package/dist/cjs/hooks/useFeatures.js.map +0 -0
  85. package/dist/cjs/hooks/useIsMounted.js +0 -0
  86. package/dist/cjs/hooks/useIsMounted.js.map +0 -0
  87. package/dist/cjs/hooks/useIsTouchDevice.js +0 -0
  88. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -0
  89. package/dist/cjs/hooks/useMedia.js +0 -0
  90. package/dist/cjs/hooks/useMedia.js.map +0 -0
  91. package/dist/cjs/hooks/usePressable.js +0 -0
  92. package/dist/cjs/hooks/usePressable.js.map +0 -0
  93. package/dist/cjs/hooks/useTheme.js +14 -16
  94. package/dist/cjs/hooks/useTheme.js.map +2 -2
  95. package/dist/cjs/hooks/useUnmountEffect.js +0 -0
  96. package/dist/cjs/hooks/useUnmountEffect.js.map +0 -0
  97. package/dist/cjs/index.js +0 -0
  98. package/dist/cjs/index.js.map +0 -0
  99. package/dist/cjs/static.js +3 -0
  100. package/dist/cjs/static.js.map +2 -2
  101. package/dist/cjs/styled.js +0 -0
  102. package/dist/cjs/styled.js.map +0 -0
  103. package/dist/cjs/types-rnw.js +0 -0
  104. package/dist/cjs/types-rnw.js.map +0 -0
  105. package/dist/cjs/types.js +0 -0
  106. package/dist/cjs/types.js.map +1 -1
  107. package/dist/cjs/views/Stack.js +0 -0
  108. package/dist/cjs/views/Stack.js.map +0 -0
  109. package/dist/cjs/views/Text.js +0 -0
  110. package/dist/cjs/views/Text.js.map +0 -0
  111. package/dist/cjs/views/TextAncestorContext.js +0 -0
  112. package/dist/cjs/views/TextAncestorContext.js.map +0 -0
  113. package/dist/cjs/views/Theme.js +0 -3
  114. package/dist/cjs/views/Theme.js.map +2 -2
  115. package/dist/cjs/views/ThemeInverse.js +0 -0
  116. package/dist/cjs/views/ThemeInverse.js.map +0 -0
  117. package/dist/cjs/views/ThemeProvider.js +0 -0
  118. package/dist/cjs/views/ThemeProvider.js.map +0 -0
  119. package/dist/cjs/views/ThemeReset.js +0 -0
  120. package/dist/cjs/views/ThemeReset.js.map +0 -0
  121. package/dist/esm/Tamagui.js +0 -0
  122. package/dist/esm/Tamagui.js.map +0 -0
  123. package/dist/esm/ThemeContext.js +0 -0
  124. package/dist/esm/ThemeContext.js.map +0 -0
  125. package/dist/esm/ThemeManager.js +0 -0
  126. package/dist/esm/ThemeManager.js.map +0 -0
  127. package/dist/esm/conf.js +0 -0
  128. package/dist/esm/conf.js.map +0 -0
  129. package/dist/esm/constants/constants.js +0 -0
  130. package/dist/esm/constants/constants.js.map +0 -0
  131. package/dist/esm/constants/platform.js +2 -0
  132. package/dist/esm/constants/platform.js.map +2 -2
  133. package/dist/esm/constants/rnw.js +0 -0
  134. package/dist/esm/constants/rnw.js.map +0 -0
  135. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  136. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +0 -0
  137. package/dist/esm/createComponent.js +5 -3
  138. package/dist/esm/createComponent.js.map +2 -2
  139. package/dist/esm/createFont.js +0 -0
  140. package/dist/esm/createFont.js.map +0 -0
  141. package/dist/esm/createShorthands.js +0 -0
  142. package/dist/esm/createShorthands.js.map +0 -0
  143. package/dist/esm/createTamagui.js +26 -18
  144. package/dist/esm/createTamagui.js.map +2 -2
  145. package/dist/esm/createTheme.js +0 -0
  146. package/dist/esm/createTheme.js.map +0 -0
  147. package/dist/esm/createTokens.js +2 -6
  148. package/dist/esm/createTokens.js.map +2 -2
  149. package/dist/esm/createVariable.js +8 -2
  150. package/dist/esm/createVariable.js.map +2 -2
  151. package/dist/esm/defaultComponentState.js +0 -0
  152. package/dist/esm/defaultComponentState.js.map +0 -0
  153. package/dist/esm/helpers/RNComponents.js +0 -0
  154. package/dist/esm/helpers/RNComponents.js.map +0 -0
  155. package/dist/esm/helpers/addStylesUsingClassname.js +0 -0
  156. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -0
  157. package/dist/esm/helpers/areEqualSets.js +0 -0
  158. package/dist/esm/helpers/areEqualSets.js.map +0 -0
  159. package/dist/esm/helpers/createMediaStyle.js +0 -0
  160. package/dist/esm/helpers/createMediaStyle.js.map +0 -0
  161. package/dist/esm/helpers/createPropMapper.js +9 -8
  162. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  163. package/dist/esm/helpers/createShallowUpdate.js +0 -0
  164. package/dist/esm/helpers/createShallowUpdate.js.map +0 -0
  165. package/dist/esm/helpers/createTamaguiProvider.js +0 -0
  166. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -0
  167. package/dist/esm/helpers/extendStaticConfig.js +4 -0
  168. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  169. package/dist/esm/helpers/fixNativeShadow.js +0 -0
  170. package/dist/esm/helpers/fixNativeShadow.js.map +0 -0
  171. package/dist/esm/helpers/fixNativeShadow.native.js +0 -0
  172. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -0
  173. package/dist/esm/helpers/getExpandedShorthands.js +0 -0
  174. package/dist/esm/helpers/getExpandedShorthands.js.map +0 -0
  175. package/dist/esm/helpers/getSplitStyles.js +34 -31
  176. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  177. package/dist/esm/helpers/getStylesAtomic.js +0 -0
  178. package/dist/esm/helpers/getStylesAtomic.js.map +0 -0
  179. package/dist/esm/helpers/getStylesAtomic.native.js +0 -0
  180. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -0
  181. package/dist/esm/helpers/insertStyleRule.js +1 -1
  182. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  183. package/dist/esm/helpers/isObj.js +0 -0
  184. package/dist/esm/helpers/isObj.js.map +0 -0
  185. package/dist/esm/helpers/isTamaguiElement.js +0 -0
  186. package/dist/esm/helpers/isTamaguiElement.js.map +0 -0
  187. package/dist/esm/helpers/matchMedia.js +0 -0
  188. package/dist/esm/helpers/matchMedia.js.map +0 -0
  189. package/dist/esm/helpers/matchMedia.native.js +0 -0
  190. package/dist/esm/helpers/matchMedia.native.js.map +0 -0
  191. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  192. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  193. package/dist/esm/helpers/themeable.js +0 -1
  194. package/dist/esm/helpers/themeable.js.map +2 -2
  195. package/dist/esm/helpers/validate.js +17 -16
  196. package/dist/esm/helpers/validate.js.map +2 -2
  197. package/dist/esm/helpers/withStaticProperties.js +0 -0
  198. package/dist/esm/helpers/withStaticProperties.js.map +0 -0
  199. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -0
  200. package/dist/esm/helpers/wrapThemeManagerContext.js.map +0 -0
  201. package/dist/esm/hooks/useConstant.js +0 -0
  202. package/dist/esm/hooks/useConstant.js.map +0 -0
  203. package/dist/esm/hooks/useFeatures.js +0 -0
  204. package/dist/esm/hooks/useFeatures.js.map +0 -0
  205. package/dist/esm/hooks/useIsMounted.js +0 -0
  206. package/dist/esm/hooks/useIsMounted.js.map +0 -0
  207. package/dist/esm/hooks/useIsTouchDevice.js +0 -0
  208. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -0
  209. package/dist/esm/hooks/useMedia.js +0 -0
  210. package/dist/esm/hooks/useMedia.js.map +0 -0
  211. package/dist/esm/hooks/usePressable.js +0 -0
  212. package/dist/esm/hooks/usePressable.js.map +0 -0
  213. package/dist/esm/hooks/useTheme.js +14 -16
  214. package/dist/esm/hooks/useTheme.js.map +2 -2
  215. package/dist/esm/hooks/useUnmountEffect.js +0 -0
  216. package/dist/esm/hooks/useUnmountEffect.js.map +0 -0
  217. package/dist/esm/index.js +0 -0
  218. package/dist/esm/index.js.map +0 -0
  219. package/dist/esm/static.js +3 -0
  220. package/dist/esm/static.js.map +2 -2
  221. package/dist/esm/styled.js +0 -0
  222. package/dist/esm/styled.js.map +0 -0
  223. package/dist/esm/types-rnw.js +0 -0
  224. package/dist/esm/types-rnw.js.map +0 -0
  225. package/dist/esm/types.js +0 -0
  226. package/dist/esm/types.js.map +0 -0
  227. package/dist/esm/views/Stack.js +0 -0
  228. package/dist/esm/views/Stack.js.map +0 -0
  229. package/dist/esm/views/Text.js +0 -0
  230. package/dist/esm/views/Text.js.map +0 -0
  231. package/dist/esm/views/TextAncestorContext.js +0 -0
  232. package/dist/esm/views/TextAncestorContext.js.map +0 -0
  233. package/dist/esm/views/Theme.js +0 -3
  234. package/dist/esm/views/Theme.js.map +2 -2
  235. package/dist/esm/views/ThemeInverse.js +0 -0
  236. package/dist/esm/views/ThemeInverse.js.map +0 -0
  237. package/dist/esm/views/ThemeProvider.js +0 -0
  238. package/dist/esm/views/ThemeProvider.js.map +0 -0
  239. package/dist/esm/views/ThemeReset.js +0 -0
  240. package/dist/esm/views/ThemeReset.js.map +0 -0
  241. package/dist/jsx/Tamagui.js +0 -0
  242. package/dist/jsx/ThemeContext.js +0 -0
  243. package/dist/jsx/ThemeManager.js +0 -0
  244. package/dist/jsx/conf.js +0 -0
  245. package/dist/jsx/constants/constants.js +0 -0
  246. package/dist/jsx/constants/platform.js +2 -0
  247. package/dist/jsx/constants/rnw.js +0 -0
  248. package/dist/jsx/contexts/ButtonInsideButtonContext.js +0 -0
  249. package/dist/jsx/createComponent.js +5 -3
  250. package/dist/jsx/createFont.js +0 -0
  251. package/dist/jsx/createShorthands.js +0 -0
  252. package/dist/jsx/createTamagui.js +26 -18
  253. package/dist/jsx/createTheme.js +0 -0
  254. package/dist/jsx/createTokens.js +2 -6
  255. package/dist/jsx/createVariable.js +8 -2
  256. package/dist/jsx/defaultComponentState.js +0 -0
  257. package/dist/jsx/helpers/RNComponents.js +0 -0
  258. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -0
  259. package/dist/jsx/helpers/areEqualSets.js +0 -0
  260. package/dist/jsx/helpers/createMediaStyle.js +0 -0
  261. package/dist/jsx/helpers/createPropMapper.js +9 -8
  262. package/dist/jsx/helpers/createShallowUpdate.js +0 -0
  263. package/dist/jsx/helpers/createTamaguiProvider.js +0 -0
  264. package/dist/jsx/helpers/extendStaticConfig.js +4 -0
  265. package/dist/jsx/helpers/fixNativeShadow.js +0 -0
  266. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -0
  267. package/dist/jsx/helpers/getExpandedShorthands.js +0 -0
  268. package/dist/jsx/helpers/getSplitStyles.js +34 -31
  269. package/dist/jsx/helpers/getStylesAtomic.js +0 -0
  270. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -0
  271. package/dist/jsx/helpers/insertStyleRule.js +1 -1
  272. package/dist/jsx/helpers/isObj.js +0 -0
  273. package/dist/jsx/helpers/isTamaguiElement.js +0 -0
  274. package/dist/jsx/helpers/matchMedia.js +0 -0
  275. package/dist/jsx/helpers/matchMedia.native.js +0 -0
  276. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  277. package/dist/jsx/helpers/themeable.js +0 -1
  278. package/dist/jsx/helpers/validate.js +17 -16
  279. package/dist/jsx/helpers/withStaticProperties.js +0 -0
  280. package/dist/jsx/helpers/wrapThemeManagerContext.js +0 -0
  281. package/dist/jsx/hooks/useConstant.js +0 -0
  282. package/dist/jsx/hooks/useFeatures.js +0 -0
  283. package/dist/jsx/hooks/useIsMounted.js +0 -0
  284. package/dist/jsx/hooks/useIsTouchDevice.js +0 -0
  285. package/dist/jsx/hooks/useMedia.js +0 -0
  286. package/dist/jsx/hooks/usePressable.js +0 -0
  287. package/dist/jsx/hooks/useTheme.js +14 -16
  288. package/dist/jsx/hooks/useUnmountEffect.js +0 -0
  289. package/dist/jsx/index.js +0 -0
  290. package/dist/jsx/static.js +3 -0
  291. package/dist/jsx/styled.js +0 -0
  292. package/dist/jsx/types-rnw.js +0 -0
  293. package/dist/jsx/types.js +0 -0
  294. package/dist/jsx/views/Stack.js +0 -0
  295. package/dist/jsx/views/Text.js +0 -0
  296. package/dist/jsx/views/TextAncestorContext.js +0 -0
  297. package/dist/jsx/views/Theme.js +0 -3
  298. package/dist/jsx/views/ThemeInverse.js +0 -0
  299. package/dist/jsx/views/ThemeProvider.js +0 -0
  300. package/dist/jsx/views/ThemeReset.js +0 -0
  301. package/package.json +6 -6
  302. package/types/Tamagui.d.ts +2 -0
  303. package/types/Tamagui.d.ts.map +1 -1
  304. package/types/conf.d.ts +2 -0
  305. package/types/conf.d.ts.map +1 -1
  306. package/types/constants/platform.d.ts +1 -0
  307. package/types/constants/platform.d.ts.map +1 -1
  308. package/types/createComponent.d.ts.map +1 -1
  309. package/types/createTamagui.d.ts +1 -1
  310. package/types/createTamagui.d.ts.map +1 -1
  311. package/types/createTokens.d.ts +0 -34
  312. package/types/createTokens.d.ts.map +1 -1
  313. package/types/createVariable.d.ts +1 -0
  314. package/types/createVariable.d.ts.map +1 -1
  315. package/types/helpers/createPropMapper.d.ts.map +1 -1
  316. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  317. package/types/helpers/getSplitStyles.d.ts +3 -1
  318. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  319. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  320. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  321. package/types/helpers/themeable.d.ts.map +1 -1
  322. package/types/hooks/useTheme.d.ts.map +1 -1
  323. package/types/static.d.ts +3 -0
  324. package/types/static.d.ts.map +1 -1
  325. package/types/types.d.ts +21 -14
  326. package/types/types.d.ts.map +1 -1
  327. package/types/views/Theme.d.ts.map +1 -1
  328. package/dist/cjs/constants/pseudos.js +0 -37
  329. package/dist/cjs/constants/pseudos.js.map +0 -7
  330. package/dist/cjs/createShallowUpdate.js +0 -1
  331. package/dist/cjs/createShallowUpdate.js.map +0 -7
  332. package/dist/cjs/devtools.js +0 -32
  333. package/dist/cjs/devtools.js.map +0 -7
  334. package/dist/cjs/spacedChildren.js +0 -86
  335. package/dist/cjs/spacedChildren.js.map +0 -7
  336. package/dist/cjs/tamagui-base.css +0 -8
  337. package/dist/cjs/tamagui-base.css.map +0 -7
  338. package/dist/esm/constants/pseudos.js +0 -18
  339. package/dist/esm/constants/pseudos.js.map +0 -7
  340. package/dist/esm/createShallowUpdate.js +0 -1
  341. package/dist/esm/createShallowUpdate.js.map +0 -7
  342. package/dist/esm/devtools.js +0 -14
  343. package/dist/esm/devtools.js.map +0 -7
  344. package/dist/esm/spacedChildren.js +0 -52
  345. package/dist/esm/spacedChildren.js.map +0 -7
  346. package/dist/esm/tamagui-base.css +0 -8
  347. package/dist/esm/tamagui-base.css.map +0 -7
  348. package/dist/jsx/constants/pseudos.js +0 -17
  349. package/dist/jsx/createShallowUpdate.js +0 -0
  350. package/dist/jsx/devtools.js +0 -13
  351. package/dist/jsx/spacedChildren.js +0 -44
  352. package/dist/jsx/tamagui-base.css +0 -7
  353. package/types/spacedChildren.d.ts +0 -9
  354. package/types/spacedChildren.d.ts.map +0 -1
@@ -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 { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { areEqualSets } from '../helpers/areEqualSets'\nimport { ThemeContext } from '../ThemeContext'\nimport { ThemeManager, ThemeManagerContext, emptyManager } from '../ThemeManager'\nimport { ThemeObject } from '../types'\nimport { useConstant } from './useConstant'\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?: any,\n forceUpdate?: any\n): ThemeObject => {\n const { name, theme, themes, themeManager, className, didChangeTheme } = useChangeThemeEffect(\n themeName,\n componentName,\n props,\n forceUpdate\n )\n\n if (process.env.NODE_ENV === 'development') {\n if (props?.['debug'] === 'verbose') {\n console.log(' \u00BB 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 return useMemo(() => {\n if (!theme) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('No theme', { themeName, theme, componentName, className })\n }\n return themes[getConfig().defaultTheme || 'light' || Object.keys(themes)[0]]\n }\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 (!name || key === '__proto__' || typeof key === 'symbol') {\n // TODO make this pattern better\n if (key === GetThemeManager) {\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.log('did change', { themeName, didChangeTheme, name, componentName }, themeManager?.parentName)\n }\n }\n if (!didChangeTheme) {\n return null\n }\n // TODO\n // console.log('DID CHANGE THEME')\n return themeManager\n }\n return Reflect.get(_, key)\n }\n if (typeof key !== 'string' || key === '$typeof') {\n return Reflect.get(_, key)\n }\n if (process.env.NODE_ENV === 'development') {\n if (key === '__state') {\n return state.current\n }\n }\n if (key === 'name') {\n return name\n }\n if (key === 'className') {\n return className\n }\n if (!themeManager) {\n console.error('No themeManager')\n return\n }\n if (typeof key === 'string') {\n // auto convert variables to plain\n if (key[0] === '$') {\n key = key.slice(1)\n }\n const val = themeManager.getValue(key)\n if (val) {\n if (state.current.isRendering) {\n state.current.keys.add(key)\n if (process.env.NODE_ENV === 'development') {\n if (props?.['debug'] === 'verbose') {\n console.log(' \u00BB tracking theme key', key)\n }\n }\n }\n return val\n }\n // react native debuger uses toJSON\n if (process.env.NODE_ENV === 'development') {\n console.log(`No theme value \"${String(key)}\" in ${name}`)\n }\n }\n return Reflect.get(_, key)\n },\n })\n }, [name, theme, className, didChangeTheme])\n}\n\nconst GetThemeManager = Symbol('GetThemeManager')\n\nexport const getThemeManagerIfChanged = (theme: any) => {\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 useChangeThemeEffect = (\n name?: string | null,\n componentName?: string,\n props?: any,\n forceUpdateProp?: any\n) => {\n const debug = props && props['debug']\n const parentManager = useContext(ThemeManagerContext) || emptyManager\n const { themes } = useContext(ThemeContext)!\n const next = parentManager.getNextTheme({ name, componentName, themes }, props)\n const forceUpdate = forceUpdateProp || useForceUpdate()\n const themeManager = useConstant<ThemeManager | null>(() => {\n if (!next) {\n return null\n }\n return new ThemeManager(next.name, next.theme, parentManager)\n })\n\n if (typeof document !== 'undefined') {\n useLayoutEffect(() => {\n if (!themeManager) return\n if (next?.name) {\n themeManager.update(next)\n }\n return parentManager.onChangeTheme(() => {\n const next = parentManager.getNextTheme({ name, componentName, themes }, debug)\n if (!next) return\n if (themeManager.update(next)) {\n forceUpdate()\n }\n })\n }, [themes, name, componentName, debug, next?.name])\n }\n\n const didChangeTheme = next && parentManager && next.name !== parentManager.fullName\n\n return {\n ...(parentManager && {\n name: parentManager.name,\n theme: parentManager.theme,\n }),\n ...next,\n didChangeTheme,\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 { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { areEqualSets } from '../helpers/areEqualSets'\nimport { ThemeContext } from '../ThemeContext'\nimport { ThemeManager, ThemeManagerContext, emptyManager } from '../ThemeManager'\nimport { ThemeObject } from '../types'\nimport { useConstant } from './useConstant'\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?: any,\n forceUpdate?: any\n): ThemeObject => {\n const { name, theme, themes, themeManager, className, didChangeTheme } = useChangeThemeEffect(\n themeName,\n componentName,\n props,\n forceUpdate\n )\n\n if (process.env.NODE_ENV === 'development') {\n if (props?.['debug'] === 'verbose') {\n console.log(' \u00BB 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 return useMemo(() => {\n if (!theme) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('No theme', { themeName, theme, componentName, className })\n }\n return themes[getConfig().defaultTheme || 'light' || Object.keys(themes)[0]]\n }\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 (!name || key === '__proto__' || typeof key === 'symbol') {\n // TODO make this pattern better\n if (key === GetThemeManager) {\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.log('did change', { themeName, didChangeTheme, name, componentName }, themeManager?.parentName)\n }\n }\n if (!didChangeTheme) {\n return null\n }\n // TODO\n // console.log('DID CHANGE THEME')\n return themeManager\n }\n return Reflect.get(_, key)\n }\n if (typeof key !== 'string' || key === '$typeof') {\n return Reflect.get(_, key)\n }\n if (process.env.NODE_ENV === 'development') {\n if (key === '__state') {\n return state.current\n }\n }\n if (key === 'name') {\n return name\n }\n if (key === 'className') {\n return className\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 const val = themeManager.getValue(key)\n if (val) {\n if (state.current.isRendering) {\n state.current.keys.add(key)\n if (process.env.NODE_ENV === 'development') {\n if (props?.['debug'] === 'verbose') {\n console.log(' \u00BB tracking theme key', key)\n }\n }\n }\n return val\n }\n // react native debuger uses toJSON\n if (process.env.NODE_ENV === 'development') {\n console.log(`No theme value \"${String(key)}\" in ${name}`)\n }\n return Reflect.get(_, key)\n },\n })\n }, [name, theme, className, didChangeTheme])\n}\n\nconst GetThemeManager = Symbol('GetThemeManager')\n\nexport const getThemeManagerIfChanged = (theme: any) => {\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 useChangeThemeEffect = (\n name?: string | null,\n componentName?: string,\n props?: any,\n forceUpdateProp?: any\n) => {\n const debug = props && props['debug']\n const parentManager = useContext(ThemeManagerContext) || emptyManager\n const { themes } = useContext(ThemeContext)!\n const next = parentManager.getNextTheme({ name, componentName, themes }, props)\n const forceUpdate = forceUpdateProp || useForceUpdate()\n const themeManager = useConstant<ThemeManager | null>(() => {\n if (!next) {\n return null\n }\n return new ThemeManager(next.name, next.theme, parentManager)\n })\n\n if (typeof document !== 'undefined') {\n useLayoutEffect(() => {\n if (!themeManager) return\n if (next?.name) {\n themeManager.update(next)\n }\n return parentManager.onChangeTheme(() => {\n const next = parentManager.getNextTheme({ name, componentName, themes }, debug)\n if (!next) return\n if (themeManager.update(next)) {\n forceUpdate()\n }\n })\n }, [themes, name, componentName, debug, next?.name])\n }\n\n const didChangeTheme = next && parentManager && next.name !== parentManager.fullName\n\n return {\n ...(parentManager && {\n name: parentManager.name,\n theme: parentManager.theme,\n }),\n ...next,\n didChangeTheme,\n themes,\n themeManager,\n }\n}\n"],
5
+ "mappings": ";;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAQO,MAAM,WAAW,wBACtB,WACA,eACA,OACA,gBACgB;AAChB,QAAM,EAAE,MAAM,OAAO,QAAQ,cAAc,WAAW,mBAAmB,qBACvE,WACA,eACA,OACA,WACF;AAEA,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,gCAAQ,cAAa,WAAW;AAClC,cAAQ,IAAI,mBAAgB,EAAE,WAAW,eAAe,MAAM,UAAU,CAAC;AAAA,IAC3E;AAAA,EACF;AAEA,QAAM,QAAQ,OAAO;AACrB,MAAI,CAAC,MAAM,SAAS;AAClB,UAAM,UAAU;AAAA,MACd,MAAM,CAAC;AAAA,MACP,MAAM,oBAAI,IAAI;AAAA,MACd,aAAa;AAAA,IACf;AAAA,EACF;AACA,QAAM,QAAQ,cAAc;AAG5B,4BAA0B,MAAM;AAC9B,UAAM,KAAK,MAAM;AACjB,OAAG,cAAc;AACjB,UAAM,MAAM,6CAAc,KAAK,IAAI,GAAG;AACtC,QAAI,CAAC,OAAO,CAAC,aAAa,GAAG,MAAM,GAAG,GAAG;AACvC,mDAAc,MAAM,GAAG,MAAM,GAAG;AAAA,IAClC;AAAA,EACF,CAAC;AAED,SAAO,QAAQ,MAAM;AACnB,QAAI,CAAC,OAAO;AACV,UAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,gBAAQ,KAAK,YAAY,EAAE,WAAW,OAAO,eAAe,UAAU,CAAC;AAAA,MACzE;AACA,aAAO,OAAO,UAAU,EAAE,gBAAgB;AAAA,IAC5C;AACA,WAAO,IAAI,MAAM,OAAO;AAAA,MACtB,IAAI,GAAG,KAAK;AACV,YAAI,OAAO,QAAQ,UAAU;AAC3B,cAAI,IAAI,OAAO,KAAK;AAClB,kBAAM,IAAI,MAAM,CAAC;AAAA,UACnB;AAAA,QACF;AACA,eAAO,QAAQ,IAAI,OAAO,GAAG;AAAA,MAC/B;AAAA,MACA,IAAI,GAAG,KAAK;AACV,YAAI,CAAC,QAAQ,QAAQ,eAAe,OAAO,QAAQ,UAAU;AAE3D,cAAI,QAAQ,iBAAiB;AAC3B,gBAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,kBAAI,MAAM,UAAU;AAElB,wBAAQ,IAAI,cAAc,EAAE,WAAW,gBAAgB,MAAM,cAAc,GAAG,6CAAc,UAAU;AAAA,cACxG;AAAA,YACF;AACA,gBAAI,CAAC,gBAAgB;AACnB,qBAAO;AAAA,YACT;AAGA,mBAAO;AAAA,UACT;AACA,iBAAO,QAAQ,IAAI,GAAG,GAAG;AAAA,QAC3B;AACA,YAAI,OAAO,QAAQ,YAAY,QAAQ,WAAW;AAChD,iBAAO,QAAQ,IAAI,GAAG,GAAG;AAAA,QAC3B;AACA,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,cAAI,QAAQ,WAAW;AACrB,mBAAO,MAAM;AAAA,UACf;AAAA,QACF;AACA,YAAI,QAAQ,QAAQ;AAClB,iBAAO;AAAA,QACT;AACA,YAAI,QAAQ,aAAa;AACvB,iBAAO;AAAA,QACT;AACA,YAAI,CAAC,cAAc;AACjB,kBAAQ,MAAM,iBAAiB;AAC/B;AAAA,QACF;AAEA,YAAI,IAAI,OAAO,KAAK;AAClB,gBAAM,IAAI,MAAM,CAAC;AAAA,QACnB;AACA,cAAM,MAAM,aAAa,SAAS,GAAG;AACrC,YAAI,KAAK;AACP,cAAI,MAAM,QAAQ,aAAa;AAC7B,kBAAM,QAAQ,KAAK,IAAI,GAAG;AAC1B,gBAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,kBAAI,gCAAQ,cAAa,WAAW;AAClC,wBAAQ,IAAI,6BAA0B,GAAG;AAAA,cAC3C;AAAA,YACF;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,YAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,kBAAQ,IAAI,mBAAmB,OAAO,GAAG,SAAS,MAAM;AAAA,QAC1D;AACA,eAAO,QAAQ,IAAI,GAAG,GAAG;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,OAAO,WAAW,cAAc,CAAC;AAC7C,GApHwB;AAsHxB,MAAM,kBAAkB,OAAO,iBAAiB;AAEzC,MAAM,2BAA2B,wBAAC,UAAe;AACtD,SAAO,+BAAQ;AACjB,GAFwC;AAIjC,MAAM,eAAe,wBAAC,SAA6B;AACxD,QAAM,SAAS,WAAW,mBAAmB;AAC7C,QAAM,CAAC,MAAM,WAAW,SAAS,kCAAQ,SAAQ,EAAE;AAEnD,4BAA0B,MAAM;AAC9B,QAAI,CAAC;AAAQ;AACb,WAAO,OAAO,cAAc,CAAC,MAAM,YAAY;AAC7C,YAAM,QAAO,8BAAM,UAAS,QAAQ,cAAc,OAAO;AACzD,UAAI,CAAC;AAAM;AACX,cAAQ,KAAI;AAAA,IACd,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,CAAC;AAEX,SAAO;AACT,GAd4B;AAgBrB,MAAM,sBAAsB,6BAAM;AA7JzC;AA8JE,SAAO,iBAAW,YAAY,MAAvB,mBAA0B;AACnC,GAFmC;AAI5B,MAAM,uBAAuB,wBAClC,MACA,eACA,OACA,oBACG;AACH,QAAM,QAAQ,SAAS,MAAM;AAC7B,QAAM,gBAAgB,WAAW,mBAAmB,KAAK;AACzD,QAAM,EAAE,WAAW,WAAW,YAAY;AAC1C,QAAM,OAAO,cAAc,aAAa,EAAE,MAAM,eAAe,OAAO,GAAG,KAAK;AAC9E,QAAM,cAAc,mBAAmB,eAAe;AACtD,QAAM,eAAe,YAAiC,MAAM;AAC1D,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AACA,WAAO,IAAI,aAAa,KAAK,MAAM,KAAK,OAAO,aAAa;AAAA,EAC9D,CAAC;AAED,MAAI,OAAO,aAAa,aAAa;AACnC,oBAAgB,MAAM;AACpB,UAAI,CAAC;AAAc;AACnB,UAAI,6BAAM,MAAM;AACd,qBAAa,OAAO,IAAI;AAAA,MAC1B;AACA,aAAO,cAAc,cAAc,MAAM;AACvC,cAAM,QAAO,cAAc,aAAa,EAAE,MAAM,eAAe,OAAO,GAAG,KAAK;AAC9E,YAAI,CAAC;AAAM;AACX,YAAI,aAAa,OAAO,KAAI,GAAG;AAC7B,sBAAY;AAAA,QACd;AAAA,MACF,CAAC;AAAA,IACH,GAAG,CAAC,QAAQ,MAAM,eAAe,OAAO,6BAAM,IAAI,CAAC;AAAA,EACrD;AAEA,QAAM,iBAAiB,QAAQ,iBAAiB,KAAK,SAAS,cAAc;AAE5E,SAAO;AAAA,OACD,iBAAiB;AAAA,MACnB,MAAM,cAAc;AAAA,MACpB,OAAO,cAAc;AAAA,IACvB;AAAA,OACG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF,GA9CoC;",
6
6
  "names": []
7
7
  }
File without changes
File without changes
package/dist/esm/index.js CHANGED
File without changes
File without changes
@@ -3,12 +3,15 @@ export * from "./createComponent";
3
3
  export * from "./createFont";
4
4
  export * from "./createTokens";
5
5
  export * from "./createTamagui";
6
+ export * from "./createVariable";
6
7
  export * from "./constants/constants";
7
8
  export * from "./hooks/useMedia";
8
9
  export * from "./hooks/useTheme";
9
10
  export * from "./helpers/isObj";
10
11
  export * from "./helpers/getStylesAtomic";
12
+ export * from "./helpers/proxyThemeVariables";
11
13
  export * from "./helpers/getSplitStyles";
12
14
  export * from "@tamagui/helpers";
13
15
  export * from "./constants/rnw";
16
+ export * from "./types";
14
17
  //# sourceMappingURL=static.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/static.ts"],
4
- "sourcesContent": ["// only stuff that gets extracted or needed by tamagui-static\n\nexport * from './styled'\nexport * from './createComponent'\nexport * from './createFont'\nexport * from './createTokens'\nexport * from './createTamagui'\nexport * from './constants/constants'\n\nexport * from './hooks/useMedia'\nexport * from './hooks/useTheme'\n\nexport * from './helpers/isObj'\nexport * from './helpers/getStylesAtomic'\nexport * from './helpers/getSplitStyles'\nexport * from '@tamagui/helpers'\n\nexport * from './constants/rnw'\n"],
5
- "mappings": "AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;",
4
+ "sourcesContent": ["// only stuff that gets extracted or needed by tamagui-static\n\nexport * from './styled'\nexport * from './createComponent'\nexport * from './createFont'\nexport * from './createTokens'\nexport * from './createTamagui'\nexport * from './createVariable'\nexport * from './constants/constants'\n\nexport * from './hooks/useMedia'\nexport * from './hooks/useTheme'\n\nexport * from './helpers/isObj'\nexport * from './helpers/getStylesAtomic'\nexport * from './helpers/proxyThemeVariables'\nexport * from './helpers/getSplitStyles'\nexport * from '@tamagui/helpers'\n\nexport * from './constants/rnw'\n\nexport * from './types'\n"],
5
+ "mappings": "AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;",
6
6
  "names": []
7
7
  }
File without changes
File without changes
File without changes
File without changes
package/dist/esm/types.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -15,9 +15,6 @@ const Theme = memo(/* @__PURE__ */ __name(function Theme2(props) {
15
15
  return props.children;
16
16
  }
17
17
  const contents = useMemo(() => wrapThemeManagerContext(props.children, themeManager), [props.children, themeManager]);
18
- if (props.componentName === "Drawer") {
19
- console.log("ok?", className, themeManager);
20
- }
21
18
  if (isWeb) {
22
19
  return /* @__PURE__ */ React.createElement("span", {
23
20
  className: [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/views/Theme.tsx"],
4
- "sourcesContent": ["import React, { memo, useMemo } from 'react'\n\nimport { isWeb } from '../constants/platform'\nimport { wrapThemeManagerContext } from '../helpers/wrapThemeManagerContext'\nimport { useChangeThemeEffect } from '../hooks/useTheme'\nimport { ThemeName } from '../types'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\nexport type ThemeProps = {\n className?: string\n disableThemeClass?: boolean\n name: Exclude<ThemeName, number> | null\n componentName?: string\n children?: any\n debug?: boolean\n}\n\nexport const Theme = memo(function Theme(props: ThemeProps) {\n const { name, theme, themeManager, themes, className } = useChangeThemeEffect(\n props.name,\n props.componentName,\n props\n )\n\n if (!themes || !name || !theme) {\n if (name && !theme && process.env.NODE_ENV === 'development') {\n console.warn(`No theme found by name ${name}`)\n }\n return props.children\n }\n\n // memo here, changing theme without re-rendering all children is a critical optimization\n // may require some effort of end user to memoize but without this memo they'd have no option\n const contents = useMemo(\n () => wrapThemeManagerContext(props.children, themeManager),\n [props.children, themeManager]\n )\n\n if (props.componentName === 'Drawer') {\n console.log('ok?', className, themeManager)\n }\n\n if (isWeb) {\n return (\n <span\n className={[\n `tui_Theme`,\n ...(!props.disableThemeClass ? [props.className, className].filter(Boolean) : []),\n ].join(' ')}\n style={{\n display: 'contents',\n // in order to provide currentColor, set color by default\n color: themes[name]?.color?.toString(),\n }}\n >\n {contents}\n </span>\n )\n }\n\n return contents\n})\n"],
5
- "mappings": ";;AAAA;AAEA;AACA;AACA;AAIA,MAAM;AAWC,MAAM,QAAQ,KAAK,uCAAe,OAAmB;AAnB5D;AAoBE,QAAM,EAAE,MAAM,OAAO,cAAc,QAAQ,cAAc,qBACvD,MAAM,MACN,MAAM,eACN,KACF;AAEA,MAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;AAC9B,QAAI,QAAQ,CAAC,SAAS,QAAQ,IAAI,aAAa,eAAe;AAC5D,cAAQ,KAAK,0BAA0B,MAAM;AAAA,IAC/C;AACA,WAAO,MAAM;AAAA,EACf;AAIA,QAAM,WAAW,QACf,MAAM,wBAAwB,MAAM,UAAU,YAAY,GAC1D,CAAC,MAAM,UAAU,YAAY,CAC/B;AAEA,MAAI,MAAM,kBAAkB,UAAU;AACpC,YAAQ,IAAI,OAAO,WAAW,YAAY;AAAA,EAC5C;AAEA,MAAI,OAAO;AACT,WACE,oCAAC;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,GAAI,CAAC,MAAM,oBAAoB,CAAC,MAAM,WAAW,SAAS,EAAE,OAAO,OAAO,IAAI,CAAC;AAAA,MACjF,EAAE,KAAK,GAAG;AAAA,MACV,OAAO;AAAA,QACL,SAAS;AAAA,QAET,OAAO,mBAAO,UAAP,mBAAc,UAAd,mBAAqB;AAAA,MAC9B;AAAA,OAEC,QACH;AAAA,EAEJ;AAEA,SAAO;AACT,GA5C0B,QA4CzB;",
4
+ "sourcesContent": ["import React, { memo, useMemo } from 'react'\n\nimport { isWeb } from '../constants/platform'\nimport { wrapThemeManagerContext } from '../helpers/wrapThemeManagerContext'\nimport { useChangeThemeEffect } from '../hooks/useTheme'\nimport { ThemeName } from '../types'\n\n// bugfix esbuild strips react jsx: 'preserve'\nReact['createElement']\n\nexport type ThemeProps = {\n className?: string\n disableThemeClass?: boolean\n name: Exclude<ThemeName, number> | null\n componentName?: string\n children?: any\n debug?: boolean\n}\n\nexport const Theme = memo(function Theme(props: ThemeProps) {\n const { name, theme, themeManager, themes, className } = useChangeThemeEffect(\n props.name,\n props.componentName,\n props\n )\n\n if (!themes || !name || !theme) {\n if (name && !theme && process.env.NODE_ENV === 'development') {\n console.warn(`No theme found by name ${name}`)\n }\n return props.children\n }\n\n // memo here, changing theme without re-rendering all children is a critical optimization\n // may require some effort of end user to memoize but without this memo they'd have no option\n const contents = useMemo(\n () => wrapThemeManagerContext(props.children, themeManager),\n [props.children, themeManager]\n )\n\n if (isWeb) {\n return (\n <span\n className={[\n `tui_Theme`,\n ...(!props.disableThemeClass ? [props.className, className].filter(Boolean) : []),\n ].join(' ')}\n style={{\n display: 'contents',\n // in order to provide currentColor, set color by default\n color: themes[name]?.color?.toString(),\n }}\n >\n {contents}\n </span>\n )\n }\n\n return contents\n})\n"],
5
+ "mappings": ";;AAAA;AAEA;AACA;AACA;AAIA,MAAM;AAWC,MAAM,QAAQ,KAAK,uCAAe,OAAmB;AAnB5D;AAoBE,QAAM,EAAE,MAAM,OAAO,cAAc,QAAQ,cAAc,qBACvD,MAAM,MACN,MAAM,eACN,KACF;AAEA,MAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;AAC9B,QAAI,QAAQ,CAAC,SAAS,QAAQ,IAAI,aAAa,eAAe;AAC5D,cAAQ,KAAK,0BAA0B,MAAM;AAAA,IAC/C;AACA,WAAO,MAAM;AAAA,EACf;AAIA,QAAM,WAAW,QACf,MAAM,wBAAwB,MAAM,UAAU,YAAY,GAC1D,CAAC,MAAM,UAAU,YAAY,CAC/B;AAEA,MAAI,OAAO;AACT,WACE,oCAAC;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,GAAI,CAAC,MAAM,oBAAoB,CAAC,MAAM,WAAW,SAAS,EAAE,OAAO,OAAO,IAAI,CAAC;AAAA,MACjF,EAAE,KAAK,GAAG;AAAA,MACV,OAAO;AAAA,QACL,SAAS;AAAA,QAET,OAAO,mBAAO,UAAP,mBAAc,UAAd,mBAAqB;AAAA,MAC9B;AAAA,OAEC,QACH;AAAA,EAEJ;AAEA,SAAO;AACT,GAxC0B,QAwCzB;",
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
package/dist/jsx/conf.js CHANGED
File without changes
File without changes
@@ -5,6 +5,7 @@ const isAndroid = ((_a = Platform) == null ? void 0 : _a.OS) === "android";
5
5
  const isIOS = ((_b = Platform) == null ? void 0 : _b.OS) === "ios";
6
6
  const isWeb = process.env.TAMAGUI_TARGET !== "native" && (process.env.TAMAGUI_TARGET === "web" || ((_c = Platform) == null ? void 0 : _c.OS) === "web");
7
7
  const isSSR = isWeb && typeof window === "undefined";
8
+ const isClient = isWeb && typeof window !== "undefined";
8
9
  const useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;
9
10
  const isChrome = typeof navigator !== "undefined" && /Chrome/.test(navigator.userAgent || "");
10
11
  const supportsTouchWeb = typeof window !== "undefined" && "ontouchstart" in window;
@@ -13,6 +14,7 @@ const isWebIOS = isWeb && typeof navigator !== "undefined" && (/iPad|iPhone|iPod
13
14
  export {
14
15
  isAndroid,
15
16
  isChrome,
17
+ isClient,
16
18
  isIOS,
17
19
  isSSR,
18
20
  isTouchDevice,
File without changes
File without changes
@@ -23,6 +23,7 @@ import { createShallowUpdate } from "./helpers/createShallowUpdate";
23
23
  import { extendStaticConfig, parseStaticConfig } from "./helpers/extendStaticConfig";
24
24
  import { getSplitStyles } from "./helpers/getSplitStyles";
25
25
  import { getAllSelectors } from "./helpers/insertStyleRule";
26
+ import { proxyThemeVariables } from "./helpers/proxyThemeVariables";
26
27
  import { wrapThemeManagerContext } from "./helpers/wrapThemeManagerContext";
27
28
  import { useFeatures } from "./hooks/useFeatures";
28
29
  import { usePressable } from "./hooks/usePressable";
@@ -50,6 +51,7 @@ function mergeShorthands({ defaultProps }, { shorthands }) {
50
51
  }
51
52
  }
52
53
  __name(mergeShorthands, "mergeShorthands");
54
+ let initialTheme;
53
55
  function createComponent(configIn, ParentComponent) {
54
56
  const staticConfig = (() => {
55
57
  const config = extendStaticConfig(configIn, ParentComponent);
@@ -66,7 +68,6 @@ function createComponent(configIn, ParentComponent) {
66
68
  let avoidClasses = true;
67
69
  let defaultNativeStyle;
68
70
  let defaultNativeStyleSheet;
69
- let initialTheme;
70
71
  let initialSplitStyles;
71
72
  function addPseudoToStyles(styles, name, pseudos) {
72
73
  const pseudoStyle = pseudos[name];
@@ -439,14 +440,15 @@ function createComponent(configIn, ParentComponent) {
439
440
  avoidClasses = !!((_a = tamaguiConfig.animations) == null ? void 0 : _a.avoidClasses);
440
441
  AnimatedText = (_b = tamaguiConfig.animations) == null ? void 0 : _b.Text;
441
442
  AnimatedView = (_c = tamaguiConfig == null ? void 0 : tamaguiConfig.animations) == null ? void 0 : _c.View;
442
- initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
443
+ initialTheme = initialTheme || proxyThemeVariables(conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]);
443
444
  initialSplitStyles = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, {
444
445
  mounted: true,
445
446
  hover: false,
446
447
  press: false,
447
448
  pressIn: false,
448
449
  focus: false,
449
- resolveVariablesAs: "both"
450
+ resolveVariablesAs: "both",
451
+ keepVariantsAsProps: true
450
452
  });
451
453
  const { style, viewProps } = initialSplitStyles;
452
454
  defaultNativeStyle = {};
File without changes
File without changes
@@ -47,6 +47,7 @@ function createTamagui(config) {
47
47
  addVar(val[fkey]);
48
48
  } else {
49
49
  for (const fskey in val[fkey]) {
50
+ console.log("add", fkey, fskey, val[fkey][fskey]);
50
51
  addVar(val[fkey][fskey]);
51
52
  }
52
53
  }
@@ -106,11 +107,35 @@ ${vars}
106
107
  };
107
108
  })();
108
109
  const tokensParsed = parseTokens(config.tokens);
110
+ const fontsParsed = (() => {
111
+ if (!config.fonts) {
112
+ throw new Error(`No fonts defined!`);
113
+ }
114
+ const res = {};
115
+ for (const familyName in config.fonts) {
116
+ const family = config.fonts[familyName];
117
+ const parsed = {};
118
+ for (const attrKey in family) {
119
+ const attr = family[attrKey];
120
+ if (attrKey === "family") {
121
+ parsed[attrKey] = attr;
122
+ continue;
123
+ }
124
+ parsed[attrKey] = Object.keys(attr).reduce((acc, cur) => {
125
+ acc[`$${cur}`] = attr[cur];
126
+ return acc;
127
+ }, {});
128
+ }
129
+ res[`$${familyName}`] = parsed;
130
+ }
131
+ return res;
132
+ })();
109
133
  const getCSS = /* @__PURE__ */ __name(() => {
110
134
  return `${themeConfig.css}
111
135
  ${getInsertedRules().join("\n")}`;
112
136
  }, "getCSS");
113
137
  const next = {
138
+ fonts: {},
114
139
  animations: {},
115
140
  shorthands: {},
116
141
  media: {},
@@ -120,6 +145,7 @@ ${getInsertedRules().join("\n")}`;
120
145
  defaultTheme: "light",
121
146
  ...config
122
147
  }),
148
+ fontsParsed,
123
149
  themeConfig,
124
150
  tokensParsed,
125
151
  parsed: true,
@@ -138,24 +164,6 @@ const parseTokens = /* @__PURE__ */ __name((tokens) => {
138
164
  const res = {};
139
165
  for (const key in tokens) {
140
166
  res[key] = {};
141
- if (key === "font") {
142
- for (const family in tokens.font) {
143
- const obj = {};
144
- res.font[`$${family}`] = obj;
145
- for (const attrKey in tokens.font[family]) {
146
- const attr = tokens.font[family][attrKey];
147
- if (attrKey === "family") {
148
- obj[attrKey] = attr;
149
- continue;
150
- }
151
- obj[attrKey] = Object.keys(attr).reduce((acc, cur) => {
152
- acc[`$${cur}`] = attr[cur];
153
- return acc;
154
- }, {});
155
- }
156
- }
157
- continue;
158
- }
159
167
  for (const skey in tokens[key]) {
160
168
  res[key][`$${skey}`] = tokens[key][skey];
161
169
  }
File without changes
@@ -6,17 +6,13 @@ function createTokens(tokens) {
6
6
  if (process.env.NODE_ENV === "development") {
7
7
  validateTokens(tokens);
8
8
  }
9
- return setupTokens(tokens);
10
- }
11
- __name(createTokens, "createTokens");
12
- function setupTokens(tokens) {
13
9
  return mapTokensToVariables(tokens);
14
10
  }
15
- __name(setupTokens, "setupTokens");
11
+ __name(createTokens, "createTokens");
16
12
  const mapTokensToVariables = /* @__PURE__ */ __name((tokens, parentPath = "") => {
17
13
  const res = {};
18
14
  for (const key in tokens) {
19
- const val = tokens[key];
15
+ let val = tokens[key];
20
16
  const name = parentPath ? `${parentPath}-${key}` : key;
21
17
  if (val && typeof val === "object") {
22
18
  res[key] = mapTokensToVariables(tokens[key], name);
@@ -22,12 +22,17 @@ function isVariable(v) {
22
22
  }
23
23
  __name(isVariable, "isVariable");
24
24
  function getVariableValue(v) {
25
- if (isVariable(v)) {
25
+ if (isVariable(v))
26
26
  return v.val;
27
- }
28
27
  return v;
29
28
  }
30
29
  __name(getVariableValue, "getVariableValue");
30
+ function getVariableName(v) {
31
+ if (isVariable(v))
32
+ return v.name;
33
+ return v;
34
+ }
35
+ __name(getVariableName, "getVariableName");
31
36
  const createCSSVariable = /* @__PURE__ */ __name((val, includeVar = true) => {
32
37
  const name = val.replace(/[^a-z0-9\_\-]+/i, "_");
33
38
  return includeVar ? `var(--${name})` : name;
@@ -37,6 +42,7 @@ export {
37
42
  Variable,
38
43
  createCSSVariable,
39
44
  createVariable,
45
+ getVariableName,
40
46
  getVariableValue,
41
47
  isVariable
42
48
  };
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -43,7 +43,9 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
43
43
  let variantValue = getVariantFunction(variant, key, value);
44
44
  if (variantValue) {
45
45
  if (typeof variantValue === "function") {
46
- variantValue = variantValue(value, {
46
+ const fn = variantValue;
47
+ variantValue = fn(value, {
48
+ fonts: conf.fontsParsed,
47
49
  tokens: conf.tokensParsed,
48
50
  theme,
49
51
  props: avoidDefaultProps ? props : new Proxy(props, {
@@ -114,25 +116,24 @@ const fontShorthand = {
114
116
  fontSize: "size",
115
117
  fontWeight: "weight"
116
118
  };
117
- const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed }, theme, fontFamily = "$body", resolveAs) => {
119
+ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed }, theme, fontFamily = "$body", resolveAs) => {
118
120
  var _a, _b, _c;
119
121
  let valOrVar;
120
122
  let hasSet = false;
121
- const valueName = value[0] === "$" ? value.slice(1) : value;
122
- if (valueName in theme) {
123
- valOrVar = theme[valueName];
123
+ if (value in theme) {
124
+ valOrVar = theme[value];
124
125
  hasSet = true;
125
126
  } else {
126
127
  switch (key) {
127
128
  case "fontFamily":
128
- valOrVar = ((_a = tokensParsed.font[value]) == null ? void 0 : _a.family) || value;
129
+ valOrVar = ((_a = fontsParsed[value]) == null ? void 0 : _a.family) || value;
129
130
  hasSet = true;
130
131
  break;
131
132
  case "fontSize":
132
133
  case "lineHeight":
133
134
  case "letterSpacing":
134
135
  case "fontWeight":
135
- valOrVar = ((_c = (_b = tokensParsed.font[fontFamily]) == null ? void 0 : _b[fontShorthand[key] || key]) == null ? void 0 : _c[value]) || value;
136
+ valOrVar = ((_c = (_b = fontsParsed[fontFamily]) == null ? void 0 : _b[fontShorthand[key] || key]) == null ? void 0 : _c[value]) || value;
136
137
  hasSet = true;
137
138
  break;
138
139
  }
@@ -158,7 +159,7 @@ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed }, theme, fo
158
159
  }
159
160
  if (process.env.NODE_ENV === "development") {
160
161
  if (value && value[0] === "$") {
161
- console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, value);
162
+ console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed);
162
163
  return null;
163
164
  }
164
165
  }
File without changes
File without changes
@@ -35,6 +35,10 @@ function extendStaticConfig(config, parent) {
35
35
  ...parent.staticConfig.validStyles,
36
36
  ...config.validStyles
37
37
  } : parent.staticConfig.validStyles || stylePropsView,
38
+ defaultVariants: {
39
+ ...parent.staticConfig.defaultVariants,
40
+ ...config.defaultVariants
41
+ },
38
42
  defaultProps: {
39
43
  ...parent.staticConfig.defaultProps,
40
44
  ...parent.staticConfig.defaultVariants,
File without changes
File without changes
File without changes
@@ -8,7 +8,7 @@ import {
8
8
  validStyles
9
9
  } from "@tamagui/helpers";
10
10
  import { getConfig } from "../conf";
11
- import { isWeb } from "../constants/platform";
11
+ import { isClient, isWeb } from "../constants/platform";
12
12
  import { mediaQueryConfig, mediaState } from "../hooks/useMedia";
13
13
  import { createMediaStyle } from "./createMediaStyle";
14
14
  import { fixNativeShadow } from "./fixNativeShadow";
@@ -37,38 +37,42 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
37
37
  let cur = null;
38
38
  let transforms = {};
39
39
  function mergeClassName(key, val) {
40
- if (!val)
40
+ if (!val) {
41
41
  return;
42
+ }
42
43
  if (val.startsWith("_transform-")) {
43
44
  const isMediaOrPseudo = key !== "transform";
44
45
  const isMedia = isMediaOrPseudo && key[11] === "_";
45
46
  const isPsuedo = isMediaOrPseudo && key[11] === "0" || key.endsWith("Style");
46
47
  const namespace = isMedia ? key.split("_")[2] : isPsuedo ? key.split("-")[1] : "transform";
47
48
  let transform = insertedTransforms[val];
48
- if (!transform) {
49
- updateInserted();
50
- transform = insertedTransforms[val];
51
- }
52
- if (!transform) {
53
- if (isWeb && val[0] !== "_") {
54
- transform = val;
55
- } else {
56
- console.log("?", key, val);
49
+ if (isClient) {
50
+ if (!transform) {
51
+ updateInserted();
52
+ transform = insertedTransforms[val];
57
53
  }
58
- }
59
- if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
60
- console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms });
61
- }
62
- if (process.env.NODE_ENV === "development") {
63
54
  if (!transform) {
64
- console.log("NO TRANSFORM?", { key, val, transform });
55
+ if (isWeb && val[0] !== "_") {
56
+ transform = val;
57
+ } else {
58
+ console.trace("?", key, val, cur, props, state);
59
+ }
60
+ }
61
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
62
+ console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms });
63
+ }
64
+ if (process.env.NODE_ENV === "development") {
65
+ if (!transform) {
66
+ console.trace("NO TRANSFORM?", { key, val, transform });
67
+ }
65
68
  }
66
69
  }
67
70
  transforms[namespace] = transforms[namespace] || ["", ""];
68
71
  const identifier = val.replace("_transform", "");
69
- console.warn("?bug2", key, val, transform, insertedTransforms[val]);
70
72
  transforms[namespace][0] += identifier;
71
- transforms[namespace][1] += transform;
73
+ if (transform) {
74
+ transforms[namespace][1] += transform;
75
+ }
72
76
  } else {
73
77
  classNames[key] = val;
74
78
  }
@@ -85,8 +89,8 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
85
89
  const atomic = getStylesAtomic(cur);
86
90
  for (const atomicStyle of atomic) {
87
91
  if (!state.noClassNames) {
88
- mergeClassName(atomicStyle.property, atomicStyle.identifier);
89
92
  insertStyleRule(atomicStyle.identifier, atomicStyle.rules[0]);
93
+ mergeClassName(atomicStyle.property, atomicStyle.identifier);
90
94
  } else {
91
95
  style[atomicStyle.property] = atomicStyle.value;
92
96
  }
@@ -114,13 +118,11 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
114
118
  if (keyInit === "className" || validStyleProps[keyInit] && valInit && valInit[0] === "_") {
115
119
  push();
116
120
  mergeClassName(keyInit, valInit);
117
- if (cur) {
118
- if (cur[keyInit])
119
- console.warn("just want to see how used");
120
- delete cur[keyInit];
121
- }
122
121
  continue;
123
122
  }
123
+ if (state.keepVariantsAsProps && staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {
124
+ viewProps[keyInit] = valInit;
125
+ }
124
126
  if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
125
127
  viewProps[keyInit] = valInit;
126
128
  continue;
@@ -154,8 +156,8 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
154
156
  if (isWeb && !state.noClassNames) {
155
157
  const pseudoStyles = getStylesAtomic({ [key]: pseudos[key] });
156
158
  for (const style2 of pseudoStyles) {
157
- mergeClassName(`${style2.property}-${key}`, style2.identifier);
158
159
  insertStyleRule(style2.identifier, style2.rules[0]);
160
+ mergeClassName(`${style2.property}-${key}`, style2.identifier);
159
161
  }
160
162
  }
161
163
  continue;
@@ -176,8 +178,8 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
176
178
  const mediaStyles = getStylesAtomic(mediaStyle);
177
179
  for (const style2 of mediaStyles) {
178
180
  const out2 = createMediaStyle(style2, mediaKeyShort, mediaQueryConfig);
179
- mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
180
181
  insertStyleRule(out2.identifier, out2.styleRule);
182
+ mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
181
183
  }
182
184
  } else {
183
185
  if (mediaState[mediaKey]) {
@@ -217,10 +219,11 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
217
219
  for (const namespace in transforms) {
218
220
  const [hash, val] = transforms[namespace];
219
221
  const identifier = `_transform${hash}`;
220
- if (!insertedTransforms[identifier]) {
221
- const rule = `.${identifier} { transform: ${val}; }`;
222
- console.log("insert", rule);
223
- insertStyleRule(identifier, rule);
222
+ if (isClient) {
223
+ if (!insertedTransforms[identifier]) {
224
+ const rule = `.${identifier} { transform: ${val}; }`;
225
+ insertStyleRule(identifier, rule);
226
+ }
224
227
  }
225
228
  classNames[namespace] = identifier;
226
229
  }
File without changes
File without changes
@@ -15,7 +15,7 @@ function addTransform(identifier, css, rule) {
15
15
  console.trace();
16
16
  console.groupEnd();
17
17
  } else {
18
- console.error(`Missing transform`, identifier);
18
+ console.error(`Missing transform`, identifier, css, rule);
19
19
  }
20
20
  return;
21
21
  }
File without changes
File without changes
File without changes
File without changes