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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/dist/cjs/Tamagui.js +18 -1
  2. package/dist/cjs/Tamagui.js.map +2 -2
  3. package/dist/cjs/ThemeContext.js +4 -0
  4. package/dist/cjs/ThemeContext.js.map +0 -0
  5. package/dist/cjs/ThemeManager.js +30 -14
  6. package/dist/cjs/ThemeManager.js.map +2 -2
  7. package/dist/cjs/conf.js +10 -1
  8. package/dist/cjs/conf.js.map +2 -2
  9. package/dist/cjs/constants/constants.js +6 -0
  10. package/dist/cjs/constants/constants.js.map +0 -0
  11. package/dist/cjs/constants/platform.js +15 -0
  12. package/dist/cjs/constants/platform.js.map +2 -2
  13. package/dist/cjs/constants/rnw.js +4 -0
  14. package/dist/cjs/constants/rnw.js.map +0 -0
  15. package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
  16. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +0 -0
  17. package/dist/cjs/createComponent.js +136 -128
  18. package/dist/cjs/createComponent.js.map +2 -2
  19. package/dist/cjs/createFont.js +4 -0
  20. package/dist/cjs/createFont.js.map +0 -0
  21. package/dist/cjs/createShorthands.js +4 -0
  22. package/dist/cjs/createShorthands.js.map +0 -0
  23. package/dist/cjs/createTamagui.js +38 -18
  24. package/dist/cjs/createTamagui.js.map +2 -2
  25. package/dist/cjs/createTheme.js +4 -0
  26. package/dist/cjs/createTheme.js.map +0 -0
  27. package/dist/cjs/createTokens.js +7 -6
  28. package/dist/cjs/createTokens.js.map +2 -2
  29. package/dist/cjs/createVariable.js +18 -2
  30. package/dist/cjs/createVariable.js.map +2 -2
  31. package/dist/cjs/defaultComponentState.js +0 -30
  32. package/dist/cjs/defaultComponentState.js.map +3 -3
  33. package/dist/cjs/helpers/RNComponents.js +38 -0
  34. package/dist/cjs/helpers/RNComponents.js.map +7 -0
  35. package/dist/cjs/helpers/addStylesUsingClassname.js +8 -0
  36. package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
  37. package/dist/cjs/helpers/areEqualSets.js +4 -0
  38. package/dist/cjs/helpers/areEqualSets.js.map +0 -0
  39. package/dist/cjs/helpers/createMediaStyle.js +5 -0
  40. package/dist/cjs/helpers/createMediaStyle.js.map +0 -0
  41. package/dist/cjs/helpers/createPropMapper.js +63 -61
  42. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  43. package/dist/cjs/helpers/createShallowUpdate.js +55 -0
  44. package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
  45. package/dist/cjs/helpers/createTamaguiProvider.js +5 -5
  46. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  47. package/dist/cjs/helpers/extendStaticConfig.js +9 -6
  48. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  49. package/dist/cjs/helpers/fixNativeShadow.js +4 -0
  50. package/dist/cjs/helpers/fixNativeShadow.js.map +0 -0
  51. package/dist/cjs/helpers/fixNativeShadow.native.js +6 -2
  52. package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
  53. package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
  54. package/dist/cjs/helpers/getExpandedShorthands.js.map +0 -0
  55. package/dist/cjs/helpers/getSplitStyles.js +111 -61
  56. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  57. package/dist/cjs/helpers/getStylesAtomic.js +20 -2
  58. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  59. package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
  60. package/dist/cjs/helpers/getStylesAtomic.native.js.map +0 -0
  61. package/dist/cjs/helpers/insertStyleRule.js +46 -26
  62. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  63. package/dist/cjs/helpers/isObj.js +4 -0
  64. package/dist/cjs/helpers/isObj.js.map +0 -0
  65. package/dist/cjs/helpers/isTamaguiElement.js +4 -0
  66. package/dist/cjs/helpers/isTamaguiElement.js.map +0 -0
  67. package/dist/cjs/helpers/matchMedia.js +4 -0
  68. package/dist/cjs/helpers/matchMedia.js.map +0 -0
  69. package/dist/cjs/helpers/matchMedia.native.js +4 -0
  70. package/dist/cjs/helpers/matchMedia.native.js.map +0 -0
  71. package/dist/cjs/helpers/proxyThemeVariables.js +40 -0
  72. package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
  73. package/dist/cjs/helpers/themeable.js +7 -2
  74. package/dist/cjs/helpers/themeable.js.map +2 -2
  75. package/dist/cjs/helpers/validate.js +53 -11
  76. package/dist/cjs/helpers/validate.js.map +2 -2
  77. package/dist/cjs/helpers/withStaticProperties.js +4 -0
  78. package/dist/cjs/helpers/withStaticProperties.js.map +0 -0
  79. package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
  80. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +0 -0
  81. package/dist/cjs/hooks/useConstant.js +4 -0
  82. package/dist/cjs/hooks/useConstant.js.map +0 -0
  83. package/dist/cjs/hooks/useFeatures.js +101 -12
  84. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  85. package/dist/cjs/hooks/useIsMounted.js +4 -0
  86. package/dist/cjs/hooks/useIsMounted.js.map +0 -0
  87. package/dist/cjs/hooks/useIsTouchDevice.js +4 -0
  88. package/dist/cjs/hooks/useIsTouchDevice.js.map +0 -0
  89. package/dist/cjs/hooks/useMedia.js +31 -12
  90. package/dist/cjs/hooks/useMedia.js.map +2 -2
  91. package/dist/cjs/hooks/usePressable.js +4 -0
  92. package/dist/cjs/hooks/usePressable.js.map +0 -0
  93. package/dist/cjs/hooks/useTheme.js +36 -23
  94. package/dist/cjs/hooks/useTheme.js.map +2 -2
  95. package/dist/cjs/hooks/useUnmountEffect.js +4 -0
  96. package/dist/cjs/hooks/useUnmountEffect.js.map +0 -0
  97. package/dist/cjs/index.js +14 -0
  98. package/dist/cjs/index.js.map +2 -2
  99. package/dist/cjs/static.js +3 -0
  100. package/dist/cjs/static.js.map +2 -2
  101. package/dist/cjs/styled.js +8 -15
  102. package/dist/cjs/styled.js.map +2 -2
  103. package/dist/cjs/types-rnw.js +0 -0
  104. package/dist/cjs/types-rnw.js.map +1 -1
  105. package/dist/cjs/types.js +0 -0
  106. package/dist/cjs/types.js.map +1 -1
  107. package/dist/cjs/views/Stack.js +5 -0
  108. package/dist/cjs/views/Stack.js.map +2 -2
  109. package/dist/cjs/views/Text.js +5 -0
  110. package/dist/cjs/views/Text.js.map +2 -2
  111. package/dist/cjs/views/TextAncestorContext.js +6 -0
  112. package/dist/cjs/views/TextAncestorContext.js.map +0 -0
  113. package/dist/cjs/views/Theme.js +11 -4
  114. package/dist/cjs/views/Theme.js.map +2 -2
  115. package/dist/cjs/views/ThemeInverse.js +5 -0
  116. package/dist/cjs/views/ThemeInverse.js.map +0 -0
  117. package/dist/cjs/views/ThemeProvider.js +4 -0
  118. package/dist/cjs/views/ThemeProvider.js.map +0 -0
  119. package/dist/cjs/views/ThemeReset.js +4 -0
  120. package/dist/cjs/views/ThemeReset.js.map +0 -0
  121. package/dist/esm/Tamagui.js +10 -2
  122. package/dist/esm/Tamagui.js.map +2 -2
  123. package/dist/esm/ThemeContext.js +0 -0
  124. package/dist/esm/ThemeContext.js.map +0 -0
  125. package/dist/esm/ThemeManager.js +21 -11
  126. package/dist/esm/ThemeManager.js.map +2 -2
  127. package/dist/esm/conf.js +0 -1
  128. package/dist/esm/conf.js.map +2 -2
  129. package/dist/esm/constants/constants.js +0 -0
  130. package/dist/esm/constants/constants.js.map +0 -0
  131. package/dist/esm/constants/platform.js +2 -0
  132. package/dist/esm/constants/platform.js.map +2 -2
  133. package/dist/esm/constants/rnw.js +0 -0
  134. package/dist/esm/constants/rnw.js.map +0 -0
  135. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -0
  136. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +0 -0
  137. package/dist/esm/createComponent.js +126 -131
  138. package/dist/esm/createComponent.js.map +2 -2
  139. package/dist/esm/createFont.js +0 -0
  140. package/dist/esm/createFont.js.map +0 -0
  141. package/dist/esm/createShorthands.js +0 -0
  142. package/dist/esm/createShorthands.js.map +0 -0
  143. package/dist/esm/createTamagui.js +34 -18
  144. package/dist/esm/createTamagui.js.map +2 -2
  145. package/dist/esm/createTheme.js +0 -0
  146. package/dist/esm/createTheme.js.map +0 -0
  147. package/dist/esm/createTokens.js +2 -6
  148. package/dist/esm/createTokens.js.map +2 -2
  149. package/dist/esm/createVariable.js +8 -2
  150. package/dist/esm/createVariable.js.map +2 -2
  151. package/dist/esm/defaultComponentState.js +0 -11
  152. package/dist/esm/defaultComponentState.js.map +3 -3
  153. package/dist/esm/helpers/RNComponents.js +12 -0
  154. package/dist/esm/helpers/RNComponents.js.map +7 -0
  155. package/dist/esm/helpers/addStylesUsingClassname.js +4 -1
  156. package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
  157. package/dist/esm/helpers/areEqualSets.js +0 -0
  158. package/dist/esm/helpers/areEqualSets.js.map +0 -0
  159. package/dist/esm/helpers/createMediaStyle.js +0 -0
  160. package/dist/esm/helpers/createMediaStyle.js.map +0 -0
  161. package/dist/esm/helpers/createPropMapper.js +59 -61
  162. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  163. package/dist/esm/helpers/createShallowUpdate.js +19 -0
  164. package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
  165. package/dist/esm/helpers/createTamaguiProvider.js +1 -4
  166. package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
  167. package/dist/esm/helpers/extendStaticConfig.js +9 -6
  168. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  169. package/dist/esm/helpers/fixNativeShadow.js +0 -0
  170. package/dist/esm/helpers/fixNativeShadow.js.map +0 -0
  171. package/dist/esm/helpers/fixNativeShadow.native.js +2 -2
  172. package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
  173. package/dist/esm/helpers/getExpandedShorthands.js +0 -0
  174. package/dist/esm/helpers/getExpandedShorthands.js.map +0 -0
  175. package/dist/esm/helpers/getSplitStyles.js +107 -63
  176. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  177. package/dist/esm/helpers/getStylesAtomic.js +15 -2
  178. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  179. package/dist/esm/helpers/getStylesAtomic.native.js +0 -0
  180. package/dist/esm/helpers/getStylesAtomic.native.js.map +0 -0
  181. package/dist/esm/helpers/insertStyleRule.js +36 -26
  182. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  183. package/dist/esm/helpers/isObj.js +0 -0
  184. package/dist/esm/helpers/isObj.js.map +0 -0
  185. package/dist/esm/helpers/isTamaguiElement.js +0 -0
  186. package/dist/esm/helpers/isTamaguiElement.js.map +0 -0
  187. package/dist/esm/helpers/matchMedia.js +0 -0
  188. package/dist/esm/helpers/matchMedia.js.map +0 -0
  189. package/dist/esm/helpers/matchMedia.native.js +0 -0
  190. package/dist/esm/helpers/matchMedia.native.js.map +0 -0
  191. package/dist/esm/helpers/proxyThemeVariables.js +18 -0
  192. package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
  193. package/dist/esm/helpers/themeable.js +3 -2
  194. package/dist/esm/helpers/themeable.js.map +2 -2
  195. package/dist/esm/helpers/validate.js +24 -11
  196. package/dist/esm/helpers/validate.js.map +2 -2
  197. package/dist/esm/helpers/withStaticProperties.js +0 -0
  198. package/dist/esm/helpers/withStaticProperties.js.map +0 -0
  199. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -0
  200. package/dist/esm/helpers/wrapThemeManagerContext.js.map +0 -0
  201. package/dist/esm/hooks/useConstant.js +0 -0
  202. package/dist/esm/hooks/useConstant.js.map +0 -0
  203. package/dist/esm/hooks/useFeatures.js +96 -17
  204. package/dist/esm/hooks/useFeatures.js.map +2 -2
  205. package/dist/esm/hooks/useIsMounted.js +0 -0
  206. package/dist/esm/hooks/useIsMounted.js.map +0 -0
  207. package/dist/esm/hooks/useIsTouchDevice.js +0 -0
  208. package/dist/esm/hooks/useIsTouchDevice.js.map +0 -0
  209. package/dist/esm/hooks/useMedia.js +20 -12
  210. package/dist/esm/hooks/useMedia.js.map +2 -2
  211. package/dist/esm/hooks/usePressable.js +0 -0
  212. package/dist/esm/hooks/usePressable.js.map +0 -0
  213. package/dist/esm/hooks/useTheme.js +28 -23
  214. package/dist/esm/hooks/useTheme.js.map +2 -2
  215. package/dist/esm/hooks/useUnmountEffect.js +0 -0
  216. package/dist/esm/hooks/useUnmountEffect.js.map +0 -0
  217. package/dist/esm/index.js +3 -0
  218. package/dist/esm/index.js.map +2 -2
  219. package/dist/esm/static.js +3 -0
  220. package/dist/esm/static.js.map +2 -2
  221. package/dist/esm/styled.js +4 -12
  222. package/dist/esm/styled.js.map +2 -2
  223. package/dist/esm/types-rnw.js +0 -0
  224. package/dist/esm/types-rnw.js.map +0 -0
  225. package/dist/esm/types.js +0 -0
  226. package/dist/esm/types.js.map +0 -0
  227. package/dist/esm/views/Stack.js +1 -0
  228. package/dist/esm/views/Stack.js.map +2 -2
  229. package/dist/esm/views/Text.js +1 -0
  230. package/dist/esm/views/Text.js.map +2 -2
  231. package/dist/esm/views/TextAncestorContext.js +0 -0
  232. package/dist/esm/views/TextAncestorContext.js.map +0 -0
  233. package/dist/esm/views/Theme.js +7 -4
  234. package/dist/esm/views/Theme.js.map +2 -2
  235. package/dist/esm/views/ThemeInverse.js +0 -0
  236. package/dist/esm/views/ThemeInverse.js.map +0 -0
  237. package/dist/esm/views/ThemeProvider.js +0 -0
  238. package/dist/esm/views/ThemeProvider.js.map +0 -0
  239. package/dist/esm/views/ThemeReset.js +0 -0
  240. package/dist/esm/views/ThemeReset.js.map +0 -0
  241. package/dist/jsx/Tamagui.js +10 -2
  242. package/dist/jsx/ThemeContext.js +0 -0
  243. package/dist/jsx/ThemeManager.js +21 -11
  244. package/dist/jsx/conf.js +0 -1
  245. package/dist/jsx/constants/constants.js +0 -0
  246. package/dist/jsx/constants/platform.js +2 -0
  247. package/dist/jsx/constants/rnw.js +0 -0
  248. package/dist/jsx/contexts/ButtonInsideButtonContext.js +0 -0
  249. package/dist/jsx/createComponent.js +119 -125
  250. package/dist/jsx/createFont.js +0 -0
  251. package/dist/jsx/createShorthands.js +0 -0
  252. package/dist/jsx/createTamagui.js +34 -18
  253. package/dist/jsx/createTheme.js +0 -0
  254. package/dist/jsx/createTokens.js +2 -6
  255. package/dist/jsx/createVariable.js +8 -2
  256. package/dist/jsx/defaultComponentState.js +0 -11
  257. package/dist/jsx/helpers/RNComponents.js +11 -0
  258. package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
  259. package/dist/jsx/helpers/areEqualSets.js +0 -0
  260. package/dist/jsx/helpers/createMediaStyle.js +0 -0
  261. package/dist/jsx/helpers/createPropMapper.js +59 -61
  262. package/dist/jsx/helpers/createShallowUpdate.js +18 -0
  263. package/dist/jsx/helpers/createTamaguiProvider.js +1 -2
  264. package/dist/jsx/helpers/extendStaticConfig.js +9 -6
  265. package/dist/jsx/helpers/fixNativeShadow.js +0 -0
  266. package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
  267. package/dist/jsx/helpers/getExpandedShorthands.js +0 -0
  268. package/dist/jsx/helpers/getSplitStyles.js +107 -63
  269. package/dist/jsx/helpers/getStylesAtomic.js +15 -2
  270. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -0
  271. package/dist/jsx/helpers/insertStyleRule.js +36 -26
  272. package/dist/jsx/helpers/isObj.js +0 -0
  273. package/dist/jsx/helpers/isTamaguiElement.js +0 -0
  274. package/dist/jsx/helpers/matchMedia.js +0 -0
  275. package/dist/jsx/helpers/matchMedia.native.js +0 -0
  276. package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
  277. package/dist/jsx/helpers/themeable.js +3 -3
  278. package/dist/jsx/helpers/validate.js +24 -11
  279. package/dist/jsx/helpers/withStaticProperties.js +0 -0
  280. package/dist/jsx/helpers/wrapThemeManagerContext.js +0 -0
  281. package/dist/jsx/hooks/useConstant.js +0 -0
  282. package/dist/jsx/hooks/useFeatures.js +96 -17
  283. package/dist/jsx/hooks/useIsMounted.js +0 -0
  284. package/dist/jsx/hooks/useIsTouchDevice.js +0 -0
  285. package/dist/jsx/hooks/useMedia.js +20 -12
  286. package/dist/jsx/hooks/usePressable.js +0 -0
  287. package/dist/jsx/hooks/useTheme.js +28 -23
  288. package/dist/jsx/hooks/useUnmountEffect.js +0 -0
  289. package/dist/jsx/index.js +3 -0
  290. package/dist/jsx/static.js +3 -0
  291. package/dist/jsx/styled.js +4 -12
  292. package/dist/jsx/types-rnw.js +0 -0
  293. package/dist/jsx/types.js +0 -0
  294. package/dist/jsx/views/Stack.js +1 -0
  295. package/dist/jsx/views/Text.js +1 -0
  296. package/dist/jsx/views/TextAncestorContext.js +0 -0
  297. package/dist/jsx/views/Theme.js +7 -4
  298. package/dist/jsx/views/ThemeInverse.js +0 -0
  299. package/dist/jsx/views/ThemeProvider.js +0 -0
  300. package/dist/jsx/views/ThemeReset.js +0 -0
  301. package/package.json +6 -6
  302. package/types/Tamagui.d.ts +18 -1
  303. package/types/Tamagui.d.ts.map +1 -1
  304. package/types/ThemeManager.d.ts +3 -3
  305. package/types/ThemeManager.d.ts.map +1 -1
  306. package/types/conf.d.ts +2 -0
  307. package/types/conf.d.ts.map +1 -1
  308. package/types/constants/platform.d.ts +1 -0
  309. package/types/constants/platform.d.ts.map +1 -1
  310. package/types/createComponent.d.ts +5 -7
  311. package/types/createComponent.d.ts.map +1 -1
  312. package/types/createFont.d.ts +1 -1
  313. package/types/createFont.d.ts.map +1 -1
  314. package/types/createTamagui.d.ts +1 -1
  315. package/types/createTamagui.d.ts.map +1 -1
  316. package/types/createTokens.d.ts +0 -26
  317. package/types/createTokens.d.ts.map +1 -1
  318. package/types/createVariable.d.ts +1 -0
  319. package/types/createVariable.d.ts.map +1 -1
  320. package/types/defaultComponentState.d.ts +0 -12
  321. package/types/defaultComponentState.d.ts.map +1 -1
  322. package/types/helpers/RNComponents.d.ts +2 -0
  323. package/types/helpers/RNComponents.d.ts.map +1 -0
  324. package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
  325. package/types/helpers/createPropMapper.d.ts +2 -2
  326. package/types/helpers/createPropMapper.d.ts.map +1 -1
  327. package/types/helpers/createShallowUpdate.d.ts +4 -0
  328. package/types/helpers/createShallowUpdate.d.ts.map +1 -0
  329. package/types/helpers/createTamaguiProvider.d.ts +1 -1
  330. package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
  331. package/types/helpers/extendStaticConfig.d.ts +2 -2
  332. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  333. package/types/helpers/getSplitStyles.d.ts +6 -14
  334. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  335. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  336. package/types/helpers/insertStyleRule.d.ts +2 -1
  337. package/types/helpers/insertStyleRule.d.ts.map +1 -1
  338. package/types/helpers/proxyThemeVariables.d.ts +2 -0
  339. package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
  340. package/types/helpers/themeable.d.ts +3 -1
  341. package/types/helpers/themeable.d.ts.map +1 -1
  342. package/types/helpers/validate.d.ts.map +1 -1
  343. package/types/hooks/useFeatures.d.ts +7 -5
  344. package/types/hooks/useFeatures.d.ts.map +1 -1
  345. package/types/hooks/useMedia.d.ts +3 -3
  346. package/types/hooks/useMedia.d.ts.map +1 -1
  347. package/types/hooks/useTheme.d.ts +1 -1
  348. package/types/hooks/useTheme.d.ts.map +1 -1
  349. package/types/index.d.ts +1 -0
  350. package/types/index.d.ts.map +1 -1
  351. package/types/static.d.ts +3 -0
  352. package/types/static.d.ts.map +1 -1
  353. package/types/styled.d.ts +13 -8
  354. package/types/styled.d.ts.map +1 -1
  355. package/types/types-rnw.d.ts +0 -5
  356. package/types/types-rnw.d.ts.map +1 -1
  357. package/types/types.d.ts +144 -103
  358. package/types/types.d.ts.map +1 -1
  359. package/types/views/Stack.d.ts +2 -2
  360. package/types/views/Stack.d.ts.map +1 -1
  361. package/types/views/Text.d.ts +2 -2
  362. package/types/views/Text.d.ts.map +1 -1
  363. package/types/views/Theme.d.ts +1 -0
  364. package/types/views/Theme.d.ts.map +1 -1
  365. package/dist/cjs/spacedChildren.js +0 -86
  366. package/dist/cjs/spacedChildren.js.map +0 -7
  367. package/dist/esm/spacedChildren.js +0 -52
  368. package/dist/esm/spacedChildren.js.map +0 -7
  369. package/dist/jsx/spacedChildren.js +0 -44
  370. package/types/spacedChildren.d.ts +0 -9
  371. package/types/spacedChildren.d.ts.map +0 -1
@@ -25,4 +25,8 @@ function createShorthands(shorthands) {
25
25
  return Object.freeze(shorthands);
26
26
  }
27
27
  __name(createShorthands, "createShorthands");
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ createShorthands
31
+ });
28
32
  //# sourceMappingURL=createShorthands.js.map
File without changes
@@ -50,6 +50,14 @@ function createTamagui(config) {
50
50
  if (createdConfigs.has(config)) {
51
51
  return config;
52
52
  }
53
+ if (process.env.NODE_ENV === "development") {
54
+ if (!config.tokens) {
55
+ throw new Error(`No tokens provided to Tamagui config`);
56
+ }
57
+ if (!config.themes) {
58
+ throw new Error(`No themes provided to Tamagui config`);
59
+ }
60
+ }
53
61
  if ((0, import_conf.getHasConfigured)()) {
54
62
  console.warn("Called createTamagui twice! Should never do so");
55
63
  }
@@ -77,6 +85,7 @@ function createTamagui(config) {
77
85
  addVar(val[fkey]);
78
86
  } else {
79
87
  for (const fskey in val[fkey]) {
88
+ console.log("add", fkey, fskey, val[fkey][fskey]);
80
89
  addVar(val[fkey][fskey]);
81
90
  }
82
91
  }
@@ -136,11 +145,35 @@ ${vars}
136
145
  };
137
146
  })();
138
147
  const tokensParsed = parseTokens(config.tokens);
148
+ const fontsParsed = (() => {
149
+ if (!config.fonts) {
150
+ throw new Error(`No fonts defined!`);
151
+ }
152
+ const res = {};
153
+ for (const familyName in config.fonts) {
154
+ const family = config.fonts[familyName];
155
+ const parsed = {};
156
+ for (const attrKey in family) {
157
+ const attr = family[attrKey];
158
+ if (attrKey === "family") {
159
+ parsed[attrKey] = attr;
160
+ continue;
161
+ }
162
+ parsed[attrKey] = Object.keys(attr).reduce((acc, cur) => {
163
+ acc[`$${cur}`] = attr[cur];
164
+ return acc;
165
+ }, {});
166
+ }
167
+ res[`$${familyName}`] = parsed;
168
+ }
169
+ return res;
170
+ })();
139
171
  const getCSS = /* @__PURE__ */ __name(() => {
140
172
  return `${themeConfig.css}
141
173
  ${(0, import_insertStyleRule.getInsertedRules)().join("\n")}`;
142
174
  }, "getCSS");
143
175
  const next = __spreadProps(__spreadValues({
176
+ fonts: {},
144
177
  animations: {},
145
178
  shorthands: {},
146
179
  media: {}
@@ -149,6 +182,7 @@ ${(0, import_insertStyleRule.getInsertedRules)().join("\n")}`;
149
182
  getCSS,
150
183
  defaultTheme: "light"
151
184
  }, config)),
185
+ fontsParsed,
152
186
  themeConfig,
153
187
  tokensParsed,
154
188
  parsed: true,
@@ -167,24 +201,6 @@ const parseTokens = /* @__PURE__ */ __name((tokens) => {
167
201
  const res = {};
168
202
  for (const key in tokens) {
169
203
  res[key] = {};
170
- if (key === "font") {
171
- for (const family in tokens.font) {
172
- const obj = {};
173
- res.font[`$${family}`] = obj;
174
- for (const attrKey in tokens.font[family]) {
175
- const attr = tokens.font[family][attrKey];
176
- if (attrKey === "family") {
177
- obj[attrKey] = attr;
178
- continue;
179
- }
180
- obj[attrKey] = Object.keys(attr).reduce((acc, cur) => {
181
- acc[`$${cur}`] = attr[cur];
182
- return acc;
183
- }, {});
184
- }
185
- }
186
- continue;
187
- }
188
204
  for (const skey in tokens[key]) {
189
205
  res[key][`$${skey}`] = tokens[key][skey];
190
206
  }
@@ -208,4 +224,8 @@ function ensureThemeVariable(theme, key) {
208
224
  }
209
225
  }
210
226
  __name(ensureThemeVariable, "ensureThemeVariable");
227
+ // Annotate the CommonJS export names for ESM import in node:
228
+ 0 && (module.exports = {
229
+ createTamagui
230
+ });
211
231
  //# sourceMappingURL=createTamagui.js.map
@@ -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\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>>\n ? TamaguiInternalConfig<A, B, C, D, E>\n : unknown {\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 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\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\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.includes('dark_')\n const selector = `${CNP}${themeName}`\n const addDarkLightSels = hasDarkLight && !isDarkOrLightBase\n const selectors = [selector]\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 (addDarkLightSels) {\n const childSelector = `${CNP}${themeName.replace('dark_', '').replace('light_', '')}`\n const [stronger, weaker] = isDark ? ['dark', 'light'] : ['light', 'dark']\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 const cssRule = `${selectors.join(', ')} {\\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 const getCSS = () => {\n return `${themeConfig.css}\\n${getInsertedRules().join('\\n')}`\n }\n\n const next: TamaguiInternalConfig = {\n animations: {} as any,\n shorthands: {},\n media: {},\n ...config,\n Provider: createTamaguiProvider({\n getCSS,\n defaultTheme: 'light',\n ...config,\n }),\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 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\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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",
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\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 console.log('add', fkey, fskey, val[fkey][fskey])\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\n // console.log('themeName', themeName)\n // if (themeName === 'light_Drawer') {\n // debugger\n // }\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 ? createCSSVariable(varName) : `${val}`};`\n }\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.includes('dark_')\n const selector = `${CNP}${themeName}`\n const addDarkLightSels = hasDarkLight && !isDarkOrLightBase\n const selectors = [selector]\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 (addDarkLightSels) {\n const childSelector = `${CNP}${themeName.replace('dark_', '').replace('light_', '')}`\n const [stronger, weaker] = isDark ? ['dark', 'light'] : ['light', 'dark']\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 const cssRule = `${selectors.join(', ')} {\\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 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
6
  "names": []
7
7
  }
@@ -22,4 +22,8 @@ __export(createTheme_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(createTheme_exports);
24
24
  const createTheme = /* @__PURE__ */ __name((theme) => theme, "createTheme");
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ createTheme
28
+ });
25
29
  //# sourceMappingURL=createTheme.js.map
File without changes
@@ -28,17 +28,13 @@ function createTokens(tokens) {
28
28
  if (process.env.NODE_ENV === "development") {
29
29
  (0, import_validate.validateTokens)(tokens);
30
30
  }
31
- return setupTokens(tokens);
32
- }
33
- __name(createTokens, "createTokens");
34
- function setupTokens(tokens) {
35
31
  return mapTokensToVariables(tokens);
36
32
  }
37
- __name(setupTokens, "setupTokens");
33
+ __name(createTokens, "createTokens");
38
34
  const mapTokensToVariables = /* @__PURE__ */ __name((tokens, parentPath = "") => {
39
35
  const res = {};
40
36
  for (const key in tokens) {
41
- const val = tokens[key];
37
+ let val = tokens[key];
42
38
  const name = parentPath ? `${parentPath}-${key}` : key;
43
39
  if (val && typeof val === "object") {
44
40
  res[key] = mapTokensToVariables(tokens[key], name);
@@ -48,4 +44,9 @@ const mapTokensToVariables = /* @__PURE__ */ __name((tokens, parentPath = "") =>
48
44
  }
49
45
  return res;
50
46
  }, "mapTokensToVariables");
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ createTokens,
50
+ mapTokensToVariables
51
+ });
51
52
  //# 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\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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAyC;AACzC,sBAA+B;AAKxB,sBAA8C,QAA0B;AAC7E,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,wCAAe,MAAM;AAAA,EACvB;AAEA,SAAO,YAAY,MAAM;AAC3B;AANgB;AAQhB,qBAAqB,QAAa;AAChC,SAAO,qBAAqB,MAAM;AACpC;AAFS;AAIF,MAAM,uBAAuB,wBAClC,QACA,aAAa,OACc;AAC3B,QAAM,MAAM,CAAC;AACb,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,IAAI;AAAA,IACnD,OAAO;AACL,UAAI,OAAO,0CAAe,EAAE,KAAK,KAAK,CAAC;AAAA,IACzC;AAAA,EACF;AAEA,SAAO;AACT,GAhBoC;",
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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAyC;AACzC,sBAA+B;AAKxB,sBAA8C,QAA0B;AAC7E,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,wCAAe,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,0CAAe,EAAE,KAAK,KAAK,CAAC;AAAA,IACzC;AAAA,EACF;AAEA,SAAO;AACT,GAhBoC;",
6
6
  "names": []
7
7
  }
@@ -22,6 +22,7 @@ __export(createVariable_exports, {
22
22
  Variable: () => Variable,
23
23
  createCSSVariable: () => createCSSVariable,
24
24
  createVariable: () => createVariable,
25
+ getVariableName: () => getVariableName,
25
26
  getVariableValue: () => getVariableValue,
26
27
  isVariable: () => isVariable
27
28
  });
@@ -48,14 +49,29 @@ function isVariable(v) {
48
49
  }
49
50
  __name(isVariable, "isVariable");
50
51
  function getVariableValue(v) {
51
- if (isVariable(v)) {
52
+ if (isVariable(v))
52
53
  return v.val;
53
- }
54
54
  return v;
55
55
  }
56
56
  __name(getVariableValue, "getVariableValue");
57
+ function getVariableName(v) {
58
+ if (isVariable(v))
59
+ return v.name;
60
+ return v;
61
+ }
62
+ __name(getVariableName, "getVariableName");
57
63
  const createCSSVariable = /* @__PURE__ */ __name((val, includeVar = true) => {
58
64
  const name = val.replace(/[^a-z0-9\_\-]+/i, "_");
59
65
  return includeVar ? `var(--${name})` : name;
60
66
  }, "createCSSVariable");
67
+ // Annotate the CommonJS export names for ESM import in node:
68
+ 0 && (module.exports = {
69
+ IS_VARIABLE_SYMBOL,
70
+ Variable,
71
+ createCSSVariable,
72
+ createVariable,
73
+ getVariableName,
74
+ getVariableValue,
75
+ isVariable
76
+ });
61
77
  //# 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)) {\n return v.val\n }\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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAsB;AAAtB;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,wBAAQ,kBAAkB,IAAI,IAAI,KAAK;AAAA,EACzD;AAAA,EAEA,WAAW;AACT,WAAO,GAAG,wBAAQ,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,GAAG;AACjB,WAAO,EAAE;AAAA,EACX;AACA,SAAO;AACT;AALgB;AAQT,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 './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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAsB;AAAtB;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,wBAAQ,kBAAkB,IAAI,IAAI,KAAK;AAAA,EACzD;AAAA,EAEA,WAAW;AACT,WAAO,GAAG,wBAAQ,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;",
6
6
  "names": []
7
7
  }
@@ -1,31 +1 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var defaultComponentState_exports = {};
19
- __export(defaultComponentState_exports, {
20
- defaultComponentState: () => defaultComponentState
21
- });
22
- module.exports = __toCommonJS(defaultComponentState_exports);
23
- const defaultComponentState = {
24
- hover: false,
25
- press: false,
26
- pressIn: false,
27
- focus: false,
28
- mounted: false,
29
- animation: null
30
- };
31
1
  //# sourceMappingURL=defaultComponentState.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/defaultComponentState.tsx"],
4
- "sourcesContent": ["export type ComponentState = typeof defaultComponentState\n\nexport const defaultComponentState = {\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n // only used by enterStyle\n mounted: false,\n animation: null as null | {\n style?: any\n avoidClasses?: boolean\n },\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,wBAAwB;AAAA,EACnC,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,WAAW;AAIb;",
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,38 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var RNComponents_exports = {};
22
+ __export(RNComponents_exports, {
23
+ RNComponents: () => RNComponents
24
+ });
25
+ module.exports = __toCommonJS(RNComponents_exports);
26
+ var ReactNative = __toESM(require("react-native"));
27
+ const RNComponents = /* @__PURE__ */ new WeakMap();
28
+ for (const key of ["Image", "TextInput", "Text", "View"]) {
29
+ const val = ReactNative[key];
30
+ if (val && typeof val === "object") {
31
+ RNComponents.set(val, true);
32
+ }
33
+ }
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ RNComponents
37
+ });
38
+ //# sourceMappingURL=RNComponents.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/RNComponents.tsx"],
4
+ "sourcesContent": ["import * as ReactNative from 'react-native'\n\n// bye bye tree shaking... but only way to properly detect react-native components...\n// also neither rnw nor react support tree shaking atm\nexport const RNComponents = new WeakMap()\n\n// I was looping over all of them, but casuses deprecation warnings and there's only a few\n// we realistically support - lets whitelist rather than blacklist\nfor (const key of ['Image', 'TextInput', 'Text', 'View']) {\n const val = ReactNative[key]\n if (val && typeof val === 'object') {\n RNComponents.set(val, true)\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA6B;AAItB,MAAM,eAAe,oBAAI,QAAQ;AAIxC,WAAW,OAAO,CAAC,SAAS,aAAa,QAAQ,MAAM,GAAG;AACxD,QAAM,MAAM,YAAY;AACxB,MAAI,OAAO,OAAO,QAAQ,UAAU;AAClC,iBAAa,IAAI,KAAK,IAAI;AAAA,EAC5B;AACF;",
6
+ "names": []
7
+ }
@@ -36,6 +36,9 @@ function useStylesAsClassname(styles, disable = false, debug = false) {
36
36
  insertions.push({ identifier, rule });
37
37
  }
38
38
  });
39
+ for (const { identifier, rule } of insertions) {
40
+ (0, import_insertStyleRule.updateInsertedCache)(identifier, rule);
41
+ }
39
42
  (0, import_react.useInsertionEffect)(() => {
40
43
  for (const { identifier, rule } of insertions) {
41
44
  (0, import_insertStyleRule.insertStyleRule)(identifier, rule);
@@ -76,4 +79,9 @@ function addStylesUsingClassname(styles, debug = false, onAdd) {
76
79
  return className;
77
80
  }
78
81
  __name(addStylesUsingClassname, "addStylesUsingClassname");
82
+ // Annotate the CommonJS export names for ESM import in node:
83
+ 0 && (module.exports = {
84
+ addStylesUsingClassname,
85
+ useStylesAsClassname
86
+ });
79
87
  //# sourceMappingURL=addStylesUsingClassname.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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// 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[], disable = false, debug = false) {\n if (!useInsertionEffect) {\n return addStylesUsingClassname(disable ? styles : [], debug)\n } else {\n const insertions: any[] = []\n const className = addStylesUsingClassname(disable ? [] : styles, debug, (identifier, rules) => {\n for (const rule of rules) {\n insertions.push({ identifier, rule })\n }\n })\n useInsertionEffect(() => {\n for (const { identifier, rule } of insertions) {\n insertStyleRule(identifier, rule)\n }\n })\n return className\n }\n}\n\nexport function addStylesUsingClassname(\n styles: any[],\n debug: boolean | 'verbose' = false,\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 const atomicStyles = getStylesAtomic(style)\n if (process.env.NODE_ENV === 'development') {\n if (debug === 'verbose') {\n console.log(' atomicStyles ', atomicStyles)\n }\n }\n for (const { identifier, rules } of atomicStyles) {\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 insertStyleRule(identifier, rules[0])\n }\n }\n }\n return className\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAmC;AAEnC,6BAAgC;AAChC,6BAAgC;AAMhC,IAAI,QAAQ,oBAAI,IAAY;AAErB,8BAA8B,QAAe,UAAU,OAAO,QAAQ,OAAO;AAClF,MAAI,CAAC,iCAAoB;AACvB,WAAO,wBAAwB,UAAU,SAAS,CAAC,GAAG,KAAK;AAAA,EAC7D,OAAO;AACL,UAAM,aAAoB,CAAC;AAC3B,UAAM,YAAY,wBAAwB,UAAU,CAAC,IAAI,QAAQ,OAAO,CAAC,YAAY,UAAU;AAC7F,iBAAW,QAAQ,OAAO;AACxB,mBAAW,KAAK,EAAE,YAAY,KAAK,CAAC;AAAA,MACtC;AAAA,IACF,CAAC;AACD,yCAAmB,MAAM;AACvB,iBAAW,EAAE,YAAY,UAAU,YAAY;AAC7C,oDAAgB,YAAY,IAAI;AAAA,MAClC;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AACF;AAjBgB;AAmBT,iCACL,QACA,QAA6B,OAC7B,OACA;AACA,MAAI,YAAY;AAChB,aAAW,SAAS,QAAQ;AAC1B,QAAI,CAAC;AAAO;AACZ,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,mBAAa,MAAM,wBAAwB,KAAK;AAChD;AAAA,IACF;AACA,UAAM,eAAe,4CAAgB,KAAK;AAC1C,QAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,UAAI,UAAU,WAAW;AACvB,gBAAQ,IAAI,kBAAkB,YAAY;AAAA,MAC5C;AAAA,IACF;AACA,eAAW,EAAE,YAAY,WAAW,cAAc;AAChD,mBAAa,IAAI;AACjB,UAAI,MAAM,IAAI,UAAU,GAAG;AACzB;AAAA,MACF;AACA,YAAM,IAAI,UAAU;AACpB,UAAI,OAAO;AACT,cAAM,YAAY,KAAK;AAAA,MACzB,OAAO;AACL,oDAAgB,YAAY,MAAM,EAAE;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAhCgB;",
4
+ "sourcesContent": ["// @ts-ignore\nimport { useInsertionEffect } from 'react'\n\nimport { getStylesAtomic } from './getStylesAtomic'\nimport { insertStyleRule, updateInsertedCache } 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[], disable = false, debug = false) {\n if (!useInsertionEffect) {\n return addStylesUsingClassname(disable ? styles : [], debug)\n } else {\n const insertions: any[] = []\n const className = addStylesUsingClassname(disable ? [] : styles, debug, (identifier, rules) => {\n for (const rule of rules) {\n insertions.push({ identifier, rule })\n }\n })\n // avoid race conditions in lookups because useInsertionEffect is delayed\n for (const { identifier, rule } of insertions) {\n updateInsertedCache(identifier, rule)\n }\n useInsertionEffect(() => {\n for (const { identifier, rule } of insertions) {\n insertStyleRule(identifier, rule)\n }\n })\n return className\n }\n}\n\nexport function addStylesUsingClassname(\n styles: any[],\n debug: boolean | 'verbose' = false,\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 const atomicStyles = getStylesAtomic(style)\n if (process.env.NODE_ENV === 'development') {\n if (debug === 'verbose') {\n console.log(' atomicStyles ', atomicStyles)\n }\n }\n for (const { identifier, rules } of atomicStyles) {\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 insertStyleRule(identifier, rules[0])\n }\n }\n }\n return className\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAmC;AAEnC,6BAAgC;AAChC,6BAAqD;AAMrD,IAAI,QAAQ,oBAAI,IAAY;AAErB,8BAA8B,QAAe,UAAU,OAAO,QAAQ,OAAO;AAClF,MAAI,CAAC,iCAAoB;AACvB,WAAO,wBAAwB,UAAU,SAAS,CAAC,GAAG,KAAK;AAAA,EAC7D,OAAO;AACL,UAAM,aAAoB,CAAC;AAC3B,UAAM,YAAY,wBAAwB,UAAU,CAAC,IAAI,QAAQ,OAAO,CAAC,YAAY,UAAU;AAC7F,iBAAW,QAAQ,OAAO;AACxB,mBAAW,KAAK,EAAE,YAAY,KAAK,CAAC;AAAA,MACtC;AAAA,IACF,CAAC;AAED,eAAW,EAAE,YAAY,UAAU,YAAY;AAC7C,sDAAoB,YAAY,IAAI;AAAA,IACtC;AACA,yCAAmB,MAAM;AACvB,iBAAW,EAAE,YAAY,UAAU,YAAY;AAC7C,oDAAgB,YAAY,IAAI;AAAA,MAClC;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AACF;AArBgB;AAuBT,iCACL,QACA,QAA6B,OAC7B,OACA;AACA,MAAI,YAAY;AAChB,aAAW,SAAS,QAAQ;AAC1B,QAAI,CAAC;AAAO;AACZ,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,mBAAa,MAAM,wBAAwB,KAAK;AAChD;AAAA,IACF;AACA,UAAM,eAAe,4CAAgB,KAAK;AAC1C,QAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,UAAI,UAAU,WAAW;AACvB,gBAAQ,IAAI,kBAAkB,YAAY;AAAA,MAC5C;AAAA,IACF;AACA,eAAW,EAAE,YAAY,WAAW,cAAc;AAChD,mBAAa,IAAI;AACjB,UAAI,MAAM,IAAI,UAAU,GAAG;AACzB;AAAA,MACF;AACA,YAAM,IAAI,UAAU;AACpB,UAAI,OAAO;AACT,cAAM,YAAY,KAAK;AAAA,MACzB,OAAO;AACL,oDAAgB,YAAY,MAAM,EAAE;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAhCgB;",
6
6
  "names": []
7
7
  }
@@ -31,4 +31,8 @@ const areEqualSets = /* @__PURE__ */ __name((a, b) => {
31
31
  }
32
32
  return true;
33
33
  }, "areEqualSets");
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ areEqualSets
37
+ });
34
38
  //# sourceMappingURL=areEqualSets.js.map
File without changes
@@ -46,4 +46,9 @@ const createMediaStyle = /* @__PURE__ */ __name(({ identifier, rules }, mediaKey
46
46
  identifier: nextIdentifier
47
47
  };
48
48
  }, "createMediaStyle");
49
+ // Annotate the CommonJS export names for ESM import in node:
50
+ 0 && (module.exports = {
51
+ MEDIA_SEP,
52
+ createMediaStyle
53
+ });
49
54
  //# sourceMappingURL=createMediaStyle.js.map
File without changes
@@ -25,63 +25,67 @@ var import_conf = require("../conf");
25
25
  var import_platform = require("../constants/platform");
26
26
  var import_createVariable = require("../createVariable");
27
27
  var import_isObj = require("./isObj");
28
- const createPropMapper = /* @__PURE__ */ __name((c) => {
29
- const variants = c.variants || {};
30
- function getVariantFunction(variant, key, value) {
31
- for (const cat in tokenCategories) {
32
- if (key in tokenCategories[cat]) {
33
- const spreadVariant = variant[`...${cat}`];
34
- if (spreadVariant) {
35
- return spreadVariant;
36
- }
28
+ function getVariantFunction(variant, key, value) {
29
+ if (typeof variant === "function") {
30
+ return variant;
31
+ }
32
+ for (const cat in tokenCategories) {
33
+ if (key in tokenCategories[cat]) {
34
+ const spreadVariant = variant[`...${cat}`];
35
+ if (spreadVariant) {
36
+ return spreadVariant;
37
37
  }
38
38
  }
39
- let fn;
40
- if (typeof value === "number") {
41
- fn = variant[":number"];
42
- } else if (typeof value === "string") {
43
- fn = variant[":string"];
44
- } else if (value === true || value === false) {
45
- fn = variant[":boolean"];
46
- }
47
- fn = fn || variant[value];
48
- return fn || variant["..."] || variant["...size"];
49
39
  }
50
- __name(getVariantFunction, "getVariantFunction");
51
- const defaultProps = c.defaultProps || {};
52
- return (key, value, theme, props, staticConfig, returnVariablesAs = !!props.animation ? "value" : "auto", avoidDefaultProps = false) => {
40
+ let fn;
41
+ if (typeof value === "number") {
42
+ fn = variant[":number"];
43
+ } else if (typeof value === "string") {
44
+ fn = variant[":string"];
45
+ } else if (value === true || value === false) {
46
+ fn = variant[":boolean"];
47
+ }
48
+ fn = fn || variant[value];
49
+ return fn || variant["..."] || variant["...size"];
50
+ }
51
+ __name(getVariantFunction, "getVariantFunction");
52
+ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
53
+ const variants = staticConfig.variants || {};
54
+ const defaultProps = staticConfig.defaultProps || {};
55
+ return (key, value, theme, props, returnVariablesAs = !!props.animation ? "value" : "auto", avoidDefaultProps = false) => {
53
56
  const conf = (0, import_conf.getConfig)();
54
57
  if (!conf) {
55
58
  console.trace("no conf! err");
56
59
  return;
57
60
  }
58
- let fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
61
+ const fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
59
62
  const variant = variants && variants[key];
60
63
  if (variant && value !== void 0) {
61
64
  let variantValue = getVariantFunction(variant, key, value);
62
- if (!variantValue) {
63
- return value;
64
- }
65
- if (typeof variantValue === "function") {
66
- variantValue = variantValue(value, {
67
- tokens: conf.tokensParsed,
68
- theme,
69
- props: avoidDefaultProps ? props : new Proxy(props, {
70
- get(target, key2) {
71
- if (Reflect.has(target, key2)) {
72
- return Reflect.get(target, key2);
65
+ if (variantValue) {
66
+ if (typeof variantValue === "function") {
67
+ const fn = variantValue;
68
+ variantValue = fn(value, {
69
+ fonts: conf.fontsParsed,
70
+ tokens: conf.tokensParsed,
71
+ theme,
72
+ props: avoidDefaultProps ? props : new Proxy(props, {
73
+ get(target, key2) {
74
+ if (Reflect.has(target, key2)) {
75
+ return Reflect.get(target, key2);
76
+ }
77
+ if (defaultProps) {
78
+ return Reflect.get(defaultProps, key2);
79
+ }
73
80
  }
74
- if (staticConfig.defaultProps) {
75
- return Reflect.get(staticConfig.defaultProps, key2);
76
- }
77
- }
78
- })
79
- });
80
- }
81
- if ((0, import_isObj.isObj)(variantValue)) {
82
- variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs);
81
+ })
82
+ });
83
+ }
84
+ if ((0, import_isObj.isObj)(variantValue)) {
85
+ variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs);
86
+ }
87
+ return variantValue;
83
88
  }
84
- return variantValue;
85
89
  }
86
90
  let shouldReturn = false;
87
91
  if (conf.shorthands[key]) {
@@ -129,34 +133,28 @@ const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily, re
129
133
  }
130
134
  return res;
131
135
  }, "resolveTokens");
132
- const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed }, theme, fontFamily = "$body", resolveAs) => {
133
- var _a, _b, _c, _d, _e;
136
+ const fontShorthand = {
137
+ fontSize: "size",
138
+ fontWeight: "weight"
139
+ };
140
+ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed }, theme, fontFamily = "$body", resolveAs) => {
141
+ var _a, _b, _c;
134
142
  let valOrVar;
135
143
  let hasSet = false;
136
- const valueName = value[0] === "$" ? value.slice(1) : value;
137
- if (valueName in theme) {
138
- valOrVar = theme[valueName];
144
+ if (value in theme) {
145
+ valOrVar = theme[value];
139
146
  hasSet = true;
140
147
  } else {
141
148
  switch (key) {
142
149
  case "fontFamily":
143
- valOrVar = ((_a = tokensParsed.font[value]) == null ? void 0 : _a.family) || value;
150
+ valOrVar = ((_a = fontsParsed[value]) == null ? void 0 : _a.family) || value;
144
151
  hasSet = true;
145
152
  break;
146
153
  case "fontSize":
147
- valOrVar = ((_b = tokensParsed.font[fontFamily]) == null ? void 0 : _b.size[value]) || value;
148
- hasSet = true;
149
- break;
150
154
  case "lineHeight":
151
- valOrVar = ((_c = tokensParsed.font[fontFamily]) == null ? void 0 : _c.lineHeight[value]) || value;
152
- hasSet = true;
153
- break;
154
155
  case "letterSpacing":
155
- valOrVar = ((_d = tokensParsed.font[fontFamily]) == null ? void 0 : _d.letterSpacing[value]) || value;
156
- hasSet = true;
157
- break;
158
156
  case "fontWeight":
159
- valOrVar = ((_e = tokensParsed.font[fontFamily]) == null ? void 0 : _e.weight[value]) || value;
157
+ valOrVar = ((_c = (_b = fontsParsed[fontFamily]) == null ? void 0 : _b[fontShorthand[key] || key]) == null ? void 0 : _c[value]) || value;
160
158
  hasSet = true;
161
159
  break;
162
160
  }
@@ -182,7 +180,7 @@ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed }, theme, fo
182
180
  }
183
181
  if (process.env.NODE_ENV === "development") {
184
182
  if (value && value[0] === "$") {
185
- console.warn(`\u26A0\uFE0F Missing token in theme:`, value, theme);
183
+ console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed);
186
184
  return null;
187
185
  }
188
186
  }
@@ -223,4 +221,8 @@ const tokenCategories = {
223
221
  borderRightColor: true
224
222
  }
225
223
  };
224
+ // Annotate the CommonJS export names for ESM import in node:
225
+ 0 && (module.exports = {
226
+ createPropMapper
227
+ });
226
228
  //# sourceMappingURL=createPropMapper.js.map