@tamagui/core 1.0.0-beta.230 → 1.0.0-beta.5
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/README.md +1 -0
- 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 +15 -0
- package/dist/cjs/constants/platform.js.map +2 -2
- package/dist/cjs/constants/rnw.js +4 -0
- package/dist/cjs/contexts/ButtonInsideButtonContext.js +4 -0
- package/dist/cjs/createComponent.js +112 -63
- 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 +56 -27
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/createTheme.js +4 -0
- package/dist/cjs/createTokens.js +7 -6
- package/dist/cjs/createTokens.js.map +2 -2
- package/dist/cjs/createVariable.js +18 -2
- package/dist/cjs/createVariable.js.map +2 -2
- package/dist/cjs/helpers/RNComponents.js +4 -0
- package/dist/cjs/helpers/RNComponents.js.map +0 -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 +77 -44
- package/dist/cjs/helpers/createPropMapper.js.map +2 -2
- package/dist/cjs/helpers/createShallowUpdate.js +4 -0
- package/dist/cjs/helpers/createShallowUpdate.js.map +0 -0
- package/dist/cjs/helpers/createTamaguiProvider.js +4 -0
- package/dist/cjs/helpers/extendStaticConfig.js +9 -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 +22 -14
- package/dist/cjs/helpers/fixNativeShadow.native.js.map +2 -2
- package/dist/cjs/helpers/getExpandedShorthands.js +4 -0
- package/dist/cjs/{constants/pseudos.js → helpers/getSize.js} +17 -19
- package/dist/cjs/helpers/getSize.js.map +7 -0
- package/dist/cjs/helpers/getSplitStyles.js +126 -60
- 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 -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/proxyThemeVariables.js +40 -0
- package/dist/cjs/helpers/proxyThemeVariables.js.map +7 -0
- package/dist/cjs/helpers/themeable.js +7 -2
- package/dist/cjs/helpers/themeable.js.map +2 -2
- package/dist/cjs/helpers/validate.js +53 -11
- 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 +8 -5
- package/dist/cjs/hooks/useFeatures.js.map +2 -2
- package/dist/cjs/hooks/useIsMounted.js +4 -0
- package/dist/cjs/hooks/useIsTouchDevice.js +8 -4
- package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
- package/dist/cjs/hooks/useMedia.js +30 -12
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/usePressable.js +4 -0
- package/dist/cjs/hooks/useTheme.js +30 -17
- package/dist/cjs/hooks/useTheme.js.map +2 -2
- package/dist/cjs/hooks/useUnmountEffect.js +4 -0
- package/dist/cjs/index.js +15 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/static.js +3 -0
- package/dist/cjs/static.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 +7 -3
- package/dist/cjs/views/Theme.js.map +2 -2
- package/dist/cjs/views/ThemeInverse.js +5 -0
- package/dist/cjs/views/ThemeProvider.js +6 -1
- package/dist/cjs/views/ThemeProvider.js.map +2 -2
- 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/platform.js +2 -0
- package/dist/esm/constants/platform.js.map +2 -2
- package/dist/esm/createComponent.js +104 -65
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/createTamagui.js +53 -28
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/createTokens.js +2 -6
- package/dist/esm/createTokens.js.map +2 -2
- package/dist/esm/createVariable.js +8 -2
- package/dist/esm/createVariable.js.map +2 -2
- package/dist/esm/helpers/RNComponents.js +0 -0
- package/dist/esm/helpers/RNComponents.js.map +0 -0
- 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 +74 -44
- package/dist/esm/helpers/createPropMapper.js.map +2 -2
- package/dist/esm/helpers/createShallowUpdate.js +0 -0
- package/dist/esm/helpers/createShallowUpdate.js.map +0 -0
- package/dist/esm/helpers/extendStaticConfig.js +9 -6
- package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
- package/dist/esm/helpers/fixNativeShadow.native.js +18 -14
- package/dist/esm/helpers/fixNativeShadow.native.js.map +2 -2
- package/dist/esm/helpers/getSize.js +13 -0
- package/dist/esm/helpers/getSize.js.map +7 -0
- package/dist/esm/helpers/getSplitStyles.js +125 -63
- 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 -26
- package/dist/esm/helpers/insertStyleRule.js.map +2 -2
- package/dist/esm/helpers/proxyThemeVariables.js +18 -0
- package/dist/esm/helpers/proxyThemeVariables.js.map +7 -0
- package/dist/esm/helpers/themeable.js +3 -2
- package/dist/esm/helpers/themeable.js.map +2 -2
- package/dist/esm/helpers/validate.js +24 -11
- package/dist/esm/helpers/validate.js.map +2 -2
- package/dist/esm/hooks/useFeatures.js +3 -5
- package/dist/esm/hooks/useFeatures.js.map +2 -2
- package/dist/esm/hooks/useIsTouchDevice.js +6 -6
- package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
- package/dist/esm/hooks/useMedia.js +19 -12
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +22 -17
- package/dist/esm/hooks/useTheme.js.map +2 -2
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/static.js +3 -0
- package/dist/esm/static.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 +3 -3
- package/dist/esm/views/Theme.js.map +2 -2
- package/dist/esm/views/ThemeProvider.js +2 -1
- package/dist/esm/views/ThemeProvider.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/platform.js +2 -0
- package/dist/jsx/createComponent.js +100 -61
- package/dist/jsx/createTamagui.js +53 -28
- package/dist/jsx/createTokens.js +2 -6
- package/dist/jsx/createVariable.js +8 -2
- package/dist/jsx/helpers/RNComponents.js +0 -0
- package/dist/jsx/helpers/addStylesUsingClassname.js +4 -1
- package/dist/jsx/helpers/createMediaStyle.js +0 -2
- package/dist/jsx/helpers/createPropMapper.js +74 -44
- package/dist/jsx/helpers/createShallowUpdate.js +0 -0
- package/dist/jsx/helpers/extendStaticConfig.js +9 -6
- package/dist/jsx/helpers/fixNativeShadow.native.js +18 -14
- package/dist/jsx/helpers/getSize.js +12 -0
- package/dist/jsx/helpers/getSplitStyles.js +125 -63
- package/dist/jsx/helpers/getStylesAtomic.js +15 -3
- package/dist/jsx/helpers/insertStyleRule.js +31 -26
- package/dist/jsx/helpers/proxyThemeVariables.js +17 -0
- package/dist/jsx/helpers/themeable.js +3 -3
- package/dist/jsx/helpers/validate.js +24 -11
- package/dist/jsx/hooks/useFeatures.js +3 -5
- package/dist/jsx/hooks/useIsTouchDevice.js +6 -6
- package/dist/jsx/hooks/useMedia.js +19 -12
- package/dist/jsx/hooks/useTheme.js +22 -17
- package/dist/jsx/index.js +4 -0
- package/dist/jsx/static.js +3 -0
- package/dist/jsx/styled.js +3 -4
- package/dist/jsx/views/Theme.js +4 -4
- package/dist/jsx/views/ThemeProvider.js +2 -2
- package/package.json +6 -6
- package/types/Tamagui.d.ts +18 -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 +2 -0
- package/types/conf.d.ts.map +1 -1
- package/types/constants/platform.d.ts +1 -0
- package/types/constants/platform.d.ts.map +1 -1
- package/types/createComponent.d.ts +3 -4
- 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 +3 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/createTokens.d.ts +0 -26
- package/types/createTokens.d.ts.map +1 -1
- package/types/createVariable.d.ts +1 -0
- package/types/createVariable.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/fixNativeShadow.native.d.ts +1 -1
- package/types/helpers/fixNativeShadow.native.d.ts.map +1 -1
- package/types/helpers/getSize.d.ts +3 -0
- package/types/helpers/getSize.d.ts.map +1 -0
- package/types/helpers/getSplitStyles.d.ts +14 -6
- 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/proxyThemeVariables.d.ts +2 -0
- package/types/helpers/proxyThemeVariables.d.ts.map +1 -0
- 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 +2 -6
- 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 +2 -0
- package/types/index.d.ts.map +1 -1
- package/types/static.d.ts +3 -0
- package/types/static.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 +76 -48
- 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/types/views/ThemeProvider.d.ts +1 -0
- package/types/views/ThemeProvider.d.ts.map +1 -1
- package/LICENSE +0 -21
- package/dist/cjs/constants/pseudos.js.map +0 -7
- package/dist/cjs/createShallowUpdate.js +0 -1
- package/dist/cjs/createShallowUpdate.js.map +0 -7
- package/dist/cjs/devtools.js +0 -32
- package/dist/cjs/devtools.js.map +0 -7
- package/dist/cjs/spacedChildren.js +0 -86
- package/dist/cjs/spacedChildren.js.map +0 -7
- package/dist/cjs/tamagui-base.css +0 -8
- package/dist/cjs/tamagui-base.css.map +0 -7
- package/dist/esm/constants/pseudos.js +0 -18
- package/dist/esm/constants/pseudos.js.map +0 -7
- package/dist/esm/createShallowUpdate.js +0 -1
- package/dist/esm/createShallowUpdate.js.map +0 -7
- package/dist/esm/devtools.js +0 -14
- package/dist/esm/devtools.js.map +0 -7
- package/dist/esm/spacedChildren.js +0 -52
- package/dist/esm/spacedChildren.js.map +0 -7
- package/dist/esm/tamagui-base.css +0 -8
- package/dist/esm/tamagui-base.css.map +0 -7
- package/dist/jsx/constants/pseudos.js +0 -17
- package/dist/jsx/createShallowUpdate.js +0 -0
- package/dist/jsx/devtools.js +0 -13
- package/dist/jsx/spacedChildren.js +0 -44
- package/dist/jsx/tamagui-base.css +0 -7
- package/types/spacedChildren.d.ts +0 -9
- package/types/spacedChildren.d.ts.map +0 -1
|
@@ -4,29 +4,32 @@ import { getConfig } from "../conf";
|
|
|
4
4
|
import { isWeb } from "../constants/platform";
|
|
5
5
|
import { isVariable } from "../createVariable";
|
|
6
6
|
import { isObj } from "./isObj";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
function getVariantFunction(variant, key, value) {
|
|
8
|
+
if (typeof variant === "function") {
|
|
9
|
+
return variant;
|
|
10
|
+
}
|
|
11
|
+
for (const cat in tokenCategories) {
|
|
12
|
+
if (key in tokenCategories[cat]) {
|
|
13
|
+
const spreadVariant = variant[`...${cat}`];
|
|
14
|
+
if (spreadVariant) {
|
|
15
|
+
return spreadVariant;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
let fn;
|
|
19
|
-
if (typeof value === "number") {
|
|
20
|
-
fn = variant[":number"];
|
|
21
|
-
} else if (typeof value === "string") {
|
|
22
|
-
fn = variant[":string"];
|
|
23
|
-
} else if (value === true || value === false) {
|
|
24
|
-
fn = variant[":boolean"];
|
|
25
|
-
}
|
|
26
|
-
fn = fn || variant[value];
|
|
27
|
-
return fn || variant["..."] || variant["...size"];
|
|
28
18
|
}
|
|
29
|
-
|
|
19
|
+
let fn;
|
|
20
|
+
if (typeof value === "number") {
|
|
21
|
+
fn = variant[":number"];
|
|
22
|
+
} else if (typeof value === "string") {
|
|
23
|
+
fn = variant[":string"];
|
|
24
|
+
} else if (value === true || value === false) {
|
|
25
|
+
fn = variant[":boolean"];
|
|
26
|
+
}
|
|
27
|
+
fn = fn || variant[value];
|
|
28
|
+
return fn || variant["..."] || variant["...size"];
|
|
29
|
+
}
|
|
30
|
+
__name(getVariantFunction, "getVariantFunction");
|
|
31
|
+
const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
32
|
+
const variants = staticConfig.variants || {};
|
|
30
33
|
const defaultProps = staticConfig.defaultProps || {};
|
|
31
34
|
return (key, value, theme, props, returnVariablesAs = !!props.animation ? "value" : "auto", avoidDefaultProps = false) => {
|
|
32
35
|
const conf = getConfig();
|
|
@@ -34,13 +37,15 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
|
34
37
|
console.trace("no conf! err");
|
|
35
38
|
return;
|
|
36
39
|
}
|
|
37
|
-
|
|
40
|
+
const fontFamily = props.fontFamily || defaultProps.fontFamily || "$body";
|
|
38
41
|
const variant = variants && variants[key];
|
|
39
42
|
if (variant && value !== void 0) {
|
|
40
43
|
let variantValue = getVariantFunction(variant, key, value);
|
|
41
44
|
if (variantValue) {
|
|
42
45
|
if (typeof variantValue === "function") {
|
|
43
|
-
|
|
46
|
+
const fn = variantValue;
|
|
47
|
+
variantValue = fn(value, {
|
|
48
|
+
fonts: conf.fontsParsed,
|
|
44
49
|
tokens: conf.tokensParsed,
|
|
45
50
|
theme,
|
|
46
51
|
props: avoidDefaultProps ? props : new Proxy(props, {
|
|
@@ -48,8 +53,8 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
|
48
53
|
if (Reflect.has(target, key2)) {
|
|
49
54
|
return Reflect.get(target, key2);
|
|
50
55
|
}
|
|
51
|
-
if (
|
|
52
|
-
return Reflect.get(
|
|
56
|
+
if (defaultProps) {
|
|
57
|
+
return Reflect.get(defaultProps, key2);
|
|
53
58
|
}
|
|
54
59
|
}
|
|
55
60
|
})
|
|
@@ -58,7 +63,7 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
|
58
63
|
if (isObj(variantValue)) {
|
|
59
64
|
variantValue = resolveTokens(variantValue, conf, theme, fontFamily, returnVariablesAs);
|
|
60
65
|
}
|
|
61
|
-
return variantValue;
|
|
66
|
+
return expansions(variantValue);
|
|
62
67
|
}
|
|
63
68
|
}
|
|
64
69
|
let shouldReturn = false;
|
|
@@ -75,9 +80,9 @@ const createPropMapper = /* @__PURE__ */ __name((staticConfig) => {
|
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
82
|
if (shouldReturn) {
|
|
78
|
-
return {
|
|
83
|
+
return expansions({
|
|
79
84
|
[key]: value
|
|
80
|
-
};
|
|
85
|
+
});
|
|
81
86
|
}
|
|
82
87
|
};
|
|
83
88
|
}, "createPropMapper");
|
|
@@ -107,34 +112,28 @@ const resolveTokens = /* @__PURE__ */ __name((input, conf, theme, fontFamily, re
|
|
|
107
112
|
}
|
|
108
113
|
return res;
|
|
109
114
|
}, "resolveTokens");
|
|
110
|
-
const
|
|
111
|
-
|
|
115
|
+
const fontShorthand = {
|
|
116
|
+
fontSize: "size",
|
|
117
|
+
fontWeight: "weight"
|
|
118
|
+
};
|
|
119
|
+
const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed, fontsParsed }, theme, fontFamily = "$body", resolveAs) => {
|
|
120
|
+
var _a, _b, _c;
|
|
112
121
|
let valOrVar;
|
|
113
122
|
let hasSet = false;
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
valOrVar = theme[valueName];
|
|
123
|
+
if (value in theme) {
|
|
124
|
+
valOrVar = theme[value];
|
|
117
125
|
hasSet = true;
|
|
118
126
|
} else {
|
|
119
127
|
switch (key) {
|
|
120
128
|
case "fontFamily":
|
|
121
|
-
valOrVar = ((_a =
|
|
129
|
+
valOrVar = ((_a = fontsParsed[value]) == null ? void 0 : _a.family) || value;
|
|
122
130
|
hasSet = true;
|
|
123
131
|
break;
|
|
124
132
|
case "fontSize":
|
|
125
|
-
valOrVar = ((_b = tokensParsed.font[fontFamily]) == null ? void 0 : _b.size[value]) || value;
|
|
126
|
-
hasSet = true;
|
|
127
|
-
break;
|
|
128
133
|
case "lineHeight":
|
|
129
|
-
valOrVar = ((_c = tokensParsed.font[fontFamily]) == null ? void 0 : _c.lineHeight[value]) || value;
|
|
130
|
-
hasSet = true;
|
|
131
|
-
break;
|
|
132
134
|
case "letterSpacing":
|
|
133
|
-
valOrVar = ((_d = tokensParsed.font[fontFamily]) == null ? void 0 : _d.letterSpacing[value]) || value;
|
|
134
|
-
hasSet = true;
|
|
135
|
-
break;
|
|
136
135
|
case "fontWeight":
|
|
137
|
-
valOrVar = ((
|
|
136
|
+
valOrVar = ((_c = (_b = fontsParsed[fontFamily]) == null ? void 0 : _b[fontShorthand[key] || key]) == null ? void 0 : _c[value]) || value;
|
|
138
137
|
hasSet = true;
|
|
139
138
|
break;
|
|
140
139
|
}
|
|
@@ -160,7 +159,7 @@ const getToken = /* @__PURE__ */ __name((key, value, { tokensParsed }, theme, fo
|
|
|
160
159
|
}
|
|
161
160
|
if (process.env.NODE_ENV === "development") {
|
|
162
161
|
if (value && value[0] === "$") {
|
|
163
|
-
console.warn(`\u26A0\uFE0F Missing token
|
|
162
|
+
console.warn(`\u26A0\uFE0F Missing token:`, key, value, fontFamily, theme, fontsParsed);
|
|
164
163
|
return null;
|
|
165
164
|
}
|
|
166
165
|
}
|
|
@@ -201,6 +200,37 @@ const tokenCategories = {
|
|
|
201
200
|
borderRightColor: true
|
|
202
201
|
}
|
|
203
202
|
};
|
|
203
|
+
const sidesX = ["Left", "Right"];
|
|
204
|
+
const sidesY = ["Top", "Bottom"];
|
|
205
|
+
const sidesXY = [...sidesX, ...sidesY];
|
|
206
|
+
const expand = {
|
|
207
|
+
padding: sidesXY.map((x) => `padding${x}`),
|
|
208
|
+
paddingHorizontal: sidesX.map((x) => `padding${x}`),
|
|
209
|
+
paddingVertical: sidesY.map((x) => `padding${x}`),
|
|
210
|
+
margin: sidesXY.map((x) => `margin${x}`),
|
|
211
|
+
marginHorizontal: sidesX.map((x) => `margin${x}`),
|
|
212
|
+
marginVertical: sidesY.map((x) => `margin${x}`)
|
|
213
|
+
};
|
|
214
|
+
function expansions(styleObj) {
|
|
215
|
+
var _a, _b;
|
|
216
|
+
for (const key in expand) {
|
|
217
|
+
if (key in styleObj) {
|
|
218
|
+
for (const expandKey of expand[key]) {
|
|
219
|
+
styleObj[expandKey] = styleObj[key];
|
|
220
|
+
}
|
|
221
|
+
delete styleObj[key];
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
if ("flex" in styleObj) {
|
|
225
|
+
if (typeof styleObj.flex === "number") {
|
|
226
|
+
styleObj.flexGrow = (_a = styleObj.flexGrow) != null ? _a : styleObj.flex;
|
|
227
|
+
styleObj.flexShrink = (_b = styleObj.flexShrink) != null ? _b : 1;
|
|
228
|
+
delete styleObj.flex;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return styleObj;
|
|
232
|
+
}
|
|
233
|
+
__name(expansions, "expansions");
|
|
204
234
|
export {
|
|
205
235
|
createPropMapper
|
|
206
236
|
};
|
|
File without changes
|
|
@@ -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 = {
|
|
@@ -38,9 +35,15 @@ function extendStaticConfig(parent, config = {}) {
|
|
|
38
35
|
...parent.staticConfig.validStyles,
|
|
39
36
|
...config.validStyles
|
|
40
37
|
} : parent.staticConfig.validStyles || stylePropsView,
|
|
38
|
+
defaultVariants: {
|
|
39
|
+
...parent.staticConfig.defaultVariants,
|
|
40
|
+
...config.defaultVariants
|
|
41
|
+
},
|
|
41
42
|
defaultProps: {
|
|
42
43
|
...parent.staticConfig.defaultProps,
|
|
43
|
-
...
|
|
44
|
+
...parent.staticConfig.defaultVariants,
|
|
45
|
+
...config.defaultProps,
|
|
46
|
+
...config.defaultVariants
|
|
44
47
|
}
|
|
45
48
|
});
|
|
46
49
|
}
|
|
@@ -1,30 +1,34 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
const matchRgbaHsla = /(rgba|hsla)\(\s*([\d\.]{1,}%?)\s*,\s*([\d\.]{1,}%?)\s*,\s*([\d\.]{1,}%?)\s*,\s*([\d\.]{1,})\s*\)$/;
|
|
4
|
-
function fixNativeShadow(
|
|
5
|
-
|
|
4
|
+
function fixNativeShadow(styles) {
|
|
5
|
+
const color = styles.find((x) => x[0] === "shadowColor");
|
|
6
|
+
if (!color) {
|
|
6
7
|
return;
|
|
7
8
|
}
|
|
8
|
-
if (!
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
if (!styles.find((x) => x[0] === "shadowOffset")) {
|
|
10
|
+
styles.push([
|
|
11
|
+
"shadowOffset",
|
|
12
|
+
{
|
|
13
|
+
width: 0,
|
|
14
|
+
height: 0
|
|
15
|
+
}
|
|
16
|
+
]);
|
|
13
17
|
}
|
|
14
|
-
if ("shadowOpacity"
|
|
18
|
+
if (styles.find((x) => x[0] === "shadowOpacity")) {
|
|
15
19
|
return;
|
|
16
20
|
}
|
|
17
|
-
const c = `${
|
|
21
|
+
const c = `${color[1]}`;
|
|
18
22
|
if ((c[0] === "r" || c[0] === "h") && c[3] === "a") {
|
|
19
23
|
const [_, type, _1, _2, _3, a] = c.match(matchRgbaHsla) || [];
|
|
20
24
|
if (typeof a !== "string") {
|
|
21
|
-
console.
|
|
22
|
-
|
|
25
|
+
console.trace("invalid", c, type);
|
|
26
|
+
throw new Error(`invalid style`);
|
|
23
27
|
}
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
styles.push(["shadowColor", `${type.replace("a", "")}(${_1},${_2},${_3})`]);
|
|
29
|
+
styles.push(["shadowOpacity", +a]);
|
|
26
30
|
} else {
|
|
27
|
-
|
|
31
|
+
styles.push(["shadowOpacity", 1]);
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
__name(fixNativeShadow, "fixNativeShadow");
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { getTokens } from "../conf";
|
|
4
|
+
const getSize = /* @__PURE__ */ __name((size, sizeUpOrDownBy = 0) => {
|
|
5
|
+
const sizes = getTokens().size;
|
|
6
|
+
const sizeNames = Object.keys(sizes);
|
|
7
|
+
const key = sizeNames[Math.max(0, sizeNames.indexOf(String(size || "$4")) + sizeUpOrDownBy)];
|
|
8
|
+
return sizes[key] || sizes["$4"];
|
|
9
|
+
}, "getSize");
|
|
10
|
+
export {
|
|
11
|
+
getSize
|
|
12
|
+
};
|
|
@@ -7,33 +7,31 @@ import {
|
|
|
7
7
|
validPseudoKeys,
|
|
8
8
|
validStyles
|
|
9
9
|
} from "@tamagui/helpers";
|
|
10
|
-
import {
|
|
10
|
+
import { useInsertionEffect } from "react";
|
|
11
|
+
import { getConfig } from "../conf";
|
|
12
|
+
import { isClient, isWeb, useIsomorphicLayoutEffect } from "../constants/platform";
|
|
11
13
|
import { mediaQueryConfig, mediaState } from "../hooks/useMedia";
|
|
12
14
|
import { createMediaStyle } from "./createMediaStyle";
|
|
13
15
|
import { fixNativeShadow } from "./fixNativeShadow";
|
|
14
16
|
import { getStylesAtomic } from "./getStylesAtomic";
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
+
import {
|
|
18
|
+
insertStyleRule,
|
|
19
|
+
insertedTransforms,
|
|
20
|
+
updateInserted,
|
|
21
|
+
updateInsertedCache
|
|
22
|
+
} from "./insertStyleRule";
|
|
23
|
+
const skipProps = {
|
|
17
24
|
animation: true,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
key: true,
|
|
21
|
-
ref: true
|
|
25
|
+
animateOnly: true,
|
|
26
|
+
debug: true
|
|
22
27
|
};
|
|
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");
|
|
28
|
+
let conf;
|
|
36
29
|
const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state, defaultClassNames) => {
|
|
30
|
+
var _a;
|
|
31
|
+
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
32
|
+
console.log(" \xBB getSplitStyles", { props, state, defaultClassNames });
|
|
33
|
+
}
|
|
34
|
+
conf = conf || getConfig();
|
|
37
35
|
const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
|
|
38
36
|
const viewProps = {};
|
|
39
37
|
const style = {};
|
|
@@ -42,27 +40,51 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
42
40
|
};
|
|
43
41
|
const pseudos = {};
|
|
44
42
|
const medias = {};
|
|
43
|
+
const rulesToInsert = [];
|
|
44
|
+
function addStyle(prop, rule) {
|
|
45
|
+
rulesToInsert.push([prop, rule]);
|
|
46
|
+
updateInsertedCache(prop, rule);
|
|
47
|
+
}
|
|
48
|
+
__name(addStyle, "addStyle");
|
|
45
49
|
let cur = null;
|
|
46
50
|
let transforms = {};
|
|
47
51
|
function mergeClassName(key, val) {
|
|
48
|
-
if (!val)
|
|
52
|
+
if (!val) {
|
|
49
53
|
return;
|
|
54
|
+
}
|
|
50
55
|
if (val.startsWith("_transform-")) {
|
|
51
56
|
const isMediaOrPseudo = key !== "transform";
|
|
52
57
|
const isMedia = isMediaOrPseudo && key[11] === "_";
|
|
53
|
-
const isPsuedo = isMediaOrPseudo && key[11] === "0";
|
|
58
|
+
const isPsuedo = isMediaOrPseudo && key[11] === "0" || key.endsWith("Style");
|
|
54
59
|
const namespace = isMedia ? key.split("_")[2] : isPsuedo ? key.split("-")[1] : "transform";
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
let transform = insertedTransforms[val];
|
|
61
|
+
if (isClient) {
|
|
62
|
+
if (!transform) {
|
|
63
|
+
updateInserted();
|
|
64
|
+
transform = insertedTransforms[val];
|
|
65
|
+
}
|
|
66
|
+
if (!transform) {
|
|
67
|
+
if (isWeb && val[0] !== "_") {
|
|
68
|
+
transform = val;
|
|
69
|
+
} else {
|
|
70
|
+
console.trace("?", key, val, cur, props, state);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
74
|
+
console.log(" \xBB getSplitStyles mergeClassName transform", { key, val, namespace, transform, insertedTransforms });
|
|
75
|
+
}
|
|
76
|
+
if (process.env.NODE_ENV === "development") {
|
|
77
|
+
if (!transform) {
|
|
78
|
+
console.trace("NO TRANSFORM?", { key, val, transform });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
62
81
|
}
|
|
63
82
|
transforms[namespace] = transforms[namespace] || ["", ""];
|
|
64
|
-
|
|
65
|
-
transforms[namespace][
|
|
83
|
+
const identifier = val.replace("_transform", "");
|
|
84
|
+
transforms[namespace][0] += identifier;
|
|
85
|
+
if (transform) {
|
|
86
|
+
transforms[namespace][1] += transform;
|
|
87
|
+
}
|
|
66
88
|
} else {
|
|
67
89
|
classNames[key] = val;
|
|
68
90
|
}
|
|
@@ -72,18 +94,21 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
72
94
|
if (!cur)
|
|
73
95
|
return;
|
|
74
96
|
normalizeStyleObject(cur);
|
|
97
|
+
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
98
|
+
console.log(" \xBB getSplitStyles push", cur, state);
|
|
99
|
+
}
|
|
75
100
|
if (isWeb && !state.noClassNames) {
|
|
76
101
|
const atomic = getStylesAtomic(cur);
|
|
77
102
|
for (const atomicStyle of atomic) {
|
|
78
103
|
if (!state.noClassNames) {
|
|
104
|
+
addStyle(atomicStyle.identifier, atomicStyle.rules[0]);
|
|
79
105
|
mergeClassName(atomicStyle.property, atomicStyle.identifier);
|
|
80
|
-
insertStyleRule(atomicStyle.identifier, atomicStyle.rules[0]);
|
|
81
106
|
} else {
|
|
82
107
|
style[atomicStyle.property] = atomicStyle.value;
|
|
83
108
|
}
|
|
84
109
|
}
|
|
85
110
|
}
|
|
86
|
-
if (state.noClassNames || state.resolveVariablesAs === "value" || state.resolveVariablesAs === "both") {
|
|
111
|
+
if (!isWeb || state.noClassNames || state.resolveVariablesAs === "value" || state.resolveVariablesAs === "both") {
|
|
87
112
|
for (const key in cur) {
|
|
88
113
|
if (key in stylePropsTransform) {
|
|
89
114
|
mergeTransform(style, key, cur[key]);
|
|
@@ -96,27 +121,34 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
96
121
|
}
|
|
97
122
|
__name(push, "push");
|
|
98
123
|
for (const keyInit in props) {
|
|
124
|
+
if (skipProps[keyInit]) {
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
99
127
|
const valInit = props[keyInit];
|
|
100
|
-
if (
|
|
101
|
-
|
|
128
|
+
if (keyInit === "style" || keyInit.startsWith("_style")) {
|
|
129
|
+
push();
|
|
130
|
+
cur = valInit;
|
|
131
|
+
push();
|
|
102
132
|
continue;
|
|
103
133
|
}
|
|
104
134
|
if (keyInit === "className" || validStyleProps[keyInit] && valInit && valInit[0] === "_") {
|
|
105
135
|
push();
|
|
106
136
|
mergeClassName(keyInit, valInit);
|
|
107
|
-
if (cur) {
|
|
108
|
-
if (cur[keyInit])
|
|
109
|
-
console.warn("just want to see how used");
|
|
110
|
-
delete cur[keyInit];
|
|
111
|
-
}
|
|
112
137
|
continue;
|
|
113
138
|
}
|
|
139
|
+
if (state.keepVariantsAsProps && staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {
|
|
140
|
+
viewProps[keyInit] = valInit;
|
|
141
|
+
}
|
|
114
142
|
let isMedia = keyInit[0] === "$";
|
|
115
143
|
let isPseudo = validPseudoKeys[keyInit];
|
|
144
|
+
if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
|
|
145
|
+
viewProps[keyInit] = valInit;
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
116
148
|
const out = isMedia || isPseudo ? true : staticConfig.propMapper(keyInit, valInit, theme, state.fallbackProps || props, state.resolveVariablesAs);
|
|
117
149
|
const expanded = out === true || !out ? [[keyInit, valInit]] : Object.entries(out);
|
|
118
150
|
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
119
|
-
console.log("
|
|
151
|
+
console.log(" \xBB getSplitStyles", keyInit, expanded);
|
|
120
152
|
}
|
|
121
153
|
for (const [key, val] of expanded) {
|
|
122
154
|
if (val === void 0) {
|
|
@@ -142,41 +174,42 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
142
174
|
if (isWeb && !state.noClassNames) {
|
|
143
175
|
const pseudoStyles = getStylesAtomic({ [key]: pseudos[key] });
|
|
144
176
|
for (const style2 of pseudoStyles) {
|
|
177
|
+
addStyle(style2.identifier, style2.rules[0]);
|
|
145
178
|
mergeClassName(`${style2.property}-${key}`, style2.identifier);
|
|
146
|
-
insertStyleRule(style2.identifier, style2.rules[0]);
|
|
147
179
|
}
|
|
148
180
|
}
|
|
149
181
|
continue;
|
|
150
182
|
}
|
|
151
183
|
if (isMedia) {
|
|
152
|
-
const mediaKey = key
|
|
153
|
-
|
|
184
|
+
const mediaKey = key;
|
|
185
|
+
const mediaKeyShort = mediaKey.slice(1);
|
|
186
|
+
if (!mediaQueryConfig[mediaKeyShort]) {
|
|
154
187
|
viewProps[key] = val;
|
|
155
188
|
continue;
|
|
156
189
|
}
|
|
157
|
-
const mediaStyle = getSubStyle(val, staticConfig, theme, props, state
|
|
158
|
-
if (
|
|
190
|
+
const mediaStyle = getSubStyle(val, staticConfig, theme, props, state);
|
|
191
|
+
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
192
|
+
console.log(" \xBB getSplitStyles mediaStyle", mediaKey, mediaStyle, props);
|
|
193
|
+
}
|
|
194
|
+
const shouldDoClasses = isWeb && !state.noClassNames;
|
|
195
|
+
if (shouldDoClasses) {
|
|
159
196
|
const mediaStyles = getStylesAtomic(mediaStyle);
|
|
160
197
|
for (const style2 of mediaStyles) {
|
|
161
|
-
const out2 = createMediaStyle(style2,
|
|
198
|
+
const out2 = createMediaStyle(style2, mediaKeyShort, mediaQueryConfig);
|
|
199
|
+
addStyle(out2.identifier, out2.styleRule);
|
|
162
200
|
mergeClassName(`${out2.identifier}-${mediaKey}`, out2.identifier);
|
|
163
|
-
insertStyleRule(out2.identifier, out2.styleRule);
|
|
164
|
-
}
|
|
165
|
-
if (mediaState[mediaKey]) {
|
|
166
|
-
Object.assign(medias, mediaStyle);
|
|
167
201
|
}
|
|
168
202
|
} else {
|
|
169
203
|
if (mediaState[mediaKey]) {
|
|
170
|
-
|
|
204
|
+
push();
|
|
205
|
+
if (process.env.NODE_ENV === "development" && props["debug"]) {
|
|
206
|
+
console.log("apply media style", mediaKey, mediaState);
|
|
207
|
+
}
|
|
208
|
+
Object.assign(shouldDoClasses ? medias : style, mediaStyle);
|
|
171
209
|
}
|
|
172
210
|
}
|
|
173
211
|
continue;
|
|
174
212
|
}
|
|
175
|
-
if (key === "style" || key.startsWith("_style")) {
|
|
176
|
-
push();
|
|
177
|
-
Object.assign(style, val);
|
|
178
|
-
continue;
|
|
179
|
-
}
|
|
180
213
|
if (!isWeb && key === "pointerEvents") {
|
|
181
214
|
viewProps[key] = val;
|
|
182
215
|
continue;
|
|
@@ -199,24 +232,44 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
199
232
|
for (const namespace in transforms) {
|
|
200
233
|
const [hash, val] = transforms[namespace];
|
|
201
234
|
const identifier = `_transform${hash}`;
|
|
202
|
-
if (
|
|
203
|
-
|
|
204
|
-
|
|
235
|
+
if (isClient) {
|
|
236
|
+
if (!insertedTransforms[identifier]) {
|
|
237
|
+
const rule = `.${identifier} { transform: ${val}; }`;
|
|
238
|
+
addStyle(identifier, rule);
|
|
239
|
+
}
|
|
205
240
|
}
|
|
206
241
|
classNames[namespace] = identifier;
|
|
207
242
|
}
|
|
208
243
|
}
|
|
209
244
|
if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
|
|
210
|
-
console.log("out", pseudos);
|
|
245
|
+
console.log(" \xBB getSplitStyles out", { style, pseudos, medias, classNames, viewProps, state });
|
|
211
246
|
}
|
|
212
247
|
return {
|
|
213
248
|
viewProps,
|
|
214
249
|
style,
|
|
215
250
|
medias,
|
|
216
251
|
pseudos,
|
|
217
|
-
classNames
|
|
252
|
+
classNames,
|
|
253
|
+
rulesToInsert
|
|
218
254
|
};
|
|
219
255
|
}, "getSplitStyles");
|
|
256
|
+
const insertSplitStyles = /* @__PURE__ */ __name((...args) => {
|
|
257
|
+
const res = getSplitStyles(...args);
|
|
258
|
+
for (const [prop, rule] of res.rulesToInsert) {
|
|
259
|
+
insertStyleRule(prop, rule);
|
|
260
|
+
}
|
|
261
|
+
return res;
|
|
262
|
+
}, "insertSplitStyles");
|
|
263
|
+
const effect = useInsertionEffect || useIsomorphicLayoutEffect;
|
|
264
|
+
const useSplitStyles = /* @__PURE__ */ __name((...args) => {
|
|
265
|
+
const res = getSplitStyles(...args);
|
|
266
|
+
effect(() => {
|
|
267
|
+
for (const [prop, rule] of res.rulesToInsert) {
|
|
268
|
+
insertStyleRule(prop, rule);
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
return res;
|
|
272
|
+
}, "useSplitStyles");
|
|
220
273
|
const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props, state, avoidDefaultProps) => {
|
|
221
274
|
const styleOut = {};
|
|
222
275
|
for (const key in styleIn) {
|
|
@@ -234,7 +287,16 @@ const getSubStyle = /* @__PURE__ */ __name((styleIn, staticConfig, theme, props,
|
|
|
234
287
|
normalizeStyleObject(styleOut);
|
|
235
288
|
return styleOut;
|
|
236
289
|
}, "getSubStyle");
|
|
290
|
+
function normalizeStyleObject(style) {
|
|
291
|
+
if (!isWeb) {
|
|
292
|
+
fixNativeShadow(style);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
__name(normalizeStyleObject, "normalizeStyleObject");
|
|
237
296
|
export {
|
|
238
297
|
getSplitStyles,
|
|
239
|
-
getSubStyle
|
|
298
|
+
getSubStyle,
|
|
299
|
+
insertSplitStyles,
|
|
300
|
+
normalizeStyleObject,
|
|
301
|
+
useSplitStyles
|
|
240
302
|
};
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
mergeTransform,
|
|
6
6
|
stylePropsTransform
|
|
7
7
|
} from "@tamagui/helpers";
|
|
8
|
+
import { getConfig } from "../conf";
|
|
8
9
|
import { rnw } from "../constants/rnw";
|
|
9
10
|
import { isVariable } from "../createVariable";
|
|
10
11
|
function getStylesAtomic(stylesIn, options = {}) {
|
|
@@ -33,6 +34,7 @@ __name(getStylesAtomic, "getStylesAtomic");
|
|
|
33
34
|
const generateAtomicStyles = /* @__PURE__ */ __name((style) => {
|
|
34
35
|
return rnw.atomic(rnw.createCompileableStyle(rnw.createReactDOMStyle(style)));
|
|
35
36
|
}, "generateAtomicStyles");
|
|
37
|
+
let reversedShorthands = null;
|
|
36
38
|
function getAtomicStyle(style, pseudo, options) {
|
|
37
39
|
var _a;
|
|
38
40
|
if (style == null || typeof style !== "object") {
|
|
@@ -56,16 +58,26 @@ function getAtomicStyle(style, pseudo, options) {
|
|
|
56
58
|
...out[key],
|
|
57
59
|
transformProperty
|
|
58
60
|
};
|
|
59
|
-
console.log("got", JSON.stringify({ t, tKey, out, key, atomicStyles }, null, 2));
|
|
60
61
|
}
|
|
61
62
|
} else {
|
|
62
63
|
atomicStyles = generateAtomicStyles(style);
|
|
63
64
|
}
|
|
65
|
+
if (!reversedShorthands) {
|
|
66
|
+
reversedShorthands = {};
|
|
67
|
+
const conf = getConfig();
|
|
68
|
+
if (conf.shorthands) {
|
|
69
|
+
for (const key in conf.shorthands) {
|
|
70
|
+
reversedShorthands[conf.shorthands[key]] = key;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
64
74
|
return Object.keys(atomicStyles).map((key) => {
|
|
65
75
|
const val = atomicStyles[key];
|
|
66
|
-
const [_,
|
|
76
|
+
const [_, a, b] = val.identifier.split("-");
|
|
77
|
+
const hash = b || a;
|
|
67
78
|
const psuedoPrefix = pseudo ? `0${pseudo.name}-` : "";
|
|
68
|
-
const
|
|
79
|
+
const shortProp = reversedShorthands[val.property] || val.property;
|
|
80
|
+
const identifier = `_${shortProp}-${psuedoPrefix}${hash}`;
|
|
69
81
|
const className = `.${identifier}`;
|
|
70
82
|
const rules = val.rules.map((rule) => {
|
|
71
83
|
if (pseudo) {
|