@tamagui/core 1.0.1-rc.5 → 1.0.1-rc.6

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 (166) hide show
  1. package/dist/cjs/addTheme.js +1 -1
  2. package/dist/cjs/addTheme.js.map +1 -1
  3. package/dist/cjs/config.js +1 -1
  4. package/dist/cjs/config.js.map +1 -1
  5. package/dist/cjs/constants/constants.js +1 -1
  6. package/dist/cjs/constants/constants.js.map +1 -1
  7. package/dist/cjs/createComponent.js +86 -19
  8. package/dist/cjs/createComponent.js.map +2 -2
  9. package/dist/cjs/createTamagui.js +8 -4
  10. package/dist/cjs/createTamagui.js.map +2 -2
  11. package/dist/cjs/helpers/ThemeManager.js +21 -7
  12. package/dist/cjs/helpers/ThemeManager.js.map +2 -2
  13. package/dist/cjs/helpers/ThemeManager.test.js +5 -5
  14. package/dist/cjs/helpers/ThemeManager.test.js.map +1 -1
  15. package/dist/cjs/helpers/createMediaStyle.js +1 -1
  16. package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
  17. package/dist/cjs/helpers/createPropMapper.js +12 -3
  18. package/dist/cjs/helpers/createPropMapper.js.map +2 -2
  19. package/dist/cjs/helpers/createProxy.js +1 -1
  20. package/dist/cjs/helpers/createProxy.js.map +1 -1
  21. package/dist/cjs/helpers/expandStyle.js +18 -3
  22. package/dist/cjs/helpers/expandStyle.js.map +2 -2
  23. package/dist/cjs/helpers/extendStaticConfig.js +1 -1
  24. package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
  25. package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
  26. package/dist/cjs/helpers/getSize.js.map +2 -2
  27. package/dist/cjs/helpers/getSplitStyles.js +56 -12
  28. package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
  29. package/dist/cjs/helpers/getStylesAtomic.js +15 -13
  30. package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
  31. package/dist/cjs/helpers/getThemeCSSRules.js +5 -3
  32. package/dist/cjs/helpers/getThemeCSSRules.js.map +2 -2
  33. package/dist/cjs/helpers/insertStyleRule.js +4 -2
  34. package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
  35. package/dist/cjs/helpers/isTamaguiComponent.js +1 -1
  36. package/dist/cjs/helpers/isTamaguiComponent.js.map +2 -2
  37. package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
  38. package/dist/cjs/helpers/matchMedia.js.map +2 -2
  39. package/dist/cjs/helpers/mergeTransform.js +3 -1
  40. package/dist/cjs/helpers/mergeTransform.js.map +2 -2
  41. package/dist/cjs/helpers/normalizeColor.js +1 -1
  42. package/dist/cjs/helpers/normalizeColor.js.map +2 -2
  43. package/dist/cjs/helpers/normalizeValueWithProperty.js +8 -2
  44. package/dist/cjs/helpers/normalizeValueWithProperty.js.map +2 -2
  45. package/dist/cjs/helpers/registerCSSVariable.js.map +2 -2
  46. package/dist/cjs/hooks/useElementLayout.js +1 -1
  47. package/dist/cjs/hooks/useElementLayout.js.map +2 -2
  48. package/dist/cjs/hooks/useMedia.js +5 -4
  49. package/dist/cjs/hooks/useMedia.js.map +2 -2
  50. package/dist/cjs/hooks/useTheme.js +33 -9
  51. package/dist/cjs/hooks/useTheme.js.map +2 -2
  52. package/dist/cjs/insertFont.js.map +2 -2
  53. package/dist/cjs/styled.js +3 -1
  54. package/dist/cjs/styled.js.map +2 -2
  55. package/dist/cjs/types.js.map +1 -1
  56. package/dist/cjs/vendor/Pressability.native.js.map +2 -2
  57. package/dist/cjs/views/FontLanguage.native.js.map +2 -2
  58. package/dist/cjs/views/Slot.js.map +2 -2
  59. package/dist/cjs/views/Stack.test.js +1 -1
  60. package/dist/cjs/views/Stack.test.js.map +1 -1
  61. package/dist/cjs/views/TamaguiProvider.js +1 -1
  62. package/dist/cjs/views/TamaguiProvider.js.map +2 -2
  63. package/dist/cjs/views/Theme.js +5 -2
  64. package/dist/cjs/views/Theme.js.map +2 -2
  65. package/dist/esm/addTheme.js +1 -1
  66. package/dist/esm/addTheme.js.map +1 -1
  67. package/dist/esm/config.js +1 -1
  68. package/dist/esm/config.js.map +1 -1
  69. package/dist/esm/constants/constants.js +1 -1
  70. package/dist/esm/constants/constants.js.map +1 -1
  71. package/dist/esm/createComponent.js +93 -20
  72. package/dist/esm/createComponent.js.map +2 -2
  73. package/dist/esm/createTamagui.js +8 -4
  74. package/dist/esm/createTamagui.js.map +2 -2
  75. package/dist/esm/helpers/ThemeManager.js +21 -7
  76. package/dist/esm/helpers/ThemeManager.js.map +2 -2
  77. package/dist/esm/helpers/ThemeManager.test.js +5 -5
  78. package/dist/esm/helpers/ThemeManager.test.js.map +1 -1
  79. package/dist/esm/helpers/createMediaStyle.js +1 -1
  80. package/dist/esm/helpers/createMediaStyle.js.map +2 -2
  81. package/dist/esm/helpers/createPropMapper.js +12 -3
  82. package/dist/esm/helpers/createPropMapper.js.map +2 -2
  83. package/dist/esm/helpers/createProxy.js +1 -1
  84. package/dist/esm/helpers/createProxy.js.map +1 -1
  85. package/dist/esm/helpers/expandStyle.js +18 -3
  86. package/dist/esm/helpers/expandStyle.js.map +2 -2
  87. package/dist/esm/helpers/extendStaticConfig.js +1 -1
  88. package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
  89. package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
  90. package/dist/esm/helpers/getSize.js.map +2 -2
  91. package/dist/esm/helpers/getSplitStyles.js +63 -13
  92. package/dist/esm/helpers/getSplitStyles.js.map +2 -2
  93. package/dist/esm/helpers/getStylesAtomic.js +15 -13
  94. package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
  95. package/dist/esm/helpers/getThemeCSSRules.js +5 -3
  96. package/dist/esm/helpers/getThemeCSSRules.js.map +2 -2
  97. package/dist/esm/helpers/insertStyleRule.js +4 -2
  98. package/dist/esm/helpers/insertStyleRule.js.map +2 -2
  99. package/dist/esm/helpers/isTamaguiComponent.js +1 -1
  100. package/dist/esm/helpers/isTamaguiComponent.js.map +2 -2
  101. package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
  102. package/dist/esm/helpers/matchMedia.js.map +2 -2
  103. package/dist/esm/helpers/mergeTransform.js +3 -1
  104. package/dist/esm/helpers/mergeTransform.js.map +2 -2
  105. package/dist/esm/helpers/normalizeColor.js +1 -1
  106. package/dist/esm/helpers/normalizeColor.js.map +2 -2
  107. package/dist/esm/helpers/normalizeValueWithProperty.js +8 -2
  108. package/dist/esm/helpers/normalizeValueWithProperty.js.map +2 -2
  109. package/dist/esm/helpers/registerCSSVariable.js.map +2 -2
  110. package/dist/esm/hooks/useElementLayout.js +1 -1
  111. package/dist/esm/hooks/useElementLayout.js.map +2 -2
  112. package/dist/esm/hooks/useMedia.js +5 -4
  113. package/dist/esm/hooks/useMedia.js.map +2 -2
  114. package/dist/esm/hooks/useTheme.js +37 -10
  115. package/dist/esm/hooks/useTheme.js.map +2 -2
  116. package/dist/esm/insertFont.js.map +2 -2
  117. package/dist/esm/styled.js +3 -1
  118. package/dist/esm/styled.js.map +2 -2
  119. package/dist/esm/vendor/Pressability.native.js.map +2 -2
  120. package/dist/esm/views/FontLanguage.native.js.map +2 -2
  121. package/dist/esm/views/Slot.js +6 -1
  122. package/dist/esm/views/Slot.js.map +2 -2
  123. package/dist/esm/views/Stack.test.js +1 -1
  124. package/dist/esm/views/Stack.test.js.map +1 -1
  125. package/dist/esm/views/TamaguiProvider.js +1 -1
  126. package/dist/esm/views/TamaguiProvider.js.map +2 -2
  127. package/dist/esm/views/Theme.js +5 -2
  128. package/dist/esm/views/Theme.js.map +2 -2
  129. package/package.json +12 -11
  130. package/src/addTheme.ts +1 -1
  131. package/src/config.ts +1 -1
  132. package/src/constants/constants.ts +1 -1
  133. package/src/createComponent.tsx +133 -35
  134. package/src/createTamagui.ts +16 -6
  135. package/src/helpers/ThemeManager.test.tsx +5 -5
  136. package/src/helpers/ThemeManager.tsx +36 -14
  137. package/src/helpers/createMediaStyle.ts +4 -2
  138. package/src/helpers/createPropMapper.ts +24 -5
  139. package/src/helpers/createProxy.ts +1 -1
  140. package/src/helpers/expandStyle.ts +18 -3
  141. package/src/helpers/extendStaticConfig.ts +5 -2
  142. package/src/helpers/getExpandedShorthands.ts +3 -1
  143. package/src/helpers/getSize.ts +2 -1
  144. package/src/helpers/getSplitStyles.tsx +95 -29
  145. package/src/helpers/getStylesAtomic.ts +19 -14
  146. package/src/helpers/getThemeCSSRules.ts +10 -4
  147. package/src/helpers/insertStyleRule.tsx +15 -6
  148. package/src/helpers/isTamaguiComponent.tsx +1 -1
  149. package/src/helpers/isTamaguiElement.tsx +4 -1
  150. package/src/helpers/matchMedia.ts +2 -1
  151. package/src/helpers/mergeTransform.ts +9 -2
  152. package/src/helpers/normalizeColor.ts +1 -1
  153. package/src/helpers/normalizeValueWithProperty.ts +8 -2
  154. package/src/helpers/registerCSSVariable.ts +3 -1
  155. package/src/hooks/useElementLayout.tsx +1 -1
  156. package/src/hooks/useMedia.tsx +5 -6
  157. package/src/hooks/useTheme.tsx +59 -18
  158. package/src/insertFont.ts +4 -1
  159. package/src/styled.tsx +22 -10
  160. package/src/types.tsx +56 -26
  161. package/src/vendor/Pressability.native.tsx +2 -1
  162. package/src/views/FontLanguage.native.tsx +3 -1
  163. package/src/views/Slot.tsx +14 -3
  164. package/src/views/Stack.test.tsx +1 -1
  165. package/src/views/TamaguiProvider.tsx +1 -1
  166. package/src/views/Theme.tsx +10 -3
@@ -39,9 +39,12 @@ function Theme(props) {
39
39
  return props.children;
40
40
  }
41
41
  const isRoot = !!props["_isRoot"];
42
- const { name, theme, themeManager, isNewTheme, className } = (0, import_useTheme.useChangeThemeEffect)(props, isRoot);
42
+ const { name, theme, themeManager, isNewTheme, className } = (0, import_useTheme.useChangeThemeEffect)(
43
+ props,
44
+ isRoot
45
+ );
43
46
  const disableThemeClass = props.disableThemeClass;
44
- const missingTheme = !name || !theme;
47
+ const missingTheme = !(name && theme);
45
48
  let contents = (0, import_react.useMemo)(() => {
46
49
  const next = props["data-themeable"] ? import_react.default.cloneElement(props.children, { ["data-themeable"]: true }) : props.children;
47
50
  return missingTheme ? next : wrapThemeManagerContext(next, themeManager);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/views/Theme.tsx"],
4
- "sourcesContent": ["import { isWeb } from '@tamagui/constants'\nimport React, { useMemo } from 'react'\n\nimport { variableToString } from '../createVariable'\nimport { ThemeManager } from '../helpers/ThemeManager'\nimport { ThemeManagerContext } from '../helpers/ThemeManagerContext'\nimport { 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) {\n return props.children\n }\n\n const isRoot = !!props['_isRoot']\n const { name, theme, themeManager, isNewTheme, className } = useChangeThemeEffect(props, isRoot)\n\n const disableThemeClass = props.disableThemeClass\n const missingTheme = !name || !theme\n\n // memo here, changing theme without re-rendering all children is a critical optimization\n // may require some effort of end user to memoize but without this memo they'd have no option\n let contents = useMemo(() => {\n const next = props['data-themeable']\n ? React.cloneElement(props.children, { ['data-themeable']: true })\n : props.children\n\n return missingTheme ? next : wrapThemeManagerContext(next, themeManager)\n }, [missingTheme, props.children, themeManager])\n\n if (process.env.NODE_ENV === 'development' && missingTheme) {\n // eslint-disable-next-line no-console\n name && !theme && console.warn(`No theme found by name ${name}`)\n return props.children\n }\n\n if (disableThemeClass || missingTheme) {\n return contents\n }\n\n if (isWeb) {\n const cn = [props.className, className, '_dsp_contents'].filter(Boolean).join(' ')\n contents = (\n <span\n className={cn}\n style={{\n // in order to provide currentColor, set color by default\n color: variableToString(theme?.color),\n }}\n >\n {contents}\n </span>\n )\n }\n\n return contents\n}\n\nexport function wrapThemeManagerContext(\n children: any,\n themeManager?: ThemeManager | null,\n shouldReset?: boolean\n) {\n // be sure to memoize themeManager to avoid reparenting\n if (!themeManager) {\n return children\n }\n // be sure to memoize shouldReset to avoid reparenting\n let next = children\n // TODO likely not necessary if we do reset logic now in useTheme?\n // reset to parent theme\n if (shouldReset && themeManager) {\n next = <Theme name={themeManager.state.parentName}>{next}</Theme>\n }\n return <ThemeManagerContext.Provider value={themeManager}>{next}</ThemeManagerContext.Provider>\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4CM;AA5CN,uBAAsB;AACtB,mBAA+B;AAE/B,4BAAiC;AAEjC,iCAAoC;AACpC,sBAAqC;AAG9B,SAAS,MAAM,OAAmB;AAEvC,MAAI,MAAM,SAAS;AACjB,WAAO,MAAM;AAAA,EACf;AAEA,QAAM,SAAS,CAAC,CAAC,MAAM;AACvB,QAAM,EAAE,MAAM,OAAO,cAAc,YAAY,UAAU,QAAI,sCAAqB,OAAO,MAAM;AAE/F,QAAM,oBAAoB,MAAM;AAChC,QAAM,eAAe,CAAC,QAAQ,CAAC;AAI/B,MAAI,eAAW,sBAAQ,MAAM;AAC3B,UAAM,OAAO,MAAM,oBACf,aAAAA,QAAM,aAAa,MAAM,UAAU,EAAE,CAAC,mBAAmB,KAAK,CAAC,IAC/D,MAAM;AAEV,WAAO,eAAe,OAAO,wBAAwB,MAAM,YAAY;AAAA,EACzE,GAAG,CAAC,cAAc,MAAM,UAAU,YAAY,CAAC;AAE/C,MAAI,QAAQ,IAAI,aAAa,iBAAiB,cAAc;AAE1D,YAAQ,CAAC,SAAS,QAAQ,KAAK,0BAA0B,MAAM;AAC/D,WAAO,MAAM;AAAA,EACf;AAEA,MAAI,qBAAqB,cAAc;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,wBAAO;AACT,UAAM,KAAK,CAAC,MAAM,WAAW,WAAW,eAAe,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AACjF,eACE,4CAAC;AAAA,MACC,WAAW;AAAA,MACX,OAAO;AAAA,QAEL,WAAO,wCAAiB,+BAAO,KAAK;AAAA,MACtC;AAAA,MAEC;AAAA,KACH;AAAA,EAEJ;AAEA,SAAO;AACT;AAEO,SAAS,wBACd,UACA,cACA,aACA;AAEA,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO;AAGX,MAAI,eAAe,cAAc;AAC/B,WAAO,4CAAC;AAAA,MAAM,MAAM,aAAa,MAAM;AAAA,MAAa;AAAA,KAAK;AAAA,EAC3D;AACA,SAAO,4CAAC,+CAAoB,UAApB;AAAA,IAA6B,OAAO;AAAA,IAAe;AAAA,GAAK;AAClE;",
4
+ "sourcesContent": ["import { isWeb } from '@tamagui/constants'\nimport React, { useMemo } from 'react'\n\nimport { variableToString } from '../createVariable'\nimport { ThemeManager } from '../helpers/ThemeManager'\nimport { ThemeManagerContext } from '../helpers/ThemeManagerContext'\nimport { 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) {\n return props.children\n }\n\n const isRoot = !!props['_isRoot']\n const { name, theme, themeManager, isNewTheme, className } = useChangeThemeEffect(\n props,\n isRoot\n )\n\n const disableThemeClass = props.disableThemeClass\n const missingTheme = !(name && theme)\n\n // memo here, changing theme without re-rendering all children is a critical optimization\n // may require some effort of end user to memoize but without this memo they'd have no option\n let contents = useMemo(() => {\n const next = props['data-themeable']\n ? React.cloneElement(props.children, { ['data-themeable']: true })\n : props.children\n\n return missingTheme ? next : wrapThemeManagerContext(next, themeManager)\n }, [missingTheme, props.children, themeManager])\n\n if (process.env.NODE_ENV === 'development' && missingTheme) {\n // eslint-disable-next-line no-console\n name && !theme && console.warn(`No theme found by name ${name}`)\n return props.children\n }\n\n if (disableThemeClass || missingTheme) {\n return contents\n }\n\n if (isWeb) {\n const cn = [props.className, className, '_dsp_contents'].filter(Boolean).join(' ')\n contents = (\n <span\n className={cn}\n style={{\n // in order to provide currentColor, set color by default\n color: variableToString(theme?.color),\n }}\n >\n {contents}\n </span>\n )\n }\n\n return contents\n}\n\nexport function wrapThemeManagerContext(\n children: any,\n themeManager?: ThemeManager | null,\n shouldReset?: boolean\n) {\n // be sure to memoize themeManager to avoid reparenting\n if (!themeManager) {\n return children\n }\n // be sure to memoize shouldReset to avoid reparenting\n let next = children\n // TODO likely not necessary if we do reset logic now in useTheme?\n // reset to parent theme\n if (shouldReset && themeManager) {\n next = <Theme name={themeManager.state.parentName}>{next}</Theme>\n }\n return (\n <ThemeManagerContext.Provider value={themeManager}>\n {next}\n </ThemeManagerContext.Provider>\n )\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+CM;AA/CN,uBAAsB;AACtB,mBAA+B;AAE/B,4BAAiC;AAEjC,iCAAoC;AACpC,sBAAqC;AAG9B,SAAS,MAAM,OAAmB;AAEvC,MAAI,MAAM,SAAS;AACjB,WAAO,MAAM;AAAA,EACf;AAEA,QAAM,SAAS,CAAC,CAAC,MAAM;AACvB,QAAM,EAAE,MAAM,OAAO,cAAc,YAAY,UAAU,QAAI;AAAA,IAC3D;AAAA,IACA;AAAA,EACF;AAEA,QAAM,oBAAoB,MAAM;AAChC,QAAM,eAAe,EAAE,QAAQ;AAI/B,MAAI,eAAW,sBAAQ,MAAM;AAC3B,UAAM,OAAO,MAAM,oBACf,aAAAA,QAAM,aAAa,MAAM,UAAU,EAAE,CAAC,mBAAmB,KAAK,CAAC,IAC/D,MAAM;AAEV,WAAO,eAAe,OAAO,wBAAwB,MAAM,YAAY;AAAA,EACzE,GAAG,CAAC,cAAc,MAAM,UAAU,YAAY,CAAC;AAE/C,MAAI,QAAQ,IAAI,aAAa,iBAAiB,cAAc;AAE1D,YAAQ,CAAC,SAAS,QAAQ,KAAK,0BAA0B,MAAM;AAC/D,WAAO,MAAM;AAAA,EACf;AAEA,MAAI,qBAAqB,cAAc;AACrC,WAAO;AAAA,EACT;AAEA,MAAI,wBAAO;AACT,UAAM,KAAK,CAAC,MAAM,WAAW,WAAW,eAAe,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AACjF,eACE,4CAAC;AAAA,MACC,WAAW;AAAA,MACX,OAAO;AAAA,QAEL,WAAO,wCAAiB,+BAAO,KAAK;AAAA,MACtC;AAAA,MAEC;AAAA,KACH;AAAA,EAEJ;AAEA,SAAO;AACT;AAEO,SAAS,wBACd,UACA,cACA,aACA;AAEA,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,EACT;AAEA,MAAI,OAAO;AAGX,MAAI,eAAe,cAAc;AAC/B,WAAO,4CAAC;AAAA,MAAM,MAAM,aAAa,MAAM;AAAA,MAAa;AAAA,KAAK;AAAA,EAC3D;AACA,SACE,4CAAC,+CAAoB,UAApB;AAAA,IAA6B,OAAO;AAAA,IAClC;AAAA,GACH;AAEJ;",
6
6
  "names": ["React"]
7
7
  }
@@ -7,7 +7,7 @@ function addTheme(props) {
7
7
  const config = getConfig();
8
8
  if (process.env.NODE_ENV === "development") {
9
9
  if (!config) {
10
- throw new Error(`No config`);
10
+ throw new Error("No config");
11
11
  }
12
12
  const theme2 = config.themes[props.name];
13
13
  if (!props.update && theme2) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/addTheme.ts"],
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"],
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
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;",
6
6
  "names": ["theme"]
7
7
  }
@@ -16,7 +16,7 @@ const setConfigFont = (name, font, fontParsed) => {
16
16
  const getConfig = () => {
17
17
  if (!conf) {
18
18
  throw new Error(
19
- process.env.NODE_ENV === "development" ? `Missing tamagui config, you either have a duplicate config, or haven't set it up. Be sure createTamagui is called before rendering.` : `Err0`
19
+ process.env.NODE_ENV === "development" ? `Missing tamagui config, you either have a duplicate config, or haven't set it up. Be sure createTamagui is called before rendering.` : "Err0"
20
20
  );
21
21
  }
22
22
  return conf;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/config.ts"],
4
- "sourcesContent": ["import { ConfigListener, TamaguiInternalConfig, ThemeParsed, Tokens } from './types'\n\nlet conf: TamaguiInternalConfig | null\n\nexport const setConfig = (next: TamaguiInternalConfig) => {\n conf = next\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(next))\n }\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 Object.assign(conf!.fonts, { [name]: font })\n Object.assign(conf!.fontsParsed, { [`$${name}`]: fontParsed })\n}\n\nexport const getConfig = () => {\n if (!conf) {\n throw new Error(\n process.env.NODE_ENV === 'development'\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"],
4
+ "sourcesContent": ["import { ConfigListener, TamaguiInternalConfig, ThemeParsed, Tokens } from './types'\n\nlet conf: TamaguiInternalConfig | null\n\nexport const setConfig = (next: TamaguiInternalConfig) => {\n conf = next\n if (configListeners.size) {\n configListeners.forEach((cb) => cb(next))\n }\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 Object.assign(conf!.fonts, { [name]: font })\n Object.assign(conf!.fontsParsed, { [`$${name}`]: fontParsed })\n}\n\nexport const getConfig = () => {\n if (!conf) {\n throw new Error(\n process.env.NODE_ENV === 'development'\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"],
5
5
  "mappings": "AAEA,IAAI;AAEG,MAAM,YAAY,CAAC,SAAgC;AACxD,SAAO;AACP,MAAI,gBAAgB,MAAM;AACxB,oBAAgB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAAA,EAC1C;AACF;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,SAAO,OAAO,KAAM,OAAO,EAAE,CAAC,OAAO,KAAK,CAAC;AAC3C,SAAO,OAAO,KAAM,aAAa,EAAE,CAAC,IAAI,SAAS,WAAW,CAAC;AAC/D;AAEO,MAAM,YAAY,MAAM;AAC7B,MAAI,CAAC,MAAM;AACT,UAAM,IAAI;AAAA,MACR,QAAQ,IAAI,aAAa,gBACrB,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;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  const THEME_NAME_SEPARATOR = "_";
2
- const THEME_CLASSNAME_PREFIX = `t_`;
2
+ const THEME_CLASSNAME_PREFIX = "t_";
3
3
  const webOnlyDefaultStyles = {
4
4
  display: "flex",
5
5
  flexBasis: "auto",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/constants/constants.ts"],
4
- "sourcesContent": ["import { isWeb } from '@tamagui/constants'\n\nexport const THEME_NAME_SEPARATOR = '_'\nexport const THEME_CLASSNAME_PREFIX = `t_`\n\nexport const webOnlyDefaultStyles = {\n display: 'flex',\n flexBasis: 'auto',\n boxSizing: 'border-box',\n position: 'relative',\n minHeight: 0,\n minWidth: 0,\n}\n\nexport const stackDefaultStyles = {\n alignItems: 'stretch',\n flexShrink: 0,\n ...webOnlyDefaultStyles,\n}\n"],
4
+ "sourcesContent": ["import { isWeb } from '@tamagui/constants'\n\nexport const THEME_NAME_SEPARATOR = '_'\nexport const THEME_CLASSNAME_PREFIX = 't_'\n\nexport const webOnlyDefaultStyles = {\n display: 'flex',\n flexBasis: 'auto',\n boxSizing: 'border-box',\n position: 'relative',\n minHeight: 0,\n minWidth: 0,\n}\n\nexport const stackDefaultStyles = {\n alignItems: 'stretch',\n flexShrink: 0,\n ...webOnlyDefaultStyles,\n}\n"],
5
5
  "mappings": "AAEO,MAAM,uBAAuB;AAC7B,MAAM,yBAAyB;AAE/B,MAAM,uBAAuB;AAAA,EAClC,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AACZ;AAEO,MAAM,qBAAqB;AAAA,EAChC,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,GAAG;AACL;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,12 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useComposedRefs } from "@tamagui/compose-refs";
3
- import { isClient, isRSC, isServer, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
3
+ import {
4
+ isClient,
5
+ isRSC,
6
+ isServer,
7
+ isWeb,
8
+ useIsomorphicLayoutEffect
9
+ } from "@tamagui/constants";
4
10
  import {
5
11
  composeEventHandlers,
6
12
  stylePropsView,
@@ -101,7 +107,9 @@ function createComponent(configIn, ParentComponent) {
101
107
  const useAnimations = animationsConfig == null ? void 0 : animationsConfig.useAnimations;
102
108
  const avoidClassesWhileAnimating = animationsConfig.isReactNative;
103
109
  const hasEnterStyle = !!props.enterStyle;
104
- const needsMount = Boolean((isWeb ? isClient : true) && (hasEnterStyle || props.animation));
110
+ const needsMount = Boolean(
111
+ (isWeb ? isClient : true) && (hasEnterStyle || props.animation)
112
+ );
105
113
  const states = useServerState(
106
114
  needsMount ? defaultComponentState : defaultComponentStateMounted
107
115
  );
@@ -143,7 +151,7 @@ function createComponent(configIn, ParentComponent) {
143
151
  const banner = `${name}${dataIs ? ` ${dataIs}` : ""} ${type}`;
144
152
  console.group(`%c ${banner}`, "background: yellow;");
145
153
  if (!isServer) {
146
- console.log(`state`, state);
154
+ console.log("state", state);
147
155
  }
148
156
  }
149
157
  }
@@ -201,11 +209,20 @@ function createComponent(configIn, ParentComponent) {
201
209
  const isAnimatedReactNativeWeb = isAnimated && avoidClassesWhileAnimating;
202
210
  if (process.env.NODE_ENV === "development") {
203
211
  if (!process.env.TAMAGUI_TARGET) {
204
- console.error(`No process.env.TAMAGUI_TARGET set, please set it to "native" or "web".`);
212
+ console.error(
213
+ `No process.env.TAMAGUI_TARGET set, please set it to "native" or "web".`
214
+ );
205
215
  }
206
216
  if (debugProp) {
207
217
  console.groupCollapsed("props");
208
- console.log("props in", propsIn, "mapped to", props, "in order", Object.keys(props));
218
+ console.log(
219
+ "props in",
220
+ propsIn,
221
+ "mapped to",
222
+ props,
223
+ "in order",
224
+ Object.keys(props)
225
+ );
209
226
  console.log("splitStyles", splitStyles);
210
227
  console.log("shouldListenForMediaChanges", shouldListenForMediaChanges);
211
228
  console.log("className", Object.values(splitStyles.classNames));
@@ -214,7 +231,6 @@ function createComponent(configIn, ParentComponent) {
214
231
  }
215
232
  console.groupEnd();
216
233
  if (debugProp === "break") {
217
- debugger;
218
234
  }
219
235
  }
220
236
  }
@@ -317,7 +333,7 @@ function createComponent(configIn, ParentComponent) {
317
333
  onStartShouldSetResponderCapture
318
334
  });
319
335
  }
320
- if (props.href != void 0 && hrefAttrs != void 0) {
336
+ if (props.href !== void 0 && hrefAttrs !== void 0) {
321
337
  const { download, rel, target } = hrefAttrs;
322
338
  if (download != null) {
323
339
  viewProps.download = download;
@@ -326,10 +342,10 @@ function createComponent(configIn, ParentComponent) {
326
342
  viewProps.rel = rel;
327
343
  }
328
344
  if (typeof target === "string") {
329
- viewProps.target = target.charAt(0) !== "_" ? "_" + target : target;
345
+ viewProps.target = target.charAt(0) !== "_" ? `_${target}` : target;
330
346
  }
331
347
  }
332
- const _focusable = focusable != void 0 ? focusable : accessible;
348
+ const _focusable = focusable !== void 0 ? focusable : accessible;
333
349
  const role = viewProps.role;
334
350
  if (_focusable === false) {
335
351
  viewProps.tabIndex = "-1";
@@ -353,7 +369,9 @@ function createComponent(configIn, ParentComponent) {
353
369
  if (process.env.NODE_ENV === "development" && !isText && isWeb) {
354
370
  Children.toArray(props.children).forEach((item) => {
355
371
  if (typeof item === "string") {
356
- console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`);
372
+ console.error(
373
+ `Unexpected text node: ${item}. A text node cannot be a child of a <View>.`
374
+ );
357
375
  }
358
376
  });
359
377
  }
@@ -447,8 +465,8 @@ function createComponent(configIn, ParentComponent) {
447
465
  for (const style2 of styles) {
448
466
  if (style2 == null ? void 0 : style2.fontFamily) {
449
467
  style2.fontFamily = overrideFace;
450
- delete style2.fontWeight;
451
- delete style2.fontStyle;
468
+ style2.fontWeight = void 0;
469
+ style2.fontStyle = void 0;
452
470
  }
453
471
  }
454
472
  }
@@ -460,7 +478,7 @@ function createComponent(configIn, ParentComponent) {
460
478
  const attachPress = !!(runtimePressStyle || onPress || onPressOut || onPressIn || onClick);
461
479
  const runtimeHoverStyle = !disabled && noClassNames && (pseudos == null ? void 0 : pseudos.hoverStyle);
462
480
  const isHoverable = isWeb && !!(runtimeHoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
463
- const handlesPressEvents = !isWeb && !asChild;
481
+ const handlesPressEvents = !(isWeb || asChild);
464
482
  const shouldAttach = asChild ? false : Boolean(
465
483
  attachPress || isHoverable || "pressStyle" in props || "onPress" in props || "onPressIn" in props || "onPressOut" in props || isWeb && ("hoverStyle" in props || "onHoverIn" in props || "onHoverOut" in props || "onMouseEnter" in props || "onMouseLeave" in props)
466
484
  );
@@ -582,7 +600,7 @@ function createComponent(configIn, ParentComponent) {
582
600
  if (process.env.TAMAGUI_TARGET === "web") {
583
601
  if (events || isAnimatedReactNativeWeb) {
584
602
  content = /* @__PURE__ */ jsx("span", {
585
- className: (isAnimatedReactNativeWeb ? className : "") + ` _dsp_contents`,
603
+ className: `${isAnimatedReactNativeWeb ? className : ""} _dsp_contents`,
586
604
  ...events && {
587
605
  onMouseEnter: events.onMouseEnter,
588
606
  onMouseLeave: events.onMouseLeave,
@@ -606,7 +624,42 @@ function createComponent(configIn, ParentComponent) {
606
624
  console.log("children", content);
607
625
  console.groupEnd();
608
626
  if (typeof window !== "undefined") {
609
- console.log({ state, shouldProvideThemeManager, isAnimated, isAnimatedReactNativeWeb, tamaguiDefaultProps, viewProps, splitStyles, animationStyles, handlesPressEvents, isStringElement, classNamesIn: (_f = props.className) == null ? void 0 : _f.split(" "), classNamesOut: (_g = viewProps.className) == null ? void 0 : _g.split(" "), events, shouldAttach, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses: avoidClassesWhileAnimating, animation: props.animation, style: splitStylesStyle, ...typeof window !== "undefined" ? { theme, themeClassName: theme.className, staticConfig, tamaguiConfig, events, shouldAvoidClasses, shouldForcePseudo, classNames: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) } : null });
627
+ console.log({
628
+ state,
629
+ shouldProvideThemeManager,
630
+ isAnimated,
631
+ isAnimatedReactNativeWeb,
632
+ tamaguiDefaultProps,
633
+ viewProps,
634
+ splitStyles,
635
+ animationStyles,
636
+ handlesPressEvents,
637
+ isStringElement,
638
+ classNamesIn: (_f = props.className) == null ? void 0 : _f.split(" "),
639
+ classNamesOut: (_g = viewProps.className) == null ? void 0 : _g.split(" "),
640
+ events,
641
+ shouldAttach,
642
+ styles,
643
+ pseudos,
644
+ content,
645
+ childEls,
646
+ shouldAvoidClasses,
647
+ avoidClasses: avoidClassesWhileAnimating,
648
+ animation: props.animation,
649
+ style: splitStylesStyle,
650
+ ...typeof window !== "undefined" ? {
651
+ theme,
652
+ themeClassName: theme.className,
653
+ staticConfig,
654
+ tamaguiConfig,
655
+ events,
656
+ shouldAvoidClasses,
657
+ shouldForcePseudo,
658
+ classNames: Object.fromEntries(
659
+ Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])
660
+ )
661
+ } : null
662
+ });
610
663
  }
611
664
  console.groupEnd();
612
665
  }
@@ -641,7 +694,7 @@ function createComponent(configIn, ParentComponent) {
641
694
  initialTheme = proxyThemeVariables(next);
642
695
  if (process.env.NODE_ENV === "development") {
643
696
  if (!initialTheme) {
644
- console.log(`Warning: Missing theme`);
697
+ console.log("Warning: Missing theme");
645
698
  }
646
699
  }
647
700
  }
@@ -680,7 +733,22 @@ function createComponent(configIn, ParentComponent) {
680
733
  tamaguiDefaultProps = defaults;
681
734
  if (process.env.NODE_ENV === "development" && debug) {
682
735
  if (process.env.IS_STATIC !== "is_static") {
683
- console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, { staticConfig, tamaguiDefaultProps, defaults, defaultPropsIn, defaultPropsKeyOrder: Object.keys(staticConfig.defaultProps), defaultPropsInKeyOrder: Object.keys(defaultPropsIn).map((k) => [k, defaultPropsIn[k]]), ourProps, ourClassNames, defaultsClassnames, defaultTag, noClassNames });
736
+ console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, {
737
+ staticConfig,
738
+ tamaguiDefaultProps,
739
+ defaults,
740
+ defaultPropsIn,
741
+ defaultPropsKeyOrder: Object.keys(staticConfig.defaultProps),
742
+ defaultPropsInKeyOrder: Object.keys(defaultPropsIn).map((k) => [
743
+ k,
744
+ defaultPropsIn[k]
745
+ ]),
746
+ ourProps,
747
+ ourClassNames,
748
+ defaultsClassnames,
749
+ defaultTag,
750
+ noClassNames
751
+ });
684
752
  }
685
753
  }
686
754
  });
@@ -726,7 +794,7 @@ const Spacer = createComponent({
726
794
  variants: {
727
795
  size: {
728
796
  "...size": (size, { tokens }) => {
729
- size = size == true ? "$true" : size;
797
+ size = size === true ? "$true" : size;
730
798
  const sizePx = tokens.space[size] ?? size;
731
799
  return {
732
800
  width: sizePx,
@@ -765,7 +833,7 @@ function spacedChildren({
765
833
  var _a;
766
834
  const hasSpace = !!(space || spaceFlex);
767
835
  const hasSeparator = !(separator === void 0 || separator === null);
768
- if (!hasSpace && !hasSeparator && !isZStack) {
836
+ if (!(hasSpace || hasSeparator || isZStack)) {
769
837
  return children;
770
838
  }
771
839
  const childrenList = Children.toArray(children);
@@ -774,7 +842,12 @@ function spacedChildren({
774
842
  if (len === 1) {
775
843
  const [onlyChild] = childrenList;
776
844
  if (React.isValidElement(onlyChild) && ((_a = onlyChild.type) == null ? void 0 : _a["shouldForwardSpace"])) {
777
- return React.cloneElement(onlyChild, { space, direction, spaceFlex, separator });
845
+ return React.cloneElement(onlyChild, {
846
+ space,
847
+ direction,
848
+ spaceFlex,
849
+ separator
850
+ });
778
851
  }
779
852
  }
780
853
  return childrenList;