@tamagui/core 1.0.0-beta.8 → 1.0.1-beta.100

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 (559) hide show
  1. package/dist/cjs/Pressability.js +28 -0
  2. package/dist/cjs/Pressability.js.map +7 -0
  3. package/dist/cjs/Pressability.native.js +28 -0
  4. package/dist/cjs/Pressability.native.js.map +7 -0
  5. package/dist/cjs/Tamagui.js +6 -8
  6. package/dist/cjs/Tamagui.js.map +2 -2
  7. package/dist/cjs/ThemeManager.js +25 -32
  8. package/dist/cjs/ThemeManager.js.map +2 -2
  9. package/dist/cjs/conf.js +20 -15
  10. package/dist/cjs/conf.js.map +2 -2
  11. package/dist/cjs/constants/constants.js +1 -1
  12. package/dist/cjs/constants/constants.js.map +1 -1
  13. package/dist/cjs/constants/platform.js +8 -8
  14. package/dist/cjs/constants/platform.js.map +2 -2
  15. package/dist/cjs/constants/rnw.js +5 -19
  16. package/dist/cjs/constants/rnw.js.map +2 -2
  17. package/dist/cjs/constants/rnw.native.js +28 -0
  18. package/dist/cjs/constants/rnw.native.js.map +7 -0
  19. package/dist/cjs/createComponent.js +612 -295
  20. package/dist/cjs/createComponent.js.map +2 -2
  21. package/dist/cjs/createFont.js +2 -3
  22. package/dist/cjs/createFont.js.map +2 -2
  23. package/dist/cjs/createShorthands.js +0 -2
  24. package/dist/cjs/createShorthands.js.map +1 -1
  25. package/dist/cjs/createTamagui.js +147 -100
  26. package/dist/cjs/createTamagui.js.map +2 -2
  27. package/dist/cjs/createTheme.js +3 -2
  28. package/dist/cjs/createTheme.js.map +2 -2
  29. package/dist/cjs/createTokens.js +4 -21
  30. package/dist/cjs/createTokens.js.map +2 -2
  31. package/dist/cjs/createVariable.js +39 -14
  32. package/dist/cjs/createVariable.js.map +2 -2
  33. package/dist/cjs/createVariables.js +55 -0
  34. package/dist/cjs/createVariables.js.map +7 -0
  35. package/dist/cjs/helpers/areEqualSets.js +2 -3
  36. package/dist/cjs/helpers/areEqualSets.js.map +1 -1
  37. package/dist/cjs/helpers/assignNativePropsToWeb.js +187 -0
  38. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +7 -0
  39. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +29 -0
  40. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +7 -0
  41. package/dist/cjs/helpers/calc.js +70 -0
  42. package/dist/cjs/helpers/calc.js.map +7 -0
  43. package/dist/cjs/helpers/createMediaStyle.js +4 -4
  44. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  45. package/dist/cjs/helpers/createPropMapper.js +133 -113
  46. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  47. package/dist/cjs/helpers/createShallowUpdate.js +3 -4
  48. package/dist/cjs/helpers/createShallowUpdate.js.map +2 -2
  49. package/dist/cjs/helpers/createTamaguiProvider.js +16 -18
  50. package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
  51. package/dist/cjs/helpers/cssHash.js +50 -0
  52. package/dist/cjs/helpers/cssHash.js.map +7 -0
  53. package/dist/cjs/helpers/expandStyle.js +111 -0
  54. package/dist/cjs/helpers/expandStyle.js.map +7 -0
  55. package/dist/cjs/helpers/expandStyles.js +126 -0
  56. package/dist/cjs/helpers/expandStyles.js.map +7 -0
  57. package/dist/cjs/helpers/extendStaticConfig.js +25 -17
  58. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  59. package/dist/cjs/helpers/fixNativeShadow.js +2 -3
  60. package/dist/cjs/helpers/fixNativeShadow.js.map +1 -1
  61. package/dist/cjs/helpers/getExpandedShorthands.js +0 -2
  62. package/dist/cjs/helpers/getExpandedShorthands.js.map +1 -1
  63. package/dist/cjs/helpers/getFont.js +61 -0
  64. package/dist/cjs/helpers/getFont.js.map +7 -0
  65. package/dist/cjs/helpers/getSize.js +17 -9
  66. package/dist/cjs/helpers/getSize.js.map +2 -2
  67. package/dist/cjs/helpers/getSplitStyles.js +268 -168
  68. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  69. package/dist/cjs/helpers/getStackSize.js +45 -0
  70. package/dist/cjs/helpers/getStackSize.js.map +7 -0
  71. package/dist/cjs/helpers/getStylesAtomic.js +178 -118
  72. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  73. package/dist/cjs/helpers/getStylesAtomic.native.js +0 -2
  74. package/dist/cjs/helpers/getStylesAtomic.native.js.map +1 -1
  75. package/dist/cjs/helpers/getTextSize.js +3 -4
  76. package/dist/cjs/helpers/getTextSize.js.map +2 -2
  77. package/dist/cjs/helpers/getVariantExtras.js +46 -0
  78. package/dist/cjs/helpers/getVariantExtras.js.map +7 -0
  79. package/dist/cjs/helpers/insertStyleRule.js +55 -37
  80. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  81. package/dist/cjs/helpers/isObj.js +1 -2
  82. package/dist/cjs/helpers/isObj.js.map +1 -1
  83. package/dist/cjs/helpers/isTamaguiComponent.js +36 -0
  84. package/dist/cjs/helpers/isTamaguiComponent.js.map +7 -0
  85. package/dist/cjs/helpers/isTamaguiElement.js +4 -5
  86. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  87. package/dist/cjs/helpers/matchMedia.js +2 -3
  88. package/dist/cjs/helpers/matchMedia.js.map +1 -1
  89. package/dist/cjs/helpers/matchMedia.native.js +1 -2
  90. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  91. package/dist/cjs/helpers/mergeProps.js +49 -0
  92. package/dist/cjs/helpers/mergeProps.js.map +7 -0
  93. package/dist/cjs/helpers/mergeTransform.js +41 -0
  94. package/dist/cjs/helpers/mergeTransform.js.map +7 -0
  95. package/dist/cjs/helpers/nativeGestureHandler.native.js +18 -0
  96. package/dist/cjs/helpers/nativeGestureHandler.native.js.map +7 -0
  97. package/dist/cjs/helpers/normalizeColor.js +76 -0
  98. package/dist/cjs/helpers/normalizeColor.js.map +7 -0
  99. package/dist/cjs/helpers/normalizeValueWithProperty.js +90 -0
  100. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +7 -0
  101. package/dist/cjs/helpers/proxyThemeVariables.js +1 -3
  102. package/dist/cjs/helpers/proxyThemeVariables.js.map +1 -1
  103. package/dist/cjs/helpers/pseudoDescriptors.js +41 -0
  104. package/dist/cjs/helpers/pseudoDescriptors.js.map +7 -0
  105. package/dist/cjs/helpers/registerCSSVariable.js +40 -0
  106. package/dist/cjs/helpers/registerCSSVariable.js.map +7 -0
  107. package/dist/cjs/helpers/themeable.js +3 -5
  108. package/dist/cjs/helpers/themeable.js.map +2 -2
  109. package/dist/cjs/helpers/validate.js +39 -37
  110. package/dist/cjs/helpers/validate.js.map +2 -2
  111. package/dist/cjs/helpers/withStaticProperties.js +2 -3
  112. package/dist/cjs/helpers/withStaticProperties.js.map +1 -1
  113. package/dist/cjs/helpers/wrapThemeManagerContext.js +0 -2
  114. package/dist/cjs/helpers/wrapThemeManagerContext.js.map +2 -2
  115. package/dist/cjs/hooks/useConstant.js +0 -2
  116. package/dist/cjs/hooks/useConstant.js.map +1 -1
  117. package/dist/cjs/hooks/useFeatures.js +22 -20
  118. package/dist/cjs/hooks/useFeatures.js.map +2 -2
  119. package/dist/cjs/hooks/useId.js +5 -6
  120. package/dist/cjs/hooks/useId.js.map +2 -2
  121. package/dist/cjs/hooks/useIsMounted.js +2 -4
  122. package/dist/cjs/hooks/useIsMounted.js.map +2 -2
  123. package/dist/cjs/hooks/useIsTouchDevice.js +3 -4
  124. package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
  125. package/dist/cjs/hooks/useMedia.js +11 -15
  126. package/dist/cjs/hooks/useMedia.js.map +1 -1
  127. package/dist/cjs/hooks/usePressable.js +2 -3
  128. package/dist/cjs/hooks/usePressable.js.map +1 -1
  129. package/dist/cjs/hooks/usePrevious.js +1 -0
  130. package/dist/cjs/hooks/usePrevious.js.map +7 -0
  131. package/dist/cjs/hooks/useTheme.js +21 -33
  132. package/dist/cjs/hooks/useTheme.js.map +2 -2
  133. package/dist/cjs/hooks/useUnmountEffect.js +0 -2
  134. package/dist/cjs/hooks/useUnmountEffect.js.map +1 -1
  135. package/dist/cjs/index.js +21 -12
  136. package/dist/cjs/index.js.map +2 -2
  137. package/dist/cjs/insertFont.js +89 -0
  138. package/dist/cjs/insertFont.js.map +7 -0
  139. package/dist/cjs/static.js +3 -1
  140. package/dist/cjs/static.js.map +2 -2
  141. package/dist/cjs/styled.js +0 -3
  142. package/dist/cjs/styled.js.map +2 -2
  143. package/dist/cjs/types-rnw.js.map +1 -1
  144. package/dist/cjs/types.js.map +1 -1
  145. package/dist/cjs/views/Slot.js +40 -26
  146. package/dist/cjs/views/Slot.js.map +2 -2
  147. package/dist/cjs/views/Text.js +11 -15
  148. package/dist/cjs/views/Text.js.map +2 -2
  149. package/dist/cjs/views/TextAncestorContext.js +4 -6
  150. package/dist/cjs/views/TextAncestorContext.js.map +2 -2
  151. package/dist/cjs/views/Theme.js +6 -9
  152. package/dist/cjs/views/Theme.js.map +2 -2
  153. package/dist/cjs/views/ThemeInverse.js +7 -5
  154. package/dist/cjs/views/ThemeInverse.js.map +2 -2
  155. package/dist/cjs/views/ThemeProvider.js +6 -6
  156. package/dist/cjs/views/ThemeProvider.js.map +2 -2
  157. package/dist/cjs/views/ThemeReset.js +3 -3
  158. package/dist/cjs/views/ThemeReset.js.map +2 -2
  159. package/dist/esm/Pressability.js +5 -0
  160. package/dist/esm/Pressability.js.map +7 -0
  161. package/dist/esm/Pressability.native.js +5 -0
  162. package/dist/esm/Pressability.native.js.map +7 -0
  163. package/dist/esm/Tamagui.js +5 -8
  164. package/dist/esm/Tamagui.js.map +2 -2
  165. package/dist/esm/ThemeManager.js +25 -33
  166. package/dist/esm/ThemeManager.js.map +2 -2
  167. package/dist/esm/conf.js +18 -15
  168. package/dist/esm/conf.js.map +2 -2
  169. package/dist/esm/constants/constants.js +24 -9
  170. package/dist/esm/constants/constants.js.map +2 -2
  171. package/dist/esm/constants/platform.js +6 -6
  172. package/dist/esm/constants/platform.js.map +2 -2
  173. package/dist/esm/constants/rnw.js +2 -20
  174. package/dist/esm/constants/rnw.js.map +2 -2
  175. package/dist/esm/constants/rnw.native.js +5 -0
  176. package/dist/esm/constants/rnw.native.js.map +7 -0
  177. package/dist/esm/createComponent.js +705 -331
  178. package/dist/esm/createComponent.js.map +2 -2
  179. package/dist/esm/createFont.js +2 -4
  180. package/dist/esm/createFont.js.map +2 -2
  181. package/dist/esm/createShorthands.js +0 -3
  182. package/dist/esm/createShorthands.js.map +1 -1
  183. package/dist/esm/createTamagui.js +172 -105
  184. package/dist/esm/createTamagui.js.map +2 -2
  185. package/dist/esm/createTheme.js +3 -3
  186. package/dist/esm/createTheme.js.map +2 -2
  187. package/dist/esm/createTokens.js +3 -20
  188. package/dist/esm/createTokens.js.map +2 -2
  189. package/dist/esm/createVariable.js +38 -14
  190. package/dist/esm/createVariable.js.map +2 -2
  191. package/dist/esm/createVariables.js +32 -0
  192. package/dist/esm/createVariables.js.map +7 -0
  193. package/dist/esm/helpers/areEqualSets.js +2 -4
  194. package/dist/esm/helpers/areEqualSets.js.map +1 -1
  195. package/dist/esm/helpers/assignNativePropsToWeb.js +164 -0
  196. package/dist/esm/helpers/assignNativePropsToWeb.js.map +7 -0
  197. package/dist/esm/helpers/assignNativePropsToWeb.native.js +6 -0
  198. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +7 -0
  199. package/dist/esm/helpers/calc.js +47 -0
  200. package/dist/esm/helpers/calc.js.map +7 -0
  201. package/dist/esm/helpers/createMediaStyle.js +4 -5
  202. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  203. package/dist/esm/helpers/createPropMapper.js +131 -114
  204. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  205. package/dist/esm/helpers/createShallowUpdate.js +19 -5
  206. package/dist/esm/helpers/createShallowUpdate.js.map +2 -2
  207. package/dist/esm/helpers/createTamaguiProvider.js +46 -19
  208. package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
  209. package/dist/esm/helpers/cssHash.js +27 -0
  210. package/dist/esm/helpers/cssHash.js.map +7 -0
  211. package/dist/esm/helpers/expandStyle.js +90 -0
  212. package/dist/esm/helpers/expandStyle.js.map +7 -0
  213. package/dist/esm/helpers/expandStyles.js +103 -0
  214. package/dist/esm/helpers/expandStyles.js.map +7 -0
  215. package/dist/esm/helpers/extendStaticConfig.js +46 -40
  216. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  217. package/dist/esm/helpers/fixNativeShadow.js +2 -4
  218. package/dist/esm/helpers/fixNativeShadow.js.map +1 -1
  219. package/dist/esm/helpers/getExpandedShorthands.js +0 -3
  220. package/dist/esm/helpers/getExpandedShorthands.js.map +1 -1
  221. package/dist/{jsx/helpers/getTextSize.js → esm/helpers/getFont.js} +12 -7
  222. package/dist/esm/helpers/getFont.js.map +7 -0
  223. package/dist/esm/helpers/getSize.js +15 -9
  224. package/dist/esm/helpers/getSize.js.map +2 -2
  225. package/dist/esm/helpers/getSplitStyles.js +282 -176
  226. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  227. package/dist/esm/helpers/getStackSize.js +22 -0
  228. package/dist/esm/helpers/getStackSize.js.map +7 -0
  229. package/dist/esm/helpers/getStylesAtomic.js +188 -110
  230. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  231. package/dist/esm/helpers/getStylesAtomic.native.js +0 -3
  232. package/dist/esm/helpers/getStylesAtomic.native.js.map +1 -1
  233. package/dist/esm/helpers/getTextSize.js +3 -5
  234. package/dist/esm/helpers/getTextSize.js.map +2 -2
  235. package/dist/esm/helpers/getVariantExtras.js +23 -0
  236. package/dist/esm/helpers/getVariantExtras.js.map +7 -0
  237. package/dist/esm/helpers/insertStyleRule.js +55 -38
  238. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  239. package/dist/esm/helpers/isObj.js +1 -3
  240. package/dist/esm/helpers/isObj.js.map +1 -1
  241. package/dist/esm/helpers/isTamaguiComponent.js +13 -0
  242. package/dist/esm/helpers/isTamaguiComponent.js.map +7 -0
  243. package/dist/esm/helpers/isTamaguiElement.js +4 -6
  244. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  245. package/dist/esm/helpers/matchMedia.js +2 -4
  246. package/dist/esm/helpers/matchMedia.js.map +1 -1
  247. package/dist/esm/helpers/matchMedia.native.js +1 -3
  248. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  249. package/dist/esm/helpers/mergeProps.js +26 -0
  250. package/dist/esm/helpers/mergeProps.js.map +7 -0
  251. package/dist/esm/helpers/mergeTransform.js +17 -0
  252. package/dist/esm/helpers/mergeTransform.js.map +7 -0
  253. package/dist/esm/helpers/nativeGestureHandler.native.js +2 -0
  254. package/dist/esm/helpers/nativeGestureHandler.native.js.map +7 -0
  255. package/dist/esm/helpers/normalizeColor.js +49 -0
  256. package/dist/esm/helpers/normalizeColor.js.map +7 -0
  257. package/dist/esm/helpers/normalizeValueWithProperty.js +67 -0
  258. package/dist/esm/helpers/normalizeValueWithProperty.js.map +7 -0
  259. package/dist/esm/helpers/proxyThemeVariables.js +1 -4
  260. package/dist/esm/helpers/proxyThemeVariables.js.map +1 -1
  261. package/dist/esm/helpers/pseudoDescriptors.js +18 -0
  262. package/dist/esm/helpers/pseudoDescriptors.js.map +7 -0
  263. package/dist/esm/helpers/registerCSSVariable.js +15 -0
  264. package/dist/esm/helpers/registerCSSVariable.js.map +7 -0
  265. package/dist/esm/helpers/themeable.js +34 -5
  266. package/dist/esm/helpers/themeable.js.map +2 -2
  267. package/dist/esm/helpers/validate.js +42 -19
  268. package/dist/esm/helpers/validate.js.map +2 -2
  269. package/dist/esm/helpers/withStaticProperties.js +2 -4
  270. package/dist/esm/helpers/withStaticProperties.js.map +1 -1
  271. package/dist/esm/helpers/wrapThemeManagerContext.js +0 -3
  272. package/dist/esm/helpers/wrapThemeManagerContext.js.map +2 -2
  273. package/dist/esm/hooks/useConstant.js +0 -3
  274. package/dist/esm/hooks/useConstant.js.map +1 -1
  275. package/dist/esm/hooks/useFeatures.js +59 -26
  276. package/dist/esm/hooks/useFeatures.js.map +2 -2
  277. package/dist/esm/hooks/useId.js +8 -11
  278. package/dist/esm/hooks/useId.js.map +2 -2
  279. package/dist/esm/hooks/useIsMounted.js +1 -4
  280. package/dist/esm/hooks/useIsMounted.js.map +2 -2
  281. package/dist/esm/hooks/useIsTouchDevice.js +4 -6
  282. package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
  283. package/dist/esm/hooks/useMedia.js +28 -21
  284. package/dist/esm/hooks/useMedia.js.map +1 -1
  285. package/dist/esm/hooks/usePressable.js +18 -5
  286. package/dist/esm/hooks/usePressable.js.map +1 -1
  287. package/dist/esm/hooks/usePrevious.js +1 -0
  288. package/dist/esm/hooks/usePrevious.js.map +7 -0
  289. package/dist/esm/hooks/useTheme.js +45 -41
  290. package/dist/esm/hooks/useTheme.js.map +2 -2
  291. package/dist/esm/hooks/useUnmountEffect.js +0 -3
  292. package/dist/esm/hooks/useUnmountEffect.js.map +1 -1
  293. package/dist/esm/index.js +18 -9
  294. package/dist/esm/index.js.map +2 -2
  295. package/dist/esm/insertFont.js +64 -0
  296. package/dist/esm/insertFont.js.map +7 -0
  297. package/dist/esm/static.js +3 -1
  298. package/dist/esm/static.js.map +2 -2
  299. package/dist/esm/styled.js +37 -12
  300. package/dist/esm/styled.js.map +2 -2
  301. package/dist/esm/views/Slot.js +74 -34
  302. package/dist/esm/views/Slot.js.map +2 -2
  303. package/dist/esm/views/Stack.js +21 -3
  304. package/dist/esm/views/Stack.js.map +1 -1
  305. package/dist/esm/views/Text.js +27 -19
  306. package/dist/esm/views/Text.js.map +2 -2
  307. package/dist/esm/views/TextAncestorContext.js +4 -7
  308. package/dist/esm/views/TextAncestorContext.js.map +2 -2
  309. package/dist/esm/views/Theme.js +6 -10
  310. package/dist/esm/views/Theme.js.map +2 -2
  311. package/dist/esm/views/ThemeInverse.js +8 -7
  312. package/dist/esm/views/ThemeInverse.js.map +2 -2
  313. package/dist/esm/views/ThemeProvider.js +6 -7
  314. package/dist/esm/views/ThemeProvider.js.map +2 -2
  315. package/dist/esm/views/ThemeReset.js +3 -4
  316. package/dist/esm/views/ThemeReset.js.map +2 -2
  317. package/package.json +18 -11
  318. package/reset.css +41 -0
  319. package/types/Pressability.d.ts +2 -0
  320. package/types/Pressability.native.d.ts +2 -0
  321. package/types/Tamagui.d.ts +4 -6
  322. package/types/Tamagui.d.ts.map +1 -1
  323. package/types/ThemeContext.d.ts +0 -0
  324. package/types/ThemeContext.d.ts.map +0 -0
  325. package/types/ThemeManager.d.ts +10 -7
  326. package/types/ThemeManager.d.ts.map +1 -1
  327. package/types/conf.d.ts +3 -4
  328. package/types/conf.d.ts.map +1 -1
  329. package/types/constants/constants.d.ts +1 -1
  330. package/types/constants/platform.d.ts +2 -2
  331. package/types/constants/rnw.d.ts +1 -1
  332. package/types/constants/rnw.d.ts.map +1 -1
  333. package/types/constants/rnw.native.d.ts +2 -0
  334. package/types/contexts/ButtonInsideButtonContext.d.ts +0 -0
  335. package/types/createComponent.d.ts +40 -15
  336. package/types/createComponent.d.ts.map +1 -1
  337. package/types/createFont.d.ts +0 -0
  338. package/types/createFont.d.ts.map +0 -0
  339. package/types/createShorthands.d.ts +0 -0
  340. package/types/createTamagui.d.ts +10 -2
  341. package/types/createTamagui.d.ts.map +1 -1
  342. package/types/createTheme.d.ts +1 -1
  343. package/types/createTokens.d.ts +0 -1
  344. package/types/createTokens.d.ts.map +1 -1
  345. package/types/createVariable.d.ts +16 -11
  346. package/types/createVariables.d.ts +10 -0
  347. package/types/defaultComponentState.d.ts +0 -0
  348. package/types/helpers/RNComponents.d.ts +0 -0
  349. package/types/helpers/areEqualSets.d.ts +0 -0
  350. package/types/helpers/assignNativePropsToWeb.d.ts +2 -0
  351. package/types/helpers/assignNativePropsToWeb.d.ts.map +1 -0
  352. package/types/helpers/assignNativePropsToWeb.native.d.ts +2 -0
  353. package/types/helpers/calc.d.ts +12 -0
  354. package/types/helpers/calc.d.ts.map +1 -0
  355. package/types/helpers/createMediaStyle.d.ts +1 -1
  356. package/types/helpers/createMediaStyle.d.ts.map +1 -1
  357. package/types/helpers/createPropMapper.d.ts +4 -3
  358. package/types/helpers/createPropMapper.d.ts.map +1 -1
  359. package/types/helpers/createShallowUpdate.d.ts +1 -2
  360. package/types/helpers/createTamaguiProvider.d.ts +2 -6
  361. package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
  362. package/types/helpers/cssHash.d.ts +2 -0
  363. package/types/helpers/cssHash.d.ts.map +1 -0
  364. package/types/helpers/expandStyle.d.ts +2 -0
  365. package/types/helpers/expandStyle.d.ts.map +1 -0
  366. package/types/helpers/expandStyles.d.ts +7 -0
  367. package/types/helpers/expandStyles.d.ts.map +1 -0
  368. package/types/helpers/extendStaticConfig.d.ts +0 -0
  369. package/types/helpers/extendStaticConfig.d.ts.map +1 -1
  370. package/types/helpers/fixNativeShadow.d.ts +0 -0
  371. package/types/helpers/getExpandedShorthands.d.ts +0 -0
  372. package/types/helpers/getExpandedShorthands.d.ts.map +0 -0
  373. package/types/helpers/getFont.d.ts +3 -0
  374. package/types/helpers/getFont.d.ts.map +1 -0
  375. package/types/helpers/getSize.d.ts +3 -2
  376. package/types/helpers/getSize.d.ts.map +1 -1
  377. package/types/helpers/getSplitStyles.d.ts +10 -7
  378. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  379. package/types/helpers/getStackSize.d.ts +8 -0
  380. package/types/helpers/getStackSize.d.ts.map +1 -0
  381. package/types/helpers/getStylesAtomic.d.ts +7 -17
  382. package/types/helpers/getStylesAtomic.d.ts.map +1 -1
  383. package/types/helpers/getStylesAtomic.native.d.ts +0 -0
  384. package/types/helpers/getVariantExtras.d.ts +7 -0
  385. package/types/helpers/getVariantExtras.d.ts.map +1 -0
  386. package/types/helpers/insertStyleRule.d.ts +1 -1
  387. package/types/helpers/isObj.d.ts +0 -0
  388. package/types/helpers/isTamaguiComponent.d.ts +5 -0
  389. package/types/helpers/isTamaguiComponent.d.ts.map +1 -0
  390. package/types/helpers/isTamaguiElement.d.ts +1 -1
  391. package/types/helpers/isTamaguiElement.d.ts.map +1 -1
  392. package/types/helpers/matchMedia.d.ts +0 -0
  393. package/types/helpers/matchMedia.native.d.ts +0 -0
  394. package/types/helpers/mergeProps.d.ts +2 -0
  395. package/types/helpers/mergeTransform.d.ts +7 -0
  396. package/types/helpers/nativeGestureHandler.native.d.ts +2 -0
  397. package/types/helpers/normalizeColor.d.ts +3 -0
  398. package/types/helpers/normalizeColor.d.ts.map +1 -0
  399. package/types/helpers/normalizeValueWithProperty.d.ts +2 -0
  400. package/types/helpers/normalizeValueWithProperty.d.ts.map +1 -0
  401. package/types/helpers/proxyThemeVariables.d.ts +0 -0
  402. package/types/helpers/pseudoDescriptors.d.ts +16 -0
  403. package/types/helpers/registerCSSVariable.d.ts +5 -0
  404. package/types/helpers/themeable.d.ts +0 -0
  405. package/types/helpers/themeable.d.ts.map +1 -1
  406. package/types/helpers/validate.d.ts +0 -0
  407. package/types/helpers/withStaticProperties.d.ts +0 -0
  408. package/types/helpers/wrapThemeManagerContext.d.ts +0 -0
  409. package/types/helpers/wrapThemeManagerContext.d.ts.map +0 -0
  410. package/types/hooks/useConstant.d.ts +0 -0
  411. package/types/hooks/useFeatures.d.ts +11 -5
  412. package/types/hooks/useFeatures.d.ts.map +1 -1
  413. package/types/hooks/useId.d.ts +0 -0
  414. package/types/hooks/useIsMounted.d.ts +0 -0
  415. package/types/hooks/useIsTouchDevice.d.ts +0 -0
  416. package/types/hooks/useMedia.d.ts +0 -0
  417. package/types/hooks/useMedia.d.ts.map +0 -0
  418. package/types/hooks/usePressable.d.ts +0 -0
  419. package/types/hooks/usePrevious.d.ts +1 -0
  420. package/types/hooks/useTheme.d.ts +15 -6
  421. package/types/hooks/useTheme.d.ts.map +1 -1
  422. package/types/hooks/useUnmountEffect.d.ts +0 -0
  423. package/types/index.d.ts +16 -6
  424. package/types/index.d.ts.map +1 -1
  425. package/types/insertFont.d.ts +6 -0
  426. package/types/insertFont.d.ts.map +1 -0
  427. package/types/static.d.ts +3 -1
  428. package/types/static.d.ts.map +1 -1
  429. package/types/styled.d.ts +2 -2
  430. package/types/styled.d.ts.map +1 -1
  431. package/types/types-rnw.d.ts +0 -0
  432. package/types/types.d.ts +71 -51
  433. package/types/types.d.ts.map +1 -1
  434. package/types/views/Slot.d.ts +1 -0
  435. package/types/views/Stack.d.ts +0 -0
  436. package/types/views/Stack.d.ts.map +0 -0
  437. package/types/views/Text.d.ts +0 -0
  438. package/types/views/Text.d.ts.map +1 -1
  439. package/types/views/TextAncestorContext.d.ts +0 -0
  440. package/types/views/TextAncestorContext.d.ts.map +1 -1
  441. package/types/views/Theme.d.ts +1 -9
  442. package/types/views/Theme.d.ts.map +1 -1
  443. package/types/views/ThemeInverse.d.ts +0 -0
  444. package/types/views/ThemeInverse.d.ts.map +1 -1
  445. package/types/views/ThemeProvider.d.ts +2 -0
  446. package/types/views/ThemeProvider.d.ts.map +1 -1
  447. package/types/views/ThemeReset.d.ts +0 -0
  448. package/types/views/ThemeReset.d.ts.map +0 -0
  449. package/dist/cjs/helpers/addStylesUsingClassname.js +0 -87
  450. package/dist/cjs/helpers/addStylesUsingClassname.js.map +0 -7
  451. package/dist/cjs/helpers/fixNativeShadow.native.js +0 -63
  452. package/dist/cjs/helpers/fixNativeShadow.native.js.map +0 -7
  453. package/dist/cjs/helpers/getButtonSize.js +0 -45
  454. package/dist/cjs/helpers/getButtonSize.js.map +0 -7
  455. package/dist/esm/helpers/addStylesUsingClassname.js +0 -64
  456. package/dist/esm/helpers/addStylesUsingClassname.js.map +0 -7
  457. package/dist/esm/helpers/fixNativeShadow.native.js +0 -41
  458. package/dist/esm/helpers/fixNativeShadow.native.js.map +0 -7
  459. package/dist/esm/helpers/getButtonSize.js +0 -24
  460. package/dist/esm/helpers/getButtonSize.js.map +0 -7
  461. package/dist/jsx/Tamagui.js +0 -41
  462. package/dist/jsx/ThemeContext.js +0 -5
  463. package/dist/jsx/ThemeManager.js +0 -186
  464. package/dist/jsx/conf.js +0 -35
  465. package/dist/jsx/constants/constants.js +0 -17
  466. package/dist/jsx/constants/platform.js +0 -25
  467. package/dist/jsx/constants/rnw.js +0 -23
  468. package/dist/jsx/contexts/ButtonInsideButtonContext.js +0 -5
  469. package/dist/jsx/createComponent.js +0 -617
  470. package/dist/jsx/createFont.js +0 -27
  471. package/dist/jsx/createShorthands.js +0 -9
  472. package/dist/jsx/createTamagui.js +0 -201
  473. package/dist/jsx/createTheme.js +0 -6
  474. package/dist/jsx/createTokens.js +0 -28
  475. package/dist/jsx/createVariable.js +0 -48
  476. package/dist/jsx/defaultComponentState.js +0 -0
  477. package/dist/jsx/helpers/RNComponents.js +0 -11
  478. package/dist/jsx/helpers/addStylesUsingClassname.js +0 -63
  479. package/dist/jsx/helpers/areEqualSets.js +0 -15
  480. package/dist/jsx/helpers/createMediaStyle.js +0 -30
  481. package/dist/jsx/helpers/createPropMapper.js +0 -237
  482. package/dist/jsx/helpers/createShallowUpdate.js +0 -18
  483. package/dist/jsx/helpers/createTamaguiProvider.js +0 -34
  484. package/dist/jsx/helpers/extendStaticConfig.js +0 -61
  485. package/dist/jsx/helpers/fixNativeShadow.js +0 -7
  486. package/dist/jsx/helpers/fixNativeShadow.native.js +0 -40
  487. package/dist/jsx/helpers/getButtonSize.js +0 -23
  488. package/dist/jsx/helpers/getExpandedShorthands.js +0 -18
  489. package/dist/jsx/helpers/getSize.js +0 -12
  490. package/dist/jsx/helpers/getSplitStyles.js +0 -302
  491. package/dist/jsx/helpers/getStylesAtomic.js +0 -130
  492. package/dist/jsx/helpers/getStylesAtomic.native.js +0 -9
  493. package/dist/jsx/helpers/insertStyleRule.js +0 -94
  494. package/dist/jsx/helpers/isObj.js +0 -6
  495. package/dist/jsx/helpers/isTamaguiElement.js +0 -10
  496. package/dist/jsx/helpers/matchMedia.js +0 -17
  497. package/dist/jsx/helpers/matchMedia.native.js +0 -8
  498. package/dist/jsx/helpers/proxyThemeVariables.js +0 -17
  499. package/dist/jsx/helpers/themeable.js +0 -24
  500. package/dist/jsx/helpers/validate.js +0 -75
  501. package/dist/jsx/helpers/withStaticProperties.js +0 -9
  502. package/dist/jsx/helpers/wrapThemeManagerContext.js +0 -10
  503. package/dist/jsx/hooks/useConstant.js +0 -14
  504. package/dist/jsx/hooks/useFeatures.js +0 -167
  505. package/dist/jsx/hooks/useId.js +0 -34
  506. package/dist/jsx/hooks/useIsMounted.js +0 -18
  507. package/dist/jsx/hooks/useIsTouchDevice.js +0 -16
  508. package/dist/jsx/hooks/useMedia.js +0 -158
  509. package/dist/jsx/hooks/usePressable.js +0 -13
  510. package/dist/jsx/hooks/useTheme.js +0 -177
  511. package/dist/jsx/hooks/useUnmountEffect.js +0 -10
  512. package/dist/jsx/index.js +0 -54
  513. package/dist/jsx/static.js +0 -16
  514. package/dist/jsx/styled.js +0 -48
  515. package/dist/jsx/types-rnw.js +0 -0
  516. package/dist/jsx/types.js +0 -0
  517. package/dist/jsx/views/Slot.js +0 -56
  518. package/dist/jsx/views/Stack.js +0 -12
  519. package/dist/jsx/views/Text.js +0 -61
  520. package/dist/jsx/views/TextAncestorContext.js +0 -15
  521. package/dist/jsx/views/Theme.js +0 -31
  522. package/dist/jsx/views/ThemeInverse.js +0 -22
  523. package/dist/jsx/views/ThemeProvider.js +0 -35
  524. package/dist/jsx/views/ThemeReset.js +0 -34
  525. package/types/constants/constants.d.ts.map +0 -1
  526. package/types/constants/platform.d.ts.map +0 -1
  527. package/types/contexts/ButtonInsideButtonContext.d.ts.map +0 -1
  528. package/types/createShorthands.d.ts.map +0 -1
  529. package/types/createTheme.d.ts.map +0 -1
  530. package/types/createVariable.d.ts.map +0 -1
  531. package/types/defaultComponentState.d.ts.map +0 -1
  532. package/types/helpers/RNComponents.d.ts.map +0 -1
  533. package/types/helpers/addStylesUsingClassname.d.ts +0 -3
  534. package/types/helpers/addStylesUsingClassname.d.ts.map +0 -1
  535. package/types/helpers/areEqualSets.d.ts.map +0 -1
  536. package/types/helpers/createShallowUpdate.d.ts.map +0 -1
  537. package/types/helpers/fixNativeShadow.d.ts.map +0 -1
  538. package/types/helpers/fixNativeShadow.native.d.ts +0 -2
  539. package/types/helpers/fixNativeShadow.native.d.ts.map +0 -1
  540. package/types/helpers/getButtonSize.d.ts +0 -8
  541. package/types/helpers/getButtonSize.d.ts.map +0 -1
  542. package/types/helpers/getStylesAtomic.native.d.ts.map +0 -1
  543. package/types/helpers/getTextSize.d.ts +0 -3
  544. package/types/helpers/getTextSize.d.ts.map +0 -1
  545. package/types/helpers/insertStyleRule.d.ts.map +0 -1
  546. package/types/helpers/isObj.d.ts.map +0 -1
  547. package/types/helpers/matchMedia.d.ts.map +0 -1
  548. package/types/helpers/matchMedia.native.d.ts.map +0 -1
  549. package/types/helpers/proxyThemeVariables.d.ts.map +0 -1
  550. package/types/helpers/validate.d.ts.map +0 -1
  551. package/types/helpers/withStaticProperties.d.ts.map +0 -1
  552. package/types/hooks/useConstant.d.ts.map +0 -1
  553. package/types/hooks/useId.d.ts.map +0 -1
  554. package/types/hooks/useIsMounted.d.ts.map +0 -1
  555. package/types/hooks/useIsTouchDevice.d.ts.map +0 -1
  556. package/types/hooks/usePressable.d.ts.map +0 -1
  557. package/types/hooks/useUnmountEffect.d.ts.map +0 -1
  558. package/types/types-rnw.d.ts.map +0 -1
  559. package/types/views/Slot.d.ts.map +0 -1
@@ -1,107 +1,101 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
1
  import { getConfig } from "../conf";
4
2
  import { isWeb } from "../constants/platform";
5
3
  import { isVariable } from "../createVariable";
4
+ import { expandStyle } from "./expandStyle";
5
+ import { expandStyles } from "./expandStyles";
6
+ import { getVariantExtras } from "./getVariantExtras";
6
7
  import { isObj } from "./isObj";
7
- function getVariantFunction(variant, key, value) {
8
- if (typeof variant === "function") {
9
- return variant;
10
- }
11
- for (const cat in tokenCategories) {
12
- if (key in tokenCategories[cat]) {
13
- const spreadVariant = variant[`...${cat}`];
14
- if (spreadVariant) {
15
- return spreadVariant;
16
- }
17
- }
18
- }
19
- let fn;
20
- if (typeof value === "number") {
21
- fn = variant[":number"];
22
- } else if (typeof value === "string") {
23
- fn = variant[":string"];
24
- } else if (value === true || value === false) {
25
- fn = variant[":boolean"];
26
- }
27
- fn = fn || variant[value];
28
- return fn || variant["..."] || variant["...size"];
29
- }
30
- __name(getVariantFunction, "getVariantFunction");
31
- const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
8
+ import { mergeProps } from "./mergeProps";
9
+ const getReturnVariablesAs = (props, state) => {
10
+ return !!props.animation || state.resolveVariablesAs === "value" ? isWeb ? "non-color-value" : "value" : "auto";
11
+ };
12
+ const createPropMapper = (staticConfig) => {
32
13
  const variants = staticConfig.variants || {};
33
- const defaultProps = staticConfig.defaultProps || {};
34
- return (key, value, theme, props, returnVariablesAs = !!props.animation ? "value" : "auto", avoidDefaultProps = false) => {
14
+ const defaultProps = mergeProps(staticConfig.defaultProps || {}, {}, true)[0];
15
+ const mapper = (key, value, theme, propsIn, state, avoidDefaultProps = false, debug) => {
35
16
  const conf = getConfig();
36
17
  if (!conf) {
37
18
  console.trace("no conf! err");
38
19
  return;
39
20
  }
21
+ const props = state.fallbackProps || propsIn;
22
+ const returnVariablesAs = getReturnVariablesAs(props, state);
40
23
  const fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
41
- const variant = variants && variants[key];
42
- if (variant && value !== void 0) {
43
- let variantValue = getVariantFunction(variant, key, value);
44
- if (variantValue) {
45
- if (typeof variantValue === "function") {
46
- const fn = variantValue;
47
- variantValue = fn(value, {
48
- fonts: conf.fontsParsed,
49
- tokens: conf.tokensParsed,
50
- theme,
51
- props: avoidDefaultProps ? props : new Proxy(props, {
52
- get(target, key2) {
53
- if (Reflect.has(target, key2)) {
54
- return Reflect.get(target, key2);
55
- }
56
- if (defaultProps) {
57
- return Reflect.get(defaultProps, key2);
58
- }
59
- }
60
- })
61
- });
62
- }
63
- if (isObj(variantValue)) {
64
- variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs);
65
- }
66
- return expansions(variantValue);
67
- }
24
+ const variantValue = resolveVariants(key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, "", avoidDefaultProps);
25
+ if (variantValue) {
26
+ return variantValue;
68
27
  }
69
- let shouldReturn = false;
28
+ let shouldReturn = value !== void 0 && value !== null;
70
29
  if (conf.shorthands[key]) {
71
30
  shouldReturn = true;
72
31
  key = conf.shorthands[key];
73
32
  }
74
33
  if (value) {
75
- shouldReturn = true;
76
34
  if (value[0] === "$") {
77
- value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs);
35
+ value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs, debug);
78
36
  } else if (isVariable(value)) {
79
- value = getVariableValue(value, returnVariablesAs);
37
+ value = getVariableValue(key, value, returnVariablesAs);
80
38
  }
81
39
  }
82
40
  if (shouldReturn) {
83
- return expansions({
84
- [key]: value
85
- });
41
+ return expandStyle(key, value) || [[key, value]];
86
42
  }
87
43
  };
88
- }, "createPropMapper");
89
- const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily, resolveAs) => {
44
+ return mapper;
45
+ };
46
+ const resolveVariants = (key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps = false, debug) => {
47
+ var _a;
48
+ const variant = variants && variants[key];
49
+ if (variant && value !== void 0) {
50
+ let variantValue = getVariantDefinition(variant, key, value, conf);
51
+ if (variantValue) {
52
+ if (typeof variantValue === "function") {
53
+ const fn = variantValue;
54
+ variantValue = fn(value, getVariantExtras(props, theme, defaultProps, avoidDefaultProps));
55
+ }
56
+ if (isObj(variantValue)) {
57
+ variantValue = resolveTokensAndVariants(key, variantValue, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps, debug);
58
+ }
59
+ if (variantValue) {
60
+ return Object.entries(expandStyles(variantValue));
61
+ }
62
+ } else {
63
+ if (process.env.NODE_ENV === "development") {
64
+ if ((_a = staticConfig.validStyles) == null ? void 0 : _a[key]) {
65
+ return null;
66
+ }
67
+ if (value === false) {
68
+ return null;
69
+ }
70
+ const name = staticConfig.componentName || "[UnnamedComponent]";
71
+ console.warn(`No variant found: ${name} has variant "${key}", but no matching value "${value}"`);
72
+ }
73
+ return null;
74
+ }
75
+ }
76
+ };
77
+ const resolveTokensAndVariants = (key, value, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, parentVariantKey, avoidDefaultProps, debug) => {
90
78
  var _a;
91
- let res = {};
92
- for (const rKey in input) {
79
+ const res = {};
80
+ for (const rKey in value) {
93
81
  const fKey = conf.shorthands[rKey] || rKey;
94
- const val = input[rKey];
82
+ const val = value[rKey];
95
83
  if (isVariable(val)) {
96
- res[fKey] = resolveAs === "variable" ? val : !isWeb || resolveAs === "value" ? val.val : val.variable;
84
+ res[fKey] = !isWeb || returnVariablesAs === "value" ? val.val : val.variable;
85
+ } else if (variants[fKey]) {
86
+ if (parentVariantKey === key) {
87
+ res[fKey] = val;
88
+ } else {
89
+ Object.assign(res, Object.fromEntries(resolveVariants(fKey, val, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, key, avoidDefaultProps, debug)));
90
+ }
97
91
  } else if (typeof val === "string") {
98
- const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily, resolveAs) : val;
92
+ const fVal = val[0] === "$" ? getToken(fKey, val, conf, theme, fontFamily, returnVariablesAs, debug) : val;
99
93
  res[fKey] = fVal;
100
94
  } else {
101
95
  if (isObj(val)) {
102
- res[fKey] = resolveTokens(val, conf, theme, fontFamily, resolveAs);
96
+ res[fKey] = resolveTokensAndVariants(fKey, val, props, defaultProps, theme, variants, fontFamily, conf, returnVariablesAs, staticConfig, key, avoidDefaultProps, debug);
103
97
  } else {
104
- res[fKey] = input[fKey];
98
+ res[fKey] = value[fKey];
105
99
  }
106
100
  }
107
101
  if (process.env.NODE_ENV === "development") {
@@ -111,16 +105,49 @@ const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily, re
111
105
  }
112
106
  }
113
107
  return res;
114
- }, "resolveTokens");
108
+ };
109
+ function getVariantDefinition(variant, key, value, conf) {
110
+ if (typeof variant === "function") {
111
+ return variant;
112
+ }
113
+ if (variant[value]) {
114
+ return variant[value];
115
+ }
116
+ const { tokensParsed } = conf;
117
+ if (variant["...size"] && value in tokensParsed.size) {
118
+ return variant["...size"];
119
+ }
120
+ if (variant["...color"] && value in tokensParsed.color) {
121
+ return variant["...color"];
122
+ }
123
+ if (variant["...radius"] && value in tokensParsed.radius) {
124
+ return variant["...radius"];
125
+ }
126
+ if (variant["...space"] && value in tokensParsed.space) {
127
+ return variant["...space"];
128
+ }
129
+ if (variant["...zIndex"] && value in tokensParsed.zIndex) {
130
+ return variant["...zIndex"];
131
+ }
132
+ let fn;
133
+ if (typeof value === "number") {
134
+ fn = variant[":number"];
135
+ } else if (typeof value === "string") {
136
+ fn = variant[":string"];
137
+ } else if (value === true || value === false) {
138
+ fn = variant[":boolean"];
139
+ }
140
+ return fn || variant["..."] || variant["...size"];
141
+ }
115
142
  const fontShorthand = {
116
143
  fontSize: "size",
117
144
  fontWeight: "weight"
118
145
  };
119
- const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed }, theme, fontFamily = "$body", resolveAs) => {
146
+ const getToken = (key, value, { tokensParsed, fontsParsed }, theme, fontFamily = "$body", resolveAs, debug) => {
120
147
  var _a, _b, _c;
121
148
  let valOrVar;
122
149
  let hasSet = false;
123
- if (value in theme) {
150
+ if (theme[value]) {
124
151
  valOrVar = theme[value];
125
152
  hasSet = true;
126
153
  } else {
@@ -155,21 +182,39 @@ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed
155
182
  }
156
183
  }
157
184
  if (hasSet) {
158
- return getVariableValue(valOrVar, resolveAs);
185
+ return getVariableValue(key, valOrVar, resolveAs);
159
186
  }
160
187
  if (process.env.NODE_ENV === "development") {
161
188
  if (value && value[0] === "$") {
162
- console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed);
189
+ console.trace(`\u26A0\uFE0F You've passed the value "${value}" to the style property "${key}", but there's no theme or token with the key "${value}". Using theme "${theme.name}".
190
+
191
+ Set the debug prop to true to see more detailed debug information.`);
192
+ if (debug) {
193
+ if (typeof window !== "undefined") {
194
+ console.log("Looked in:");
195
+ console.log("Theme:", theme);
196
+ console.log("Tokens:", tokensParsed);
197
+ console.log("Fonts:", fontsParsed);
198
+ }
199
+ }
163
200
  return null;
164
201
  }
165
202
  }
166
203
  return value;
167
- }, "getToken");
168
- function getVariableValue(valOrVar, resolveAs = "auto") {
204
+ };
205
+ function getVariableValue(key, valOrVar, resolveAs = "auto") {
169
206
  if (isVariable(valOrVar)) {
170
207
  if (resolveAs === "variable") {
171
208
  return valOrVar;
172
209
  }
210
+ if (resolveAs === "non-color-value") {
211
+ if (isWeb) {
212
+ if (key in tokenCategories.color) {
213
+ return valOrVar.variable;
214
+ }
215
+ }
216
+ return valOrVar.val;
217
+ }
173
218
  if (!isWeb || resolveAs === "value") {
174
219
  return valOrVar.val;
175
220
  }
@@ -177,10 +222,13 @@ function getVariableValue(valOrVar, resolveAs = "auto") {
177
222
  }
178
223
  return valOrVar;
179
224
  }
180
- __name(getVariableValue, "getVariableValue");
181
225
  const tokenCategories = {
182
226
  radius: {
183
- borderRadius: true
227
+ borderRadius: true,
228
+ borderTopLeftRadius: true,
229
+ borderTopRightRadius: true,
230
+ borderBottomLeftRadius: true,
231
+ borderBottomRightRadius: true
184
232
  },
185
233
  size: {
186
234
  width: true,
@@ -200,39 +248,8 @@ const tokenCategories = {
200
248
  borderRightColor: true
201
249
  }
202
250
  };
203
- const sidesX = ["Left", "Right"];
204
- const sidesY = ["Top", "Bottom"];
205
- const sidesXY = [...sidesX, ...sidesY];
206
- const expand = {
207
- padding: sidesXY.map((x) => `padding${x}`),
208
- paddingHorizontal: sidesX.map((x) => `padding${x}`),
209
- paddingVertical: sidesY.map((x) => `padding${x}`),
210
- margin: sidesXY.map((x) => `margin${x}`),
211
- marginHorizontal: sidesX.map((x) => `margin${x}`),
212
- marginVertical: sidesY.map((x) => `margin${x}`),
213
- borderWidth: sidesXY.map((x) => `border${x}Width`)
214
- };
215
- function expansions(styleObj) {
216
- var _a, _b;
217
- for (const key in expand) {
218
- if (key in styleObj) {
219
- for (const expandKey of expand[key]) {
220
- styleObj[expandKey] = styleObj[key];
221
- }
222
- delete styleObj[key];
223
- }
224
- }
225
- if ("flex" in styleObj) {
226
- if (typeof styleObj.flex === "number") {
227
- styleObj.flexGrow = (_a = styleObj.flexGrow) != null ? _a : styleObj.flex;
228
- styleObj.flexShrink = (_b = styleObj.flexShrink) != null ? _b : 1;
229
- delete styleObj.flex;
230
- }
231
- }
232
- return styleObj;
233
- }
234
- __name(expansions, "expansions");
235
251
  export {
236
- createPropMapper
252
+ createPropMapper,
253
+ getReturnVariablesAs
237
254
  };
238
255
  //# sourceMappingURL=createPropMapper.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createPropMapper.ts"],
4
- "sourcesContent": ["import { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { Variable, isVariable } from '../createVariable'\nimport { StaticConfig, TamaguiInternalConfig, VariantSpreadFunction } from '../types'\nimport { isObj } from './isObj'\n\nexport type ResolveVariableTypes = 'auto' | 'value' | 'variable' | 'both'\n\n// goes through specificity finding best matching variant function\nfunction getVariantFunction(variant: any, key: string, value: any) {\n if (typeof variant === 'function') {\n return variant\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const spreadVariant = variant[`...${cat}`]\n if (spreadVariant) {\n return spreadVariant\n }\n }\n }\n let fn: any\n if (typeof value === 'number') {\n fn = variant[':number']\n } else if (typeof value === 'string') {\n fn = variant[':string']\n } else if (value === true || value === false) {\n fn = variant[':boolean']\n }\n fn = fn || variant[value]\n // fallback to size ultimately - could do token level detection\n return fn || variant['...'] || variant['...size']\n}\n\nexport const createPropMapper = (staticConfig: Partial<StaticConfig>) => {\n const variants = staticConfig.variants || {}\n const defaultProps = staticConfig.defaultProps || {}\n\n return (\n key: string,\n value: any,\n theme: any,\n props: any,\n returnVariablesAs: ResolveVariableTypes = !!props.animation ? 'value' : 'auto',\n avoidDefaultProps = false\n ) => {\n const conf = getConfig()\n if (!conf) {\n console.trace('no conf! err')\n return\n }\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n const fontFamily = props.fontFamily || defaultProps.fontFamily || '$body'\n const variant = variants && variants[key]\n\n if (variant && value !== undefined) {\n let variantValue = getVariantFunction(variant, key, value)\n\n if (variantValue) {\n if (typeof variantValue === 'function') {\n const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(value, {\n fonts: conf.fontsParsed,\n tokens: conf.tokensParsed,\n theme,\n // TODO do this in splitstlye\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n props: avoidDefaultProps\n ? props\n : new Proxy(props, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n // these props may be extracted into classNames, but we still want to access them\n // at runtime, so we proxy back to defaultProps but don't pass them\n if (defaultProps) {\n return Reflect.get(defaultProps, key)\n }\n },\n }),\n })\n }\n\n if (isObj(variantValue)) {\n variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs)\n }\n\n return expansions(variantValue)\n }\n }\n\n let shouldReturn = false\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n shouldReturn = true\n if (value[0] === '$') {\n value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs)\n } else if (isVariable(value)) {\n value = getVariableValue(value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return expansions({\n [key]: value,\n })\n }\n }\n}\n\nconst resolveTokens = (\n input: Object,\n conf: TamaguiInternalConfig,\n theme: any,\n fontFamily: any,\n resolveAs?: ResolveVariableTypes\n) => {\n let res = {}\n for (const rKey in input) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = input[rKey]\n if (isVariable(val)) {\n res[fKey] =\n resolveAs === 'variable' ? val : !isWeb || resolveAs === 'value' ? val.val : val.variable\n } else if (typeof val === 'string') {\n const fVal = val[0] === '$' ? getToken(fKey, val, conf, theme, fontFamily, resolveAs) : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // for things like shadowOffset, hoverStyle which is a sub-object\n res[fKey] = resolveTokens(val, conf, theme, fontFamily, resolveAs)\n } else {\n // nullish values cant be tokens so need no exrta parsing\n res[fKey] = input[fKey]\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (res[fKey]?.[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey])\n }\n }\n }\n return res\n}\n\nconst fontShorthand = {\n fontSize: 'size',\n fontWeight: 'weight',\n}\n\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed, fontsParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes\n) => {\n let valOrVar: any\n let hasSet = false\n if (value in theme) {\n valOrVar = theme[value]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = fontsParsed[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n case 'lineHeight':\n case 'letterSpacing':\n case 'fontWeight':\n valOrVar = fontsParsed[fontFamily]?.[fontShorthand[key] || key]?.[value] || value\n hasSet = true\n break\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const res = tokensParsed[cat][value]\n if (res) {\n valOrVar = res\n hasSet = true\n }\n }\n }\n if (!hasSet) {\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n valOrVar = spaceVar\n hasSet = true\n }\n }\n }\n if (hasSet) {\n return getVariableValue(valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed)\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(valOrVar: Variable | any, resolveAs: ResolveVariableTypes = 'auto') {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\n }\n if (!isWeb || resolveAs === 'value') {\n return valOrVar.val\n }\n return valOrVar.variable\n }\n return valOrVar\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\nconst tokenCategories = {\n radius: {\n borderRadius: true,\n },\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n\n// TODO need to move to own engine for all this... duplicating some functionality temporarily\n\nconst sidesX = ['Left', 'Right']\nconst sidesY = ['Top', 'Bottom']\nconst sidesXY = [...sidesX, ...sidesY]\nconst expand = {\n padding: sidesXY.map((x) => `padding${x}`),\n paddingHorizontal: sidesX.map((x) => `padding${x}`),\n paddingVertical: sidesY.map((x) => `padding${x}`),\n margin: sidesXY.map((x) => `margin${x}`),\n marginHorizontal: sidesX.map((x) => `margin${x}`),\n marginVertical: sidesY.map((x) => `margin${x}`),\n borderWidth: sidesXY.map((x) => `border${x}Width`),\n}\n\nfunction expansions(styleObj: Record<string, any>) {\n for (const key in expand) {\n if (key in styleObj) {\n for (const expandKey of expand[key]) {\n styleObj[expandKey] = styleObj[key]\n }\n delete styleObj[key]\n }\n }\n if ('flex' in styleObj) {\n // see spec for flex shorthand https://developer.mozilla.org/en-US/docs/Web/CSS/flex\n if (typeof styleObj.flex === 'number') {\n styleObj.flexGrow = styleObj.flexGrow ?? styleObj.flex\n styleObj.flexShrink = styleObj.flexShrink ?? 1\n delete styleObj.flex\n }\n }\n return styleObj\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { getConfig } from '../conf'\nimport { isWeb } from '../constants/platform'\nimport { Variable, isVariable } from '../createVariable'\nimport {\n DebugProp,\n GenericVariantDefinitions,\n PropMapper,\n SplitStyleState,\n StaticConfigParsed,\n TamaguiInternalConfig,\n VariantSpreadFunction,\n} from '../types'\nimport { expandStyle } from './expandStyle'\nimport { expandStyles } from './expandStyles'\nimport { getVariantExtras } from './getVariantExtras'\nimport { isObj } from './isObj'\nimport { mergeProps } from './mergeProps'\n\nexport type ResolveVariableTypes = 'auto' | 'value' | 'variable' | 'both' | 'non-color-value'\n\nexport const getReturnVariablesAs = (props: any, state: Partial<SplitStyleState>) => {\n return !!props.animation || state.resolveVariablesAs === 'value'\n ? isWeb\n ? 'non-color-value'\n : 'value'\n : 'auto'\n}\n\nexport const createPropMapper = (staticConfig: StaticConfigParsed) => {\n const variants = staticConfig.variants || {}\n\n // temp remove classnames\n const defaultProps = mergeProps(staticConfig.defaultProps || {}, {}, true)[0]\n\n const mapper: PropMapper = (\n key,\n value,\n theme,\n propsIn,\n state,\n avoidDefaultProps = false,\n debug\n ) => {\n const conf = getConfig()\n if (!conf) {\n console.trace('no conf! err')\n return\n }\n\n const props = state.fallbackProps || propsIn\n const returnVariablesAs = getReturnVariablesAs(props, state)\n\n // handled here because we need to resolve this off tokens, its the only one-off like this\n const fontFamily = props.fontFamily || defaultProps.fontFamily || '$body'\n\n const variantValue = resolveVariants(\n key,\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n '',\n avoidDefaultProps\n )\n\n if (variantValue) {\n return variantValue\n }\n\n let shouldReturn = value !== undefined && value !== null\n\n // handle shorthands\n if (conf.shorthands[key]) {\n shouldReturn = true\n key = conf.shorthands[key]\n }\n\n if (value) {\n if (value[0] === '$') {\n // prettier-ignore\n value = getToken(key, value, conf, theme, fontFamily, returnVariablesAs, debug)\n } else if (isVariable(value)) {\n value = getVariableValue(key, value, returnVariablesAs)\n }\n }\n\n if (shouldReturn) {\n return expandStyle(key, value) || [[key, value]]\n }\n }\n\n return mapper\n}\n\ntype StyleResolver = (\n key: string,\n value: any,\n props: Record<string, any>,\n defaultProps: any,\n theme: any,\n variants: GenericVariantDefinitions,\n fontFamily: string,\n conf: TamaguiInternalConfig,\n returnVariablesAs: 'auto' | 'value' | 'non-color-value',\n staticConfig: StaticConfigParsed,\n parentVariantKey: string,\n avoidDefaultProps?: boolean,\n debug?: DebugProp\n) => any\n\nconst resolveVariants: StyleResolver = (\n key,\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n avoidDefaultProps = false,\n debug\n) => {\n const variant = variants && variants[key]\n if (variant && value !== undefined) {\n let variantValue = getVariantDefinition(variant, key, value, conf)\n\n if (variantValue) {\n if (typeof variantValue === 'function') {\n const fn = variantValue as VariantSpreadFunction<any>\n variantValue = fn(value, getVariantExtras(props, theme, defaultProps, avoidDefaultProps))\n }\n\n if (isObj(variantValue)) {\n variantValue = resolveTokensAndVariants(\n key,\n variantValue,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n avoidDefaultProps,\n debug\n )\n }\n\n if (variantValue) {\n return Object.entries(expandStyles(variantValue))\n }\n } else {\n // variant at key exists, but no matching variant value, return nothing\n if (process.env.NODE_ENV === 'development') {\n if (staticConfig.validStyles?.[key]) {\n return null\n }\n if (value === false) {\n // don't warn on missing false values, common to only use true\n return null\n }\n const name = staticConfig.componentName || '[UnnamedComponent]'\n console.warn(\n `No variant found: ${name} has variant \"${key}\", but no matching value \"${value}\"`\n )\n }\n return null\n }\n }\n}\n\nconst resolveTokensAndVariants: StyleResolver = (\n key, // we dont use key assume value is object instead\n value,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n parentVariantKey,\n avoidDefaultProps,\n debug\n) => {\n const res = {}\n for (const rKey in value) {\n const fKey = conf.shorthands[rKey] || rKey\n const val = value[rKey]\n if (isVariable(val)) {\n res[fKey] = !isWeb || returnVariablesAs === 'value' ? val.val : val.variable\n } else if (variants[fKey]) {\n // avoids infinite loop if variant is matching a style prop\n // eg: { variants: { flex: { true: { flex: 2 } } } }\n if (parentVariantKey === key) {\n res[fKey] = val\n } else {\n Object.assign(\n res,\n Object.fromEntries(\n resolveVariants(\n fKey,\n val,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n key,\n avoidDefaultProps,\n debug\n )\n )\n )\n }\n } else if (typeof val === 'string') {\n const fVal =\n val[0] === '$'\n ? getToken(fKey, val, conf, theme, fontFamily, returnVariablesAs, debug)\n : val\n res[fKey] = fVal\n } else {\n if (isObj(val)) {\n // sub-objects: media queries, pseudos, shadowOffset\n res[fKey] = resolveTokensAndVariants(\n fKey,\n val,\n props,\n defaultProps,\n theme,\n variants,\n fontFamily,\n conf,\n returnVariablesAs,\n staticConfig,\n key,\n avoidDefaultProps,\n debug\n )\n } else {\n // nullish values cant be tokens, need no extra parsing\n res[fKey] = value[fKey]\n }\n }\n if (process.env.NODE_ENV === 'development') {\n if (res[fKey]?.[0] === '$') {\n console.warn(`\u26A0\uFE0F Missing token in theme ${theme.name}:`, fKey, res[fKey])\n }\n }\n }\n return res\n}\n\n// goes through specificity finding best matching variant function\nfunction getVariantDefinition(variant: any, key: string, value: any, conf: TamaguiInternalConfig) {\n if (typeof variant === 'function') {\n return variant\n }\n if (variant[value]) {\n return variant[value]\n }\n const { tokensParsed } = conf\n if (variant['...size'] && value in tokensParsed.size) {\n return variant['...size']\n }\n if (variant['...color'] && value in tokensParsed.color) {\n return variant['...color']\n }\n if (variant['...radius'] && value in tokensParsed.radius) {\n return variant['...radius']\n }\n if (variant['...space'] && value in tokensParsed.space) {\n return variant['...space']\n }\n if (variant['...zIndex'] && value in tokensParsed.zIndex) {\n return variant['...zIndex']\n }\n let fn: any\n if (typeof value === 'number') {\n fn = variant[':number']\n } else if (typeof value === 'string') {\n fn = variant[':string']\n } else if (value === true || value === false) {\n fn = variant[':boolean']\n }\n // fallback to catch all or size\n return fn || variant['...'] || variant['...size']\n}\n\nconst fontShorthand = {\n fontSize: 'size',\n fontWeight: 'weight',\n}\n\nconst getToken = (\n key: string,\n value: string,\n { tokensParsed, fontsParsed }: TamaguiInternalConfig,\n theme: any,\n fontFamily: string | undefined = '$body',\n resolveAs?: ResolveVariableTypes,\n debug?: DebugProp\n) => {\n let valOrVar: any\n let hasSet = false\n if (theme[value]) {\n valOrVar = theme[value]\n hasSet = true\n } else {\n switch (key) {\n case 'fontFamily':\n valOrVar = fontsParsed[value]?.family || value\n hasSet = true\n break\n case 'fontSize':\n case 'lineHeight':\n case 'letterSpacing':\n case 'fontWeight':\n valOrVar = fontsParsed[fontFamily]?.[fontShorthand[key] || key]?.[value] || value\n hasSet = true\n break\n }\n for (const cat in tokenCategories) {\n if (key in tokenCategories[cat]) {\n const res = tokensParsed[cat][value]\n if (res) {\n valOrVar = res\n hasSet = true\n }\n }\n }\n if (!hasSet) {\n const spaceVar = tokensParsed.space[value]\n if (spaceVar) {\n valOrVar = spaceVar\n hasSet = true\n }\n }\n }\n if (hasSet) {\n return getVariableValue(key, valOrVar, resolveAs)\n }\n if (process.env.NODE_ENV === 'development') {\n if (value && value[0] === '$') {\n console.trace(\n `\u26A0\uFE0F You've passed the value \"${value}\" to the style property \"${key}\", but there's no theme or token with the key \"${value}\". Using theme \"${theme.name}\".\n\nSet the debug prop to true to see more detailed debug information.`\n )\n if (debug) {\n if (typeof window !== 'undefined') {\n console.log('Looked in:')\n console.log('Theme:', theme)\n console.log('Tokens:', tokensParsed)\n console.log('Fonts:', fontsParsed)\n }\n }\n return null\n }\n }\n return value\n}\n\nfunction getVariableValue(\n key: string,\n valOrVar: Variable | any,\n resolveAs: ResolveVariableTypes = 'auto'\n) {\n if (isVariable(valOrVar)) {\n if (resolveAs === 'variable') {\n return valOrVar\n }\n if (resolveAs === 'non-color-value') {\n if (isWeb) {\n if (key in tokenCategories.color) {\n return valOrVar.variable\n }\n }\n return valOrVar.val\n }\n if (!isWeb || resolveAs === 'value') {\n return valOrVar.val\n }\n return valOrVar.variable\n }\n return valOrVar\n}\n\n// just specificy the least costly, all else go to `space` (most keys - we can exclude)\nconst tokenCategories = {\n radius: {\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n },\n size: {\n width: true,\n height: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n },\n color: {\n color: true,\n backgroundColor: true,\n borderColor: true,\n borderBottomColor: true,\n borderTopColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n },\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,18 +1,32 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import { useCallback } from "react";
3
18
  function createShallowUpdate(setter) {
4
- return (next) => {
19
+ return useCallback((next) => {
5
20
  setter((prev) => {
6
21
  for (const key in next) {
7
22
  if (prev[key] !== next[key]) {
8
- return { ...prev, ...next };
23
+ return __spreadValues(__spreadValues({}, prev), next);
9
24
  }
10
25
  }
11
26
  return prev;
12
27
  });
13
- };
28
+ }, [setter]);
14
29
  }
15
- __name(createShallowUpdate, "createShallowUpdate");
16
30
  export {
17
31
  createShallowUpdate
18
32
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createShallowUpdate.tsx"],
4
- "sourcesContent": ["import React from 'react'\n\nimport { TamaguiComponentState } from '../types'\n\nexport function createShallowUpdate(\n setter: React.Dispatch<React.SetStateAction<TamaguiComponentState>>\n) {\n return (next: Partial<TamaguiComponentState>) => {\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"],
5
- "mappings": ";;AAIO,6BACL,QACA;AACA,SAAO,CAAC,SAAyC;AAC/C,WAAO,CAAC,SAAS;AACf,iBAAW,OAAO,MAAM;AACtB,YAAI,KAAK,SAAS,KAAK,MAAM;AAC3B,iBAAO,KAAK,SAAS,KAAK;AAAA,QAC5B;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;AAbgB;",
4
+ "sourcesContent": ["import React, { useCallback } from 'react'\n\nexport function createShallowUpdate<State extends Object>(\n setter: React.Dispatch<React.SetStateAction<State>>\n) {\n return useCallback(\n (next: Partial<State>) => {\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 [setter]\n )\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAEO,6BACL,QACA;AACA,SAAO,YACL,CAAC,SAAyB;AACxB,WAAO,CAAC,SAAS;AACf,iBAAW,OAAO,MAAM;AACtB,YAAI,KAAK,SAAS,KAAK,MAAM;AAC3B,iBAAO,kCAAK,OAAS;AAAA,QACvB;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GACA,CAAC,MAAM,CACT;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,39 +1,66 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ var __objRest = (source, exclude) => {
18
+ var target = {};
19
+ for (var prop in source)
20
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
21
+ target[prop] = source[prop];
22
+ if (source != null && __getOwnPropSymbols)
23
+ for (var prop of __getOwnPropSymbols(source)) {
24
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
25
+ target[prop] = source[prop];
26
+ }
27
+ return target;
28
+ };
3
29
  import * as React from "react";
4
30
  import { ButtonInsideButtonContext } from "../contexts/ButtonInsideButtonContext";
5
31
  import { TextAncestorProvider } from "../views/TextAncestorContext";
6
32
  import { ThemeProvider } from "../views/ThemeProvider";
7
- function createTamaguiProvider({
8
- getCSS,
9
- ...themeProps
10
- }) {
11
- return /* @__PURE__ */ __name(function TamaguiProvider({
12
- injectCSS,
13
- children,
14
- ...themePropsProvider
15
- }) {
33
+ function createTamaguiProvider(config) {
34
+ return function TamaguiProvider(_a) {
35
+ var _b = _a, {
36
+ disableInjectCSS,
37
+ children
38
+ } = _b, themePropsProvider = __objRest(_b, [
39
+ "disableInjectCSS",
40
+ "children"
41
+ ]);
16
42
  if (typeof document !== "undefined") {
17
43
  React.useLayoutEffect(() => {
18
- if (!injectCSS)
44
+ if (disableInjectCSS)
19
45
  return;
20
46
  const style = document.createElement("style");
21
- style.appendChild(document.createTextNode(getCSS()));
47
+ style.appendChild(document.createTextNode(config.getCSS()));
22
48
  document.head.appendChild(style);
23
49
  return () => {
24
50
  document.head.removeChild(style);
25
51
  };
26
- }, []);
52
+ }, [disableInjectCSS]);
27
53
  }
28
54
  return /* @__PURE__ */ React.createElement(ButtonInsideButtonContext.Provider, {
29
55
  value: false
30
- }, /* @__PURE__ */ React.createElement(TextAncestorProvider, null, /* @__PURE__ */ React.createElement(ThemeProvider, {
31
- ...themeProps,
32
- ...themePropsProvider
33
- }, children)));
34
- }, "TamaguiProvider");
56
+ }, /* @__PURE__ */ React.createElement(TextAncestorProvider, null, /* @__PURE__ */ React.createElement(ThemeProvider, __spreadValues({
57
+ themes: config.themes,
58
+ defaultTheme: config.defaultTheme || "light",
59
+ themeClassNameOnRoot: config.themeClassNameOnRoot,
60
+ disableRootThemeClass: config.disableRootThemeClass
61
+ }, themePropsProvider), children)));
62
+ };
35
63
  }
36
- __name(createTamaguiProvider, "createTamaguiProvider");
37
64
  export {
38
65
  createTamaguiProvider
39
66
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createTamaguiProvider.tsx"],
4
- "sourcesContent": ["import * as React from 'react'\n\nimport { ButtonInsideButtonContext } from '../contexts/ButtonInsideButtonContext'\nimport { TamaguiProviderProps } from '../types'\nimport { TextAncestorProvider } from '../views/TextAncestorContext'\nimport { ThemeProvider, ThemeProviderProps } from '../views/ThemeProvider'\n\nexport function createTamaguiProvider({\n getCSS,\n ...themeProps\n}: ThemeProviderProps & {\n getCSS: () => string\n}) {\n return function TamaguiProvider({\n injectCSS,\n children,\n ...themePropsProvider\n }: TamaguiProviderProps) {\n // inject CSS if asked to (not SSR compliant)\n if (typeof document !== 'undefined') {\n React.useLayoutEffect(() => {\n if (!injectCSS) return\n const style = document.createElement('style')\n style.appendChild(document.createTextNode(getCSS()))\n document.head.appendChild(style)\n return () => {\n document.head.removeChild(style)\n }\n }, [])\n }\n\n return (\n <ButtonInsideButtonContext.Provider value={false}>\n <TextAncestorProvider>\n <ThemeProvider {...themeProps} {...themePropsProvider}>\n {children}\n </ThemeProvider>\n </TextAncestorProvider>\n </ButtonInsideButtonContext.Provider>\n )\n }\n}\n"],
5
- "mappings": ";;AAAA;AAEA;AAEA;AACA;AAEO,+BAA+B;AAAA,EACpC;AAAA,KACG;AAAA,GAGF;AACD,SAAO,gDAAyB;AAAA,IAC9B;AAAA,IACA;AAAA,OACG;AAAA,KACoB;AAEvB,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,gBAAgB,MAAM;AAC1B,YAAI,CAAC;AAAW;AAChB,cAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,cAAM,YAAY,SAAS,eAAe,OAAO,CAAC,CAAC;AACnD,iBAAS,KAAK,YAAY,KAAK;AAC/B,eAAO,MAAM;AACX,mBAAS,KAAK,YAAY,KAAK;AAAA,QACjC;AAAA,MACF,GAAG,CAAC,CAAC;AAAA,IACP;AAEA,WACE,oCAAC,0BAA0B,UAA1B;AAAA,MAAmC,OAAO;AAAA,OACzC,oCAAC,4BACC,oCAAC;AAAA,SAAkB;AAAA,SAAgB;AAAA,OAChC,QACH,CACF,CACF;AAAA,EAEJ,GA3BO;AA4BT;AAlCgB;",
4
+ "sourcesContent": ["import * as React from 'react'\n\nimport { ButtonInsideButtonContext } from '../contexts/ButtonInsideButtonContext'\nimport { TamaguiInternalConfig, TamaguiProviderProps } from '../types'\nimport { TextAncestorProvider } from '../views/TextAncestorContext'\nimport { ThemeProvider } from '../views/ThemeProvider'\n\nexport function createTamaguiProvider(config: TamaguiInternalConfig) {\n return function TamaguiProvider({\n disableInjectCSS,\n children,\n ...themePropsProvider\n }: TamaguiProviderProps) {\n // inject CSS if asked to (not SSR compliant)\n if (typeof document !== 'undefined') {\n React.useLayoutEffect(() => {\n if (disableInjectCSS) return\n const style = document.createElement('style')\n style.appendChild(document.createTextNode(config.getCSS()))\n document.head.appendChild(style)\n return () => {\n document.head.removeChild(style)\n }\n }, [disableInjectCSS])\n }\n\n return (\n <ButtonInsideButtonContext.Provider value={false}>\n <TextAncestorProvider>\n <ThemeProvider\n themes={config.themes}\n defaultTheme={config.defaultTheme || 'light'}\n themeClassNameOnRoot={config.themeClassNameOnRoot}\n disableRootThemeClass={config.disableRootThemeClass}\n {...themePropsProvider}\n >\n {children}\n </ThemeProvider>\n </TextAncestorProvider>\n </ButtonInsideButtonContext.Provider>\n )\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAEA;AAEA;AACA;AAEO,+BAA+B,QAA+B;AACnE,SAAO,yBAAyB,IAIP;AAJO,iBAC9B;AAAA;AAAA,MACA;AAAA,QAF8B,IAG3B,+BAH2B,IAG3B;AAAA,MAFH;AAAA,MACA;AAAA;AAIA,QAAI,OAAO,aAAa,aAAa;AACnC,YAAM,gBAAgB,MAAM;AAC1B,YAAI;AAAkB;AACtB,cAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,cAAM,YAAY,SAAS,eAAe,OAAO,OAAO,CAAC,CAAC;AAC1D,iBAAS,KAAK,YAAY,KAAK;AAC/B,eAAO,MAAM;AACX,mBAAS,KAAK,YAAY,KAAK;AAAA,QACjC;AAAA,MACF,GAAG,CAAC,gBAAgB,CAAC;AAAA,IACvB;AAEA,WACE,oCAAC,0BAA0B,UAA1B;AAAA,MAAmC,OAAO;AAAA,OACzC,oCAAC,4BACC,oCAAC;AAAA,MACC,QAAQ,OAAO;AAAA,MACf,cAAc,OAAO,gBAAgB;AAAA,MACrC,sBAAsB,OAAO;AAAA,MAC7B,uBAAuB,OAAO;AAAA,OAC1B,qBAEH,QACH,CACF,CACF;AAAA,EAEJ;AACF;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,27 @@
1
+ import { simpleHash } from "@tamagui/helpers";
2
+ function cssHash(val, maxLen = 10) {
3
+ if (val.length < maxLen) {
4
+ let res = "";
5
+ for (let i = 0; i < val.length; i++) {
6
+ const char = val[i];
7
+ if (specials[char]) {
8
+ res += specials[char];
9
+ } else {
10
+ res += validCSS.test(char) ? char : "_" + char.charCodeAt(0).toString();
11
+ }
12
+ }
13
+ return res;
14
+ }
15
+ return simpleHash(val);
16
+ }
17
+ const validCSS = /[a-z0-9]/i;
18
+ const specials = {
19
+ ".": "dot",
20
+ ",": "_",
21
+ "%": "pct",
22
+ "-": "neg"
23
+ };
24
+ export {
25
+ cssHash
26
+ };
27
+ //# sourceMappingURL=cssHash.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/cssHash.ts"],
4
+ "sourcesContent": ["import { simpleHash } from '@tamagui/helpers'\n\n// not sure it's worth the extra weight, could be dev time though\n// affordances for simple values\nexport function cssHash(val: string, maxLen = 10) {\n if (val.length < maxLen) {\n let res = ''\n for (let i = 0; i < val.length; i++) {\n const char = val[i]\n if (specials[char]) {\n res += specials[char]\n } else {\n res += validCSS.test(char) ? char : '_' + char.charCodeAt(0).toString()\n }\n }\n return res\n }\n return simpleHash(val)\n}\n\nconst validCSS = /[a-z0-9]/i\n\nconst specials = {\n '.': 'dot',\n ',': '_',\n '%': 'pct',\n '-': 'neg',\n}\n"],
5
+ "mappings": "AAAA;AAIO,iBAAiB,KAAa,SAAS,IAAI;AAChD,MAAI,IAAI,SAAS,QAAQ;AACvB,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,YAAM,OAAO,IAAI;AACjB,UAAI,SAAS,OAAO;AAClB,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,eAAO,SAAS,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,CAAC,EAAE,SAAS;AAAA,MACxE;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO,WAAW,GAAG;AACvB;AAEA,MAAM,WAAW;AAEjB,MAAM,WAAW;AAAA,EACf,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;",
6
+ "names": []
7
+ }