@tamagui/core 1.0.0-beta.179 → 1.0.0-beta.181
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/Tamagui.js +18 -1
- package/dist/cjs/Tamagui.js.map +2 -2
- package/dist/cjs/ThemeContext.js +4 -0
- package/dist/cjs/ThemeManager.js +30 -14
- package/dist/cjs/ThemeManager.js.map +2 -2
- package/dist/cjs/conf.js +10 -1
- package/dist/cjs/conf.js.map +2 -2
- package/dist/cjs/constants/constants.js +6 -0
- package/dist/cjs/constants/platform.js +12 -0
- package/dist/cjs/constants/pseudos.js +37 -0
- package/dist/cjs/constants/pseudos.js.map +7 -0
- package/dist/cjs/constants/rnw.js +4 -0
- package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
- package/dist/cjs/createComponent.js +132 -126
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/createFont.js +4 -0
- package/dist/cjs/createShallowUpdate.js +1 -0
- package/dist/cjs/createShallowUpdate.js.map +7 -0
- package/dist/cjs/createShorthands.js +4 -0
- package/dist/cjs/createTamagui.js +12 -0
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/createTheme.js +4 -0
- package/dist/cjs/createTokens.js +5 -0
- package/dist/cjs/createTokens.js.map +1 -1
- package/dist/cjs/createVariable.js +9 -0
- package/dist/cjs/defaultComponentState.js +0 -30
- package/dist/cjs/defaultComponentState.js.map +3 -3
- package/dist/cjs/devtools.js +32 -0
- package/dist/cjs/devtools.js.map +7 -0
- package/dist/cjs/helpers/RNComponents.js +38 -0
- package/dist/cjs/helpers/RNComponents.js.map +7 -0
- package/dist/cjs/helpers/addStylesUsingClassname.js +8 -0
- package/dist/cjs/helpers/addStylesUsingClassname.js.map +2 -2
- package/dist/cjs/helpers/areEqualSets.js +4 -0
- package/dist/cjs/helpers/createMediaStyle.js +8 -6
- package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +57 -56
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/createShallowUpdate.js +55 -0
- package/dist/cjs/helpers/createShallowUpdate.js.map +7 -0
- package/dist/cjs/helpers/createTamaguiProvider.js +5 -5
- package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
- package/dist/cjs/helpers/extendStaticConfig.js +8 -6
- package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
- package/dist/cjs/helpers/fixNativeShadow.js +4 -0
- package/dist/cjs/helpers/fixNativeShadow.native.js +6 -2
- package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
- package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
- package/dist/cjs/helpers/getSplitStyles.js +94 -47
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.js +20 -2
- package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
- package/dist/cjs/helpers/insertStyleRule.js +46 -26
- package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/isObj.js +4 -0
- package/dist/cjs/helpers/isTamaguiElement.js +4 -0
- package/dist/cjs/helpers/matchMedia.js +4 -0
- package/dist/cjs/helpers/matchMedia.native.js +4 -0
- package/dist/cjs/helpers/themeable.js +8 -2
- package/dist/cjs/helpers/themeable.js.map +2 -2
- package/dist/cjs/helpers/validate.js +46 -5
- package/dist/cjs/helpers/validate.js.map +2 -2
- package/dist/cjs/helpers/withStaticProperties.js +4 -0
- package/dist/cjs/helpers/wrapThemeManagerContext.js +4 -0
- package/dist/cjs/hooks/useConstant.js +4 -0
- package/dist/cjs/hooks/useFeatures.js +101 -12
- package/dist/cjs/hooks/useFeatures.js.map +2 -2
- package/dist/cjs/hooks/useIsMounted.js +4 -0
- package/dist/cjs/hooks/useIsTouchDevice.js +4 -0
- package/dist/cjs/hooks/useMedia.js +36 -43
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/usePressable.js +4 -0
- package/dist/cjs/hooks/useTheme.js +28 -13
- package/dist/cjs/hooks/useTheme.js.map +2 -2
- package/dist/cjs/hooks/useUnmountEffect.js +4 -0
- package/dist/cjs/index.js +14 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/styled.js +8 -15
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/tamagui-base.css +8 -0
- package/dist/cjs/tamagui-base.css.map +7 -0
- package/dist/cjs/types-rnw.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/views/Stack.js +5 -0
- package/dist/cjs/views/Stack.js.map +2 -2
- package/dist/cjs/views/Text.js +5 -0
- package/dist/cjs/views/Text.js.map +2 -2
- package/dist/cjs/views/TextAncestorContext.js +6 -0
- package/dist/cjs/views/Theme.js +17 -19
- package/dist/cjs/views/Theme.js.map +2 -2
- package/dist/cjs/views/ThemeInverse.js +5 -0
- package/dist/cjs/views/ThemeProvider.js +4 -0
- package/dist/cjs/views/ThemeReset.js +4 -0
- package/dist/esm/Tamagui.js +10 -2
- package/dist/esm/Tamagui.js.map +2 -2
- package/dist/esm/ThemeManager.js +21 -11
- package/dist/esm/ThemeManager.js.map +2 -2
- package/dist/esm/conf.js +0 -1
- package/dist/esm/conf.js.map +2 -2
- package/dist/esm/constants/pseudos.js +18 -0
- package/dist/esm/constants/pseudos.js.map +7 -0
- package/dist/esm/createComponent.js +122 -129
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/createShallowUpdate.js +1 -0
- package/dist/esm/createShallowUpdate.js.map +7 -0
- package/dist/esm/createTamagui.js +8 -0
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/createTokens.js.map +1 -1
- package/dist/esm/defaultComponentState.js +0 -11
- package/dist/esm/defaultComponentState.js.map +3 -3
- package/dist/esm/devtools.js +14 -0
- package/dist/esm/devtools.js.map +7 -0
- package/dist/esm/helpers/RNComponents.js +12 -0
- package/dist/esm/helpers/RNComponents.js.map +7 -0
- package/dist/esm/helpers/addStylesUsingClassname.js +4 -1
- package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
- package/dist/esm/helpers/createMediaStyle.js +3 -6
- package/dist/esm/helpers/createMediaStyle.js.map +2 -2
- package/dist/esm/helpers/createPropMapper.js +53 -56
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/createShallowUpdate.js +19 -0
- package/dist/esm/helpers/createShallowUpdate.js.map +7 -0
- package/dist/esm/helpers/createTamaguiProvider.js +1 -4
- package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
- package/dist/esm/helpers/extendStaticConfig.js +5 -6
- package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
- package/dist/esm/helpers/fixNativeShadow.native.js +2 -2
- package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +89 -48
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.js +15 -2
- package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
- package/dist/esm/helpers/insertStyleRule.js +36 -26
- package/dist/esm/helpers/insertStyleRule.js.map +2 -2
- package/dist/esm/helpers/themeable.js +4 -2
- package/dist/esm/helpers/themeable.js.map +2 -2
- package/dist/esm/helpers/validate.js +17 -5
- package/dist/esm/helpers/validate.js.map +2 -2
- package/dist/esm/hooks/useFeatures.js +96 -17
- package/dist/esm/hooks/useFeatures.js.map +2 -2
- package/dist/esm/hooks/useMedia.js +25 -43
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +20 -13
- package/dist/esm/hooks/useTheme.js.map +2 -2
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/styled.js +4 -12
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/tamagui-base.css +8 -0
- package/dist/esm/tamagui-base.css.map +7 -0
- package/dist/esm/views/Stack.js +1 -0
- package/dist/esm/views/Stack.js.map +2 -2
- package/dist/esm/views/Text.js +1 -0
- package/dist/esm/views/Text.js.map +2 -2
- package/dist/esm/views/Theme.js +13 -19
- package/dist/esm/views/Theme.js.map +2 -2
- package/dist/jsx/Tamagui.js +10 -2
- package/dist/jsx/ThemeManager.js +21 -11
- package/dist/jsx/conf.js +0 -1
- package/dist/jsx/constants/pseudos.js +17 -0
- package/dist/jsx/createComponent.js +115 -123
- package/dist/jsx/createShallowUpdate.js +0 -0
- package/dist/jsx/createTamagui.js +8 -0
- package/dist/jsx/defaultComponentState.js +0 -11
- package/dist/jsx/devtools.js +13 -0
- package/dist/jsx/helpers/RNComponents.js +11 -0
- package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
- package/dist/jsx/helpers/createMediaStyle.js +3 -6
- package/dist/jsx/helpers/createPropMapper.js +53 -56
- package/dist/jsx/helpers/createShallowUpdate.js +18 -0
- package/dist/jsx/helpers/createTamaguiProvider.js +1 -2
- package/dist/jsx/helpers/extendStaticConfig.js +5 -6
- package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
- package/dist/jsx/helpers/getSplitStyles.js +89 -48
- package/dist/jsx/helpers/getStylesAtomic.js +15 -2
- package/dist/jsx/helpers/insertStyleRule.js +36 -26
- package/dist/jsx/helpers/themeable.js +4 -3
- package/dist/jsx/helpers/validate.js +17 -5
- package/dist/jsx/hooks/useFeatures.js +96 -17
- package/dist/jsx/hooks/useMedia.js +25 -43
- package/dist/jsx/hooks/useTheme.js +20 -13
- package/dist/jsx/index.js +3 -0
- package/dist/jsx/styled.js +4 -12
- package/dist/jsx/tamagui-base.css +7 -0
- package/dist/jsx/views/Stack.js +1 -0
- package/dist/jsx/views/Text.js +1 -0
- package/dist/jsx/views/Theme.js +13 -19
- package/package.json +6 -6
- package/types/Tamagui.d.ts +16 -1
- package/types/Tamagui.d.ts.map +1 -1
- package/types/ThemeManager.d.ts +3 -3
- package/types/ThemeManager.d.ts.map +1 -1
- package/types/conf.d.ts.map +1 -1
- package/types/createComponent.d.ts +5 -7
- package/types/createComponent.d.ts.map +1 -1
- package/types/createFont.d.ts +1 -1
- package/types/createFont.d.ts.map +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/createTokens.d.ts +8 -0
- package/types/createTokens.d.ts.map +1 -1
- package/types/defaultComponentState.d.ts +0 -12
- package/types/defaultComponentState.d.ts.map +1 -1
- package/types/helpers/RNComponents.d.ts +2 -0
- package/types/helpers/RNComponents.d.ts.map +1 -0
- package/types/helpers/addStylesUsingClassname.d.ts.map +1 -1
- package/types/helpers/createMediaStyle.d.ts +1 -1
- package/types/helpers/createMediaStyle.d.ts.map +1 -1
- package/types/helpers/createPropMapper.d.ts +2 -2
- package/types/helpers/createPropMapper.d.ts.map +1 -1
- package/types/helpers/createShallowUpdate.d.ts +4 -0
- package/types/helpers/createShallowUpdate.d.ts.map +1 -0
- package/types/helpers/createTamaguiProvider.d.ts +1 -1
- package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
- package/types/helpers/extendStaticConfig.d.ts +2 -2
- package/types/helpers/extendStaticConfig.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts +4 -14
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getStylesAtomic.d.ts.map +1 -1
- package/types/helpers/insertStyleRule.d.ts +2 -1
- package/types/helpers/insertStyleRule.d.ts.map +1 -1
- package/types/helpers/themeable.d.ts +3 -1
- package/types/helpers/themeable.d.ts.map +1 -1
- package/types/helpers/validate.d.ts.map +1 -1
- package/types/hooks/useFeatures.d.ts +7 -5
- package/types/hooks/useFeatures.d.ts.map +1 -1
- package/types/hooks/useMedia.d.ts +3 -3
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/hooks/useTheme.d.ts +1 -1
- package/types/hooks/useTheme.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/styled.d.ts +13 -8
- package/types/styled.d.ts.map +1 -1
- package/types/types-rnw.d.ts +0 -5
- package/types/types-rnw.d.ts.map +1 -1
- package/types/types.d.ts +124 -90
- package/types/types.d.ts.map +1 -1
- package/types/views/Stack.d.ts +2 -2
- package/types/views/Stack.d.ts.map +1 -1
- package/types/views/Text.d.ts +2 -2
- package/types/views/Text.d.ts.map +1 -1
- package/types/views/Theme.d.ts +1 -0
- package/types/views/Theme.d.ts.map +1 -1
package/dist/jsx/Tamagui.js
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import * as Helpers from "@tamagui/helpers";
|
|
4
|
+
import { getConfig } from "./conf";
|
|
3
5
|
import { rnw } from "./constants/rnw";
|
|
4
|
-
import { getAllSelectors, getAllTransforms } from "./helpers/insertStyleRule";
|
|
6
|
+
import { getAllSelectors, getAllTransforms, getInsertedRules } from "./helpers/insertStyleRule";
|
|
5
7
|
class TamaguiManager {
|
|
6
8
|
constructor() {
|
|
7
|
-
this.config = null;
|
|
8
9
|
this.rnw = rnw;
|
|
10
|
+
this.Helpers = Helpers;
|
|
11
|
+
}
|
|
12
|
+
get config() {
|
|
13
|
+
return getConfig();
|
|
14
|
+
}
|
|
15
|
+
get insertedRules() {
|
|
16
|
+
return getInsertedRules();
|
|
9
17
|
}
|
|
10
18
|
get allSelectors() {
|
|
11
19
|
return getAllSelectors();
|
package/dist/jsx/ThemeManager.js
CHANGED
|
@@ -16,9 +16,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
16
16
|
var _getClassName, getClassName_fn;
|
|
17
17
|
import { createContext } from "react";
|
|
18
18
|
import { getThemes } from "./conf";
|
|
19
|
-
import { THEME_CLASSNAME_PREFIX, THEME_NAME_SEPARATOR } from "./
|
|
19
|
+
import { THEME_CLASSNAME_PREFIX, THEME_NAME_SEPARATOR } from "./constants/constants";
|
|
20
20
|
class ThemeManager {
|
|
21
|
-
constructor(name =
|
|
21
|
+
constructor(name = "", theme = null, parentManager = null) {
|
|
22
22
|
this.name = name;
|
|
23
23
|
this.theme = theme;
|
|
24
24
|
this.parentManager = parentManager;
|
|
@@ -76,7 +76,7 @@ class ThemeManager {
|
|
|
76
76
|
return false;
|
|
77
77
|
}
|
|
78
78
|
this.className = className || null;
|
|
79
|
-
this.name = name ||
|
|
79
|
+
this.name = name || "";
|
|
80
80
|
this.theme = theme;
|
|
81
81
|
this.notifyListeners();
|
|
82
82
|
return true;
|
|
@@ -85,10 +85,14 @@ class ThemeManager {
|
|
|
85
85
|
const { themes = getThemes(), name, componentName } = opts;
|
|
86
86
|
if (!name) {
|
|
87
87
|
if (componentName) {
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
const names = [
|
|
89
|
+
`${this.name}_${componentName}`,
|
|
90
|
+
`${withoutComponentName(this.name)}_${componentName}`
|
|
91
|
+
];
|
|
92
|
+
for (const name2 of names) {
|
|
93
|
+
if (name2 in themes) {
|
|
94
|
+
return { name: name2, theme: themes[name2], className: __privateMethod(this, _getClassName, getClassName_fn).call(this, name2) };
|
|
95
|
+
}
|
|
92
96
|
}
|
|
93
97
|
}
|
|
94
98
|
return {
|
|
@@ -113,9 +117,14 @@ class ThemeManager {
|
|
|
113
117
|
parentName = parentName.slice(0, parentName.lastIndexOf(THEME_NAME_SEPARATOR));
|
|
114
118
|
}
|
|
115
119
|
if (componentName) {
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
nextName
|
|
120
|
+
const names = [
|
|
121
|
+
`${nextName}_${componentName}`,
|
|
122
|
+
`${withoutComponentName(nextName)}_${componentName}`
|
|
123
|
+
];
|
|
124
|
+
for (const name2 of names) {
|
|
125
|
+
if (name2 in themes) {
|
|
126
|
+
nextName = name2;
|
|
127
|
+
}
|
|
119
128
|
}
|
|
120
129
|
}
|
|
121
130
|
let theme = themes[nextName];
|
|
@@ -123,7 +132,7 @@ class ThemeManager {
|
|
|
123
132
|
theme = themes[`light_${nextName}`];
|
|
124
133
|
}
|
|
125
134
|
if (process.env.NODE_ENV === "development" && props && props["debug"]) {
|
|
126
|
-
console.log("getNextTheme", { opts, nextName, parentName }
|
|
135
|
+
console.log("getNextTheme", { name: opts.name, nextName, parentName });
|
|
127
136
|
}
|
|
128
137
|
return {
|
|
129
138
|
name: nextName,
|
|
@@ -169,6 +178,7 @@ getClassName_fn = /* @__PURE__ */ __name(function(name) {
|
|
|
169
178
|
}, "#getClassName");
|
|
170
179
|
const ThemeManagerContext = createContext(null);
|
|
171
180
|
const emptyManager = new ThemeManager();
|
|
181
|
+
const withoutComponentName = /* @__PURE__ */ __name((name) => name.replace(/\_[A-Z][a-z]+$/, ""), "withoutComponentName");
|
|
172
182
|
export {
|
|
173
183
|
ThemeManager,
|
|
174
184
|
ThemeManagerContext,
|
package/dist/jsx/conf.js
CHANGED
|
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
import { stylePropsView } from "@tamagui/helpers";
|
|
4
4
|
import { useForceUpdate } from "@tamagui/use-force-update";
|
|
5
|
-
import {
|
|
5
|
+
import React, {
|
|
6
6
|
Children,
|
|
7
7
|
Fragment,
|
|
8
8
|
createElement,
|
|
@@ -10,26 +10,33 @@ import {
|
|
|
10
10
|
memo,
|
|
11
11
|
useCallback,
|
|
12
12
|
useContext,
|
|
13
|
-
useEffect,
|
|
14
13
|
useRef,
|
|
15
14
|
useState
|
|
16
15
|
} from "react";
|
|
17
16
|
import { StyleSheet, Text, View } from "react-native";
|
|
18
17
|
import { onConfiguredOnce } from "./conf";
|
|
19
18
|
import { stackDefaultStyles } from "./constants/constants";
|
|
20
|
-
import { isAndroid, isTouchDevice, isWeb } from "./constants/platform";
|
|
19
|
+
import { isAndroid, isTouchDevice, isWeb, useIsomorphicLayoutEffect } from "./constants/platform";
|
|
21
20
|
import { rnw } from "./constants/rnw";
|
|
22
21
|
import { isVariable } from "./createVariable";
|
|
23
|
-
import {
|
|
22
|
+
import { createShallowUpdate } from "./helpers/createShallowUpdate";
|
|
24
23
|
import { extendStaticConfig, parseStaticConfig } from "./helpers/extendStaticConfig";
|
|
25
|
-
import {
|
|
26
|
-
|
|
27
|
-
} from "./helpers/getSplitStyles";
|
|
24
|
+
import { getSplitStyles } from "./helpers/getSplitStyles";
|
|
25
|
+
import { getAllSelectors } from "./helpers/insertStyleRule";
|
|
28
26
|
import { wrapThemeManagerContext } from "./helpers/wrapThemeManagerContext";
|
|
29
27
|
import { useFeatures } from "./hooks/useFeatures";
|
|
30
28
|
import { usePressable } from "./hooks/usePressable";
|
|
31
29
|
import { getThemeManagerIfChanged, useTheme } from "./hooks/useTheme";
|
|
32
30
|
import { TextAncestorContext } from "./views/TextAncestorContext";
|
|
31
|
+
React["keep"];
|
|
32
|
+
const defaultComponentState = {
|
|
33
|
+
hover: false,
|
|
34
|
+
press: false,
|
|
35
|
+
pressIn: false,
|
|
36
|
+
focus: false,
|
|
37
|
+
mounted: false,
|
|
38
|
+
animation: null
|
|
39
|
+
};
|
|
33
40
|
const mouseUps = /* @__PURE__ */ new Set();
|
|
34
41
|
if (typeof document !== "undefined") {
|
|
35
42
|
document.addEventListener("mouseup", () => {
|
|
@@ -37,76 +44,73 @@ if (typeof document !== "undefined") {
|
|
|
37
44
|
mouseUps.clear();
|
|
38
45
|
});
|
|
39
46
|
}
|
|
40
|
-
function
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
for (const key in next) {
|
|
44
|
-
if (prev[key] !== next[key]) {
|
|
45
|
-
return { ...prev, ...next };
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return prev;
|
|
49
|
-
});
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
__name(createShallowUpdate, "createShallowUpdate");
|
|
53
|
-
function createComponent(configIn) {
|
|
54
|
-
let staticConfig;
|
|
55
|
-
if ("parsed" in configIn) {
|
|
56
|
-
staticConfig = configIn;
|
|
57
|
-
} else {
|
|
58
|
-
staticConfig = parseStaticConfig(configIn);
|
|
47
|
+
function mergeShorthands({ defaultProps }, { shorthands }) {
|
|
48
|
+
for (const key in defaultProps) {
|
|
49
|
+
defaultProps[shorthands[key] || key] = defaultProps[key];
|
|
59
50
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
51
|
+
}
|
|
52
|
+
__name(mergeShorthands, "mergeShorthands");
|
|
53
|
+
function createComponent(configIn, ParentComponent) {
|
|
54
|
+
const staticConfig = (() => {
|
|
55
|
+
const config = extendStaticConfig(configIn, ParentComponent);
|
|
56
|
+
if ("parsed" in config) {
|
|
57
|
+
return config;
|
|
58
|
+
} else {
|
|
59
|
+
return parseStaticConfig(config);
|
|
60
|
+
}
|
|
61
|
+
})();
|
|
62
|
+
const componentClassName = `is_${staticConfig.componentName}`;
|
|
63
63
|
let tamaguiConfig;
|
|
64
64
|
let AnimatedText;
|
|
65
65
|
let AnimatedView;
|
|
66
|
-
let avoidClasses =
|
|
67
|
-
let defaultPseudos = {};
|
|
66
|
+
let avoidClasses = true;
|
|
68
67
|
let defaultNativeStyle;
|
|
69
|
-
let defaultNativeStyleSheet
|
|
70
|
-
let defaultsClassName = null;
|
|
68
|
+
let defaultNativeStyleSheet;
|
|
71
69
|
let initialTheme;
|
|
72
|
-
let
|
|
70
|
+
let initialSplitStyles;
|
|
73
71
|
function addPseudoToStyles(styles, name, pseudos) {
|
|
74
72
|
const pseudoStyle = pseudos[name];
|
|
73
|
+
const shouldNestObject = isWeb && name !== "enterStyle" && name !== "exitStyle";
|
|
75
74
|
if (pseudoStyle) {
|
|
76
|
-
styles.push(
|
|
75
|
+
styles.push(shouldNestObject ? { [name]: pseudoStyle } : pseudoStyle);
|
|
77
76
|
}
|
|
78
|
-
const defaultPseudoStyle =
|
|
77
|
+
const defaultPseudoStyle = initialSplitStyles.pseudos[name];
|
|
79
78
|
if (defaultPseudoStyle) {
|
|
80
|
-
styles.push(
|
|
79
|
+
styles.push(shouldNestObject ? { [name]: defaultPseudoStyle } : defaultPseudoStyle);
|
|
81
80
|
}
|
|
82
81
|
}
|
|
83
82
|
__name(addPseudoToStyles, "addPseudoToStyles");
|
|
84
83
|
const component = forwardRef((props, forwardedRef) => {
|
|
85
84
|
var _a, _b, _c, _d;
|
|
85
|
+
const { Component, componentName, isText, isZStack } = staticConfig;
|
|
86
86
|
if (process.env.NODE_ENV === "development") {
|
|
87
87
|
if (props["debug"]) {
|
|
88
|
-
console.warn(componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]", "
|
|
88
|
+
console.warn(staticConfig.componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]", "debug on");
|
|
89
|
+
console.log("props in:", props);
|
|
89
90
|
if (props["debug"] === "break")
|
|
90
91
|
debugger;
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
94
|
const forceUpdate = useForceUpdate();
|
|
94
|
-
const theme = useTheme(props.theme, componentName, props, forceUpdate);
|
|
95
|
+
const theme = useTheme(props.theme, staticConfig.componentName, props, forceUpdate);
|
|
95
96
|
const [state, set_] = useState(defaultComponentState);
|
|
96
97
|
const setStateShallow = createShallowUpdate(set_);
|
|
97
|
-
const shouldAvoidClasses = !!(
|
|
98
|
-
const
|
|
99
|
-
const { viewProps: viewPropsIn, pseudos, medias, style, classNames } =
|
|
98
|
+
const shouldAvoidClasses = !!(props.animation && avoidClasses);
|
|
99
|
+
const splitStyles = getSplitStyles(props, staticConfig, theme, shouldAvoidClasses ? { ...state, noClassNames: true, resolveVariablesAs: "value" } : state, shouldAvoidClasses ? null : initialSplitStyles.classNames);
|
|
100
|
+
const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitStyles;
|
|
100
101
|
const useAnimations = (_a = tamaguiConfig.animations) == null ? void 0 : _a.useAnimations;
|
|
101
102
|
const isAnimated = !!(useAnimations && props.animation);
|
|
102
|
-
const
|
|
103
|
+
const hasEnterStyle = !!props.enterStyle;
|
|
103
104
|
const features = useFeatures(props, {
|
|
104
105
|
forceUpdate,
|
|
105
106
|
setStateShallow,
|
|
106
107
|
useAnimations,
|
|
107
108
|
state,
|
|
108
|
-
style:
|
|
109
|
-
pseudos
|
|
109
|
+
style: props.animation ? { ...defaultNativeStyle, ...style } : null,
|
|
110
|
+
pseudos,
|
|
111
|
+
staticConfig,
|
|
112
|
+
theme,
|
|
113
|
+
onDidAnimate: props.onDidAnimate
|
|
110
114
|
});
|
|
111
115
|
const {
|
|
112
116
|
tag,
|
|
@@ -145,6 +149,7 @@ function createComponent(configIn) {
|
|
|
145
149
|
accessibilityRole,
|
|
146
150
|
collapsable,
|
|
147
151
|
focusable,
|
|
152
|
+
onClick,
|
|
148
153
|
theme: _themeProp,
|
|
149
154
|
defaultVariants,
|
|
150
155
|
onLayout,
|
|
@@ -160,15 +165,14 @@ function createComponent(configIn) {
|
|
|
160
165
|
}
|
|
161
166
|
const hasTextAncestor = isWeb ? useContext(TextAncestorContext) : false;
|
|
162
167
|
const hostRef = useRef(null);
|
|
163
|
-
const hasEnterStyle = !!props.enterStyle;
|
|
164
168
|
const internal = useRef();
|
|
165
169
|
if (!internal.current) {
|
|
166
170
|
internal.current = {
|
|
167
171
|
isMounted: true
|
|
168
172
|
};
|
|
169
173
|
}
|
|
170
|
-
|
|
171
|
-
if (hasEnterStyle) {
|
|
174
|
+
useIsomorphicLayoutEffect(() => {
|
|
175
|
+
if (typeof window !== "undefined" && (hasEnterStyle || props.animation)) {
|
|
172
176
|
setStateShallow({
|
|
173
177
|
mounted: true
|
|
174
178
|
});
|
|
@@ -178,7 +182,7 @@ function createComponent(configIn) {
|
|
|
178
182
|
mouseUps.delete(unPress);
|
|
179
183
|
internal.current.isMounted = false;
|
|
180
184
|
};
|
|
181
|
-
}, []);
|
|
185
|
+
}, [hasEnterStyle, props.animation]);
|
|
182
186
|
if (nativeID) {
|
|
183
187
|
viewProps.id = nativeID;
|
|
184
188
|
}
|
|
@@ -236,6 +240,7 @@ function createComponent(configIn) {
|
|
|
236
240
|
medias
|
|
237
241
|
];
|
|
238
242
|
if (!animationStyles) {
|
|
243
|
+
!state.mounted && addPseudoToStyles(styles, "enterStyle", pseudos);
|
|
239
244
|
state.hover && addPseudoToStyles(styles, "hoverStyle", pseudos);
|
|
240
245
|
state.focus && addPseudoToStyles(styles, "focusStyle", pseudos);
|
|
241
246
|
state.press && addPseudoToStyles(styles, "pressStyle", pseudos);
|
|
@@ -254,10 +259,11 @@ function createComponent(configIn) {
|
|
|
254
259
|
const className = classList.join(" ");
|
|
255
260
|
if (process.env.NODE_ENV === "development") {
|
|
256
261
|
if (props["debug"]) {
|
|
257
|
-
console.log(" \xBB className", { isStringElement, pseudos, state,
|
|
262
|
+
console.log(" \xBB className", { isStringElement, pseudos, state, classNames, propsClassName: props.className, style, classList, className: className.trim().split(" "), themeClassName: theme.className, values: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) });
|
|
258
263
|
}
|
|
259
264
|
}
|
|
260
265
|
viewProps.className = className;
|
|
266
|
+
viewProps.style = animationStyles;
|
|
261
267
|
} else {
|
|
262
268
|
viewProps.style = styles;
|
|
263
269
|
}
|
|
@@ -294,7 +300,8 @@ function createComponent(configIn) {
|
|
|
294
300
|
viewProps.ref = forwardedRef;
|
|
295
301
|
}
|
|
296
302
|
}
|
|
297
|
-
const
|
|
303
|
+
const initialPseudos = initialSplitStyles.pseudos;
|
|
304
|
+
const attachPress = !!(pseudos && pseudos.pressStyle || initialPseudos && initialPseudos.pressStyle || onPress || onPressOut || onPressIn || onClick);
|
|
298
305
|
const isHoverable = isWeb && !isTouchDevice;
|
|
299
306
|
const attachHover = isHoverable && !!(pseudos && pseudos.hoverStyle || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave);
|
|
300
307
|
const pressEventKey = isStringElement ? "onClick" : "onPress";
|
|
@@ -358,6 +365,7 @@ function createComponent(configIn) {
|
|
|
358
365
|
onPress == null ? void 0 : onPress(e);
|
|
359
366
|
unPress();
|
|
360
367
|
onPressOut == null ? void 0 : onPressOut(e);
|
|
368
|
+
onClick == null ? void 0 : onClick(e);
|
|
361
369
|
} : null
|
|
362
370
|
} : null;
|
|
363
371
|
let childEls = !children ? children : wrapThemeManagerContext(spacedChildren({
|
|
@@ -377,18 +385,6 @@ function createComponent(configIn) {
|
|
|
377
385
|
} : {
|
|
378
386
|
disabled: true
|
|
379
387
|
});
|
|
380
|
-
if (events) {
|
|
381
|
-
if (!isStringElement) {
|
|
382
|
-
Object.assign(viewProps, pressProps);
|
|
383
|
-
} else {
|
|
384
|
-
Object.assign(viewProps, events);
|
|
385
|
-
}
|
|
386
|
-
if (isWeb && isHoverable) {
|
|
387
|
-
childEls = <span style={{
|
|
388
|
-
display: "contents"
|
|
389
|
-
}} onMouseEnter={events.onMouseEnter} onMouseLeave={events.onMouseLeave}>{children}</span>;
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
388
|
let content;
|
|
393
389
|
if (isWeb) {
|
|
394
390
|
if (staticConfig.isReactNativeWeb) {
|
|
@@ -405,11 +401,23 @@ function createComponent(configIn) {
|
|
|
405
401
|
}
|
|
406
402
|
}
|
|
407
403
|
}
|
|
404
|
+
if (events) {
|
|
405
|
+
if (!isStringElement) {
|
|
406
|
+
Object.assign(viewProps, pressProps);
|
|
407
|
+
} else {
|
|
408
|
+
Object.assign(viewProps, events);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
408
411
|
content = createElement(ViewComponent, viewProps, childEls);
|
|
412
|
+
if (isWeb && events && attachHover) {
|
|
413
|
+
content = <span className="tui_Hoverable" style={{
|
|
414
|
+
display: "contents"
|
|
415
|
+
}} onMouseEnter={events.onMouseEnter} onMouseLeave={events.onMouseLeave}>{content}</span>;
|
|
416
|
+
}
|
|
409
417
|
if (process.env.NODE_ENV === "development") {
|
|
410
418
|
if (props["debug"]) {
|
|
411
419
|
viewProps["debug"] = true;
|
|
412
|
-
console.log(" \xBB ", { propsIn: { ...props }, propsOut: { ...viewProps }, animationStyles, isStringElement, classNamesIn: (_c = props.className) == null ? void 0 : _c.split(" "), classNamesOut: (_d = viewProps.className) == null ? void 0 : _d.split(" "), pressProps, events, shouldAttach, ViewComponent, viewProps,
|
|
420
|
+
console.log(" \xBB ", { propsIn: { ...props }, propsOut: { ...viewProps }, state, splitStyles, animationStyles, isStringElement, classNamesIn: (_c = props.className) == null ? void 0 : _c.split(" "), classNamesOut: (_d = viewProps.className) == null ? void 0 : _d.split(" "), pressProps, events, shouldAttach, ViewComponent, viewProps, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses, animation: props.animation, style, defaultNativeStyle, initialSplitStyles, ...typeof window !== "undefined" ? { theme, themeState: theme.__state, themeClassName: theme.className, staticConfig, tamaguiConfig } : null });
|
|
413
421
|
}
|
|
414
422
|
}
|
|
415
423
|
if (features.length) {
|
|
@@ -420,23 +428,27 @@ function createComponent(configIn) {
|
|
|
420
428
|
}
|
|
421
429
|
return content;
|
|
422
430
|
});
|
|
431
|
+
component.displayName = staticConfig.componentName;
|
|
423
432
|
onConfiguredOnce((conf) => {
|
|
424
433
|
var _a, _b, _c, _d;
|
|
425
|
-
|
|
434
|
+
if (process.env.IS_STATIC === "is_static") {
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
426
437
|
tamaguiConfig = conf;
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
438
|
+
mergeShorthands(staticConfig, tamaguiConfig);
|
|
439
|
+
avoidClasses = !!((_a = tamaguiConfig.animations) == null ? void 0 : _a.avoidClasses);
|
|
440
|
+
AnimatedText = (_b = tamaguiConfig.animations) == null ? void 0 : _b.Text;
|
|
441
|
+
AnimatedView = (_c = tamaguiConfig == null ? void 0 : tamaguiConfig.animations) == null ? void 0 : _c.View;
|
|
430
442
|
initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
|
|
431
|
-
|
|
443
|
+
initialSplitStyles = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, {
|
|
432
444
|
mounted: true,
|
|
433
|
-
|
|
445
|
+
hover: false,
|
|
446
|
+
press: false,
|
|
447
|
+
pressIn: false,
|
|
448
|
+
focus: false,
|
|
449
|
+
resolveVariablesAs: "both"
|
|
434
450
|
});
|
|
435
|
-
const {
|
|
436
|
-
if (isWeb) {
|
|
437
|
-
defaultsClassName = classNames;
|
|
438
|
-
}
|
|
439
|
-
defaultPseudos = pseudos;
|
|
451
|
+
const { style, viewProps } = initialSplitStyles;
|
|
440
452
|
defaultNativeStyle = {};
|
|
441
453
|
for (const key in style) {
|
|
442
454
|
const v = style[key];
|
|
@@ -445,13 +457,17 @@ function createComponent(configIn) {
|
|
|
445
457
|
defaultNativeStyleSheet = StyleSheet.create({
|
|
446
458
|
base: defaultNativeStyle
|
|
447
459
|
});
|
|
448
|
-
component.displayName = staticConfig.componentName;
|
|
449
460
|
component.defaultProps = {
|
|
450
461
|
...viewProps,
|
|
451
462
|
...component.defaultProps
|
|
452
463
|
};
|
|
453
|
-
if (process.env.NODE_ENV === "development" &&
|
|
454
|
-
|
|
464
|
+
if (process.env.NODE_ENV === "development" && ((_d = staticConfig.defaultProps) == null ? void 0 : _d.debug)) {
|
|
465
|
+
if (process.env.IS_STATIC !== "is_static") {
|
|
466
|
+
console.log(`\u{1F41B} [${staticConfig.componentName || "Component"}]`, {
|
|
467
|
+
staticConfig,
|
|
468
|
+
initialSplitStyles
|
|
469
|
+
});
|
|
470
|
+
}
|
|
455
471
|
}
|
|
456
472
|
});
|
|
457
473
|
let res = component;
|
|
@@ -459,25 +475,30 @@ function createComponent(configIn) {
|
|
|
459
475
|
res = memo(res);
|
|
460
476
|
}
|
|
461
477
|
res["staticConfig"] = {
|
|
462
|
-
validStyles:
|
|
478
|
+
validStyles: staticConfig.validStyles || stylePropsView,
|
|
463
479
|
...staticConfig
|
|
464
480
|
};
|
|
465
|
-
|
|
466
|
-
|
|
481
|
+
if (process.env.NODE_ENV === "development") {
|
|
482
|
+
res["whyDidYouRender"] = true;
|
|
483
|
+
}
|
|
484
|
+
res["extractable"] = (Component, conf) => {
|
|
485
|
+
Component["staticConfig"] = extendStaticConfig({
|
|
486
|
+
Component,
|
|
467
487
|
...conf,
|
|
468
488
|
neverFlatten: true,
|
|
469
489
|
defaultProps: {
|
|
470
|
-
...
|
|
490
|
+
...Component.defaultProps,
|
|
471
491
|
...conf == null ? void 0 : conf.defaultProps
|
|
472
492
|
}
|
|
473
|
-
});
|
|
474
|
-
return
|
|
493
|
+
}, res);
|
|
494
|
+
return Component;
|
|
475
495
|
};
|
|
476
496
|
return res;
|
|
477
497
|
}
|
|
478
498
|
__name(createComponent, "createComponent");
|
|
479
499
|
const Spacer = createComponent({
|
|
480
500
|
memo: true,
|
|
501
|
+
componentName: "Spacer",
|
|
481
502
|
defaultProps: {
|
|
482
503
|
...stackDefaultStyles,
|
|
483
504
|
size: true
|
|
@@ -550,45 +571,16 @@ function spacedChildren({
|
|
|
550
571
|
return next;
|
|
551
572
|
}
|
|
552
573
|
__name(spacedChildren, "spacedChildren");
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
const val = cur[key];
|
|
564
|
-
if (key !== "transform") {
|
|
565
|
-
if (!(key in res)) {
|
|
566
|
-
res[key] = val;
|
|
567
|
-
}
|
|
568
|
-
continue;
|
|
569
|
-
}
|
|
570
|
-
if (!res.transform) {
|
|
571
|
-
res.transform = val;
|
|
572
|
-
continue;
|
|
573
|
-
}
|
|
574
|
-
for (const t of val) {
|
|
575
|
-
const tkey = Object.keys(t)[0];
|
|
576
|
-
if (res.transform.find((existing) => tkey in existing)) {
|
|
577
|
-
continue;
|
|
578
|
-
}
|
|
579
|
-
res.transform.push(t);
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
return res;
|
|
584
|
-
}, "merge");
|
|
585
|
-
const AbsoluteFill = /* @__PURE__ */ __name((props) => isWeb ? <div style={{
|
|
586
|
-
position: "absolute",
|
|
587
|
-
top: 0,
|
|
588
|
-
left: 0,
|
|
589
|
-
right: 0,
|
|
590
|
-
bottom: 0
|
|
591
|
-
}}>{props.children}</div> : <View style={StyleSheet.absoluteFill}>{props.child}</View>, "AbsoluteFill");
|
|
574
|
+
function AbsoluteFill(props) {
|
|
575
|
+
return isWeb ? <div style={{
|
|
576
|
+
position: "absolute",
|
|
577
|
+
top: 0,
|
|
578
|
+
left: 0,
|
|
579
|
+
right: 0,
|
|
580
|
+
bottom: 0
|
|
581
|
+
}}>{props.children}</div> : <View style={StyleSheet.absoluteFill}>{props.child}</View>;
|
|
582
|
+
}
|
|
583
|
+
__name(AbsoluteFill, "AbsoluteFill");
|
|
592
584
|
export {
|
|
593
585
|
AbsoluteFill,
|
|
594
586
|
Spacer,
|
|
File without changes
|
|
@@ -12,6 +12,14 @@ function createTamagui(config) {
|
|
|
12
12
|
if (createdConfigs.has(config)) {
|
|
13
13
|
return config;
|
|
14
14
|
}
|
|
15
|
+
if (process.env.NODE_ENV === "development") {
|
|
16
|
+
if (!config.tokens) {
|
|
17
|
+
throw new Error(`No tokens provided to Tamagui config`);
|
|
18
|
+
}
|
|
19
|
+
if (!config.themes) {
|
|
20
|
+
throw new Error(`No themes provided to Tamagui config`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
15
23
|
if (getHasConfigured()) {
|
|
16
24
|
console.warn("Called createTamagui twice! Should never do so");
|
|
17
25
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { onConfiguredOnce } from "./conf";
|
|
2
|
+
import { insertedSelectors } from "./helpers/insertStyleRule";
|
|
3
|
+
onConfiguredOnce((conf) => {
|
|
4
|
+
if (globalThis["Tamagui"]) {
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
globalThis["Tamagui"] = {
|
|
8
|
+
...conf,
|
|
9
|
+
get insertedCSS() {
|
|
10
|
+
return insertedSelectors;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as ReactNative from "react-native";
|
|
2
|
+
const RNComponents = /* @__PURE__ */ new WeakMap();
|
|
3
|
+
for (const key of ["Image", "TextInput", "Text", "View"]) {
|
|
4
|
+
const val = ReactNative[key];
|
|
5
|
+
if (val && typeof val === "object") {
|
|
6
|
+
RNComponents.set(val, true);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
RNComponents
|
|
11
|
+
};
|
|
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
import { useInsertionEffect } from "react";
|
|
4
4
|
import { getStylesAtomic } from "./getStylesAtomic";
|
|
5
|
-
import { insertStyleRule } from "./insertStyleRule";
|
|
5
|
+
import { insertStyleRule, updateInsertedCache } from "./insertStyleRule";
|
|
6
6
|
let added = /* @__PURE__ */ new Set();
|
|
7
7
|
function useStylesAsClassname(styles, disable = false, debug = false) {
|
|
8
8
|
if (!useInsertionEffect) {
|
|
@@ -14,6 +14,9 @@ function useStylesAsClassname(styles, disable = false, debug = false) {
|
|
|
14
14
|
insertions.push({ identifier, rule });
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
|
+
for (const { identifier, rule } of insertions) {
|
|
18
|
+
updateInsertedCache(identifier, rule);
|
|
19
|
+
}
|
|
17
20
|
useInsertionEffect(() => {
|
|
18
21
|
for (const { identifier, rule } of insertions) {
|
|
19
22
|
insertStyleRule(identifier, rule);
|
|
@@ -2,19 +2,16 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
import { mediaObjectToString } from "../hooks/useMedia";
|
|
4
4
|
const MEDIA_SEP = "_";
|
|
5
|
-
const createMediaStyle = /* @__PURE__ */ __name(({ identifier, rules }, mediaKey, mediaQueries, negate, importance
|
|
5
|
+
const createMediaStyle = /* @__PURE__ */ __name(({ identifier, rules }, mediaKey, mediaQueries, negate, importance) => {
|
|
6
6
|
const mediaKeys = Object.keys(mediaQueries);
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
return acc;
|
|
10
|
-
}, {});
|
|
7
|
+
const importance_ = Math.max(0, importance == void 0 ? mediaKeys.indexOf(mediaKey) : importance || 0);
|
|
8
|
+
const precendencePrefix = new Array(importance_ + 1).fill(":root").join("");
|
|
11
9
|
const negKey = negate ? "0" : "";
|
|
12
10
|
const ogPrefix = identifier.slice(0, identifier.indexOf("-") + 1);
|
|
13
11
|
const nextIdentifier = `${identifier.replace(ogPrefix, `${ogPrefix}${MEDIA_SEP}${mediaKey}${negKey}${MEDIA_SEP}`)}`;
|
|
14
12
|
const screenStr = negate ? "not all" : "screen";
|
|
15
13
|
const mediaSelector = mediaObjectToString(mediaQueries[mediaKey]);
|
|
16
14
|
const mediaQuery = `${screenStr} and ${mediaSelector}`;
|
|
17
|
-
const precendencePrefix = mediaKeyPrecendence[mediaKey];
|
|
18
15
|
const styleInner = rules[0].replace(identifier, nextIdentifier);
|
|
19
16
|
let styleRule = "";
|
|
20
17
|
if (styleInner.includes("@media")) {
|