@tamagui/core 1.0.0-alpha.6 → 1.0.0-alpha.62

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 (511) hide show
  1. package/dist/cjs/conf.js +52 -0
  2. package/dist/cjs/conf.js.map +7 -0
  3. package/dist/cjs/constants/constants.js +55 -0
  4. package/dist/cjs/constants/constants.js.map +7 -0
  5. package/dist/cjs/constants/platform.js +44 -0
  6. package/dist/cjs/constants/platform.js.map +7 -0
  7. package/dist/cjs/constants/pseudos.js +42 -0
  8. package/dist/cjs/constants/pseudos.js.map +7 -0
  9. package/dist/cjs/constants/rnw.js +45 -0
  10. package/dist/cjs/constants/rnw.js.map +7 -0
  11. package/dist/cjs/createComponent.js +544 -0
  12. package/dist/cjs/createComponent.js.map +7 -0
  13. package/dist/cjs/createFont.js +51 -0
  14. package/dist/cjs/createFont.js.map +7 -0
  15. package/dist/cjs/createShorthands.js +33 -0
  16. package/dist/cjs/createShorthands.js.map +7 -0
  17. package/dist/cjs/createTamagui.js +205 -0
  18. package/dist/cjs/createTamagui.js.map +7 -0
  19. package/dist/cjs/createTheme.js +30 -0
  20. package/dist/cjs/createTheme.js.map +7 -0
  21. package/dist/cjs/createTokens.js +56 -0
  22. package/dist/cjs/createTokens.js.map +7 -0
  23. package/dist/cjs/createVariable.js +53 -0
  24. package/dist/cjs/createVariable.js.map +7 -0
  25. package/dist/cjs/helpers/addStylesUsingClassname.js +80 -0
  26. package/dist/cjs/helpers/addStylesUsingClassname.js.map +7 -0
  27. package/dist/cjs/helpers/createMediaStyle.js +57 -0
  28. package/dist/cjs/helpers/createMediaStyle.js.map +7 -0
  29. package/dist/cjs/helpers/createPropMapper.js +199 -0
  30. package/dist/cjs/helpers/createPropMapper.js.map +7 -0
  31. package/dist/cjs/helpers/createTamaguiProvider.js +80 -0
  32. package/dist/cjs/helpers/createTamaguiProvider.js.map +7 -0
  33. package/dist/cjs/helpers/extendStaticConfig.js +83 -0
  34. package/dist/cjs/helpers/extendStaticConfig.js.map +7 -0
  35. package/dist/cjs/helpers/fixNativeShadow.js +31 -0
  36. package/dist/cjs/helpers/fixNativeShadow.js.map +7 -0
  37. package/dist/cjs/helpers/fixNativeShadow.native.js +57 -0
  38. package/dist/cjs/helpers/fixNativeShadow.native.js.map +7 -0
  39. package/dist/cjs/helpers/getSplitStyles.js +184 -0
  40. package/dist/cjs/helpers/getSplitStyles.js.map +7 -0
  41. package/dist/cjs/helpers/getStylesAtomic.js +118 -0
  42. package/dist/cjs/helpers/getStylesAtomic.js.map +7 -0
  43. package/dist/cjs/helpers/getStylesAtomic.native.js +33 -0
  44. package/dist/cjs/helpers/getStylesAtomic.native.js.map +7 -0
  45. package/dist/cjs/helpers/getThemeParentClassName.js +34 -0
  46. package/dist/cjs/helpers/getThemeParentClassName.js.map +7 -0
  47. package/dist/cjs/helpers/insertStyleRule.js +47 -0
  48. package/dist/cjs/helpers/insertStyleRule.js.map +7 -0
  49. package/dist/cjs/helpers/isObj.js +30 -0
  50. package/dist/cjs/helpers/isObj.js.map +7 -0
  51. package/dist/cjs/helpers/isTamaguiElement.js +34 -0
  52. package/dist/cjs/helpers/isTamaguiElement.js.map +7 -0
  53. package/dist/cjs/helpers/matchMedia.js +41 -0
  54. package/dist/cjs/helpers/matchMedia.js.map +7 -0
  55. package/dist/cjs/helpers/matchMedia.native.js +37 -0
  56. package/dist/cjs/helpers/matchMedia.native.js.map +7 -0
  57. package/dist/cjs/helpers/themeable.js +84 -0
  58. package/dist/cjs/helpers/themeable.js.map +7 -0
  59. package/dist/cjs/helpers/validate.js +88 -0
  60. package/dist/cjs/helpers/validate.js.map +7 -0
  61. package/dist/cjs/hooks/useConstant.js +38 -0
  62. package/dist/cjs/hooks/useConstant.js.map +7 -0
  63. package/dist/cjs/hooks/useFeatures.js +106 -0
  64. package/dist/cjs/hooks/useFeatures.js.map +7 -0
  65. package/dist/cjs/hooks/useMedia.js +208 -0
  66. package/dist/cjs/hooks/useMedia.js.map +7 -0
  67. package/dist/cjs/hooks/usePressable.js +51 -0
  68. package/dist/cjs/hooks/usePressable.js.map +7 -0
  69. package/dist/cjs/hooks/useTheme.js +121 -0
  70. package/dist/cjs/hooks/useTheme.js.map +7 -0
  71. package/dist/cjs/index.js +63 -0
  72. package/dist/cjs/index.js.map +7 -0
  73. package/dist/cjs/static/postProcessStyles.js +41 -0
  74. package/dist/cjs/static/postProcessStyles.js.map +7 -0
  75. package/dist/cjs/static.js +35 -0
  76. package/dist/cjs/static.js.map +7 -0
  77. package/dist/cjs/styled.js +73 -0
  78. package/dist/cjs/styled.js.map +7 -0
  79. package/dist/cjs/tamagui-base.css +8 -0
  80. package/dist/cjs/tamagui-base.css.map +7 -0
  81. package/dist/cjs/types.js +21 -0
  82. package/dist/cjs/types.js.map +7 -0
  83. package/dist/cjs/views/AbsoluteFullscreen.js +38 -0
  84. package/dist/cjs/views/AbsoluteFullscreen.js.map +7 -0
  85. package/dist/cjs/views/AbsoluteFullscreen.native.js +1 -0
  86. package/dist/{helpers/pseudos.js.map → cjs/views/AbsoluteFullscreen.native.js.map} +0 -0
  87. package/dist/cjs/views/Animated.js +135 -0
  88. package/dist/cjs/views/Animated.js.map +7 -0
  89. package/dist/cjs/views/Stack.js +52 -0
  90. package/dist/cjs/views/Stack.js.map +7 -0
  91. package/dist/cjs/views/Text.js +94 -0
  92. package/dist/cjs/views/Text.js.map +7 -0
  93. package/dist/cjs/views/TextAncestorContext.js +46 -0
  94. package/dist/cjs/views/TextAncestorContext.js.map +7 -0
  95. package/dist/cjs/views/Theme.js +97 -0
  96. package/dist/cjs/views/Theme.js.map +7 -0
  97. package/dist/cjs/views/ThemeContext.js +30 -0
  98. package/dist/cjs/views/ThemeContext.js.map +7 -0
  99. package/dist/cjs/views/ThemeInverse.js +54 -0
  100. package/dist/cjs/views/ThemeInverse.js.map +7 -0
  101. package/dist/cjs/views/ThemeManagerContext.js +85 -0
  102. package/dist/cjs/views/ThemeManagerContext.js.map +7 -0
  103. package/dist/cjs/views/ThemeProvider.js +73 -0
  104. package/dist/cjs/views/ThemeProvider.js.map +7 -0
  105. package/dist/esm/conf.js +29 -0
  106. package/dist/esm/conf.js.map +7 -0
  107. package/dist/{constants → esm/constants}/constants.js +4 -0
  108. package/dist/esm/constants/constants.js.map +7 -0
  109. package/dist/{constants → esm/constants}/platform.js +2 -1
  110. package/dist/esm/constants/platform.js.map +7 -0
  111. package/dist/{constants → esm/constants}/pseudos.js +0 -0
  112. package/dist/{constants → esm/constants}/pseudos.js.map +1 -1
  113. package/dist/{constants → esm/constants}/rnw.js +0 -0
  114. package/dist/{constants → esm/constants}/rnw.js.map +1 -1
  115. package/dist/{createComponent.js → esm/createComponent.js} +94 -79
  116. package/dist/esm/createComponent.js.map +7 -0
  117. package/dist/{createFont.js → esm/createFont.js} +4 -0
  118. package/dist/esm/createFont.js.map +7 -0
  119. package/dist/{createShorthands.js → esm/createShorthands.js} +0 -0
  120. package/dist/{createShorthands.js.map → esm/createShorthands.js.map} +1 -1
  121. package/dist/{createTamagui.js → esm/createTamagui.js} +71 -64
  122. package/dist/esm/createTamagui.js.map +7 -0
  123. package/dist/esm/createTheme.js +7 -0
  124. package/dist/esm/createTheme.js.map +7 -0
  125. package/dist/{createTokens.js → esm/createTokens.js} +4 -0
  126. package/dist/esm/createTokens.js.map +7 -0
  127. package/dist/{createVariable.js → esm/createVariable.js} +8 -3
  128. package/dist/esm/createVariable.js.map +7 -0
  129. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js +1 -1
  130. package/dist/{helpers → esm/helpers}/addStylesUsingClassname.js.map +3 -3
  131. package/dist/{helpers → esm/helpers}/createMediaStyle.js +0 -0
  132. package/dist/{helpers → esm/helpers}/createMediaStyle.js.map +1 -1
  133. package/dist/{helpers → esm/helpers}/createPropMapper.js +48 -24
  134. package/dist/esm/helpers/createPropMapper.js.map +7 -0
  135. package/dist/{helpers → esm/helpers}/createTamaguiProvider.js +0 -0
  136. package/dist/{helpers → esm/helpers}/createTamaguiProvider.js.map +1 -1
  137. package/dist/{helpers → esm/helpers}/extendStaticConfig.js +4 -2
  138. package/dist/esm/helpers/extendStaticConfig.js.map +7 -0
  139. package/dist/{helpers → esm/helpers}/fixNativeShadow.js +0 -0
  140. package/dist/{helpers → esm/helpers}/fixNativeShadow.js.map +1 -1
  141. package/dist/esm/helpers/fixNativeShadow.native.js +34 -0
  142. package/dist/esm/helpers/fixNativeShadow.native.js.map +7 -0
  143. package/dist/{helpers → esm/helpers}/getSplitStyles.js +16 -11
  144. package/dist/esm/helpers/getSplitStyles.js.map +7 -0
  145. package/dist/{helpers → esm/helpers}/getStylesAtomic.js +2 -1
  146. package/dist/esm/helpers/getStylesAtomic.js.map +7 -0
  147. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js +0 -0
  148. package/dist/{helpers → esm/helpers}/getStylesAtomic.native.js.map +1 -1
  149. package/dist/esm/helpers/getThemeParentClassName.js +11 -0
  150. package/dist/esm/helpers/getThemeParentClassName.js.map +7 -0
  151. package/dist/{helpers → esm/helpers}/insertStyleRule.js +0 -0
  152. package/dist/{helpers → esm/helpers}/insertStyleRule.js.map +1 -1
  153. package/dist/{helpers → esm/helpers}/isObj.js +0 -0
  154. package/dist/{helpers → esm/helpers}/isObj.js.map +1 -1
  155. package/dist/{helpers → esm/helpers}/isTamaguiElement.js +2 -1
  156. package/dist/{helpers → esm/helpers}/isTamaguiElement.js.map +2 -2
  157. package/dist/{helpers → esm/helpers}/matchMedia.js +3 -0
  158. package/dist/esm/helpers/matchMedia.js.map +7 -0
  159. package/dist/{helpers → esm/helpers}/matchMedia.native.js +1 -0
  160. package/dist/{helpers → esm/helpers}/matchMedia.native.js.map +3 -3
  161. package/dist/{helpers → esm/helpers}/themeable.js +1 -1
  162. package/dist/{helpers → esm/helpers}/themeable.js.map +2 -2
  163. package/dist/esm/helpers/validate.js +60 -0
  164. package/dist/esm/helpers/validate.js.map +7 -0
  165. package/dist/{hooks → esm/hooks}/useConstant.js +0 -0
  166. package/dist/{hooks → esm/hooks}/useConstant.js.map +1 -1
  167. package/dist/{hooks → esm/hooks}/useFeatures.js +39 -51
  168. package/dist/esm/hooks/useFeatures.js.map +7 -0
  169. package/dist/{hooks → esm/hooks}/useMedia.js +10 -6
  170. package/dist/esm/hooks/useMedia.js.map +7 -0
  171. package/dist/{hooks → esm/hooks}/usePressable.js +2 -1
  172. package/dist/{hooks → esm/hooks}/usePressable.js.map +2 -2
  173. package/dist/{hooks → esm/hooks}/useTheme.js +22 -16
  174. package/dist/esm/hooks/useTheme.js.map +7 -0
  175. package/dist/{index.js → esm/index.js} +8 -1
  176. package/dist/esm/index.js.map +7 -0
  177. package/dist/{static → esm/static}/postProcessStyles.js +0 -0
  178. package/dist/{static → esm/static}/postProcessStyles.js.map +1 -1
  179. package/dist/{static.js → esm/static.js} +0 -0
  180. package/dist/{static.js.map → esm/static.js.map} +1 -1
  181. package/dist/{styled.js → esm/styled.js} +0 -0
  182. package/dist/esm/styled.js.map +7 -0
  183. package/dist/esm/tamagui-base.css +8 -0
  184. package/dist/esm/tamagui-base.css.map +7 -0
  185. package/dist/{types.js → esm/types.js} +0 -0
  186. package/dist/{types.js.map → esm/types.js.map} +0 -0
  187. package/dist/esm/views/AbsoluteFullscreen.js +14 -0
  188. package/dist/esm/views/AbsoluteFullscreen.js.map +7 -0
  189. package/dist/esm/views/AbsoluteFullscreen.native.js +1 -0
  190. package/dist/esm/views/AbsoluteFullscreen.native.js.map +7 -0
  191. package/dist/{views → esm/views}/Animated.js +0 -0
  192. package/dist/{views → esm/views}/Animated.js.map +1 -1
  193. package/dist/{views → esm/views}/Stack.js +0 -0
  194. package/dist/{views → esm/views}/Stack.js.map +1 -1
  195. package/dist/{views → esm/views}/Text.js +2 -2
  196. package/dist/esm/views/Text.js.map +7 -0
  197. package/dist/esm/views/TextAncestorContext.js +18 -0
  198. package/dist/esm/views/TextAncestorContext.js.map +7 -0
  199. package/dist/{views → esm/views}/Theme.js +20 -14
  200. package/dist/esm/views/Theme.js.map +7 -0
  201. package/dist/{views → esm/views}/ThemeContext.js +0 -0
  202. package/dist/{views → esm/views}/ThemeContext.js.map +1 -1
  203. package/dist/{views → esm/views}/ThemeInverse.js +0 -0
  204. package/dist/{views → esm/views}/ThemeInverse.js.map +1 -1
  205. package/dist/{views → esm/views}/ThemeManagerContext.js +15 -8
  206. package/dist/esm/views/ThemeManagerContext.js.map +7 -0
  207. package/dist/{views → esm/views}/ThemeProvider.js +3 -3
  208. package/dist/esm/views/ThemeProvider.js.map +7 -0
  209. package/dist/jsx/conf.js +28 -0
  210. package/dist/jsx/constants/constants.js +17 -0
  211. package/dist/jsx/constants/platform.js +19 -0
  212. package/dist/jsx/constants/pseudos.js +17 -0
  213. package/dist/jsx/constants/rnw.js +21 -0
  214. package/dist/jsx/createComponent.js +466 -0
  215. package/dist/jsx/createFont.js +27 -0
  216. package/dist/jsx/createShorthands.js +9 -0
  217. package/dist/jsx/createTamagui.js +165 -0
  218. package/dist/jsx/createTheme.js +6 -0
  219. package/dist/jsx/createTokens.js +32 -0
  220. package/dist/jsx/createVariable.js +29 -0
  221. package/dist/jsx/helpers/addStylesUsingClassname.js +56 -0
  222. package/dist/jsx/helpers/createMediaStyle.js +33 -0
  223. package/dist/jsx/helpers/createPropMapper.js +176 -0
  224. package/dist/jsx/helpers/createTamaguiProvider.js +19 -0
  225. package/dist/jsx/helpers/extendStaticConfig.js +60 -0
  226. package/dist/jsx/helpers/fixNativeShadow.js +7 -0
  227. package/dist/jsx/helpers/fixNativeShadow.native.js +33 -0
  228. package/dist/jsx/helpers/getSplitStyles.js +152 -0
  229. package/dist/jsx/helpers/getStylesAtomic.js +83 -0
  230. package/dist/jsx/helpers/getStylesAtomic.native.js +9 -0
  231. package/dist/jsx/helpers/getThemeParentClassName.js +10 -0
  232. package/dist/jsx/helpers/insertStyleRule.js +23 -0
  233. package/dist/jsx/helpers/isObj.js +6 -0
  234. package/dist/jsx/helpers/isTamaguiElement.js +10 -0
  235. package/dist/jsx/helpers/matchMedia.js +17 -0
  236. package/dist/jsx/helpers/matchMedia.native.js +8 -0
  237. package/dist/jsx/helpers/themeable.js +23 -0
  238. package/dist/jsx/helpers/validate.js +59 -0
  239. package/dist/jsx/hooks/useConstant.js +14 -0
  240. package/dist/jsx/hooks/useFeatures.js +57 -0
  241. package/dist/jsx/hooks/useMedia.js +174 -0
  242. package/dist/jsx/hooks/usePressable.js +13 -0
  243. package/dist/jsx/hooks/useTheme.js +98 -0
  244. package/dist/jsx/index.js +38 -0
  245. package/dist/jsx/static/postProcessStyles.js +17 -0
  246. package/dist/jsx/static.js +14 -0
  247. package/dist/jsx/styled.js +20 -0
  248. package/dist/jsx/tamagui-base.css +7 -0
  249. package/dist/jsx/types.js +0 -0
  250. package/dist/jsx/views/AbsoluteFullscreen.js +13 -0
  251. package/dist/jsx/views/AbsoluteFullscreen.native.js +0 -0
  252. package/dist/jsx/views/Animated.js +74 -0
  253. package/dist/jsx/views/Stack.js +11 -0
  254. package/dist/jsx/views/Text.js +59 -0
  255. package/dist/jsx/views/TextAncestorContext.js +15 -0
  256. package/dist/jsx/views/Theme.js +63 -0
  257. package/dist/jsx/views/ThemeContext.js +5 -0
  258. package/dist/jsx/views/ThemeInverse.js +22 -0
  259. package/dist/jsx/views/ThemeManagerContext.js +61 -0
  260. package/dist/jsx/views/ThemeProvider.js +39 -0
  261. package/package.json +19 -17
  262. package/types/conf.d.ts +44 -0
  263. package/types/conf.d.ts.map +1 -0
  264. package/{dist/packages/core/src → types}/constants/constants.d.ts +2 -0
  265. package/types/constants/constants.d.ts.map +1 -0
  266. package/{dist/packages/core/src → types}/constants/platform.d.ts +0 -0
  267. package/types/constants/platform.d.ts.map +1 -0
  268. package/{dist/packages/core/src → types}/constants/pseudos.d.ts +0 -0
  269. package/types/constants/pseudos.d.ts.map +1 -0
  270. package/{dist/packages/core/src → types}/constants/rnw.d.ts +0 -0
  271. package/types/constants/rnw.d.ts.map +1 -0
  272. package/types/createComponent.d.ts +20 -0
  273. package/types/createComponent.d.ts.map +1 -0
  274. package/types/createFont.d.ts +3 -0
  275. package/types/createFont.d.ts.map +1 -0
  276. package/{dist/packages/core/src → types}/createShorthands.d.ts +0 -0
  277. package/types/createShorthands.d.ts.map +1 -0
  278. package/types/createTamagui.d.ts +13 -0
  279. package/types/createTamagui.d.ts.map +1 -0
  280. package/types/createTheme.d.ts +7 -0
  281. package/types/createTheme.d.ts.map +1 -0
  282. package/{dist/packages/core/src → types}/createTokens.d.ts +24 -14
  283. package/types/createTokens.d.ts.map +1 -0
  284. package/{dist/packages/core/src → types}/createVariable.d.ts +4 -1
  285. package/types/createVariable.d.ts.map +1 -0
  286. package/types/helpers/addStylesUsingClassname.d.ts +3 -0
  287. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -0
  288. package/{dist/packages/core/src → types}/helpers/createMediaStyle.d.ts +0 -0
  289. package/types/helpers/createMediaStyle.d.ts.map +1 -0
  290. package/types/helpers/createPropMapper.d.ts +3 -0
  291. package/types/helpers/createPropMapper.d.ts.map +1 -0
  292. package/{dist/packages/core/src → types}/helpers/createTamaguiProvider.d.ts +0 -0
  293. package/types/helpers/createTamaguiProvider.d.ts.map +1 -0
  294. package/{dist/packages/core/src → types}/helpers/extendStaticConfig.d.ts +1 -1
  295. package/types/helpers/extendStaticConfig.d.ts.map +1 -0
  296. package/{dist/packages/core/src → types}/helpers/fixNativeShadow.d.ts +0 -0
  297. package/types/helpers/fixNativeShadow.d.ts.map +1 -0
  298. package/types/helpers/fixNativeShadow.native.d.ts +2 -0
  299. package/types/helpers/fixNativeShadow.native.d.ts.map +1 -0
  300. package/{dist/packages/core/src → types}/helpers/getSplitStyles.d.ts +1 -1
  301. package/types/helpers/getSplitStyles.d.ts.map +1 -0
  302. package/types/helpers/getStylesAtomic.d.ts +3 -0
  303. package/types/helpers/getStylesAtomic.d.ts.map +1 -0
  304. package/{dist/packages/core/src → types}/helpers/getStylesAtomic.native.d.ts +0 -0
  305. package/types/helpers/getStylesAtomic.native.d.ts.map +1 -0
  306. package/types/helpers/getThemeParentClassName.d.ts +2 -0
  307. package/types/helpers/getThemeParentClassName.d.ts.map +1 -0
  308. package/{dist/packages/core/src → types}/helpers/insertStyleRule.d.ts +0 -0
  309. package/types/helpers/insertStyleRule.d.ts.map +1 -0
  310. package/types/helpers/isObj.d.ts +2 -0
  311. package/types/helpers/isObj.d.ts.map +1 -0
  312. package/types/helpers/isTamaguiElement.d.ts +3 -0
  313. package/types/helpers/isTamaguiElement.d.ts.map +1 -0
  314. package/{dist/packages/core/src → types}/helpers/matchMedia.d.ts +0 -0
  315. package/types/helpers/matchMedia.d.ts.map +1 -0
  316. package/{dist/packages/core/src → types}/helpers/matchMedia.native.d.ts +0 -0
  317. package/types/helpers/matchMedia.native.d.ts.map +1 -0
  318. package/{dist/packages/core/src → types}/helpers/themeable.d.ts +0 -0
  319. package/types/helpers/themeable.d.ts.map +1 -0
  320. package/types/helpers/validate.d.ts +4 -0
  321. package/types/helpers/validate.d.ts.map +1 -0
  322. package/{dist/packages/core/src → types}/hooks/useConstant.d.ts +0 -0
  323. package/types/hooks/useConstant.d.ts.map +1 -0
  324. package/{dist/packages/core/src → types}/hooks/useFeatures.d.ts +0 -0
  325. package/types/hooks/useFeatures.d.ts.map +1 -0
  326. package/{dist/packages/core/src → types}/hooks/useMedia.d.ts +0 -0
  327. package/types/hooks/useMedia.d.ts.map +1 -0
  328. package/{dist/packages/core/src → types}/hooks/usePressable.d.ts +0 -0
  329. package/types/hooks/usePressable.d.ts.map +1 -0
  330. package/types/hooks/useTheme.d.ts +7 -0
  331. package/types/hooks/useTheme.d.ts.map +1 -0
  332. package/{dist/packages/core/src → types}/index.d.ts +5 -1
  333. package/types/index.d.ts.map +1 -0
  334. package/{dist/packages/core/src → types}/static/postProcessStyles.d.ts +0 -0
  335. package/types/static/postProcessStyles.d.ts.map +1 -0
  336. package/{dist/packages/core/src → types}/static.d.ts +3 -0
  337. package/types/static.d.ts.map +1 -0
  338. package/types/styled.d.ts +21 -0
  339. package/types/styled.d.ts.map +1 -0
  340. package/{dist/packages/core/src → types}/types.d.ts +88 -70
  341. package/types/types.d.ts.map +1 -0
  342. package/{dist/packages/core/src → types}/views/Animated.d.ts +0 -0
  343. package/types/views/Animated.d.ts.map +1 -0
  344. package/{dist/packages/core/src → types}/views/Stack.d.ts +0 -0
  345. package/types/views/Stack.d.ts.map +1 -0
  346. package/types/views/Text.d.ts +3 -0
  347. package/types/views/Text.d.ts.map +1 -0
  348. package/types/views/TextAncestorContext.d.ts +5 -0
  349. package/types/views/TextAncestorContext.d.ts.map +1 -0
  350. package/{dist/packages/core/src → types}/views/Theme.d.ts +1 -1
  351. package/types/views/Theme.d.ts.map +1 -0
  352. package/{dist/packages/core/src → types}/views/ThemeContext.d.ts +0 -0
  353. package/types/views/ThemeContext.d.ts.map +1 -0
  354. package/{dist/packages/core/src → types}/views/ThemeInverse.d.ts +0 -0
  355. package/types/views/ThemeInverse.d.ts.map +1 -0
  356. package/types/views/ThemeManagerContext.d.ts +22 -0
  357. package/types/views/ThemeManagerContext.d.ts.map +1 -0
  358. package/{dist/packages/core/src → types}/views/ThemeProvider.d.ts +0 -1
  359. package/types/views/ThemeProvider.d.ts.map +1 -0
  360. package/dist/constants/constants.js.map +0 -7
  361. package/dist/constants/platform.js.map +0 -7
  362. package/dist/constants/styleConstants.js +0 -46
  363. package/dist/constants/styleConstants.js.map +0 -7
  364. package/dist/createComponent.js.map +0 -7
  365. package/dist/createFont.js.map +0 -7
  366. package/dist/createTamagui.js.map +0 -7
  367. package/dist/createTheme.js +0 -20
  368. package/dist/createTheme.js.map +0 -7
  369. package/dist/createTokens.js.map +0 -7
  370. package/dist/createVariable.js.map +0 -7
  371. package/dist/helpers/createPropMapper.js.map +0 -7
  372. package/dist/helpers/extendStaticConfig.js.map +0 -7
  373. package/dist/helpers/fixNativeShadow.native.js +0 -30
  374. package/dist/helpers/fixNativeShadow.native.js.map +0 -7
  375. package/dist/helpers/getSplitStyles.js.map +0 -7
  376. package/dist/helpers/getStylesAtomic.js.map +0 -7
  377. package/dist/helpers/isComponent.js +0 -10
  378. package/dist/helpers/isComponent.js.map +0 -7
  379. package/dist/helpers/isTamaguiComponent.js +0 -10
  380. package/dist/helpers/isTamaguiComponent.js.map +0 -7
  381. package/dist/helpers/matchMedia.js.map +0 -7
  382. package/dist/helpers/pseudos.js +0 -1
  383. package/dist/hooks/useFeatures.js.map +0 -7
  384. package/dist/hooks/useForceUpdate.js +0 -28
  385. package/dist/hooks/useForceUpdate.js.map +0 -7
  386. package/dist/hooks/useMedia.js.map +0 -7
  387. package/dist/hooks/useTheme.js.map +0 -7
  388. package/dist/index.cjs +0 -2137
  389. package/dist/index.cjs.map +0 -7
  390. package/dist/index.js.map +0 -7
  391. package/dist/packages/core/src/constants/constants.d.ts.map +0 -1
  392. package/dist/packages/core/src/constants/platform.d.ts.map +0 -1
  393. package/dist/packages/core/src/constants/pseudos.d.ts.map +0 -1
  394. package/dist/packages/core/src/constants/rnw.d.ts.map +0 -1
  395. package/dist/packages/core/src/createComponent.d.ts +0 -16
  396. package/dist/packages/core/src/createComponent.d.ts.map +0 -1
  397. package/dist/packages/core/src/createShorthands.d.ts.map +0 -1
  398. package/dist/packages/core/src/createTamagui.d.ts +0 -37
  399. package/dist/packages/core/src/createTamagui.d.ts.map +0 -1
  400. package/dist/packages/core/src/createTheme.d.ts +0 -5
  401. package/dist/packages/core/src/createTheme.d.ts.map +0 -1
  402. package/dist/packages/core/src/createTokens.d.ts.map +0 -1
  403. package/dist/packages/core/src/createVariable.d.ts.map +0 -1
  404. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts +0 -2
  405. package/dist/packages/core/src/helpers/addStylesUsingClassname.d.ts.map +0 -1
  406. package/dist/packages/core/src/helpers/createMediaStyle.d.ts.map +0 -1
  407. package/dist/packages/core/src/helpers/createTamaguiProvider.d.ts.map +0 -1
  408. package/dist/packages/core/src/helpers/extendStaticConfig.d.ts.map +0 -1
  409. package/dist/packages/core/src/helpers/fixNativeShadow.d.ts.map +0 -1
  410. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts +0 -2
  411. package/dist/packages/core/src/helpers/fixNativeShadow.native.d.ts.map +0 -1
  412. package/dist/packages/core/src/helpers/getSplitStyles.d.ts.map +0 -1
  413. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts +0 -3
  414. package/dist/packages/core/src/helpers/getStylesAtomic.d.ts.map +0 -1
  415. package/dist/packages/core/src/helpers/getStylesAtomic.native.d.ts.map +0 -1
  416. package/dist/packages/core/src/helpers/insertStyleRule.d.ts.map +0 -1
  417. package/dist/packages/core/src/helpers/matchMedia.d.ts.map +0 -1
  418. package/dist/packages/core/src/helpers/matchMedia.native.d.ts.map +0 -1
  419. package/dist/packages/core/src/helpers/themeable.d.ts.map +0 -1
  420. package/dist/packages/core/src/hooks/useConstant.d.ts.map +0 -1
  421. package/dist/packages/core/src/hooks/useFeatures.d.ts.map +0 -1
  422. package/dist/packages/core/src/hooks/useForceUpdate.d.ts +0 -2
  423. package/dist/packages/core/src/hooks/useForceUpdate.d.ts.map +0 -1
  424. package/dist/packages/core/src/hooks/useMedia.d.ts.map +0 -1
  425. package/dist/packages/core/src/hooks/usePressable.d.ts.map +0 -1
  426. package/dist/packages/core/src/hooks/useTheme.d.ts +0 -18
  427. package/dist/packages/core/src/hooks/useTheme.d.ts.map +0 -1
  428. package/dist/packages/core/src/index.d.ts.map +0 -1
  429. package/dist/packages/core/src/static/postProcessStyles.d.ts.map +0 -1
  430. package/dist/packages/core/src/static.d.ts.map +0 -1
  431. package/dist/packages/core/src/styled.d.ts +0 -16
  432. package/dist/packages/core/src/styled.d.ts.map +0 -1
  433. package/dist/packages/core/src/types.d.ts.map +0 -1
  434. package/dist/packages/core/src/views/Animated.d.ts.map +0 -1
  435. package/dist/packages/core/src/views/Stack.d.ts.map +0 -1
  436. package/dist/packages/core/src/views/Text.d.ts +0 -3
  437. package/dist/packages/core/src/views/Text.d.ts.map +0 -1
  438. package/dist/packages/core/src/views/TextAncestorContext.d.ts +0 -3
  439. package/dist/packages/core/src/views/TextAncestorContext.d.ts.map +0 -1
  440. package/dist/packages/core/src/views/Theme.d.ts.map +0 -1
  441. package/dist/packages/core/src/views/ThemeContext.d.ts.map +0 -1
  442. package/dist/packages/core/src/views/ThemeInverse.d.ts.map +0 -1
  443. package/dist/packages/core/src/views/ThemeManagerContext.d.ts +0 -15
  444. package/dist/packages/core/src/views/ThemeManagerContext.d.ts.map +0 -1
  445. package/dist/packages/core/src/views/ThemeProvider.d.ts.map +0 -1
  446. package/dist/packages/helpers/src/AllRules.d.ts +0 -3
  447. package/dist/packages/helpers/src/AllRules.d.ts.map +0 -1
  448. package/dist/packages/helpers/src/concatClassName.d.ts +0 -2
  449. package/dist/packages/helpers/src/concatClassName.d.ts.map +0 -1
  450. package/dist/packages/helpers/src/index.d.ts +0 -5
  451. package/dist/packages/helpers/src/index.d.ts.map +0 -1
  452. package/dist/packages/helpers/src/types.d.ts +0 -8
  453. package/dist/packages/helpers/src/types.d.ts.map +0 -1
  454. package/dist/packages/helpers/src/validStyleProps.d.ts +0 -475
  455. package/dist/packages/helpers/src/validStyleProps.d.ts.map +0 -1
  456. package/dist/styled.js.map +0 -7
  457. package/dist/views/SafeAreaProvider.js +0 -30
  458. package/dist/views/SafeAreaProvider.js.map +0 -7
  459. package/dist/views/Text.js.map +0 -7
  460. package/dist/views/TextAncestorContext.js +0 -18
  461. package/dist/views/TextAncestorContext.js.map +0 -7
  462. package/dist/views/Theme.js.map +0 -7
  463. package/dist/views/ThemeManagerContext.js.map +0 -7
  464. package/dist/views/ThemeProvider.js.map +0 -7
  465. package/src/constants/constants.ts +0 -12
  466. package/src/constants/platform.ts +0 -15
  467. package/src/constants/pseudos.ts +0 -14
  468. package/src/constants/rnw.tsx +0 -20
  469. package/src/createComponent.tsx +0 -608
  470. package/src/createFont.ts +0 -26
  471. package/src/createShorthands.ts +0 -5
  472. package/src/createTamagui.ts +0 -207
  473. package/src/createTheme.ts +0 -19
  474. package/src/createTokens.ts +0 -83
  475. package/src/createVariable.ts +0 -26
  476. package/src/helpers/addStylesUsingClassname.tsx +0 -60
  477. package/src/helpers/createMediaStyle.ts +0 -46
  478. package/src/helpers/createPropMapper.ts +0 -184
  479. package/src/helpers/createTamaguiProvider.tsx +0 -22
  480. package/src/helpers/extendStaticConfig.ts +0 -68
  481. package/src/helpers/fixNativeShadow.native.tsx +0 -27
  482. package/src/helpers/fixNativeShadow.tsx +0 -2
  483. package/src/helpers/getSplitStyles.tsx +0 -197
  484. package/src/helpers/getStylesAtomic.native.ts +0 -3
  485. package/src/helpers/getStylesAtomic.ts +0 -103
  486. package/src/helpers/insertStyleRule.tsx +0 -18
  487. package/src/helpers/isObj.ts +0 -1
  488. package/src/helpers/isTamaguiElement.tsx +0 -5
  489. package/src/helpers/matchMedia.native.ts +0 -3
  490. package/src/helpers/matchMedia.ts +0 -9
  491. package/src/helpers/themeable.tsx +0 -42
  492. package/src/hooks/useConstant.tsx +0 -10
  493. package/src/hooks/useFeatures.tsx +0 -78
  494. package/src/hooks/useMedia.tsx +0 -194
  495. package/src/hooks/usePressable.tsx +0 -9
  496. package/src/hooks/useTheme.tsx +0 -107
  497. package/src/index.ts +0 -32
  498. package/src/static/postProcessStyles.tsx +0 -20
  499. package/src/static.ts +0 -22
  500. package/src/styled.ts +0 -82
  501. package/src/types.tsx +0 -561
  502. package/src/views/Animated.tsx +0 -121
  503. package/src/views/Stack.tsx +0 -21
  504. package/src/views/Text.tsx +0 -66
  505. package/src/views/TextAncestorContext.tsx +0 -12
  506. package/src/views/Theme.tsx +0 -80
  507. package/src/views/ThemeContext.tsx +0 -5
  508. package/src/views/ThemeInverse.tsx +0 -22
  509. package/src/views/ThemeManagerContext.tsx +0 -50
  510. package/src/views/ThemeProvider.tsx +0 -52
  511. package/types.d.ts +0 -555
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createComponent.tsx"],
4
+ "sourcesContent": ["import './tamagui-base.css'\n\nimport { concatClassName, stylePropsView } from '@tamagui/helpers'\nimport { useForceUpdate } from '@tamagui/use-force-update'\nimport React, {\n Children,\n Fragment,\n createElement,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { StyleSheet, Text, View, ViewStyle } from 'react-native'\n\nimport { onConfiguredOnce } from './conf'\nimport { stackDefaultStyles } from './constants/constants'\nimport { isTouchDevice, isWeb } from './constants/platform'\nimport { rnw } from './constants/rnw'\nimport { addStylesUsingClassname, useStylesAsClassname } from './helpers/addStylesUsingClassname'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport { getSplitStyles } from './helpers/getSplitStyles'\nimport { useFeatures } from './hooks/useFeatures'\nimport { usePressable } from './hooks/usePressable'\nimport { useTheme } from './hooks/useTheme'\nimport {\n SpaceTokens,\n StaticComponent,\n StaticConfig,\n StaticConfigParsed,\n TamaguiInternalConfig,\n} from './types'\nimport { TextAncestorContext } from './views/TextAncestorContext'\n\nexport const mouseUps = new Set<Function>()\n\nif (typeof document !== 'undefined') {\n document.addEventListener('mouseup', () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n })\n}\n\ntype DefaultProps = {}\n\nconst defaultComponentState = {\n hover: false,\n press: false,\n pressIn: false,\n}\n\ntype ComponentState = typeof defaultComponentState\n\nfunction createShallowUpdate(setter: React.Dispatch<React.SetStateAction<ComponentState>>) {\n return (next: Partial<ComponentState>) => {\n setter((prev) => {\n for (const key in next) {\n if (prev[key] !== next[key]) {\n return { ...prev, ...next }\n }\n }\n return prev\n })\n }\n}\n\nexport function createComponent<ComponentPropTypes extends Object = DefaultProps>(\n configIn: Partial<StaticConfig> | StaticConfigParsed\n) {\n let staticConfig: StaticConfigParsed\n if ('parsed' in configIn) {\n staticConfig = configIn\n } else {\n staticConfig = parseStaticConfig(configIn)\n }\n\n const { Component, validStyles, isText, isZStack } = staticConfig\n const validStyleProps = validStyles ?? stylePropsView\n\n // split out default styles vs props so we can assign it to component.defaultProps\n let defaultProps = null as any\n let tamaguiConfig: TamaguiInternalConfig\n\n // web uses className, native uses style\n let defaultNativeStyle: StyleSheet.NamedStyles<{ base: {} }> | null = null\n let defaultsClassName = ''\n let initialTheme: any\n\n // see onConfiguredOnce below which attaches a name then to this component\n\n const component = forwardRef<View, ComponentPropTypes>((props: any, forwardedRef) => {\n const forceUpdate = useForceUpdate()\n const features = useFeatures(props, { forceUpdate })\n const theme = useTheme()\n const [state, set_] = useState<ComponentState>(defaultComponentState)\n const set = createShallowUpdate(set_)\n\n // from react-native-web\n if (process.env.NODE_ENV === 'development' && !isText && isWeb) {\n Children.toArray(props.children).forEach((item) => {\n if (typeof item === 'string') {\n console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`)\n }\n })\n }\n\n const hasTextAncestor = isWeb ? useContext(TextAncestorContext) : false\n const hostRef = useRef(null)\n\n const {\n viewProps: viewPropsIn,\n pseudos,\n style,\n classNames,\n } = getSplitStyles(props, staticConfig, theme)\n\n const {\n tag,\n hitSlop,\n children,\n pointerEvents,\n onPress,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n space,\n disabled,\n onMouseEnter,\n onMouseLeave,\n hrefAttrs,\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n onMouseDown,\n onClick,\n\n accessible,\n accessibilityRole,\n\n // TODO feature load layout hook\n onLayout,\n ...viewProps\n } = viewPropsIn\n\n if (!isWeb) {\n if (accessible) viewProps.accessible = accessible\n if (accessibilityRole) viewProps.accessibilityRole = accessibilityRole\n }\n\n if (isWeb) {\n // from react-native-web\n rnw.useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n })\n }\n\n // hasEverHadEvents prevents repareting if you remove onPress or similar...\n const internal = useRef<{ isMounted: boolean; hasEverHadEvents?: boolean }>()\n if (!internal.current) {\n internal.current = {\n isMounted: true,\n }\n }\n\n useEffect(() => {\n internal.current!.isMounted = true\n return () => {\n mouseUps.delete(unPress)\n internal.current!.isMounted = false\n }\n }, [])\n\n // element\n const isInternalComponent = !Component || typeof Component === 'string'\n // default to tag, fallback to component (when both strings)\n const element = isWeb ? (isInternalComponent ? tag || Component : Component) : Component\n const ReactView = !isWeb ? View : element || (hasTextAncestor ? 'span' : 'div')\n const ReactText = !isWeb ? Text : element || 'span'\n const ViewComponent = isText ? ReactText : ReactView\n\n // styles\n const isHovering = !isTouchDevice && !disabled && pseudos && state.hover\n const isPressing = !disabled && pseudos && state.press\n\n const styles = [\n defaultNativeStyle ? defaultNativeStyle.base : null,\n // parity w react-native-web, only for text in text\n // TODO this should be able to be done w css to replicate after extraction:\n // (.text .text { display: inline-flex; }) (but if they set display we'd need stronger precendence)\n // isText && hasTextAncestor && isWeb ? { display: 'inline-flex' } : null,\n style,\n isHovering ? pseudos.hoverStyle || null : null,\n isPressing ? pseudos.pressStyle || null : null,\n ]\n\n if (isWeb) {\n const stylesClassNames = useStylesAsClassname(styles)\n const classList = isText\n ? [\n defaultsClassName,\n // hasTextAncestor === true && cssText.textHasAncestor,\n // TODO MOVE TO VARIANTS [number] [any]\n // numberOfLines != null && numberOfLines > 1 && cssText.textMultiLine,\n classNames,\n stylesClassNames,\n props.className,\n ]\n : [defaultsClassName, props.className, classNames, stylesClassNames]\n\n // @ts-ignore we are optimizing using arguments\n const className = concatClassName(...classList)\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n // prettier-ignore\n console.log('\uD83E\uDD5A className', { style, styles, classList, stylesClassNames, className: className.trim().split(' ') })\n }\n }\n viewProps.className = className\n } else {\n viewProps.style = styles\n }\n\n if (pointerEvents) {\n viewProps.pointerEvents = pointerEvents\n }\n\n if (isWeb) {\n // from react-native-web\n const platformMethodsRef = rnw.usePlatformMethods(viewProps)\n const setRef = rnw.useMergeRefs(hostRef, platformMethodsRef, forwardedRef)\n viewProps.ref = setRef\n if (props.href != null && hrefAttrs != null) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? '_' + target : target\n }\n }\n } else {\n if (forwardedRef) {\n viewProps.ref = forwardedRef\n }\n }\n\n const attachPress = !!(\n (pseudos && pseudos.pressStyle) ||\n onPress ||\n onPressOut ||\n onPressIn ||\n onClick\n )\n const attachHover =\n isWeb &&\n !isTouchDevice &&\n !!((pseudos && pseudos.hoverStyle) || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n\n // check presence to prevent reparenting bugs, allows for onPress={x ? function : undefined} usage\n // while avoiding reparenting...\n // once proper reparenting is supported, we can remove this and use that...\n const shouldAttach =\n internal.current.hasEverHadEvents ||\n attachPress ||\n attachHover ||\n 'pressStyle' in props ||\n 'onPress' in props ||\n 'onPressIn' in props ||\n 'onPressOut' in props ||\n (isWeb &&\n ('hoverStyle' in props ||\n 'onClick' in props ||\n 'onHoverIn' in props ||\n 'onHoverOut' in props ||\n 'onMouseEnter' in props ||\n 'onMouseLeave' in props))\n\n // never remove events as we wrap in a div (for now, may be able to remove..)\n if (shouldAttach) {\n internal.current.hasEverHadEvents = true\n }\n\n const unPress = useCallback(() => {\n if (!internal.current!.isMounted) return\n set({\n press: false,\n pressIn: false,\n })\n }, [])\n\n const events = shouldAttach\n ? {\n ...(!isWeb && {\n // non web\n onPressOut: (e) => {\n unPress()\n onPressOut?.(e)\n },\n }),\n ...(isWeb &&\n !isTouchDevice && {\n onMouseEnter:\n attachHover || attachPress\n ? (e) => {\n let next: Partial<typeof state> = {}\n if (attachHover) {\n next.hover = true\n }\n if (state.pressIn) {\n next.press = true\n }\n if (Object.keys(next).length) {\n set(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave:\n attachHover || attachPress\n ? (e) => {\n let next: Partial<typeof state> = {}\n mouseUps.add(unPress)\n if (attachHover) {\n next.hover = false\n }\n if (state.pressIn) {\n next.press = false\n next.pressIn = false\n }\n if (Object.keys(next).length) {\n set(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onMouseDown: attachPress\n ? (e) => {\n set({\n press: true,\n pressIn: true,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n }\n : (onPressIn as any),\n onClick: attachPress\n ? (e) => {\n // this caused issue with next.js passing href\n // e.preventDefault()\n onPress?.(e)\n onClick?.(e)\n unPress()\n onPressOut?.(e)\n }\n : (onPressOut as any),\n }\n : null\n\n if (events) {\n if (typeof ViewComponent !== 'string') {\n // TODO once we do the above we can then rely entirely on pressStyle returned here isntead of above pressStyle logic\n const [pressProps] = usePressable({\n disabled,\n hitSlop,\n onPressIn: events.onMouseDown,\n onPressOut: events.onPressOut,\n onPress: events.onClick,\n })\n Object.assign(viewProps, pressProps)\n } else {\n Object.assign(viewProps, events)\n }\n }\n\n const childEls = spacedChildren({\n children,\n space,\n flexDirection: props.flexDirection || defaultProps?.flexDirection,\n isZStack: isZStack,\n })\n\n let content: any\n\n // replicate react-native-web's `createElement`\n if (isWeb && rnw) {\n const domProps = rnw.createDOMProps(viewProps)\n const className =\n domProps.className && domProps.className !== viewProps.className\n ? `${domProps.className} ${viewProps.className}`\n : viewProps.className\n Object.assign(viewProps, domProps)\n\n if (staticConfig.isReactNativeWeb) {\n viewProps.dataSet = viewProps.dataSet || {}\n Object.assign(viewProps.dataSet, { __className: className })\n } else {\n // we already handle Text/View properly\n viewProps.className = className\n }\n\n content = createElement(ViewComponent, viewProps, childEls)\n } else {\n content = createElement(ViewComponent, viewProps, childEls)\n }\n\n const shouldWrapTextAncestor = isWeb && isText && !hasTextAncestor\n if (shouldWrapTextAncestor) {\n // from react-native-web\n content = createElement(TextAncestorContext.Provider, { value: true }, content)\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props['debug']) {\n viewProps['debug'] = true\n console.log('\uD83E\uDD5A props in:', props)\n console.log('\uD83E\uDD5A props out:', viewProps, viewProps.className?.split(' '))\n // prettier-ignore\n console.log('\uD83E\uDD5A etc:', { shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls })\n // only on browser because node expands it huge\n if (typeof window !== 'undefined') {\n console.log('\uD83E\uDD5A component info', { staticConfig, tamaguiConfig })\n }\n }\n }\n\n if (features.length) {\n return (\n <>\n {features}\n {content}\n </>\n )\n }\n\n return content\n })\n\n // Once configuration is run and all components are registered\n // get default props + className and analyze styles\n onConfiguredOnce((conf) => {\n const shouldDebug = staticConfig.defaultProps?.debug\n tamaguiConfig = conf\n initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]\n const { classNames, pseudos, style, viewProps } = getSplitStyles(\n staticConfig.defaultProps,\n staticConfig,\n initialTheme\n )\n if (isWeb) {\n if (classNames) {\n defaultsClassName += classNames + ' '\n }\n defaultsClassName += addStylesUsingClassname([style, pseudos])\n if (process.env.NODE_ENV === 'development' && shouldDebug) {\n // prettier-ignore\n console.log('tamagui \uD83D\uDC1B:', { defaultsClassName: defaultsClassName.split(' ') })\n }\n } else {\n // native, create a default StyleSheet\n // TODO handle pseudos\n const sheetStyles = {}\n for (const styleObj of style) {\n Object.assign(sheetStyles, styleObj)\n }\n defaultNativeStyle = StyleSheet.create({\n base: sheetStyles,\n })\n }\n // @ts-ignore\n component.defaultProps = {\n ...viewProps,\n ...component.defaultProps,\n }\n if (process.env.NODE_ENV === 'development' && shouldDebug) {\n // prettier-ignore\n console.log('tamagui \uD83D\uDC1B:', { initialTheme, classNames, pseudos, style, viewProps, defaultsClassName, component })\n }\n })\n\n component['staticConfig'] = {\n validStyles: validStyleProps,\n ...staticConfig,\n }\n\n const res = component as any as StaticComponent<ComponentPropTypes, void>\n\n // add extractable HoC\n res['extractable'] = (Component: any, conf?: StaticConfig) => {\n Component['staticConfig'] = extendStaticConfig(res, {\n ...conf,\n neverFlatten: true,\n defaultProps: {\n ...Component.defaultProps,\n ...conf?.defaultProps,\n },\n })\n return Component\n }\n\n return res\n}\n\nlet hasWarnedOnce = false\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<{ size?: number | SpaceTokens; flex?: boolean | number }>({\n defaultProps: {\n ...stackDefaultStyles,\n size: true,\n },\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n size = size == true ? '$true' : size\n return {\n width: tokens.size[size] ?? size,\n height: tokens.size[size] ?? size,\n }\n },\n },\n\n direction: {\n horizontal: {\n height: 0,\n },\n vertical: {\n width: 0,\n },\n },\n },\n})\n\nexport function spacedChildren({\n isZStack,\n children,\n space,\n flexDirection,\n}: {\n isZStack?: boolean\n children: any\n space?: any\n flexDirection?: ViewStyle['flexDirection']\n}) {\n if (!space && !isZStack) {\n return children\n }\n const childrenList = Children.toArray(children)\n const len = childrenList.length\n if (len === 1) {\n return children\n }\n const next: any[] = []\n for (const [index, child] of childrenList.entries()) {\n if (child === null || child === undefined) {\n continue\n }\n\n const key = `${child?.['key'] ?? index}`\n\n next.push(\n <Fragment key={key}>{isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}</Fragment>\n )\n\n // allows for custom visually hidden components that dont insert spacing\n if (child?.['type']?.['isVisuallyHidden']) {\n continue\n }\n\n if (index !== len - 1) {\n if (space) {\n next.push(\n <Spacer\n key={`${key}_spacer`}\n // @ts-ignore TODO\n direction={\n flexDirection === 'row' || flexDirection === 'row-reverse' ? 'horizontal' : 'vertical'\n }\n size={space}\n />\n )\n }\n }\n }\n return next\n}\n\nexport const AbsoluteFill = (props: any) =>\n isWeb ? (\n <div className=\"tamagui-absolute-fill\">{props.children}</div>\n ) : (\n <View style={StyleSheet.absoluteFill}>{props.child}</View>\n )\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,6 +1,10 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { validateFont } from "./helpers/validate";
3
4
  const createFont = /* @__PURE__ */ __name((font) => {
5
+ if (process.env.NODE_ENV === "development") {
6
+ validateFont(font);
7
+ }
4
8
  const sizeKeys = Object.keys(font.size);
5
9
  for (const key in font) {
6
10
  if (key === "size" || key === "family")
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createFont.ts"],
4
+ "sourcesContent": ["import { validateFont } from './helpers/validate'\nimport { GenericFont } from './types'\n\nexport const createFont = <A extends GenericFont>(font: A): A => {\n if (process.env.NODE_ENV === 'development') {\n validateFont(font)\n }\n\n // fills in any missing values based on size keys being standard\n const sizeKeys = Object.keys(font.size)\n\n for (const key in font) {\n if (key === 'size' || key === 'family') continue\n const section = font[key]\n const keys = Object.keys(section)\n\n // fill with first filled in value to start\n let fillVal = section[keys[0]]\n\n for (const sKey of sizeKeys) {\n if (!(sKey in section)) {\n section[sKey] = fillVal\n } else {\n // if exists, set as the fillVal\n fillVal = section[sKey]\n }\n }\n }\n\n return Object.freeze(font)\n}\n"],
5
+ "mappings": ";;AAAA;AAGO,MAAM,aAAa,wBAAwB,SAAe;AAC/D,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,iBAAa;AAAA;AAIf,QAAM,WAAW,OAAO,KAAK,KAAK;AAElC,aAAW,OAAO,MAAM;AACtB,QAAI,QAAQ,UAAU,QAAQ;AAAU;AACxC,UAAM,UAAU,KAAK;AACrB,UAAM,OAAO,OAAO,KAAK;AAGzB,QAAI,UAAU,QAAQ,KAAK;AAE3B,eAAW,QAAQ,UAAU;AAC3B,UAAI,CAAE,SAAQ,UAAU;AACtB,gBAAQ,QAAQ;AAAA,aACX;AAEL,kBAAU,QAAQ;AAAA;AAAA;AAAA;AAKxB,SAAO,OAAO,OAAO;AAAA,GA1BG;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/createShorthands.ts"],
3
+ "sources": ["../../src/createShorthands.ts"],
4
4
  "sourcesContent": ["// type helper\n\nexport function createShorthands<A extends Record<string, string>>(shorthands: A): A {\n return Object.freeze(shorthands) as any\n}\n"],
5
5
  "mappings": ";;AAEO,0BAA4D,YAAkB;AACnF,SAAO,OAAO,OAAO;AAAA;AADP;",
6
6
  "names": []
@@ -1,23 +1,18 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import { getStyleRules } from "@tamagui/helpers";
4
+ import { configListeners, getHasConfigured, setConfig } from "./conf";
5
+ import { PREFIX } from "./constants/constants";
6
+ import { isWeb } from "./constants/platform";
4
7
  import { Variable, createVariable, isVariable } from "./createVariable";
5
8
  import { createTamaguiProvider } from "./helpers/createTamaguiProvider";
6
9
  import { configureMedia } from "./hooks/useMedia";
7
- let conf;
8
- const getHasConfigured = /* @__PURE__ */ __name(() => !!conf, "getHasConfigured");
9
- const getTamaguiConfig = /* @__PURE__ */ __name(() => conf, "getTamaguiConfig");
10
- const configListeners = new Set();
11
- const onConfiguredOnce = /* @__PURE__ */ __name((cb) => {
12
- if (conf) {
13
- cb(conf);
14
- } else {
15
- configListeners.add(cb);
16
- }
17
- }, "onConfiguredOnce");
18
- const PREFIX = `theme--`;
10
+ const createdConfigs = /* @__PURE__ */ new WeakMap();
19
11
  function createTamagui(config) {
20
- if (conf) {
12
+ if (createdConfigs.has(config)) {
13
+ return config;
14
+ }
15
+ if (getHasConfigured()) {
21
16
  console.warn("Called createTamagui twice! Should never do so");
22
17
  }
23
18
  configureMedia({
@@ -25,62 +20,62 @@ function createTamagui(config) {
25
20
  defaultActive: config.mediaQueryDefaultActive
26
21
  });
27
22
  const themeConfig = (() => {
23
+ var _a;
28
24
  let cssRules = [];
29
- let tokenRule = `:root {`;
30
- const varsByValue = new Map();
31
- const addVar = /* @__PURE__ */ __name((v) => {
32
- varsByValue[v.val] = v;
33
- const rule = `--${v.name}:${typeof v.val === "number" ? `${v.val}px` : v.val};`;
34
- tokenRule += rule;
35
- }, "addVar");
36
- for (const key in config.tokens) {
37
- for (const skey in config.tokens[key]) {
38
- const val = config.tokens[key][skey];
39
- if (key === "font") {
40
- for (const fkey in val) {
41
- if (fkey === "family") {
42
- addVar(val[fkey]);
43
- } else {
44
- for (const fskey in val[fkey]) {
45
- addVar(val[fkey][fskey]);
25
+ const varsByValue = /* @__PURE__ */ new Map();
26
+ if (isWeb) {
27
+ let tokenRule = `:root {`;
28
+ const addVar = /* @__PURE__ */ __name((v) => {
29
+ varsByValue[v.val] = v;
30
+ const rule = `--${v.name}:${typeof v.val === "number" ? `${v.val}px` : v.val};`;
31
+ tokenRule += rule;
32
+ }, "addVar");
33
+ for (const key in config.tokens) {
34
+ for (const skey in config.tokens[key]) {
35
+ const val = config.tokens[key][skey];
36
+ if (key === "font") {
37
+ for (const fkey in val) {
38
+ if (fkey === "family") {
39
+ addVar(val[fkey]);
40
+ } else {
41
+ for (const fskey in val[fkey]) {
42
+ addVar(val[fkey][fskey]);
43
+ }
46
44
  }
47
45
  }
46
+ } else {
47
+ addVar(val);
48
48
  }
49
- } else {
50
- addVar(val);
51
49
  }
52
50
  }
53
- }
54
- cssRules.push(`${tokenRule}
51
+ cssRules.push(`${tokenRule}
55
52
  }`);
53
+ }
56
54
  for (const themeName in config.themes) {
57
- config.themes[themeName] = { ...config.themes[themeName] };
58
- const theme = config.themes[themeName];
55
+ const theme = { ...config.themes[themeName] };
56
+ config.themes[themeName] = theme;
59
57
  let vars = "";
60
58
  for (const themeKey in theme) {
61
- const val = theme[themeKey];
62
- const getVariableCSS = /* @__PURE__ */ __name((inv) => {
63
- const v = varsByValue[inv] ?? inv;
64
- return isVariable(v) ? `--${themeKey}:var(--${v.name});` : `--${themeKey}:${v};`;
65
- }, "getVariableCSS");
66
- vars += getVariableCSS(val);
67
- if (!isVariable(val)) {
68
- theme[themeKey] = createVariable({
69
- name: themeKey,
70
- val
71
- });
59
+ if (isWeb) {
60
+ const val = theme[themeKey];
61
+ const varName = val instanceof Variable ? val.name : (_a = varsByValue[val]) == null ? void 0 : _a.name;
62
+ vars += `--${themeKey}:${varName ? `var(--${varName});` : `${val}`};`;
72
63
  }
64
+ ensureThemeVariable(theme, themeKey);
73
65
  }
74
- const [themeClassName, parentName] = themeName.includes("-") ? themeName.split("-") : [themeName, ""];
75
- const oppositeName = parentName === "dark" ? "light" : "dark";
76
- const cssParentSel = parentName ? `.${PREFIX}${parentName}` : "";
77
- const cssChildSel = `.${PREFIX}${themeClassName}`;
78
- const cssSel = `${cssParentSel} ${cssChildSel}`;
79
- const cssRule = `${cssSel}, .${PREFIX}${oppositeName} ${cssSel} {
66
+ if (isWeb) {
67
+ const [themeClassName, parentName] = themeName.includes("-") ? themeName.split("-") : [themeName, ""];
68
+ const oppositeName = parentName === "dark" ? "light" : "dark";
69
+ const cssParentSel = parentName ? `.${PREFIX}${parentName}` : "";
70
+ const cssChildSel = `.${PREFIX}${themeClassName}`;
71
+ const cssSel = `${cssParentSel} ${cssChildSel}`;
72
+ const cssRule = `${cssSel}, .${PREFIX}${oppositeName} ${cssSel} {
80
73
  ${vars}
81
74
  }`;
82
- cssRules.push(cssRule);
75
+ cssRules.push(cssRule);
76
+ }
83
77
  }
78
+ varsByValue.clear();
84
79
  Object.freeze(cssRules);
85
80
  return {
86
81
  cssRules,
@@ -96,6 +91,7 @@ ${vars}
96
91
  }
97
92
  const next = {
98
93
  shorthands: {},
94
+ media: {},
99
95
  ...config,
100
96
  Provider: createTamaguiProvider({
101
97
  defaultTheme: "light",
@@ -104,23 +100,21 @@ ${vars}
104
100
  themeConfig,
105
101
  themeParsed,
106
102
  tokensParsed,
103
+ parsed: true,
107
104
  getCSS() {
108
105
  return `${themeConfig.css}
109
106
  ${[...getStyleRules()].join("\n")}`;
110
107
  }
111
108
  };
112
- conf = next;
109
+ setConfig(next);
113
110
  if (configListeners.size) {
114
111
  configListeners.forEach((cb) => cb(next));
115
112
  configListeners.clear();
116
113
  }
114
+ createdConfigs.set(next, true);
117
115
  return next;
118
116
  }
119
117
  __name(createTamagui, "createTamagui");
120
- function getThemeParentClassName(themeName) {
121
- return `theme-parent ${themeName ? `${PREFIX}${themeName}` : ""}`;
122
- }
123
- __name(getThemeParentClassName, "getThemeParentClassName");
124
118
  const parseTokens = /* @__PURE__ */ __name((tokens) => {
125
119
  const res = {};
126
120
  for (const key in tokens) {
@@ -149,11 +143,24 @@ const parseTokens = /* @__PURE__ */ __name((tokens) => {
149
143
  }
150
144
  return res;
151
145
  }, "parseTokens");
146
+ function ensureThemeVariable(theme, key) {
147
+ const val = theme[key];
148
+ if (!isVariable(val)) {
149
+ theme[key] = createVariable({
150
+ name: key,
151
+ val
152
+ });
153
+ } else {
154
+ if (val.name !== key) {
155
+ theme[key] = createVariable({
156
+ name: key,
157
+ val: val.val
158
+ });
159
+ }
160
+ }
161
+ }
162
+ __name(ensureThemeVariable, "ensureThemeVariable");
152
163
  export {
153
- createTamagui,
154
- getHasConfigured,
155
- getTamaguiConfig,
156
- getThemeParentClassName,
157
- onConfiguredOnce
164
+ createTamagui
158
165
  };
159
166
  //# sourceMappingURL=createTamagui.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createTamagui.ts"],
4
+ "sourcesContent": ["import { getStyleRules } from '@tamagui/helpers'\n\nimport { configListeners, getHasConfigured, setConfig } from './conf'\nimport { PREFIX } from './constants/constants'\nimport { isWeb } from './constants/platform'\nimport { Variable, createVariable, isVariable } from './createVariable'\nimport { createTamaguiProvider } from './helpers/createTamaguiProvider'\nimport { configureMedia } from './hooks/useMedia'\nimport {\n CreateTamaguiConfig,\n GenericTamaguiConfig,\n MediaQueryKey,\n TamaguiInternalConfig,\n TamaguiProviderProps,\n} from './types'\n\nexport type CreateTamaguiProps = TamaguiProviderProps & // we omit and re-declare it because we need to allow instantation types to be flexible\n // user then re-defines the types after createTamagui returns the typed object they want\n Partial<Omit<GenericTamaguiConfig, 'themes' | 'tokens'>> & {\n tokens: GenericTamaguiConfig['tokens']\n themes: {\n [key: string]: {\n [key: string]: string | number | Variable\n }\n }\n // for ssr/native, will default to active\n mediaQueryDefaultActive?: MediaQueryKey[]\n }\n\nconst createdConfigs = new WeakMap<any, boolean>()\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n config: Conf\n): Conf extends CreateTamaguiConfig<infer A, infer B, infer C, infer D>\n ? TamaguiInternalConfig<A, B, C, D>\n : unknown {\n // config is re-run by the @tamagui/static, dont double validate\n if (createdConfigs.has(config)) {\n return config as any\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 let tokenRule = `:root {`\n const addVar = (v: Variable) => {\n varsByValue[v.val] = v\n const rule = `--${v.name}:${typeof v.val === 'number' ? `${v.val}px` : v.val};`\n tokenRule += 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 cssRules.push(`${tokenRule}\\n}`)\n }\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\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 ? `var(--${varName});` : `${val}`};`\n }\n\n // make sure properly names theme variables\n ensureThemeVariable(theme, themeKey)\n }\n\n if (isWeb) {\n const [themeClassName, parentName] = themeName.includes('-')\n ? themeName.split('-')\n : [themeName, '']\n // tiny hack for now assuming light/dark are typical parentName\n const oppositeName = parentName === 'dark' ? 'light' : 'dark'\n const cssParentSel = parentName ? `.${PREFIX}${parentName}` : ''\n const cssChildSel = `.${PREFIX}${themeClassName}`\n const cssSel = `${cssParentSel} ${cssChildSel}`\n // we need to force specificity\n const cssRule = `${cssSel}, .${PREFIX}${oppositeName} ${cssSel} {\\n${vars}\\n}`\n cssRules.push(cssRule)\n }\n }\n\n varsByValue.clear()\n Object.freeze(cssRules)\n\n return {\n cssRules,\n css: cssRules.join('\\n'),\n }\n })()\n\n // faster lookups token keys become $keys to match input\n const tokensParsed: any = parseTokens(config.tokens)\n\n // we could do this above in theme loop\n // all themes should match key and we just need variable name\n // TODO once w react native we'd want to have a reverse lookup back to value\n const themeParsed: any = {}\n const firstKey = Object.keys(config.themes)[0]\n for (const key in config.themes[firstKey]) {\n // themeParsed[`$${key}`] = config.themes[firstKey][key]\n const val = config.themes[firstKey][key].val\n themeParsed[`$${key}`] = new Variable({ val, name: key })\n }\n\n const next: TamaguiInternalConfig = {\n shorthands: {},\n media: {},\n ...config,\n Provider: createTamaguiProvider({\n defaultTheme: 'light',\n ...config,\n }),\n themeConfig,\n themeParsed,\n tokensParsed,\n parsed: true,\n getCSS() {\n return `${themeConfig.css}\\n${[...getStyleRules()].join('\\n')}`\n },\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 if (key === 'font') {\n for (const family in tokens.font) {\n const obj = {}\n res.font[`$${family}`] = obj\n for (const attrKey in tokens.font[family]) {\n const attr = tokens.font[family][attrKey]\n if (attrKey === 'family') {\n obj[attrKey] = attr\n continue\n }\n obj[attrKey] = Object.keys(attr).reduce((acc, cur) => {\n acc[`$${cur}`] = attr[cur]\n return acc\n }, {})\n }\n }\n continue\n }\n for (const skey in tokens[key]) {\n res[key][`$${skey}`] = tokens[key][skey]\n }\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"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ const createTheme = /* @__PURE__ */ __name((theme) => theme, "createTheme");
4
+ export {
5
+ createTheme
6
+ };
7
+ //# sourceMappingURL=createTheme.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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;",
6
+ "names": []
7
+ }
@@ -1,7 +1,11 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import { createVariable } from "./createVariable";
4
+ import { validateTokens } from "./helpers/validate";
4
5
  function createTokens(tokens) {
6
+ if (process.env.NODE_ENV === "development") {
7
+ validateTokens(tokens);
8
+ }
5
9
  return setupTokens(tokens);
6
10
  }
7
11
  __name(createTokens, "createTokens");
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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\n return setupTokens(tokens) as any\n}\n\nfunction setupTokens(tokens: any) {\n return mapTokensToVariables(tokens)\n}\n\nexport const mapTokensToVariables = (\n tokens: CreateTokens,\n parentPath = ''\n): CreateTokens<Variable> => {\n const res = {}\n for (const key in tokens) {\n const 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 font: {\n [key in infer A]: {\n size: infer B\n lineHeight: infer C\n letterSpacing: infer D\n weight: infer Z\n family: infer Y\n }\n }\n color: infer E\n space: infer F\n size: infer G\n radius: infer H\n zIndex: infer J\n}\n ? {\n font: {\n [key in A]: {\n size: {\n [key in keyof B]: Variable\n }\n lineHeight: {\n [key in keyof C]: Variable\n }\n letterSpacing: {\n [key in keyof D]: Variable\n }\n weight: {\n [key in keyof Z]: Variable\n }\n family: Y\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;AAAA;AAGjB,SAAO,YAAY;AAAA;AALL;AAQhB,qBAAqB,QAAa;AAChC,SAAO,qBAAqB;AAAA;AADrB;AAIF,MAAM,uBAAuB,wBAClC,QACA,aAAa,OACc;AAC3B,QAAM,MAAM;AACZ,aAAW,OAAO,QAAQ;AACxB,UAAM,MAAM,OAAO;AACnB,UAAM,OAAO,aAAa,GAAG,cAAc,QAAQ;AACnD,QAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,UAAI,OAAO,qBAAqB,OAAO,MAAM;AAAA,WACxC;AACL,UAAI,OAAO,eAAe,EAAE,KAAK;AAAA;AAAA;AAIrC,SAAO;AAAA,GAf2B;",
6
+ "names": []
7
+ }
@@ -1,23 +1,28 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ var _a;
3
4
  import { isWeb } from "./constants/platform";
5
+ const IS_VARIABLE_SYMBOL = "__isVariable__";
4
6
  class Variable {
5
7
  constructor({ val, name }) {
6
- this.val = val;
8
+ this[_a] = true;
9
+ this.val = isVariable(val) ? val.val : val;
7
10
  this.name = name;
8
11
  this.variable = isWeb ? `var(--${name})` : this.val;
9
12
  }
10
13
  toString() {
11
- return isWeb ? this.variable : this.val;
14
+ return `${isWeb ? this.variable : this.val}`;
12
15
  }
13
16
  }
14
17
  __name(Variable, "Variable");
18
+ _a = IS_VARIABLE_SYMBOL;
15
19
  const createVariable = /* @__PURE__ */ __name((props) => new Variable(props), "createVariable");
16
20
  function isVariable(v) {
17
- return v instanceof Variable;
21
+ return v instanceof Variable || v && v[IS_VARIABLE_SYMBOL];
18
22
  }
19
23
  __name(isVariable, "isVariable");
20
24
  export {
25
+ IS_VARIABLE_SYMBOL,
21
26
  Variable,
22
27
  createVariable,
23
28
  isVariable
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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 ? `var(--${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"],
5
+ "mappings": ";;AAAA;AAAA;AAEO,MAAM,qBAAqB;AAE3B,eAAe;AAAA,EAUpB,YAAY,EAAE,KAAK,QAAoB;AANtC,eAAsB;AAQrB,SAAK,MAAM,WAAW,OAAO,IAAI,MAAM;AACvC,SAAK,OAAO;AACZ,SAAK,WAAW,QAAQ,SAAS,UAAU,KAAK;AAAA;AAAA,EAGlD,WAAW;AACT,WAAO,GAAG,QAAQ,KAAK,WAAW,KAAK;AAAA;AAAA;AAlBpC;AAJP,AAQG;AAoBI,MAAM,iBAAiB,wBAAC,UAAsB,IAAI,SAAS,QAApC;AAEvB,oBAAoB,GAAkC;AAC3D,SAAO,aAAa,YAAa,KAAK,EAAE;AAAA;AAD1B;",
6
+ "names": []
7
+ }
@@ -3,7 +3,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
  import { useInsertionEffect } from "react";
4
4
  import { getStylesAtomic } from "./getStylesAtomic";
5
5
  import { insertStyleRule } from "./insertStyleRule";
6
- let added = new Set();
6
+ let added = /* @__PURE__ */ new Set();
7
7
  function useStylesAsClassname(styles) {
8
8
  if (!useInsertionEffect) {
9
9
  return addStylesUsingClassname(styles);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/helpers/addStylesUsingClassname.tsx"],
4
- "sourcesContent": ["// @ts-ignore\nimport { useInsertionEffect } from 'react'\n\nimport { getStylesAtomic } from './getStylesAtomic'\nimport { insertStyleRule } from './insertStyleRule'\n\n// uses new useInsertionEffect for better perf if available\n\n// could be cleared occasionally\nlet added = new Set<string>()\n\nexport function useStylesAsClassname(styles: any[]) {\n if (!useInsertionEffect) {\n return addStylesUsingClassname(styles)\n } else {\n const insertions: any[] = []\n const className = addStylesUsingClassname(styles, (_, rules) => {\n for (const rule of rules) {\n insertions.push(rule)\n }\n })\n\n useInsertionEffect(() => {\n for (const ruleset of insertions) {\n insertStyleRule(ruleset)\n }\n })\n\n return className\n }\n}\n\nexport function addStylesUsingClassname(\n styles: any[],\n onAdd?: (identifier: string, rules: string[]) => any\n) {\n let className = ''\n for (const style of styles) {\n if (!style) continue\n if (Array.isArray(style)) {\n className += ' ' + addStylesUsingClassname(style)\n continue\n }\n for (const { identifier, rules } of getStylesAtomic(style)) {\n className += ` ${identifier}`\n if (added.has(identifier)) {\n continue\n }\n added.add(identifier)\n if (onAdd) {\n onAdd(identifier, rules)\n } else {\n for (const rule of rules) {\n insertStyleRule(rule)\n }\n }\n }\n }\n return className\n}\n"],
5
- "mappings": ";;AACA;AAEA;AACA;AAKA,IAAI,QAAQ,IAAI;AAET,8BAA8B,QAAe;AAClD,MAAI,CAAC,oBAAoB;AACvB,WAAO,wBAAwB;AAAA,SAC1B;AACL,UAAM,aAAoB;AAC1B,UAAM,YAAY,wBAAwB,QAAQ,CAAC,GAAG,UAAU;AAC9D,iBAAW,QAAQ,OAAO;AACxB,mBAAW,KAAK;AAAA;AAAA;AAIpB,uBAAmB,MAAM;AACvB,iBAAW,WAAW,YAAY;AAChC,wBAAgB;AAAA;AAAA;AAIpB,WAAO;AAAA;AAAA;AAjBK;AAqBT,iCACL,QACA,OACA;AACA,MAAI,YAAY;AAChB,aAAW,SAAS,QAAQ;AAC1B,QAAI,CAAC;AAAO;AACZ,QAAI,MAAM,QAAQ,QAAQ;AACxB,mBAAa,MAAM,wBAAwB;AAC3C;AAAA;AAEF,eAAW,EAAE,YAAY,WAAW,gBAAgB,QAAQ;AAC1D,mBAAa,IAAI;AACjB,UAAI,MAAM,IAAI,aAAa;AACzB;AAAA;AAEF,YAAM,IAAI;AACV,UAAI,OAAO;AACT,cAAM,YAAY;AAAA,aACb;AACL,mBAAW,QAAQ,OAAO;AACxB,0BAAgB;AAAA;AAAA;AAAA;AAAA;AAKxB,SAAO;AAAA;AA1BO;",
3
+ "sources": ["../../../src/helpers/addStylesUsingClassname.tsx"],
4
+ "sourcesContent": ["// @ts-ignore\nimport { useInsertionEffect } from 'react'\n\nimport { getStylesAtomic } from './getStylesAtomic'\nimport { insertStyleRule } from './insertStyleRule'\n\n// TODO can drop most of this code once we drop support for 17\n// uses new useInsertionEffect for better perf if available\n\n// could be cleared occasionally\nlet added = new Set<string>()\n\nexport function useStylesAsClassname(styles: any[]) {\n if (!useInsertionEffect) {\n return addStylesUsingClassname(styles)\n } else {\n const insertions: any[] = []\n const className = addStylesUsingClassname(styles, (_, rules) => {\n for (const rule of rules) {\n insertions.push(rule)\n }\n })\n\n useInsertionEffect(() => {\n for (const ruleset of insertions) {\n insertStyleRule(ruleset)\n }\n })\n\n return className\n }\n}\n\nexport function addStylesUsingClassname(\n styles: any[],\n onAdd?: (identifier: string, rules: string[]) => any\n) {\n let className = ''\n for (const style of styles) {\n if (!style) continue\n if (Array.isArray(style)) {\n className += ' ' + addStylesUsingClassname(style)\n continue\n }\n for (const { identifier, rules } of getStylesAtomic(style)) {\n className += ` ${identifier}`\n if (added.has(identifier)) {\n continue\n }\n added.add(identifier)\n if (onAdd) {\n onAdd(identifier, rules)\n } else {\n for (const rule of rules) {\n insertStyleRule(rule)\n }\n }\n }\n }\n return className\n}\n"],
5
+ "mappings": ";;AACA;AAEA;AACA;AAMA,IAAI,QAAQ,oBAAI;AAET,8BAA8B,QAAe;AAClD,MAAI,CAAC,oBAAoB;AACvB,WAAO,wBAAwB;AAAA,SAC1B;AACL,UAAM,aAAoB;AAC1B,UAAM,YAAY,wBAAwB,QAAQ,CAAC,GAAG,UAAU;AAC9D,iBAAW,QAAQ,OAAO;AACxB,mBAAW,KAAK;AAAA;AAAA;AAIpB,uBAAmB,MAAM;AACvB,iBAAW,WAAW,YAAY;AAChC,wBAAgB;AAAA;AAAA;AAIpB,WAAO;AAAA;AAAA;AAjBK;AAqBT,iCACL,QACA,OACA;AACA,MAAI,YAAY;AAChB,aAAW,SAAS,QAAQ;AAC1B,QAAI,CAAC;AAAO;AACZ,QAAI,MAAM,QAAQ,QAAQ;AACxB,mBAAa,MAAM,wBAAwB;AAC3C;AAAA;AAEF,eAAW,EAAE,YAAY,WAAW,gBAAgB,QAAQ;AAC1D,mBAAa,IAAI;AACjB,UAAI,MAAM,IAAI,aAAa;AACzB;AAAA;AAEF,YAAM,IAAI;AACV,UAAI,OAAO;AACT,cAAM,YAAY;AAAA,aACb;AACL,mBAAW,QAAQ,OAAO;AACxB,0BAAgB;AAAA;AAAA;AAAA;AAAA;AAKxB,SAAO;AAAA;AA1BO;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/helpers/createMediaStyle.ts"],
3
+ "sources": ["../../../src/helpers/createMediaStyle.ts"],
4
4
  "sourcesContent": ["import { StyleObject } from '@tamagui/helpers'\n\nimport { mediaObjectToString } from '../hooks/useMedia'\nimport { MediaQueries } from '../types'\n\n// TODO have this be used by extractMediaStyle in tamagui static\n\n// not synced to static/constants for now\nexport const MEDIA_SEP = '_'\n\nexport const createMediaStyle = (\n { identifier, rules }: StyleObject,\n mediaKey: string,\n mediaQueries: MediaQueries,\n negate?: boolean,\n importance = 0\n) => {\n const mediaKeys = Object.keys(mediaQueries)\n const mediaKeyPrecendence = mediaKeys.reduce((acc, cur, i) => {\n acc[cur] = new Array(importance + 1).fill(':root').join('')\n return acc\n }, {})\n const negKey = negate ? '0' : ''\n const ogPrefix = identifier.slice(0, identifier.indexOf('-') + 1)\n const nextIdentifier = `${identifier.replace(\n ogPrefix,\n `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`\n )}`\n const screenStr = negate ? 'not all' : 'screen'\n const mediaSelector = mediaObjectToString(mediaQueries[mediaKey])\n const mediaQuery = `${screenStr} and ${mediaSelector}`\n const precendencePrefix = mediaKeyPrecendence[mediaKey]\n const styleInner = rules[0].replace(identifier, nextIdentifier)\n // combines media queries if they already exist\n let styleRule = ''\n if (styleInner.includes('@media')) {\n // combine\n styleRule = styleInner.replace('{', ` and ${mediaQuery} {`)\n } else {\n styleRule = `@media ${mediaQuery} { ${precendencePrefix} ${styleInner} }`\n }\n return {\n styleRule,\n identifier: nextIdentifier,\n }\n}\n"],
5
5
  "mappings": ";;AAEA;AAMO,MAAM,YAAY;AAElB,MAAM,mBAAmB,wBAC9B,EAAE,YAAY,SACd,UACA,cACA,QACA,aAAa,MACV;AACH,QAAM,YAAY,OAAO,KAAK;AAC9B,QAAM,sBAAsB,UAAU,OAAO,CAAC,KAAK,KAAK,MAAM;AAC5D,QAAI,OAAO,IAAI,MAAM,aAAa,GAAG,KAAK,SAAS,KAAK;AACxD,WAAO;AAAA,KACN;AACH,QAAM,SAAS,SAAS,MAAM;AAC9B,QAAM,WAAW,WAAW,MAAM,GAAG,WAAW,QAAQ,OAAO;AAC/D,QAAM,iBAAiB,GAAG,WAAW,QACnC,UACA,GAAG,WAAW,YAAY,WAAW,SAAS;AAEhD,QAAM,YAAY,SAAS,YAAY;AACvC,QAAM,gBAAgB,oBAAoB,aAAa;AACvD,QAAM,aAAa,GAAG,iBAAiB;AACvC,QAAM,oBAAoB,oBAAoB;AAC9C,QAAM,aAAa,MAAM,GAAG,QAAQ,YAAY;AAEhD,MAAI,YAAY;AAChB,MAAI,WAAW,SAAS,WAAW;AAEjC,gBAAY,WAAW,QAAQ,KAAK,QAAQ;AAAA,SACvC;AACL,gBAAY,UAAU,gBAAgB,qBAAqB;AAAA;AAE7D,SAAO;AAAA,IACL;AAAA,IACA,YAAY;AAAA;AAAA,GAjCgB;",
6
6
  "names": []
@@ -1,14 +1,16 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- import { getTamaguiConfig } from "../createTamagui";
4
- import { Variable } from "../createVariable";
3
+ import { getTamagui } from "../conf";
4
+ import { isWeb } from "../constants/platform";
5
+ import { isVariable } from "../createVariable";
5
6
  import { isObj } from "./isObj";
6
7
  const createPropMapper = /* @__PURE__ */ __name((c) => {
7
8
  const variants = c.variants;
8
9
  let variantsParsed;
9
10
  const defaultProps = c.defaultProps || {};
10
11
  return (key, value, theme, props) => {
11
- const conf = getTamaguiConfig();
12
+ var _a, _b;
13
+ const conf = getTamagui();
12
14
  if (!conf) {
13
15
  console.trace("no conf! err");
14
16
  return;
@@ -17,12 +19,15 @@ const createPropMapper = /* @__PURE__ */ __name((c) => {
17
19
  variantsParsed = parseVariants(variants, conf);
18
20
  }
19
21
  let fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
20
- const variant = variantsParsed?.[key];
22
+ const variant = variantsParsed == null ? void 0 : variantsParsed[key];
21
23
  if (variant && typeof value !== "undefined") {
22
- const val = value === true ? variant["$true"] || variant["true"] : variant[value] ?? variant["..."] ?? value;
23
- const res = typeof val === "function" ? val(value, { tokens: conf.tokensParsed, theme, props }) : isObj(val) ? { ...val } : val;
24
+ const val = value === true ? variant["$true"] || variant["true"] : (_b = (_a = variant[value]) != null ? _a : variant["..."]) != null ? _b : value;
25
+ let res = val;
26
+ if (typeof res === "function") {
27
+ res = res(value, { tokens: conf.tokensParsed, theme, props });
28
+ }
24
29
  if (isObj(res)) {
25
- resolveTokens(res, conf, fontFamily);
30
+ res = resolveTokens(res, conf, theme, fontFamily);
26
31
  }
27
32
  return res;
28
33
  }
@@ -33,9 +38,9 @@ const createPropMapper = /* @__PURE__ */ __name((c) => {
33
38
  }
34
39
  if (value && value[0] === "$") {
35
40
  shouldReturn = true;
36
- value = getToken(key, value, conf, fontFamily);
41
+ value = getToken(key, value, conf, theme, fontFamily);
37
42
  }
38
- if (value instanceof Variable) {
43
+ if (isVariable(value)) {
39
44
  shouldReturn = true;
40
45
  value = value.variable;
41
46
  }
@@ -46,44 +51,56 @@ const createPropMapper = /* @__PURE__ */ __name((c) => {
46
51
  }
47
52
  };
48
53
  }, "createPropMapper");
49
- const resolveTokens = /* @__PURE__ */ __name((res, conf, fontFamily) => {
50
- for (const rKey in res) {
54
+ const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily) => {
55
+ var _a;
56
+ let res = {};
57
+ for (const rKey in input) {
51
58
  const fKey = conf.shorthands[rKey] || rKey;
52
- const val = res[rKey];
53
- if (val instanceof Variable) {
59
+ const val = input[rKey];
60
+ if (isVariable(val)) {
54
61
  res[fKey] = val.variable;
55
62
  } else if (typeof val === "string") {
56
- const fVal = val[0] === "$" ? getToken(fKey, val, conf, fontFamily) : val;
63
+ const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily) : val;
57
64
  res[fKey] = fVal;
58
65
  } else {
59
66
  if (isObj(val)) {
60
- resolveTokens(val, conf, fontFamily);
67
+ res[fKey] = resolveTokens(val, conf, theme, fontFamily);
68
+ } else {
69
+ res[fKey] = input[fKey];
70
+ }
71
+ }
72
+ if (process.env.NODE_ENV === "development") {
73
+ if (((_a = res[fKey]) == null ? void 0 : _a[0]) === "$") {
74
+ console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey]);
61
75
  }
62
76
  }
63
77
  }
78
+ return res;
64
79
  }, "resolveTokens");
65
- const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, themeParsed }, fontFamily = "$body") => {
66
- if (themeParsed[value]) {
67
- return themeParsed[value].variable;
80
+ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, themeParsed }, theme, fontFamily = "$body") => {
81
+ var _a, _b, _c, _d, _e;
82
+ const tokenVal = themeParsed[value];
83
+ if (tokenVal) {
84
+ return isWeb && tokenVal.variable ? tokenVal.variable : tokenVal.val;
68
85
  }
69
86
  let valOrVar;
70
87
  if (key === "fontFamily") {
71
- valOrVar = tokensParsed.font[value]?.family || value;
88
+ valOrVar = ((_a = tokensParsed.font[value]) == null ? void 0 : _a.family) || value;
72
89
  }
73
90
  if (key === "fontSize") {
74
- valOrVar = tokensParsed.font[fontFamily]?.size[value] || value;
91
+ valOrVar = ((_b = tokensParsed.font[fontFamily]) == null ? void 0 : _b.size[value]) || value;
75
92
  }
76
93
  if (key === "lineHeight") {
77
- valOrVar = tokensParsed.font[fontFamily]?.lineHeight[value] || value;
94
+ valOrVar = ((_c = tokensParsed.font[fontFamily]) == null ? void 0 : _c.lineHeight[value]) || value;
78
95
  }
79
96
  if (key === "letterSpacing") {
80
- valOrVar = tokensParsed.font[fontFamily]?.letterSpacing[value] || value;
97
+ valOrVar = ((_d = tokensParsed.font[fontFamily]) == null ? void 0 : _d.letterSpacing[value]) || value;
81
98
  }
82
99
  if (key === "fontWeight") {
83
- valOrVar = tokensParsed.font[fontFamily]?.weight[value] || value;
100
+ valOrVar = ((_e = tokensParsed.font[fontFamily]) == null ? void 0 : _e.weight[value]) || value;
84
101
  }
85
102
  if (typeof valOrVar !== "undefined") {
86
- if (valOrVar instanceof Variable) {
103
+ if (isVariable(valOrVar)) {
87
104
  return valOrVar.variable;
88
105
  } else {
89
106
  return valOrVar;
@@ -106,9 +123,16 @@ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, themeParsed
106
123
  if (spaceVar) {
107
124
  return spaceVar.variable;
108
125
  }
126
+ if (value && value[0] === "$") {
127
+ console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, value);
128
+ return null;
129
+ }
109
130
  return value;
110
131
  }, "getToken");
111
132
  const tokenCategories = {
133
+ radius: {
134
+ borderRadius: true
135
+ },
112
136
  size: {
113
137
  width: true,
114
138
  height: true,