@tamagui/core 1.0.0-beta.153 → 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 +13 -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/rnw.js +4 -0
- package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
- package/dist/cjs/createComponent.js +78 -54
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/createFont.js +4 -0
- package/dist/cjs/createShorthands.js +4 -0
- package/dist/cjs/createTamagui.js +4 -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/helpers/RNComponents.js +4 -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 +5 -2
- package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
- package/dist/cjs/helpers/createPropMapper.js +11 -12
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/createShallowUpdate.js +4 -0
- package/dist/cjs/helpers/createTamaguiProvider.js +4 -0
- 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 +70 -34
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.js +20 -3
- package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.native.js +4 -0
- package/dist/cjs/helpers/insertStyleRule.js +41 -27
- 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 +4 -0
- package/dist/cjs/hooks/useIsMounted.js +4 -0
- package/dist/cjs/hooks/useIsTouchDevice.js +4 -0
- package/dist/cjs/hooks/useMedia.js +15 -0
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/usePressable.js +4 -0
- package/dist/cjs/hooks/useTheme.js +16 -0
- 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 +7 -4
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/views/Stack.js +4 -0
- package/dist/cjs/views/Text.js +4 -0
- package/dist/cjs/views/TextAncestorContext.js +6 -0
- package/dist/cjs/views/Theme.js +10 -3
- 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 +8 -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/createComponent.js +68 -54
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/createTokens.js.map +1 -1
- package/dist/esm/helpers/addStylesUsingClassname.js +4 -1
- package/dist/esm/helpers/addStylesUsingClassname.js.map +2 -2
- package/dist/esm/helpers/createMediaStyle.js +0 -2
- package/dist/esm/helpers/createMediaStyle.js.map +2 -2
- package/dist/esm/helpers/createPropMapper.js +7 -12
- package/dist/esm/helpers/createPropMapper.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 +65 -35
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.js +15 -3
- package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
- package/dist/esm/helpers/insertStyleRule.js +31 -27
- 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/useMedia.js +4 -0
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +8 -0
- 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 +3 -4
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/views/Theme.js +6 -3
- package/dist/esm/views/Theme.js.map +2 -2
- package/dist/jsx/Tamagui.js +8 -2
- package/dist/jsx/ThemeManager.js +21 -11
- package/dist/jsx/conf.js +0 -1
- package/dist/jsx/createComponent.js +64 -50
- package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
- package/dist/jsx/helpers/createMediaStyle.js +0 -2
- package/dist/jsx/helpers/createPropMapper.js +7 -12
- package/dist/jsx/helpers/extendStaticConfig.js +5 -6
- package/dist/jsx/helpers/fixNativeShadow.native.js +2 -2
- package/dist/jsx/helpers/getSplitStyles.js +65 -35
- package/dist/jsx/helpers/getStylesAtomic.js +15 -3
- package/dist/jsx/helpers/insertStyleRule.js +31 -27
- package/dist/jsx/helpers/themeable.js +4 -3
- package/dist/jsx/helpers/validate.js +17 -5
- package/dist/jsx/hooks/useMedia.js +4 -0
- package/dist/jsx/hooks/useTheme.js +8 -0
- package/dist/jsx/index.js +3 -0
- package/dist/jsx/styled.js +3 -4
- package/dist/jsx/views/Theme.js +7 -4
- package/package.json +6 -6
- package/types/Tamagui.d.ts +14 -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 +3 -4
- package/types/createComponent.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/helpers/addStylesUsingClassname.d.ts.map +1 -1
- package/types/helpers/createMediaStyle.d.ts.map +1 -1
- package/types/helpers/createPropMapper.d.ts +1 -1
- package/types/helpers/createPropMapper.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 +2 -1
- 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/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 +12 -3
- package/types/styled.d.ts.map +1 -1
- package/types/types.d.ts +43 -25
- package/types/types.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/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
|
@@ -44,33 +44,37 @@ if (typeof document !== "undefined") {
|
|
|
44
44
|
mouseUps.clear();
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
|
-
function
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
staticConfig = configIn;
|
|
51
|
-
} else {
|
|
52
|
-
staticConfig = parseStaticConfig(configIn);
|
|
47
|
+
function mergeShorthands({ defaultProps }, { shorthands }) {
|
|
48
|
+
for (const key in defaultProps) {
|
|
49
|
+
defaultProps[shorthands[key] || key] = defaultProps[key];
|
|
53
50
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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}`;
|
|
57
63
|
let tamaguiConfig;
|
|
58
64
|
let AnimatedText;
|
|
59
65
|
let AnimatedView;
|
|
60
66
|
let avoidClasses = true;
|
|
61
|
-
let defaultPseudos = {};
|
|
62
67
|
let defaultNativeStyle;
|
|
63
|
-
let defaultNativeStyleSheet
|
|
64
|
-
let defaultsClassName = null;
|
|
68
|
+
let defaultNativeStyleSheet;
|
|
65
69
|
let initialTheme;
|
|
66
|
-
let
|
|
70
|
+
let initialSplitStyles;
|
|
67
71
|
function addPseudoToStyles(styles, name, pseudos) {
|
|
68
72
|
const pseudoStyle = pseudos[name];
|
|
69
73
|
const shouldNestObject = isWeb && name !== "enterStyle" && name !== "exitStyle";
|
|
70
74
|
if (pseudoStyle) {
|
|
71
75
|
styles.push(shouldNestObject ? { [name]: pseudoStyle } : pseudoStyle);
|
|
72
76
|
}
|
|
73
|
-
const defaultPseudoStyle =
|
|
77
|
+
const defaultPseudoStyle = initialSplitStyles.pseudos[name];
|
|
74
78
|
if (defaultPseudoStyle) {
|
|
75
79
|
styles.push(shouldNestObject ? { [name]: defaultPseudoStyle } : defaultPseudoStyle);
|
|
76
80
|
}
|
|
@@ -78,20 +82,21 @@ function createComponent(configIn) {
|
|
|
78
82
|
__name(addPseudoToStyles, "addPseudoToStyles");
|
|
79
83
|
const component = forwardRef((props, forwardedRef) => {
|
|
80
84
|
var _a, _b, _c, _d;
|
|
85
|
+
const { Component, componentName, isText, isZStack } = staticConfig;
|
|
81
86
|
if (process.env.NODE_ENV === "development") {
|
|
82
87
|
if (props["debug"]) {
|
|
83
|
-
console.warn(componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]", "debug on");
|
|
88
|
+
console.warn(staticConfig.componentName || (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || "[Unnamed Component]", "debug on");
|
|
84
89
|
console.log("props in:", props);
|
|
85
90
|
if (props["debug"] === "break")
|
|
86
91
|
debugger;
|
|
87
92
|
}
|
|
88
93
|
}
|
|
89
94
|
const forceUpdate = useForceUpdate();
|
|
90
|
-
const theme = useTheme(props.theme, componentName, props, forceUpdate);
|
|
95
|
+
const theme = useTheme(props.theme, staticConfig.componentName, props, forceUpdate);
|
|
91
96
|
const [state, set_] = useState(defaultComponentState);
|
|
92
97
|
const setStateShallow = createShallowUpdate(set_);
|
|
93
98
|
const shouldAvoidClasses = !!(props.animation && avoidClasses);
|
|
94
|
-
const splitStyles = getSplitStyles(props, staticConfig, theme, shouldAvoidClasses ? { ...state, noClassNames: true, resolveVariablesAs: "value" } : state, shouldAvoidClasses ? null :
|
|
99
|
+
const splitStyles = getSplitStyles(props, staticConfig, theme, shouldAvoidClasses ? { ...state, noClassNames: true, resolveVariablesAs: "value" } : state, shouldAvoidClasses ? null : initialSplitStyles.classNames);
|
|
95
100
|
const { viewProps: viewPropsIn, pseudos, medias, style, classNames } = splitStyles;
|
|
96
101
|
const useAnimations = (_a = tamaguiConfig.animations) == null ? void 0 : _a.useAnimations;
|
|
97
102
|
const isAnimated = !!(useAnimations && props.animation);
|
|
@@ -144,6 +149,7 @@ function createComponent(configIn) {
|
|
|
144
149
|
accessibilityRole,
|
|
145
150
|
collapsable,
|
|
146
151
|
focusable,
|
|
152
|
+
onClick,
|
|
147
153
|
theme: _themeProp,
|
|
148
154
|
defaultVariants,
|
|
149
155
|
onLayout,
|
|
@@ -166,7 +172,7 @@ function createComponent(configIn) {
|
|
|
166
172
|
};
|
|
167
173
|
}
|
|
168
174
|
useIsomorphicLayoutEffect(() => {
|
|
169
|
-
if (typeof window !== "undefined") {
|
|
175
|
+
if (typeof window !== "undefined" && (hasEnterStyle || props.animation)) {
|
|
170
176
|
setStateShallow({
|
|
171
177
|
mounted: true
|
|
172
178
|
});
|
|
@@ -176,7 +182,7 @@ function createComponent(configIn) {
|
|
|
176
182
|
mouseUps.delete(unPress);
|
|
177
183
|
internal.current.isMounted = false;
|
|
178
184
|
};
|
|
179
|
-
}, [hasEnterStyle]);
|
|
185
|
+
}, [hasEnterStyle, props.animation]);
|
|
180
186
|
if (nativeID) {
|
|
181
187
|
viewProps.id = nativeID;
|
|
182
188
|
}
|
|
@@ -253,7 +259,7 @@ function createComponent(configIn) {
|
|
|
253
259
|
const className = classList.join(" ");
|
|
254
260
|
if (process.env.NODE_ENV === "development") {
|
|
255
261
|
if (props["debug"]) {
|
|
256
|
-
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]])) });
|
|
257
263
|
}
|
|
258
264
|
}
|
|
259
265
|
viewProps.className = className;
|
|
@@ -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({
|
|
@@ -409,7 +417,7 @@ function createComponent(configIn) {
|
|
|
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 }, state, splitStyles,
|
|
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,18 +428,19 @@ 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") {
|
|
426
435
|
return;
|
|
427
436
|
}
|
|
428
|
-
const shouldDebug = (_a = staticConfig.defaultProps) == null ? void 0 : _a.debug;
|
|
429
437
|
tamaguiConfig = conf;
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
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;
|
|
433
442
|
initialTheme = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]];
|
|
434
|
-
|
|
443
|
+
initialSplitStyles = getSplitStyles(staticConfig.defaultProps, staticConfig, initialTheme, {
|
|
435
444
|
mounted: true,
|
|
436
445
|
hover: false,
|
|
437
446
|
press: false,
|
|
@@ -439,11 +448,7 @@ function createComponent(configIn) {
|
|
|
439
448
|
focus: false,
|
|
440
449
|
resolveVariablesAs: "both"
|
|
441
450
|
});
|
|
442
|
-
const {
|
|
443
|
-
if (isWeb) {
|
|
444
|
-
defaultsClassName = classNames;
|
|
445
|
-
}
|
|
446
|
-
defaultPseudos = pseudos;
|
|
451
|
+
const { style, viewProps } = initialSplitStyles;
|
|
447
452
|
defaultNativeStyle = {};
|
|
448
453
|
for (const key in style) {
|
|
449
454
|
const v = style[key];
|
|
@@ -452,34 +457,41 @@ function createComponent(configIn) {
|
|
|
452
457
|
defaultNativeStyleSheet = StyleSheet.create({
|
|
453
458
|
base: defaultNativeStyle
|
|
454
459
|
});
|
|
455
|
-
component.displayName = staticConfig.componentName;
|
|
456
460
|
component.defaultProps = {
|
|
457
461
|
...viewProps,
|
|
458
462
|
...component.defaultProps
|
|
459
463
|
};
|
|
460
|
-
if (process.env.NODE_ENV === "development" &&
|
|
461
|
-
|
|
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
|
+
}
|
|
462
471
|
}
|
|
463
472
|
});
|
|
464
473
|
let res = component;
|
|
465
474
|
if (configIn.memo) {
|
|
466
475
|
res = memo(res);
|
|
467
476
|
}
|
|
468
|
-
res["whyDidYouRender"] = true;
|
|
469
477
|
res["staticConfig"] = {
|
|
470
|
-
validStyles:
|
|
478
|
+
validStyles: staticConfig.validStyles || stylePropsView,
|
|
471
479
|
...staticConfig
|
|
472
480
|
};
|
|
473
|
-
|
|
474
|
-
|
|
481
|
+
if (process.env.NODE_ENV === "development") {
|
|
482
|
+
res["whyDidYouRender"] = true;
|
|
483
|
+
}
|
|
484
|
+
res["extractable"] = (Component, conf) => {
|
|
485
|
+
Component["staticConfig"] = extendStaticConfig({
|
|
486
|
+
Component,
|
|
475
487
|
...conf,
|
|
476
488
|
neverFlatten: true,
|
|
477
489
|
defaultProps: {
|
|
478
|
-
...
|
|
490
|
+
...Component.defaultProps,
|
|
479
491
|
...conf == null ? void 0 : conf.defaultProps
|
|
480
492
|
}
|
|
481
|
-
});
|
|
482
|
-
return
|
|
493
|
+
}, res);
|
|
494
|
+
return Component;
|
|
483
495
|
};
|
|
484
496
|
return res;
|
|
485
497
|
}
|
|
@@ -559,18 +571,20 @@ function spacedChildren({
|
|
|
559
571
|
return next;
|
|
560
572
|
}
|
|
561
573
|
__name(spacedChildren, "spacedChildren");
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
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");
|
|
569
584
|
export {
|
|
570
585
|
AbsoluteFill,
|
|
571
586
|
Spacer,
|
|
572
587
|
createComponent,
|
|
573
|
-
defaultComponentState,
|
|
574
588
|
mouseUps,
|
|
575
589
|
spacedChildren
|
|
576
590
|
};
|
|
@@ -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);
|
|
@@ -13,8 +13,6 @@ const createMediaStyle = /* @__PURE__ */ __name(({ identifier, rules }, mediaKey
|
|
|
13
13
|
const mediaSelector = mediaObjectToString(mediaQueries[mediaKey]);
|
|
14
14
|
const mediaQuery = `${screenStr} and ${mediaSelector}`;
|
|
15
15
|
const styleInner = rules[0].replace(identifier, nextIdentifier);
|
|
16
|
-
if (styleInner.includes("2:r;"))
|
|
17
|
-
debugger;
|
|
18
16
|
let styleRule = "";
|
|
19
17
|
if (styleInner.includes("@media")) {
|
|
20
18
|
styleRule = styleInner.replace("{", ` and ${mediaQuery} {`);
|
|
@@ -37,7 +37,7 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
|
37
37
|
console.trace("no conf! err");
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
const fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
|
|
41
41
|
const variant = variants && variants[key];
|
|
42
42
|
if (variant && value !== void 0) {
|
|
43
43
|
let variantValue = getVariantFunction(variant, key, value);
|
|
@@ -110,8 +110,12 @@ const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily, re
|
|
|
110
110
|
}
|
|
111
111
|
return res;
|
|
112
112
|
}, "resolveTokens");
|
|
113
|
+
const fontShorthand = {
|
|
114
|
+
fontSize: "size",
|
|
115
|
+
fontWeight: "weight"
|
|
116
|
+
};
|
|
113
117
|
const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed }, theme, fontFamily = "$body", resolveAs) => {
|
|
114
|
-
var _a, _b, _c
|
|
118
|
+
var _a, _b, _c;
|
|
115
119
|
let valOrVar;
|
|
116
120
|
let hasSet = false;
|
|
117
121
|
const valueName = value[0] === "$" ? value.slice(1) : value;
|
|
@@ -125,19 +129,10 @@ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed }, theme, fo
|
|
|
125
129
|
hasSet = true;
|
|
126
130
|
break;
|
|
127
131
|
case "fontSize":
|
|
128
|
-
valOrVar = ((_b = tokensParsed.font[fontFamily]) == null ? void 0 : _b.size[value]) || value;
|
|
129
|
-
hasSet = true;
|
|
130
|
-
break;
|
|
131
132
|
case "lineHeight":
|
|
132
|
-
valOrVar = ((_c = tokensParsed.font[fontFamily]) == null ? void 0 : _c.lineHeight[value]) || value;
|
|
133
|
-
hasSet = true;
|
|
134
|
-
break;
|
|
135
133
|
case "letterSpacing":
|
|
136
|
-
valOrVar = ((_d = tokensParsed.font[fontFamily]) == null ? void 0 : _d.letterSpacing[value]) || value;
|
|
137
|
-
hasSet = true;
|
|
138
|
-
break;
|
|
139
134
|
case "fontWeight":
|
|
140
|
-
valOrVar = ((
|
|
135
|
+
valOrVar = ((_c = (_b = tokensParsed.font[fontFamily]) == null ? void 0 : _b[fontShorthand[key] || key]) == null ? void 0 : _c[value]) || value;
|
|
141
136
|
hasSet = true;
|
|
142
137
|
break;
|
|
143
138
|
}
|
|
@@ -2,12 +2,9 @@ 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 { createPropMapper } from "./createPropMapper";
|
|
5
|
-
function extendStaticConfig(
|
|
5
|
+
function extendStaticConfig(config, parent) {
|
|
6
6
|
var _a;
|
|
7
|
-
if (!parent) {
|
|
8
|
-
throw new Error("no parent");
|
|
9
|
-
}
|
|
10
|
-
if (!("staticConfig" in parent)) {
|
|
7
|
+
if (!parent || !("staticConfig" in parent)) {
|
|
11
8
|
return parseStaticConfig(config);
|
|
12
9
|
}
|
|
13
10
|
const variants = {
|
|
@@ -40,7 +37,9 @@ function extendStaticConfig(parent, config = {}) {
|
|
|
40
37
|
} : parent.staticConfig.validStyles || stylePropsView,
|
|
41
38
|
defaultProps: {
|
|
42
39
|
...parent.staticConfig.defaultProps,
|
|
43
|
-
...
|
|
40
|
+
...parent.staticConfig.defaultVariants,
|
|
41
|
+
...config.defaultProps,
|
|
42
|
+
...config.defaultVariants
|
|
44
43
|
}
|
|
45
44
|
});
|
|
46
45
|
}
|
|
@@ -18,8 +18,8 @@ function fixNativeShadow(props) {
|
|
|
18
18
|
if ((c[0] === "r" || c[0] === "h") && c[3] === "a") {
|
|
19
19
|
const [_, type, _1, _2, _3, a] = c.match(matchRgbaHsla) || [];
|
|
20
20
|
if (typeof a !== "string") {
|
|
21
|
-
console.
|
|
22
|
-
|
|
21
|
+
console.trace("invalid", c, type);
|
|
22
|
+
throw new Error(`invalid style`);
|
|
23
23
|
}
|
|
24
24
|
props.shadowColor = `${type.replace("a", "")}(${_1},${_2},${_3})`;
|
|
25
25
|
props.shadowOpacity = +a;
|
|
@@ -7,33 +7,25 @@ import {
|
|
|
7
7
|
validPseudoKeys,
|
|
8
8
|
validStyles
|
|
9
9
|
} from "@tamagui/helpers";
|
|
10
|
+
import { getConfig } from "../conf";
|
|
10
11
|
import { isWeb } from "../constants/platform";
|
|
11
12
|
import { mediaQueryConfig, mediaState } from "../hooks/useMedia";
|
|
12
13
|
import { createMediaStyle } from "./createMediaStyle";
|
|
13
14
|
import { fixNativeShadow } from "./fixNativeShadow";
|
|
14
15
|
import { getStylesAtomic } from "./getStylesAtomic";
|
|
15
16
|
import { insertStyleRule, insertedTransforms, updateInserted } from "./insertStyleRule";
|
|
16
|
-
const
|
|
17
|
+
const skipProps = {
|
|
17
18
|
animation: true,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
key: true,
|
|
21
|
-
ref: true
|
|
19
|
+
animateOnly: true,
|
|
20
|
+
debug: true
|
|
22
21
|
};
|
|
23
|
-
|
|
24
|
-
var _a, _b;
|
|
25
|
-
if (typeof style.flex === "number") {
|
|
26
|
-
const val = style.flex;
|
|
27
|
-
delete style.flex;
|
|
28
|
-
style.flexGrow = (_a = style.flexGrow) != null ? _a : val;
|
|
29
|
-
style.flexShrink = (_b = style.flexShrink) != null ? _b : 1;
|
|
30
|
-
}
|
|
31
|
-
if (!isWeb) {
|
|
32
|
-
fixNativeShadow(style);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
__name(normalizeStyleObject, "normalizeStyleObject");
|
|
22
|
+
let conf;
|
|
36
23
|
const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state, defaultClassNames) => {
|
|
24
|
+
var _a;
|
|
25
|
+
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
26
|
+
console.log(" \xBB getSplitStyles", { props, state, defaultClassNames });
|
|
27
|
+
}
|
|
28
|
+
conf = conf || getConfig();
|
|
37
29
|
const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
|
|
38
30
|
const viewProps = {};
|
|
39
31
|
const style = {};
|
|
@@ -50,19 +42,32 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
50
42
|
if (val.startsWith("_transform-")) {
|
|
51
43
|
const isMediaOrPseudo = key !== "transform";
|
|
52
44
|
const isMedia = isMediaOrPseudo && key[11] === "_";
|
|
53
|
-
const isPsuedo = isMediaOrPseudo && key[11] === "0";
|
|
45
|
+
const isPsuedo = isMediaOrPseudo && key[11] === "0" || key.endsWith("Style");
|
|
54
46
|
const namespace = isMedia ? key.split("_")[2] : isPsuedo ? key.split("-")[1] : "transform";
|
|
55
47
|
let transform = insertedTransforms[val];
|
|
56
48
|
if (!transform) {
|
|
57
49
|
updateInserted();
|
|
50
|
+
transform = insertedTransforms[val];
|
|
51
|
+
}
|
|
52
|
+
if (!transform) {
|
|
53
|
+
if (isWeb && val[0] !== "_") {
|
|
54
|
+
transform = val;
|
|
55
|
+
} else {
|
|
56
|
+
console.log("?", key, val);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
60
|
+
console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms });
|
|
58
61
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
if (process.env.NODE_ENV === "development") {
|
|
63
|
+
if (!transform) {
|
|
64
|
+
console.log("NO TRANSFORM?", { key, val, transform });
|
|
65
|
+
}
|
|
63
66
|
}
|
|
64
67
|
transforms[namespace] = transforms[namespace] || ["", ""];
|
|
65
|
-
|
|
68
|
+
const identifier = val.replace("_transform", "");
|
|
69
|
+
console.warn("?bug2", key, val, transform, insertedTransforms[val]);
|
|
70
|
+
transforms[namespace][0] += identifier;
|
|
66
71
|
transforms[namespace][1] += transform;
|
|
67
72
|
} else {
|
|
68
73
|
classNames[key] = val;
|
|
@@ -73,6 +78,9 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
73
78
|
if (!cur)
|
|
74
79
|
return;
|
|
75
80
|
normalizeStyleObject(cur);
|
|
81
|
+
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
82
|
+
console.log(" \xBB getSplitStyles push", cur, state);
|
|
83
|
+
}
|
|
76
84
|
if (isWeb && !state.noClassNames) {
|
|
77
85
|
const atomic = getStylesAtomic(cur);
|
|
78
86
|
for (const atomicStyle of atomic) {
|
|
@@ -97,11 +105,12 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
97
105
|
}
|
|
98
106
|
__name(push, "push");
|
|
99
107
|
for (const keyInit in props) {
|
|
100
|
-
|
|
101
|
-
if (skipKeys[keyInit]) {
|
|
102
|
-
viewProps[keyInit] = valInit;
|
|
108
|
+
if (skipProps[keyInit]) {
|
|
103
109
|
continue;
|
|
104
110
|
}
|
|
111
|
+
const valInit = props[keyInit];
|
|
112
|
+
let isMedia = keyInit[0] === "$";
|
|
113
|
+
let isPseudo = validPseudoKeys[keyInit];
|
|
105
114
|
if (keyInit === "className" || validStyleProps[keyInit] && valInit && valInit[0] === "_") {
|
|
106
115
|
push();
|
|
107
116
|
mergeClassName(keyInit, valInit);
|
|
@@ -112,12 +121,14 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
112
121
|
}
|
|
113
122
|
continue;
|
|
114
123
|
}
|
|
115
|
-
|
|
116
|
-
|
|
124
|
+
if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
|
|
125
|
+
viewProps[keyInit] = valInit;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
117
128
|
const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, state.fallbackProps || props, state.resolveVariablesAs);
|
|
118
129
|
const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
|
|
119
130
|
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
120
|
-
console.log("
|
|
131
|
+
console.log(" \xBB getSplitStyles", keyInit, expanded);
|
|
121
132
|
}
|
|
122
133
|
for (const [key, val] of expanded) {
|
|
123
134
|
if (val === void 0) {
|
|
@@ -151,16 +162,20 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
151
162
|
}
|
|
152
163
|
if (isMedia) {
|
|
153
164
|
const mediaKey = key;
|
|
154
|
-
|
|
165
|
+
const mediaKeyShort = mediaKey.slice(1);
|
|
166
|
+
if (!mediaQueryConfig[mediaKeyShort]) {
|
|
155
167
|
viewProps[key] = val;
|
|
156
168
|
continue;
|
|
157
169
|
}
|
|
158
|
-
const mediaStyle = getSubStyle(val, staticConfig, theme, props, state
|
|
170
|
+
const mediaStyle = getSubStyle(val, staticConfig, theme, props, state);
|
|
171
|
+
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
172
|
+
console.log(" \xBB getSplitStyles mediaStyle", mediaKey, mediaStyle, props);
|
|
173
|
+
}
|
|
159
174
|
const shouldDoClasses = isWeb && !state.noClassNames;
|
|
160
175
|
if (shouldDoClasses) {
|
|
161
176
|
const mediaStyles = getStylesAtomic(mediaStyle);
|
|
162
177
|
for (const style2 of mediaStyles) {
|
|
163
|
-
const out2 = createMediaStyle(style2,
|
|
178
|
+
const out2 = createMediaStyle(style2, mediaKeyShort, mediaQueryConfig);
|
|
164
179
|
mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
|
|
165
180
|
insertStyleRule(out2.identifier, out2.styleRule);
|
|
166
181
|
}
|
|
@@ -204,13 +219,14 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
204
219
|
const identifier = `_transform${hash}`;
|
|
205
220
|
if (!insertedTransforms[identifier]) {
|
|
206
221
|
const rule = `.${identifier} { transform: ${val}; }`;
|
|
222
|
+
console.log("insert", rule);
|
|
207
223
|
insertStyleRule(identifier, rule);
|
|
208
224
|
}
|
|
209
225
|
classNames[namespace] = identifier;
|
|
210
226
|
}
|
|
211
227
|
}
|
|
212
228
|
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
213
|
-
console.log("out", { style, pseudos, medias, classNames, viewProps });
|
|
229
|
+
console.log(" \xBB getSplitStyles out", { style, pseudos, medias, classNames, viewProps, state });
|
|
214
230
|
}
|
|
215
231
|
return {
|
|
216
232
|
viewProps,
|
|
@@ -237,7 +253,21 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props,
|
|
|
237
253
|
normalizeStyleObject(styleOut);
|
|
238
254
|
return styleOut;
|
|
239
255
|
}, "getSubStyle");
|
|
256
|
+
function normalizeStyleObject(style) {
|
|
257
|
+
var _a, _b;
|
|
258
|
+
if (typeof style.flex === "number") {
|
|
259
|
+
const val = style.flex;
|
|
260
|
+
delete style.flex;
|
|
261
|
+
style.flexGrow = (_a = style.flexGrow) != null ? _a : val;
|
|
262
|
+
style.flexShrink = (_b = style.flexShrink) != null ? _b : 1;
|
|
263
|
+
}
|
|
264
|
+
if (!isWeb) {
|
|
265
|
+
fixNativeShadow(style);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
__name(normalizeStyleObject, "normalizeStyleObject");
|
|
240
269
|
export {
|
|
241
270
|
getSplitStyles,
|
|
242
|
-
getSubStyle
|
|
271
|
+
getSubStyle,
|
|
272
|
+
normalizeStyleObject
|
|
243
273
|
};
|