@tamagui/core 1.0.1-beta.19 → 1.0.1-beta.190

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 (772) hide show
  1. package/dist/cjs/Tamagui.js +14 -12
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/addTheme.js +80 -0
  4. package/dist/cjs/addTheme.js.map +7 -0
  5. package/dist/cjs/{conf.js → config.js} +33 -19
  6. package/dist/cjs/config.js.map +7 -0
  7. package/dist/cjs/constants/constants.js +11 -23
  8. package/dist/cjs/constants/constants.js.map +2 -2
  9. package/dist/cjs/{helpers/nativeGestureHandler.js → constants/isDevTools.js} +8 -8
  10. package/dist/cjs/constants/isDevTools.js.map +7 -0
  11. package/dist/cjs/constants/platform.js +32 -16
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/platform.native.js +62 -0
  14. package/dist/cjs/constants/platform.native.js.map +7 -0
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +1 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +1 -1
  17. package/dist/cjs/contexts/FontLanguageContext.js +30 -0
  18. package/dist/cjs/contexts/FontLanguageContext.js.map +7 -0
  19. package/dist/cjs/{views → contexts}/TextAncestorContext.js +11 -13
  20. package/dist/cjs/contexts/TextAncestorContext.js.map +7 -0
  21. package/dist/cjs/{ThemeContext.js → contexts/ThemeContext.js} +1 -0
  22. package/dist/cjs/contexts/ThemeContext.js.map +7 -0
  23. package/dist/cjs/createComponent.js +925 -484
  24. package/dist/cjs/createComponent.js.map +3 -3
  25. package/dist/cjs/createFont.js +5 -8
  26. package/dist/cjs/createFont.js.map +2 -2
  27. package/dist/cjs/createShorthands.js +1 -2
  28. package/dist/cjs/createShorthands.js.map +1 -1
  29. package/dist/cjs/createTamagui.js +129 -177
  30. package/dist/cjs/createTamagui.js.map +3 -3
  31. package/dist/cjs/createTheme.js +4 -2
  32. package/dist/cjs/createTheme.js.map +2 -2
  33. package/dist/cjs/createTokens.js +5 -25
  34. package/dist/cjs/createTokens.js.map +2 -2
  35. package/dist/cjs/createVariable.js +52 -28
  36. package/dist/cjs/createVariable.js.map +2 -2
  37. package/dist/cjs/createVariables.js +52 -0
  38. package/dist/cjs/createVariables.js.map +7 -0
  39. package/dist/cjs/helpers/RNComponents.js +12 -11
  40. package/dist/cjs/helpers/RNComponents.js.map +2 -2
  41. package/dist/cjs/{ThemeManager.js → helpers/ThemeManager.js} +54 -52
  42. package/dist/cjs/helpers/ThemeManager.js.map +7 -0
  43. package/dist/cjs/helpers/areEqualSets.js +3 -3
  44. package/dist/cjs/helpers/areEqualSets.js.map +1 -1
  45. package/dist/cjs/helpers/assignNativePropsToWeb.js +188 -0
  46. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +7 -0
  47. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +30 -0
  48. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +7 -0
  49. package/dist/cjs/helpers/calc.js +71 -0
  50. package/dist/cjs/helpers/calc.js.map +7 -0
  51. package/dist/cjs/helpers/createMediaStyle.js +17 -9
  52. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  53. package/dist/cjs/helpers/createPropMapper.js +268 -120
  54. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  55. package/dist/cjs/helpers/createShallowUpdate.js +14 -25
  56. package/dist/cjs/helpers/createShallowUpdate.js.map +2 -2
  57. package/dist/cjs/helpers/expandStyle.js +90 -0
  58. package/dist/cjs/helpers/expandStyle.js.map +7 -0
  59. package/dist/cjs/helpers/expandStyles.js +115 -0
  60. package/dist/cjs/helpers/expandStyles.js.map +7 -0
  61. package/dist/cjs/helpers/extendStaticConfig.js +49 -37
  62. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  63. package/dist/cjs/helpers/fixNativeShadow.js +3 -3
  64. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  65. package/dist/cjs/helpers/getAnimationDriver.js +32 -0
  66. package/dist/cjs/helpers/getAnimationDriver.js.map +7 -0
  67. package/dist/cjs/helpers/getExpandedShorthands.js +4 -5
  68. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  69. package/dist/cjs/helpers/{getTextSize.js → getFont.js} +22 -12
  70. package/dist/cjs/helpers/getFont.js.map +7 -0
  71. package/dist/cjs/helpers/getFontLanguage.js +29 -0
  72. package/dist/cjs/helpers/getFontLanguage.js.map +7 -0
  73. package/dist/cjs/helpers/getSize.js +19 -10
  74. package/dist/cjs/helpers/getSize.js.map +2 -2
  75. package/dist/cjs/helpers/getSplitStyles.js +381 -208
  76. package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
  77. package/dist/cjs/helpers/getStackSize.js +46 -0
  78. package/dist/cjs/helpers/getStackSize.js.map +7 -0
  79. package/dist/cjs/helpers/getStylesAtomic.js +199 -133
  80. package/dist/cjs/helpers/getStylesAtomic.js.map +3 -3
  81. package/dist/cjs/helpers/getStylesAtomic.native.js +1 -2
  82. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  83. package/dist/cjs/helpers/getThemeCSSRules.js +103 -0
  84. package/dist/cjs/helpers/getThemeCSSRules.js.map +7 -0
  85. package/dist/cjs/{nativeGestureHandler.native.js → helpers/getThemeCSSRules.native.js} +18 -5
  86. package/dist/cjs/helpers/getThemeCSSRules.native.js.map +7 -0
  87. package/dist/cjs/helpers/getVariantExtras.js +88 -0
  88. package/dist/cjs/helpers/getVariantExtras.js.map +7 -0
  89. package/dist/cjs/helpers/insertStyleRule.js +87 -52
  90. package/dist/cjs/helpers/insertStyleRule.js.map +3 -3
  91. package/dist/cjs/helpers/isObj.js +2 -2
  92. package/dist/cjs/helpers/isObj.js.map +1 -1
  93. package/dist/cjs/helpers/isTamaguiComponent.js +37 -0
  94. package/dist/cjs/helpers/isTamaguiComponent.js.map +7 -0
  95. package/dist/cjs/helpers/isTamaguiElement.js +5 -5
  96. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  97. package/dist/cjs/helpers/matchMedia.js +7 -6
  98. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  99. package/dist/cjs/helpers/matchMedia.native.js +6 -3
  100. package/dist/cjs/helpers/matchMedia.native.js.map +2 -2
  101. package/dist/cjs/helpers/mergeProps.js +54 -0
  102. package/dist/cjs/helpers/mergeProps.js.map +7 -0
  103. package/dist/cjs/helpers/mergeTransform.js +42 -0
  104. package/dist/cjs/helpers/mergeTransform.js.map +7 -0
  105. package/dist/cjs/helpers/normalizeColor.js +80 -0
  106. package/dist/cjs/helpers/normalizeColor.js.map +7 -0
  107. package/dist/cjs/helpers/normalizeValueWithProperty.js +93 -0
  108. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
  109. package/dist/cjs/helpers/proxyThemeVariables.js +7 -4
  110. package/dist/cjs/helpers/proxyThemeVariables.js.map +2 -2
  111. package/dist/cjs/helpers/pseudoDescriptors.js +42 -0
  112. package/dist/cjs/helpers/pseudoDescriptors.js.map +7 -0
  113. package/dist/cjs/helpers/registerCSSVariable.js +40 -0
  114. package/dist/cjs/helpers/registerCSSVariable.js.map +7 -0
  115. package/dist/cjs/helpers/{wrapThemeManagerContext.js → startTransition.js} +12 -15
  116. package/dist/cjs/helpers/startTransition.js.map +7 -0
  117. package/dist/cjs/helpers/themeable.js +17 -40
  118. package/dist/cjs/helpers/themeable.js.map +3 -3
  119. package/dist/cjs/helpers/themes.js +79 -0
  120. package/dist/cjs/helpers/themes.js.map +7 -0
  121. package/dist/cjs/helpers/useShallowSetState.js +44 -0
  122. package/dist/cjs/helpers/useShallowSetState.js.map +7 -0
  123. package/dist/cjs/helpers/validate.js +1 -122
  124. package/dist/cjs/helpers/validate.js.map +3 -3
  125. package/dist/cjs/helpers/withStaticProperties.js +3 -3
  126. package/dist/cjs/helpers/withStaticProperties.js.map +1 -1
  127. package/dist/cjs/hooks/getThemeUnwrapped.js +39 -0
  128. package/dist/cjs/hooks/getThemeUnwrapped.js.map +7 -0
  129. package/dist/cjs/hooks/useConstant.js +4 -2
  130. package/dist/cjs/hooks/useConstant.js.map +2 -2
  131. package/dist/cjs/hooks/useDidFinishSSR.js +60 -0
  132. package/dist/cjs/hooks/useDidFinishSSR.js.map +7 -0
  133. package/dist/cjs/hooks/useId.js +3 -33
  134. package/dist/cjs/hooks/useId.js.map +2 -2
  135. package/dist/cjs/hooks/useIsMounted.js +3 -4
  136. package/dist/cjs/hooks/useIsMounted.js.map +2 -2
  137. package/dist/cjs/hooks/useIsSSR.js +46 -0
  138. package/dist/cjs/hooks/useIsSSR.js.map +7 -0
  139. package/dist/cjs/hooks/useIsTouchDevice.js +11 -9
  140. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  141. package/dist/cjs/hooks/useMedia.js +162 -113
  142. package/dist/cjs/hooks/useMedia.js.map +3 -3
  143. package/dist/cjs/hooks/usePressable.js +4 -18
  144. package/dist/cjs/hooks/usePressable.js.map +1 -1
  145. package/dist/cjs/hooks/useSafeRef.js +60 -0
  146. package/dist/cjs/hooks/useSafeRef.js.map +7 -0
  147. package/dist/cjs/hooks/useServerHooks.js +36 -0
  148. package/dist/cjs/hooks/useServerHooks.js.map +7 -0
  149. package/dist/cjs/hooks/useTheme.js +166 -132
  150. package/dist/cjs/hooks/useTheme.js.map +3 -3
  151. package/dist/cjs/hooks/useUnmountEffect.js +1 -2
  152. package/dist/cjs/hooks/useUnmountEffect.js.map +1 -1
  153. package/dist/cjs/index.js +59 -21
  154. package/dist/cjs/index.js.map +2 -2
  155. package/dist/cjs/injectStyles.js +40 -0
  156. package/dist/cjs/injectStyles.js.map +7 -0
  157. package/dist/cjs/insertFont.js +93 -0
  158. package/dist/cjs/insertFont.js.map +7 -0
  159. package/dist/cjs/static.js +22 -15
  160. package/dist/cjs/static.js.map +2 -2
  161. package/dist/cjs/styled.js +47 -44
  162. package/dist/cjs/styled.js.map +2 -2
  163. package/dist/cjs/types-rnw.js +1 -0
  164. package/dist/cjs/types-rnw.js.map +2 -2
  165. package/dist/cjs/types.js +1 -0
  166. package/dist/cjs/types.js.map +2 -2
  167. package/dist/cjs/updateTheme.js +47 -0
  168. package/dist/cjs/updateTheme.js.map +7 -0
  169. package/dist/cjs/vendor/Pressability.js +32 -0
  170. package/dist/cjs/vendor/Pressability.js.map +7 -0
  171. package/dist/cjs/vendor/Pressability.native.js +32 -0
  172. package/dist/cjs/vendor/Pressability.native.js.map +7 -0
  173. package/dist/cjs/views/FontLanguage.js +38 -0
  174. package/dist/cjs/views/FontLanguage.js.map +7 -0
  175. package/dist/cjs/views/FontLanguage.native.js +38 -0
  176. package/dist/cjs/views/FontLanguage.native.js.map +7 -0
  177. package/dist/cjs/{helpers/nativeGestureHandler.native.js → views/FontLanguage.types.js} +4 -5
  178. package/dist/cjs/views/FontLanguage.types.js.map +7 -0
  179. package/dist/cjs/views/Slot.js +63 -65
  180. package/dist/cjs/views/Slot.js.map +2 -2
  181. package/dist/cjs/views/Stack.js +4 -19
  182. package/dist/cjs/views/Stack.js.map +1 -1
  183. package/dist/cjs/views/TamaguiProvider.js +82 -0
  184. package/dist/cjs/views/TamaguiProvider.js.map +7 -0
  185. package/dist/cjs/views/Text.js +28 -29
  186. package/dist/cjs/views/Text.js.map +2 -2
  187. package/dist/cjs/views/Theme.js +43 -21
  188. package/dist/cjs/views/Theme.js.map +3 -3
  189. package/dist/cjs/views/ThemeInverse.js +25 -25
  190. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  191. package/dist/cjs/views/ThemeProvider.js +35 -23
  192. package/dist/cjs/views/ThemeProvider.js.map +3 -3
  193. package/dist/cjs/views/ThemeReset.js +18 -12
  194. package/dist/cjs/views/ThemeReset.js.map +3 -3
  195. package/dist/esm/Tamagui.js +8 -11
  196. package/dist/esm/Tamagui.js.map +2 -2
  197. package/dist/esm/addTheme.js +56 -0
  198. package/dist/esm/addTheme.js.map +7 -0
  199. package/dist/esm/config.js +45 -0
  200. package/dist/esm/config.js.map +7 -0
  201. package/dist/esm/constants/constants.js +2 -2
  202. package/dist/esm/constants/constants.js.map +2 -2
  203. package/dist/esm/constants/isDevTools.js +5 -0
  204. package/dist/esm/constants/isDevTools.js.map +7 -0
  205. package/dist/esm/constants/platform.js +25 -12
  206. package/dist/esm/constants/platform.js.map +2 -2
  207. package/dist/esm/constants/platform.native.js +28 -0
  208. package/dist/esm/constants/platform.native.js.map +7 -0
  209. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  210. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +1 -1
  211. package/dist/esm/contexts/FontLanguageContext.js +6 -0
  212. package/dist/esm/contexts/FontLanguageContext.js.map +7 -0
  213. package/dist/esm/contexts/TextAncestorContext.js +17 -0
  214. package/dist/esm/contexts/TextAncestorContext.js.map +7 -0
  215. package/dist/esm/{ThemeContext.js → contexts/ThemeContext.js} +0 -0
  216. package/dist/esm/contexts/ThemeContext.js.map +7 -0
  217. package/dist/esm/createComponent.js +891 -389
  218. package/dist/esm/createComponent.js.map +3 -3
  219. package/dist/esm/createFont.js +4 -9
  220. package/dist/esm/createFont.js.map +2 -2
  221. package/dist/esm/createShorthands.js +0 -3
  222. package/dist/esm/createShorthands.js.map +1 -1
  223. package/dist/esm/createTamagui.js +128 -158
  224. package/dist/esm/createTamagui.js.map +3 -3
  225. package/dist/esm/createTheme.js +3 -3
  226. package/dist/esm/createTheme.js.map +2 -2
  227. package/dist/esm/createTokens.js +3 -24
  228. package/dist/esm/createTokens.js.map +2 -2
  229. package/dist/esm/createVariable.js +47 -26
  230. package/dist/esm/createVariable.js.map +2 -2
  231. package/dist/esm/createVariables.js +28 -0
  232. package/dist/esm/createVariables.js.map +7 -0
  233. package/dist/esm/helpers/RNComponents.js +11 -8
  234. package/dist/esm/helpers/RNComponents.js.map +2 -2
  235. package/dist/esm/{ThemeManager.js → helpers/ThemeManager.js} +53 -53
  236. package/dist/esm/helpers/ThemeManager.js.map +7 -0
  237. package/dist/esm/helpers/areEqualSets.js +2 -4
  238. package/dist/esm/helpers/areEqualSets.js.map +1 -1
  239. package/dist/esm/helpers/assignNativePropsToWeb.js +164 -0
  240. package/dist/esm/helpers/assignNativePropsToWeb.js.map +7 -0
  241. package/dist/esm/helpers/assignNativePropsToWeb.native.js +6 -0
  242. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +7 -0
  243. package/dist/esm/helpers/calc.js +47 -0
  244. package/dist/esm/helpers/calc.js.map +7 -0
  245. package/dist/esm/helpers/createMediaStyle.js +16 -10
  246. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  247. package/dist/esm/helpers/createPropMapper.js +263 -121
  248. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  249. package/dist/esm/helpers/createShallowUpdate.js +13 -12
  250. package/dist/esm/helpers/createShallowUpdate.js.map +2 -2
  251. package/dist/esm/helpers/expandStyle.js +66 -0
  252. package/dist/esm/helpers/expandStyle.js.map +7 -0
  253. package/dist/esm/helpers/expandStyles.js +89 -0
  254. package/dist/esm/helpers/expandStyles.js.map +7 -0
  255. package/dist/esm/helpers/extendStaticConfig.js +35 -28
  256. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  257. package/dist/esm/helpers/fixNativeShadow.js +2 -4
  258. package/dist/esm/helpers/fixNativeShadow.js.map +1 -1
  259. package/dist/esm/helpers/getAnimationDriver.js +8 -0
  260. package/dist/esm/helpers/getAnimationDriver.js.map +7 -0
  261. package/dist/esm/helpers/getExpandedShorthands.js +2 -5
  262. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  263. package/dist/esm/helpers/{getTextSize.js → getFont.js} +17 -9
  264. package/dist/esm/helpers/getFont.js.map +7 -0
  265. package/dist/esm/helpers/getFontLanguage.js +5 -0
  266. package/dist/esm/helpers/getFontLanguage.js.map +7 -0
  267. package/dist/esm/helpers/getSize.js +16 -10
  268. package/dist/esm/helpers/getSize.js.map +2 -2
  269. package/dist/esm/helpers/getSplitStyles.js +364 -188
  270. package/dist/esm/helpers/getSplitStyles.js.map +3 -3
  271. package/dist/esm/helpers/getStackSize.js +22 -0
  272. package/dist/esm/helpers/getStackSize.js.map +7 -0
  273. package/dist/esm/helpers/getStylesAtomic.js +187 -108
  274. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  275. package/dist/esm/helpers/getStylesAtomic.native.js +0 -3
  276. package/dist/esm/helpers/getStylesAtomic.native.js.map +1 -1
  277. package/dist/esm/helpers/getThemeCSSRules.js +79 -0
  278. package/dist/esm/helpers/getThemeCSSRules.js.map +7 -0
  279. package/dist/esm/helpers/getThemeCSSRules.native.js +7 -0
  280. package/dist/esm/helpers/getThemeCSSRules.native.js.map +7 -0
  281. package/dist/esm/helpers/getVariantExtras.js +63 -0
  282. package/dist/esm/helpers/getVariantExtras.js.map +7 -0
  283. package/dist/esm/helpers/insertStyleRule.js +82 -50
  284. package/dist/esm/helpers/insertStyleRule.js.map +3 -3
  285. package/dist/esm/helpers/isObj.js +1 -3
  286. package/dist/esm/helpers/isObj.js.map +1 -1
  287. package/dist/esm/helpers/isTamaguiComponent.js +13 -0
  288. package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
  289. package/dist/esm/helpers/isTamaguiElement.js +4 -6
  290. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  291. package/dist/esm/helpers/matchMedia.js +6 -7
  292. package/dist/esm/helpers/matchMedia.js.map +2 -2
  293. package/dist/esm/helpers/matchMedia.native.js +1 -3
  294. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  295. package/dist/esm/helpers/mergeProps.js +30 -0
  296. package/dist/esm/helpers/mergeProps.js.map +7 -0
  297. package/dist/esm/helpers/mergeTransform.js +17 -0
  298. package/dist/esm/helpers/mergeTransform.js.map +7 -0
  299. package/dist/esm/helpers/normalizeColor.js +49 -0
  300. package/dist/esm/helpers/normalizeColor.js.map +7 -0
  301. package/dist/esm/helpers/normalizeValueWithProperty.js +69 -0
  302. package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
  303. package/dist/esm/helpers/proxyThemeVariables.js +6 -5
  304. package/dist/esm/helpers/proxyThemeVariables.js.map +2 -2
  305. package/dist/esm/helpers/pseudoDescriptors.js +18 -0
  306. package/dist/esm/helpers/pseudoDescriptors.js.map +7 -0
  307. package/dist/esm/helpers/registerCSSVariable.js +14 -0
  308. package/dist/esm/helpers/registerCSSVariable.js.map +7 -0
  309. package/dist/esm/helpers/startTransition.js +6 -0
  310. package/dist/esm/helpers/startTransition.js.map +7 -0
  311. package/dist/esm/helpers/themeable.js +11 -9
  312. package/dist/esm/helpers/themeable.js.map +2 -2
  313. package/dist/esm/helpers/themes.js +54 -0
  314. package/dist/esm/helpers/themes.js.map +7 -0
  315. package/dist/esm/helpers/useShallowSetState.js +20 -0
  316. package/dist/esm/helpers/useShallowSetState.js.map +7 -0
  317. package/dist/esm/helpers/validate.js +0 -75
  318. package/dist/esm/helpers/validate.js.map +3 -3
  319. package/dist/esm/helpers/withStaticProperties.js +2 -4
  320. package/dist/esm/helpers/withStaticProperties.js.map +1 -1
  321. package/dist/esm/hooks/getThemeUnwrapped.js +14 -0
  322. package/dist/esm/hooks/getThemeUnwrapped.js.map +7 -0
  323. package/dist/esm/hooks/useConstant.js +4 -4
  324. package/dist/esm/hooks/useConstant.js.map +2 -2
  325. package/dist/esm/hooks/useDidFinishSSR.js +35 -0
  326. package/dist/esm/hooks/useDidFinishSSR.js.map +7 -0
  327. package/dist/esm/hooks/useId.js +1 -31
  328. package/dist/esm/hooks/useId.js.map +2 -2
  329. package/dist/esm/hooks/useIsMounted.js +1 -4
  330. package/dist/esm/hooks/useIsMounted.js.map +2 -2
  331. package/dist/esm/hooks/useIsSSR.js +22 -0
  332. package/dist/esm/hooks/useIsSSR.js.map +7 -0
  333. package/dist/esm/hooks/useIsTouchDevice.js +10 -10
  334. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  335. package/dist/esm/hooks/useMedia.js +157 -103
  336. package/dist/esm/hooks/useMedia.js.map +3 -3
  337. package/dist/esm/hooks/usePressable.js +2 -4
  338. package/dist/esm/hooks/usePressable.js.map +1 -1
  339. package/dist/esm/hooks/useSafeRef.js +36 -0
  340. package/dist/esm/hooks/useSafeRef.js.map +7 -0
  341. package/dist/esm/hooks/useServerHooks.js +11 -0
  342. package/dist/esm/hooks/useServerHooks.js.map +7 -0
  343. package/dist/esm/hooks/useTheme.js +159 -109
  344. package/dist/esm/hooks/useTheme.js.map +3 -3
  345. package/dist/esm/hooks/useUnmountEffect.js +0 -3
  346. package/dist/esm/hooks/useUnmountEffect.js.map +1 -1
  347. package/dist/esm/index.js +51 -13
  348. package/dist/esm/index.js.map +2 -2
  349. package/dist/esm/injectStyles.js +16 -0
  350. package/dist/esm/injectStyles.js.map +7 -0
  351. package/dist/esm/insertFont.js +67 -0
  352. package/dist/esm/insertFont.js.map +7 -0
  353. package/dist/esm/static.js +15 -15
  354. package/dist/esm/static.js.map +2 -2
  355. package/dist/esm/styled.js +40 -12
  356. package/dist/esm/styled.js.map +2 -2
  357. package/dist/esm/types-rnw.js +0 -0
  358. package/dist/esm/types-rnw.js.map +0 -0
  359. package/dist/esm/types.js +0 -0
  360. package/dist/esm/types.js.map +0 -0
  361. package/dist/esm/updateTheme.js +23 -0
  362. package/dist/esm/updateTheme.js.map +7 -0
  363. package/dist/esm/vendor/Pressability.js +7 -0
  364. package/dist/esm/vendor/Pressability.js.map +7 -0
  365. package/dist/esm/vendor/Pressability.native.js +7 -0
  366. package/dist/esm/vendor/Pressability.native.js.map +7 -0
  367. package/dist/esm/views/FontLanguage.js +14 -0
  368. package/dist/esm/views/FontLanguage.js.map +7 -0
  369. package/dist/esm/views/FontLanguage.native.js +14 -0
  370. package/dist/esm/views/FontLanguage.native.js.map +7 -0
  371. package/dist/esm/views/FontLanguage.types.js +1 -0
  372. package/dist/{cjs/defaultComponentState.js.map → esm/views/FontLanguage.types.js.map} +0 -0
  373. package/dist/esm/views/Slot.js +50 -32
  374. package/dist/esm/views/Slot.js.map +2 -2
  375. package/dist/esm/views/Stack.js +0 -0
  376. package/dist/esm/views/Stack.js.map +1 -1
  377. package/dist/esm/views/TamaguiProvider.js +52 -0
  378. package/dist/esm/views/TamaguiProvider.js.map +7 -0
  379. package/dist/esm/views/Text.js +13 -5
  380. package/dist/esm/views/Text.js.map +2 -2
  381. package/dist/esm/views/Theme.js +35 -19
  382. package/dist/esm/views/Theme.js.map +3 -3
  383. package/dist/esm/views/ThemeInverse.js +22 -20
  384. package/dist/esm/views/ThemeInverse.js.map +2 -2
  385. package/dist/esm/views/ThemeProvider.js +28 -21
  386. package/dist/esm/views/ThemeProvider.js.map +2 -2
  387. package/dist/esm/views/ThemeReset.js +13 -12
  388. package/dist/esm/views/ThemeReset.js.map +2 -2
  389. package/package.json +48 -16
  390. package/reset.css +25 -4
  391. package/src/Tamagui.ts +44 -0
  392. package/src/addTheme.ts +67 -0
  393. package/src/config.ts +45 -0
  394. package/src/constants/constants.ts +15 -0
  395. package/src/constants/isDevTools.ts +6 -0
  396. package/src/constants/platform.native.ts +14 -0
  397. package/src/constants/platform.ts +41 -0
  398. package/src/contexts/ButtonInsideButtonContext.tsx +3 -0
  399. package/src/contexts/FontLanguageContext.tsx +5 -0
  400. package/src/contexts/TextAncestorContext.tsx +10 -0
  401. package/src/contexts/ThemeContext.tsx +5 -0
  402. package/src/createComponent.tsx +1599 -0
  403. package/src/createFont.ts +29 -0
  404. package/src/createShorthands.ts +5 -0
  405. package/src/createTamagui.ts +229 -0
  406. package/src/createTheme.ts +13 -0
  407. package/src/createTokens.ts +35 -0
  408. package/src/createVariable.ts +85 -0
  409. package/src/createVariables.ts +42 -0
  410. package/src/helpers/RNComponents.tsx +14 -0
  411. package/src/helpers/ThemeManager.tsx +235 -0
  412. package/src/helpers/areEqualSets.tsx +9 -0
  413. package/src/helpers/assignNativePropsToWeb.native.tsx +1 -0
  414. package/src/helpers/assignNativePropsToWeb.tsx +178 -0
  415. package/src/helpers/calc.ts +68 -0
  416. package/src/helpers/createMediaStyle.ts +48 -0
  417. package/src/helpers/createPropMapper.ts +523 -0
  418. package/src/helpers/expandStyle.ts +81 -0
  419. package/src/helpers/expandStyles.ts +106 -0
  420. package/src/helpers/extendStaticConfig.ts +76 -0
  421. package/src/helpers/fixNativeShadow.tsx +2 -0
  422. package/src/helpers/getAnimationDriver.tsx +5 -0
  423. package/src/helpers/getExpandedShorthands.ts +15 -0
  424. package/src/helpers/getFont.tsx +43 -0
  425. package/src/helpers/getFontLanguage.ts +2 -0
  426. package/src/helpers/getSize.ts +22 -0
  427. package/src/helpers/getSplitStyles.tsx +738 -0
  428. package/src/helpers/getStackSize.ts +22 -0
  429. package/src/helpers/getStylesAtomic.native.ts +3 -0
  430. package/src/helpers/getStylesAtomic.ts +292 -0
  431. package/src/helpers/getThemeCSSRules.native.ts +3 -0
  432. package/src/helpers/getThemeCSSRules.ts +105 -0
  433. package/src/helpers/getVariantExtras.tsx +84 -0
  434. package/src/helpers/insertStyleRule.tsx +150 -0
  435. package/src/helpers/isObj.ts +1 -0
  436. package/src/helpers/isTamaguiComponent.tsx +15 -0
  437. package/src/helpers/isTamaguiElement.tsx +12 -0
  438. package/src/helpers/matchMedia.native.ts +6 -0
  439. package/src/helpers/matchMedia.ts +16 -0
  440. package/src/helpers/mergeProps.ts +56 -0
  441. package/src/helpers/mergeTransform.ts +16 -0
  442. package/src/helpers/normalizeColor.ts +53 -0
  443. package/src/helpers/normalizeValueWithProperty.ts +80 -0
  444. package/src/helpers/proxyThemeVariables.tsx +18 -0
  445. package/src/helpers/pseudoDescriptors.ts +18 -0
  446. package/src/helpers/registerCSSVariable.ts +11 -0
  447. package/src/helpers/startTransition.ts +4 -0
  448. package/src/helpers/themeable.tsx +45 -0
  449. package/src/helpers/themes.ts +69 -0
  450. package/src/helpers/useShallowSetState.tsx +20 -0
  451. package/src/helpers/validate.ts +80 -0
  452. package/src/helpers/withStaticProperties.tsx +7 -0
  453. package/src/hooks/getThemeUnwrapped.tsx +8 -0
  454. package/src/hooks/useConstant.tsx +19 -0
  455. package/src/hooks/useId.tsx +1 -0
  456. package/src/hooks/useIsMounted.ts +16 -0
  457. package/src/hooks/useIsTouchDevice.tsx +20 -0
  458. package/src/hooks/useMedia.tsx +266 -0
  459. package/src/hooks/usePressable.tsx +9 -0
  460. package/src/hooks/useSafeRef.ts +49 -0
  461. package/src/hooks/useServerHooks.tsx +12 -0
  462. package/src/hooks/useTheme.tsx +299 -0
  463. package/src/hooks/useUnmountEffect.ts +5 -0
  464. package/src/index.ts +83 -0
  465. package/src/injectStyles.ts +20 -0
  466. package/src/insertFont.ts +70 -0
  467. package/src/static.ts +15 -0
  468. package/src/styled.tsx +198 -0
  469. package/src/types-rnw.tsx +162 -0
  470. package/src/types.tsx +1307 -0
  471. package/src/updateTheme.ts +23 -0
  472. package/src/vendor/Pressability.native.tsx +3 -0
  473. package/src/vendor/Pressability.tsx +2 -0
  474. package/src/views/FontLanguage.native.tsx +9 -0
  475. package/src/views/FontLanguage.tsx +18 -0
  476. package/src/views/FontLanguage.types.ts +13 -0
  477. package/src/views/Slot.tsx +151 -0
  478. package/src/views/Stack.tsx +24 -0
  479. package/src/views/TamaguiProvider.tsx +56 -0
  480. package/src/views/Text.tsx +79 -0
  481. package/src/views/Theme.tsx +72 -0
  482. package/src/views/ThemeInverse.tsx +33 -0
  483. package/src/views/ThemeProvider.tsx +63 -0
  484. package/src/views/ThemeReset.tsx +43 -0
  485. package/types/Tamagui.d.ts +6 -8
  486. package/types/addTheme.d.ts +11 -0
  487. package/types/conf.d.ts +4 -5
  488. package/types/config.d.ts +47 -0
  489. package/types/constants/constants.d.ts +1 -1
  490. package/types/constants/isDevTools.d.ts +2 -0
  491. package/types/constants/platform.d.ts +7 -6
  492. package/types/constants/platform.native.d.ts +13 -0
  493. package/types/contexts/FontLanguageContext.d.ts +5 -0
  494. package/types/{views → contexts}/TextAncestorContext.d.ts +0 -0
  495. package/types/{ThemeContext.d.ts → contexts/ThemeContext.d.ts} +1 -1
  496. package/types/createComponent.d.ts +32 -15
  497. package/types/createComponent.server.d.ts +36 -0
  498. package/types/createTamagui.d.ts +2 -17
  499. package/types/createTheme.d.ts +1 -1
  500. package/types/createTokens.d.ts +5 -6
  501. package/types/createVariable.d.ts +24 -12
  502. package/types/createVariables.d.ts +10 -0
  503. package/types/helpers/RNComponents.d.ts +1 -1
  504. package/types/helpers/ThemeManager.d.ts +46 -0
  505. package/types/helpers/assignNativePropsToWeb.d.ts +2 -0
  506. package/types/helpers/assignNativePropsToWeb.native.d.ts +2 -0
  507. package/types/helpers/calc.d.ts +17 -0
  508. package/types/helpers/createMediaStyle.d.ts +2 -4
  509. package/types/helpers/createPropMapper.d.ts +6 -3
  510. package/types/helpers/createShallowUpdate.d.ts +1 -2
  511. package/types/helpers/cssHash.d.ts +2 -0
  512. package/types/helpers/expandStyle.d.ts +6 -0
  513. package/types/helpers/expandStyles.d.ts +26 -0
  514. package/types/helpers/getAnimationDriver.d.ts +6 -0
  515. package/types/helpers/getFont.d.ts +3 -0
  516. package/types/helpers/getFontLanguage.d.ts +2 -0
  517. package/types/helpers/getSize.d.ts +3 -2
  518. package/types/helpers/getSplitStyles.d.ts +16 -9
  519. package/types/helpers/getStackSize.d.ts +8 -0
  520. package/types/helpers/getStylesAtomic.d.ts +17 -22
  521. package/types/helpers/getThemeCSSRules.d.ts +8 -0
  522. package/types/helpers/getThemeCSSRules.native.d.ts +2 -0
  523. package/types/helpers/getVariantExtras.d.ts +5 -0
  524. package/types/helpers/insertStyleRule.d.ts +7 -3
  525. package/types/helpers/isTamaguiComponent.d.ts +5 -0
  526. package/types/helpers/isTamaguiElement.d.ts +5 -1
  527. package/types/helpers/matchMedia.d.ts +1 -1
  528. package/types/helpers/mergeProps.d.ts +17 -0
  529. package/types/helpers/mergeTransform.d.ts +7 -0
  530. package/types/helpers/normalizeColor.d.ts +3 -0
  531. package/types/helpers/normalizeValueWithProperty.d.ts +6 -0
  532. package/types/helpers/pseudoDescriptors.d.ts +16 -0
  533. package/types/helpers/registerCSSVariable.d.ts +5 -0
  534. package/types/helpers/startTransition.d.ts +3 -0
  535. package/types/helpers/themes.d.ts +4 -0
  536. package/types/helpers/useAnimationDriver.d.ts +1 -0
  537. package/types/helpers/useShallowSetState.d.ts +3 -0
  538. package/types/helpers/validate.d.ts +0 -3
  539. package/types/hooks/getThemeUnwrapped.d.ts +3 -0
  540. package/types/hooks/useAnimationDriver.d.ts +1 -0
  541. package/types/hooks/useDidFinishSSR.d.ts +3 -0
  542. package/types/hooks/useFeatures.d.ts +10 -5
  543. package/types/hooks/useId.d.ts +1 -8
  544. package/types/hooks/useIsSSR.d.ts +4 -0
  545. package/types/hooks/useMedia.d.ts +20 -6
  546. package/types/hooks/useSafeRef.d.ts +4 -0
  547. package/types/hooks/useServerContext.d.ts +2 -0
  548. package/types/hooks/useServerHooks.d.ts +4 -0
  549. package/types/hooks/useTheme.d.ts +21 -31
  550. package/types/index.d.ts +29 -9
  551. package/types/injectStyles.d.ts +7 -0
  552. package/types/insertFont.d.ts +9 -0
  553. package/types/static.d.ts +2 -15
  554. package/types/styled.d.ts +7 -3
  555. package/types/types.d.ts +277 -77
  556. package/types/updateTheme.d.ts +9 -0
  557. package/types/vendor/Pressability.d.ts +3 -0
  558. package/types/vendor/Pressability.native.d.ts +3 -0
  559. package/types/views/FontLanguage.d.ts +4 -0
  560. package/types/views/FontLanguage.native.d.ts +4 -0
  561. package/types/views/FontLanguage.types.d.ts +11 -0
  562. package/types/views/Slot.d.ts +1 -0
  563. package/types/views/TamaguiProvider.d.ts +4 -0
  564. package/types/views/Theme.d.ts +3 -9
  565. package/types/views/ThemeInverse.d.ts +4 -8
  566. package/types/views/ThemeProvider.d.ts +2 -1
  567. package/dist/cjs/ThemeContext.js.map +0 -7
  568. package/dist/cjs/ThemeManager.js.map +0 -7
  569. package/dist/cjs/conf.js.map +0 -7
  570. package/dist/cjs/constants/rnw.js +0 -46
  571. package/dist/cjs/constants/rnw.js.map +0 -7
  572. package/dist/cjs/defaultComponentState.js +0 -1
  573. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -87
  574. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
  575. package/dist/cjs/helpers/createTamaguiProvider.js +0 -93
  576. package/dist/cjs/helpers/createTamaguiProvider.js.map +0 -7
  577. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -53
  578. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  579. package/dist/cjs/helpers/getButtonSize.js +0 -45
  580. package/dist/cjs/helpers/getButtonSize.js.map +0 -7
  581. package/dist/cjs/helpers/getTextSize.js.map +0 -7
  582. package/dist/cjs/helpers/nativeGestureHandler.js.map +0 -7
  583. package/dist/cjs/helpers/nativeGestureHandler.native.js.map +0 -7
  584. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +0 -7
  585. package/dist/cjs/hooks/useFeatures.js +0 -228
  586. package/dist/cjs/hooks/useFeatures.js.map +0 -7
  587. package/dist/cjs/hooks/usePrevious.js +0 -1
  588. package/dist/cjs/hooks/usePrevious.js.map +0 -7
  589. package/dist/cjs/nativeGestureHandler.native.js.map +0 -7
  590. package/dist/cjs/views/TextAncestorContext.js.map +0 -7
  591. package/dist/esm/ThemeContext.js.map +0 -7
  592. package/dist/esm/ThemeManager.js.map +0 -7
  593. package/dist/esm/conf.js +0 -36
  594. package/dist/esm/conf.js.map +0 -7
  595. package/dist/esm/constants/rnw.js +0 -24
  596. package/dist/esm/constants/rnw.js.map +0 -7
  597. package/dist/esm/defaultComponentState.js +0 -1
  598. package/dist/esm/defaultComponentState.js.map +0 -7
  599. package/dist/esm/helpers/addStylesUsingClassname.js +0 -64
  600. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
  601. package/dist/esm/helpers/createTamaguiProvider.js +0 -40
  602. package/dist/esm/helpers/createTamaguiProvider.js.map +0 -7
  603. package/dist/esm/helpers/fixNativeShadow.native.js +0 -32
  604. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  605. package/dist/esm/helpers/getButtonSize.js +0 -24
  606. package/dist/esm/helpers/getButtonSize.js.map +0 -7
  607. package/dist/esm/helpers/getTextSize.js.map +0 -7
  608. package/dist/esm/helpers/nativeGestureHandler.js +0 -7
  609. package/dist/esm/helpers/nativeGestureHandler.js.map +0 -7
  610. package/dist/esm/helpers/nativeGestureHandler.native.js +0 -2
  611. package/dist/esm/helpers/nativeGestureHandler.native.js.map +0 -7
  612. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -14
  613. package/dist/esm/helpers/wrapThemeManagerContext.js.map +0 -7
  614. package/dist/esm/hooks/useFeatures.js +0 -173
  615. package/dist/esm/hooks/useFeatures.js.map +0 -7
  616. package/dist/esm/hooks/usePrevious.js +0 -1
  617. package/dist/esm/hooks/usePrevious.js.map +0 -7
  618. package/dist/esm/nativeGestureHandler.native.js +0 -2
  619. package/dist/esm/nativeGestureHandler.native.js.map +0 -7
  620. package/dist/esm/views/TextAncestorContext.js +0 -18
  621. package/dist/esm/views/TextAncestorContext.js.map +0 -7
  622. package/dist/jsx/Tamagui.js +0 -41
  623. package/dist/jsx/ThemeContext.js +0 -5
  624. package/dist/jsx/ThemeManager.js +0 -186
  625. package/dist/jsx/conf.js +0 -35
  626. package/dist/jsx/constants/constants.js +0 -17
  627. package/dist/jsx/constants/platform.js +0 -25
  628. package/dist/jsx/constants/rnw.js +0 -23
  629. package/dist/jsx/contexts/ButtonInsideButtonContext.js +0 -5
  630. package/dist/jsx/createComponent.js +0 -636
  631. package/dist/jsx/createFont.js +0 -27
  632. package/dist/jsx/createShorthands.js +0 -9
  633. package/dist/jsx/createTamagui.js +0 -201
  634. package/dist/jsx/createTheme.js +0 -6
  635. package/dist/jsx/createTokens.js +0 -28
  636. package/dist/jsx/createVariable.js +0 -48
  637. package/dist/jsx/defaultComponentState.js +0 -0
  638. package/dist/jsx/helpers/RNComponents.js +0 -11
  639. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -63
  640. package/dist/jsx/helpers/areEqualSets.js +0 -15
  641. package/dist/jsx/helpers/createMediaStyle.js +0 -30
  642. package/dist/jsx/helpers/createPropMapper.js +0 -237
  643. package/dist/jsx/helpers/createShallowUpdate.js +0 -18
  644. package/dist/jsx/helpers/createTamaguiProvider.js +0 -34
  645. package/dist/jsx/helpers/extendStaticConfig.js +0 -61
  646. package/dist/jsx/helpers/fixNativeShadow.js +0 -7
  647. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -31
  648. package/dist/jsx/helpers/getButtonSize.js +0 -23
  649. package/dist/jsx/helpers/getExpandedShorthands.js +0 -18
  650. package/dist/jsx/helpers/getSize.js +0 -12
  651. package/dist/jsx/helpers/getSplitStyles.js +0 -322
  652. package/dist/jsx/helpers/getStylesAtomic.js +0 -130
  653. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
  654. package/dist/jsx/helpers/getTextSize.js +0 -33
  655. package/dist/jsx/helpers/insertStyleRule.js +0 -94
  656. package/dist/jsx/helpers/isObj.js +0 -6
  657. package/dist/jsx/helpers/isTamaguiElement.js +0 -10
  658. package/dist/jsx/helpers/matchMedia.js +0 -17
  659. package/dist/jsx/helpers/matchMedia.native.js +0 -8
  660. package/dist/jsx/helpers/nativeGestureHandler.js +0 -6
  661. package/dist/jsx/helpers/nativeGestureHandler.native.js +0 -1
  662. package/dist/jsx/helpers/proxyThemeVariables.js +0 -17
  663. package/dist/jsx/helpers/themeable.js +0 -24
  664. package/dist/jsx/helpers/validate.js +0 -75
  665. package/dist/jsx/helpers/withStaticProperties.js +0 -9
  666. package/dist/jsx/helpers/wrapThemeManagerContext.js +0 -10
  667. package/dist/jsx/hooks/useConstant.js +0 -14
  668. package/dist/jsx/hooks/useFeatures.js +0 -167
  669. package/dist/jsx/hooks/useId.js +0 -34
  670. package/dist/jsx/hooks/useIsMounted.js +0 -18
  671. package/dist/jsx/hooks/useIsTouchDevice.js +0 -16
  672. package/dist/jsx/hooks/useMedia.js +0 -158
  673. package/dist/jsx/hooks/usePressable.js +0 -13
  674. package/dist/jsx/hooks/usePrevious.js +0 -0
  675. package/dist/jsx/hooks/useTheme.js +0 -177
  676. package/dist/jsx/hooks/useUnmountEffect.js +0 -10
  677. package/dist/jsx/index.js +0 -54
  678. package/dist/jsx/nativeGestureHandler.native.js +0 -1
  679. package/dist/jsx/static.js +0 -16
  680. package/dist/jsx/styled.js +0 -47
  681. package/dist/jsx/types-rnw.js +0 -0
  682. package/dist/jsx/types.js +0 -0
  683. package/dist/jsx/views/Slot.js +0 -75
  684. package/dist/jsx/views/Stack.js +0 -12
  685. package/dist/jsx/views/Text.js +0 -56
  686. package/dist/jsx/views/TextAncestorContext.js +0 -15
  687. package/dist/jsx/views/Theme.js +0 -31
  688. package/dist/jsx/views/ThemeInverse.js +0 -27
  689. package/dist/jsx/views/ThemeProvider.js +0 -35
  690. package/dist/jsx/views/ThemeReset.js +0 -34
  691. package/types/Tamagui.d.ts.map +0 -1
  692. package/types/ThemeContext.d.ts.map +0 -1
  693. package/types/ThemeManager.d.ts +0 -49
  694. package/types/ThemeManager.d.ts.map +0 -1
  695. package/types/conf.d.ts.map +0 -1
  696. package/types/constants/constants.d.ts.map +0 -1
  697. package/types/constants/platform.d.ts.map +0 -1
  698. package/types/constants/rnw.d.ts +0 -2
  699. package/types/constants/rnw.d.ts.map +0 -1
  700. package/types/contexts/ButtonInsideButtonContext.d.ts.map +0 -1
  701. package/types/createComponent.d.ts.map +0 -1
  702. package/types/createFont.d.ts.map +0 -1
  703. package/types/createShorthands.d.ts.map +0 -1
  704. package/types/createTamagui.d.ts.map +0 -1
  705. package/types/createTheme.d.ts.map +0 -1
  706. package/types/createTokens.d.ts.map +0 -1
  707. package/types/createVariable.d.ts.map +0 -1
  708. package/types/defaultComponentState.d.ts +0 -1
  709. package/types/defaultComponentState.d.ts.map +0 -1
  710. package/types/helpers/RNComponents.d.ts.map +0 -1
  711. package/types/helpers/addStylesUsingClassname.d.ts +0 -3
  712. package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
  713. package/types/helpers/areEqualSets.d.ts.map +0 -1
  714. package/types/helpers/createMediaStyle.d.ts.map +0 -1
  715. package/types/helpers/createPropMapper.d.ts.map +0 -1
  716. package/types/helpers/createShallowUpdate.d.ts.map +0 -1
  717. package/types/helpers/createTamaguiProvider.d.ts +0 -7
  718. package/types/helpers/createTamaguiProvider.d.ts.map +0 -1
  719. package/types/helpers/extendStaticConfig.d.ts.map +0 -1
  720. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  721. package/types/helpers/fixNativeShadow.native.d.ts +0 -3
  722. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  723. package/types/helpers/getButtonSize.d.ts +0 -8
  724. package/types/helpers/getButtonSize.d.ts.map +0 -1
  725. package/types/helpers/getExpandedShorthands.d.ts.map +0 -1
  726. package/types/helpers/getSize.d.ts.map +0 -1
  727. package/types/helpers/getSplitStyles.d.ts.map +0 -1
  728. package/types/helpers/getStylesAtomic.d.ts.map +0 -1
  729. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  730. package/types/helpers/getTextSize.d.ts +0 -3
  731. package/types/helpers/getTextSize.d.ts.map +0 -1
  732. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  733. package/types/helpers/isObj.d.ts.map +0 -1
  734. package/types/helpers/isTamaguiElement.d.ts.map +0 -1
  735. package/types/helpers/matchMedia.d.ts.map +0 -1
  736. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  737. package/types/helpers/nativeGestureHandler.d.ts +0 -2
  738. package/types/helpers/nativeGestureHandler.d.ts.map +0 -1
  739. package/types/helpers/nativeGestureHandler.native.d.ts +0 -2
  740. package/types/helpers/nativeGestureHandler.native.d.ts.map +0 -1
  741. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  742. package/types/helpers/themeable.d.ts.map +0 -1
  743. package/types/helpers/validate.d.ts.map +0 -1
  744. package/types/helpers/withStaticProperties.d.ts.map +0 -1
  745. package/types/helpers/wrapThemeManagerContext.d.ts +0 -3
  746. package/types/helpers/wrapThemeManagerContext.d.ts.map +0 -1
  747. package/types/hooks/useConstant.d.ts.map +0 -1
  748. package/types/hooks/useFeatures.d.ts.map +0 -1
  749. package/types/hooks/useId.d.ts.map +0 -1
  750. package/types/hooks/useIsMounted.d.ts.map +0 -1
  751. package/types/hooks/useIsTouchDevice.d.ts.map +0 -1
  752. package/types/hooks/useMedia.d.ts.map +0 -1
  753. package/types/hooks/usePressable.d.ts.map +0 -1
  754. package/types/hooks/usePrevious.d.ts +0 -1
  755. package/types/hooks/usePrevious.d.ts.map +0 -1
  756. package/types/hooks/useTheme.d.ts.map +0 -1
  757. package/types/hooks/useUnmountEffect.d.ts.map +0 -1
  758. package/types/index.d.ts.map +0 -1
  759. package/types/nativeGestureHandler.native.d.ts +0 -2
  760. package/types/nativeGestureHandler.native.d.ts.map +0 -1
  761. package/types/static.d.ts.map +0 -1
  762. package/types/styled.d.ts.map +0 -1
  763. package/types/types-rnw.d.ts.map +0 -1
  764. package/types/types.d.ts.map +0 -1
  765. package/types/views/Slot.d.ts.map +0 -1
  766. package/types/views/Stack.d.ts.map +0 -1
  767. package/types/views/Text.d.ts.map +0 -1
  768. package/types/views/TextAncestorContext.d.ts.map +0 -1
  769. package/types/views/Theme.d.ts.map +0 -1
  770. package/types/views/ThemeInverse.d.ts.map +0 -1
  771. package/types/views/ThemeProvider.d.ts.map +0 -1
  772. package/types/views/ThemeReset.d.ts.map +0 -1
@@ -1,175 +1,162 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { configListeners, getHasConfigured, setConfig } from "./conf";
4
- import { THEME_CLASSNAME_PREFIX } from "./constants/constants";
5
- import { isWeb } from "./constants/platform";
6
- import { Variable, createCSSVariable, createVariable, isVariable } from "./createVariable";
7
- import { createTamaguiProvider } from "./helpers/createTamaguiProvider";
8
- import { getInsertedRules } from "./helpers/insertStyleRule";
1
+ import { isRSC, isWeb } from "@tamagui/constants";
2
+ import { configListeners, setConfig } from "./config";
3
+ import { createVariables } from "./createVariables";
4
+ import { getThemeCSSRules } from "./helpers/getThemeCSSRules";
5
+ import { getAllRules } from "./helpers/insertStyleRule";
6
+ import {
7
+ registerCSSVariable,
8
+ tokensValueToVariable,
9
+ variableToCSS
10
+ } from "./helpers/registerCSSVariable";
11
+ import { ensureThemeVariable, proxyThemeToParents } from "./helpers/themes";
9
12
  import { configureMedia } from "./hooks/useMedia";
13
+ import { parseFont, registerFontVariables } from "./insertFont";
14
+ import { Tamagui } from "./Tamagui";
10
15
  const createdConfigs = /* @__PURE__ */ new WeakMap();
11
- function createTamagui(config) {
12
- if (createdConfigs.has(config)) {
13
- return config;
16
+ function createTamagui(configIn) {
17
+ if (createdConfigs.has(configIn)) {
18
+ return configIn;
14
19
  }
15
20
  if (process.env.NODE_ENV === "development") {
16
- if (!config.tokens) {
17
- throw new Error(`No tokens provided to Tamagui config`);
21
+ if (!configIn.tokens) {
22
+ throw new Error(`Must define tokens`);
18
23
  }
19
- if (!config.themes) {
20
- throw new Error(`No themes provided to Tamagui config`);
24
+ if (!configIn.themes) {
25
+ throw new Error(`Must define themes`);
26
+ }
27
+ if (!configIn.fonts) {
28
+ throw new Error(`Must define fonts`);
21
29
  }
22
30
  }
23
- if (getHasConfigured()) {
24
- console.warn("Called createTamagui twice! Should never do so");
25
- }
26
- configureMedia({
27
- queries: config.media,
28
- defaultActive: config.mediaQueryDefaultActive
29
- });
31
+ const fontTokens = Object.fromEntries(
32
+ Object.entries(configIn.fonts).map(([k, v]) => {
33
+ return [k, createVariables(v, "f", true)];
34
+ })
35
+ );
36
+ const fontsParsed = (() => {
37
+ const res = {};
38
+ for (const familyName in fontTokens) {
39
+ res[`$${familyName}`] = parseFont(fontTokens[familyName]);
40
+ }
41
+ return res;
42
+ })();
30
43
  const themeConfig = (() => {
31
- var _a, _b, _c;
32
- let cssRules = [];
33
- const varsByValue = /* @__PURE__ */ new Map();
44
+ const themes = { ...configIn.themes };
45
+ let cssRuleSets = [];
34
46
  if (isWeb) {
35
- const tokenRules = /* @__PURE__ */ new Set();
36
- const addVar = /* @__PURE__ */ __name((v) => {
37
- varsByValue[v.val] = v;
38
- const rule = `--${createCSSVariable(v.name, false)}:${typeof v.val === "number" ? `${v.val}px` : v.val}`;
39
- tokenRules.add(rule);
40
- }, "addVar");
41
- for (const key in config.tokens) {
42
- for (const skey in config.tokens[key]) {
43
- const val = config.tokens[key][skey];
44
- if (key === "font") {
45
- for (const fkey in val) {
46
- if (fkey === "family") {
47
- addVar(val[fkey]);
48
- } else {
49
- for (const fskey in val[fkey]) {
50
- addVar(val[fkey][fskey]);
51
- }
52
- }
53
- }
54
- } else {
55
- addVar(val);
56
- }
47
+ let declarationsToRuleSet2 = function(decs, selector = "") {
48
+ return `:root${selector} {${sep}${[...decs].join(`;${sep}`)}${sep}}`;
49
+ };
50
+ var declarationsToRuleSet = declarationsToRuleSet2;
51
+ const declarations = [];
52
+ const fontDeclarations = {};
53
+ for (const key in configIn.tokens) {
54
+ for (const skey in configIn.tokens[key]) {
55
+ const val = configIn.tokens[key][skey];
56
+ registerCSSVariable(val);
57
+ declarations.push(variableToCSS(val));
57
58
  }
58
59
  }
59
- const sep = process.env.NODE_ENV === "development" ? config.cssStyleSeparator || " " : "";
60
- cssRules.push(`:root {${sep}${[...tokenRules].join(`;${sep}`)}${sep}}`);
61
- }
62
- const hasDarkLight = "light" in config.themes && "dark" in config.themes;
63
- const CNP = `.${THEME_CLASSNAME_PREFIX}`;
64
- for (const themeName in config.themes) {
65
- const theme = { ...config.themes[themeName] };
66
- config.themes[themeName] = theme;
67
- let vars = "";
68
- for (const themeKey in theme) {
69
- if (isWeb) {
70
- const val = theme[themeKey];
71
- const varName = val instanceof Variable ? val.name : (_a = varsByValue[val]) == null ? void 0 : _a.name;
72
- vars += `--${themeKey}:${varName ? createCSSVariable(varName) : `${val}`};`;
73
- }
74
- ensureThemeVariable(theme, themeKey);
60
+ for (const key in fontsParsed) {
61
+ const fontParsed = fontsParsed[key];
62
+ const [name, language] = key.includes("_") ? key.split("_") : [key];
63
+ const fontVars = registerFontVariables(fontParsed);
64
+ fontDeclarations[key] = { name: name.slice(1), declarations: fontVars, language };
75
65
  }
76
- if (isWeb) {
77
- const isDarkOrLightBase = themeName === "dark" || themeName === "light";
78
- const isDark = themeName.startsWith("dark");
79
- const selector = `${CNP}${themeName}`;
80
- const selectors = [selector];
81
- if (hasDarkLight) {
82
- const childSelector = `${CNP}${themeName.replace("dark_", "").replace("light_", "")}`;
83
- const order = isDark ? ["dark", "light"] : ["light", "dark"];
84
- if (isDarkOrLightBase) {
85
- order.reverse();
86
- }
87
- const [stronger, weaker] = order;
88
- const max = (_b = config.maxDarkLightNesting) != null ? _b : 3;
89
- new Array(max * 2).fill(void 0).forEach((_, pi) => {
90
- if (pi % 2 === 1)
91
- return;
92
- const parents = new Array(pi + 1).fill(void 0).map((_2, psi) => {
93
- return `${CNP}${psi % 2 === 0 ? stronger : weaker}`;
94
- });
95
- selectors.push(`${(parents.length > 1 ? parents.slice(1) : parents).join(" ")} ${childSelector}`);
96
- });
97
- }
98
- const rootSep = config.themeClassNameOnRoot ? "" : " ";
99
- cssRules.push(`${selectors.map((x) => `:root${rootSep}${x}`).join(", ")} {${vars}}`);
100
- if ((_c = config.shouldAddPrefersColorThemes) != null ? _c : true) {
101
- if (isDarkOrLightBase) {
102
- cssRules.push(`@media(prefers-color-scheme: ${isDark ? "dark" : "light"}) {
103
- body { background:${theme.background}; color: ${theme.color} }
104
- :root {${vars} }
105
- }`);
106
- }
66
+ const sep = process.env.NODE_ENV === "development" ? configIn.cssStyleSeparator || " " : "";
67
+ cssRuleSets.push(declarationsToRuleSet2(declarations));
68
+ if (fontDeclarations) {
69
+ for (const key in fontDeclarations) {
70
+ const { name, declarations: declarations2, language = "default" } = fontDeclarations[key];
71
+ const fontSelector = `.font_${name}`;
72
+ const langSelector = `:root .t_lang-${name}-${language} ${fontSelector}`;
73
+ const selectors = language === "default" ? ` ${fontSelector}, ${langSelector}` : langSelector;
74
+ const specificRuleSet = declarationsToRuleSet2(declarations2, selectors);
75
+ cssRuleSets.push(specificRuleSet);
107
76
  }
108
77
  }
109
78
  }
110
- varsByValue.clear();
111
- Object.freeze(cssRules);
112
- const css = cssRules.join("\n");
113
- return {
114
- cssRules,
115
- css
116
- };
117
- })();
118
- const tokensParsed = parseTokens(config.tokens);
119
- const fontsParsed = (() => {
120
- if (!config.fonts) {
121
- throw new Error(`No fonts defined!`);
79
+ const dedupedThemes = {};
80
+ const existing = /* @__PURE__ */ new WeakMap();
81
+ for (const themeName in themes) {
82
+ const rawTheme = themes[themeName];
83
+ if (existing.has(rawTheme)) {
84
+ const e = existing.get(rawTheme);
85
+ themes[themeName] = e.theme;
86
+ e.names.push(themeName);
87
+ continue;
88
+ }
89
+ const theme = { ...rawTheme };
90
+ for (const key in theme) {
91
+ ensureThemeVariable(theme, key);
92
+ }
93
+ themes[themeName] = theme;
94
+ dedupedThemes[themeName] = {
95
+ names: [themeName],
96
+ theme
97
+ };
98
+ existing.set(rawTheme, dedupedThemes[themeName]);
122
99
  }
123
- const res = {};
124
- for (const familyName in config.fonts) {
125
- const family = config.fonts[familyName];
126
- const parsed = {};
127
- for (const attrKey in family) {
128
- const attr = family[attrKey];
129
- if (attrKey === "family") {
130
- parsed[attrKey] = attr;
131
- continue;
132
- }
133
- parsed[attrKey] = Object.keys(attr).reduce((acc, cur) => {
134
- acc[`$${cur}`] = attr[cur];
135
- return acc;
136
- }, {});
100
+ if (isWeb || isRSC) {
101
+ for (const themeName in dedupedThemes) {
102
+ cssRuleSets = [
103
+ ...cssRuleSets,
104
+ ...getThemeCSSRules({
105
+ config: configIn,
106
+ themeName,
107
+ ...dedupedThemes[themeName]
108
+ })
109
+ ];
137
110
  }
138
- res[`$${familyName}`] = parsed;
139
111
  }
140
- return res;
112
+ for (const themeName in themes) {
113
+ themes[themeName] = proxyThemeToParents(themeName, themes[themeName], themes);
114
+ }
115
+ tokensValueToVariable.clear();
116
+ Object.freeze(cssRuleSets);
117
+ const css = cssRuleSets.join("\n");
118
+ return {
119
+ themes,
120
+ cssRuleSets,
121
+ css
122
+ };
141
123
  })();
142
- const getCSS = /* @__PURE__ */ __name(() => {
124
+ const tokensParsed = parseTokens(configIn.tokens);
125
+ const getCSS = () => {
143
126
  return `${themeConfig.css}
144
- ${getInsertedRules().join("\n")}`;
145
- }, "getCSS");
146
- const next = {
147
- fonts: {},
127
+ ${getAllRules().join("\n")}`;
128
+ };
129
+ const shorthands = configIn.shorthands || {};
130
+ const config = {
131
+ fontLanguages: [],
132
+ defaultTheme: "light",
148
133
  animations: {},
149
- shorthands: {},
150
134
  media: {},
151
- ...config,
152
- Provider: createTamaguiProvider({
153
- getCSS,
154
- defaultTheme: "light",
155
- ...config
156
- }),
135
+ ...configIn,
136
+ shorthands: { ...shorthands },
137
+ inverseShorthands: shorthands ? Object.fromEntries(Object.entries(shorthands).map(([k, v]) => [v, k])) : {},
138
+ themes: themeConfig.themes,
157
139
  fontsParsed,
158
140
  themeConfig,
159
141
  tokensParsed,
160
142
  parsed: true,
161
143
  getCSS
162
144
  };
163
- setConfig(next);
145
+ configureMedia(config);
146
+ setConfig(config);
164
147
  if (configListeners.size) {
165
- configListeners.forEach((cb) => cb(next));
148
+ configListeners.forEach((cb) => cb(config));
166
149
  configListeners.clear();
167
150
  }
168
- createdConfigs.set(next, true);
169
- return next;
151
+ createdConfigs.set(config, true);
152
+ if (process.env.NODE_ENV === "development") {
153
+ if (!globalThis["Tamagui"]) {
154
+ globalThis["Tamagui"] = Tamagui;
155
+ }
156
+ }
157
+ return config;
170
158
  }
171
- __name(createTamagui, "createTamagui");
172
- const parseTokens = /* @__PURE__ */ __name((tokens) => {
159
+ const parseTokens = (tokens) => {
173
160
  const res = {};
174
161
  for (const key in tokens) {
175
162
  res[key] = {};
@@ -178,24 +165,7 @@ const parseTokens = /* @__PURE__ */ __name((tokens) => {
178
165
  }
179
166
  }
180
167
  return res;
181
- }, "parseTokens");
182
- function ensureThemeVariable(theme, key) {
183
- const val = theme[key];
184
- if (!isVariable(val)) {
185
- theme[key] = createVariable({
186
- name: key,
187
- val
188
- });
189
- } else {
190
- if (val.name !== key) {
191
- theme[key] = createVariable({
192
- name: key,
193
- val: val.val
194
- });
195
- }
196
- }
197
- }
198
- __name(ensureThemeVariable, "ensureThemeVariable");
168
+ };
199
169
  export {
200
170
  createTamagui
201
171
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createTamagui.ts"],
4
- "sourcesContent": ["import { configListeners, getHasConfigured, setConfig } from './conf'\nimport { THEME_CLASSNAME_PREFIX } from './constants/constants'\nimport { isWeb } from './constants/platform'\nimport { Variable, createCSSVariable, createVariable, isVariable } from './createVariable'\nimport { createTamaguiProvider } from './helpers/createTamaguiProvider'\nimport { getInsertedRules } from './helpers/insertStyleRule'\nimport { configureMedia } from './hooks/useMedia'\nimport {\n AnimationDriver,\n CreateTamaguiConfig,\n GenericTamaguiConfig,\n MediaQueryKey,\n TamaguiInternalConfig,\n} from './types'\n\nexport type CreateTamaguiProps =\n // user then re-defines the types after createTamagui returns the typed object they want\n Partial<Omit<GenericTamaguiConfig, 'themes' | 'tokens' | 'animations'>> & {\n animations?: AnimationDriver<any>\n tokens: GenericTamaguiConfig['tokens']\n themes: {\n [key: string]: {\n [key: string]: string | number | Variable\n }\n }\n\n // for the first render, determines which media queries are true\n // useful for SSR\n mediaQueryDefaultActive?: MediaQueryKey[]\n\n // what's between each CSS style rule, set to \"\\n\" to be easier to read\n // defaults: \"\\n\" when NODE_ENV=development, \"\" otherwise\n cssStyleSeparator?: string\n\n // (Advanced)\n // on the web, tamagui treats `dark` and `light` themes as special and\n // generates extra CSS to avoid having to re-render the entire page.\n // this CSS relies on specificity hacks that multiply by your sub-themes.\n // this sets the maxiumum number of nested dark/light themes you can do\n // defaults to 3 for a balance, but can be higher if you nest them deeply.\n maxDarkLightNesting?: number\n\n // adds @media(prefers-color-scheme) media queries for dark/light\n shouldAddPrefersColorThemes?: boolean\n\n // only if you put the theme classname on the html element we have to generate diff\n themeClassNameOnRoot?: boolean\n }\n\n// config is re-run by the @tamagui/static, dont double validate\nconst createdConfigs = new WeakMap<any, boolean>()\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n config: Conf\n): Conf extends Partial<CreateTamaguiConfig<infer A, infer B, infer C, infer D, infer E, infer F>>\n ? TamaguiInternalConfig<A, B, C, D, E, F>\n : unknown {\n if (createdConfigs.has(config)) {\n return config as any\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (!config.tokens) {\n throw new Error(`No tokens provided to Tamagui config`)\n }\n if (!config.themes) {\n throw new Error(`No themes provided to Tamagui config`)\n }\n }\n\n // test env loads a few times as it runs diff tests\n if (getHasConfigured()) {\n console.warn('Called createTamagui twice! Should never do so')\n // throw new Error(`#000 createTamagui called twice`)\n }\n\n configureMedia({\n queries: config.media as any,\n defaultActive: config.mediaQueryDefaultActive,\n })\n\n const themeConfig = (() => {\n let cssRules: string[] = []\n const varsByValue = new Map<string, Variable>()\n\n if (isWeb) {\n // tokens\n const tokenRules = new Set<string>()\n\n const addVar = (v: Variable) => {\n varsByValue[v.val] = v\n const rule = `--${createCSSVariable(v.name, false)}:${\n typeof v.val === 'number' ? `${v.val}px` : v.val\n }`\n tokenRules.add(rule)\n }\n\n for (const key in config.tokens) {\n for (const skey in config.tokens[key]) {\n const val = config.tokens[key][skey]\n if (key === 'font') {\n for (const fkey in val) {\n if (fkey === 'family') {\n addVar(val[fkey])\n } else {\n for (const fskey in val[fkey]) {\n addVar(val[fkey][fskey])\n }\n }\n }\n } else {\n addVar(val)\n }\n }\n }\n const sep = process.env.NODE_ENV === 'development' ? config.cssStyleSeparator || ' ' : ''\n cssRules.push(`:root {${sep}${[...tokenRules].join(`;${sep}`)}${sep}}`)\n }\n\n // special case for SSR\n const hasDarkLight = 'light' in config.themes && 'dark' in config.themes\n const CNP = `.${THEME_CLASSNAME_PREFIX}`\n\n // themes\n for (const themeName in config.themes) {\n // to allow using the same theme with diff names, be sure we don't mutate!\n const theme = { ...config.themes[themeName] }\n config.themes[themeName] = theme\n let vars = ''\n\n for (const themeKey in theme) {\n if (isWeb) {\n const val = theme[themeKey]\n // TODO sanity check is necessary\n const varName = val instanceof Variable ? val.name : varsByValue[val]?.name\n vars += `--${themeKey}:${varName ? createCSSVariable(varName) : `${val}`};`\n }\n // make sure properly names theme variables\n ensureThemeVariable(theme, themeKey)\n }\n\n if (isWeb) {\n const isDarkOrLightBase = themeName === 'dark' || themeName === 'light'\n const isDark = themeName.startsWith('dark')\n const selector = `${CNP}${themeName}`\n const selectors = [selector]\n\n // since we dont specify dark/light in classnames we have to do an awkward specificity war\n // use config.maxDarkLightNesting to determine how deep you can nest until it breaks\n if (hasDarkLight) {\n const childSelector = `${CNP}${themeName.replace('dark_', '').replace('light_', '')}`\n const order = isDark ? ['dark', 'light'] : ['light', 'dark']\n if (isDarkOrLightBase) {\n order.reverse()\n }\n const [stronger, weaker] = order\n const max = config.maxDarkLightNesting ?? 3\n new Array(max * 2).fill(undefined).forEach((_, pi) => {\n if (pi % 2 === 1) return\n const parents = new Array(pi + 1).fill(undefined).map((_, psi) => {\n return `${CNP}${psi % 2 === 0 ? stronger : weaker}`\n })\n selectors.push(\n `${(parents.length > 1 ? parents.slice(1) : parents).join(' ')} ${childSelector}`\n )\n })\n }\n\n const rootSep = config.themeClassNameOnRoot ? '' : ' '\n cssRules.push(`${selectors.map((x) => `:root${rootSep}${x}`).join(', ')} {${vars}}`)\n\n if (config.shouldAddPrefersColorThemes ?? true) {\n // add media prefers for dark/light base\n if (isDarkOrLightBase) {\n cssRules.push(\n `@media(prefers-color-scheme: ${isDark ? 'dark' : 'light'}) {\n body { background:${theme.background}; color: ${theme.color} }\n :root {${vars} } \n }`\n )\n }\n }\n }\n }\n\n varsByValue.clear()\n Object.freeze(cssRules)\n const css = cssRules.join('\\n')\n\n return {\n cssRules,\n css,\n }\n })()\n\n // faster lookups token keys become $keys to match input\n const tokensParsed: any = parseTokens(config.tokens)\n\n const fontsParsed = (() => {\n if (!config.fonts) {\n throw new Error(`No fonts defined!`)\n }\n const res = {} as typeof config.fonts\n for (const familyName in config.fonts) {\n const family = config.fonts[familyName]\n const parsed = {}\n for (const attrKey in family) {\n const attr = family[attrKey]\n if (attrKey === 'family') {\n parsed[attrKey] = attr\n continue\n }\n parsed[attrKey] = Object.keys(attr).reduce((acc, cur) => {\n acc[`$${cur}`] = attr[cur]\n return acc\n }, {})\n }\n res[`$${familyName}`] = parsed as any\n }\n return res!\n })()\n\n const getCSS = () => {\n return `${themeConfig.css}\\n${getInsertedRules().join('\\n')}`\n }\n\n const next: TamaguiInternalConfig = {\n fonts: {},\n animations: {} as any,\n shorthands: {},\n media: {},\n ...config,\n Provider: createTamaguiProvider({\n getCSS,\n defaultTheme: 'light',\n ...config,\n }),\n fontsParsed,\n themeConfig,\n tokensParsed,\n parsed: true,\n getCSS,\n }\n\n setConfig(next)\n\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(next))\n configListeners.clear()\n }\n\n createdConfigs.set(next, true)\n\n // @ts-expect-error\n return next\n}\n\nconst parseTokens = (tokens: any) => {\n const res: any = {}\n for (const key in tokens) {\n res[key] = {}\n for (const skey in tokens[key]) {\n res[key][`$${skey}`] = tokens[key][skey]\n }\n }\n return res\n}\n\n// mutates, freeze after\n// shared by createTamagui so extracted here\nfunction ensureThemeVariable(theme: any, key: string) {\n const val = theme[key]\n if (!isVariable(val)) {\n theme[key] = createVariable({\n name: key,\n val,\n })\n } else {\n if (val.name !== key) {\n // rename to theme name\n theme[key] = createVariable({\n name: key,\n val: val.val,\n })\n }\n }\n}\n\n// for quick testing types:\n// const x = createTamagui({\n// shorthands: {},\n// media: {},\n// themes: {},\n// tokens: {\n// font: {},\n// color: {},\n// radius: {},\n// size: {},\n// space: {},\n// zIndex: {},\n// },\n// })\n"],
5
- "mappings": "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",
6
- "names": []
4
+ "sourcesContent": ["import { isRSC, isWeb } from '@tamagui/constants'\n\nimport { configListeners, setConfig } from './config'\nimport { createVariables } from './createVariables'\nimport { getThemeCSSRules } from './helpers/getThemeCSSRules'\nimport { getAllRules } from './helpers/insertStyleRule'\nimport {\n registerCSSVariable,\n tokensValueToVariable,\n variableToCSS,\n} from './helpers/registerCSSVariable'\nimport { ensureThemeVariable, proxyThemeToParents } from './helpers/themes'\nimport { configureMedia } from './hooks/useMedia'\nimport { parseFont, registerFontVariables } from './insertFont'\nimport { Tamagui } from './Tamagui'\nimport { CreateTamaguiProps, InferTamaguiConfig, TamaguiInternalConfig, ThemeParsed } from './types'\n\n// config is re-run by the @tamagui/static, dont double validate\nconst createdConfigs = new WeakMap<any, boolean>()\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n configIn: Conf\n): InferTamaguiConfig<Conf> {\n if (createdConfigs.has(configIn)) {\n return configIn as any\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (!configIn.tokens) {\n throw new Error(`Must define tokens`)\n }\n if (!configIn.themes) {\n throw new Error(`Must define themes`)\n }\n if (!configIn.fonts) {\n throw new Error(`Must define fonts`)\n }\n }\n\n const fontTokens = Object.fromEntries(\n Object.entries(configIn.fonts!).map(([k, v]) => {\n return [k, createVariables(v, 'f', true)]\n })\n )\n\n const fontsParsed = (() => {\n const res = {} as typeof fontTokens\n for (const familyName in fontTokens) {\n res[`$${familyName}`] = parseFont(fontTokens[familyName])\n }\n return res!\n })()\n\n const themeConfig = (() => {\n const themes = { ...configIn.themes }\n let cssRuleSets: string[] = []\n\n if (isWeb) {\n const declarations: string[] = []\n const fontDeclarations: Record<\n string,\n { name: string; declarations: string[]; language?: string }\n > = {}\n\n for (const key in configIn.tokens) {\n for (const skey in configIn.tokens[key]) {\n const val = configIn.tokens[key][skey]\n registerCSSVariable(val)\n declarations.push(variableToCSS(val))\n }\n }\n\n for (const key in fontsParsed) {\n const fontParsed = fontsParsed[key]\n const [name, language] = key.includes('_') ? key.split('_') : [key]\n const fontVars = registerFontVariables(fontParsed)\n fontDeclarations[key] = { name: name.slice(1), declarations: fontVars, language }\n }\n\n const sep = process.env.NODE_ENV === 'development' ? configIn.cssStyleSeparator || ' ' : ''\n\n function declarationsToRuleSet(decs: string[], selector = '') {\n return `:root${selector} {${sep}${[...decs].join(`;${sep}`)}${sep}}`\n }\n\n // non-font\n cssRuleSets.push(declarationsToRuleSet(declarations))\n\n // fonts\n if (fontDeclarations) {\n for (const key in fontDeclarations) {\n const { name, declarations, language = 'default' } = fontDeclarations[key]\n const fontSelector = `.font_${name}`\n const langSelector = `:root .t_lang-${name}-${language} ${fontSelector}`\n const selectors =\n language === 'default' ? ` ${fontSelector}, ${langSelector}` : langSelector\n const specificRuleSet = declarationsToRuleSet(declarations, selectors)\n cssRuleSets.push(specificRuleSet)\n }\n }\n }\n\n // dedupe themes to avoid duplicate CSS generation\n type DedupedTheme = {\n names: string[]\n theme: ThemeParsed\n }\n const dedupedThemes: {\n [key: string]: DedupedTheme\n } = {}\n const existing = new WeakMap<ThemeParsed, DedupedTheme>()\n\n // first, de-dupe and parse them\n for (const themeName in themes) {\n const rawTheme = themes[themeName] as ThemeParsed\n\n // if existing, avoid\n if (existing.has(rawTheme)) {\n const e = existing.get(rawTheme)!\n themes[themeName] = e.theme\n e.names.push(themeName)\n continue\n }\n\n // ensure each theme object unique for dedupe\n const theme = { ...rawTheme }\n // parse into variables\n for (const key in theme) {\n // make sure properly names theme variables\n ensureThemeVariable(theme, key)\n }\n themes[themeName] = theme\n\n // set deduped\n dedupedThemes[themeName] = {\n names: [themeName],\n theme,\n }\n existing.set(rawTheme, dedupedThemes[themeName])\n }\n\n // then, generate CSS from de-duped\n if (isWeb || isRSC) {\n for (const themeName in dedupedThemes) {\n cssRuleSets = [\n ...cssRuleSets,\n ...getThemeCSSRules({\n config: configIn,\n themeName,\n ...dedupedThemes[themeName],\n }),\n ]\n }\n }\n\n // proxy upwards to get parent variables (themes are subset going down)\n for (const themeName in themes) {\n themes[themeName] = proxyThemeToParents(themeName, themes[themeName], themes)\n }\n\n tokensValueToVariable.clear()\n Object.freeze(cssRuleSets)\n const css = cssRuleSets.join('\\n')\n\n return {\n // could improve types but we do ensureThemeVariable so its accurate\n themes,\n cssRuleSets,\n css,\n }\n })()\n\n // faster lookups token keys become $keys to match input\n const tokensParsed: any = parseTokens(configIn.tokens)\n\n const getCSS = () => {\n return `${themeConfig.css}\\n${getAllRules().join('\\n')}`\n }\n\n const shorthands = configIn.shorthands || {}\n\n const config: TamaguiInternalConfig = {\n fontLanguages: [],\n defaultTheme: 'light',\n animations: {} as any,\n media: {},\n ...configIn,\n // vite made this into a function if it wasn't set\n shorthands: { ...shorthands },\n inverseShorthands: shorthands\n ? Object.fromEntries(Object.entries(shorthands).map(([k, v]) => [v, k]))\n : {},\n themes: themeConfig.themes as any,\n fontsParsed,\n themeConfig,\n tokensParsed,\n parsed: true,\n getCSS,\n }\n\n configureMedia(config)\n setConfig(config)\n\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(config))\n configListeners.clear()\n }\n\n createdConfigs.set(config, true)\n\n if (process.env.NODE_ENV === 'development') {\n if (!globalThis['Tamagui']) {\n globalThis['Tamagui'] = Tamagui\n }\n }\n\n return config as any\n}\n\nconst parseTokens = (tokens: any) => {\n const res: any = {}\n for (const key in tokens) {\n res[key] = {}\n for (const skey in tokens[key]) {\n res[key][`$${skey}`] = tokens[key][skey]\n }\n }\n return res\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["declarationsToRuleSet", "declarations"]
7
7
  }
@@ -1,6 +1,6 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- const createTheme = /* @__PURE__ */ __name((theme) => theme, "createTheme");
1
+ const createTheme = (theme) => {
2
+ return theme;
3
+ };
4
4
  export {
5
5
  createTheme
6
6
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createTheme.ts"],
4
- "sourcesContent": ["import { Variable } from './createVariable'\n\ntype GenericTheme = { [key: string]: string | Variable }\n\nexport const createTheme = <Theme extends GenericTheme>(\n theme: Theme\n): {\n [K in keyof Theme]: Theme[K] | string | Variable\n} => theme\n"],
5
- "mappings": ";;AAIO,MAAM,cAAc,wBACzB,UAGG,OAJsB;",
4
+ "sourcesContent": ["import { Variable } from './createVariable'\n\ntype GenericTheme = { [key: string]: string | Variable }\n\n// export const themeToVariableToValueMap = new WeakMap<any, Record<string, string>>()\n\nexport const createTheme = <Theme extends GenericTheme>(\n theme: Theme\n): {\n [K in keyof Theme]: Theme[K] | string | Variable\n} => {\n return theme\n}\n"],
5
+ "mappings": "AAMO,MAAM,cAAc,CACzB,UAGG;AACH,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1,29 +1,8 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { createVariable } from "./createVariable";
4
- import { validateTokens } from "./helpers/validate";
1
+ import { createVariables } from "./createVariables";
5
2
  function createTokens(tokens) {
6
- if (process.env.NODE_ENV === "development") {
7
- validateTokens(tokens);
8
- }
9
- return mapTokensToVariables(tokens);
3
+ return createVariables(tokens);
10
4
  }
11
- __name(createTokens, "createTokens");
12
- const mapTokensToVariables = /* @__PURE__ */ __name((tokens, parentPath = "") => {
13
- const res = {};
14
- for (const key in tokens) {
15
- let val = tokens[key];
16
- const name = parentPath ? `${parentPath}-${key}` : key;
17
- if (val && typeof val === "object") {
18
- res[key] = mapTokensToVariables(tokens[key], name);
19
- } else {
20
- res[key] = createVariable({ val, name });
21
- }
22
- }
23
- return res;
24
- }, "mapTokensToVariables");
25
5
  export {
26
- createTokens,
27
- mapTokensToVariables
6
+ createTokens
28
7
  };
29
8
  //# sourceMappingURL=createTokens.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createTokens.ts"],
4
- "sourcesContent": ["import { Variable, createVariable } from './createVariable'\nimport { validateTokens } from './helpers/validate'\nimport { CreateTokens } from './types'\n\n// tokens.color.dark.red ===> { var: `color-dark-red`, val: '' }\n\nexport function createTokens<T extends CreateTokens>(tokens: T): MakeTokens<T> {\n if (process.env.NODE_ENV === 'development') {\n validateTokens(tokens)\n }\n return mapTokensToVariables(tokens) as any\n}\n\nexport const mapTokensToVariables = (\n tokens: CreateTokens,\n parentPath = ''\n): CreateTokens<Variable> => {\n const res = {}\n for (const key in tokens) {\n let val = tokens[key]\n const name = parentPath ? `${parentPath}-${key}` : key\n if (val && typeof val === 'object') {\n res[key] = mapTokensToVariables(tokens[key], name)\n } else {\n res[key] = createVariable({ val, name })\n }\n }\n // @ts-expect-error\n return res\n}\n\n// verbose but gives us nice types...\ntype MakeTokens<T> = T extends {\n color: infer E\n space: infer F\n size: infer G\n radius: infer H\n zIndex: infer J\n}\n ? {\n color: {\n [key in keyof E]: Variable\n }\n space: {\n [key in keyof F]: Variable\n }\n size: {\n [key in keyof G]: Variable\n }\n radius: {\n [key in keyof H]: Variable\n }\n zIndex: {\n [key in keyof J]: Variable\n }\n }\n : never\n"],
5
- "mappings": ";;AAAA;AACA;AAKO,sBAA8C,QAA0B;AAC7E,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,mBAAe,MAAM;AAAA,EACvB;AACA,SAAO,qBAAqB,MAAM;AACpC;AALgB;AAOT,MAAM,uBAAuB,wBAClC,QACA,aAAa,OACc;AAC3B,QAAM,MAAM,CAAC;AACb,aAAW,OAAO,QAAQ;AACxB,QAAI,MAAM,OAAO;AACjB,UAAM,OAAO,aAAa,GAAG,cAAc,QAAQ;AACnD,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,UAAI,OAAO,qBAAqB,OAAO,MAAM,IAAI;AAAA,IACnD,OAAO;AACL,UAAI,OAAO,eAAe,EAAE,KAAK,KAAK,CAAC;AAAA,IACzC;AAAA,EACF;AAEA,SAAO;AACT,GAhBoC;",
4
+ "sourcesContent": ["import { Variable } from './createVariable'\nimport { createVariables } from './createVariables'\nimport { CreateTokens } from './types'\n\n// tokens.color.dark.red ===> { var: `color-dark-red`, val: '' }\nexport function createTokens<T extends CreateTokens>(tokens: T): MakeTokens<T> {\n return createVariables(tokens as any) as any\n}\n\n// verbose but gives us nice types...\ntype MakeTokens<T> = T extends {\n color: infer E\n space: infer F\n size: infer G\n radius: infer H\n zIndex: infer J\n}\n ? {\n color: {\n [Key in keyof E]: E[Key] extends Variable ? E[Key] : Variable<E[Key]>\n }\n space: {\n [Key in keyof F]: F[Key] extends Variable ? F[Key] : Variable<F[Key]>\n }\n size: {\n [Key in keyof G]: G[Key] extends Variable ? G[Key] : Variable<G[Key]>\n }\n radius: {\n [Key in keyof H]: H[Key] extends Variable ? H[Key] : Variable<H[Key]>\n }\n zIndex: {\n [Key in keyof J]: J[Key] extends Variable ? J[Key] : Variable<J[Key]>\n }\n }\n : never\n"],
5
+ "mappings": "AACA,SAAS,uBAAuB;AAIzB,SAAS,aAAqC,QAA0B;AAC7E,SAAO,gBAAgB,MAAa;AACtC;",
6
6
  "names": []
7
7
  }
@@ -1,49 +1,70 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- var _a;
4
- import { isWeb } from "./constants/platform";
5
- const IS_VARIABLE_SYMBOL = "__isVariable__";
6
- class Variable {
7
- constructor({ val, name }) {
8
- this[_a] = true;
9
- this.val = isVariable(val) ? val.val : val;
10
- this.name = name;
11
- this.variable = isWeb ? createCSSVariable(name) : this.val;
1
+ import { isWeb } from "@tamagui/constants";
2
+ import { simpleHash } from "@tamagui/helpers";
3
+ import { getConfig } from "./config";
4
+ const IS_VAR = "__isVar__";
5
+ const createVariable = (props) => {
6
+ if (isVariable(props)) {
7
+ return props;
12
8
  }
13
- toString() {
14
- return `${isWeb ? this.variable : this.val}`;
9
+ return {
10
+ [IS_VAR]: true,
11
+ ...props,
12
+ variable: isWeb ? createCSSVariable(props.name) : ""
13
+ };
14
+ };
15
+ function variableToString(vrble, getValue = false) {
16
+ if (!vrble)
17
+ return "";
18
+ if (isVariable(vrble)) {
19
+ if (getValue)
20
+ return `${vrble.val}`;
21
+ return `${isWeb ? vrble.variable : vrble.val}`;
15
22
  }
23
+ return `${vrble}`;
16
24
  }
17
- __name(Variable, "Variable");
18
- _a = IS_VARIABLE_SYMBOL;
19
- const createVariable = /* @__PURE__ */ __name((props) => new Variable(props), "createVariable");
20
25
  function isVariable(v) {
21
- return v instanceof Variable || v && v[IS_VARIABLE_SYMBOL];
26
+ return !!(v && v[IS_VAR]);
27
+ }
28
+ function getVariable(nameOrVariable) {
29
+ if (isVariable(nameOrVariable)) {
30
+ return variableToString(nameOrVariable);
31
+ }
32
+ const tokens = getConfig().tokensParsed;
33
+ return variableToString(tokens[nameOrVariable] ?? nameOrVariable);
22
34
  }
23
- __name(isVariable, "isVariable");
24
35
  function getVariableValue(v) {
25
36
  if (isVariable(v))
26
37
  return v.val;
27
38
  return v;
28
39
  }
29
- __name(getVariableValue, "getVariableValue");
30
40
  function getVariableName(v) {
31
41
  if (isVariable(v))
32
42
  return v.name;
33
43
  return v;
34
44
  }
35
- __name(getVariableName, "getVariableName");
36
- const createCSSVariable = /* @__PURE__ */ __name((val, includeVar = true) => {
37
- const name = val.replace(/[^a-z0-9\_\-]+/i, "_");
45
+ function getVariableVariable(v) {
46
+ if (isVariable(v))
47
+ return v.variable;
48
+ return v;
49
+ }
50
+ const createCSSVariable = (nameProp, includeVar = true) => {
51
+ if (process.env.NODE_ENV === "development") {
52
+ if (!nameProp || typeof nameProp !== "string") {
53
+ console.trace("createCSSVariable invalid name", nameProp);
54
+ return ``;
55
+ }
56
+ }
57
+ const name = simpleHash(nameProp, 60);
38
58
  return includeVar ? `var(--${name})` : name;
39
- }, "createCSSVariable");
59
+ };
40
60
  export {
41
- IS_VARIABLE_SYMBOL,
42
- Variable,
43
61
  createCSSVariable,
44
62
  createVariable,
63
+ getVariable,
45
64
  getVariableName,
46
65
  getVariableValue,
47
- isVariable
66
+ getVariableVariable,
67
+ isVariable,
68
+ variableToString
48
69
  };
49
70
  //# sourceMappingURL=createVariable.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createVariable.ts"],
4
- "sourcesContent": ["import { isWeb } from './constants/platform'\n\nexport const IS_VARIABLE_SYMBOL = '__isVariable__'\n\nexport class Variable {\n // because we have a separate node runtime we can't do instanceof\n // ran into issues with this and it's potentially fixable but for now\n // lets just do this\n [IS_VARIABLE_SYMBOL] = true\n\n name: string\n val: string | number\n variable: string | number\n\n constructor({ val, name }: VariableIn) {\n // converting to px breaks rn\n this.val = isVariable(val) ? val.val : val\n this.name = name\n this.variable = isWeb ? createCSSVariable(name) : this.val\n }\n\n toString() {\n return `${isWeb ? this.variable : this.val}`\n }\n}\n\ntype VariableIn = { val: string | number | Variable; name: string }\n\nexport const createVariable = (props: VariableIn) => new Variable(props)\n\nexport function isVariable(v: Variable | any): v is Variable {\n return v instanceof Variable || (v && v[IS_VARIABLE_SYMBOL])\n}\n\nexport function getVariableValue(v: Variable | any) {\n if (isVariable(v)) return v.val\n return v\n}\n\nexport function getVariableName(v: Variable | any) {\n if (isVariable(v)) return v.name\n return v\n}\n\n// bugfix { space: { 0.5: 10 } } was generating var(--space-0.5) (invalid CSS):\nexport const createCSSVariable = (val: string, includeVar = true) => {\n const name = val.replace(/[^a-z0-9\\_\\-]+/i, '_')\n return includeVar ? `var(--${name})` : name\n}\n"],
5
- "mappings": ";;AAAA;AAAA;AAEO,MAAM,qBAAqB;AAE3B,MAAM,SAAS;AAAA,EAUpB,YAAY,EAAE,KAAK,QAAoB;AANtC,eAAsB;AAQrB,SAAK,MAAM,WAAW,GAAG,IAAI,IAAI,MAAM;AACvC,SAAK,OAAO;AACZ,SAAK,WAAW,QAAQ,kBAAkB,IAAI,IAAI,KAAK;AAAA,EACzD;AAAA,EAEA,WAAW;AACT,WAAO,GAAG,QAAQ,KAAK,WAAW,KAAK;AAAA,EACzC;AACF;AApBO;AAJP,AAQG;AAoBI,MAAM,iBAAiB,wBAAC,UAAsB,IAAI,SAAS,KAAK,GAAzC;AAEvB,oBAAoB,GAAkC;AAC3D,SAAO,aAAa,YAAa,KAAK,EAAE;AAC1C;AAFgB;AAIT,0BAA0B,GAAmB;AAClD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAHgB;AAKT,yBAAyB,GAAmB;AACjD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAHgB;AAMT,MAAM,oBAAoB,wBAAC,KAAa,aAAa,SAAS;AACnE,QAAM,OAAO,IAAI,QAAQ,mBAAmB,GAAG;AAC/C,SAAO,aAAa,SAAS,UAAU;AACzC,GAHiC;",
4
+ "sourcesContent": ["import { isWeb } from '@tamagui/constants'\nimport { simpleHash } from '@tamagui/helpers'\n\nimport { getConfig } from './config'\n\n/**\n * Should rename this to Token\n * Moving to objects for React Server Components support\n */\n\nconst IS_VAR = '__isVar__'\n\ntype VariableIn<A = any> = {\n val: A\n name: string\n key: string\n isFloating?: boolean\n}\n\nexport type Variable<A = any> = VariableIn<A> & {\n [IS_VAR]?: true\n variable?: string\n}\n\nexport const createVariable = <A extends string | number = any>(props: VariableIn<A>) => {\n if (isVariable(props)) {\n return props\n }\n return {\n [IS_VAR]: true,\n // @ts-ignore\n ...props,\n variable: isWeb ? createCSSVariable(props.name) : '',\n }\n}\n\n// on the client maybe we can change the prototype of variable object toString to keep backwards compat\nexport function variableToString(vrble?: any, getValue = false) {\n if (!vrble) return ''\n if (isVariable(vrble)) {\n if (getValue) return `${vrble.val}`\n return `${isWeb ? vrble.variable : vrble.val}`\n }\n return `${vrble}`\n}\n\nexport function isVariable(v: Variable | any): v is Variable {\n return !!(v && v[IS_VAR])\n}\n\nexport function getVariable(nameOrVariable: Variable | string) {\n if (isVariable(nameOrVariable)) {\n return variableToString(nameOrVariable)\n }\n const tokens = getConfig().tokensParsed\n return variableToString(tokens[nameOrVariable] ?? nameOrVariable)\n}\n\nexport function getVariableValue(v: Variable | any) {\n if (isVariable(v)) return v.val\n return v\n}\n\nexport function getVariableName(v: Variable | any) {\n if (isVariable(v)) return v.name\n return v\n}\n\nexport function getVariableVariable(v: Variable | any) {\n if (isVariable(v)) return v.variable\n return v\n}\n\n// bugfix { space: { 0.5: 10 } } was generating var(--space-0.5) (invalid CSS):\nexport const createCSSVariable = (nameProp: string, includeVar = true) => {\n if (process.env.NODE_ENV === 'development') {\n if (!nameProp || typeof nameProp !== 'string') {\n // eslint-disable-next-line no-console\n console.trace('createCSSVariable invalid name', nameProp)\n return ``\n }\n }\n const name = simpleHash(nameProp, 60)\n return includeVar ? `var(--${name})` : name\n}\n"],
5
+ "mappings": "AAAA,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAE3B,SAAS,iBAAiB;AAO1B,MAAM,SAAS;AAcR,MAAM,iBAAiB,CAAkC,UAAyB;AACvF,MAAI,WAAW,KAAK,GAAG;AACrB,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,CAAC,SAAS;AAAA,IAEV,GAAG;AAAA,IACH,UAAU,QAAQ,kBAAkB,MAAM,IAAI,IAAI;AAAA,EACpD;AACF;AAGO,SAAS,iBAAiB,OAAa,WAAW,OAAO;AAC9D,MAAI,CAAC;AAAO,WAAO;AACnB,MAAI,WAAW,KAAK,GAAG;AACrB,QAAI;AAAU,aAAO,GAAG,MAAM;AAC9B,WAAO,GAAG,QAAQ,MAAM,WAAW,MAAM;AAAA,EAC3C;AACA,SAAO,GAAG;AACZ;AAEO,SAAS,WAAW,GAAkC;AAC3D,SAAO,CAAC,EAAE,KAAK,EAAE;AACnB;AAEO,SAAS,YAAY,gBAAmC;AAC7D,MAAI,WAAW,cAAc,GAAG;AAC9B,WAAO,iBAAiB,cAAc;AAAA,EACxC;AACA,QAAM,SAAS,UAAU,EAAE;AAC3B,SAAO,iBAAiB,OAAO,mBAAmB,cAAc;AAClE;AAEO,SAAS,iBAAiB,GAAmB;AAClD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAEO,SAAS,gBAAgB,GAAmB;AACjD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAEO,SAAS,oBAAoB,GAAmB;AACrD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAGO,MAAM,oBAAoB,CAAC,UAAkB,aAAa,SAAS;AACxE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC,YAAY,OAAO,aAAa,UAAU;AAE7C,cAAQ,MAAM,kCAAkC,QAAQ;AACxD,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,OAAO,WAAW,UAAU,EAAE;AACpC,SAAO,aAAa,SAAS,UAAU;AACzC;",
6
6
  "names": []
7
7
  }