@tamagui/web 1.57.3 → 1.57.4
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/helpers/getThemeCSSRules.js +26 -30
- package/dist/cjs/helpers/getThemeCSSRules.js.map +1 -1
- package/dist/esm/helpers/getThemeCSSRules.js +26 -30
- package/dist/esm/helpers/getThemeCSSRules.js.map +1 -1
- package/package.json +9 -9
- package/src/helpers/getThemeCSSRules.ts +31 -36
- package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
|
@@ -29,7 +29,7 @@ function getThemeCSSRules(props) {
|
|
|
29
29
|
const cssRuleSets = [];
|
|
30
30
|
if (!process.env.TAMAGUI_DOES_SSR_CSS || process.env.TAMAGUI_DOES_SSR_CSS === "mutates-themes" || process.env.TAMAGUI_DOES_SSR_CSS === "false") {
|
|
31
31
|
const { config, themeName, theme, names } = props;
|
|
32
|
-
const hasDarkLight = "light" in config.themes
|
|
32
|
+
const hasDarkLight = "light" in config.themes || "dark" in config.themes;
|
|
33
33
|
const CNP = `.${import_constants.THEME_CLASSNAME_PREFIX}`;
|
|
34
34
|
let vars = "";
|
|
35
35
|
for (const themeKey in theme) {
|
|
@@ -42,46 +42,42 @@ function getThemeCSSRules(props) {
|
|
|
42
42
|
}
|
|
43
43
|
vars += `--${(0, import_helpers.simpleHash)(themeKey, 40)}:${value};`;
|
|
44
44
|
}
|
|
45
|
-
const
|
|
45
|
+
const isDarkBase = themeName === "dark";
|
|
46
|
+
const isLightBase = themeName === "light";
|
|
46
47
|
const baseSelectors = names.map((name) => `${CNP}${name}`);
|
|
47
48
|
const selectorsSet = new Set(baseSelectors);
|
|
48
49
|
if (hasDarkLight) {
|
|
50
|
+
const maxDepth = config.maxDarkLightNesting ?? 3;
|
|
49
51
|
for (const subName of names) {
|
|
50
|
-
const isDark =
|
|
51
|
-
const isLight =
|
|
52
|
-
const maxDepth = config.maxDarkLightNesting ?? 3;
|
|
52
|
+
const isDark = isDarkBase || subName.startsWith("dark_");
|
|
53
|
+
const isLight = !isDark && (isLightBase || subName.startsWith("light_"));
|
|
53
54
|
if (!(isDark || isLight)) {
|
|
54
55
|
selectorsSet.add(`:root:root ${CNP}${subName}`);
|
|
55
56
|
continue;
|
|
56
57
|
}
|
|
57
58
|
const childSelector = `${CNP}${subName.replace(/^(dark|light)_/, "")}`;
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
const order = isDark ? ["dark", "light"] : ["light", "dark"];
|
|
60
|
+
const [stronger, weaker] = order;
|
|
61
|
+
const numSelectors = Math.round(maxDepth * 1.5);
|
|
62
|
+
for (let depth = 0; depth < numSelectors; depth++) {
|
|
63
|
+
const isOdd = depth % 2 === 1;
|
|
64
|
+
if (isOdd && depth < 3) {
|
|
65
|
+
continue;
|
|
62
66
|
}
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const parents = new Array(depth + 1).fill(0).map((_, psi) => {
|
|
71
|
-
return `${CNP}${psi % 2 === 0 ? stronger : weaker}`;
|
|
72
|
-
});
|
|
73
|
-
let parentSelectors = parents.length > 1 ? parents.slice(1) : parents;
|
|
74
|
-
if (isOdd) {
|
|
75
|
-
const [_first, second, ...rest] = parentSelectors;
|
|
76
|
-
parentSelectors = [second, ...rest, second];
|
|
77
|
-
}
|
|
78
|
-
const lastParentSelector = parentSelectors[parentSelectors.length - 1];
|
|
79
|
-
const nextChildSelector = childSelector === lastParentSelector ? "" : childSelector;
|
|
80
|
-
selectorsSet.add(`${parentSelectors.join(" ")} ${nextChildSelector}`.trim());
|
|
81
|
-
selectorsSet.add(
|
|
82
|
-
`${parentSelectors.join(" ")} ${nextChildSelector}.is_inversed`.trim()
|
|
83
|
-
);
|
|
67
|
+
const parents = new Array(depth + 1).fill(0).map((_, psi) => {
|
|
68
|
+
return `${CNP}${psi % 2 === 0 ? stronger : weaker}`;
|
|
69
|
+
});
|
|
70
|
+
let parentSelectors = parents.length > 1 ? parents.slice(1) : parents;
|
|
71
|
+
if (isOdd) {
|
|
72
|
+
const [_first, second, ...rest] = parentSelectors;
|
|
73
|
+
parentSelectors = [second, ...rest, second];
|
|
84
74
|
}
|
|
75
|
+
const lastParentSelector = parentSelectors[parentSelectors.length - 1];
|
|
76
|
+
const nextChildSelector = childSelector === lastParentSelector ? "" : childSelector;
|
|
77
|
+
selectorsSet.add(`${parentSelectors.join(" ")} ${nextChildSelector}`.trim());
|
|
78
|
+
selectorsSet.add(
|
|
79
|
+
`${parentSelectors.join(" ")} ${nextChildSelector}.is_inversed`.trim()
|
|
80
|
+
);
|
|
85
81
|
}
|
|
86
82
|
}
|
|
87
83
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/getThemeCSSRules.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA2B;AAE3B,uBAAuC;AACvC,4BAA2C;AAE3C,iCAAsC;AAE/B,SAAS,iBAAiB,OAK9B;AACD,QAAM,cAAwB,CAAC;AAE/B,MACE,CAAC,QAAQ,IAAI,wBACb,QAAQ,IAAI,yBAAyB,oBACrC,QAAQ,IAAI,yBAAyB,SACrC;AACA,UAAM,EAAE,QAAQ,WAAW,OAAO,MAAM,IAAI;AAG5C,UAAM,eAAe,WAAW,OAAO,UAAU,UAAU,OAAO;AAClE,UAAM,MAAM,IAAI,uCAAsB;AACtC,QAAI,OAAO;AAIX,eAAW,YAAY,OAAO;AAC5B,YAAM,WAAW,MAAM,QAAQ;AAC/B,UAAI,QAAa;AAEjB,UAAI,CAAC,iDAAsB,IAAI,SAAS,GAAG,GAAG;AAC5C,gBAAQ,SAAS;AAAA,MACnB,OAAO;AACL,gBAAQ,iDAAsB,IAAI,SAAS,GAAG,EAAG;AAAA,MACnD;AAEA,cAAQ,SAAK,2BAAW,UAAU,EAAE,CAAC,IAAI,KAAK;AAAA,IAChD;AAEA,UAAM,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["css"]
|
|
6
6
|
}
|
|
@@ -6,7 +6,7 @@ function getThemeCSSRules(props) {
|
|
|
6
6
|
const cssRuleSets = [];
|
|
7
7
|
if (!process.env.TAMAGUI_DOES_SSR_CSS || process.env.TAMAGUI_DOES_SSR_CSS === "mutates-themes" || process.env.TAMAGUI_DOES_SSR_CSS === "false") {
|
|
8
8
|
const { config, themeName, theme, names } = props;
|
|
9
|
-
const hasDarkLight = "light" in config.themes
|
|
9
|
+
const hasDarkLight = "light" in config.themes || "dark" in config.themes;
|
|
10
10
|
const CNP = `.${THEME_CLASSNAME_PREFIX}`;
|
|
11
11
|
let vars = "";
|
|
12
12
|
for (const themeKey in theme) {
|
|
@@ -19,46 +19,42 @@ function getThemeCSSRules(props) {
|
|
|
19
19
|
}
|
|
20
20
|
vars += `--${simpleHash(themeKey, 40)}:${value};`;
|
|
21
21
|
}
|
|
22
|
-
const
|
|
22
|
+
const isDarkBase = themeName === "dark";
|
|
23
|
+
const isLightBase = themeName === "light";
|
|
23
24
|
const baseSelectors = names.map((name) => `${CNP}${name}`);
|
|
24
25
|
const selectorsSet = new Set(baseSelectors);
|
|
25
26
|
if (hasDarkLight) {
|
|
27
|
+
const maxDepth = config.maxDarkLightNesting ?? 3;
|
|
26
28
|
for (const subName of names) {
|
|
27
|
-
const isDark =
|
|
28
|
-
const isLight =
|
|
29
|
-
const maxDepth = config.maxDarkLightNesting ?? 3;
|
|
29
|
+
const isDark = isDarkBase || subName.startsWith("dark_");
|
|
30
|
+
const isLight = !isDark && (isLightBase || subName.startsWith("light_"));
|
|
30
31
|
if (!(isDark || isLight)) {
|
|
31
32
|
selectorsSet.add(`:root:root ${CNP}${subName}`);
|
|
32
33
|
continue;
|
|
33
34
|
}
|
|
34
35
|
const childSelector = `${CNP}${subName.replace(/^(dark|light)_/, "")}`;
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
const order = isDark ? ["dark", "light"] : ["light", "dark"];
|
|
37
|
+
const [stronger, weaker] = order;
|
|
38
|
+
const numSelectors = Math.round(maxDepth * 1.5);
|
|
39
|
+
for (let depth = 0; depth < numSelectors; depth++) {
|
|
40
|
+
const isOdd = depth % 2 === 1;
|
|
41
|
+
if (isOdd && depth < 3) {
|
|
42
|
+
continue;
|
|
39
43
|
}
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const parents = new Array(depth + 1).fill(0).map((_, psi) => {
|
|
48
|
-
return `${CNP}${psi % 2 === 0 ? stronger : weaker}`;
|
|
49
|
-
});
|
|
50
|
-
let parentSelectors = parents.length > 1 ? parents.slice(1) : parents;
|
|
51
|
-
if (isOdd) {
|
|
52
|
-
const [_first, second, ...rest] = parentSelectors;
|
|
53
|
-
parentSelectors = [second, ...rest, second];
|
|
54
|
-
}
|
|
55
|
-
const lastParentSelector = parentSelectors[parentSelectors.length - 1];
|
|
56
|
-
const nextChildSelector = childSelector === lastParentSelector ? "" : childSelector;
|
|
57
|
-
selectorsSet.add(`${parentSelectors.join(" ")} ${nextChildSelector}`.trim());
|
|
58
|
-
selectorsSet.add(
|
|
59
|
-
`${parentSelectors.join(" ")} ${nextChildSelector}.is_inversed`.trim()
|
|
60
|
-
);
|
|
44
|
+
const parents = new Array(depth + 1).fill(0).map((_, psi) => {
|
|
45
|
+
return `${CNP}${psi % 2 === 0 ? stronger : weaker}`;
|
|
46
|
+
});
|
|
47
|
+
let parentSelectors = parents.length > 1 ? parents.slice(1) : parents;
|
|
48
|
+
if (isOdd) {
|
|
49
|
+
const [_first, second, ...rest] = parentSelectors;
|
|
50
|
+
parentSelectors = [second, ...rest, second];
|
|
61
51
|
}
|
|
52
|
+
const lastParentSelector = parentSelectors[parentSelectors.length - 1];
|
|
53
|
+
const nextChildSelector = childSelector === lastParentSelector ? "" : childSelector;
|
|
54
|
+
selectorsSet.add(`${parentSelectors.join(" ")} ${nextChildSelector}`.trim());
|
|
55
|
+
selectorsSet.add(
|
|
56
|
+
`${parentSelectors.join(" ")} ${nextChildSelector}.is_inversed`.trim()
|
|
57
|
+
);
|
|
62
58
|
}
|
|
63
59
|
}
|
|
64
60
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/getThemeCSSRules.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,kBAAkB;AAE3B,SAAS,8BAA8B;AACvC,SAAmB,wBAAwB;AAE3C,SAAS,6BAA6B;AAE/B,SAAS,iBAAiB,OAK9B;AACD,QAAM,cAAwB,CAAC;AAE/B,MACE,CAAC,QAAQ,IAAI,wBACb,QAAQ,IAAI,yBAAyB,oBACrC,QAAQ,IAAI,yBAAyB,SACrC;AACA,UAAM,EAAE,QAAQ,WAAW,OAAO,MAAM,IAAI;AAG5C,UAAM,eAAe,WAAW,OAAO,UAAU,UAAU,OAAO;AAClE,UAAM,MAAM,IAAI,sBAAsB;AACtC,QAAI,OAAO;AAIX,eAAW,YAAY,OAAO;AAC5B,YAAM,WAAW,MAAM,QAAQ;AAC/B,UAAI,QAAa;AAEjB,UAAI,CAAC,sBAAsB,IAAI,SAAS,GAAG,GAAG;AAC5C,gBAAQ,SAAS;AAAA,MACnB,OAAO;AACL,gBAAQ,sBAAsB,IAAI,SAAS,GAAG,EAAG;AAAA,MACnD;AAEA,cAAQ,KAAK,WAAW,UAAU,EAAE,CAAC,IAAI,KAAK;AAAA,IAChD;AAEA,UAAM,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["css"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "1.57.
|
|
3
|
+
"version": "1.57.4",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -27,19 +27,19 @@
|
|
|
27
27
|
"reset.css"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tamagui/compose-refs": "1.57.
|
|
31
|
-
"@tamagui/constants": "1.57.
|
|
32
|
-
"@tamagui/helpers": "1.57.
|
|
33
|
-
"@tamagui/normalize-css-color": "1.57.
|
|
34
|
-
"@tamagui/timer": "1.57.
|
|
35
|
-
"@tamagui/use-did-finish-ssr": "1.57.
|
|
36
|
-
"@tamagui/use-force-update": "1.57.
|
|
30
|
+
"@tamagui/compose-refs": "1.57.4",
|
|
31
|
+
"@tamagui/constants": "1.57.4",
|
|
32
|
+
"@tamagui/helpers": "1.57.4",
|
|
33
|
+
"@tamagui/normalize-css-color": "1.57.4",
|
|
34
|
+
"@tamagui/timer": "1.57.4",
|
|
35
|
+
"@tamagui/use-did-finish-ssr": "1.57.4",
|
|
36
|
+
"@tamagui/use-force-update": "1.57.4"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"react": "*"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@tamagui/build": "1.57.
|
|
42
|
+
"@tamagui/build": "1.57.4",
|
|
43
43
|
"@testing-library/react": "^13.4.0",
|
|
44
44
|
"csstype": "^3.0.10",
|
|
45
45
|
"react": "^18.2.0",
|
|
@@ -21,7 +21,7 @@ export function getThemeCSSRules(props: {
|
|
|
21
21
|
const { config, themeName, theme, names } = props
|
|
22
22
|
|
|
23
23
|
// special case for SSR
|
|
24
|
-
const hasDarkLight = 'light' in config.themes
|
|
24
|
+
const hasDarkLight = 'light' in config.themes || 'dark' in config.themes
|
|
25
25
|
const CNP = `.${THEME_CLASSNAME_PREFIX}`
|
|
26
26
|
let vars = ''
|
|
27
27
|
|
|
@@ -40,17 +40,19 @@ export function getThemeCSSRules(props: {
|
|
|
40
40
|
vars += `--${simpleHash(themeKey, 40)}:${value};`
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
const
|
|
43
|
+
const isDarkBase = themeName === 'dark'
|
|
44
|
+
const isLightBase = themeName === 'light'
|
|
44
45
|
const baseSelectors = names.map((name) => `${CNP}${name}`)
|
|
45
46
|
const selectorsSet = new Set(baseSelectors)
|
|
46
47
|
|
|
47
48
|
// since we dont specify dark/light in classnames we have to do an awkward specificity war
|
|
48
49
|
// use config.maxDarkLightNesting to determine how deep you can nest until it breaks
|
|
49
50
|
if (hasDarkLight) {
|
|
51
|
+
const maxDepth = config.maxDarkLightNesting ?? 3
|
|
52
|
+
|
|
50
53
|
for (const subName of names) {
|
|
51
|
-
const isDark =
|
|
52
|
-
const isLight =
|
|
53
|
-
const maxDepth = config.maxDarkLightNesting ?? 3
|
|
54
|
+
const isDark = isDarkBase || subName.startsWith('dark_')
|
|
55
|
+
const isLight = !isDark && (isLightBase || subName.startsWith('light_'))
|
|
54
56
|
|
|
55
57
|
if (!(isDark || isLight)) {
|
|
56
58
|
// neither light nor dark subtheme, just generate one selector with :root:root which
|
|
@@ -60,45 +62,38 @@ export function getThemeCSSRules(props: {
|
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
const childSelector = `${CNP}${subName.replace(/^(dark|light)_/, '')}`
|
|
65
|
+
const order = isDark ? ['dark', 'light'] : ['light', 'dark']
|
|
66
|
+
const [stronger, weaker] = order
|
|
67
|
+
const numSelectors = Math.round(maxDepth * 1.5)
|
|
63
68
|
|
|
64
|
-
|
|
69
|
+
for (let depth = 0; depth < numSelectors; depth++) {
|
|
70
|
+
const isOdd = depth % 2 === 1
|
|
65
71
|
|
|
66
|
-
|
|
67
|
-
if (
|
|
68
|
-
|
|
72
|
+
// wtf is this continue:
|
|
73
|
+
if (isOdd && depth < 3) {
|
|
74
|
+
continue
|
|
69
75
|
}
|
|
70
|
-
const [stronger, weaker] = order
|
|
71
|
-
const numSelectors = Math.round(maxDepth * 1.5)
|
|
72
|
-
|
|
73
|
-
for (let depth = 0; depth < numSelectors; depth++) {
|
|
74
|
-
const isOdd = depth % 2 === 1
|
|
75
|
-
|
|
76
|
-
// wtf is this continue:
|
|
77
|
-
if (isOdd && depth < 3) {
|
|
78
|
-
continue
|
|
79
|
-
}
|
|
80
76
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
77
|
+
const parents = new Array(depth + 1).fill(0).map((_, psi) => {
|
|
78
|
+
return `${CNP}${psi % 2 === 0 ? stronger : weaker}`
|
|
79
|
+
})
|
|
84
80
|
|
|
85
|
-
|
|
81
|
+
let parentSelectors = parents.length > 1 ? parents.slice(1) : parents
|
|
86
82
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
83
|
+
if (isOdd) {
|
|
84
|
+
const [_first, second, ...rest] = parentSelectors
|
|
85
|
+
parentSelectors = [second, ...rest, second]
|
|
86
|
+
}
|
|
91
87
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
88
|
+
const lastParentSelector = parentSelectors[parentSelectors.length - 1]
|
|
89
|
+
const nextChildSelector =
|
|
90
|
+
childSelector === lastParentSelector ? '' : childSelector
|
|
95
91
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
92
|
+
// for light/dark/light:
|
|
93
|
+
selectorsSet.add(`${parentSelectors.join(' ')} ${nextChildSelector}`.trim())
|
|
94
|
+
selectorsSet.add(
|
|
95
|
+
`${parentSelectors.join(' ')} ${nextChildSelector}.is_inversed`.trim()
|
|
96
|
+
)
|
|
102
97
|
}
|
|
103
98
|
}
|
|
104
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getThemeCSSRules.d.ts","sourceRoot":"","sources":["../../src/helpers/getThemeCSSRules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAG/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,
|
|
1
|
+
{"version":3,"file":"getThemeCSSRules.d.ts","sourceRoot":"","sources":["../../src/helpers/getThemeCSSRules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAG/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB,YAuJA"}
|