@tamagui/core 1.0.1-beta.193 → 1.0.1-beta.194
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 +4 -2
- package/dist/cjs/Tamagui.js.map +2 -2
- package/dist/cjs/config.js +1 -2
- package/dist/cjs/config.js.map +2 -2
- package/dist/cjs/constants/constants.js +13 -8
- package/dist/cjs/constants/constants.js.map +2 -2
- package/dist/cjs/contexts/TextAncestorContext.js +3 -16
- package/dist/cjs/contexts/TextAncestorContext.js.map +3 -3
- package/dist/cjs/createComponent.js +194 -289
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/createTamagui.js +15 -16
- package/dist/cjs/createTamagui.js.map +3 -3
- package/dist/cjs/createVariable.js +1 -2
- package/dist/cjs/createVariable.js.map +2 -2
- package/dist/cjs/helpers/ThemeManager.js +7 -14
- package/dist/cjs/helpers/ThemeManager.js.map +2 -2
- package/dist/cjs/helpers/{createShallowUpdate.js → cache.js} +20 -21
- package/dist/cjs/helpers/cache.js.map +7 -0
- package/dist/cjs/helpers/createMediaStyle.js +14 -8
- package/dist/cjs/helpers/createMediaStyle.js.map +2 -2
- package/dist/cjs/helpers/extendStaticConfig.js +0 -1
- package/dist/cjs/helpers/extendStaticConfig.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +212 -93
- package/dist/cjs/helpers/getSplitStyles.js.map +3 -3
- package/dist/cjs/helpers/getStylesAtomic.js +16 -36
- package/dist/cjs/helpers/getStylesAtomic.js.map +3 -3
- package/dist/cjs/helpers/insertStyleRule.js +14 -6
- package/dist/cjs/helpers/insertStyleRule.js.map +2 -2
- package/dist/cjs/helpers/matchMedia.js.map +2 -2
- package/dist/cjs/helpers/mergeTransform.js.map +1 -1
- package/dist/cjs/helpers/normalizeValueWithProperty.js +32 -2
- package/dist/cjs/helpers/normalizeValueWithProperty.js.map +2 -2
- package/dist/cjs/helpers/useShallowSetState.js.map +2 -2
- package/dist/cjs/hooks/getThemeUnwrapped.js +1 -3
- package/dist/cjs/hooks/getThemeUnwrapped.js.map +2 -2
- package/dist/cjs/hooks/useElementLayout.js +92 -0
- package/dist/cjs/hooks/useElementLayout.js.map +7 -0
- package/dist/cjs/hooks/useIsTouchDevice.js +2 -10
- package/dist/cjs/hooks/useIsTouchDevice.js.map +2 -2
- package/dist/cjs/hooks/useMedia.js +77 -84
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/hooks/useMedia.test.js +2 -0
- package/dist/cjs/{helpers/validate.js.map → hooks/useMedia.test.js.map} +0 -0
- package/dist/cjs/hooks/usePressablePressResponder.js +370 -0
- package/dist/cjs/hooks/usePressablePressResponder.js.map +7 -0
- package/dist/cjs/hooks/useSafeRef.js +13 -15
- package/dist/cjs/hooks/useSafeRef.js.map +2 -2
- package/dist/cjs/hooks/useTheme.js +3 -4
- package/dist/cjs/hooks/useTheme.js.map +2 -2
- package/dist/cjs/index.js +1 -17
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/static.js +0 -20
- package/dist/cjs/static.js.map +2 -2
- package/dist/cjs/styled.js +4 -22
- package/dist/cjs/styled.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/{hooks/useIsSSR.js → views/AbsoluteFill.js} +18 -23
- package/dist/cjs/views/AbsoluteFill.js.map +7 -0
- package/dist/cjs/views/AbsoluteFill.native.js +45 -0
- package/dist/cjs/views/AbsoluteFill.native.js.map +7 -0
- package/dist/cjs/views/FontLanguage.native.js.map +2 -2
- package/dist/cjs/views/Stack.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.js +3 -2
- package/dist/cjs/views/TamaguiProvider.js.map +2 -2
- package/dist/cjs/views/Text.js.map +1 -1
- package/dist/cjs/views/ThemeReset.js +10 -10
- package/dist/cjs/views/ThemeReset.js.map +2 -2
- package/dist/esm/Tamagui.js +4 -2
- package/dist/esm/Tamagui.js.map +2 -2
- package/dist/esm/config.js +1 -2
- package/dist/esm/config.js.map +2 -2
- package/dist/esm/constants/constants.js +11 -7
- package/dist/esm/constants/constants.js.map +2 -2
- package/dist/esm/contexts/TextAncestorContext.js +2 -13
- package/dist/esm/contexts/TextAncestorContext.js.map +2 -2
- package/dist/esm/createComponent.js +193 -291
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/createTamagui.js +15 -16
- package/dist/esm/createTamagui.js.map +3 -3
- package/dist/esm/createVariable.js +1 -2
- package/dist/esm/createVariable.js.map +2 -2
- package/dist/esm/helpers/ThemeManager.js +7 -14
- package/dist/esm/helpers/ThemeManager.js.map +2 -2
- package/dist/esm/helpers/cache.js +18 -0
- package/dist/esm/helpers/cache.js.map +7 -0
- package/dist/esm/helpers/createMediaStyle.js +14 -8
- package/dist/esm/helpers/createMediaStyle.js.map +2 -2
- package/dist/esm/helpers/extendStaticConfig.js +0 -1
- package/dist/esm/helpers/extendStaticConfig.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +221 -94
- package/dist/esm/helpers/getSplitStyles.js.map +3 -3
- package/dist/esm/helpers/getStylesAtomic.js +13 -26
- package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
- package/dist/esm/helpers/insertStyleRule.js +14 -6
- package/dist/esm/helpers/insertStyleRule.js.map +2 -2
- package/dist/esm/helpers/matchMedia.js.map +2 -2
- package/dist/esm/helpers/mergeTransform.js.map +1 -1
- package/dist/esm/helpers/normalizeValueWithProperty.js +30 -1
- package/dist/esm/helpers/normalizeValueWithProperty.js.map +2 -2
- package/dist/esm/helpers/useShallowSetState.js.map +2 -2
- package/dist/esm/hooks/getThemeUnwrapped.js +1 -3
- package/dist/esm/hooks/getThemeUnwrapped.js.map +2 -2
- package/dist/esm/hooks/useElementLayout.js +66 -0
- package/dist/esm/hooks/useElementLayout.js.map +7 -0
- package/dist/esm/hooks/useIsTouchDevice.js +3 -11
- package/dist/esm/hooks/useIsTouchDevice.js.map +2 -2
- package/dist/esm/hooks/useMedia.js +74 -83
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/dist/esm/hooks/useMedia.test.js +1 -0
- package/dist/esm/{helpers/validate.js.map → hooks/useMedia.test.js.map} +0 -0
- package/dist/esm/hooks/usePressablePressResponder.js +346 -0
- package/dist/esm/hooks/usePressablePressResponder.js.map +7 -0
- package/dist/esm/hooks/useSafeRef.js +13 -15
- package/dist/esm/hooks/useSafeRef.js.map +2 -2
- package/dist/esm/hooks/useTheme.js +3 -4
- package/dist/esm/hooks/useTheme.js.map +2 -2
- package/dist/esm/index.js +1 -14
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/static.js +0 -14
- package/dist/esm/static.js.map +2 -2
- package/dist/esm/styled.js +4 -22
- package/dist/esm/styled.js.map +2 -2
- package/dist/esm/views/AbsoluteFill.js +17 -0
- package/dist/esm/views/AbsoluteFill.js.map +7 -0
- package/dist/esm/views/AbsoluteFill.native.js +21 -0
- package/dist/esm/views/AbsoluteFill.native.js.map +7 -0
- package/dist/esm/views/FontLanguage.native.js.map +2 -2
- package/dist/esm/views/Stack.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.js +5 -4
- package/dist/esm/views/TamaguiProvider.js.map +2 -2
- package/dist/esm/views/Text.js.map +1 -1
- package/dist/esm/views/ThemeReset.js +10 -10
- package/dist/esm/views/ThemeReset.js.map +2 -2
- package/package.json +14 -14
- package/src/Tamagui.ts +7 -3
- package/src/config.ts +2 -3
- package/src/constants/constants.ts +10 -6
- package/src/contexts/TextAncestorContext.tsx +1 -8
- package/src/createComponent.tsx +248 -418
- package/src/createTamagui.ts +16 -19
- package/src/createVariable.ts +1 -3
- package/src/helpers/ThemeManager.tsx +7 -15
- package/src/helpers/cache.ts +18 -0
- package/src/helpers/createMediaStyle.ts +16 -9
- package/src/helpers/extendStaticConfig.ts +0 -1
- package/src/helpers/getSplitStyles.tsx +257 -151
- package/src/helpers/getStylesAtomic.ts +14 -34
- package/src/helpers/insertStyleRule.tsx +16 -8
- package/src/helpers/matchMedia.ts +1 -0
- package/src/helpers/mergeTransform.ts +1 -1
- package/src/helpers/normalizeValueWithProperty.ts +30 -0
- package/src/helpers/useShallowSetState.tsx +0 -1
- package/src/hooks/getThemeUnwrapped.tsx +1 -2
- package/src/hooks/useElementLayout.tsx +90 -0
- package/src/hooks/useIsTouchDevice.tsx +3 -17
- package/src/hooks/useMedia.tsx +80 -87
- package/src/hooks/useSafeRef.ts +17 -18
- package/src/hooks/useTheme.tsx +4 -4
- package/src/index.ts +1 -11
- package/src/static.ts +0 -10
- package/src/styled.tsx +15 -33
- package/src/types.tsx +58 -55
- package/src/views/FontLanguage.native.tsx +1 -0
- package/src/views/Stack.tsx +1 -1
- package/src/views/TamaguiProvider.tsx +5 -5
- package/src/views/Text.tsx +1 -1
- package/src/views/ThemeReset.tsx +11 -11
- package/types/Tamagui.d.ts +6 -4
- package/types/constants/constants.d.ts +14 -3
- package/types/contexts/TextAncestorContext.d.ts +1 -3
- package/types/createComponent.d.ts +0 -15
- package/types/helpers/ThemeManager.d.ts +2 -3
- package/types/helpers/cache.d.ts +12 -0
- package/types/helpers/calc.d.ts +0 -16
- package/types/helpers/createMediaStyle.d.ts +1 -1
- package/types/helpers/getSplitStyles.d.ts +6 -10
- package/types/helpers/getStylesAtomic.d.ts +1 -5
- package/types/helpers/insertStyleRule.d.ts +2 -2
- package/types/helpers/mergeTransform.d.ts +1 -1
- package/types/helpers/normalizeValueWithProperty.d.ts +1 -0
- package/types/hooks/useElementLayout.d.ts +27 -0
- package/types/hooks/useMedia.d.ts +3 -1
- package/types/hooks/useMedia.test.d.ts +1 -0
- package/types/hooks/usePressablePressResponder.d.ts +84 -0
- package/types/index.d.ts +1 -11
- package/types/static.d.ts +0 -1
- package/types/types.d.ts +42 -44
- package/types/views/AbsoluteFill.d.ts +5 -0
- package/types/views/AbsoluteFill.native.d.ts +3 -0
- package/types/views/Stack.d.ts +1 -1
- package/types/views/Text.d.ts +1 -1
- package/dist/cjs/constants/platform.js +0 -74
- package/dist/cjs/constants/platform.js.map +0 -7
- package/dist/cjs/constants/platform.native.js +0 -62
- package/dist/cjs/constants/platform.native.js.map +0 -7
- package/dist/cjs/helpers/createShallowUpdate.js.map +0 -7
- package/dist/cjs/helpers/validate.js +0 -2
- package/dist/cjs/hooks/useDidFinishSSR.js +0 -60
- package/dist/cjs/hooks/useDidFinishSSR.js.map +0 -7
- package/dist/cjs/hooks/useIsSSR.js.map +0 -7
- package/dist/esm/constants/platform.js +0 -39
- package/dist/esm/constants/platform.js.map +0 -7
- package/dist/esm/constants/platform.native.js +0 -28
- package/dist/esm/constants/platform.native.js.map +0 -7
- package/dist/esm/helpers/createShallowUpdate.js +0 -20
- package/dist/esm/helpers/createShallowUpdate.js.map +0 -7
- package/dist/esm/helpers/validate.js +0 -1
- package/dist/esm/hooks/useDidFinishSSR.js +0 -35
- package/dist/esm/hooks/useDidFinishSSR.js.map +0 -7
- package/dist/esm/hooks/useIsSSR.js +0 -22
- package/dist/esm/hooks/useIsSSR.js.map +0 -7
- package/src/helpers/assignNativePropsToWeb.tsx +0 -178
- package/src/helpers/calc.ts +0 -68
- package/src/helpers/getFont.tsx +0 -43
- package/src/helpers/getStackSize.ts +0 -22
- package/src/helpers/startTransition.ts +0 -4
- package/src/hooks/useConstant.tsx +0 -19
- package/src/hooks/useIsMounted.ts +0 -16
- package/src/hooks/usePressable.tsx +0 -9
- package/src/hooks/useUnmountEffect.ts +0 -5
|
@@ -3,7 +3,11 @@ import { stylePropsText, stylePropsTransform, validPseudoKeys, validStyles } fro
|
|
|
3
3
|
import { useInsertionEffect } from "react";
|
|
4
4
|
import { getConfig } from "../config";
|
|
5
5
|
import { isDevTools } from "../constants/isDevTools";
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
mediaState as globalMediaState,
|
|
8
|
+
mediaQueryConfig,
|
|
9
|
+
mergeMediaByImportance
|
|
10
|
+
} from "../hooks/useMedia";
|
|
7
11
|
import { createMediaStyle } from "./createMediaStyle";
|
|
8
12
|
import { getPropMappedFontFamily } from "./createPropMapper";
|
|
9
13
|
import { createProxy } from "./createProxy";
|
|
@@ -17,17 +21,21 @@ import {
|
|
|
17
21
|
updateRules
|
|
18
22
|
} from "./insertStyleRule";
|
|
19
23
|
import { mergeTransform } from "./mergeTransform";
|
|
20
|
-
import {
|
|
24
|
+
import {
|
|
25
|
+
normalizeValueWithProperty,
|
|
26
|
+
reverseMapClassNameToValue
|
|
27
|
+
} from "./normalizeValueWithProperty.js";
|
|
21
28
|
import { pseudoDescriptors } from "./pseudoDescriptors";
|
|
22
29
|
const skipProps = {
|
|
23
30
|
animation: true,
|
|
24
31
|
animateOnly: true,
|
|
25
32
|
debug: true,
|
|
26
|
-
componentName: true
|
|
33
|
+
componentName: true,
|
|
34
|
+
role: true,
|
|
35
|
+
tag: true
|
|
27
36
|
};
|
|
28
37
|
if (process.env.TAMAGUI_TARGET === "native") {
|
|
29
38
|
Object.assign(skipProps, {
|
|
30
|
-
tag: true,
|
|
31
39
|
whiteSpace: true,
|
|
32
40
|
wordWrap: true,
|
|
33
41
|
textOverflow: true,
|
|
@@ -40,15 +48,67 @@ if (process.env.TAMAGUI_TARGET === "native") {
|
|
|
40
48
|
boxShadow: true
|
|
41
49
|
});
|
|
42
50
|
}
|
|
51
|
+
const accessibilityDirectMap = {};
|
|
52
|
+
if (process.env.TAMAGUI_TARGET === "web") {
|
|
53
|
+
const items = {
|
|
54
|
+
Hidden: true,
|
|
55
|
+
ActiveDescendant: true,
|
|
56
|
+
Atomic: true,
|
|
57
|
+
AutoComplete: true,
|
|
58
|
+
Busy: true,
|
|
59
|
+
Checked: true,
|
|
60
|
+
ColumnCount: "colcount",
|
|
61
|
+
ColumnIndex: "colindex",
|
|
62
|
+
ColumnSpan: "colspan",
|
|
63
|
+
Current: true,
|
|
64
|
+
Details: true,
|
|
65
|
+
ErrorMessage: true,
|
|
66
|
+
Expanded: true,
|
|
67
|
+
HasPopup: true,
|
|
68
|
+
Invalid: true,
|
|
69
|
+
Label: true,
|
|
70
|
+
Level: true,
|
|
71
|
+
Modal: true,
|
|
72
|
+
Multiline: true,
|
|
73
|
+
MultiSelectable: true,
|
|
74
|
+
Orientation: true,
|
|
75
|
+
Owns: true,
|
|
76
|
+
Placeholder: true,
|
|
77
|
+
PosInSet: true,
|
|
78
|
+
Pressed: true,
|
|
79
|
+
RoleDescription: true,
|
|
80
|
+
RowCount: true,
|
|
81
|
+
RowIndex: true,
|
|
82
|
+
RowSpan: true,
|
|
83
|
+
Selected: true,
|
|
84
|
+
SetSize: true,
|
|
85
|
+
Sort: true,
|
|
86
|
+
ValueMax: true,
|
|
87
|
+
ValueMin: true,
|
|
88
|
+
ValueNow: true,
|
|
89
|
+
ValueText: true
|
|
90
|
+
};
|
|
91
|
+
for (const key in items) {
|
|
92
|
+
let val = items[key];
|
|
93
|
+
if (val === true) {
|
|
94
|
+
val = key.toLowerCase();
|
|
95
|
+
}
|
|
96
|
+
accessibilityDirectMap[`accessibility${key}`] = `aria-${val}`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
43
99
|
let conf;
|
|
44
100
|
const PROP_SPLIT = "-";
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
101
|
+
const accessibilityRoleToWebRole = {
|
|
102
|
+
adjustable: "slider",
|
|
103
|
+
header: "heading",
|
|
104
|
+
image: "img",
|
|
105
|
+
link: "link",
|
|
106
|
+
none: "presentation",
|
|
107
|
+
summary: "region"
|
|
49
108
|
};
|
|
50
|
-
const
|
|
51
|
-
|
|
109
|
+
const isMediaKey = (key) => Boolean(key[0] === "$" && mediaQueryConfig[key.slice(1)]);
|
|
110
|
+
const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, languageContext, elementType, debug) => {
|
|
111
|
+
var _a, _b, _c, _d, _e;
|
|
52
112
|
conf = conf || getConfig();
|
|
53
113
|
const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
|
|
54
114
|
const mediaKeys = [];
|
|
@@ -56,15 +116,12 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
56
116
|
const pseudos = {};
|
|
57
117
|
const medias = {};
|
|
58
118
|
const mediaState = state.mediaState || globalMediaState;
|
|
59
|
-
const usedKeys =
|
|
119
|
+
const usedKeys = {};
|
|
60
120
|
const propKeys = Object.keys(props);
|
|
61
|
-
const shouldDoClasses = staticConfig.acceptsClassName && (isWeb || process.env.IS_STATIC === "is_static") && !state.noClassNames
|
|
121
|
+
const shouldDoClasses = staticConfig.acceptsClassName && (isWeb || process.env.IS_STATIC === "is_static") && !state.noClassNames;
|
|
62
122
|
const len = propKeys.length;
|
|
63
123
|
const rulesToInsert = [];
|
|
64
124
|
const style = {};
|
|
65
|
-
if (state.hasTextAncestor) {
|
|
66
|
-
style.display = "inline-flex";
|
|
67
|
-
}
|
|
68
125
|
const classNames = {};
|
|
69
126
|
const transforms = {};
|
|
70
127
|
let fontFamily;
|
|
@@ -75,7 +132,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
75
132
|
if (expandedKey) {
|
|
76
133
|
keyInit = expandedKey;
|
|
77
134
|
}
|
|
78
|
-
if (usedKeys
|
|
135
|
+
if (usedKeys[keyInit])
|
|
79
136
|
continue;
|
|
80
137
|
if (skipProps[keyInit])
|
|
81
138
|
continue;
|
|
@@ -84,24 +141,97 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
84
141
|
if (keyInit === "style" || keyInit.startsWith("_style")) {
|
|
85
142
|
if (!valInit)
|
|
86
143
|
continue;
|
|
87
|
-
|
|
88
|
-
|
|
144
|
+
const styles = Array.isArray(valInit) ? valInit : [valInit];
|
|
145
|
+
const styleLen = styles.length;
|
|
146
|
+
for (let j = styleLen; j >= 0; j--) {
|
|
147
|
+
const cur = styles[j];
|
|
148
|
+
if (!cur)
|
|
89
149
|
continue;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
style[skey] = valInit[skey];
|
|
96
|
-
}
|
|
97
|
-
} else {
|
|
98
|
-
usedKeys.add(key);
|
|
99
|
-
style[key] = valInit;
|
|
150
|
+
for (const key in cur) {
|
|
151
|
+
if (usedKeys[key])
|
|
152
|
+
continue;
|
|
153
|
+
usedKeys[key] = 1;
|
|
154
|
+
style[key] = cur[key];
|
|
100
155
|
}
|
|
101
156
|
}
|
|
102
157
|
continue;
|
|
103
158
|
}
|
|
104
159
|
if (process.env.TAMAGUI_TARGET === "web") {
|
|
160
|
+
if (keyInit === "disabled" && valInit === true) {
|
|
161
|
+
usedKeys[keyInit] = 1;
|
|
162
|
+
viewProps["aria-disabled"] = true;
|
|
163
|
+
if (elementType === "button" || elementType === "form" || elementType === "input" || elementType === "select" || elementType === "textarea") {
|
|
164
|
+
viewProps.disabled = true;
|
|
165
|
+
}
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
if (accessibilityDirectMap[keyInit]) {
|
|
169
|
+
viewProps[accessibilityDirectMap[keyInit]] = valInit;
|
|
170
|
+
usedKeys[keyInit] = 1;
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
let didUseKeyInit = true;
|
|
174
|
+
switch (keyInit) {
|
|
175
|
+
case "nativeID": {
|
|
176
|
+
viewProps.id = valInit;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
case "accessibilityRole": {
|
|
180
|
+
if (valInit === "none") {
|
|
181
|
+
viewProps.role = "presentation";
|
|
182
|
+
} else {
|
|
183
|
+
viewProps.role = accessibilityRoleToWebRole[valInit] || valInit;
|
|
184
|
+
}
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
case "accessibilityControls": {
|
|
188
|
+
viewProps["aria-controls"] = processIDRefList(valInit);
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
case "accessibilityDescribedBy": {
|
|
192
|
+
viewProps["aria-describedby"] = processIDRefList(valInit);
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
case "accessibilityFlowTo": {
|
|
196
|
+
viewProps["aria-flowto"] = processIDRefList(valInit);
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
case "accessibilityLabelledBy": {
|
|
200
|
+
viewProps["aria-labelledby"] = processIDRefList(valInit);
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
case "accessibilityKeyShortcuts": {
|
|
204
|
+
if (Array.isArray(valInit)) {
|
|
205
|
+
viewProps["aria-keyshortcuts"] = valInit.join(" ");
|
|
206
|
+
}
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
case "accessibilityLiveRegion": {
|
|
210
|
+
viewProps["aria-live"] = valInit === "none" ? "off" : valInit;
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
case "accessibilityReadOnly": {
|
|
214
|
+
viewProps["aria-readonly"] = valInit;
|
|
215
|
+
if (elementType === "input" || elementType === "select" || elementType === "textarea") {
|
|
216
|
+
viewProps.readOnly = true;
|
|
217
|
+
}
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
case "accessibilityRequired": {
|
|
221
|
+
viewProps["aria-required"] = valInit;
|
|
222
|
+
if (elementType === "input" || elementType === "select" || elementType === "textarea") {
|
|
223
|
+
viewProps.required = true;
|
|
224
|
+
}
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
default: {
|
|
228
|
+
didUseKeyInit = false;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (didUseKeyInit) {
|
|
232
|
+
usedKeys[keyInit] = 1;
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
105
235
|
if (keyInit === "className") {
|
|
106
236
|
let nonTamaguis = "";
|
|
107
237
|
if (!valInit)
|
|
@@ -111,7 +241,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
111
241
|
const [shorthand, mediaOrPseudo] = cn.slice(1).split("-");
|
|
112
242
|
const isMedia2 = mediaOrPseudo[0] === "_";
|
|
113
243
|
const isPseudo2 = mediaOrPseudo[0] === "0";
|
|
114
|
-
const
|
|
244
|
+
const isMediaOrPseudo = isMedia2 || isPseudo2;
|
|
115
245
|
let fullKey = conf.shorthands[shorthand];
|
|
116
246
|
if (isMedia2) {
|
|
117
247
|
let mediaShortKey = mediaOrPseudo.slice(1);
|
|
@@ -121,24 +251,24 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
121
251
|
const pseudoShortKey = mediaOrPseudo.slice(1);
|
|
122
252
|
fullKey += `${PROP_SPLIT}${pseudoShortKey}`;
|
|
123
253
|
}
|
|
124
|
-
usedKeys
|
|
125
|
-
mergeClassName(transforms, classNames, fullKey, cn,
|
|
254
|
+
usedKeys[fullKey] = 1;
|
|
255
|
+
mergeClassName(transforms, classNames, fullKey, cn, isMediaOrPseudo);
|
|
126
256
|
} else {
|
|
127
257
|
nonTamaguis += " " + cn;
|
|
128
258
|
}
|
|
129
259
|
}
|
|
130
260
|
if (nonTamaguis) {
|
|
131
|
-
usedKeys
|
|
261
|
+
usedKeys[keyInit] = 1;
|
|
132
262
|
mergeClassName(transforms, classNames, keyInit, nonTamaguis);
|
|
133
263
|
}
|
|
134
264
|
continue;
|
|
135
265
|
}
|
|
136
266
|
if (valInit && valInit[0] === "_") {
|
|
137
267
|
const isValidClassName = validStyles[keyInit];
|
|
138
|
-
const
|
|
139
|
-
if (isValidClassName ||
|
|
140
|
-
usedKeys
|
|
141
|
-
mergeClassName(transforms, classNames, keyInit, valInit,
|
|
268
|
+
const isMediaOrPseudo = !isValidClassName && keyInit.includes(PROP_SPLIT) && validStyles[keyInit.split(PROP_SPLIT)[0]];
|
|
269
|
+
if (isValidClassName || isMediaOrPseudo) {
|
|
270
|
+
usedKeys[keyInit] = 1;
|
|
271
|
+
mergeClassName(transforms, classNames, keyInit, valInit, isMediaOrPseudo);
|
|
142
272
|
continue;
|
|
143
273
|
}
|
|
144
274
|
}
|
|
@@ -148,11 +278,10 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
148
278
|
viewProps[keyInit] = valInit;
|
|
149
279
|
}
|
|
150
280
|
}
|
|
151
|
-
let isMedia = keyInit
|
|
281
|
+
let isMedia = isMediaKey(keyInit);
|
|
152
282
|
let isPseudo = validPseudoKeys[keyInit];
|
|
153
|
-
let isMediaOrPseudo = isMedia || isPseudo;
|
|
154
283
|
if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
|
|
155
|
-
usedKeys
|
|
284
|
+
usedKeys[keyInit] = 1;
|
|
156
285
|
viewProps[keyInit] = valInit;
|
|
157
286
|
continue;
|
|
158
287
|
}
|
|
@@ -173,25 +302,25 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
173
302
|
fontFamily = getPropMappedFontFamily(expanded);
|
|
174
303
|
}
|
|
175
304
|
if (process.env.NODE_ENV === "development" && debug === "verbose") {
|
|
176
|
-
|
|
177
|
-
|
|
305
|
+
if (isClient) {
|
|
306
|
+
console.log("expanded", expanded);
|
|
307
|
+
console.log("usedKeys", usedKeys);
|
|
308
|
+
}
|
|
178
309
|
console.groupEnd();
|
|
179
310
|
}
|
|
180
|
-
if (!expanded)
|
|
311
|
+
if (!expanded)
|
|
181
312
|
continue;
|
|
182
|
-
}
|
|
183
313
|
for (const [key, val] of expanded) {
|
|
184
314
|
if (val === void 0)
|
|
185
315
|
continue;
|
|
186
|
-
isMedia = key
|
|
316
|
+
isMedia = isMediaKey(key);
|
|
187
317
|
isPseudo = validPseudoKeys[key];
|
|
188
|
-
isMediaOrPseudo = isMedia || isPseudo;
|
|
189
|
-
if (!isMediaOrPseudo) {
|
|
190
|
-
|
|
191
|
-
continue;
|
|
318
|
+
const isMediaOrPseudo = isMedia || isPseudo;
|
|
319
|
+
if (!isMediaOrPseudo && usedKeys[key]) {
|
|
320
|
+
continue;
|
|
192
321
|
}
|
|
193
|
-
if (staticConfig.deoptProps
|
|
194
|
-
usedKeys
|
|
322
|
+
if (((_b = staticConfig.deoptProps) == null ? void 0 : _b.has(key)) || ((_c = staticConfig.inlineProps) == null ? void 0 : _c.has(key)) || ((_d = staticConfig.inlineWhenUnflattened) == null ? void 0 : _d.has(key))) {
|
|
323
|
+
usedKeys[key] = 1;
|
|
195
324
|
viewProps[key] = props[key] ?? val;
|
|
196
325
|
}
|
|
197
326
|
if (isPseudo) {
|
|
@@ -200,7 +329,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
200
329
|
if (key === "enterStyle" && state.mounted) {
|
|
201
330
|
continue;
|
|
202
331
|
}
|
|
203
|
-
pseudos[key]
|
|
332
|
+
pseudos[key] ??= {};
|
|
204
333
|
const pseudoStyleObject = getSubStyle(
|
|
205
334
|
key,
|
|
206
335
|
val,
|
|
@@ -216,17 +345,21 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
216
345
|
...pseudoStyleObject,
|
|
217
346
|
...pseudos[key]
|
|
218
347
|
};
|
|
219
|
-
if (
|
|
348
|
+
if (key === "enterStyle" || key === "exitStyle") {
|
|
349
|
+
continue;
|
|
350
|
+
}
|
|
351
|
+
if (shouldDoClasses) {
|
|
220
352
|
const pseudoStyles = getAtomicStyle(pseudoStyleObject, pseudoDescriptors[key]);
|
|
221
353
|
for (const style2 of pseudoStyles) {
|
|
222
|
-
const postfix = ((
|
|
354
|
+
const postfix = ((_e = pseudoDescriptors[key]) == null ? void 0 : _e.name) || key;
|
|
223
355
|
const fullKey = `${style2.property}${PROP_SPLIT}${postfix}`;
|
|
224
|
-
if (!usedKeys
|
|
225
|
-
usedKeys
|
|
356
|
+
if (!usedKeys[fullKey]) {
|
|
357
|
+
usedKeys[fullKey] = 1;
|
|
226
358
|
addStyleToInsertRules(rulesToInsert, style2);
|
|
227
359
|
mergeClassName(transforms, classNames, fullKey, style2.identifier, isMediaOrPseudo);
|
|
228
360
|
}
|
|
229
361
|
}
|
|
362
|
+
} else {
|
|
230
363
|
}
|
|
231
364
|
continue;
|
|
232
365
|
}
|
|
@@ -234,18 +367,6 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
234
367
|
const mediaKey = key;
|
|
235
368
|
const mediaKeyShort = mediaKey.slice(1);
|
|
236
369
|
mediaKeys.push(mediaKeyShort);
|
|
237
|
-
if (!mediaQueryConfig[mediaKeyShort]) {
|
|
238
|
-
if (process.env.NODE_ENV === "development" && debug) {
|
|
239
|
-
console.warn(
|
|
240
|
-
`Warning: using a $ prefixed prop that doesn't match to a media query, may be an error`,
|
|
241
|
-
key
|
|
242
|
-
);
|
|
243
|
-
}
|
|
244
|
-
if (!usedKeys.has(key)) {
|
|
245
|
-
viewProps[key] = val;
|
|
246
|
-
}
|
|
247
|
-
continue;
|
|
248
|
-
}
|
|
249
370
|
const mediaStyle = getSubStyle(
|
|
250
371
|
key,
|
|
251
372
|
val,
|
|
@@ -264,34 +385,24 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
264
385
|
for (const style2 of mediaStyles) {
|
|
265
386
|
const out = createMediaStyle(style2, mediaKeyShort, mediaQueryConfig);
|
|
266
387
|
const fullKey = `${style2.property}${PROP_SPLIT}${mediaKeyShort}`;
|
|
267
|
-
if (!usedKeys
|
|
268
|
-
usedKeys
|
|
388
|
+
if (!usedKeys[fullKey]) {
|
|
389
|
+
usedKeys[fullKey] = 1;
|
|
269
390
|
addStyleToInsertRules(rulesToInsert, out);
|
|
270
391
|
mergeClassName(transforms, classNames, fullKey, out.identifier, true);
|
|
271
392
|
}
|
|
272
393
|
}
|
|
273
|
-
} else {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
if (shouldDoClasses) {
|
|
279
|
-
Object.assign(medias, mediaStyle);
|
|
280
|
-
} else {
|
|
281
|
-
for (const key2 in mediaStyle) {
|
|
282
|
-
usedKeys.add(key2);
|
|
283
|
-
style[key2] = mediaStyle[key2];
|
|
284
|
-
if (key2 === "fontFamily") {
|
|
285
|
-
fontFamily = mediaStyle[key2];
|
|
286
|
-
}
|
|
287
|
-
}
|
|
394
|
+
} else if (mediaState[mediaKeyShort]) {
|
|
395
|
+
for (const key2 in mediaStyle) {
|
|
396
|
+
const didMerge = mergeMediaByImportance(style, key2, mediaStyle[key2], usedKeys);
|
|
397
|
+
if (didMerge && key2 === "fontFamily") {
|
|
398
|
+
fontFamily = mediaStyle[key2];
|
|
288
399
|
}
|
|
289
400
|
}
|
|
290
401
|
}
|
|
291
402
|
continue;
|
|
292
403
|
}
|
|
293
404
|
if (!isWeb && key === "pointerEvents") {
|
|
294
|
-
usedKeys
|
|
405
|
+
usedKeys[key] = 1;
|
|
295
406
|
viewProps[key] = val;
|
|
296
407
|
continue;
|
|
297
408
|
}
|
|
@@ -299,7 +410,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
299
410
|
fontFamily = valInit[0] === "$" ? valInit : val;
|
|
300
411
|
}
|
|
301
412
|
if (validStyleProps[key]) {
|
|
302
|
-
usedKeys
|
|
413
|
+
usedKeys[key] = 1;
|
|
303
414
|
if (val && val[0] === "_") {
|
|
304
415
|
classNames[key] = val;
|
|
305
416
|
} else if (key in stylePropsTransform) {
|
|
@@ -312,7 +423,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
312
423
|
if (!staticConfig.variants || !(key in staticConfig.variants)) {
|
|
313
424
|
if (!skipProps[key]) {
|
|
314
425
|
viewProps[key] = val;
|
|
315
|
-
usedKeys
|
|
426
|
+
usedKeys[key] = 1;
|
|
316
427
|
}
|
|
317
428
|
}
|
|
318
429
|
}
|
|
@@ -321,10 +432,26 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
321
432
|
if (isWeb) {
|
|
322
433
|
styleToCSS(style);
|
|
323
434
|
}
|
|
324
|
-
if (
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
435
|
+
if (parentSplitStyles) {
|
|
436
|
+
if (process.env.TAMAGUI_TARGET === "web") {
|
|
437
|
+
for (const key in parentSplitStyles.classNames) {
|
|
438
|
+
if (key in classNames)
|
|
439
|
+
continue;
|
|
440
|
+
if (key in style)
|
|
441
|
+
continue;
|
|
442
|
+
const val = parentSplitStyles.classNames[key];
|
|
443
|
+
if (!shouldDoClasses) {
|
|
444
|
+
style[key] = reverseMapClassNameToValue(key, val);
|
|
445
|
+
} else {
|
|
446
|
+
classNames[key] = val;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
if (!shouldDoClasses) {
|
|
451
|
+
for (const key in parentSplitStyles.style) {
|
|
452
|
+
if (key in style)
|
|
453
|
+
continue;
|
|
454
|
+
style[key] = parentSplitStyles.style[key];
|
|
328
455
|
}
|
|
329
456
|
}
|
|
330
457
|
}
|
|
@@ -337,8 +464,6 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
337
464
|
mergeClassName(transforms, classNames, key, atomicStyle.identifier);
|
|
338
465
|
}
|
|
339
466
|
}
|
|
340
|
-
}
|
|
341
|
-
if (process.env.TAMAGUI_TARGET === "web") {
|
|
342
467
|
if (transforms) {
|
|
343
468
|
for (const namespace in transforms) {
|
|
344
469
|
if (!transforms[namespace]) {
|
|
@@ -489,12 +614,14 @@ function addStyleToInsertRules(rulesToInsert, styleObject) {
|
|
|
489
614
|
rulesToInsert.push(styleObject);
|
|
490
615
|
}
|
|
491
616
|
}
|
|
617
|
+
function processIDRefList(idRefList) {
|
|
618
|
+
return Array.isArray(idRefList) ? idRefList.join(" ") : idRefList;
|
|
619
|
+
}
|
|
492
620
|
export {
|
|
493
621
|
PROP_SPLIT,
|
|
494
622
|
getSplitStyles,
|
|
495
623
|
getSubStyle,
|
|
496
624
|
insertSplitStyles,
|
|
497
|
-
pseudoCNInverse,
|
|
498
625
|
useSplitStyles
|
|
499
626
|
};
|
|
500
627
|
//# sourceMappingURL=getSplitStyles.js.map
|