@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.
- package/dist/cjs/addTheme.js +1 -1
- package/dist/cjs/addTheme.js.map +1 -1
- package/dist/cjs/config.js +1 -1
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/constants/constants.js +1 -1
- package/dist/cjs/constants/constants.js.map +1 -1
- package/dist/cjs/createComponent.js +86 -19
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/createTamagui.js +8 -4
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/helpers/ThemeManager.js +21 -7
- package/dist/cjs/helpers/ThemeManager.js.map +2 -2
- package/dist/cjs/helpers/ThemeManager.test.js +5 -5
- package/dist/cjs/helpers/ThemeManager.test.js.map +1 -1
- package/dist/cjs/helpers/createMediaStyle.js +1 -1
- package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +12 -3
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/createProxy.js +1 -1
- package/dist/cjs/helpers/createProxy.js.map +1 -1
- package/dist/cjs/helpers/expandStyle.js +18 -3
- package/dist/cjs/helpers/expandStyle.js.map +2 -2
- package/dist/cjs/helpers/extendStaticConfig.js +1 -1
- package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
- package/dist/cjs/helpers/getExpandedShorthands.js.map +2 -2
- package/dist/cjs/helpers/getSize.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +56 -12
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.js +15 -13
- package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/getThemeCSSRules.js +5 -3
- package/dist/cjs/helpers/getThemeCSSRules.js.map +2 -2
- package/dist/cjs/helpers/insertStyleRule.js +4 -2
- package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/isTamaguiComponent.js +1 -1
- package/dist/cjs/helpers/isTamaguiComponent.js.map +2 -2
- package/dist/cjs/helpers/isTamaguiElement.js.map +2 -2
- package/dist/cjs/helpers/matchMedia.js.map +2 -2
- package/dist/cjs/helpers/mergeTransform.js +3 -1
- package/dist/cjs/helpers/mergeTransform.js.map +2 -2
- package/dist/cjs/helpers/normalizeColor.js +1 -1
- package/dist/cjs/helpers/normalizeColor.js.map +2 -2
- package/dist/cjs/helpers/normalizeValueWithProperty.js +8 -2
- package/dist/cjs/helpers/normalizeValueWithProperty.js.map +2 -2
- package/dist/cjs/helpers/registerCSSVariable.js.map +2 -2
- package/dist/cjs/hooks/useElementLayout.js +1 -1
- package/dist/cjs/hooks/useElementLayout.js.map +2 -2
- package/dist/cjs/hooks/useMedia.js +5 -4
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/useTheme.js +33 -9
- package/dist/cjs/hooks/useTheme.js.map +2 -2
- package/dist/cjs/insertFont.js.map +2 -2
- package/dist/cjs/styled.js +3 -1
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/vendor/Pressability.native.js.map +2 -2
- package/dist/cjs/views/FontLanguage.native.js.map +2 -2
- package/dist/cjs/views/Slot.js.map +2 -2
- package/dist/cjs/views/Stack.test.js +1 -1
- package/dist/cjs/views/Stack.test.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.js +1 -1
- package/dist/cjs/views/TamaguiProvider.js.map +2 -2
- package/dist/cjs/views/Theme.js +5 -2
- package/dist/cjs/views/Theme.js.map +2 -2
- package/dist/esm/addTheme.js +1 -1
- package/dist/esm/addTheme.js.map +1 -1
- package/dist/esm/config.js +1 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/constants/constants.js +1 -1
- package/dist/esm/constants/constants.js.map +1 -1
- package/dist/esm/createComponent.js +93 -20
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/createTamagui.js +8 -4
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/helpers/ThemeManager.js +21 -7
- package/dist/esm/helpers/ThemeManager.js.map +2 -2
- package/dist/esm/helpers/ThemeManager.test.js +5 -5
- package/dist/esm/helpers/ThemeManager.test.js.map +1 -1
- package/dist/esm/helpers/createMediaStyle.js +1 -1
- package/dist/esm/helpers/createMediaStyle.js.map +2 -2
- package/dist/esm/helpers/createPropMapper.js +12 -3
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/createProxy.js +1 -1
- package/dist/esm/helpers/createProxy.js.map +1 -1
- package/dist/esm/helpers/expandStyle.js +18 -3
- package/dist/esm/helpers/expandStyle.js.map +2 -2
- package/dist/esm/helpers/extendStaticConfig.js +1 -1
- package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
- package/dist/esm/helpers/getExpandedShorthands.js.map +2 -2
- package/dist/esm/helpers/getSize.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +63 -13
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.js +15 -13
- package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
- package/dist/esm/helpers/getThemeCSSRules.js +5 -3
- package/dist/esm/helpers/getThemeCSSRules.js.map +2 -2
- package/dist/esm/helpers/insertStyleRule.js +4 -2
- package/dist/esm/helpers/insertStyleRule.js.map +2 -2
- package/dist/esm/helpers/isTamaguiComponent.js +1 -1
- package/dist/esm/helpers/isTamaguiComponent.js.map +2 -2
- package/dist/esm/helpers/isTamaguiElement.js.map +2 -2
- package/dist/esm/helpers/matchMedia.js.map +2 -2
- package/dist/esm/helpers/mergeTransform.js +3 -1
- package/dist/esm/helpers/mergeTransform.js.map +2 -2
- package/dist/esm/helpers/normalizeColor.js +1 -1
- package/dist/esm/helpers/normalizeColor.js.map +2 -2
- package/dist/esm/helpers/normalizeValueWithProperty.js +8 -2
- package/dist/esm/helpers/normalizeValueWithProperty.js.map +2 -2
- package/dist/esm/helpers/registerCSSVariable.js.map +2 -2
- package/dist/esm/hooks/useElementLayout.js +1 -1
- package/dist/esm/hooks/useElementLayout.js.map +2 -2
- package/dist/esm/hooks/useMedia.js +5 -4
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +37 -10
- package/dist/esm/hooks/useTheme.js.map +2 -2
- package/dist/esm/insertFont.js.map +2 -2
- package/dist/esm/styled.js +3 -1
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/vendor/Pressability.native.js.map +2 -2
- package/dist/esm/views/FontLanguage.native.js.map +2 -2
- package/dist/esm/views/Slot.js +6 -1
- package/dist/esm/views/Slot.js.map +2 -2
- package/dist/esm/views/Stack.test.js +1 -1
- package/dist/esm/views/Stack.test.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.js +1 -1
- package/dist/esm/views/TamaguiProvider.js.map +2 -2
- package/dist/esm/views/Theme.js +5 -2
- package/dist/esm/views/Theme.js.map +2 -2
- package/package.json +12 -11
- package/src/addTheme.ts +1 -1
- package/src/config.ts +1 -1
- package/src/constants/constants.ts +1 -1
- package/src/createComponent.tsx +133 -35
- package/src/createTamagui.ts +16 -6
- package/src/helpers/ThemeManager.test.tsx +5 -5
- package/src/helpers/ThemeManager.tsx +36 -14
- package/src/helpers/createMediaStyle.ts +4 -2
- package/src/helpers/createPropMapper.ts +24 -5
- package/src/helpers/createProxy.ts +1 -1
- package/src/helpers/expandStyle.ts +18 -3
- package/src/helpers/extendStaticConfig.ts +5 -2
- package/src/helpers/getExpandedShorthands.ts +3 -1
- package/src/helpers/getSize.ts +2 -1
- package/src/helpers/getSplitStyles.tsx +95 -29
- package/src/helpers/getStylesAtomic.ts +19 -14
- package/src/helpers/getThemeCSSRules.ts +10 -4
- package/src/helpers/insertStyleRule.tsx +15 -6
- package/src/helpers/isTamaguiComponent.tsx +1 -1
- package/src/helpers/isTamaguiElement.tsx +4 -1
- package/src/helpers/matchMedia.ts +2 -1
- package/src/helpers/mergeTransform.ts +9 -2
- package/src/helpers/normalizeColor.ts +1 -1
- package/src/helpers/normalizeValueWithProperty.ts +8 -2
- package/src/helpers/registerCSSVariable.ts +3 -1
- package/src/hooks/useElementLayout.tsx +1 -1
- package/src/hooks/useMedia.tsx +5 -6
- package/src/hooks/useTheme.tsx +59 -18
- package/src/insertFont.ts +4 -1
- package/src/styled.tsx +22 -10
- package/src/types.tsx +56 -26
- package/src/vendor/Pressability.native.tsx +2 -1
- package/src/views/FontLanguage.native.tsx +3 -1
- package/src/views/Slot.tsx +14 -3
- package/src/views/Stack.test.tsx +1 -1
- package/src/views/TamaguiProvider.tsx +1 -1
- package/src/views/Theme.tsx +10 -3
package/dist/cjs/views/Theme.js
CHANGED
|
@@ -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)(
|
|
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
|
|
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
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
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
|
}
|
package/dist/esm/addTheme.js
CHANGED
|
@@ -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(
|
|
10
|
+
throw new Error("No config");
|
|
11
11
|
}
|
|
12
12
|
const theme2 = config.themes[props.name];
|
|
13
13
|
if (!props.update && theme2) {
|
package/dist/esm/addTheme.js.map
CHANGED
|
@@ -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(
|
|
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
|
}
|
package/dist/esm/config.js
CHANGED
|
@@ -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.` :
|
|
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;
|
package/dist/esm/config.js.map
CHANGED
|
@@ -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 :
|
|
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,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 =
|
|
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 {
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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) !== "_" ?
|
|
345
|
+
viewProps.target = target.charAt(0) !== "_" ? `_${target}` : target;
|
|
330
346
|
}
|
|
331
347
|
}
|
|
332
|
-
const _focusable = focusable
|
|
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(
|
|
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
|
-
|
|
451
|
-
|
|
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
|
|
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:
|
|
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({
|
|
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(
|
|
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"}]`, {
|
|
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
|
|
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
|
|
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, {
|
|
845
|
+
return React.cloneElement(onlyChild, {
|
|
846
|
+
space,
|
|
847
|
+
direction,
|
|
848
|
+
spaceFlex,
|
|
849
|
+
separator
|
|
850
|
+
});
|
|
778
851
|
}
|
|
779
852
|
}
|
|
780
853
|
return childrenList;
|