@tamagui/web 1.139.1 → 1.139.2
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/config.cjs +25 -20
- package/dist/cjs/config.js +27 -20
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/config.native.js +36 -26
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/createTamagui.cjs +6 -4
- package/dist/cjs/createTamagui.js +4 -5
- package/dist/cjs/createTamagui.js.map +1 -1
- package/dist/cjs/createTamagui.native.js +6 -4
- package/dist/cjs/createTamagui.native.js.map +1 -1
- package/dist/cjs/loadDuplicatedConfig.cjs +1 -3
- package/dist/cjs/loadDuplicatedConfig.js +3 -5
- package/dist/cjs/loadDuplicatedConfig.js.map +1 -1
- package/dist/cjs/loadDuplicatedConfig.native.js +1 -3
- package/dist/cjs/loadDuplicatedConfig.native.js.map +1 -1
- package/dist/esm/config.js +26 -20
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/config.mjs +24 -19
- package/dist/esm/config.mjs.map +1 -1
- package/dist/esm/config.native.js +36 -26
- package/dist/esm/config.native.js.map +1 -1
- package/dist/esm/createTamagui.js +4 -6
- package/dist/esm/createTamagui.js.map +1 -1
- package/dist/esm/createTamagui.mjs +7 -5
- package/dist/esm/createTamagui.mjs.map +1 -1
- package/dist/esm/createTamagui.native.js +7 -5
- package/dist/esm/createTamagui.native.js.map +1 -1
- package/dist/esm/loadDuplicatedConfig.js +3 -5
- package/dist/esm/loadDuplicatedConfig.js.map +1 -1
- package/dist/esm/loadDuplicatedConfig.mjs +1 -3
- package/dist/esm/loadDuplicatedConfig.mjs.map +1 -1
- package/dist/esm/loadDuplicatedConfig.native.js +1 -3
- package/dist/esm/loadDuplicatedConfig.native.js.map +1 -1
- package/package.json +12 -12
- package/src/config.ts +50 -21
- package/src/createTamagui.ts +8 -9
- package/types/config.d.ts.map +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/loadDuplicatedConfig.d.ts +4 -0
- package/types/loadDuplicatedConfig.d.ts.map +1 -1
- package/src/loadDuplicatedConfig.ts +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isWeb","configListeners","setConfig","setTokens","createVariables","defaultAnimationDriver","getThemeCSSRules","scanAllSheets","proxyThemesToParents","registerCSSVariable","variableToCSS","ensureThemeVariable","configureMedia","parseFont","
|
|
1
|
+
{"version":3,"names":["isWeb","configListeners","getConfigMaybe","setConfig","setTokens","createVariables","defaultAnimationDriver","getThemeCSSRules","scanAllSheets","proxyThemesToParents","registerCSSVariable","variableToCSS","ensureThemeVariable","configureMedia","parseFont","Tamagui","shouldTokenCategoryHaveUnits","category","UNIT_CATEGORIES","Set","has","createTamagui","configIn","_configIn_settings","existingConfig","tokensParsed","tokens","tokensMerged","cat","tokenCat","key","val","prefixedKey","foundThemes","themes","noThemes","Object","keys","length","fontSizeTokens","fontsParsed","fonts","fontTokens","fromEntries","entries","map","param","k","v","res","familyName","font","fontParsed","size","specificTokens","themeConfig","cssRuleSets","declarations","fontDeclarations","key2","skey","variable","process","env","NODE_ENV","Error","JSON","stringify","variableNeedsPx","needsPx","categoryNeedsPx","shouldBeUnitless","push","declarationsToRuleSet","key1","name","language","fontVars","sep","key22","name1","declarations1","language1","fontSelector","langSelector","selectors","specificRuleSet","themesIn","dedupedThemes","getThemesDeduped","color","getThemeRulesSets","themeRuleSets","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","names","theme","value","nextRules","config","themeName","err","return","userShorthands","shorthands","builtinShorthands","lastCSSInsertedRulesIndex","getCSS","opts","arguments","separator","sinceLastCall","exclude","rules","runtimeStyles","designSystem","getNewCSS","_configIn_settings_defaultFont","defaultFontSetting","settings","defaultFont","val2","slice","defaultFontToken","unset","fontFamily","onlyAllowShorthands","fontLanguages","animations","media","disableSSR","disableRootThemeClass","mediaQueryDefaultActive","themeClassNameOnRoot","cssStyleSeparator","webContainerType","inverseShorthands","parsed","forEach","cb","clear","_process_env_DEBUG","DEBUG","startsWith","console","info","globalThis","colorTokens","existing","Map","darkOrLightSpecificPrefix","rawTheme","e","get","deduped","set","fd","fb","bblr","bbrr","fwr","col","ff"],"sources":["../../src/createTamagui.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
let hasLogged = !1;
|
|
2
2
|
function loadDuplicatedConfig() {
|
|
3
|
-
return process.env.NODE_ENV
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
In production, this will error.`
|
|
7
|
-
), globalThis.__tamaguiConfig) : null;
|
|
3
|
+
return globalThis.__tamaguiConfig ? (process.env.NODE_ENV === "development" && !hasLogged && (hasLogged = !0, console.warn(
|
|
4
|
+
"Tamagui: Reusing existing config from globalThis. This may indicate duplicate tamagui instances (e.g., from Vite SSR bundling). This is handled automatically but may cause issues if versions differ."
|
|
5
|
+
)), globalThis.__tamaguiConfig) : null;
|
|
8
6
|
}
|
|
9
7
|
export {
|
|
10
8
|
loadDuplicatedConfig
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/loadDuplicatedConfig.ts"],
|
|
4
|
-
"mappings": "AAEA,IAAI,YAAY;
|
|
4
|
+
"mappings": "AAEA,IAAI,YAAY;AAMT,SAAS,uBAAqD;AACnE,SAAI,WAAW,mBACT,QAAQ,IAAI,aAAa,iBAAiB,CAAC,cAC7C,YAAY,IACZ,QAAQ;AAAA,IACN;AAAA,EACF,IAEK,WAAW,mBAEb;AACT;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
let hasLogged = !1;
|
|
2
2
|
function loadDuplicatedConfig() {
|
|
3
|
-
return process.env.NODE_ENV
|
|
4
|
-
In dev/test, we're working around this by loading a previously loaded config.
|
|
5
|
-
In production, this will error.`), globalThis.__tamaguiConfig) : null;
|
|
3
|
+
return globalThis.__tamaguiConfig ? (process.env.NODE_ENV === "development" && !hasLogged && (hasLogged = !0, console.warn("Tamagui: Reusing existing config from globalThis. This may indicate duplicate tamagui instances (e.g., from Vite SSR bundling). This is handled automatically but may cause issues if versions differ.")), globalThis.__tamaguiConfig) : null;
|
|
6
4
|
}
|
|
7
5
|
export { loadDuplicatedConfig };
|
|
8
6
|
//# sourceMappingURL=loadDuplicatedConfig.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hasLogged","loadDuplicatedConfig","
|
|
1
|
+
{"version":3,"names":["hasLogged","loadDuplicatedConfig","globalThis","__tamaguiConfig","process","env","NODE_ENV","console","warn"],"sources":["../../src/loadDuplicatedConfig.ts"],"sourcesContent":[null],"mappings":"AAEA,IAAIA,SAAA,GAAY;AAMT,SAASC,qBAAA,EAAqD;EACnE,OAAIC,UAAA,CAAWC,eAAA,IACTC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBAAiB,CAACN,SAAA,KAC7CA,SAAA,GAAY,IACZO,OAAA,CAAQC,IAAA,CACN,wMACF,IAEKN,UAAA,CAAWC,eAAA,IAEb;AACT","ignoreList":[]}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
var hasLogged = !1;
|
|
2
2
|
function loadDuplicatedConfig() {
|
|
3
|
-
return process.env.NODE_ENV
|
|
4
|
-
In dev/test, we're working around this by loading a previously loaded config.
|
|
5
|
-
In production, this will error.`), globalThis.__tamaguiConfig) : null;
|
|
3
|
+
return globalThis.__tamaguiConfig ? (process.env.NODE_ENV === "development" && !hasLogged && (hasLogged = !0, console.warn("Tamagui: Reusing existing config from globalThis. This may indicate duplicate tamagui instances (e.g., from Vite SSR bundling). This is handled automatically but may cause issues if versions differ.")), globalThis.__tamaguiConfig) : null;
|
|
6
4
|
}
|
|
7
5
|
export { loadDuplicatedConfig };
|
|
8
6
|
//# sourceMappingURL=loadDuplicatedConfig.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hasLogged","loadDuplicatedConfig","
|
|
1
|
+
{"version":3,"names":["hasLogged","loadDuplicatedConfig","globalThis","__tamaguiConfig","process","env","NODE_ENV","console","warn"],"sources":["../../src/loadDuplicatedConfig.ts"],"sourcesContent":[null],"mappings":"AAEA,IAAIA,SAAA,GAAY;AAMT,SAASC,qBAAA,EAAqD;EACnE,OAAIC,UAAA,CAAWC,eAAA,IACTC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBAAiB,CAACN,SAAA,KAC7CA,SAAA,GAAY,IACZO,OAAA,CAAQC,IAAA,6MAAAN,UAAA,CAAAC,eAAA;AAAA;AACN,SAMRF,oBAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "1.139.
|
|
3
|
+
"version": "1.139.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -28,16 +28,16 @@
|
|
|
28
28
|
"reset.css"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@tamagui/compose-refs": "1.139.
|
|
32
|
-
"@tamagui/constants": "1.139.
|
|
33
|
-
"@tamagui/helpers": "1.139.
|
|
34
|
-
"@tamagui/is-equal-shallow": "1.139.
|
|
35
|
-
"@tamagui/normalize-css-color": "1.139.
|
|
36
|
-
"@tamagui/timer": "1.139.
|
|
37
|
-
"@tamagui/types": "1.139.
|
|
38
|
-
"@tamagui/use-did-finish-ssr": "1.139.
|
|
39
|
-
"@tamagui/use-event": "1.139.
|
|
40
|
-
"@tamagui/use-force-update": "1.139.
|
|
31
|
+
"@tamagui/compose-refs": "1.139.2",
|
|
32
|
+
"@tamagui/constants": "1.139.2",
|
|
33
|
+
"@tamagui/helpers": "1.139.2",
|
|
34
|
+
"@tamagui/is-equal-shallow": "1.139.2",
|
|
35
|
+
"@tamagui/normalize-css-color": "1.139.2",
|
|
36
|
+
"@tamagui/timer": "1.139.2",
|
|
37
|
+
"@tamagui/types": "1.139.2",
|
|
38
|
+
"@tamagui/use-did-finish-ssr": "1.139.2",
|
|
39
|
+
"@tamagui/use-event": "1.139.2",
|
|
40
|
+
"@tamagui/use-force-update": "1.139.2"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"react": "*",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"react-native": "*"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@tamagui/build": "1.139.
|
|
48
|
+
"@tamagui/build": "1.139.2",
|
|
49
49
|
"@testing-library/react": "^16.1.0",
|
|
50
50
|
"csstype": "^3.0.10",
|
|
51
51
|
"react": "*",
|
package/src/config.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { isWeb } from '@tamagui/constants'
|
|
2
2
|
import { MISSING_THEME_MESSAGE } from './constants/constants'
|
|
3
|
-
import { loadDuplicatedConfig } from './loadDuplicatedConfig'
|
|
4
3
|
import type {
|
|
5
4
|
ConfigListener,
|
|
6
5
|
GenericTamaguiSettings,
|
|
@@ -19,48 +18,74 @@ Haven't called createTamagui yet. ${MISSING_THEME_MESSAGE}
|
|
|
19
18
|
`
|
|
20
19
|
: `❌ Error 001`
|
|
21
20
|
|
|
21
|
+
// helper to get config from module-scoped variable or globalthis fallback
|
|
22
|
+
// this handles vite ssr bundling where multiple copies of tamagui may exist
|
|
23
|
+
let hasWarnedAboutGlobalFallback = false
|
|
24
|
+
|
|
25
|
+
const getConfigFromGlobalOrLocal = (): TamaguiInternalConfig | null => {
|
|
26
|
+
// prefer local conf first
|
|
27
|
+
if (conf) {
|
|
28
|
+
return conf
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// fall back to globalthis (for vite ssr bundling scenarios)
|
|
32
|
+
if (globalThis.__tamaguiConfig) {
|
|
33
|
+
if (process.env.NODE_ENV === 'development' && !hasWarnedAboutGlobalFallback) {
|
|
34
|
+
hasWarnedAboutGlobalFallback = true
|
|
35
|
+
console.warn(
|
|
36
|
+
process.env.NODE_ENV === 'development'
|
|
37
|
+
? `Tamagui: Using global config fallback. This may indicate duplicate tamagui instances (e.g., from Vite SSR bundling). This is handled automatically, but may cause issues.`
|
|
38
|
+
: `❌ Error 002`
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
return globalThis.__tamaguiConfig
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return null
|
|
45
|
+
}
|
|
46
|
+
|
|
22
47
|
export const getSetting = <Key extends keyof GenericTamaguiSettings>(
|
|
23
48
|
key: Key
|
|
24
49
|
): GenericTamaguiSettings[Key] => {
|
|
50
|
+
const config = getConfigFromGlobalOrLocal()
|
|
25
51
|
if (process.env.NODE_ENV === 'development') {
|
|
26
|
-
if (!
|
|
52
|
+
if (!config) throw new Error(haventCalledErrorMessage)
|
|
27
53
|
}
|
|
28
54
|
return (
|
|
29
|
-
|
|
55
|
+
config!.settings[key] ??
|
|
30
56
|
// @ts-expect-error
|
|
31
|
-
|
|
57
|
+
config[key]
|
|
32
58
|
)
|
|
33
59
|
}
|
|
34
60
|
|
|
35
61
|
export const setConfig = (next: TamaguiInternalConfig) => {
|
|
36
62
|
conf = next
|
|
63
|
+
globalThis.__tamaguiConfig = next
|
|
37
64
|
}
|
|
38
65
|
|
|
39
66
|
export const setConfigFont = (name: string, font: any, fontParsed: any) => {
|
|
67
|
+
const config = getConfigFromGlobalOrLocal()
|
|
40
68
|
if (process.env.NODE_ENV === 'development') {
|
|
41
|
-
if (!
|
|
69
|
+
if (!config) throw new Error(haventCalledErrorMessage)
|
|
42
70
|
}
|
|
43
|
-
|
|
44
|
-
|
|
71
|
+
config!.fonts[name] = font
|
|
72
|
+
config!.fontsParsed[`$${name}`] = fontParsed
|
|
45
73
|
}
|
|
46
74
|
|
|
47
75
|
export const getConfig = () => {
|
|
48
|
-
const
|
|
49
|
-
if (
|
|
50
|
-
return dup
|
|
51
|
-
}
|
|
52
|
-
if (!conf) {
|
|
76
|
+
const config = getConfigFromGlobalOrLocal()
|
|
77
|
+
if (!config) {
|
|
53
78
|
throw new Error(
|
|
54
79
|
process.env.NODE_ENV !== 'production'
|
|
55
80
|
? `Missing tamagui config, you either have a duplicate config, or haven't set it up. Be sure createTamagui is called before rendering. Also, make sure all of your tamagui dependencies are on the same version (\`tamagui\`, \`@tamagui/package-name\`, etc.) not just in your package.json, but in your lockfile.`
|
|
56
81
|
: 'Err0'
|
|
57
82
|
)
|
|
58
83
|
}
|
|
59
|
-
return
|
|
84
|
+
return config
|
|
60
85
|
}
|
|
61
86
|
|
|
62
87
|
export const getConfigMaybe = () => {
|
|
63
|
-
return
|
|
88
|
+
return getConfigFromGlobalOrLocal()
|
|
64
89
|
}
|
|
65
90
|
|
|
66
91
|
let tokensMerged: TokensMerged
|
|
@@ -76,18 +101,20 @@ export const getTokens = ({
|
|
|
76
101
|
*/
|
|
77
102
|
prefixed?: boolean
|
|
78
103
|
} = {}): TokensMerged => {
|
|
104
|
+
const config = getConfigFromGlobalOrLocal()
|
|
79
105
|
if (process.env.NODE_ENV === 'development') {
|
|
80
|
-
if (!
|
|
106
|
+
if (!config) throw new Error(haventCalledErrorMessage)
|
|
81
107
|
}
|
|
82
|
-
const { tokens, tokensParsed } =
|
|
108
|
+
const { tokens, tokensParsed } = config!
|
|
83
109
|
if (prefixed === false) return tokens as any
|
|
84
110
|
if (prefixed === true) return tokensParsed as any
|
|
85
111
|
return tokensMerged
|
|
86
112
|
}
|
|
87
113
|
|
|
88
114
|
export const getTokenObject = (value: Token, group?: keyof Tokens) => {
|
|
115
|
+
const config = getConfigFromGlobalOrLocal()
|
|
89
116
|
return (
|
|
90
|
-
|
|
117
|
+
config!.specificTokens[value] ??
|
|
91
118
|
(group
|
|
92
119
|
? tokensMerged[group]?.[value]
|
|
93
120
|
: tokensMerged[
|
|
@@ -111,13 +138,14 @@ export const getTokenValue = (value: Token | 'unset' | 'auto', group?: keyof Tok
|
|
|
111
138
|
*/
|
|
112
139
|
export const useTokens = getTokens
|
|
113
140
|
|
|
114
|
-
export const getThemes = () =>
|
|
141
|
+
export const getThemes = () => getConfigFromGlobalOrLocal()!.themes
|
|
115
142
|
|
|
116
143
|
export const configListeners = new Set<ConfigListener>()
|
|
117
144
|
|
|
118
145
|
export const onConfiguredOnce = (cb: ConfigListener) => {
|
|
119
|
-
|
|
120
|
-
|
|
146
|
+
const config = getConfigFromGlobalOrLocal()
|
|
147
|
+
if (config) {
|
|
148
|
+
cb(config)
|
|
121
149
|
} else {
|
|
122
150
|
configListeners.add(cb)
|
|
123
151
|
}
|
|
@@ -125,7 +153,8 @@ export const onConfiguredOnce = (cb: ConfigListener) => {
|
|
|
125
153
|
|
|
126
154
|
export const updateConfig = (key: string, value: any) => {
|
|
127
155
|
// for usage internally only
|
|
128
|
-
|
|
156
|
+
const config = getConfigFromGlobalOrLocal()
|
|
157
|
+
Object.assign(config![key], value)
|
|
129
158
|
}
|
|
130
159
|
|
|
131
160
|
// searches by value name or token name
|
package/src/createTamagui.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isWeb } from '@tamagui/constants'
|
|
2
|
-
import { configListeners, setConfig, setTokens } from './config'
|
|
2
|
+
import { configListeners, getConfigMaybe, setConfig, setTokens } from './config'
|
|
3
3
|
import type { DeepVariableObject } from './createVariables'
|
|
4
4
|
import { createVariables } from './createVariables'
|
|
5
5
|
import { defaultAnimationDriver } from './helpers/defaultAnimationDriver'
|
|
@@ -10,7 +10,6 @@ import { registerCSSVariable, variableToCSS } from './helpers/registerCSSVariabl
|
|
|
10
10
|
import { ensureThemeVariable } from './helpers/themes'
|
|
11
11
|
import { configureMedia } from './hooks/useMedia'
|
|
12
12
|
import { parseFont, registerFontVariables } from './insertFont'
|
|
13
|
-
import { loadDuplicatedConfig } from './loadDuplicatedConfig'
|
|
14
13
|
import { Tamagui } from './Tamagui'
|
|
15
14
|
import type {
|
|
16
15
|
CreateTamaguiProps,
|
|
@@ -45,9 +44,13 @@ function shouldTokenCategoryHaveUnits(category: string): boolean {
|
|
|
45
44
|
export function createTamagui<Conf extends CreateTamaguiProps>(
|
|
46
45
|
configIn: Conf
|
|
47
46
|
): InferTamaguiConfig<Conf> {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
// if config already exists (e.g., from another copy of tamagui in vite ssr), reuse it
|
|
48
|
+
const existingConfig = getConfigMaybe()
|
|
49
|
+
|
|
50
|
+
if (existingConfig) {
|
|
51
|
+
// merge it and re-run since this new instance may add config
|
|
52
|
+
// or maybe a test case
|
|
53
|
+
configIn = { ...existingConfig, ...configIn }
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
// ensure variables
|
|
@@ -316,10 +319,6 @@ export function createTamagui<Conf extends CreateTamaguiProps>(
|
|
|
316
319
|
setConfig(config)
|
|
317
320
|
configureMedia(config)
|
|
318
321
|
|
|
319
|
-
if (process.env.NODE_ENV === 'test') {
|
|
320
|
-
globalThis.__tamaguiConfig = config
|
|
321
|
-
}
|
|
322
|
-
|
|
323
322
|
if (configListeners.size) {
|
|
324
323
|
configListeners.forEach((cb) => cb(config))
|
|
325
324
|
configListeners.clear()
|
package/types/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,EACL,MAAM,EACN,YAAY,EACb,MAAM,SAAS,CAAA;AAqChB,eAAO,MAAM,UAAU,GAAI,GAAG,SAAS,MAAM,sBAAsB,EACjE,KAAK,GAAG,KACP,sBAAsB,CAAC,GAAG,CAU5B,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,MAAM,qBAAqB,SAGpD,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,YAAY,GAAG,SAOrE,CAAA;AAED,eAAO,MAAM,SAAS,6BAUrB,CAAA;AAED,eAAO,MAAM,cAAc,oCAE1B,CAAA;AAGD,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,QAExC;AAED,eAAO,MAAM,SAAS,GAAI,gBAEvB;IACD;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACd,KAAG,YASR,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,MAAM,oCAUhE,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,MAAM,EAAE,qBAAmB,QAG/E,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,GAAG,OAAO,GAAG,MAAM,EAAE,QAAQ,MAAM,MAAM,QAGlF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,mBAzCnB;IACD;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAQ,YAoCyB,CAAA;AAElC,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;CAA6C,CAAA;AAEnE,eAAO,MAAM,eAAe,qBAA4B,CAAA;AAExD,eAAO,MAAM,gBAAgB,GAAI,IAAI,cAAc,SAOlD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,EAAE,OAAO,GAAG,SAInD,CAAA;AAGD,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,4DAQnC,CAAA;AAED,KAAK,SAAS,GAAG;IACf,UAAU,CAAC,EACP,OAAO,GACP;QACE,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACN,CAAA;AAED,eAAO,IAAI,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;AAE3C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,QAIvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTamagui.d.ts","sourceRoot":"","sources":["../src/createTamagui.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createTamagui.d.ts","sourceRoot":"","sources":["../src/createTamagui.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,kBAAkB,EAKlB,kBAAkB,EAOnB,MAAM,SAAS,CAAA;AAiBhB,wBAAgB,aAAa,CAAC,IAAI,SAAS,kBAAkB,EAC3D,QAAQ,EAAE,IAAI,GACb,kBAAkB,CAAC,IAAI,CAAC,CAmS1B"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import type { TamaguiInternalConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Check if a config already exists on globalThis (from a different copy of tamagui).
|
|
4
|
+
* This handles Vite SSR bundling and other scenarios where multiple copies exist.
|
|
5
|
+
*/
|
|
2
6
|
export declare function loadDuplicatedConfig(): TamaguiInternalConfig | null;
|
|
3
7
|
//# sourceMappingURL=loadDuplicatedConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadDuplicatedConfig.d.ts","sourceRoot":"","sources":["../src/loadDuplicatedConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIpD,wBAAgB,oBAAoB,IAAI,qBAAqB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"loadDuplicatedConfig.d.ts","sourceRoot":"","sources":["../src/loadDuplicatedConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIpD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,qBAAqB,GAAG,IAAI,CAWnE"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { TamaguiInternalConfig } from './types'
|
|
2
|
-
|
|
3
|
-
let hasLogged = false
|
|
4
|
-
|
|
5
|
-
export function loadDuplicatedConfig(): TamaguiInternalConfig | null {
|
|
6
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
7
|
-
if (globalThis.__tamaguiConfig) {
|
|
8
|
-
hasLogged = true
|
|
9
|
-
if (!hasLogged) {
|
|
10
|
-
console.warn(
|
|
11
|
-
`Warning: You have duplicate Tamagui dependencies which can cause major, confusing issues.
|
|
12
|
-
In dev/test, we're working around this by loading a previously loaded config.
|
|
13
|
-
In production, this will error.`
|
|
14
|
-
)
|
|
15
|
-
}
|
|
16
|
-
return globalThis.__tamaguiConfig
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return null
|
|
20
|
-
}
|