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

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 (644) hide show
  1. package/dist/cjs/Tamagui.js +57 -0
  2. package/dist/cjs/Tamagui.js.map +7 -0
  3. package/dist/cjs/ThemeContext.js +25 -0
  4. package/dist/cjs/ThemeContext.js.map +7 -0
  5. package/dist/cjs/ThemeManager.js +195 -0
  6. package/dist/cjs/ThemeManager.js.map +7 -0
  7. package/dist/cjs/conf.js +55 -0
  8. package/dist/cjs/conf.js.map +7 -0
  9. package/dist/cjs/constants/constants.js +15 -15
  10. package/dist/cjs/constants/constants.js.map +2 -2
  11. package/dist/cjs/constants/platform.js +18 -18
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/pseudos.js +15 -3
  14. package/dist/cjs/constants/pseudos.js.map +1 -1
  15. package/dist/cjs/constants/rnw.js +17 -3
  16. package/dist/cjs/constants/rnw.js.map +2 -2
  17. package/dist/cjs/contexts/ButtonInsideButtonContext.js +25 -0
  18. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +7 -0
  19. package/dist/cjs/createComponent.js +326 -206
  20. package/dist/cjs/createComponent.js.map +2 -2
  21. package/dist/cjs/createFont.js +11 -15
  22. package/dist/cjs/createFont.js.map +1 -1
  23. package/dist/cjs/createShallowUpdate.js +1 -0
  24. package/dist/{helpers/pseudos.js.map → cjs/createShallowUpdate.js.map} +0 -0
  25. package/dist/cjs/createShorthands.js +15 -3
  26. package/dist/cjs/createShorthands.js.map +1 -1
  27. package/dist/cjs/createTamagui.js +115 -102
  28. package/dist/cjs/createTamagui.js.map +2 -2
  29. package/dist/cjs/createTheme.js +11 -28
  30. package/dist/cjs/createTheme.js.map +2 -2
  31. package/dist/cjs/createTokens.js +12 -16
  32. package/dist/cjs/createTokens.js.map +1 -1
  33. package/dist/cjs/createVariable.js +33 -19
  34. package/dist/cjs/createVariable.js.map +2 -2
  35. package/dist/cjs/defaultComponentState.js +1 -0
  36. package/dist/{types.js.map → cjs/defaultComponentState.js.map} +0 -0
  37. package/dist/cjs/devtools.js +32 -0
  38. package/dist/cjs/devtools.js.map +7 -0
  39. package/dist/cjs/helpers/RNComponents.js +34 -0
  40. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  41. package/dist/cjs/helpers/addStylesUsingClassname.js +29 -29
  42. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  43. package/dist/cjs/helpers/areEqualSets.js +34 -0
  44. package/dist/cjs/helpers/areEqualSets.js.map +7 -0
  45. package/dist/cjs/helpers/createMediaStyle.js +16 -21
  46. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  47. package/dist/cjs/helpers/createPropMapper.js +155 -117
  48. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  49. package/dist/cjs/helpers/createShallowUpdate.js +51 -0
  50. package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
  51. package/dist/cjs/helpers/createTamaguiProvider.js +41 -26
  52. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  53. package/dist/cjs/helpers/extendStaticConfig.js +23 -26
  54. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  55. package/dist/cjs/helpers/fixNativeShadow.js +15 -3
  56. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  57. package/dist/cjs/helpers/fixNativeShadow.native.js +38 -22
  58. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  59. package/dist/cjs/helpers/getExpandedShorthands.js +37 -0
  60. package/dist/cjs/helpers/getExpandedShorthands.js.map +7 -0
  61. package/dist/cjs/helpers/getSplitStyles.js +187 -100
  62. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  63. package/dist/cjs/helpers/getStylesAtomic.js +99 -56
  64. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  65. package/dist/cjs/helpers/getStylesAtomic.native.js +15 -3
  66. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  67. package/dist/cjs/helpers/insertStyleRule.js +86 -24
  68. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  69. package/dist/cjs/helpers/isObj.js +15 -3
  70. package/dist/cjs/helpers/isObj.js.map +1 -1
  71. package/dist/cjs/helpers/isTamaguiElement.js +11 -15
  72. package/dist/cjs/helpers/isTamaguiElement.js.map +1 -1
  73. package/dist/cjs/helpers/matchMedia.js +15 -3
  74. package/dist/cjs/helpers/matchMedia.js.map +1 -1
  75. package/dist/cjs/helpers/matchMedia.native.js +12 -13
  76. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  77. package/dist/cjs/helpers/themeable.js +24 -24
  78. package/dist/cjs/helpers/themeable.js.map +2 -2
  79. package/dist/cjs/helpers/validate.js +46 -47
  80. package/dist/cjs/helpers/validate.js.map +2 -2
  81. package/dist/cjs/helpers/withStaticProperties.js +28 -0
  82. package/dist/cjs/helpers/withStaticProperties.js.map +7 -0
  83. package/dist/cjs/helpers/wrapThemeManagerContext.js +35 -0
  84. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +7 -0
  85. package/dist/cjs/hooks/useConstant.js +11 -15
  86. package/dist/cjs/hooks/useConstant.js.map +1 -1
  87. package/dist/cjs/hooks/useFeatures.js +142 -18
  88. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  89. package/dist/cjs/hooks/useIsMounted.js +37 -0
  90. package/dist/cjs/hooks/useIsMounted.js.map +7 -0
  91. package/dist/cjs/hooks/useIsTouchDevice.js +35 -0
  92. package/dist/cjs/hooks/useIsTouchDevice.js.map +7 -0
  93. package/dist/cjs/hooks/useMedia.js +39 -59
  94. package/dist/cjs/hooks/useMedia.js.map +2 -2
  95. package/dist/cjs/hooks/usePressable.js +11 -15
  96. package/dist/cjs/hooks/usePressable.js.map +1 -1
  97. package/dist/cjs/hooks/useTheme.js +162 -68
  98. package/dist/cjs/hooks/useTheme.js.map +2 -2
  99. package/dist/cjs/hooks/useUnmountEffect.js +29 -0
  100. package/dist/cjs/hooks/useUnmountEffect.js.map +7 -0
  101. package/dist/cjs/index.js +56 -43
  102. package/dist/cjs/index.js.map +2 -2
  103. package/dist/cjs/spacedChildren.js +86 -0
  104. package/dist/cjs/spacedChildren.js.map +7 -0
  105. package/dist/cjs/static.js +23 -27
  106. package/dist/cjs/static.js.map +2 -2
  107. package/dist/cjs/styled.js +37 -18
  108. package/dist/cjs/styled.js.map +3 -3
  109. package/dist/cjs/tamagui-base.css +8 -0
  110. package/dist/cjs/tamagui-base.css.map +7 -0
  111. package/dist/cjs/types-rnw.js +16 -0
  112. package/dist/cjs/types-rnw.js.map +7 -0
  113. package/dist/cjs/types.js +14 -2
  114. package/dist/cjs/types.js.map +2 -2
  115. package/dist/cjs/views/Stack.js +13 -16
  116. package/dist/cjs/views/Stack.js.map +2 -2
  117. package/dist/cjs/views/Text.js +19 -21
  118. package/dist/cjs/views/Text.js.map +2 -2
  119. package/dist/cjs/views/TextAncestorContext.js +19 -21
  120. package/dist/cjs/views/TextAncestorContext.js.map +2 -2
  121. package/dist/cjs/views/Theme.js +31 -63
  122. package/dist/cjs/views/Theme.js.map +2 -2
  123. package/dist/cjs/views/ThemeInverse.js +15 -16
  124. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  125. package/dist/cjs/views/ThemeProvider.js +32 -37
  126. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  127. package/dist/cjs/views/ThemeReset.js +59 -0
  128. package/dist/cjs/views/ThemeReset.js.map +7 -0
  129. package/dist/esm/Tamagui.js +36 -0
  130. package/dist/esm/Tamagui.js.map +7 -0
  131. package/dist/{views → esm}/ThemeContext.js +0 -0
  132. package/dist/esm/ThemeContext.js.map +7 -0
  133. package/dist/esm/ThemeManager.js +177 -0
  134. package/dist/esm/ThemeManager.js.map +7 -0
  135. package/dist/esm/conf.js +37 -0
  136. package/dist/esm/conf.js.map +7 -0
  137. package/dist/{constants → esm/constants}/constants.js +4 -0
  138. package/dist/esm/constants/constants.js.map +7 -0
  139. package/dist/{constants → esm/constants}/platform.js +6 -1
  140. package/dist/esm/constants/platform.js.map +7 -0
  141. package/dist/{constants → esm/constants}/pseudos.js +0 -0
  142. package/dist/{constants → esm/constants}/pseudos.js.map +2 -2
  143. package/dist/{constants → esm/constants}/rnw.js +2 -0
  144. package/dist/esm/constants/rnw.js.map +7 -0
  145. package/dist/esm/contexts/ButtonInsideButtonContext.js +6 -0
  146. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +7 -0
  147. package/dist/esm/createComponent.js +590 -0
  148. package/dist/esm/createComponent.js.map +7 -0
  149. package/dist/{createFont.js → esm/createFont.js} +0 -0
  150. package/dist/{createFont.js.map → esm/createFont.js.map} +2 -2
  151. package/dist/esm/createShallowUpdate.js +1 -0
  152. package/dist/esm/createShallowUpdate.js.map +7 -0
  153. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  154. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +2 -2
  155. package/dist/esm/createTamagui.js +185 -0
  156. package/dist/esm/createTamagui.js.map +7 -0
  157. package/dist/esm/createTheme.js +7 -0
  158. package/dist/esm/createTheme.js.map +7 -0
  159. package/dist/{createTokens.js → esm/createTokens.js} +0 -0
  160. package/dist/{createTokens.js.map → esm/createTokens.js.map} +2 -2
  161. package/dist/esm/createVariable.js +43 -0
  162. package/dist/esm/createVariable.js.map +7 -0
  163. package/dist/esm/defaultComponentState.js +1 -0
  164. package/dist/esm/defaultComponentState.js.map +7 -0
  165. package/dist/esm/devtools.js +14 -0
  166. package/dist/esm/devtools.js.map +7 -0
  167. package/dist/esm/helpers/RNComponents.js +12 -0
  168. package/dist/esm/helpers/RNComponents.js.map +7 -0
  169. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +16 -12
  170. package/dist/esm/helpers/addStylesUsingClassname.js.map +7 -0
  171. package/dist/esm/helpers/areEqualSets.js +16 -0
  172. package/dist/esm/helpers/areEqualSets.js.map +7 -0
  173. package/dist/{helpers → esm/helpers}/createMediaStyle.js +5 -6
  174. package/dist/esm/helpers/createMediaStyle.js.map +7 -0
  175. package/dist/esm/helpers/createPropMapper.js +210 -0
  176. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  177. package/dist/esm/helpers/createShallowUpdate.js +19 -0
  178. package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
  179. package/dist/esm/helpers/createTamaguiProvider.js +40 -0
  180. package/dist/esm/helpers/createTamaguiProvider.js.map +7 -0
  181. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +14 -14
  182. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  183. package/dist/{helpers → esm/helpers}/fixNativeShadow.js +0 -0
  184. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +2 -2
  185. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  186. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  187. package/dist/esm/helpers/getExpandedShorthands.js +19 -0
  188. package/dist/esm/helpers/getExpandedShorthands.js.map +7 -0
  189. package/dist/esm/helpers/getSplitStyles.js +244 -0
  190. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  191. package/dist/esm/helpers/getStylesAtomic.js +119 -0
  192. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  193. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js +0 -0
  194. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js.map +2 -2
  195. package/dist/esm/helpers/insertStyleRule.js +90 -0
  196. package/dist/esm/helpers/insertStyleRule.js.map +7 -0
  197. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  198. package/dist/{helpers → esm/helpers}/isObj.js.map +2 -2
  199. package/dist/{helpers → esm/helpers}/isTamaguiElement.js +2 -1
  200. package/dist/{helpers → esm/helpers}/isTamaguiElement.js.map +2 -2
  201. package/dist/{helpers → esm/helpers}/matchMedia.js +0 -0
  202. package/dist/{helpers → esm/helpers}/matchMedia.js.map +2 -2
  203. package/dist/{helpers → esm/helpers}/matchMedia.native.js +0 -0
  204. package/dist/{helpers → esm/helpers}/matchMedia.native.js.map +2 -2
  205. package/dist/{helpers → esm/helpers}/themeable.js +11 -10
  206. package/dist/esm/helpers/themeable.js.map +7 -0
  207. package/dist/esm/helpers/validate.js +63 -0
  208. package/dist/esm/helpers/validate.js.map +7 -0
  209. package/dist/esm/helpers/withStaticProperties.js +10 -0
  210. package/dist/esm/helpers/withStaticProperties.js.map +7 -0
  211. package/dist/esm/helpers/wrapThemeManagerContext.js +14 -0
  212. package/dist/esm/helpers/wrapThemeManagerContext.js.map +7 -0
  213. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  214. package/dist/{hooks → esm/hooks}/useConstant.js.map +2 -2
  215. package/dist/esm/hooks/useFeatures.js +173 -0
  216. package/dist/esm/hooks/useFeatures.js.map +7 -0
  217. package/dist/esm/hooks/useIsMounted.js +19 -0
  218. package/dist/esm/hooks/useIsMounted.js.map +7 -0
  219. package/dist/esm/hooks/useIsTouchDevice.js +17 -0
  220. package/dist/esm/hooks/useIsTouchDevice.js.map +7 -0
  221. package/dist/{hooks → esm/hooks}/useMedia.js +27 -42
  222. package/dist/esm/hooks/useMedia.js.map +7 -0
  223. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  224. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  225. package/dist/esm/hooks/useTheme.js +172 -0
  226. package/dist/esm/hooks/useTheme.js.map +7 -0
  227. package/dist/esm/hooks/useUnmountEffect.js +11 -0
  228. package/dist/esm/hooks/useUnmountEffect.js.map +7 -0
  229. package/dist/{index.js → esm/index.js} +21 -5
  230. package/dist/esm/index.js.map +7 -0
  231. package/dist/esm/spacedChildren.js +52 -0
  232. package/dist/esm/spacedChildren.js.map +7 -0
  233. package/dist/{static.js → esm/static.js} +1 -2
  234. package/dist/{static.js.map → esm/static.js.map} +3 -3
  235. package/dist/esm/styled.js +46 -0
  236. package/dist/esm/styled.js.map +7 -0
  237. package/dist/esm/tamagui-base.css +8 -0
  238. package/dist/esm/tamagui-base.css.map +7 -0
  239. package/dist/esm/types-rnw.js +1 -0
  240. package/dist/esm/types-rnw.js.map +7 -0
  241. package/dist/{types.js → esm/types.js} +0 -0
  242. package/dist/esm/types.js.map +7 -0
  243. package/dist/{views → esm/views}/Stack.js +1 -0
  244. package/dist/esm/views/Stack.js.map +7 -0
  245. package/dist/{views → esm/views}/Text.js +6 -4
  246. package/dist/esm/views/Text.js.map +7 -0
  247. package/dist/esm/views/TextAncestorContext.js +18 -0
  248. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  249. package/dist/esm/views/Theme.js +35 -0
  250. package/dist/esm/views/Theme.js.map +7 -0
  251. package/dist/{views → esm/views}/ThemeInverse.js +1 -1
  252. package/dist/{views → esm/views}/ThemeInverse.js.map +3 -3
  253. package/dist/esm/views/ThemeProvider.js +41 -0
  254. package/dist/esm/views/ThemeProvider.js.map +7 -0
  255. package/dist/esm/views/ThemeReset.js +38 -0
  256. package/dist/esm/views/ThemeReset.js.map +7 -0
  257. package/dist/jsx/Tamagui.js +35 -0
  258. package/dist/jsx/ThemeContext.js +5 -0
  259. package/dist/jsx/ThemeManager.js +176 -0
  260. package/dist/jsx/conf.js +36 -0
  261. package/dist/jsx/constants/constants.js +17 -0
  262. package/dist/jsx/constants/platform.js +23 -0
  263. package/dist/jsx/constants/pseudos.js +17 -0
  264. package/dist/jsx/constants/rnw.js +23 -0
  265. package/dist/jsx/contexts/ButtonInsideButtonContext.js +5 -0
  266. package/dist/jsx/createComponent.js +576 -0
  267. package/dist/jsx/createFont.js +27 -0
  268. package/dist/jsx/createShallowUpdate.js +0 -0
  269. package/dist/jsx/createShorthands.js +9 -0
  270. package/dist/jsx/createTamagui.js +184 -0
  271. package/dist/jsx/createTheme.js +6 -0
  272. package/dist/jsx/createTokens.js +32 -0
  273. package/dist/jsx/createVariable.js +42 -0
  274. package/dist/jsx/defaultComponentState.js +0 -0
  275. package/dist/jsx/devtools.js +13 -0
  276. package/dist/jsx/helpers/RNComponents.js +11 -0
  277. package/dist/jsx/helpers/addStylesUsingClassname.js +60 -0
  278. package/dist/jsx/helpers/areEqualSets.js +15 -0
  279. package/dist/jsx/helpers/createMediaStyle.js +32 -0
  280. package/dist/jsx/helpers/createPropMapper.js +209 -0
  281. package/dist/jsx/helpers/createShallowUpdate.js +18 -0
  282. package/dist/jsx/helpers/createTamaguiProvider.js +34 -0
  283. package/dist/jsx/helpers/extendStaticConfig.js +58 -0
  284. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  285. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  286. package/dist/jsx/helpers/getExpandedShorthands.js +18 -0
  287. package/dist/jsx/helpers/getSplitStyles.js +243 -0
  288. package/dist/jsx/helpers/getStylesAtomic.js +118 -0
  289. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  290. package/dist/jsx/helpers/insertStyleRule.js +89 -0
  291. package/dist/jsx/helpers/isObj.js +6 -0
  292. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  293. package/dist/jsx/helpers/matchMedia.js +17 -0
  294. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  295. package/dist/jsx/helpers/themeable.js +24 -0
  296. package/dist/jsx/helpers/validate.js +62 -0
  297. package/dist/jsx/helpers/withStaticProperties.js +9 -0
  298. package/dist/jsx/helpers/wrapThemeManagerContext.js +10 -0
  299. package/dist/jsx/hooks/useConstant.js +14 -0
  300. package/dist/jsx/hooks/useFeatures.js +167 -0
  301. package/dist/jsx/hooks/useIsMounted.js +18 -0
  302. package/dist/jsx/hooks/useIsTouchDevice.js +16 -0
  303. package/dist/jsx/hooks/useMedia.js +155 -0
  304. package/dist/jsx/hooks/usePressable.js +13 -0
  305. package/dist/jsx/hooks/useTheme.js +171 -0
  306. package/dist/jsx/hooks/useUnmountEffect.js +10 -0
  307. package/dist/jsx/index.js +47 -0
  308. package/dist/jsx/spacedChildren.js +44 -0
  309. package/dist/jsx/static.js +13 -0
  310. package/dist/jsx/styled.js +45 -0
  311. package/dist/jsx/tamagui-base.css +7 -0
  312. package/dist/jsx/types-rnw.js +0 -0
  313. package/dist/jsx/types.js +0 -0
  314. package/dist/jsx/views/Stack.js +12 -0
  315. package/dist/jsx/views/Text.js +61 -0
  316. package/dist/jsx/views/TextAncestorContext.js +15 -0
  317. package/dist/jsx/views/Theme.js +31 -0
  318. package/dist/jsx/views/ThemeInverse.js +22 -0
  319. package/dist/jsx/views/ThemeProvider.js +35 -0
  320. package/dist/jsx/views/ThemeReset.js +34 -0
  321. package/package.json +22 -20
  322. package/types/Tamagui.d.ts +15 -0
  323. package/types/Tamagui.d.ts.map +1 -0
  324. package/types/ThemeContext.d.ts +7 -0
  325. package/types/ThemeContext.d.ts.map +1 -0
  326. package/types/ThemeManager.d.ts +49 -0
  327. package/types/ThemeManager.d.ts.map +1 -0
  328. package/types/conf.d.ts +25 -0
  329. package/types/conf.d.ts.map +1 -0
  330. package/{dist/packages/core/src → types}/constants/constants.d.ts +2 -0
  331. package/types/constants/constants.d.ts.map +1 -0
  332. package/{dist/packages/core/src → types}/constants/platform.d.ts +2 -0
  333. package/types/constants/platform.d.ts.map +1 -0
  334. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  335. package/types/constants/rnw.d.ts.map +1 -0
  336. package/types/contexts/ButtonInsideButtonContext.d.ts +3 -0
  337. package/types/contexts/ButtonInsideButtonContext.d.ts.map +1 -0
  338. package/types/createComponent.d.ts +20 -0
  339. package/types/createComponent.d.ts.map +1 -0
  340. package/types/createFont.d.ts +3 -0
  341. package/types/createFont.d.ts.map +1 -0
  342. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  343. package/types/createShorthands.d.ts.map +1 -0
  344. package/types/createTamagui.d.ts +16 -0
  345. package/types/createTamagui.d.ts.map +1 -0
  346. package/types/createTheme.d.ts +7 -0
  347. package/types/createTheme.d.ts.map +1 -0
  348. package/{dist/packages/core/src → types}/createTokens.d.ts +24 -14
  349. package/types/createTokens.d.ts.map +1 -0
  350. package/{dist/packages/core/src → types}/createVariable.d.ts +6 -1
  351. package/types/createVariable.d.ts.map +1 -0
  352. package/types/defaultComponentState.d.ts +1 -0
  353. package/types/defaultComponentState.d.ts.map +1 -0
  354. package/types/helpers/RNComponents.d.ts +2 -0
  355. package/types/helpers/RNComponents.d.ts.map +1 -0
  356. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  357. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  358. package/types/helpers/areEqualSets.d.ts +2 -0
  359. package/types/helpers/areEqualSets.d.ts.map +1 -0
  360. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +1 -1
  361. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  362. package/types/helpers/createPropMapper.d.ts +4 -0
  363. package/types/helpers/createPropMapper.d.ts.map +1 -0
  364. package/types/helpers/createShallowUpdate.d.ts +4 -0
  365. package/types/helpers/createShallowUpdate.d.ts.map +1 -0
  366. package/types/helpers/createTamaguiProvider.d.ts +7 -0
  367. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  368. package/types/helpers/extendStaticConfig.d.ts +4 -0
  369. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  370. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  371. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  372. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  373. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  374. package/types/helpers/getExpandedShorthands.d.ts +3 -0
  375. package/types/helpers/getExpandedShorthands.d.ts.map +1 -0
  376. package/types/helpers/getSplitStyles.d.ts +16 -0
  377. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  378. package/types/helpers/getStylesAtomic.d.ts +27 -0
  379. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  380. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  381. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  382. package/types/helpers/insertStyleRule.d.ts +7 -0
  383. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  384. package/types/helpers/isObj.d.ts +2 -0
  385. package/types/helpers/isObj.d.ts.map +1 -0
  386. package/types/helpers/isTamaguiElement.d.ts +3 -0
  387. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  388. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  389. package/types/helpers/matchMedia.d.ts.map +1 -0
  390. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  391. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  392. package/types/helpers/themeable.d.ts +10 -0
  393. package/types/helpers/themeable.d.ts.map +1 -0
  394. package/types/helpers/validate.d.ts +4 -0
  395. package/types/helpers/validate.d.ts.map +1 -0
  396. package/types/helpers/withStaticProperties.d.ts +2 -0
  397. package/types/helpers/withStaticProperties.d.ts.map +1 -0
  398. package/types/helpers/wrapThemeManagerContext.d.ts +3 -0
  399. package/types/helpers/wrapThemeManagerContext.d.ts.map +1 -0
  400. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  401. package/types/hooks/useConstant.d.ts.map +1 -0
  402. package/types/hooks/useFeatures.d.ts +18 -0
  403. package/types/hooks/useFeatures.d.ts.map +1 -0
  404. package/types/hooks/useIsMounted.d.ts +3 -0
  405. package/types/hooks/useIsMounted.d.ts.map +1 -0
  406. package/types/hooks/useIsTouchDevice.d.ts +2 -0
  407. package/types/hooks/useIsTouchDevice.d.ts.map +1 -0
  408. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +0 -0
  409. package/types/hooks/useMedia.d.ts.map +1 -0
  410. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  411. package/types/hooks/usePressable.d.ts.map +1 -0
  412. package/types/hooks/useTheme.d.ts +36 -0
  413. package/types/hooks/useTheme.d.ts.map +1 -0
  414. package/types/hooks/useUnmountEffect.d.ts +2 -0
  415. package/types/hooks/useUnmountEffect.d.ts.map +1 -0
  416. package/{dist/packages/core/src → types}/index.d.ts +16 -3
  417. package/types/index.d.ts.map +1 -0
  418. package/types/spacedChildren.d.ts +9 -0
  419. package/types/spacedChildren.d.ts.map +1 -0
  420. package/{dist/packages/core/src → types}/static.d.ts +4 -2
  421. package/types/static.d.ts.map +1 -0
  422. package/types/styled.d.ts +7 -0
  423. package/types/styled.d.ts.map +1 -0
  424. package/types/types-rnw.d.ts +74 -0
  425. package/types/types-rnw.d.ts.map +1 -0
  426. package/types/types.d.ts +381 -0
  427. package/types/types.d.ts.map +1 -0
  428. package/types/views/Stack.d.ts +4 -0
  429. package/types/views/Stack.d.ts.map +1 -0
  430. package/types/views/Text.d.ts +4 -0
  431. package/types/views/Text.d.ts.map +1 -0
  432. package/types/views/TextAncestorContext.d.ts +5 -0
  433. package/types/views/TextAncestorContext.d.ts.map +1 -0
  434. package/types/views/Theme.d.ts +11 -0
  435. package/types/views/Theme.d.ts.map +1 -0
  436. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  437. package/types/views/ThemeInverse.d.ts.map +1 -0
  438. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +0 -1
  439. package/types/views/ThemeProvider.d.ts.map +1 -0
  440. package/types/views/ThemeReset.d.ts +4 -0
  441. package/types/views/ThemeReset.d.ts.map +1 -0
  442. package/dist/cjs/static/postProcessStyles.js +0 -40
  443. package/dist/cjs/static/postProcessStyles.js.map +0 -7
  444. package/dist/cjs/views/Animated.js +0 -129
  445. package/dist/cjs/views/Animated.js.map +0 -7
  446. package/dist/cjs/views/ThemeContext.js +0 -29
  447. package/dist/cjs/views/ThemeContext.js.map +0 -7
  448. package/dist/cjs/views/ThemeManagerContext.js +0 -84
  449. package/dist/cjs/views/ThemeManagerContext.js.map +0 -7
  450. package/dist/constants/constants.js.map +0 -7
  451. package/dist/constants/platform.js.map +0 -7
  452. package/dist/constants/rnw.js.map +0 -7
  453. package/dist/constants/styleConstants.js +0 -46
  454. package/dist/constants/styleConstants.js.map +0 -7
  455. package/dist/createComponent.js +0 -463
  456. package/dist/createComponent.js.map +0 -7
  457. package/dist/createTamagui.js +0 -168
  458. package/dist/createTamagui.js.map +0 -7
  459. package/dist/createTheme.js +0 -20
  460. package/dist/createTheme.js.map +0 -7
  461. package/dist/createVariable.js +0 -25
  462. package/dist/createVariable.js.map +0 -7
  463. package/dist/helpers/addStylesUsingClassname.js.map +0 -7
  464. package/dist/helpers/createMediaStyle.js.map +0 -7
  465. package/dist/helpers/createPropMapper.js +0 -153
  466. package/dist/helpers/createPropMapper.js.map +0 -7
  467. package/dist/helpers/createTamaguiProvider.js +0 -25
  468. package/dist/helpers/createTamaguiProvider.js.map +0 -7
  469. package/dist/helpers/extendStaticConfig.js.map +0 -7
  470. package/dist/helpers/fixNativeShadow.native.js +0 -30
  471. package/dist/helpers/fixNativeShadow.native.js.map +0 -7
  472. package/dist/helpers/getSplitStyles.js +0 -150
  473. package/dist/helpers/getSplitStyles.js.map +0 -7
  474. package/dist/helpers/getStylesAtomic.js +0 -83
  475. package/dist/helpers/getStylesAtomic.js.map +0 -7
  476. package/dist/helpers/insertStyleRule.js +0 -24
  477. package/dist/helpers/insertStyleRule.js.map +0 -7
  478. package/dist/helpers/isComponent.js +0 -10
  479. package/dist/helpers/isComponent.js.map +0 -7
  480. package/dist/helpers/isTamaguiComponent.js +0 -10
  481. package/dist/helpers/isTamaguiComponent.js.map +0 -7
  482. package/dist/helpers/pseudos.js +0 -1
  483. package/dist/helpers/themeable.js.map +0 -7
  484. package/dist/helpers/validate.js +0 -60
  485. package/dist/helpers/validate.js.map +0 -7
  486. package/dist/helpers/validateConfig.js +0 -46
  487. package/dist/helpers/validateConfig.js.map +0 -7
  488. package/dist/helpers/validateTokens.js +0 -29
  489. package/dist/helpers/validateTokens.js.map +0 -7
  490. package/dist/hooks/useFeatures.js +0 -63
  491. package/dist/hooks/useFeatures.js.map +0 -7
  492. package/dist/hooks/useForceUpdate.js +0 -28
  493. package/dist/hooks/useForceUpdate.js.map +0 -7
  494. package/dist/hooks/useMedia.js.map +0 -7
  495. package/dist/hooks/useTheme.js +0 -89
  496. package/dist/hooks/useTheme.js.map +0 -7
  497. package/dist/index.cjs +0 -2202
  498. package/dist/index.cjs.map +0 -7
  499. package/dist/index.js.map +0 -7
  500. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  501. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  502. package/dist/packages/core/src/constants/pseudos.d.ts +0 -15
  503. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  504. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  505. package/dist/packages/core/src/createComponent.d.ts +0 -16
  506. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  507. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  508. package/dist/packages/core/src/createTamagui.d.ts +0 -37
  509. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  510. package/dist/packages/core/src/createTheme.d.ts +0 -5
  511. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  512. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  513. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  514. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  515. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  516. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  517. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts +0 -5
  518. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  519. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts +0 -5
  520. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  521. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  522. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +0 -2
  523. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  524. package/dist/packages/core/src/helpers/getSplitStyles.d.ts +0 -15
  525. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  526. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  527. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  528. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  529. package/dist/packages/core/src/helpers/insertStyleRule.d.ts +0 -2
  530. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  531. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  532. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  533. package/dist/packages/core/src/helpers/themeable.d.ts +0 -10
  534. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  535. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  536. package/dist/packages/core/src/hooks/useFeatures.d.ts +0 -5
  537. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  538. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  539. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  540. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  541. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  542. package/dist/packages/core/src/hooks/useTheme.d.ts +0 -18
  543. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  544. package/dist/packages/core/src/index.d.ts.map +0 -1
  545. package/dist/packages/core/src/static/postProcessStyles.d.ts +0 -7
  546. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  547. package/dist/packages/core/src/static.d.ts.map +0 -1
  548. package/dist/packages/core/src/styled.d.ts +0 -16
  549. package/dist/packages/core/src/styled.d.ts.map +0 -1
  550. package/dist/packages/core/src/types.d.ts +0 -305
  551. package/dist/packages/core/src/types.d.ts.map +0 -1
  552. package/dist/packages/core/src/views/Animated.d.ts +0 -15
  553. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  554. package/dist/packages/core/src/views/Stack.d.ts +0 -3
  555. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  556. package/dist/packages/core/src/views/Text.d.ts +0 -3
  557. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  558. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  559. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  560. package/dist/packages/core/src/views/Theme.d.ts +0 -8
  561. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  562. package/dist/packages/core/src/views/ThemeContext.d.ts +0 -18
  563. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  564. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  565. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  566. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  567. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  568. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  569. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  570. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  571. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  572. package/dist/packages/helpers/src/index.d.ts +0 -5
  573. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  574. package/dist/packages/helpers/src/types.d.ts +0 -8
  575. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  576. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  577. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  578. package/dist/static/postProcessStyles.js +0 -18
  579. package/dist/static/postProcessStyles.js.map +0 -7
  580. package/dist/styled.js +0 -21
  581. package/dist/styled.js.map +0 -7
  582. package/dist/views/Animated.js +0 -79
  583. package/dist/views/Animated.js.map +0 -7
  584. package/dist/views/SafeAreaProvider.js +0 -30
  585. package/dist/views/SafeAreaProvider.js.map +0 -7
  586. package/dist/views/Stack.js.map +0 -7
  587. package/dist/views/Text.js.map +0 -7
  588. package/dist/views/TextAncestorContext.js +0 -18
  589. package/dist/views/TextAncestorContext.js.map +0 -7
  590. package/dist/views/Theme.js +0 -65
  591. package/dist/views/Theme.js.map +0 -7
  592. package/dist/views/ThemeContext.js.map +0 -7
  593. package/dist/views/ThemeManagerContext.js +0 -61
  594. package/dist/views/ThemeManagerContext.js.map +0 -7
  595. package/dist/views/ThemeProvider.js +0 -45
  596. package/dist/views/ThemeProvider.js.map +0 -7
  597. package/src/constants/constants.ts +0 -12
  598. package/src/constants/platform.ts +0 -15
  599. package/src/constants/pseudos.ts +0 -14
  600. package/src/constants/rnw.tsx +0 -20
  601. package/src/createComponent.tsx +0 -612
  602. package/src/createFont.ts +0 -31
  603. package/src/createShorthands.ts +0 -5
  604. package/src/createTamagui.ts +0 -217
  605. package/src/createTheme.ts +0 -19
  606. package/src/createTokens.ts +0 -88
  607. package/src/createVariable.ts +0 -26
  608. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  609. package/src/helpers/createMediaStyle.ts +0 -46
  610. package/src/helpers/createPropMapper.ts +0 -184
  611. package/src/helpers/createTamaguiProvider.tsx +0 -22
  612. package/src/helpers/extendStaticConfig.ts +0 -68
  613. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  614. package/src/helpers/fixNativeShadow.tsx +0 -2
  615. package/src/helpers/getSplitStyles.tsx +0 -200
  616. package/src/helpers/getStylesAtomic.native.ts +0 -3
  617. package/src/helpers/getStylesAtomic.ts +0 -103
  618. package/src/helpers/insertStyleRule.tsx +0 -18
  619. package/src/helpers/isObj.ts +0 -1
  620. package/src/helpers/isTamaguiElement.tsx +0 -5
  621. package/src/helpers/matchMedia.native.ts +0 -6
  622. package/src/helpers/matchMedia.ts +0 -17
  623. package/src/helpers/themeable.tsx +0 -42
  624. package/src/helpers/validate.ts +0 -59
  625. package/src/hooks/useConstant.tsx +0 -10
  626. package/src/hooks/useFeatures.tsx +0 -79
  627. package/src/hooks/useMedia.tsx +0 -194
  628. package/src/hooks/usePressable.tsx +0 -9
  629. package/src/hooks/useTheme.tsx +0 -106
  630. package/src/index.ts +0 -32
  631. package/src/static/postProcessStyles.tsx +0 -20
  632. package/src/static.ts +0 -22
  633. package/src/styled.ts +0 -82
  634. package/src/types.tsx +0 -562
  635. package/src/views/Animated.tsx +0 -121
  636. package/src/views/Stack.tsx +0 -21
  637. package/src/views/Text.tsx +0 -66
  638. package/src/views/TextAncestorContext.tsx +0 -12
  639. package/src/views/Theme.tsx +0 -90
  640. package/src/views/ThemeContext.tsx +0 -5
  641. package/src/views/ThemeInverse.tsx +0 -22
  642. package/src/views/ThemeManagerContext.tsx +0 -62
  643. package/src/views/ThemeProvider.tsx +0 -52
  644. package/types.d.ts +0 -559
@@ -1,217 +0,0 @@
1
- import { getStyleRules } from '@tamagui/helpers'
2
-
3
- import { Variable, createVariable, isVariable } from './createVariable'
4
- import { createTamaguiProvider } from './helpers/createTamaguiProvider'
5
- import { validateConfig } from './helpers/validate'
6
- import { configureMedia } from './hooks/useMedia'
7
- import {
8
- CreateTamaguiConfig,
9
- GenericTamaguiConfig,
10
- MediaQueryKey,
11
- TamaguiInternalConfig,
12
- TamaguiProviderProps,
13
- } from './types'
14
-
15
- export type CreateTamaguiProps = TamaguiProviderProps &
16
- // we omit and re-declare it because we need to allow instantation types to be flexible
17
- // user then re-defines the types after createTamagui returns the typed object they want
18
- Omit<GenericTamaguiConfig, 'themes'> & {
19
- themes: {
20
- [key: string]: {
21
- [key: string]: string | number | Variable
22
- }
23
- }
24
- // for ssr/native, will default to active
25
- mediaQueryDefaultActive?: MediaQueryKey[]
26
- }
27
-
28
- let conf: TamaguiInternalConfig | null
29
-
30
- export const getHasConfigured = () => !!conf
31
-
32
- export const getTamagui = () => conf!
33
- export const getTokens = () => conf!.tokensParsed
34
-
35
- type ConfigListener = (conf: TamaguiInternalConfig) => void
36
- const configListeners = new Set<ConfigListener>()
37
- export const onConfiguredOnce = (cb: ConfigListener) => {
38
- if (conf) {
39
- cb(conf)
40
- } else {
41
- configListeners.add(cb)
42
- }
43
- }
44
-
45
- const PREFIX = `theme--`
46
-
47
- export function createTamagui<Conf extends CreateTamaguiProps>(
48
- config: Conf
49
- ): Conf extends CreateTamaguiConfig<infer A, infer B, infer C, infer D>
50
- ? TamaguiInternalConfig<A, B, C, D>
51
- : unknown {
52
- if (process.env.NODE_ENV === 'development') {
53
- // config is re-run by the @tamagui/static, dont double validate
54
- if (!config['parsed']) {
55
- validateConfig(config)
56
- }
57
- }
58
- // test env loads a few times as it runs diff tests
59
- if (conf) {
60
- console.warn('Called createTamagui twice! Should never do so')
61
- // throw new Error(`#000 createTamagui called twice`)
62
- }
63
-
64
- configureMedia({
65
- queries: config.media as any,
66
- defaultActive: config.mediaQueryDefaultActive,
67
- })
68
-
69
- // TODO can avoid some of this CSS creation on native
70
- const themeConfig = (() => {
71
- let cssRules: string[] = []
72
-
73
- // tokens
74
- let tokenRule = `:root {`
75
- const varsByValue = new Map<string, Variable>()
76
- const addVar = (v: Variable) => {
77
- varsByValue[v.val] = v
78
- const rule = `--${v.name}:${typeof v.val === 'number' ? `${v.val}px` : v.val};`
79
- tokenRule += rule
80
- }
81
-
82
- for (const key in config.tokens) {
83
- for (const skey in config.tokens[key]) {
84
- const val = config.tokens[key][skey]
85
- if (key === 'font') {
86
- for (const fkey in val) {
87
- if (fkey === 'family') {
88
- addVar(val[fkey])
89
- } else {
90
- for (const fskey in val[fkey]) {
91
- addVar(val[fkey][fskey])
92
- }
93
- }
94
- }
95
- } else {
96
- addVar(val)
97
- }
98
- }
99
- }
100
- cssRules.push(`${tokenRule}\n}`)
101
-
102
- // themes
103
- for (const themeName in config.themes) {
104
- // to allow using the same theme with diff names, be sure we don't mutate!
105
- config.themes[themeName] = { ...config.themes[themeName] }
106
- const theme = config.themes[themeName]
107
- let vars = ''
108
- for (const themeKey in theme) {
109
- const val = theme[themeKey]
110
- const getVariableCSS = (inv: any) => {
111
- const v = varsByValue[inv] ?? inv
112
- return isVariable(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`
113
- }
114
- vars += getVariableCSS(val)
115
- // TODO sanity check is necessary
116
- // make everything a variable that gets put into css
117
- if (!isVariable(val)) {
118
- theme[themeKey] = createVariable({
119
- name: themeKey,
120
- val,
121
- })
122
- }
123
- }
124
-
125
- const [themeClassName, parentName] = themeName.includes('-')
126
- ? themeName.split('-')
127
- : [themeName, '']
128
- // tiny hack for now assuming light/dark are typical parentName
129
- const oppositeName = parentName === 'dark' ? 'light' : 'dark'
130
- const cssParentSel = parentName ? `.${PREFIX}${parentName}` : ''
131
- const cssChildSel = `.${PREFIX}${themeClassName}`
132
- const cssSel = `${cssParentSel} ${cssChildSel}`
133
- // we need to force specificity
134
- const cssRule = `${cssSel}, .${PREFIX}${oppositeName} ${cssSel} {\n${vars}\n}`
135
- cssRules.push(cssRule)
136
- }
137
-
138
- Object.freeze(cssRules)
139
-
140
- return {
141
- cssRules,
142
- css: cssRules.join('\n'),
143
- }
144
- })()
145
-
146
- // faster lookups token keys become $keys to match input
147
- const tokensParsed: any = parseTokens(config.tokens)
148
- // all themes should match key and we just need variable name
149
- // TODO once w react native we'd want to have a reverse lookup back to value
150
- const themeParsed: any = {}
151
- const firstKey = Object.keys(config.themes)[0]
152
- for (const key in config.themes[firstKey]) {
153
- // themeParsed[`$${key}`] = config.themes[firstKey][key]
154
- const val = config.themes[firstKey][key].val
155
- themeParsed[`$${key}`] = new Variable({ val, name: key })
156
- }
157
-
158
- const next: TamaguiInternalConfig = {
159
- // @ts-ignore
160
- shorthands: {},
161
- ...config,
162
- Provider: createTamaguiProvider({
163
- defaultTheme: 'light',
164
- ...config,
165
- }),
166
- themeConfig,
167
- themeParsed,
168
- tokensParsed,
169
- parsed: true,
170
- getCSS() {
171
- return `${themeConfig.css}\n${[...getStyleRules()].join('\n')}`
172
- },
173
- }
174
- conf = next
175
-
176
- if (configListeners.size) {
177
- configListeners.forEach((cb) => cb(next))
178
- configListeners.clear()
179
- }
180
-
181
- // @ts-expect-error
182
- return next
183
- }
184
-
185
- export function getThemeParentClassName(themeName?: string | null) {
186
- return `theme-parent ${themeName ? `${PREFIX}${themeName}` : ''}`
187
- }
188
-
189
- const parseTokens = (tokens: any) => {
190
- const res: any = {}
191
- for (const key in tokens) {
192
- res[key] = {}
193
- if (key === 'font') {
194
- for (const family in tokens.font) {
195
- const obj = {}
196
- res.font[`$${family}`] = obj
197
- for (const attrKey in tokens.font[family]) {
198
- const attr = tokens.font[family][attrKey]
199
- if (attrKey === 'family') {
200
- obj[attrKey] = attr
201
- continue
202
- }
203
- obj[attrKey] = Object.keys(attr).reduce((acc, cur) => {
204
- acc[`$${cur}`] = attr[cur]
205
- return acc
206
- }, {})
207
- }
208
- }
209
- continue
210
- }
211
- for (const skey in tokens[key]) {
212
- res[key][`$${skey}`] = tokens[key][skey]
213
- }
214
- }
215
-
216
- return res
217
- }
@@ -1,19 +0,0 @@
1
- import { Variable, createVariable } from './createVariable'
2
-
3
- export const createTheme = <Theme extends { [key: string]: string | Variable }>(
4
- theme: Theme
5
- ): {
6
- [key in keyof Theme]: Variable
7
- } => {
8
- const res = {} as any
9
- for (const key in theme) {
10
- const val = theme[key]
11
- if (!(val instanceof Variable)) {
12
- res[key] = createVariable({
13
- name: key,
14
- val,
15
- })
16
- }
17
- }
18
- return res
19
- }
@@ -1,88 +0,0 @@
1
- import { Variable, createVariable } from './createVariable'
2
- import { validateTokens } from './helpers/validate'
3
- import { CreateTokens } from './types'
4
-
5
- // tokens.color.dark.red ===> { var: `color-dark-red`, val: '' }
6
-
7
- export function createTokens<T extends CreateTokens>(tokens: T): MakeTokens<T> {
8
- if (process.env.NODE_ENV === 'development') {
9
- validateTokens(tokens)
10
- }
11
-
12
- return setupTokens(tokens) as any
13
- }
14
-
15
- function setupTokens(tokens: any) {
16
- return mapTokensToVariables(tokens)
17
- }
18
-
19
- export const mapTokensToVariables = (
20
- tokens: CreateTokens,
21
- parentPath = ''
22
- ): CreateTokens<Variable> => {
23
- const res = {}
24
- for (const key in tokens) {
25
- const val = tokens[key]
26
- const name = parentPath ? `${parentPath}-${key}` : key
27
- if (val && typeof val === 'object') {
28
- res[key] = mapTokensToVariables(tokens[key], name)
29
- } else {
30
- res[key] = createVariable({ val, name })
31
- }
32
- }
33
- // @ts-expect-error
34
- return res
35
- }
36
-
37
- // verbose but gives us nice types...
38
- type MakeTokens<T> = T extends {
39
- font: {
40
- [key in infer A]: {
41
- size: infer B
42
- lineHeight: infer C
43
- letterSpacing: infer D
44
- weight: infer Z
45
- family: infer Y
46
- }
47
- }
48
- color: infer E
49
- space: infer F
50
- size: infer G
51
- radius: infer H
52
- zIndex: infer J
53
- }
54
- ? {
55
- font: {
56
- [key in A]: {
57
- size: {
58
- [key in keyof B]: Variable
59
- }
60
- lineHeight: {
61
- [key in keyof C]: Variable
62
- }
63
- letterSpacing: {
64
- [key in keyof D]: Variable
65
- }
66
- weight: {
67
- [key in keyof Z]: Variable
68
- }
69
- family: Y
70
- }
71
- }
72
- color: {
73
- [key in keyof E]: Variable
74
- }
75
- space: {
76
- [key in keyof F]: Variable
77
- }
78
- size: {
79
- [key in keyof G]: Variable
80
- }
81
- radius: {
82
- [key in keyof H]: Variable
83
- }
84
- zIndex: {
85
- [key in keyof J]: Variable
86
- }
87
- }
88
- : never
@@ -1,26 +0,0 @@
1
- import { isWeb } from './constants/platform'
2
-
3
- export class Variable {
4
- name: string
5
- val: string | number
6
- variable: string | number
7
-
8
- constructor({ val, name }: VariableIn) {
9
- // converting to px breaks rn
10
- this.val = val //typeof val === 'string' ? val : `${val}px`
11
- this.name = name
12
- this.variable = isWeb ? `var(--${name})` : this.val
13
- }
14
-
15
- toString() {
16
- return isWeb ? this.variable : this.val
17
- }
18
- }
19
-
20
- type VariableIn = { val: string | number; name: string }
21
-
22
- export const createVariable = (props: VariableIn) => new Variable(props)
23
-
24
- export function isVariable(v: Variable | any): v is Variable {
25
- return v instanceof Variable
26
- }
@@ -1,60 +0,0 @@
1
- // @ts-ignore
2
- import { useInsertionEffect } from 'react'
3
-
4
- import { getStylesAtomic } from './getStylesAtomic'
5
- import { insertStyleRule } from './insertStyleRule'
6
-
7
- // uses new useInsertionEffect for better perf if available
8
-
9
- // could be cleared occasionally
10
- let added = new Set<string>()
11
-
12
- export function useStylesAsClassname(styles: any[]) {
13
- if (!useInsertionEffect) {
14
- return addStylesUsingClassname(styles)
15
- } else {
16
- const insertions: any[] = []
17
- const className = addStylesUsingClassname(styles, (_, rules) => {
18
- for (const rule of rules) {
19
- insertions.push(rule)
20
- }
21
- })
22
-
23
- useInsertionEffect(() => {
24
- for (const ruleset of insertions) {
25
- insertStyleRule(ruleset)
26
- }
27
- })
28
-
29
- return className
30
- }
31
- }
32
-
33
- export function addStylesUsingClassname(
34
- styles: any[],
35
- onAdd?: (identifier: string, rules: string[]) => any
36
- ) {
37
- let className = ''
38
- for (const style of styles) {
39
- if (!style) continue
40
- if (Array.isArray(style)) {
41
- className += ' ' + addStylesUsingClassname(style)
42
- continue
43
- }
44
- for (const { identifier, rules } of getStylesAtomic(style)) {
45
- className += ` ${identifier}`
46
- if (added.has(identifier)) {
47
- continue
48
- }
49
- added.add(identifier)
50
- if (onAdd) {
51
- onAdd(identifier, rules)
52
- } else {
53
- for (const rule of rules) {
54
- insertStyleRule(rule)
55
- }
56
- }
57
- }
58
- }
59
- return className
60
- }
@@ -1,46 +0,0 @@
1
- import { StyleObject } from '@tamagui/helpers'
2
-
3
- import { mediaObjectToString } from '../hooks/useMedia'
4
- import { MediaQueries } from '../types'
5
-
6
- // TODO have this be used by extractMediaStyle in tamagui static
7
-
8
- // not synced to static/constants for now
9
- export const MEDIA_SEP = '_'
10
-
11
- export const createMediaStyle = (
12
- { identifier, rules }: StyleObject,
13
- mediaKey: string,
14
- mediaQueries: MediaQueries,
15
- negate?: boolean,
16
- importance = 0
17
- ) => {
18
- const mediaKeys = Object.keys(mediaQueries)
19
- const mediaKeyPrecendence = mediaKeys.reduce((acc, cur, i) => {
20
- acc[cur] = new Array(importance + 1).fill(':root').join('')
21
- return acc
22
- }, {})
23
- const negKey = negate ? '0' : ''
24
- const ogPrefix = identifier.slice(0, identifier.indexOf('-') + 1)
25
- const nextIdentifier = `${identifier.replace(
26
- ogPrefix,
27
- `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`
28
- )}`
29
- const screenStr = negate ? 'not all' : 'screen'
30
- const mediaSelector = mediaObjectToString(mediaQueries[mediaKey])
31
- const mediaQuery = `${screenStr} and ${mediaSelector}`
32
- const precendencePrefix = mediaKeyPrecendence[mediaKey]
33
- const styleInner = rules[0].replace(identifier, nextIdentifier)
34
- // combines media queries if they already exist
35
- let styleRule = ''
36
- if (styleInner.includes('@media')) {
37
- // combine
38
- styleRule = styleInner.replace('{', ` and ${mediaQuery} {`)
39
- } else {
40
- styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`
41
- }
42
- return {
43
- styleRule,
44
- identifier: nextIdentifier,
45
- }
46
- }
@@ -1,184 +0,0 @@
1
- import { getTamagui } from '../createTamagui'
2
- import { Variable } from '../createVariable'
3
- import { StaticConfig, TamaguiInternalConfig } from '../types'
4
- import { isObj } from './isObj'
5
-
6
- export const createPropMapper = (c: StaticConfig) => {
7
- const variants = c.variants
8
- let variantsParsed
9
- const defaultProps = c.defaultProps || {}
10
-
11
- return (key: string, value: any, theme: any, props: any) => {
12
- const conf = getTamagui()
13
- if (!conf) {
14
- console.trace('no conf! err')
15
- return
16
- }
17
- if (variants && !variantsParsed) {
18
- variantsParsed = parseVariants(variants, conf)
19
- }
20
-
21
- // handled here because we need to resolve this off tokens, its the only one-off like this
22
- let fontFamily = props.fontFamily || defaultProps.fontFamily || '$body'
23
-
24
- // expand variants
25
- const variant = variantsParsed?.[key]
26
- if (variant && typeof value !== 'undefined') {
27
- const val =
28
- value === true
29
- ? variant['$true'] || variant['true']
30
- : variant[value] ?? variant['...'] ?? value
31
-
32
- const res =
33
- typeof val === 'function'
34
- ? val(value, { tokens: conf.tokensParsed, theme, props })
35
- : isObj(val)
36
- ? { ...val }
37
- : val
38
-
39
- if (isObj(res)) {
40
- resolveTokens(res, conf, fontFamily)
41
- }
42
-
43
- return res
44
- }
45
-
46
- let shouldReturn = false
47
-
48
- // handle shorthands
49
- if (conf.shorthands[key]) {
50
- shouldReturn = true
51
- key = conf.shorthands[key]
52
- }
53
-
54
- if (value && value[0] === '$') {
55
- shouldReturn = true
56
- value = getToken(key, value, conf, fontFamily)
57
- }
58
-
59
- if (value instanceof Variable) {
60
- shouldReturn = true
61
- value = value.variable
62
- }
63
-
64
- if (shouldReturn) {
65
- return {
66
- [key]: value,
67
- }
68
- }
69
- }
70
- }
71
-
72
- const resolveTokens = (res: any, conf: TamaguiInternalConfig, fontFamily: any) => {
73
- for (const rKey in res) {
74
- const fKey = conf.shorthands[rKey] || rKey
75
- const val = res[rKey]
76
- if (val instanceof Variable) {
77
- res[fKey] = val.variable
78
- } else if (typeof val === 'string') {
79
- const fVal = val[0] === '$' ? getToken(fKey, val, conf, fontFamily) : val
80
- res[fKey] = fVal
81
- } else {
82
- if (isObj(val)) {
83
- // for things like shadowOffset which is a sub-object
84
- resolveTokens(val, conf, fontFamily)
85
- }
86
- // nullish values cant be tokens so need no exrta parsing
87
- }
88
- }
89
- }
90
-
91
- const getToken = (
92
- key: string,
93
- value: string,
94
- { tokensParsed, themeParsed }: TamaguiInternalConfig,
95
- fontFamily: string | undefined = '$body'
96
- ) => {
97
- if (themeParsed[value]) {
98
- return themeParsed[value].variable
99
- }
100
- let valOrVar: any
101
- if (key === 'fontFamily') {
102
- valOrVar = tokensParsed.font[value]?.family || value
103
- }
104
- if (key === 'fontSize') {
105
- valOrVar = tokensParsed.font[fontFamily]?.size[value] || value
106
- }
107
- if (key === 'lineHeight') {
108
- valOrVar = tokensParsed.font[fontFamily]?.lineHeight[value] || value
109
- }
110
- if (key === 'letterSpacing') {
111
- valOrVar = tokensParsed.font[fontFamily]?.letterSpacing[value] || value
112
- }
113
- if (key === 'fontWeight') {
114
- valOrVar = tokensParsed.font[fontFamily]?.weight[value] || value
115
- }
116
- if (typeof valOrVar !== 'undefined') {
117
- if (valOrVar instanceof Variable) {
118
- return valOrVar.variable
119
- } else {
120
- return valOrVar
121
- }
122
- }
123
- for (const cat in tokenCategories) {
124
- if (tokenCategories[cat][key]) {
125
- const res = tokensParsed[cat][value]
126
- if (res) {
127
- return res.variable
128
- } else {
129
- const themeVar = themeParsed[value]
130
- if (themeVar) {
131
- return themeVar.variable
132
- }
133
- }
134
- }
135
- }
136
- const spaceVar = tokensParsed.space[value]
137
- if (spaceVar) {
138
- return spaceVar.variable
139
- }
140
- return value
141
- }
142
-
143
- // just specificy the least costly, all else go to `space` (most keys - we can exclude)
144
- const tokenCategories = {
145
- size: {
146
- width: true,
147
- height: true,
148
- minWidth: true,
149
- minHeight: true,
150
- maxWidth: true,
151
- maxHeight: true,
152
- },
153
- color: {
154
- color: true,
155
- backgroundColor: true,
156
- borderColor: true,
157
- borderBottomColor: true,
158
- borderTopColor: true,
159
- borderLeftColor: true,
160
- borderRightColor: true,
161
- },
162
- }
163
-
164
- // turns variant spreads into individual lookups
165
- function parseVariants(variants: any, conf: TamaguiInternalConfig) {
166
- return Object.keys(variants).reduce((acc, key) => {
167
- acc[key] = Object.keys(variants[key]).reduce((vacc, vkey) => {
168
- const variantVal = variants[key][vkey]
169
- if (vkey.startsWith('...')) {
170
- // set the default one at '...' for easy fallback on non-exact-variant-match
171
- vacc['...'] = variantVal
172
- const tokenKey = vkey.slice(3)
173
- const tokens = conf.tokens[tokenKey]
174
- for (const tkey in tokens) {
175
- vacc[`$${tkey}`] = variantVal
176
- }
177
- } else {
178
- vacc[vkey] = variantVal
179
- }
180
- return vacc
181
- }, {})
182
- return acc
183
- }, {})
184
- }
@@ -1,22 +0,0 @@
1
- import * as React from 'react'
2
-
3
- import { TamaguiProviderProps } from '../types'
4
- import { TextAncestorProvider } from '../views/TextAncestorContext'
5
- import { ThemeProvider, ThemeProviderProps } from '../views/ThemeProvider'
6
-
7
- export function createTamaguiProvider(themeProps: ThemeProviderProps) {
8
- return function TamaguiProvider({
9
- initialWindowMetrics,
10
- fallback,
11
- children,
12
- ...themePropsProvider
13
- }: TamaguiProviderProps) {
14
- return (
15
- <TextAncestorProvider>
16
- <ThemeProvider {...themeProps} {...themePropsProvider}>
17
- <React.Suspense fallback={fallback || null}>{children}</React.Suspense>
18
- </ThemeProvider>
19
- </TextAncestorProvider>
20
- )
21
- }
22
- }