@tamagui/core 1.1.8 → 1.1.9

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 (254) hide show
  1. package/dist/cjs/Tamagui.js +4 -0
  2. package/dist/cjs/Tamagui.js.map +1 -1
  3. package/dist/cjs/addTheme.js +1 -0
  4. package/dist/cjs/addTheme.js.map +1 -1
  5. package/dist/cjs/config.js.map +1 -1
  6. package/dist/cjs/createComponent.js +54 -27
  7. package/dist/cjs/createComponent.js.map +1 -1
  8. package/dist/cjs/createFont.js.map +1 -1
  9. package/dist/cjs/createTamagui.js +4 -0
  10. package/dist/cjs/createTamagui.js.map +2 -2
  11. package/dist/cjs/createTokens.web.test.js +1 -0
  12. package/dist/cjs/createTokens.web.test.js.map +1 -1
  13. package/dist/cjs/createVariable.js.map +1 -1
  14. package/dist/cjs/createVariables.js.map +1 -1
  15. package/dist/cjs/helpers/RNComponents.js +1 -0
  16. package/dist/cjs/helpers/RNComponents.js.map +1 -1
  17. package/dist/cjs/helpers/ThemeManager.js +1 -0
  18. package/dist/cjs/helpers/ThemeManager.js.map +1 -1
  19. package/dist/cjs/helpers/ThemeManager.test.js.map +1 -1
  20. package/dist/cjs/helpers/createMediaStyle.js.map +1 -1
  21. package/dist/cjs/helpers/createPropMapper.js.map +1 -1
  22. package/dist/cjs/helpers/expandStyle.js +2 -0
  23. package/dist/cjs/helpers/expandStyle.js.map +1 -1
  24. package/dist/cjs/helpers/expandStyles.js +2 -8
  25. package/dist/cjs/helpers/expandStyles.js.map +3 -3
  26. package/dist/cjs/helpers/extendStaticConfig.js.map +1 -1
  27. package/dist/cjs/helpers/getExpandedShorthands.js.map +1 -1
  28. package/dist/cjs/helpers/getFontLanguage.js.map +1 -1
  29. package/dist/cjs/helpers/getSplitStyles.js +4 -4
  30. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  31. package/dist/cjs/helpers/getStylesAtomic.js +3 -0
  32. package/dist/cjs/helpers/getStylesAtomic.js.map +1 -1
  33. package/dist/cjs/helpers/getThemeCSSRules.js.map +1 -1
  34. package/dist/cjs/helpers/getVariantExtras.js +3 -0
  35. package/dist/cjs/helpers/getVariantExtras.js.map +1 -1
  36. package/dist/cjs/helpers/insertStyleRule.js.map +1 -1
  37. package/dist/cjs/helpers/matchMedia.native.js.map +1 -1
  38. package/dist/cjs/helpers/mergeProps.js.map +1 -1
  39. package/dist/cjs/helpers/mergeTransform.js.map +1 -1
  40. package/dist/cjs/helpers/normalizeColor.js +9 -5
  41. package/dist/cjs/helpers/normalizeColor.js.map +3 -3
  42. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +1 -1
  43. package/dist/cjs/helpers/proxyThemeVariables.js.map +1 -1
  44. package/dist/cjs/helpers/themeable.js +16 -9
  45. package/dist/cjs/helpers/themeable.js.map +1 -1
  46. package/dist/cjs/helpers/themes.js.map +1 -1
  47. package/dist/cjs/helpers/useShallowSetState.js.map +1 -1
  48. package/dist/cjs/helpers/warnOnce.js.map +1 -1
  49. package/dist/cjs/hooks/useMedia.js +13 -9
  50. package/dist/cjs/hooks/useMedia.js.map +1 -1
  51. package/dist/cjs/hooks/useTheme.js +2 -0
  52. package/dist/cjs/hooks/useTheme.js.map +1 -1
  53. package/dist/cjs/hooks/useThemeName.js.map +1 -1
  54. package/dist/cjs/inject-styles.js.map +1 -1
  55. package/dist/cjs/insertFont.js.map +1 -1
  56. package/dist/cjs/setupReactNative.js.map +1 -1
  57. package/dist/cjs/styled.js +2 -0
  58. package/dist/cjs/styled.js.map +1 -1
  59. package/dist/cjs/views/FontLanguage.js +10 -7
  60. package/dist/cjs/views/FontLanguage.js.map +1 -1
  61. package/dist/cjs/views/FontLanguage.native.js +1 -4
  62. package/dist/cjs/views/FontLanguage.native.js.map +1 -1
  63. package/dist/cjs/views/Slot.js +1 -3
  64. package/dist/cjs/views/Slot.js.map +1 -1
  65. package/dist/cjs/views/Stack.web.test.js +2 -11
  66. package/dist/cjs/views/Stack.web.test.js.map +1 -1
  67. package/dist/cjs/views/TamaguiProvider.js +22 -18
  68. package/dist/cjs/views/TamaguiProvider.js.map +1 -1
  69. package/dist/cjs/views/Text.js +2 -0
  70. package/dist/cjs/views/Text.js.map +1 -1
  71. package/dist/cjs/views/Theme.js +16 -18
  72. package/dist/cjs/views/Theme.js.map +1 -1
  73. package/dist/cjs/views/ThemeProvider.js +20 -14
  74. package/dist/cjs/views/ThemeProvider.js.map +1 -1
  75. package/dist/esm/addTheme.js +1 -0
  76. package/dist/esm/addTheme.js.map +1 -1
  77. package/dist/esm/config.js.map +1 -1
  78. package/dist/esm/createComponent.js +50 -27
  79. package/dist/esm/createComponent.js.map +1 -1
  80. package/dist/esm/createFont.js.map +1 -1
  81. package/dist/esm/createTamagui.js +4 -0
  82. package/dist/esm/createTamagui.js.map +2 -2
  83. package/dist/esm/createTokens.web.test.js +1 -0
  84. package/dist/esm/createTokens.web.test.js.map +1 -1
  85. package/dist/esm/createVariable.js.map +1 -1
  86. package/dist/esm/createVariables.js.map +1 -1
  87. package/dist/esm/helpers/RNComponents.js +1 -0
  88. package/dist/esm/helpers/RNComponents.js.map +1 -1
  89. package/dist/esm/helpers/ThemeManager.js +1 -0
  90. package/dist/esm/helpers/ThemeManager.js.map +1 -1
  91. package/dist/esm/helpers/ThemeManager.test.js.map +1 -1
  92. package/dist/esm/helpers/createMediaStyle.js.map +1 -1
  93. package/dist/esm/helpers/createPropMapper.js.map +1 -1
  94. package/dist/esm/helpers/expandStyle.js +2 -0
  95. package/dist/esm/helpers/expandStyle.js.map +1 -1
  96. package/dist/esm/helpers/expandStyles.js +1 -1
  97. package/dist/esm/helpers/expandStyles.js.map +2 -2
  98. package/dist/esm/helpers/extendStaticConfig.js.map +1 -1
  99. package/dist/esm/helpers/getExpandedShorthands.js.map +1 -1
  100. package/dist/esm/helpers/getFontLanguage.js.map +1 -1
  101. package/dist/esm/helpers/getSplitStyles.js +4 -4
  102. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  103. package/dist/esm/helpers/getStylesAtomic.js +3 -0
  104. package/dist/esm/helpers/getStylesAtomic.js.map +1 -1
  105. package/dist/esm/helpers/getThemeCSSRules.js.map +1 -1
  106. package/dist/esm/helpers/getVariantExtras.js +3 -0
  107. package/dist/esm/helpers/getVariantExtras.js.map +1 -1
  108. package/dist/esm/helpers/insertStyleRule.js.map +1 -1
  109. package/dist/esm/helpers/matchMedia.native.js.map +1 -1
  110. package/dist/esm/helpers/mergeProps.js.map +1 -1
  111. package/dist/esm/helpers/mergeTransform.js.map +1 -1
  112. package/dist/esm/helpers/normalizeColor.js +4 -4
  113. package/dist/esm/helpers/normalizeColor.js.map +3 -3
  114. package/dist/esm/helpers/normalizeValueWithProperty.js.map +1 -1
  115. package/dist/esm/helpers/proxyThemeVariables.js.map +1 -1
  116. package/dist/esm/helpers/themeable.js +12 -9
  117. package/dist/esm/helpers/themeable.js.map +1 -1
  118. package/dist/esm/helpers/themes.js.map +1 -1
  119. package/dist/esm/helpers/useShallowSetState.js.map +1 -1
  120. package/dist/esm/helpers/warnOnce.js.map +1 -1
  121. package/dist/esm/hooks/useMedia.js +13 -9
  122. package/dist/esm/hooks/useMedia.js.map +1 -1
  123. package/dist/esm/hooks/useTheme.js +2 -0
  124. package/dist/esm/hooks/useTheme.js.map +1 -1
  125. package/dist/esm/hooks/useThemeName.js.map +1 -1
  126. package/dist/esm/inject-styles.js.map +1 -1
  127. package/dist/esm/insertFont.js.map +1 -1
  128. package/dist/esm/setupReactNative.js.map +1 -1
  129. package/dist/esm/styled.js +2 -0
  130. package/dist/esm/styled.js.map +1 -1
  131. package/dist/esm/views/FontLanguage.js +10 -7
  132. package/dist/esm/views/FontLanguage.js.map +1 -1
  133. package/dist/esm/views/FontLanguage.native.js +1 -4
  134. package/dist/esm/views/FontLanguage.native.js.map +1 -1
  135. package/dist/esm/views/Slot.js +1 -3
  136. package/dist/esm/views/Slot.js.map +1 -1
  137. package/dist/esm/views/Stack.web.test.js +2 -11
  138. package/dist/esm/views/Stack.web.test.js.map +1 -1
  139. package/dist/esm/views/TamaguiProvider.js +18 -18
  140. package/dist/esm/views/TamaguiProvider.js.map +1 -1
  141. package/dist/esm/views/Text.js +2 -0
  142. package/dist/esm/views/Text.js.map +1 -1
  143. package/dist/esm/views/Theme.js +16 -18
  144. package/dist/esm/views/Theme.js.map +1 -1
  145. package/dist/esm/views/ThemeProvider.js +20 -14
  146. package/dist/esm/views/ThemeProvider.js.map +1 -1
  147. package/package.json +12 -15
  148. package/src/createTamagui.ts +1 -0
  149. package/src/helpers/expandStyles.ts +1 -1
  150. package/src/helpers/getSplitStyles.tsx +0 -4
  151. package/src/helpers/normalizeColor.ts +5 -3
  152. package/types/helpers/normalizeColor.d.ts +2 -1
  153. package/dist/cjs/contexts/ButtonInsideButtonContext.js +0 -30
  154. package/dist/cjs/contexts/ButtonInsideButtonContext.js.map +0 -7
  155. package/dist/cjs/contexts/ThemeContext.js +0 -30
  156. package/dist/cjs/contexts/ThemeContext.js.map +0 -7
  157. package/dist/cjs/createFont.test.js +0 -125
  158. package/dist/cjs/createFont.test.js.map +0 -7
  159. package/dist/cjs/createTokens.test.js +0 -27
  160. package/dist/cjs/createTokens.test.js.map +0 -7
  161. package/dist/cjs/createVariable.test.js +0 -7
  162. package/dist/cjs/createVariable.test.js.map +0 -7
  163. package/dist/cjs/helpers/areEqualSets.js +0 -38
  164. package/dist/cjs/helpers/areEqualSets.js.map +0 -7
  165. package/dist/cjs/helpers/assignNativePropsToWeb.js +0 -188
  166. package/dist/cjs/helpers/assignNativePropsToWeb.js.map +0 -7
  167. package/dist/cjs/helpers/assignNativePropsToWeb.native.js +0 -30
  168. package/dist/cjs/helpers/assignNativePropsToWeb.native.js.map +0 -7
  169. package/dist/cjs/helpers/cache.js +0 -43
  170. package/dist/cjs/helpers/cache.js.map +0 -7
  171. package/dist/cjs/helpers/calc.js +0 -71
  172. package/dist/cjs/helpers/calc.js.map +0 -7
  173. package/dist/cjs/helpers/getFont.js +0 -66
  174. package/dist/cjs/helpers/getFont.js.map +0 -7
  175. package/dist/cjs/helpers/getSize.js +0 -44
  176. package/dist/cjs/helpers/getSize.js.map +0 -7
  177. package/dist/cjs/helpers/getSplitStyles.test.js +0 -19
  178. package/dist/cjs/helpers/getSplitStyles.test.js.map +0 -7
  179. package/dist/cjs/helpers/getStackSize.js +0 -46
  180. package/dist/cjs/helpers/getStackSize.js.map +0 -7
  181. package/dist/cjs/helpers/startTransition.js +0 -36
  182. package/dist/cjs/helpers/startTransition.js.map +0 -7
  183. package/dist/cjs/hooks/useConstant.js +0 -39
  184. package/dist/cjs/hooks/useConstant.js.map +0 -7
  185. package/dist/cjs/hooks/useIsMounted.js +0 -40
  186. package/dist/cjs/hooks/useIsMounted.js.map +0 -7
  187. package/dist/cjs/hooks/usePressable.js +0 -36
  188. package/dist/cjs/hooks/usePressable.js.map +0 -7
  189. package/dist/cjs/hooks/useUnmountEffect.js +0 -32
  190. package/dist/cjs/hooks/useUnmountEffect.js.map +0 -7
  191. package/dist/cjs/injectStyles.js +0 -40
  192. package/dist/cjs/injectStyles.js.map +0 -7
  193. package/dist/cjs/views/Stack.test.js +0 -31
  194. package/dist/cjs/views/Stack.test.js.map +0 -7
  195. package/dist/cjs/views/ThemeInverse.js +0 -56
  196. package/dist/cjs/views/ThemeInverse.js.map +0 -7
  197. package/dist/cjs/views/ThemeReset.js +0 -69
  198. package/dist/cjs/views/ThemeReset.js.map +0 -7
  199. package/dist/esm/contexts/ButtonInsideButtonContext.js +0 -6
  200. package/dist/esm/contexts/ButtonInsideButtonContext.js.map +0 -7
  201. package/dist/esm/contexts/ThemeContext.js +0 -6
  202. package/dist/esm/contexts/ThemeContext.js.map +0 -7
  203. package/dist/esm/createFont.test.js +0 -124
  204. package/dist/esm/createFont.test.js.map +0 -7
  205. package/dist/esm/createTokens.test.js +0 -26
  206. package/dist/esm/createTokens.test.js.map +0 -7
  207. package/dist/esm/createVariable.test.js +0 -6
  208. package/dist/esm/createVariable.test.js.map +0 -7
  209. package/dist/esm/helpers/areEqualSets.js +0 -14
  210. package/dist/esm/helpers/areEqualSets.js.map +0 -7
  211. package/dist/esm/helpers/assignNativePropsToWeb.js +0 -164
  212. package/dist/esm/helpers/assignNativePropsToWeb.js.map +0 -7
  213. package/dist/esm/helpers/assignNativePropsToWeb.native.js +0 -6
  214. package/dist/esm/helpers/assignNativePropsToWeb.native.js.map +0 -7
  215. package/dist/esm/helpers/cache.js +0 -18
  216. package/dist/esm/helpers/cache.js.map +0 -7
  217. package/dist/esm/helpers/calc.js +0 -47
  218. package/dist/esm/helpers/calc.js.map +0 -7
  219. package/dist/esm/helpers/getFont.js +0 -42
  220. package/dist/esm/helpers/getFont.js.map +0 -7
  221. package/dist/esm/helpers/getSize.js +0 -19
  222. package/dist/esm/helpers/getSize.js.map +0 -7
  223. package/dist/esm/helpers/getSplitStyles.test.js +0 -18
  224. package/dist/esm/helpers/getSplitStyles.test.js.map +0 -7
  225. package/dist/esm/helpers/getStackSize.js +0 -22
  226. package/dist/esm/helpers/getStackSize.js.map +0 -7
  227. package/dist/esm/helpers/startTransition.js +0 -6
  228. package/dist/esm/helpers/startTransition.js.map +0 -7
  229. package/dist/esm/hooks/useConstant.js +0 -15
  230. package/dist/esm/hooks/useConstant.js.map +0 -7
  231. package/dist/esm/hooks/useIsMounted.js +0 -16
  232. package/dist/esm/hooks/useIsMounted.js.map +0 -7
  233. package/dist/esm/hooks/usePressable.js +0 -12
  234. package/dist/esm/hooks/usePressable.js.map +0 -7
  235. package/dist/esm/hooks/useUnmountEffect.js +0 -8
  236. package/dist/esm/hooks/useUnmountEffect.js.map +0 -7
  237. package/dist/esm/injectStyles.js +0 -16
  238. package/dist/esm/injectStyles.js.map +0 -7
  239. package/dist/esm/views/Stack.test.js +0 -30
  240. package/dist/esm/views/Stack.test.js.map +0 -7
  241. package/dist/esm/views/ThemeInverse.js +0 -32
  242. package/dist/esm/views/ThemeInverse.js.map +0 -7
  243. package/dist/esm/views/ThemeReset.js +0 -39
  244. package/dist/esm/views/ThemeReset.js.map +0 -7
  245. package/src/createFont.web.test.tsx +0 -129
  246. package/src/createTokens.web.test.tsx +0 -29
  247. package/src/createVariable.web.test.tsx +0 -7
  248. package/src/helpers/ThemeManager.test.tsx +0 -497
  249. package/src/views/Stack.web.test.tsx +0 -71
  250. package/types/createFont.test.d.ts +0 -2
  251. package/types/createTokens.test.d.ts +0 -2
  252. package/types/createVariable.test.d.ts +0 -2
  253. package/types/helpers/getSplitStyles.test.d.ts +0 -2
  254. package/types/views/Stack.test.d.ts +0 -2
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/views/Theme.tsx"],
4
4
  "sourcesContent": ["import { isWeb } from '@tamagui/constants'\nimport { Children, cloneElement } from 'react'\n\nimport { variableToString } from '../createVariable'\nimport { ThemeManagerContext } from '../helpers/ThemeManagerContext'\nimport { useServerRef } from '../hooks/useServerHooks'\nimport { ChangedThemeResponse, useChangeThemeEffect } from '../hooks/useTheme'\nimport { ThemeProps } from '../types'\n\nexport function Theme(props: ThemeProps) {\n // @ts-expect-error only for internal views\n if (props.disable) return props.children\n const isRoot = !!props['_isRoot']\n const themeState = useChangeThemeEffect(props, isRoot)\n const children = props['data-themeable']\n ? Children.map(props.children, (child) =>\n cloneElement(child, { ['data-themeable']: true })\n )\n : props.children\n\n return useThemedChildren(themeState, children, props)\n}\n\nexport function useThemedChildren(\n themeState: ChangedThemeResponse,\n children: any,\n options: { forceClassName?: boolean; shallow?: boolean }\n) {\n const { themeManager, isNewTheme, className, theme } = themeState\n const { shallow, forceClassName } = options\n\n const hasEverThemed = useServerRef(false)\n if (isNewTheme) {\n hasEverThemed.current = true\n }\n\n // once a theme is set it always passes the context to avoid reparenting\n // until then no context to avoid lots of context\n if (!isNewTheme && !hasEverThemed.current && !forceClassName && !shallow) {\n return children\n }\n\n // be sure to memoize shouldReset to avoid reparenting\n let next = children\n\n if (shallow && themeManager) {\n next = Children.map(next, (child) => {\n return cloneElement(\n child,\n undefined,\n <Theme name={themeManager.state.parentName}>{child.props.children}</Theme>\n )\n })\n }\n\n next = (\n <ThemeManagerContext.Provider value={themeManager}>\n {next}\n </ThemeManagerContext.Provider>\n )\n\n if (isWeb) {\n const enableClassName =\n forceClassName === true || (forceClassName !== false && isNewTheme)\n return (\n <span\n className=\"_dsp_contents\"\n {...(theme &&\n enableClassName && {\n className: `${className} ${forceClassName ? 'forced1' : ''} _dsp_contents`,\n style: {\n // in order to provide currentColor, set color by default\n color: variableToString(theme.color),\n },\n })}\n >\n {next}\n </span>\n )\n }\n\n return next\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkDQ;AAlDR,uBAAsB;AACtB,mBAAuC;AAEvC,4BAAiC;AACjC,iCAAoC;AACpC,4BAA6B;AAC7B,sBAA2D;AAGpD,SAAS,MAAM,OAAmB;AAEvC,MAAI,MAAM;AAAS,WAAO,MAAM;AAChC,QAAM,SAAS,CAAC,CAAC,MAAM;AACvB,QAAM,iBAAa,sCAAqB,OAAO,MAAM;AACrD,QAAM,WAAW,MAAM,oBACnB,sBAAS;AAAA,IAAI,MAAM;AAAA,IAAU,CAAC,cAC5B,2BAAa,OAAO,EAAE,CAAC,mBAAmB,KAAK,CAAC;AAAA,EAClD,IACA,MAAM;AAEV,SAAO,kBAAkB,YAAY,UAAU,KAAK;AACtD;AAEO,SAAS,kBACd,YACA,UACA,SACA;AACA,QAAM,EAAE,cAAc,YAAY,WAAW,MAAM,IAAI;AACvD,QAAM,EAAE,SAAS,eAAe,IAAI;AAEpC,QAAM,oBAAgB,oCAAa,KAAK;AACxC,MAAI,YAAY;AACd,kBAAc,UAAU;AAAA,EAC1B;AAIA,MAAI,CAAC,cAAc,CAAC,cAAc,WAAW,CAAC,kBAAkB,CAAC,SAAS;AACxE,WAAO;AAAA,EACT;AAGA,MAAI,OAAO;AAEX,MAAI,WAAW,cAAc;AAC3B,WAAO,sBAAS,IAAI,MAAM,CAAC,UAAU;AACnC,iBAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,4CAAC;AAAA,UAAM,MAAM,aAAa,MAAM;AAAA,UAAa,gBAAM,MAAM;AAAA,SAAS;AAAA,MACpE;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SACE,4CAAC,+CAAoB,UAApB;AAAA,IAA6B,OAAO;AAAA,IAClC;AAAA,GACH;AAGF,MAAI,wBAAO;AACT,UAAM,kBACJ,mBAAmB,QAAS,mBAAmB,SAAS;AAC1D,WACE,4CAAC;AAAA,MACC,WAAU;AAAA,MACT,GAAI,SACH,mBAAmB;AAAA,QACjB,WAAW,GAAG,aAAa,iBAAiB,YAAY;AAAA,QACxD,OAAO;AAAA,UAEL,WAAO,wCAAiB,MAAM,KAAK;AAAA,QACrC;AAAA,MACF;AAAA,MAED;AAAA,KACH;AAAA,EAEJ;AAEA,SAAO;AACT;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkDQ;AAlDR,uBAAsB;AACtB,mBAAuC;AAEvC,4BAAiC;AACjC,iCAAoC;AACpC,4BAA6B;AAC7B,sBAA2D;AAGpD,SAAS,MAAM,OAAmB;AAEvC,MAAI,MAAM;AAAS,WAAO,MAAM;AAChC,QAAM,SAAS,CAAC,CAAC,MAAM,SAAS;AAChC,QAAM,iBAAa,sCAAqB,OAAO,MAAM;AACrD,QAAM,WAAW,MAAM,gBAAgB,IACnC,sBAAS;AAAA,IAAI,MAAM;AAAA,IAAU,CAAC,cAC5B,2BAAa,OAAO,EAAE,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAAA,EAClD,IACA,MAAM;AAEV,SAAO,kBAAkB,YAAY,UAAU,KAAK;AACtD;AAEO,SAAS,kBACd,YACA,UACA,SACA;AACA,QAAM,EAAE,cAAc,YAAY,WAAW,MAAM,IAAI;AACvD,QAAM,EAAE,SAAS,eAAe,IAAI;AAEpC,QAAM,oBAAgB,oCAAa,KAAK;AACxC,MAAI,YAAY;AACd,kBAAc,UAAU;AAAA,EAC1B;AAIA,MAAI,CAAC,cAAc,CAAC,cAAc,WAAW,CAAC,kBAAkB,CAAC,SAAS;AACxE,WAAO;AAAA,EACT;AAGA,MAAI,OAAO;AAEX,MAAI,WAAW,cAAc;AAC3B,WAAO,sBAAS,IAAI,MAAM,CAAC,UAAU;AACnC,iBAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,4CAAC,SAAM,MAAM,aAAa,MAAM,YAAa,gBAAM,MAAM,UAAS;AAAA,MACpE;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SACE,4CAAC,+CAAoB,UAApB,EAA6B,OAAO,cAClC,gBACH;AAGF,MAAI,wBAAO;AACT,UAAM,kBACJ,mBAAmB,QAAS,mBAAmB,SAAS;AAC1D,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACT,GAAI,SACH,mBAAmB;AAAA,UACjB,WAAW,GAAG,aAAa,iBAAiB,YAAY;AAAA,UACxD,OAAO;AAAA;AAAA,YAEL,WAAO,wCAAiB,MAAM,KAAK;AAAA,UACrC;AAAA,QACF;AAAA,QAED;AAAA;AAAA,IACH;AAAA,EAEJ;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -41,20 +41,26 @@ const ThemeProvider = (props) => {
41
41
  };
42
42
  }, [props.defaultTheme, props.disableRootThemeClass, props.themeClassNameOnRoot]);
43
43
  }
44
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeProviderRootContext.Provider, {
45
- value: (0, import_react.useMemo)(() => {
46
- return {
47
- defaultTheme: props.defaultTheme
48
- };
49
- }, []),
50
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Theme.Theme, {
51
- className: props.className,
52
- name: props.defaultTheme,
53
- forceClassName: props.disableRootThemeClass ? false : void 0,
54
- _isRoot: true,
55
- children: props.children
56
- })
57
- });
44
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
45
+ ThemeProviderRootContext.Provider,
46
+ {
47
+ value: (0, import_react.useMemo)(() => {
48
+ return {
49
+ defaultTheme: props.defaultTheme
50
+ };
51
+ }, []),
52
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
53
+ import_Theme.Theme,
54
+ {
55
+ className: props.className,
56
+ name: props.defaultTheme,
57
+ forceClassName: props.disableRootThemeClass ? false : void 0,
58
+ _isRoot: true,
59
+ children: props.children
60
+ }
61
+ )
62
+ }
63
+ );
58
64
  };
59
65
  // Annotate the CommonJS export names for ESM import in node:
60
66
  0 && (module.exports = {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/views/ThemeProvider.tsx"],
4
4
  "sourcesContent": ["import { isClient } from '@tamagui/constants'\nimport { createContext, useLayoutEffect, useMemo } from 'react'\n\nimport { THEME_CLASSNAME_PREFIX } from '../constants/constants'\nimport { Theme } from './Theme'\n\nexport type ThemeProviderProps = {\n className?: string\n defaultTheme: string\n disableRootThemeClass?: boolean\n themeClassNameOnRoot?: boolean\n children?: any\n reset?: boolean\n}\n\nexport const ThemeProviderRootContext = createContext<Pick<\n ThemeProviderProps,\n 'defaultTheme'\n> | null>(null)\n\nexport const ThemeProvider = (props: ThemeProviderProps) => {\n // ensure theme is attached to root body node as well to work with modals by default\n if (isClient) {\n useLayoutEffect(() => {\n if (props.disableRootThemeClass) return\n const cn = `${THEME_CLASSNAME_PREFIX}${props.defaultTheme}`\n const target = props.themeClassNameOnRoot ? document.documentElement : document.body\n target.classList.add(cn)\n return () => {\n target.classList.remove(cn)\n }\n }, [props.defaultTheme, props.disableRootThemeClass, props.themeClassNameOnRoot])\n }\n\n return (\n <ThemeProviderRootContext.Provider\n value={useMemo(() => {\n return {\n defaultTheme: props.defaultTheme,\n }\n // NOTE DON'T CHANGE THIS ITS ONLY USED BY useThemeName for SSR safety for now...\n }, [])}\n >\n <Theme\n className={props.className}\n name={props.defaultTheme}\n forceClassName={props.disableRootThemeClass ? false : undefined}\n // @ts-expect-error\n _isRoot\n >\n {props.children}\n </Theme>\n </ThemeProviderRootContext.Provider>\n )\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2CM;AA3CN,uBAAyB;AACzB,mBAAwD;AAExD,IAAAA,oBAAuC;AACvC,mBAAsB;AAWf,MAAM,+BAA2B,4BAG9B,IAAI;AAEP,MAAM,gBAAgB,CAAC,UAA8B;AAE1D,MAAI,2BAAU;AACZ,sCAAgB,MAAM;AACpB,UAAI,MAAM;AAAuB;AACjC,YAAM,KAAK,GAAG,2CAAyB,MAAM;AAC7C,YAAM,SAAS,MAAM,uBAAuB,SAAS,kBAAkB,SAAS;AAChF,aAAO,UAAU,IAAI,EAAE;AACvB,aAAO,MAAM;AACX,eAAO,UAAU,OAAO,EAAE;AAAA,MAC5B;AAAA,IACF,GAAG,CAAC,MAAM,cAAc,MAAM,uBAAuB,MAAM,oBAAoB,CAAC;AAAA,EAClF;AAEA,SACE,4CAAC,yBAAyB,UAAzB;AAAA,IACC,WAAO,sBAAQ,MAAM;AACnB,aAAO;AAAA,QACL,cAAc,MAAM;AAAA,MACtB;AAAA,IAEF,GAAG,CAAC,CAAC;AAAA,IAEL,sDAAC;AAAA,MACC,WAAW,MAAM;AAAA,MACjB,MAAM,MAAM;AAAA,MACZ,gBAAgB,MAAM,wBAAwB,QAAQ;AAAA,MAEtD,SAAO;AAAA,MAEN,gBAAM;AAAA,KACT;AAAA,GACF;AAEJ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2CM;AA3CN,uBAAyB;AACzB,mBAAwD;AAExD,IAAAA,oBAAuC;AACvC,mBAAsB;AAWf,MAAM,+BAA2B,4BAG9B,IAAI;AAEP,MAAM,gBAAgB,CAAC,UAA8B;AAE1D,MAAI,2BAAU;AACZ,sCAAgB,MAAM;AACpB,UAAI,MAAM;AAAuB;AACjC,YAAM,KAAK,GAAG,2CAAyB,MAAM;AAC7C,YAAM,SAAS,MAAM,uBAAuB,SAAS,kBAAkB,SAAS;AAChF,aAAO,UAAU,IAAI,EAAE;AACvB,aAAO,MAAM;AACX,eAAO,UAAU,OAAO,EAAE;AAAA,MAC5B;AAAA,IACF,GAAG,CAAC,MAAM,cAAc,MAAM,uBAAuB,MAAM,oBAAoB,CAAC;AAAA,EAClF;AAEA,SACE;AAAA,IAAC,yBAAyB;AAAA,IAAzB;AAAA,MACC,WAAO,sBAAQ,MAAM;AACnB,eAAO;AAAA,UACL,cAAc,MAAM;AAAA,QACtB;AAAA,MAEF,GAAG,CAAC,CAAC;AAAA,MAEL;AAAA,QAAC;AAAA;AAAA,UACC,WAAW,MAAM;AAAA,UACjB,MAAM,MAAM;AAAA,UACZ,gBAAgB,MAAM,wBAAwB,QAAQ;AAAA,UAEtD,SAAO;AAAA,UAEN,gBAAM;AAAA;AAAA,MACT;AAAA;AAAA,EACF;AAEJ;",
6
6
  "names": ["import_constants"]
7
7
  }
@@ -25,6 +25,7 @@ function addTheme(props) {
25
25
  if (isWeb) {
26
26
  if (insertCSS) {
27
27
  cssRules = getThemeCSSRules({
28
+ // @ts-ignore this works but should be fixed types
28
29
  config,
29
30
  themeName,
30
31
  names: [themeName],
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/addTheme.ts"],
4
4
  "sourcesContent": ["import { isWeb } from '@tamagui/constants'\n\nimport { getConfig, updateConfig } from './config'\nimport { getThemeCSSRules } from './helpers/getThemeCSSRules'\nimport { ensureThemeVariable, proxyThemeToParents } from './helpers/themes'\nimport { ThemeDefinition, ThemeParsed } from './types'\n\nexport function addTheme(props: {\n name: string\n theme: Partial<Record<keyof ThemeDefinition, any>>\n insertCSS?: boolean\n update?: boolean\n}) {\n const config = getConfig()\n\n if (process.env.NODE_ENV === 'development') {\n if (!config) {\n throw new Error('No config')\n }\n const theme = config.themes[props.name]\n if (!props.update && theme) {\n return { theme }\n }\n }\n\n const { name: themeName, theme: themeIn, insertCSS } = props\n const theme = { ...themeIn } as ThemeParsed\n for (const key in theme) {\n ensureThemeVariable(theme, key)\n }\n\n const themeProxied = proxyThemeToParents(themeName, theme, config.themes)\n config.themes[themeName] = themeProxied\n\n let cssRules: string[] = []\n\n if (isWeb) {\n if (insertCSS) {\n cssRules = getThemeCSSRules({\n // @ts-ignore this works but should be fixed types\n config,\n themeName,\n names: [themeName],\n theme,\n })\n const id = `t_theme_style_${themeName}`\n const existing = document.querySelector(`#${id}`)\n const style = document.createElement('style')\n style.id = id\n style.appendChild(document.createTextNode(cssRules.join('\\n')))\n document.head.appendChild(style)\n if (existing) {\n existing.parentElement?.removeChild(existing)\n }\n }\n }\n\n updateConfig('themes', { ...config.themes, [themeName]: themeProxied })\n\n // trigger updates in components\n return {\n theme: themeProxied,\n cssRules,\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,aAAa;AAEtB,SAAS,WAAW,oBAAoB;AACxC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB,2BAA2B;AAGlD,SAAS,SAAS,OAKtB;AAZH;AAaE,QAAM,SAAS,UAAU;AAEzB,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,WAAW;AAAA,IAC7B;AACA,UAAMA,SAAQ,OAAO,OAAO,MAAM;AAClC,QAAI,CAAC,MAAM,UAAUA,QAAO;AAC1B,aAAO,EAAE,OAAAA,OAAM;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,EAAE,MAAM,WAAW,OAAO,SAAS,UAAU,IAAI;AACvD,QAAM,QAAQ,EAAE,GAAG,QAAQ;AAC3B,aAAW,OAAO,OAAO;AACvB,wBAAoB,OAAO,GAAG;AAAA,EAChC;AAEA,QAAM,eAAe,oBAAoB,WAAW,OAAO,OAAO,MAAM;AACxE,SAAO,OAAO,aAAa;AAE3B,MAAI,WAAqB,CAAC;AAE1B,MAAI,OAAO;AACT,QAAI,WAAW;AACb,iBAAW,iBAAiB;AAAA,QAE1B;AAAA,QACA;AAAA,QACA,OAAO,CAAC,SAAS;AAAA,QACjB;AAAA,MACF,CAAC;AACD,YAAM,KAAK,iBAAiB;AAC5B,YAAM,WAAW,SAAS,cAAc,IAAI,IAAI;AAChD,YAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,YAAM,KAAK;AACX,YAAM,YAAY,SAAS,eAAe,SAAS,KAAK,IAAI,CAAC,CAAC;AAC9D,eAAS,KAAK,YAAY,KAAK;AAC/B,UAAI,UAAU;AACZ,uBAAS,kBAAT,mBAAwB,YAAY;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAEA,eAAa,UAAU,EAAE,GAAG,OAAO,QAAQ,CAAC,YAAY,aAAa,CAAC;AAGtE,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,EACF;AACF;",
5
+ "mappings": "AAAA,SAAS,aAAa;AAEtB,SAAS,WAAW,oBAAoB;AACxC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB,2BAA2B;AAGlD,SAAS,SAAS,OAKtB;AAZH;AAaE,QAAM,SAAS,UAAU;AAEzB,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,WAAW;AAAA,IAC7B;AACA,UAAMA,SAAQ,OAAO,OAAO,MAAM,IAAI;AACtC,QAAI,CAAC,MAAM,UAAUA,QAAO;AAC1B,aAAO,EAAE,OAAAA,OAAM;AAAA,IACjB;AAAA,EACF;AAEA,QAAM,EAAE,MAAM,WAAW,OAAO,SAAS,UAAU,IAAI;AACvD,QAAM,QAAQ,EAAE,GAAG,QAAQ;AAC3B,aAAW,OAAO,OAAO;AACvB,wBAAoB,OAAO,GAAG;AAAA,EAChC;AAEA,QAAM,eAAe,oBAAoB,WAAW,OAAO,OAAO,MAAM;AACxE,SAAO,OAAO,SAAS,IAAI;AAE3B,MAAI,WAAqB,CAAC;AAE1B,MAAI,OAAO;AACT,QAAI,WAAW;AACb,iBAAW,iBAAiB;AAAA;AAAA,QAE1B;AAAA,QACA;AAAA,QACA,OAAO,CAAC,SAAS;AAAA,QACjB;AAAA,MACF,CAAC;AACD,YAAM,KAAK,iBAAiB;AAC5B,YAAM,WAAW,SAAS,cAAc,IAAI,IAAI;AAChD,YAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,YAAM,KAAK;AACX,YAAM,YAAY,SAAS,eAAe,SAAS,KAAK,IAAI,CAAC,CAAC;AAC9D,eAAS,KAAK,YAAY,KAAK;AAC/B,UAAI,UAAU;AACZ,uBAAS,kBAAT,mBAAwB,YAAY;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAEA,eAAa,UAAU,EAAE,GAAG,OAAO,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC;AAGtE,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,EACF;AACF;",
6
6
  "names": ["theme"]
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/config.ts"],
4
4
  "sourcesContent": ["import { ConfigListener, TamaguiInternalConfig, Tokens } from './types'\n\nlet conf: TamaguiInternalConfig | null\n\nexport const setConfig = (next: TamaguiInternalConfig) => {\n conf = next\n configListeners.forEach((cb) => cb(next))\n}\n\nexport const setConfigFont = (name: string, font: any, fontParsed: any) => {\n if (process.env.NODE_ENV === 'development') {\n if (!conf) throw new Error(`Haven't called createTamagui yet`)\n }\n conf!.fonts[name] = font\n conf!.fontsParsed[`$${name}`] = fontParsed\n}\n\nexport const getConfig = () => {\n if (!conf) {\n throw new Error(\n process.env.NODE_ENV !== 'production'\n ? `Missing tamagui config, you either have a duplicate config, or haven't set it up. Be sure createTamagui is called before rendering.`\n : 'Err0'\n )\n }\n return conf\n}\nexport const getTokens = (prefixed?: boolean): Tokens =>\n prefixed ? conf!.tokensParsed : conf!.tokens\n\n/**\n * Note: this is the same as `getTokens`\n */\nexport const useTokens = getTokens\n\nexport const getThemes = () => conf!.themes\n\nexport const configListeners = new Set<ConfigListener>()\n\nexport const onConfiguredOnce = (cb: ConfigListener) => {\n if (conf) {\n cb(conf)\n } else {\n configListeners.add(cb)\n }\n}\n\nexport const updateConfig = (key: string, value: any) => {\n Object.assign(key, value)\n}\n\n// searches by value name or token name\nexport const getFont = (name: string) => {\n const conf = getConfig()\n return (\n conf.fontsParsed[name] ??\n Object.entries(conf.fontsParsed).find(\n ([k]) => conf.fontsParsed[k]?.family?.['val'] === name\n )?.[1]\n )\n}\n"],
5
- "mappings": "AAEA,IAAI;AAEG,MAAM,YAAY,CAAC,SAAgC;AACxD,SAAO;AACP,kBAAgB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAC1C;AAEO,MAAM,gBAAgB,CAAC,MAAc,MAAW,eAAoB;AACzE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC;AAAM,YAAM,IAAI,MAAM,kCAAkC;AAAA,EAC/D;AACA,OAAM,MAAM,QAAQ;AACpB,OAAM,YAAY,IAAI,UAAU;AAClC;AAEO,MAAM,YAAY,MAAM;AAC7B,MAAI,CAAC,MAAM;AACT,UAAM,IAAI;AAAA,MACR,QAAQ,IAAI,aAAa,eACrB,wIACA;AAAA,IACN;AAAA,EACF;AACA,SAAO;AACT;AACO,MAAM,YAAY,CAAC,aACxB,WAAW,KAAM,eAAe,KAAM;AAKjC,MAAM,YAAY;AAElB,MAAM,YAAY,MAAM,KAAM;AAE9B,MAAM,kBAAkB,oBAAI,IAAoB;AAEhD,MAAM,mBAAmB,CAAC,OAAuB;AACtD,MAAI,MAAM;AACR,OAAG,IAAI;AAAA,EACT,OAAO;AACL,oBAAgB,IAAI,EAAE;AAAA,EACxB;AACF;AAEO,MAAM,eAAe,CAAC,KAAa,UAAe;AACvD,SAAO,OAAO,KAAK,KAAK;AAC1B;AAGO,MAAM,UAAU,CAAC,SAAiB;AApDzC;AAqDE,QAAMA,QAAO,UAAU;AACvB,SACEA,MAAK,YAAY,WACjB,YAAO,QAAQA,MAAK,WAAW,EAAE;AAAA,IAC/B,CAAC,CAAC,CAAC,MAAG;AAzDZ,UAAAC,KAAA;AAyDe,qBAAAA,MAAAD,MAAK,YAAY,OAAjB,gBAAAC,IAAqB,WAArB,mBAA8B,YAAW;AAAA;AAAA,EACpD,MAFA,mBAEI;AAER;",
5
+ "mappings": "AAEA,IAAI;AAEG,MAAM,YAAY,CAAC,SAAgC;AACxD,SAAO;AACP,kBAAgB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAC1C;AAEO,MAAM,gBAAgB,CAAC,MAAc,MAAW,eAAoB;AACzE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC;AAAM,YAAM,IAAI,MAAM,kCAAkC;AAAA,EAC/D;AACA,OAAM,MAAM,IAAI,IAAI;AACpB,OAAM,YAAY,IAAI,MAAM,IAAI;AAClC;AAEO,MAAM,YAAY,MAAM;AAC7B,MAAI,CAAC,MAAM;AACT,UAAM,IAAI;AAAA,MACR,QAAQ,IAAI,aAAa,eACrB,wIACA;AAAA,IACN;AAAA,EACF;AACA,SAAO;AACT;AACO,MAAM,YAAY,CAAC,aACxB,WAAW,KAAM,eAAe,KAAM;AAKjC,MAAM,YAAY;AAElB,MAAM,YAAY,MAAM,KAAM;AAE9B,MAAM,kBAAkB,oBAAI,IAAoB;AAEhD,MAAM,mBAAmB,CAAC,OAAuB;AACtD,MAAI,MAAM;AACR,OAAG,IAAI;AAAA,EACT,OAAO;AACL,oBAAgB,IAAI,EAAE;AAAA,EACxB;AACF;AAEO,MAAM,eAAe,CAAC,KAAa,UAAe;AACvD,SAAO,OAAO,KAAK,KAAK;AAC1B;AAGO,MAAM,UAAU,CAAC,SAAiB;AApDzC;AAqDE,QAAMA,QAAO,UAAU;AACvB,SACEA,MAAK,YAAY,IAAI,OACrB,YAAO,QAAQA,MAAK,WAAW,EAAE;AAAA,IAC/B,CAAC,CAAC,CAAC,MAAG;AAzDZ,UAAAC,KAAA;AAyDe,qBAAAA,MAAAD,MAAK,YAAY,CAAC,MAAlB,gBAAAC,IAAqB,WAArB,mBAA8B,YAAW;AAAA;AAAA,EACpD,MAFA,mBAEI;AAER;",
6
6
  "names": ["conf", "_a"]
7
7
  }
@@ -172,6 +172,7 @@ function createComponent(configIn, ParentComponent) {
172
172
  componentName,
173
173
  reset: props.reset,
174
174
  inverse: props.themeInverse,
175
+ // @ts-expect-error
175
176
  disable: props["data-themeable"],
176
177
  debug: props.debug,
177
178
  shouldUpdate: () => !!stateRef.current.didAccessThemeVariableValue
@@ -188,6 +189,8 @@ function createComponent(configIn, ParentComponent) {
188
189
  const isStringElement = typeof elementType === "string";
189
190
  const isExiting = (presence == null ? void 0 : presence[0]) === false;
190
191
  const mediaState = useMedia(
192
+ // @ts-ignore, we just pass a stable object so we can get it later with
193
+ // should match to the one used in `setMediaShouldUpdate` below
191
194
  stateRef,
192
195
  debugProp ? { props, staticConfig } : null
193
196
  );
@@ -281,9 +284,12 @@ function createComponent(configIn, ParentComponent) {
281
284
  onMouseLeave,
282
285
  hrefAttrs,
283
286
  separator,
287
+ // ignore from here on out
284
288
  forceStyle: _forceStyle,
289
+ // @ts-ignore for next/link compat etc
285
290
  onClick,
286
291
  theme: _themeProp,
292
+ // @ts-ignore
287
293
  defaultVariants,
288
294
  ...nonTamaguiProps
289
295
  } = viewPropsIn;
@@ -291,6 +297,7 @@ function createComponent(configIn, ParentComponent) {
291
297
  let viewProps;
292
298
  if (process.env.TAMAGUI_TARGET === "web" && !isReactNative) {
293
299
  const {
300
+ // event props
294
301
  onMoveShouldSetResponder,
295
302
  onMoveShouldSetResponderCapture,
296
303
  onResponderEnd,
@@ -307,8 +314,10 @@ function createComponent(configIn, ParentComponent) {
307
314
  onSelectionChangeShouldSetResponderCapture,
308
315
  onStartShouldSetResponder,
309
316
  onStartShouldSetResponderCapture,
317
+ // android
310
318
  collapsable,
311
319
  focusable,
320
+ // deprecated,
312
321
  accessible,
313
322
  accessibilityDisabled,
314
323
  onLayout,
@@ -354,11 +363,17 @@ function createComponent(configIn, ParentComponent) {
354
363
  if (_focusable === false) {
355
364
  viewProps.tabIndex = "-1";
356
365
  }
357
- if (elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea") {
366
+ if (
367
+ // These native elements are focusable by default
368
+ elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea"
369
+ ) {
358
370
  if (_focusable === false || accessibilityDisabled === true) {
359
371
  viewProps.tabIndex = "-1";
360
372
  }
361
- } else if (role === "button" || role === "checkbox" || role === "link" || role === "radio" || role === "textbox" || role === "switch") {
373
+ } else if (
374
+ // These roles are made focusable by default
375
+ role === "button" || role === "checkbox" || role === "link" || role === "radio" || role === "textbox" || role === "switch"
376
+ ) {
362
377
  if (_focusable !== false) {
363
378
  viewProps.tabIndex = "0";
364
379
  }
@@ -548,6 +563,7 @@ function createComponent(configIn, ParentComponent) {
548
563
  onClick == null ? void 0 : onClick(e);
549
564
  onPress == null ? void 0 : onPress(e);
550
565
  } : void 0,
566
+ // replicating TouchableWithoutFeedback
551
567
  ...!isWeb && {
552
568
  cancelable: !props.rejectResponderTermination,
553
569
  disabled: isDisabled,
@@ -605,19 +621,22 @@ function createComponent(configIn, ParentComponent) {
605
621
  });
606
622
  if (process.env.TAMAGUI_TARGET === "web") {
607
623
  if (events || isAnimatedReactNativeWeb) {
608
- content = /* @__PURE__ */ jsx("span", {
609
- className: `${isAnimatedReactNativeWeb ? className : ""} _dsp_contents`,
610
- ...events && {
611
- onMouseEnter: events.onMouseEnter,
612
- onMouseLeave: events.onMouseLeave,
613
- onClick: events.onPress,
614
- onMouseDown: events.onPressIn,
615
- onMouseUp: events.onPressOut,
616
- onTouchStart: events.onPressIn,
617
- onTouchEnd: events.onPressOut
618
- },
619
- children: content
620
- });
624
+ content = /* @__PURE__ */ jsx(
625
+ "span",
626
+ {
627
+ className: `${isAnimatedReactNativeWeb ? className : ""} _dsp_contents`,
628
+ ...events && {
629
+ onMouseEnter: events.onMouseEnter,
630
+ onMouseLeave: events.onMouseLeave,
631
+ onClick: events.onPress,
632
+ onMouseDown: events.onPressIn,
633
+ onMouseUp: events.onPressOut,
634
+ onTouchStart: events.onPressIn,
635
+ onTouchEnd: events.onPressOut
636
+ },
637
+ children: content
638
+ }
639
+ );
621
640
  }
622
641
  }
623
642
  if (process.env.NODE_ENV === "development" && process.env.DEBUG !== "tamagui") {
@@ -746,6 +765,7 @@ const Spacer = createComponent({
746
765
  validStyles,
747
766
  defaultProps: {
748
767
  ...stackDefaultStyles,
768
+ // avoid nesting issues
749
769
  tag: "span",
750
770
  size: true,
751
771
  pointerEvents: "none"
@@ -809,11 +829,7 @@ function spacedChildren(props) {
809
829
  final.push(child);
810
830
  } else {
811
831
  final.push(
812
- /* @__PURE__ */ jsx(Fragment, {
813
- children: isZStack ? /* @__PURE__ */ jsx(AbsoluteFill, {
814
- children: child
815
- }) : child
816
- }, index)
832
+ /* @__PURE__ */ jsx(Fragment, { children: isZStack ? /* @__PURE__ */ jsx(AbsoluteFill, { children: child }) : child }, index)
817
833
  );
818
834
  }
819
835
  if (isUnspaced(child) && index === 0)
@@ -866,13 +882,20 @@ function spacedChildren(props) {
866
882
  return final;
867
883
  }
868
884
  function createSpacer({ key, direction, space, spaceFlex }) {
869
- return /* @__PURE__ */ jsx(Spacer, {
870
- size: space,
871
- direction,
872
- ...typeof spaceFlex !== "undefined" && {
873
- flex: spaceFlex === true ? 1 : spaceFlex === false ? 0 : spaceFlex
874
- }
875
- }, key);
885
+ return (
886
+ // @ts-ignore this one blew up but the types seem better
887
+ /* @__PURE__ */ jsx(
888
+ Spacer,
889
+ {
890
+ size: space,
891
+ direction,
892
+ ...typeof spaceFlex !== "undefined" && {
893
+ flex: spaceFlex === true ? 1 : spaceFlex === false ? 0 : spaceFlex
894
+ }
895
+ },
896
+ key
897
+ )
898
+ );
876
899
  }
877
900
  function isUnspaced(child) {
878
901
  var _a, _b;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/createComponent.tsx"],
4
4
  "sourcesContent": ["import { useComposedRefs } from '@tamagui/compose-refs'\nimport {\n isClient,\n isRSC,\n isServer,\n isWeb,\n useIsomorphicLayoutEffect,\n} from '@tamagui/constants'\nimport {\n composeEventHandlers,\n stylePropsView,\n validPseudoKeys,\n validStyles,\n} from '@tamagui/helpers'\nimport { useResponderEvents } from '@tamagui/react-native-use-responder-events'\nimport React, {\n Children,\n Fragment,\n RefObject,\n createElement,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useEffect,\n useRef,\n} from 'react'\n\nimport { onConfiguredOnce } from './config'\nimport { stackDefaultStyles } from './constants/constants'\nimport { FontLanguageContext } from './contexts/FontLanguageContext'\nimport { TextAncestorContext } from './contexts/TextAncestorContext'\nimport { didGetVariableValue, setDidGetVariableValue } from './createVariable'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport { getRect } from './helpers/getRect'\nimport { useSplitStyles } from './helpers/getSplitStyles'\nimport { getAllSelectors } from './helpers/insertStyleRule'\nimport { mergeProps } from './helpers/mergeProps'\nimport { proxyThemeVariables } from './helpers/proxyThemeVariables'\nimport { useShallowSetState } from './helpers/useShallowSetState'\nimport { measureLayout, useElementLayout } from './hooks/useElementLayout'\nimport { setMediaShouldUpdate, useMedia } from './hooks/useMedia'\nimport { useServerRef, useServerState } from './hooks/useServerHooks'\nimport { useThemeWithState } from './hooks/useTheme'\nimport {\n DebugProp,\n SpaceDirection,\n SpaceTokens,\n SpacerProps,\n StaticConfig,\n StaticConfigParsed,\n StylableComponent,\n TamaguiComponent,\n TamaguiComponentState,\n TamaguiConfig,\n TamaguiElement,\n TamaguiInternalConfig,\n UseAnimationHook,\n UseAnimationProps,\n} from './types'\nimport { usePressability } from './vendor/Pressability'\nimport { Slot, mergeEvent } from './views/Slot'\nimport { useThemedChildren } from './views/Theme'\n\n// let t\n// import { timer } from '@tamagui/timer'\n// if (true || process.env.ANALYZE) {\n// t = require().timer()\n// setTimeout(() => {\n// const out = t.print()\n// if (isClient) {\n// alert(out)\n// }\n// }, 2000)\n// }\n\n// this appears to fix expo / babel not picking this up sometimes? really odd\nprocess.env.TAMAGUI_TARGET\n\nexport const defaultComponentState: TamaguiComponentState = {\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n unmounted: true,\n}\n\nconst defaultComponentStateMounted: TamaguiComponentState = {\n ...defaultComponentState,\n unmounted: false,\n}\n\n/**\n * All things that need one-time setup after createTamagui is called\n */\nlet tamaguiConfig: TamaguiInternalConfig\nlet AnimatedText: any\nlet AnimatedView: any\nlet initialTheme: any\n\nexport const mouseUps = new Set<Function>()\nif (typeof document !== 'undefined') {\n const cancelTouches = () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n }\n addEventListener('mouseup', cancelTouches)\n addEventListener('touchend', cancelTouches)\n addEventListener('touchcancel', cancelTouches)\n}\n\n// mutates\nfunction mergeShorthands(\n { defaultProps }: StaticConfigParsed,\n { shorthands }: TamaguiConfig\n) {\n // they are defined in correct order already { ...parent, ...child }\n for (const key of Object.keys(defaultProps)) {\n defaultProps[shorthands[key] || key] = defaultProps[key]\n }\n}\n\n/**\n * Only on native do we need the actual underlying View/Text\n * On the web we avoid react-native altogether in core.\n */\nlet BaseText: any\nlet BaseView: any\nif (process.env.TAMAGUI_TARGET === 'native') {\n const native = require('react-native')\n BaseText = native.Text || native.default.Text\n BaseView = native.View || native.default.View\n}\n\nexport function createComponent<\n ComponentPropTypes extends Object = {},\n Ref = TamaguiElement,\n BaseProps = never\n>(\n configIn: Partial<StaticConfig> | StaticConfigParsed,\n ParentComponent?: StylableComponent\n) {\n const staticConfig = (() => {\n const next = extendStaticConfig(configIn, ParentComponent)\n if ('parsed' in next) {\n return next\n } else {\n return parseStaticConfig(next)\n }\n })()\n\n const defaultComponentClassName = `is_${staticConfig.componentName}`\n let tamaguiDefaultProps: any\n let defaultTag: string | undefined\n\n // see onConfiguredOnce below which attaches a name then to this component\n const component = forwardRef<Ref, ComponentPropTypes>((propsIn: any, forwardedRef) => {\n // test only\n if (process.env.NODE_ENV === 'test') {\n if (propsIn['data-test-renders']) {\n propsIn['data-test-renders']['current'] ??= 0\n propsIn['data-test-renders']['current'] += 1\n }\n }\n // const time = t.start({ quiet: true })\n\n // React inserts default props after your props for some reason...\n // order important so we do loops, you can't just spread because JS does weird things\n let props: any\n if (tamaguiDefaultProps && !propsIn.asChild) {\n props = mergeProps(tamaguiDefaultProps, propsIn)[0]\n } else {\n props = propsIn\n }\n\n const debugProp = props['debug'] as DebugProp\n const { Component, isText, isZStack } = staticConfig\n const componentName = props.componentName || staticConfig.componentName\n const componentClassName = props.asChild\n ? ''\n : props.componentName\n ? `is_${props.componentName}`\n : defaultComponentClassName\n\n /**\n * Component state for tracking animations, pseudos\n */\n const animationsConfig = tamaguiConfig.animations\n const useAnimations = animationsConfig?.useAnimations as UseAnimationHook | undefined\n const avoidClassesWhileAnimating = animationsConfig.isReactNative\n const hasEnterStyle = !!props.enterStyle\n const needsMount = Boolean(\n (isWeb ? isClient : true) && (hasEnterStyle || props.animation)\n )\n const states = useServerState<TamaguiComponentState>(\n needsMount ? defaultComponentState! : defaultComponentStateMounted!\n )\n\n const state = propsIn.forceStyle\n ? { ...states[0], [propsIn.forceStyle]: true }\n : states[0]\n const setState = states[1]\n const setStateShallow = useShallowSetState(setState, debugProp, componentName)\n\n // conditional but if ever true stays true\n // [animated, inversed]\n const stateRef = useRef(\n undefined as any as {\n hasAnimated?: boolean\n themeShallow?: boolean\n didAccessThemeVariableValue?: boolean\n }\n )\n stateRef.current ??= {}\n\n const isAnimated = (() => {\n const next = !!(useAnimations && props.animation)\n if (next && !stateRef.current.hasAnimated) {\n stateRef.current.hasAnimated = true\n }\n return next || stateRef.current.hasAnimated\n })()\n\n const usePresence = tamaguiConfig.animations?.usePresence\n const presence = !isRSC && isAnimated ? usePresence() : null\n\n // set enter/exit variants onto our new props object\n if (isAnimated && presence) {\n const presenceState = presence[2]\n if (presenceState) {\n if (state.unmounted && presenceState.enterVariant) {\n props[presenceState.enterVariant] = true\n }\n if (!presenceState.isPresent && presenceState.exitVariant) {\n props[presenceState.exitVariant] = true\n }\n }\n }\n\n const isReactNative = Boolean(\n staticConfig.isReactNative || (isAnimated && tamaguiConfig.animations.isReactNative)\n )\n\n if (process.env.NODE_ENV === 'development') {\n if (debugProp) {\n // prettier-ignore\n const name = `${componentName || Component?.displayName || Component?.name || '[Unnamed Component]'}`\n const type = isReactNative ? '(rnw)' : ''\n const dataIs = propsIn['data-is'] || ''\n const banner = `${name}${dataIs ? ` ${dataIs}` : ''} ${type}`\n console.group(`%c ${banner}`, 'background: yellow;')\n if (!isServer) {\n console.log('state', state)\n }\n }\n }\n\n const shouldAvoidClasses =\n !isWeb ||\n !!(props.animation && avoidClassesWhileAnimating) ||\n !staticConfig.acceptsClassName\n const shouldForcePseudo = !!propsIn.forceStyle\n const noClassNames = shouldAvoidClasses || shouldForcePseudo\n\n const themeState = useThemeWithState({\n name: props.theme,\n componentName,\n reset: props.reset,\n inverse: props.themeInverse,\n // @ts-expect-error\n disable: props['data-themeable'],\n debug: props.debug,\n shouldUpdate: () => !!stateRef.current.didAccessThemeVariableValue,\n })!\n\n const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false)\n const languageContext = isRSC ? null : useContext(FontLanguageContext)\n const isDisabled = props.disabled ?? props.accessibilityState?.disabled\n\n const isTaggable = !Component || typeof Component === 'string'\n // default to tag, fallback to component (when both strings)\n const element = isWeb\n ? isTaggable\n ? props.tag || defaultTag || Component\n : Component\n : Component\n\n const BaseTextComponent = BaseText || element || 'span'\n const BaseViewComponent = BaseView || element || (hasTextAncestor ? 'span' : 'div')\n let elementType = isText\n ? (isAnimated ? AnimatedText : null) || BaseTextComponent\n : (isAnimated ? AnimatedView : null) || BaseViewComponent\n\n elementType = Component || elementType\n const isStringElement = typeof elementType === 'string'\n\n const isExiting = presence?.[0] === false\n\n const mediaState = useMedia(\n // @ts-ignore, we just pass a stable object so we can get it later with\n // should match to the one used in `setMediaShouldUpdate` below\n stateRef,\n debugProp ? { props, staticConfig } : null\n )\n\n setDidGetVariableValue(false)\n\n const splitStyles = useSplitStyles(\n props,\n staticConfig,\n themeState.theme,\n {\n ...state,\n mediaState,\n noClassNames,\n dynamicStylesInline: noClassNames,\n hasTextAncestor,\n resolveVariablesAs: 'auto',\n isExiting,\n },\n null,\n languageContext || undefined,\n elementType,\n debugProp\n )\n\n // only listen for changes if we are using raw theme values or media space, or dynamic media (native)\n // array = space media breakpoints\n const isMediaSpaced = Array.isArray(splitStyles.hasMedia)\n const shouldListenForMedia =\n didGetVariableValue() ||\n isMediaSpaced ||\n (noClassNames && splitStyles.hasMedia === true)\n\n setMediaShouldUpdate(stateRef, {\n enabled: shouldListenForMedia,\n keys: noClassNames && isMediaSpaced ? (splitStyles.hasMedia as any) : null,\n })\n\n const hostRef = useServerRef<TamaguiElement>(null)\n\n // animation setup\n const isAnimatedReactNativeWeb = isAnimated && avoidClassesWhileAnimating\n\n if (process.env.NODE_ENV === 'development') {\n if (!process.env.TAMAGUI_TARGET) {\n console.error(\n `No process.env.TAMAGUI_TARGET set, please set it to \"native\" or \"web\".`\n )\n }\n\n if (debugProp) {\n console.groupCollapsed('props')\n // prettier-ignore\n console.log('props in', propsIn, 'mapped to', props, 'in order', Object.keys(props))\n console.log('splitStyles', splitStyles)\n // eslint-disable-next-line no-console\n console.log('shouldListenForMedia', shouldListenForMedia)\n // eslint-disable-next-line no-console\n console.log('className', Object.values(splitStyles.classNames))\n if (isClient) {\n console.log('ref', hostRef, '(click to view)')\n }\n console.groupEnd()\n if (debugProp === 'break') {\n // rome-ignore lint/suspicious/noDebugger: ok\n debugger\n }\n }\n }\n\n const {\n viewProps: viewPropsIn,\n pseudos,\n style: splitStylesStyle,\n classNames,\n space,\n } = splitStyles\n\n const propsWithAnimation = props as UseAnimationProps\n\n // once you set animation prop don't remove it, you can set to undefined/false\n // reason is animations are heavy - no way around it, and must be run inline here (\uD83D\uDE45 loading as a sub-component)\n let animationStyles: any\n if (!isRSC && isAnimated && useAnimations) {\n const animations = useAnimations({\n props: propsWithAnimation,\n style: splitStylesStyle,\n presence,\n state,\n pseudos: pseudos || null,\n onDidAnimate: props.onDidAnimate,\n hostRef,\n staticConfig,\n })\n if (animations) {\n animationStyles = animations.style\n }\n }\n\n const {\n hitSlop,\n asChild,\n children,\n onPress,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n themeShallow,\n spaceDirection: _spaceDirection,\n disabled: disabledProp,\n onMouseUp,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n hrefAttrs,\n separator,\n // ignore from here on out\n forceStyle: _forceStyle,\n // @ts-ignore for next/link compat etc\n onClick,\n theme: _themeProp,\n // @ts-ignore\n defaultVariants,\n\n ...nonTamaguiProps\n } = viewPropsIn\n\n const disabled =\n (props.accessibilityState != null && props.accessibilityState.disabled === true) ||\n props.accessibilityDisabled\n\n // these can ultimately be for DOM, react-native-web views, or animated views\n // so the type is pretty loose\n let viewProps: Record<string, any>\n\n // if react-native-web view just pass all props down\n if (process.env.TAMAGUI_TARGET === 'web' && !isReactNative) {\n // otherwise replicate react-native-web functionality\n const {\n // event props\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n\n // android\n collapsable,\n focusable,\n\n // deprecated,\n accessible,\n accessibilityDisabled,\n\n onLayout,\n\n ...webProps\n } = nonTamaguiProps\n\n viewProps = webProps\n\n if (!isRSC) {\n usePlatformMethods(hostRef as RefObject<Element>)\n\n useElementLayout(hostRef as RefObject<Element>, onLayout as any)\n\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n } as any)\n }\n\n if (props.href !== undefined && hrefAttrs !== undefined) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? `_${target}` : target\n }\n }\n\n // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n const _focusable = focusable !== undefined ? focusable : accessible\n const role = viewProps.role\n if (_focusable === false) {\n viewProps.tabIndex = '-1'\n }\n if (\n // These native elements are focusable by default\n elementType === 'a' ||\n elementType === 'button' ||\n elementType === 'input' ||\n elementType === 'select' ||\n elementType === 'textarea'\n ) {\n if (_focusable === false || accessibilityDisabled === true) {\n viewProps.tabIndex = '-1'\n }\n } else if (\n // These roles are made focusable by default\n role === 'button' ||\n role === 'checkbox' ||\n role === 'link' ||\n role === 'radio' ||\n role === 'textbox' ||\n role === 'switch'\n ) {\n if (_focusable !== false) {\n viewProps.tabIndex = '0'\n }\n }\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n viewProps.tabIndex = '0'\n }\n } else {\n viewProps = nonTamaguiProps\n }\n\n viewProps.ref = useComposedRefs(hostRef as any, forwardedRef)\n\n if (process.env.NODE_ENV === 'development' && !isText && isWeb) {\n Children.toArray(props.children).forEach((item) => {\n // allow newlines because why not its annoying with mdx\n if (typeof item === 'string' && item !== '\\n') {\n console.error(\n `Unexpected text node: ${item}. A text node cannot be a child of a <View>.`\n )\n }\n })\n }\n\n const unPress = useCallback(() => {\n setStateShallow({\n press: false,\n pressIn: false,\n })\n }, [setStateShallow])\n\n if (isWeb) {\n useEffect(() => {\n return () => {\n mouseUps.delete(unPress)\n }\n }, [])\n }\n\n const shouldSetMounted = needsMount && state.unmounted\n useEffect(() => {\n if (!shouldSetMounted) return\n if (state.unmounted === true && needsMount) {\n setStateShallow({\n unmounted: false,\n })\n return\n }\n\n setStateShallow({\n unmounted: false,\n })\n }, [shouldSetMounted, state.unmounted])\n\n let styles: Record<string, any>[]\n\n if (isStringElement && shouldAvoidClasses && !shouldForcePseudo) {\n styles = {\n ...(animationStyles ?? splitStylesStyle),\n }\n } else {\n styles = [animationStyles ?? splitStylesStyle]\n\n // ugly but for now...\n if (shouldForcePseudo) {\n const next = {}\n styles.forEach((style) => Object.assign(next, style))\n // @ts-ignore\n Object.assign(splitStyles.style, next)\n }\n }\n\n let fontFamily = isText\n ? splitStyles.fontFamily || staticConfig.defaultProps.fontFamily\n : null\n if (fontFamily && fontFamily[0] === '$') {\n fontFamily = fontFamily.slice(1)\n }\n const fontFamilyClassName = fontFamily ? `font_${fontFamily}` : ''\n\n const classList = [\n hasEnterStyle && ((state.unmounted && needsMount) || !isClient)\n ? 't_will-mount'\n : '',\n componentName ? componentClassName : '',\n fontFamilyClassName,\n classNames ? Object.values(classNames).join(' ') : '',\n ]\n\n const className = classList.join(' ')\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n const style = animationStyles ?? splitStyles.style\n\n if (isAnimatedReactNativeWeb) {\n viewProps.style = style\n } else if (isReactNative) {\n const rnwStyle = { $$css: true }\n for (const name of className.split(' ')) {\n rnwStyle[name] = name\n }\n viewProps.style = [rnwStyle, ...(Array.isArray(style) ? style : [style])]\n\n if (process.env.NODE_ENV === 'development') {\n // turn debug data- props into dataSet in dev mode\n Object.keys(viewProps).forEach((key) => {\n if (key.startsWith('data-')) {\n viewProps.dataSet ??= {}\n viewProps.dataSet[key.replace('data-', '')] = viewProps[key]\n delete viewProps[key]\n }\n })\n }\n } else {\n viewProps.className = className\n viewProps.style = style\n }\n }\n\n if (process.env.TAMAGUI_TARGET === 'native') {\n // swap out the right family based on weight/style\n if (splitStyles.fontFamily) {\n const faceInfo = tamaguiConfig.fontsParsed[splitStyles.fontFamily]?.face\n if (faceInfo) {\n const [weight, style] = (() => {\n let weight: string | undefined\n let style: string | undefined\n for (let i = styles.length; i >= 0; i--) {\n weight ??= styles[i]?.fontWeight\n style ??= styles[i]?.fontStyle\n }\n return [weight || '400', style || 'normal'] as const\n })()\n const overrideFace = faceInfo[weight]?.[style]?.val\n if (overrideFace) {\n for (const style of styles) {\n if (style?.fontFamily) {\n style.fontFamily = overrideFace\n style.fontWeight = undefined\n style.fontStyle = undefined\n }\n }\n }\n }\n }\n\n // assign styles\n viewProps.style = styles\n }\n\n const runtimePressStyle = !disabled && noClassNames && pseudos?.pressStyle\n const attachPress = Boolean(\n runtimePressStyle || onPress || onPressOut || onPressIn || onClick\n )\n const runtimeHoverStyle = !disabled && noClassNames && pseudos?.hoverStyle\n const isHoverable =\n isWeb &&\n !!(runtimeHoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n\n const handlesPressEvents = !(isWeb || asChild)\n\n // check presence rather than value to prevent reparenting bugs\n // allows for onPress={x ? function : undefined} without re-ordering dom\n const shouldAttach = Boolean(\n attachPress ||\n isHoverable ||\n (noClassNames && 'pressStyle' in props) ||\n (isWeb && noClassNames && 'hoverStyle' in props)\n )\n\n const events =\n shouldAttach && !isRSC && !isDisabled && !asChild\n ? {\n onPressOut: attachPress\n ? (e) => {\n unPress()\n onPressOut?.(e)\n onMouseUp?.(e)\n }\n : undefined,\n ...(isHoverable && {\n onMouseEnter: isHoverable\n ? (e) => {\n const next: Partial<typeof state> = {}\n if (isHoverable) {\n next.hover = true\n }\n if (state.pressIn) {\n next.press = true\n }\n if (isHoverable || state.pressIn) {\n setStateShallow(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave: isHoverable\n ? (e) => {\n const next: Partial<typeof state> = {}\n mouseUps.add(unPress)\n if (isHoverable) {\n next.hover = false\n }\n if (state.pressIn) {\n next.press = false\n next.pressIn = false\n }\n if (Object.keys(next).length) {\n setStateShallow(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onPressIn: attachPress\n ? (e) => {\n setStateShallow({\n press: true,\n pressIn: true,\n hover: false,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n if (isWeb) {\n mouseUps.add(unPress)\n }\n }\n : undefined,\n onPress: attachPress\n ? (e) => {\n unPress()\n // @ts-ignore\n onClick?.(e)\n onPress?.(e)\n }\n : undefined,\n\n // replicating TouchableWithoutFeedback\n ...(!isWeb && {\n cancelable: !props.rejectResponderTermination,\n disabled: isDisabled,\n hitSlop: props.hitSlop,\n delayLongPress: props.delayLongPress,\n delayPressIn: props.delayPressIn,\n delayPressOut: props.delayPressOut,\n focusable: viewProps.focusable ?? true,\n minPressDuration: 0,\n }),\n }\n : null\n\n // EVENTS native\n if (process.env.TAMAGUI_TARGET === 'native') {\n // add focus events\n const attachFocus = !!pseudos?.focusStyle\n if (attachFocus) {\n viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {\n setStateShallow({ focus: true })\n })\n viewProps.onBlur = mergeEvent(viewProps.onBlur, () => {\n setStateShallow({ focus: false })\n })\n }\n\n // use Pressability to get smooth unPress when you press + hold + move out\n // only ever create once, use .configure() to update later\n const pressability = usePressability(events ? { ...events, hitSlop } : {})\n if (attachPress && events) {\n for (const key in pressability) {\n const og = props[key]\n const val = pressability[key]\n viewProps[key] =\n og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val\n }\n }\n }\n\n const shouldReset = !!(themeShallow && themeState.isNewTheme)\n if (shouldReset) {\n stateRef.current.themeShallow = true\n }\n\n let content =\n !children || asChild\n ? children\n : spacedChildren({\n separator,\n children,\n space,\n direction: props.spaceDirection || 'both',\n isZStack,\n debug: debugProp,\n })\n\n if (asChild) {\n elementType = Slot\n viewProps = {\n ...viewProps,\n onPress,\n onPressIn,\n onPressOut,\n }\n }\n\n content = createElement(elementType, viewProps, content)\n\n content = useThemedChildren(themeState, content, {\n shallow: stateRef.current.themeShallow,\n })\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (events || isAnimatedReactNativeWeb) {\n content = (\n <span\n className={`${isAnimatedReactNativeWeb ? className : ''} _dsp_contents`}\n {...(events && {\n onMouseEnter: events.onMouseEnter,\n onMouseLeave: events.onMouseLeave,\n onClick: events.onPress,\n onMouseDown: events.onPressIn,\n onMouseUp: events.onPressOut,\n onTouchStart: events.onPressIn,\n onTouchEnd: events.onPressOut,\n })}\n >\n {content}\n </span>\n )\n }\n }\n\n if (process.env.NODE_ENV === 'development' && process.env.DEBUG !== 'tamagui') {\n if (debugProp) {\n const element = typeof elementType === 'string' ? elementType : 'Component'\n console.groupCollapsed(`render <${element} /> with props`, viewProps)\n for (const key in viewProps) {\n console.log(key, viewProps[key])\n }\n console.log('children', content)\n console.groupEnd()\n if (typeof window !== 'undefined') {\n // prettier-ignore\n console.log({ state, themeState, isAnimated, isAnimatedReactNativeWeb, tamaguiDefaultProps, viewProps, splitStyles, animationStyles, handlesPressEvents, isStringElement, classNamesIn: props.className?.split(' '), classNamesOut: viewProps.className?.split(' '), events, shouldAttach, styles, pseudos, content, shouldAvoidClasses, avoidClasses: avoidClassesWhileAnimating, animation: props.animation, style: splitStylesStyle, staticConfig, tamaguiConfig, shouldForcePseudo, classNamesFull: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) })\n }\n console.groupEnd()\n }\n }\n\n return content\n })\n\n if (staticConfig.componentName) {\n component.displayName = staticConfig.componentName\n }\n\n onConfiguredOnce((conf) => {\n // one time only setup\n if (!tamaguiConfig) {\n tamaguiConfig = conf\n\n if (tamaguiConfig.animations) {\n AnimatedText = tamaguiConfig.animations.Text\n AnimatedView = tamaguiConfig.animations.View\n }\n\n if (!initialTheme) {\n const next = conf.themes[Object.keys(conf.themes)[0]]\n initialTheme = proxyThemeVariables(next)\n if (process.env.NODE_ENV === 'development') {\n if (!initialTheme) {\n console.log('Warning: Missing theme')\n }\n }\n }\n }\n\n // per-component setup\n // do this to make sure shorthands don't duplicate with.. longhands\n mergeShorthands(staticConfig, tamaguiConfig)\n\n let defaultPropsIn = staticConfig.defaultProps || {}\n\n // because we run createTamagui after styled() defs, have to do some work here\n // gather defaults props one time and merge downwards\n // find last unprocessed and process\n const parentNames = [...(staticConfig.parentNames || []), staticConfig.componentName]\n\n if (tamaguiConfig.defaultProps && parentNames && staticConfig.componentName) {\n defaultPropsIn = mergeConfigDefaultProps(\n staticConfig.componentName,\n defaultPropsIn,\n tamaguiConfig.defaultProps,\n parentNames,\n tamaguiConfig\n )\n }\n\n const debug = defaultPropsIn['debug']\n\n // remove all classNames\n const [ourProps, ourClassNames] = mergeProps(defaultPropsIn, {})\n\n if (ourProps.tag) {\n defaultTag = ourProps.tag\n }\n\n const noClassNames = !staticConfig.acceptsClassName\n const { name, variants, defaultVariants, ...restProps } = ourProps\n\n // must preserve prop order\n // leave out className because we handle that already with initialSplitStyles.classNames\n // otherwise it confuses variant functions getting className props\n const [defaults, defaultsClassnames] = mergeProps(component.defaultProps as any, {\n ...defaultVariants,\n ...restProps,\n })\n\n // split - keep variables on props to be processed using theme values at runtime (native)\n if (!isWeb) {\n for (const key in staticConfig.defaultProps) {\n const val = staticConfig.defaultProps[key]\n if (validPseudoKeys[key]) continue\n defaults[key] = val\n }\n }\n\n // set to global\n tamaguiDefaultProps = defaults\n\n // add debug logs\n if (process.env.NODE_ENV === 'development' && debug) {\n if (process.env.IS_STATIC !== 'is_static') {\n console.log(`\uD83D\uDC1B [${staticConfig.componentName || 'Component'}]`, {\n staticConfig,\n tamaguiDefaultProps,\n defaults,\n defaultPropsIn,\n defaultPropsKeyOrder: Object.keys(staticConfig.defaultProps),\n defaultPropsInKeyOrder: Object.keys(defaultPropsIn).map((k) => [\n k,\n defaultPropsIn[k],\n ]),\n ourProps,\n ourClassNames,\n defaultsClassnames,\n defaultTag,\n noClassNames,\n })\n }\n }\n })\n\n let res: TamaguiComponent<ComponentPropTypes, Ref, BaseProps> = component as any\n\n if (configIn.memo) {\n res = memo(res) as any\n }\n\n res.staticConfig = {\n validStyles: staticConfig.validStyles || stylePropsView,\n ...staticConfig,\n }\n\n // res.extractable HoC\n res.extractable = (Component: any, conf?: Partial<StaticConfig>) => {\n Component.staticConfig = extendStaticConfig(\n {\n Component,\n ...conf,\n neverFlatten: true,\n defaultProps: {\n ...Component.defaultProps,\n ...conf?.defaultProps,\n },\n },\n res\n )\n return Component\n }\n\n return res\n}\n\n// for elements to avoid spacing\nexport const Unspaced = (props: { children?: any }) => {\n return props.children\n}\nUnspaced['isUnspaced'] = true\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<SpacerProps>({\n acceptsClassName: true,\n memo: true,\n componentName: 'Spacer',\n validStyles,\n\n defaultProps: {\n ...stackDefaultStyles,\n // avoid nesting issues\n tag: 'span',\n size: true,\n pointerEvents: 'none',\n },\n\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n size = size === true ? '$true' : size\n const sizePx = tokens.space[size] ?? size\n return {\n width: sizePx,\n height: sizePx,\n minWidth: sizePx,\n minHeight: sizePx,\n }\n },\n },\n\n flex: {\n true: {\n flexGrow: 1,\n },\n },\n\n direction: {\n horizontal: {\n height: 0,\n minHeight: 0,\n },\n vertical: {\n width: 0,\n minWidth: 0,\n },\n both: {},\n },\n } as const,\n})\n\nexport type SpacedChildrenProps = {\n isZStack?: boolean\n children?: React.ReactNode\n space?: SpaceTokens | number | null\n spaceFlex?: boolean | number\n direction?: SpaceDirection\n separator?: React.ReactNode\n debug?: DebugProp\n}\n\nexport function spacedChildren(props: SpacedChildrenProps) {\n const { isZStack, children, space, direction, spaceFlex, separator } = props\n const hasSpace = !!(space || spaceFlex)\n const hasSeparator = !(separator === undefined || separator === null)\n if (!(hasSpace || hasSeparator || isZStack)) {\n return children\n }\n\n const childrenList = Children.toArray(children)\n\n const len = childrenList.length\n if (len <= 1 && !isZStack && !childrenList[0]?.['type']?.['shouldForwardSpace']) {\n return childrenList\n }\n\n const final: React.ReactNode[] = []\n for (let [index, child] of childrenList.entries()) {\n const isEmpty =\n child === null ||\n child === undefined ||\n (Array.isArray(child) && child.length === 0)\n\n // forward space\n if (!isEmpty && React.isValidElement(child) && child.type?.['shouldForwardSpace']) {\n child = React.cloneElement(child, {\n space,\n spaceFlex,\n separator,\n key: child.key,\n } as any)\n }\n\n // push them all, but wrap some in Fragment\n if (isEmpty || !child || (child['key'] && !isZStack)) {\n final.push(child)\n } else {\n final.push(\n <Fragment key={index}>\n {isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}\n </Fragment>\n )\n }\n\n // first child unspaced avoid insert space\n if (isUnspaced(child) && index === 0) continue\n // no spacing on ZStack\n if (isZStack) continue\n\n const next = childrenList[index + 1]\n\n if (next && !isUnspaced(next)) {\n if (separator) {\n if (hasSpace) {\n final.push(\n createSpacer({\n key: `_${index}_00tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n final.push(\n React.isValidElement(separator)\n ? React.cloneElement(separator, { key: `sep_${index}` })\n : separator\n )\n if (hasSpace) {\n final.push(\n createSpacer({\n key: `_${index}01tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n } else {\n final.push(\n createSpacer({\n key: `_${index}02tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (props.debug) {\n console.log(` Spaced children`, final, props)\n }\n }\n\n return final\n}\n\ntype CreateSpacerProps = SpacedChildrenProps & { key: string }\n\nfunction createSpacer({ key, direction, space, spaceFlex }: CreateSpacerProps) {\n return (\n // @ts-ignore this one blew up but the types seem better\n <Spacer\n key={key}\n size={space}\n direction={direction}\n {...(typeof spaceFlex !== 'undefined' && {\n flex: spaceFlex === true ? 1 : spaceFlex === false ? 0 : spaceFlex,\n })}\n />\n )\n}\n\nfunction isUnspaced(child: React.ReactNode) {\n // console.log('unspaced?', child, getMedia())\n return child?.['type']?.['isVisuallyHidden'] || child?.['type']?.['isUnspaced']\n}\n\nconst DefaultProps = new Map()\n\nfunction mergeConfigDefaultProps(\n name: string,\n props: Record<string, any>,\n configDefaults: Record<string, Object>,\n parentNames: (string | undefined)[],\n conf: TamaguiInternalConfig\n) {\n const len = parentNames.length\n let prev\n\n for (let i = 0; i < len; i++) {\n const n = parentNames[i]\n if (!n) continue\n if (DefaultProps.has(n)) {\n prev = DefaultProps.get(n)\n continue\n }\n const props = configDefaults[n]\n if (!props) {\n if (prev) {\n DefaultProps.set(n, prev)\n }\n continue\n }\n prev = mergeProps(prev || {}, props, false, conf.inverseShorthands)[0]\n DefaultProps.set(n, prev)\n }\n\n // overwrite the user defined defaults on top of internal defined defaults\n const ourDefaultsMerged = DefaultProps.get(name)\n if (ourDefaultsMerged) {\n return mergeProps(props, ourDefaultsMerged, false, conf.inverseShorthands)[0]\n }\n return props\n}\n\n// react native compat (web only)\nfunction usePlatformMethods(hostRef: RefObject<Element>) {\n useIsomorphicLayoutEffect(() => {\n const node = hostRef.current\n if (!node) return\n // @ts-ignore\n node.measure = (callback) => measureLayout(node, null, callback)\n // @ts-ignore\n node.measureLayout = (relativeToNode, success) =>\n measureLayout(node as HTMLElement, relativeToNode, success)\n // @ts-ignore\n node.measureInWindow = (callback) => {\n if (!node) return\n setTimeout(() => {\n const { height, left, top, width } = getRect(node as HTMLElement)!\n callback(left, top, width, height)\n }, 0)\n }\n }, [hostRef])\n}\n\nconst AbsoluteFill: any = createComponent({\n componentName: 'AbsoluteFill',\n defaultProps: {\n ...stackDefaultStyles,\n flexDirection: 'column',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n pointerEvents: 'box-none',\n },\n})\n\nconst dontComposePressabilityKeys = {\n onClick: true,\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["_a", "_b", "weight", "style", "element", "props"]
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/createFont.ts"],
4
4
  "sourcesContent": ["import { FontWeightSteps, GenericFont } from './types'\n\nconst fontWeights: FontWeightSteps[] = [\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n]\n\nconst processSection = <T>(\n section: string | Record<string, T>,\n keys: string[],\n defaultValue?: any\n): string | Record<string, T> => {\n if (typeof section === 'string') return section\n\n const sectionKeys = Object.keys(section)\n let fillValue = section[sectionKeys[0]]\n\n return Object.fromEntries(\n [...new Set([...keys, ...sectionKeys])].map((key) => {\n const value = section[key] ?? defaultValue ?? fillValue\n fillValue = value\n defaultValue = value\n return [key, value]\n })\n )\n}\n\nexport const createFont = <A extends GenericFont>(font: A): A => {\n const sizeKeys = Object.keys(font.size)\n const processedFont = Object.fromEntries(\n Object.entries(font).map(([key, section]) => {\n return [\n key,\n processSection(\n section as any,\n key === 'face' ? fontWeights : sizeKeys,\n key === 'face' ? { normal: font.family } : undefined\n ),\n ]\n })\n )\n return Object.freeze(processedFont) as A\n}\n"],
5
- "mappings": "AAEA,MAAM,cAAiC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,iBAAiB,CACrB,SACA,MACA,iBAC+B;AAC/B,MAAI,OAAO,YAAY;AAAU,WAAO;AAExC,QAAM,cAAc,OAAO,KAAK,OAAO;AACvC,MAAI,YAAY,QAAQ,YAAY;AAEpC,SAAO,OAAO;AAAA,IACZ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ;AACnD,YAAM,QAAQ,QAAQ,QAAQ,gBAAgB;AAC9C,kBAAY;AACZ,qBAAe;AACf,aAAO,CAAC,KAAK,KAAK;AAAA,IACpB,CAAC;AAAA,EACH;AACF;AAEO,MAAM,aAAa,CAAwB,SAAe;AAC/D,QAAM,WAAW,OAAO,KAAK,KAAK,IAAI;AACtC,QAAM,gBAAgB,OAAO;AAAA,IAC3B,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,OAAO,MAAM;AAC3C,aAAO;AAAA,QACL;AAAA,QACA;AAAA,UACE;AAAA,UACA,QAAQ,SAAS,cAAc;AAAA,UAC/B,QAAQ,SAAS,EAAE,QAAQ,KAAK,OAAO,IAAI;AAAA,QAC7C;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO,OAAO,OAAO,aAAa;AACpC;",
5
+ "mappings": "AAEA,MAAM,cAAiC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,iBAAiB,CACrB,SACA,MACA,iBAC+B;AAC/B,MAAI,OAAO,YAAY;AAAU,WAAO;AAExC,QAAM,cAAc,OAAO,KAAK,OAAO;AACvC,MAAI,YAAY,QAAQ,YAAY,CAAC,CAAC;AAEtC,SAAO,OAAO;AAAA,IACZ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ;AACnD,YAAM,QAAQ,QAAQ,GAAG,KAAK,gBAAgB;AAC9C,kBAAY;AACZ,qBAAe;AACf,aAAO,CAAC,KAAK,KAAK;AAAA,IACpB,CAAC;AAAA,EACH;AACF;AAEO,MAAM,aAAa,CAAwB,SAAe;AAC/D,QAAM,WAAW,OAAO,KAAK,KAAK,IAAI;AACtC,QAAM,gBAAgB,OAAO;AAAA,IAC3B,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,OAAO,MAAM;AAC3C,aAAO;AAAA,QACL;AAAA,QACA;AAAA,UACE;AAAA,UACA,QAAQ,SAAS,cAAc;AAAA,UAC/B,QAAQ,SAAS,EAAE,QAAQ,KAAK,OAAO,IAAI;AAAA,QAC7C;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO,OAAO,OAAO,aAAa;AACpC;",
6
6
  "names": []
7
7
  }
@@ -144,7 +144,9 @@ function createTamagui(configIn) {
144
144
  animations: {},
145
145
  media: {},
146
146
  ...configIn,
147
+ // already processed by createTokens()
147
148
  tokens: configIn.tokens,
149
+ // vite made this into a function if it wasn't set
148
150
  shorthands: { ...shorthands },
149
151
  inverseShorthands: shorthands ? Object.fromEntries(Object.entries(shorthands).map(([k, v]) => [v, k])) : {},
150
152
  themes: themeConfig.themes,
@@ -162,6 +164,8 @@ ${themeConfig.cssRuleSets.join(separator)}
162
164
  ${themeConfig.themeRuleSets.join(separator)}
163
165
  ${getAllRules().join(separator)}`;
164
166
  }
167
+ // const tokens = [...getToken(tokens.size[0])]
168
+ // .spacer-sm + ._dsp_contents._dsp-sm-hidden { margin-left: -var(--${}) }
165
169
  };
166
170
  configureMedia(config);
167
171
  setConfig(config);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createTamagui.ts"],
4
- "sourcesContent": ["import { isRSC, isWeb } from '@tamagui/constants'\n\nimport { configListeners, setConfig } from './config'\nimport { createVariables, tokensKeysOrdered } from './createVariables'\nimport { getThemeCSSRules } from './helpers/getThemeCSSRules'\nimport {\n getAllRules,\n listenForSheetChanges,\n scanAllSheets,\n} from './helpers/insertStyleRule'\nimport {\n registerCSSVariable,\n tokensValueToVariable,\n variableToCSS,\n} from './helpers/registerCSSVariable'\nimport { ensureThemeVariable, proxyThemeToParents } from './helpers/themes'\nimport { configureMedia } from './hooks/useMedia'\nimport { parseFont, registerFontVariables } from './insertFont'\nimport { Tamagui } from './Tamagui'\nimport {\n CreateTamaguiProps,\n InferTamaguiConfig,\n TamaguiInternalConfig,\n ThemeParsed,\n} from './types'\n\n// config is re-run by the @tamagui/static, dont double validate\nconst createdConfigs = new WeakMap<any, boolean>()\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n configIn: Conf\n): InferTamaguiConfig<Conf> {\n if (createdConfigs.has(configIn)) {\n return configIn as any\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (!configIn.tokens) {\n throw new Error('Must define tokens')\n }\n if (!configIn.themes) {\n throw new Error('Must define themes')\n }\n if (!configIn.fonts) {\n throw new Error('Must define fonts')\n }\n }\n\n scanAllSheets()\n listenForSheetChanges()\n\n const fontTokens = Object.fromEntries(\n Object.entries(configIn.fonts!).map(([k, v]) => {\n return [k, createVariables(v, 'f', true)]\n })\n )\n\n const fontsParsed = (() => {\n const res = {} as typeof fontTokens\n for (const familyName in fontTokens) {\n res[`$${familyName}`] = parseFont(fontTokens[familyName])\n }\n return res!\n })()\n\n const themeConfig = (() => {\n const themes = { ...configIn.themes }\n const cssRuleSets: string[] = []\n\n if (isWeb) {\n const declarations: string[] = []\n const fontDeclarations: Record<\n string,\n { name: string; declarations: string[]; language?: string }\n > = {}\n\n for (const key in configIn.tokens) {\n for (const skey in configIn.tokens[key]) {\n const val = configIn.tokens[key][skey]\n registerCSSVariable(val)\n declarations.push(variableToCSS(val))\n }\n }\n\n for (const key in fontsParsed) {\n const fontParsed = fontsParsed[key]\n const [name, language] = key.includes('_') ? key.split('_') : [key]\n const fontVars = registerFontVariables(fontParsed)\n fontDeclarations[key] = {\n name: name.slice(1),\n declarations: fontVars,\n language,\n }\n }\n\n const sep =\n process.env.NODE_ENV === 'development' ? configIn.cssStyleSeparator || ' ' : ''\n\n function declarationsToRuleSet(decs: string[], selector = '') {\n return `:root${selector} {${sep}${[...decs].join(`;${sep}`)}${sep}}`\n }\n\n // non-font\n cssRuleSets.push(declarationsToRuleSet(declarations))\n\n // fonts\n if (fontDeclarations) {\n for (const key in fontDeclarations) {\n const { name, declarations, language = 'default' } = fontDeclarations[key]\n const fontSelector = `.font_${name}`\n const langSelector = `:root .t_lang-${name}-${language} ${fontSelector}`\n const selectors =\n language === 'default' ? ` ${fontSelector}, ${langSelector}` : langSelector\n const specificRuleSet = declarationsToRuleSet(declarations, selectors)\n cssRuleSets.push(specificRuleSet)\n }\n }\n }\n\n // dedupe themes to avoid duplicate CSS generation\n type DedupedTheme = {\n names: string[]\n theme: ThemeParsed\n }\n const dedupedThemes: {\n [key: string]: DedupedTheme\n } = {}\n const existing = new WeakMap<ThemeParsed, DedupedTheme>()\n\n // first, de-dupe and parse them\n for (const themeName in themes) {\n const rawTheme = themes[themeName] as ThemeParsed\n\n // if existing, avoid\n if (existing.has(rawTheme)) {\n const e = existing.get(rawTheme)!\n themes[themeName] = e.theme\n e.names.push(themeName)\n continue\n }\n\n // ensure each theme object unique for dedupe\n const theme = { ...rawTheme }\n // parse into variables\n for (const key in theme) {\n // make sure properly names theme variables\n ensureThemeVariable(theme, key)\n }\n themes[themeName] = theme\n\n // set deduped\n dedupedThemes[themeName] = {\n names: [themeName],\n theme,\n }\n existing.set(rawTheme, dedupedThemes[themeName])\n }\n\n // then, generate CSS from de-duped\n let themeRuleSets: string[] = []\n\n if (isWeb || isRSC) {\n for (const themeName in dedupedThemes) {\n themeRuleSets = [\n ...themeRuleSets,\n ...getThemeCSSRules({\n config: configIn,\n themeName,\n ...dedupedThemes[themeName],\n }),\n ]\n }\n }\n\n // proxy upwards to get parent variables (themes are subset going down)\n for (const themeName in themes) {\n themes[themeName] = proxyThemeToParents(themeName, themes[themeName], themes)\n }\n\n tokensValueToVariable.clear()\n\n return {\n themes,\n cssRuleSets,\n themeRuleSets,\n }\n })()\n\n // faster $lookups\n const tokensParsed: any = Object.fromEntries(\n Object.entries(configIn.tokens).map(([k, v]) => {\n const val = Object.fromEntries(Object.entries(v).map(([k, v]) => [`$${k}`, v]))\n tokensKeysOrdered.set(val, tokensKeysOrdered.get(v))\n return [k, val]\n })\n )\n\n const shorthands = configIn.shorthands || {}\n\n const config: TamaguiInternalConfig = {\n fontLanguages: [],\n animations: {} as any,\n media: {},\n ...configIn,\n // already processed by createTokens()\n tokens: configIn.tokens as any,\n // vite made this into a function if it wasn't set\n shorthands: { ...shorthands },\n inverseShorthands: shorthands\n ? Object.fromEntries(Object.entries(shorthands).map(([k, v]) => [v, k]))\n : {},\n themes: themeConfig.themes as any,\n fontsParsed,\n themeConfig,\n tokensParsed,\n parsed: true,\n getCSS: (separator = '\\n') => {\n return `\n._ovs-contain {overscroll-behavior:contain;}\n.t_unmounted .t_will-mount {opacity:0;visibility:hidden;}\n.is_Text .is_Text {display:inline-flex;}\n._dsp_contents {display:contents;}\n${themeConfig.cssRuleSets.join(separator)}\n${themeConfig.themeRuleSets.join(separator)}\n${getAllRules().join(separator)}`\n },\n // const tokens = [...getToken(tokens.size[0])]\n // .spacer-sm + ._dsp_contents._dsp-sm-hidden { margin-left: -var(--${}) }\n }\n\n configureMedia(config)\n setConfig(config)\n\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(config))\n configListeners.clear()\n }\n\n createdConfigs.set(config, true)\n\n if (process.env.NODE_ENV === 'development') {\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log('Tamagui config:', config)\n }\n if (!globalThis['Tamagui']) {\n globalThis['Tamagui'] = Tamagui\n }\n }\n\n return config as any\n}\n"],
5
- "mappings": "AAAA,SAAS,OAAO,aAAa;AAE7B,SAAS,iBAAiB,iBAAiB;AAC3C,SAAS,iBAAiB,yBAAyB;AACnD,SAAS,wBAAwB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,qBAAqB,2BAA2B;AACzD,SAAS,sBAAsB;AAC/B,SAAS,WAAW,6BAA6B;AACjD,SAAS,eAAe;AASxB,MAAM,iBAAiB,oBAAI,QAAsB;AAE1C,SAAS,cACd,UAC0B;AA/B5B;AAgCE,MAAI,eAAe,IAAI,QAAQ,GAAG;AAChC,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC,SAAS,QAAQ;AACpB,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACtC;AACA,QAAI,CAAC,SAAS,QAAQ;AACpB,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACtC;AACA,QAAI,CAAC,SAAS,OAAO;AACnB,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AAAA,EACF;AAEA,gBAAc;AACd,wBAAsB;AAEtB,QAAM,aAAa,OAAO;AAAA,IACxB,OAAO,QAAQ,SAAS,KAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AAC9C,aAAO,CAAC,GAAG,gBAAgB,GAAG,KAAK,IAAI,CAAC;AAAA,IAC1C,CAAC;AAAA,EACH;AAEA,QAAM,eAAe,MAAM;AACzB,UAAM,MAAM,CAAC;AACb,eAAW,cAAc,YAAY;AACnC,UAAI,IAAI,gBAAgB,UAAU,WAAW,WAAW;AAAA,IAC1D;AACA,WAAO;AAAA,EACT,GAAG;AAEH,QAAM,eAAe,MAAM;AACzB,UAAM,SAAS,EAAE,GAAG,SAAS,OAAO;AACpC,UAAM,cAAwB,CAAC;AAE/B,QAAI,OAAO;AA6BT,UAASA,yBAAT,SAA+B,MAAgB,WAAW,IAAI;AAC5D,eAAO,QAAQ,aAAa,MAAM,CAAC,GAAG,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI;AAAA,MAChE;AAFS,kCAAAA;AA5BT,YAAM,eAAyB,CAAC;AAChC,YAAM,mBAGF,CAAC;AAEL,iBAAW,OAAO,SAAS,QAAQ;AACjC,mBAAW,QAAQ,SAAS,OAAO,MAAM;AACvC,gBAAM,MAAM,SAAS,OAAO,KAAK;AACjC,8BAAoB,GAAG;AACvB,uBAAa,KAAK,cAAc,GAAG,CAAC;AAAA,QACtC;AAAA,MACF;AAEA,iBAAW,OAAO,aAAa;AAC7B,cAAM,aAAa,YAAY;AAC/B,cAAM,CAAC,MAAM,QAAQ,IAAI,IAAI,SAAS,GAAG,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG;AAClE,cAAM,WAAW,sBAAsB,UAAU;AACjD,yBAAiB,OAAO;AAAA,UACtB,MAAM,KAAK,MAAM,CAAC;AAAA,UAClB,cAAc;AAAA,UACd;AAAA,QACF;AAAA,MACF;AAEA,YAAM,MACJ,QAAQ,IAAI,aAAa,gBAAgB,SAAS,qBAAqB,MAAM;AAO/E,kBAAY,KAAKA,uBAAsB,YAAY,CAAC;AAGpD,UAAI,kBAAkB;AACpB,mBAAW,OAAO,kBAAkB;AAClC,gBAAM,EAAE,MAAM,cAAAC,eAAc,WAAW,UAAU,IAAI,iBAAiB;AACtE,gBAAM,eAAe,SAAS;AAC9B,gBAAM,eAAe,iBAAiB,QAAQ,YAAY;AAC1D,gBAAM,YACJ,aAAa,YAAY,IAAI,iBAAiB,iBAAiB;AACjE,gBAAM,kBAAkBD,uBAAsBC,eAAc,SAAS;AACrE,sBAAY,KAAK,eAAe;AAAA,QAClC;AAAA,MACF;AAAA,IACF;AAOA,UAAM,gBAEF,CAAC;AACL,UAAM,WAAW,oBAAI,QAAmC;AAGxD,eAAW,aAAa,QAAQ;AAC9B,YAAM,WAAW,OAAO;AAGxB,UAAI,SAAS,IAAI,QAAQ,GAAG;AAC1B,cAAM,IAAI,SAAS,IAAI,QAAQ;AAC/B,eAAO,aAAa,EAAE;AACtB,UAAE,MAAM,KAAK,SAAS;AACtB;AAAA,MACF;AAGA,YAAM,QAAQ,EAAE,GAAG,SAAS;AAE5B,iBAAW,OAAO,OAAO;AAEvB,4BAAoB,OAAO,GAAG;AAAA,MAChC;AACA,aAAO,aAAa;AAGpB,oBAAc,aAAa;AAAA,QACzB,OAAO,CAAC,SAAS;AAAA,QACjB;AAAA,MACF;AACA,eAAS,IAAI,UAAU,cAAc,UAAU;AAAA,IACjD;AAGA,QAAI,gBAA0B,CAAC;AAE/B,QAAI,SAAS,OAAO;AAClB,iBAAW,aAAa,eAAe;AACrC,wBAAgB;AAAA,UACd,GAAG;AAAA,UACH,GAAG,iBAAiB;AAAA,YAClB,QAAQ;AAAA,YACR;AAAA,YACA,GAAG,cAAc;AAAA,UACnB,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAGA,eAAW,aAAa,QAAQ;AAC9B,aAAO,aAAa,oBAAoB,WAAW,OAAO,YAAY,MAAM;AAAA,IAC9E;AAEA,0BAAsB,MAAM;AAE5B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG;AAGH,QAAM,eAAoB,OAAO;AAAA,IAC/B,OAAO,QAAQ,SAAS,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AAC9C,YAAM,MAAM,OAAO,YAAY,OAAO,QAAQ,CAAC,EAAE,IAAI,CAAC,CAACC,IAAGC,EAAC,MAAM,CAAC,IAAID,MAAKC,EAAC,CAAC,CAAC;AAC9E,wBAAkB,IAAI,KAAK,kBAAkB,IAAI,CAAC,CAAC;AACnD,aAAO,CAAC,GAAG,GAAG;AAAA,IAChB,CAAC;AAAA,EACH;AAEA,QAAM,aAAa,SAAS,cAAc,CAAC;AAE3C,QAAM,SAAgC;AAAA,IACpC,eAAe,CAAC;AAAA,IAChB,YAAY,CAAC;AAAA,IACb,OAAO,CAAC;AAAA,IACR,GAAG;AAAA,IAEH,QAAQ,SAAS;AAAA,IAEjB,YAAY,EAAE,GAAG,WAAW;AAAA,IAC5B,mBAAmB,aACf,OAAO,YAAY,OAAO,QAAQ,UAAU,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IACrE,CAAC;AAAA,IACL,QAAQ,YAAY;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ,CAAC,YAAY,SAAS;AAC5B,aAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKX,YAAY,YAAY,KAAK,SAAS;AAAA,EACtC,YAAY,cAAc,KAAK,SAAS;AAAA,EACxC,YAAY,EAAE,KAAK,SAAS;AAAA,IAC1B;AAAA,EAGF;AAEA,iBAAe,MAAM;AACrB,YAAU,MAAM;AAEhB,MAAI,gBAAgB,MAAM;AACxB,oBAAgB,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1C,oBAAgB,MAAM;AAAA,EACxB;AAEA,iBAAe,IAAI,QAAQ,IAAI;AAE/B,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,SAAI,aAAQ,IAAI,UAAZ,mBAAmB,WAAW,YAAY;AAE5C,cAAQ,IAAI,mBAAmB,MAAM;AAAA,IACvC;AACA,QAAI,CAAC,WAAW,YAAY;AAC1B,iBAAW,aAAa;AAAA,IAC1B;AAAA,EACF;AAEA,SAAO;AACT;",
4
+ "sourcesContent": ["import { isRSC, isWeb } from '@tamagui/constants'\n\nimport { configListeners, setConfig } from './config'\nimport { createVariables, tokensKeysOrdered } from './createVariables'\nimport { getThemeCSSRules } from './helpers/getThemeCSSRules'\nimport {\n getAllRules,\n listenForSheetChanges,\n scanAllSheets,\n} from './helpers/insertStyleRule'\nimport {\n registerCSSVariable,\n tokensValueToVariable,\n variableToCSS,\n} from './helpers/registerCSSVariable'\nimport { ensureThemeVariable, proxyThemeToParents } from './helpers/themes'\nimport { configureMedia } from './hooks/useMedia'\nimport { parseFont, registerFontVariables } from './insertFont'\nimport { Tamagui } from './Tamagui'\nimport {\n CreateTamaguiProps,\n InferTamaguiConfig,\n TamaguiInternalConfig,\n ThemeParsed,\n} from './types'\n\n// config is re-run by the @tamagui/static, dont double validate\nconst createdConfigs = new WeakMap<any, boolean>()\n\nexport function createTamagui<Conf extends CreateTamaguiProps>(\n configIn: Conf\n): InferTamaguiConfig<Conf> {\n if (createdConfigs.has(configIn)) {\n return configIn as any\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (!configIn.tokens) {\n throw new Error('Must define tokens')\n }\n if (!configIn.themes) {\n throw new Error('Must define themes')\n }\n if (!configIn.fonts) {\n throw new Error('Must define fonts')\n }\n }\n\n scanAllSheets()\n listenForSheetChanges()\n\n const fontTokens = Object.fromEntries(\n Object.entries(configIn.fonts!).map(([k, v]) => {\n return [k, createVariables(v, 'f', true)]\n })\n )\n\n const fontsParsed = (() => {\n const res = {} as typeof fontTokens\n for (const familyName in fontTokens) {\n res[`$${familyName}`] = parseFont(fontTokens[familyName])\n }\n return res!\n })()\n\n const themeConfig = (() => {\n const themes = { ...configIn.themes }\n const cssRuleSets: string[] = []\n\n if (isWeb) {\n const declarations: string[] = []\n const fontDeclarations: Record<\n string,\n { name: string; declarations: string[]; language?: string }\n > = {}\n\n for (const key in configIn.tokens) {\n for (const skey in configIn.tokens[key]) {\n const val = configIn.tokens[key][skey]\n registerCSSVariable(val)\n declarations.push(variableToCSS(val))\n }\n }\n\n for (const key in fontsParsed) {\n const fontParsed = fontsParsed[key]\n const [name, language] = key.includes('_') ? key.split('_') : [key]\n const fontVars = registerFontVariables(fontParsed)\n fontDeclarations[key] = {\n name: name.slice(1),\n declarations: fontVars,\n language,\n }\n }\n\n const sep =\n process.env.NODE_ENV === 'development' ? configIn.cssStyleSeparator || ' ' : ''\n\n function declarationsToRuleSet(decs: string[], selector = '') {\n return `:root${selector} {${sep}${[...decs].join(`;${sep}`)}${sep}}`\n }\n\n // non-font\n cssRuleSets.push(declarationsToRuleSet(declarations))\n\n // fonts\n if (fontDeclarations) {\n for (const key in fontDeclarations) {\n const { name, declarations, language = 'default' } = fontDeclarations[key]\n const fontSelector = `.font_${name}`\n const langSelector = `:root .t_lang-${name}-${language} ${fontSelector}`\n const selectors =\n language === 'default' ? ` ${fontSelector}, ${langSelector}` : langSelector\n const specificRuleSet = declarationsToRuleSet(declarations, selectors)\n cssRuleSets.push(specificRuleSet)\n }\n }\n }\n\n // dedupe themes to avoid duplicate CSS generation\n type DedupedTheme = {\n names: string[]\n theme: ThemeParsed\n }\n const dedupedThemes: {\n [key: string]: DedupedTheme\n } = {}\n const existing = new WeakMap<ThemeParsed, DedupedTheme>()\n\n // first, de-dupe and parse them\n for (const themeName in themes) {\n const rawTheme = themes[themeName] as ThemeParsed\n\n // if existing, avoid\n if (existing.has(rawTheme)) {\n const e = existing.get(rawTheme)!\n themes[themeName] = e.theme\n e.names.push(themeName)\n continue\n }\n\n // ensure each theme object unique for dedupe\n const theme = { ...rawTheme }\n // parse into variables\n for (const key in theme) {\n // make sure properly names theme variables\n ensureThemeVariable(theme, key)\n }\n themes[themeName] = theme\n\n // set deduped\n dedupedThemes[themeName] = {\n names: [themeName],\n theme,\n }\n\n existing.set(rawTheme, dedupedThemes[themeName])\n }\n\n // then, generate CSS from de-duped\n let themeRuleSets: string[] = []\n\n if (isWeb || isRSC) {\n for (const themeName in dedupedThemes) {\n themeRuleSets = [\n ...themeRuleSets,\n ...getThemeCSSRules({\n config: configIn,\n themeName,\n ...dedupedThemes[themeName],\n }),\n ]\n }\n }\n\n // proxy upwards to get parent variables (themes are subset going down)\n for (const themeName in themes) {\n themes[themeName] = proxyThemeToParents(themeName, themes[themeName], themes)\n }\n\n tokensValueToVariable.clear()\n\n return {\n themes,\n cssRuleSets,\n themeRuleSets,\n }\n })()\n\n // faster $lookups\n const tokensParsed: any = Object.fromEntries(\n Object.entries(configIn.tokens).map(([k, v]) => {\n const val = Object.fromEntries(Object.entries(v).map(([k, v]) => [`$${k}`, v]))\n tokensKeysOrdered.set(val, tokensKeysOrdered.get(v))\n return [k, val]\n })\n )\n\n const shorthands = configIn.shorthands || {}\n\n const config: TamaguiInternalConfig = {\n fontLanguages: [],\n animations: {} as any,\n media: {},\n ...configIn,\n // already processed by createTokens()\n tokens: configIn.tokens as any,\n // vite made this into a function if it wasn't set\n shorthands: { ...shorthands },\n inverseShorthands: shorthands\n ? Object.fromEntries(Object.entries(shorthands).map(([k, v]) => [v, k]))\n : {},\n themes: themeConfig.themes as any,\n fontsParsed,\n themeConfig,\n tokensParsed,\n parsed: true,\n getCSS: (separator = '\\n') => {\n return `\n._ovs-contain {overscroll-behavior:contain;}\n.t_unmounted .t_will-mount {opacity:0;visibility:hidden;}\n.is_Text .is_Text {display:inline-flex;}\n._dsp_contents {display:contents;}\n${themeConfig.cssRuleSets.join(separator)}\n${themeConfig.themeRuleSets.join(separator)}\n${getAllRules().join(separator)}`\n },\n // const tokens = [...getToken(tokens.size[0])]\n // .spacer-sm + ._dsp_contents._dsp-sm-hidden { margin-left: -var(--${}) }\n }\n\n configureMedia(config)\n setConfig(config)\n\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(config))\n configListeners.clear()\n }\n\n createdConfigs.set(config, true)\n\n if (process.env.NODE_ENV === 'development') {\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log('Tamagui config:', config)\n }\n if (!globalThis['Tamagui']) {\n globalThis['Tamagui'] = Tamagui\n }\n }\n\n return config as any\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["declarationsToRuleSet", "declarations", "k", "v"]
7
7
  }
@@ -6,6 +6,7 @@ test("snapshot", () => {
6
6
  });
7
7
  test("color name no dot", () => {
8
8
  expect(
9
+ // @ts-ignore partial
9
10
  createTokens({
10
11
  color: {
11
12
  "yellow.10": "yellow"
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/createTokens.web.test.tsx"],
4
4
  "sourcesContent": ["import { getDefaultTamaguiConfig } from '@tamagui/config-default-node'\nimport { expect, test } from 'vitest'\n\nimport { createTokens } from './createTokens'\n\ntest('snapshot', () => {\n expect(createTokens(getDefaultTamaguiConfig().tokens)).toMatchSnapshot()\n})\n\ntest('color name no dot', () => {\n expect(\n // @ts-ignore partial\n createTokens({\n color: {\n 'yellow.10': 'yellow',\n },\n })\n ).toMatchObject({\n color: {\n 'yellow.10': {\n isVar: true,\n key: 'yellow101a',\n name: 'color-1',\n val: 'yellow',\n variable: 'var(--color-1)',\n },\n },\n })\n})\n"],
5
- "mappings": "AAAA,SAAS,+BAA+B;AACxC,SAAS,QAAQ,YAAY;AAE7B,SAAS,oBAAoB;AAE7B,KAAK,YAAY,MAAM;AACrB,SAAO,aAAa,wBAAwB,EAAE,MAAM,CAAC,EAAE,gBAAgB;AACzE,CAAC;AAED,KAAK,qBAAqB,MAAM;AAC9B;AAAA,IAEE,aAAa;AAAA,MACX,OAAO;AAAA,QACL,aAAa;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH,EAAE,cAAc;AAAA,IACd,OAAO;AAAA,MACL,aAAa;AAAA,QACX,OAAO;AAAA,QACP,KAAK;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;",
5
+ "mappings": "AAAA,SAAS,+BAA+B;AACxC,SAAS,QAAQ,YAAY;AAE7B,SAAS,oBAAoB;AAE7B,KAAK,YAAY,MAAM;AACrB,SAAO,aAAa,wBAAwB,EAAE,MAAM,CAAC,EAAE,gBAAgB;AACzE,CAAC;AAED,KAAK,qBAAqB,MAAM;AAC9B;AAAA;AAAA,IAEE,aAAa;AAAA,MACX,OAAO;AAAA,QACL,aAAa;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH,EAAE,cAAc;AAAA,IACd,OAAO;AAAA,MACL,aAAa;AAAA,QACX,OAAO;AAAA,QACP,KAAK;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/createVariable.ts"],
4
4
  "sourcesContent": ["import { isWeb } from '@tamagui/constants'\nimport { simpleHash } from '@tamagui/helpers'\n\nimport { getConfig } from './config'\n\n/**\n * Should rename this to Token\n * Moving to objects for React Server Components support\n */\n\nconst IS_VAR = 'isVar'\n\nexport interface Variable<A = any> {\n [IS_VAR]?: true\n variable?: string\n val: A\n name: string\n key: string\n}\n\nexport type MakeVariable<A = any> = A extends string | number ? Variable<A> : A\n\ntype VariableIn<A = any> = Pick<Variable<A>, 'key' | 'name' | 'val'>\nexport const createVariable = <A extends string | number | Variable = any>(\n props: VariableIn<A>\n): Variable<A> => {\n if (isVariable(props)) return props\n const { key, name, val } = props\n return {\n [IS_VAR]: true,\n key: key!,\n name: simpleHash(name, 40),\n val: val as any,\n variable: isWeb ? createCSSVariable(name) : '',\n }\n}\n\n// could do weakmap cache\nexport function variableToString(vrble?: any, getValue = false) {\n if (isVariable(vrble)) {\n if (!getValue && isWeb && vrble.variable) {\n return vrble.variable\n }\n return `${vrble.val}`\n }\n return `${vrble || ''}`\n}\n\nexport function isVariable(v: Variable | any): v is Variable {\n return v && typeof v === 'object' && IS_VAR in v\n}\n\nexport function getVariable(nameOrVariable: Variable | string) {\n setDidGetVariableValue(true)\n if (isVariable(nameOrVariable)) {\n return variableToString(nameOrVariable)\n }\n const tokens = getConfig().tokensParsed\n return variableToString(tokens[nameOrVariable] ?? nameOrVariable)\n}\n\nlet accessed = false\nexport const setDidGetVariableValue = (val: boolean) => (accessed = val)\nexport const didGetVariableValue = () => accessed\n\nexport function getVariableValue(v: Variable | any) {\n if (isVariable(v)) {\n setDidGetVariableValue(true)\n return v.val\n }\n return v\n}\n\nexport function getVariableName(v: Variable | any) {\n if (isVariable(v)) return v.name\n return v\n}\n\nexport function getVariableVariable(v: Variable | any) {\n if (isVariable(v)) return v.variable\n return v\n}\n\n// bugfix { space: { 0.5: 10 } } was generating var(--space-0.5) (invalid CSS):\nexport const createCSSVariable = (nameProp: string, includeVar = true) => {\n if (process.env.NODE_ENV === 'development') {\n if (!nameProp || typeof nameProp !== 'string') {\n throw new Error(`createCSSVariable expected string: ${nameProp}`)\n }\n }\n const name = simpleHash(nameProp, 60)\n return includeVar ? `var(--${name})` : name\n}\n"],
5
- "mappings": "AAAA,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAE3B,SAAS,iBAAiB;AAO1B,MAAM,SAAS;AAaR,MAAM,iBAAiB,CAC5B,UACgB;AAChB,MAAI,WAAW,KAAK;AAAG,WAAO;AAC9B,QAAM,EAAE,KAAK,MAAM,IAAI,IAAI;AAC3B,SAAO;AAAA,IACL,CAAC,SAAS;AAAA,IACV;AAAA,IACA,MAAM,WAAW,MAAM,EAAE;AAAA,IACzB;AAAA,IACA,UAAU,QAAQ,kBAAkB,IAAI,IAAI;AAAA,EAC9C;AACF;AAGO,SAAS,iBAAiB,OAAa,WAAW,OAAO;AAC9D,MAAI,WAAW,KAAK,GAAG;AACrB,QAAI,CAAC,YAAY,SAAS,MAAM,UAAU;AACxC,aAAO,MAAM;AAAA,IACf;AACA,WAAO,GAAG,MAAM;AAAA,EAClB;AACA,SAAO,GAAG,SAAS;AACrB;AAEO,SAAS,WAAW,GAAkC;AAC3D,SAAO,KAAK,OAAO,MAAM,YAAY,UAAU;AACjD;AAEO,SAAS,YAAY,gBAAmC;AAC7D,yBAAuB,IAAI;AAC3B,MAAI,WAAW,cAAc,GAAG;AAC9B,WAAO,iBAAiB,cAAc;AAAA,EACxC;AACA,QAAM,SAAS,UAAU,EAAE;AAC3B,SAAO,iBAAiB,OAAO,mBAAmB,cAAc;AAClE;AAEA,IAAI,WAAW;AACR,MAAM,yBAAyB,CAAC,QAAkB,WAAW;AAC7D,MAAM,sBAAsB,MAAM;AAElC,SAAS,iBAAiB,GAAmB;AAClD,MAAI,WAAW,CAAC,GAAG;AACjB,2BAAuB,IAAI;AAC3B,WAAO,EAAE;AAAA,EACX;AACA,SAAO;AACT;AAEO,SAAS,gBAAgB,GAAmB;AACjD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAEO,SAAS,oBAAoB,GAAmB;AACrD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAGO,MAAM,oBAAoB,CAAC,UAAkB,aAAa,SAAS;AACxE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC,YAAY,OAAO,aAAa,UAAU;AAC7C,YAAM,IAAI,MAAM,sCAAsC,UAAU;AAAA,IAClE;AAAA,EACF;AACA,QAAM,OAAO,WAAW,UAAU,EAAE;AACpC,SAAO,aAAa,SAAS,UAAU;AACzC;",
5
+ "mappings": "AAAA,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAE3B,SAAS,iBAAiB;AAO1B,MAAM,SAAS;AAaR,MAAM,iBAAiB,CAC5B,UACgB;AAChB,MAAI,WAAW,KAAK;AAAG,WAAO;AAC9B,QAAM,EAAE,KAAK,MAAM,IAAI,IAAI;AAC3B,SAAO;AAAA,IACL,CAAC,MAAM,GAAG;AAAA,IACV;AAAA,IACA,MAAM,WAAW,MAAM,EAAE;AAAA,IACzB;AAAA,IACA,UAAU,QAAQ,kBAAkB,IAAI,IAAI;AAAA,EAC9C;AACF;AAGO,SAAS,iBAAiB,OAAa,WAAW,OAAO;AAC9D,MAAI,WAAW,KAAK,GAAG;AACrB,QAAI,CAAC,YAAY,SAAS,MAAM,UAAU;AACxC,aAAO,MAAM;AAAA,IACf;AACA,WAAO,GAAG,MAAM;AAAA,EAClB;AACA,SAAO,GAAG,SAAS;AACrB;AAEO,SAAS,WAAW,GAAkC;AAC3D,SAAO,KAAK,OAAO,MAAM,YAAY,UAAU;AACjD;AAEO,SAAS,YAAY,gBAAmC;AAC7D,yBAAuB,IAAI;AAC3B,MAAI,WAAW,cAAc,GAAG;AAC9B,WAAO,iBAAiB,cAAc;AAAA,EACxC;AACA,QAAM,SAAS,UAAU,EAAE;AAC3B,SAAO,iBAAiB,OAAO,cAAc,KAAK,cAAc;AAClE;AAEA,IAAI,WAAW;AACR,MAAM,yBAAyB,CAAC,QAAkB,WAAW;AAC7D,MAAM,sBAAsB,MAAM;AAElC,SAAS,iBAAiB,GAAmB;AAClD,MAAI,WAAW,CAAC,GAAG;AACjB,2BAAuB,IAAI;AAC3B,WAAO,EAAE;AAAA,EACX;AACA,SAAO;AACT;AAEO,SAAS,gBAAgB,GAAmB;AACjD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAEO,SAAS,oBAAoB,GAAmB;AACrD,MAAI,WAAW,CAAC;AAAG,WAAO,EAAE;AAC5B,SAAO;AACT;AAGO,MAAM,oBAAoB,CAAC,UAAkB,aAAa,SAAS;AACxE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,CAAC,YAAY,OAAO,aAAa,UAAU;AAC7C,YAAM,IAAI,MAAM,sCAAsC,UAAU;AAAA,IAClE;AAAA,EACF;AACA,QAAM,OAAO,WAAW,UAAU,EAAE;AACpC,SAAO,aAAa,SAAS,UAAU;AACzC;",
6
6
  "names": []
7
7
  }