@tamagui/core 1.0.1-beta.192 → 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 +196 -284
- 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 +214 -94
- 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/getVariantExtras.js +2 -1
- package/dist/cjs/helpers/getVariantExtras.js.map +2 -2
- 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/proxyThemeVariables.js +2 -7
- package/dist/cjs/helpers/proxyThemeVariables.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 +79 -85
- 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 +5 -5
- 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 +195 -286
- 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 +223 -95
- 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/getVariantExtras.js +2 -1
- package/dist/esm/helpers/getVariantExtras.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/proxyThemeVariables.js +2 -7
- package/dist/esm/helpers/proxyThemeVariables.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 +76 -84
- 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 +5 -5
- 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 +250 -412
- 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/createProxy.ts +16 -0
- package/src/helpers/extendStaticConfig.ts +0 -1
- package/src/helpers/getSplitStyles.tsx +259 -152
- package/src/helpers/getStylesAtomic.ts +14 -34
- package/src/helpers/getVariantExtras.tsx +2 -1
- 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/proxyThemeVariables.tsx +3 -8
- 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 +82 -88
- package/src/hooks/useSafeRef.ts +17 -18
- package/src/hooks/useTheme.tsx +6 -5
- 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/createProxy.d.ts +2 -0
- 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,9 +3,14 @@ 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";
|
|
13
|
+
import { createProxy } from "./createProxy";
|
|
9
14
|
import { fixStyles } from "./expandStyles";
|
|
10
15
|
import { getAtomicStyle, getStylesAtomic, styleToCSS } from "./getStylesAtomic";
|
|
11
16
|
import {
|
|
@@ -16,17 +21,21 @@ import {
|
|
|
16
21
|
updateRules
|
|
17
22
|
} from "./insertStyleRule";
|
|
18
23
|
import { mergeTransform } from "./mergeTransform";
|
|
19
|
-
import {
|
|
24
|
+
import {
|
|
25
|
+
normalizeValueWithProperty,
|
|
26
|
+
reverseMapClassNameToValue
|
|
27
|
+
} from "./normalizeValueWithProperty.js";
|
|
20
28
|
import { pseudoDescriptors } from "./pseudoDescriptors";
|
|
21
29
|
const skipProps = {
|
|
22
30
|
animation: true,
|
|
23
31
|
animateOnly: true,
|
|
24
32
|
debug: true,
|
|
25
|
-
componentName: true
|
|
33
|
+
componentName: true,
|
|
34
|
+
role: true,
|
|
35
|
+
tag: true
|
|
26
36
|
};
|
|
27
37
|
if (process.env.TAMAGUI_TARGET === "native") {
|
|
28
38
|
Object.assign(skipProps, {
|
|
29
|
-
tag: true,
|
|
30
39
|
whiteSpace: true,
|
|
31
40
|
wordWrap: true,
|
|
32
41
|
textOverflow: true,
|
|
@@ -39,15 +48,67 @@ if (process.env.TAMAGUI_TARGET === "native") {
|
|
|
39
48
|
boxShadow: true
|
|
40
49
|
});
|
|
41
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
|
+
}
|
|
42
99
|
let conf;
|
|
43
100
|
const PROP_SPLIT = "-";
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
101
|
+
const accessibilityRoleToWebRole = {
|
|
102
|
+
adjustable: "slider",
|
|
103
|
+
header: "heading",
|
|
104
|
+
image: "img",
|
|
105
|
+
link: "link",
|
|
106
|
+
none: "presentation",
|
|
107
|
+
summary: "region"
|
|
48
108
|
};
|
|
49
|
-
const
|
|
50
|
-
|
|
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;
|
|
51
112
|
conf = conf || getConfig();
|
|
52
113
|
const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
|
|
53
114
|
const mediaKeys = [];
|
|
@@ -55,15 +116,12 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
55
116
|
const pseudos = {};
|
|
56
117
|
const medias = {};
|
|
57
118
|
const mediaState = state.mediaState || globalMediaState;
|
|
58
|
-
const usedKeys =
|
|
119
|
+
const usedKeys = {};
|
|
59
120
|
const propKeys = Object.keys(props);
|
|
60
|
-
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;
|
|
61
122
|
const len = propKeys.length;
|
|
62
123
|
const rulesToInsert = [];
|
|
63
124
|
const style = {};
|
|
64
|
-
if (state.hasTextAncestor) {
|
|
65
|
-
style.display = "inline-flex";
|
|
66
|
-
}
|
|
67
125
|
const classNames = {};
|
|
68
126
|
const transforms = {};
|
|
69
127
|
let fontFamily;
|
|
@@ -74,7 +132,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
74
132
|
if (expandedKey) {
|
|
75
133
|
keyInit = expandedKey;
|
|
76
134
|
}
|
|
77
|
-
if (usedKeys
|
|
135
|
+
if (usedKeys[keyInit])
|
|
78
136
|
continue;
|
|
79
137
|
if (skipProps[keyInit])
|
|
80
138
|
continue;
|
|
@@ -83,24 +141,97 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
83
141
|
if (keyInit === "style" || keyInit.startsWith("_style")) {
|
|
84
142
|
if (!valInit)
|
|
85
143
|
continue;
|
|
86
|
-
|
|
87
|
-
|
|
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)
|
|
88
149
|
continue;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
style[skey] = valInit[skey];
|
|
95
|
-
}
|
|
96
|
-
} else {
|
|
97
|
-
usedKeys.add(key);
|
|
98
|
-
style[key] = valInit;
|
|
150
|
+
for (const key in cur) {
|
|
151
|
+
if (usedKeys[key])
|
|
152
|
+
continue;
|
|
153
|
+
usedKeys[key] = 1;
|
|
154
|
+
style[key] = cur[key];
|
|
99
155
|
}
|
|
100
156
|
}
|
|
101
157
|
continue;
|
|
102
158
|
}
|
|
103
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
|
+
}
|
|
104
235
|
if (keyInit === "className") {
|
|
105
236
|
let nonTamaguis = "";
|
|
106
237
|
if (!valInit)
|
|
@@ -110,7 +241,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
110
241
|
const [shorthand, mediaOrPseudo] = cn.slice(1).split("-");
|
|
111
242
|
const isMedia2 = mediaOrPseudo[0] === "_";
|
|
112
243
|
const isPseudo2 = mediaOrPseudo[0] === "0";
|
|
113
|
-
const
|
|
244
|
+
const isMediaOrPseudo = isMedia2 || isPseudo2;
|
|
114
245
|
let fullKey = conf.shorthands[shorthand];
|
|
115
246
|
if (isMedia2) {
|
|
116
247
|
let mediaShortKey = mediaOrPseudo.slice(1);
|
|
@@ -120,24 +251,24 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
120
251
|
const pseudoShortKey = mediaOrPseudo.slice(1);
|
|
121
252
|
fullKey += `${PROP_SPLIT}${pseudoShortKey}`;
|
|
122
253
|
}
|
|
123
|
-
usedKeys
|
|
124
|
-
mergeClassName(transforms, classNames, fullKey, cn,
|
|
254
|
+
usedKeys[fullKey] = 1;
|
|
255
|
+
mergeClassName(transforms, classNames, fullKey, cn, isMediaOrPseudo);
|
|
125
256
|
} else {
|
|
126
257
|
nonTamaguis += " " + cn;
|
|
127
258
|
}
|
|
128
259
|
}
|
|
129
260
|
if (nonTamaguis) {
|
|
130
|
-
usedKeys
|
|
261
|
+
usedKeys[keyInit] = 1;
|
|
131
262
|
mergeClassName(transforms, classNames, keyInit, nonTamaguis);
|
|
132
263
|
}
|
|
133
264
|
continue;
|
|
134
265
|
}
|
|
135
266
|
if (valInit && valInit[0] === "_") {
|
|
136
267
|
const isValidClassName = validStyles[keyInit];
|
|
137
|
-
const
|
|
138
|
-
if (isValidClassName ||
|
|
139
|
-
usedKeys
|
|
140
|
-
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);
|
|
141
272
|
continue;
|
|
142
273
|
}
|
|
143
274
|
}
|
|
@@ -147,11 +278,10 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
147
278
|
viewProps[keyInit] = valInit;
|
|
148
279
|
}
|
|
149
280
|
}
|
|
150
|
-
let isMedia = keyInit
|
|
281
|
+
let isMedia = isMediaKey(keyInit);
|
|
151
282
|
let isPseudo = validPseudoKeys[keyInit];
|
|
152
|
-
let isMediaOrPseudo = isMedia || isPseudo;
|
|
153
283
|
if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
|
|
154
|
-
usedKeys
|
|
284
|
+
usedKeys[keyInit] = 1;
|
|
155
285
|
viewProps[keyInit] = valInit;
|
|
156
286
|
continue;
|
|
157
287
|
}
|
|
@@ -172,25 +302,25 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
172
302
|
fontFamily = getPropMappedFontFamily(expanded);
|
|
173
303
|
}
|
|
174
304
|
if (process.env.NODE_ENV === "development" && debug === "verbose") {
|
|
175
|
-
|
|
176
|
-
|
|
305
|
+
if (isClient) {
|
|
306
|
+
console.log("expanded", expanded);
|
|
307
|
+
console.log("usedKeys", usedKeys);
|
|
308
|
+
}
|
|
177
309
|
console.groupEnd();
|
|
178
310
|
}
|
|
179
|
-
if (!expanded)
|
|
311
|
+
if (!expanded)
|
|
180
312
|
continue;
|
|
181
|
-
}
|
|
182
313
|
for (const [key, val] of expanded) {
|
|
183
314
|
if (val === void 0)
|
|
184
315
|
continue;
|
|
185
|
-
isMedia = key
|
|
316
|
+
isMedia = isMediaKey(key);
|
|
186
317
|
isPseudo = validPseudoKeys[key];
|
|
187
|
-
isMediaOrPseudo = isMedia || isPseudo;
|
|
188
|
-
if (!isMediaOrPseudo) {
|
|
189
|
-
|
|
190
|
-
continue;
|
|
318
|
+
const isMediaOrPseudo = isMedia || isPseudo;
|
|
319
|
+
if (!isMediaOrPseudo && usedKeys[key]) {
|
|
320
|
+
continue;
|
|
191
321
|
}
|
|
192
|
-
if (staticConfig.deoptProps
|
|
193
|
-
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;
|
|
194
324
|
viewProps[key] = props[key] ?? val;
|
|
195
325
|
}
|
|
196
326
|
if (isPseudo) {
|
|
@@ -199,7 +329,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
199
329
|
if (key === "enterStyle" && state.mounted) {
|
|
200
330
|
continue;
|
|
201
331
|
}
|
|
202
|
-
pseudos[key]
|
|
332
|
+
pseudos[key] ??= {};
|
|
203
333
|
const pseudoStyleObject = getSubStyle(
|
|
204
334
|
key,
|
|
205
335
|
val,
|
|
@@ -215,17 +345,21 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
215
345
|
...pseudoStyleObject,
|
|
216
346
|
...pseudos[key]
|
|
217
347
|
};
|
|
218
|
-
if (
|
|
348
|
+
if (key === "enterStyle" || key === "exitStyle") {
|
|
349
|
+
continue;
|
|
350
|
+
}
|
|
351
|
+
if (shouldDoClasses) {
|
|
219
352
|
const pseudoStyles = getAtomicStyle(pseudoStyleObject, pseudoDescriptors[key]);
|
|
220
353
|
for (const style2 of pseudoStyles) {
|
|
221
|
-
const postfix = ((
|
|
354
|
+
const postfix = ((_e = pseudoDescriptors[key]) == null ? void 0 : _e.name) || key;
|
|
222
355
|
const fullKey = `${style2.property}${PROP_SPLIT}${postfix}`;
|
|
223
|
-
if (!usedKeys
|
|
224
|
-
usedKeys
|
|
356
|
+
if (!usedKeys[fullKey]) {
|
|
357
|
+
usedKeys[fullKey] = 1;
|
|
225
358
|
addStyleToInsertRules(rulesToInsert, style2);
|
|
226
359
|
mergeClassName(transforms, classNames, fullKey, style2.identifier, isMediaOrPseudo);
|
|
227
360
|
}
|
|
228
361
|
}
|
|
362
|
+
} else {
|
|
229
363
|
}
|
|
230
364
|
continue;
|
|
231
365
|
}
|
|
@@ -233,18 +367,6 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
233
367
|
const mediaKey = key;
|
|
234
368
|
const mediaKeyShort = mediaKey.slice(1);
|
|
235
369
|
mediaKeys.push(mediaKeyShort);
|
|
236
|
-
if (!mediaQueryConfig[mediaKeyShort]) {
|
|
237
|
-
if (process.env.NODE_ENV === "development" && debug) {
|
|
238
|
-
console.warn(
|
|
239
|
-
`Warning: using a $ prefixed prop that doesn't match to a media query, may be an error`,
|
|
240
|
-
key
|
|
241
|
-
);
|
|
242
|
-
}
|
|
243
|
-
if (!usedKeys.has(key)) {
|
|
244
|
-
viewProps[key] = val;
|
|
245
|
-
}
|
|
246
|
-
continue;
|
|
247
|
-
}
|
|
248
370
|
const mediaStyle = getSubStyle(
|
|
249
371
|
key,
|
|
250
372
|
val,
|
|
@@ -263,34 +385,24 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
263
385
|
for (const style2 of mediaStyles) {
|
|
264
386
|
const out = createMediaStyle(style2, mediaKeyShort, mediaQueryConfig);
|
|
265
387
|
const fullKey = `${style2.property}${PROP_SPLIT}${mediaKeyShort}`;
|
|
266
|
-
if (!usedKeys
|
|
267
|
-
usedKeys
|
|
388
|
+
if (!usedKeys[fullKey]) {
|
|
389
|
+
usedKeys[fullKey] = 1;
|
|
268
390
|
addStyleToInsertRules(rulesToInsert, out);
|
|
269
391
|
mergeClassName(transforms, classNames, fullKey, out.identifier, true);
|
|
270
392
|
}
|
|
271
393
|
}
|
|
272
|
-
} else {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
if (shouldDoClasses) {
|
|
278
|
-
Object.assign(medias, mediaStyle);
|
|
279
|
-
} else {
|
|
280
|
-
for (const key2 in mediaStyle) {
|
|
281
|
-
usedKeys.add(key2);
|
|
282
|
-
style[key2] = mediaStyle[key2];
|
|
283
|
-
if (key2 === "fontFamily") {
|
|
284
|
-
fontFamily = mediaStyle[key2];
|
|
285
|
-
}
|
|
286
|
-
}
|
|
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];
|
|
287
399
|
}
|
|
288
400
|
}
|
|
289
401
|
}
|
|
290
402
|
continue;
|
|
291
403
|
}
|
|
292
404
|
if (!isWeb && key === "pointerEvents") {
|
|
293
|
-
usedKeys
|
|
405
|
+
usedKeys[key] = 1;
|
|
294
406
|
viewProps[key] = val;
|
|
295
407
|
continue;
|
|
296
408
|
}
|
|
@@ -298,7 +410,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
298
410
|
fontFamily = valInit[0] === "$" ? valInit : val;
|
|
299
411
|
}
|
|
300
412
|
if (validStyleProps[key]) {
|
|
301
|
-
usedKeys
|
|
413
|
+
usedKeys[key] = 1;
|
|
302
414
|
if (val && val[0] === "_") {
|
|
303
415
|
classNames[key] = val;
|
|
304
416
|
} else if (key in stylePropsTransform) {
|
|
@@ -311,7 +423,7 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
311
423
|
if (!staticConfig.variants || !(key in staticConfig.variants)) {
|
|
312
424
|
if (!skipProps[key]) {
|
|
313
425
|
viewProps[key] = val;
|
|
314
|
-
usedKeys
|
|
426
|
+
usedKeys[key] = 1;
|
|
315
427
|
}
|
|
316
428
|
}
|
|
317
429
|
}
|
|
@@ -320,10 +432,26 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
320
432
|
if (isWeb) {
|
|
321
433
|
styleToCSS(style);
|
|
322
434
|
}
|
|
323
|
-
if (
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
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];
|
|
327
455
|
}
|
|
328
456
|
}
|
|
329
457
|
}
|
|
@@ -336,8 +464,6 @@ const getSplitStyles = (props, staticConfig, theme, state, defaultClassNames, la
|
|
|
336
464
|
mergeClassName(transforms, classNames, key, atomicStyle.identifier);
|
|
337
465
|
}
|
|
338
466
|
}
|
|
339
|
-
}
|
|
340
|
-
if (process.env.TAMAGUI_TARGET === "web") {
|
|
341
467
|
if (transforms) {
|
|
342
468
|
for (const namespace in transforms) {
|
|
343
469
|
if (!transforms[namespace]) {
|
|
@@ -425,7 +551,7 @@ function getSubStyleProxiedProps(defaultProps, baseProps, specificProps) {
|
|
|
425
551
|
if (propProxies.has(specificProps)) {
|
|
426
552
|
return propProxies.get(specificProps);
|
|
427
553
|
}
|
|
428
|
-
const next =
|
|
554
|
+
const next = createProxy(specificProps, {
|
|
429
555
|
has(_, key) {
|
|
430
556
|
return key in defaultProps || key in specificProps || key in baseProps;
|
|
431
557
|
},
|
|
@@ -488,12 +614,14 @@ function addStyleToInsertRules(rulesToInsert, styleObject) {
|
|
|
488
614
|
rulesToInsert.push(styleObject);
|
|
489
615
|
}
|
|
490
616
|
}
|
|
617
|
+
function processIDRefList(idRefList) {
|
|
618
|
+
return Array.isArray(idRefList) ? idRefList.join(" ") : idRefList;
|
|
619
|
+
}
|
|
491
620
|
export {
|
|
492
621
|
PROP_SPLIT,
|
|
493
622
|
getSplitStyles,
|
|
494
623
|
getSubStyle,
|
|
495
624
|
insertSplitStyles,
|
|
496
|
-
pseudoCNInverse,
|
|
497
625
|
useSplitStyles
|
|
498
626
|
};
|
|
499
627
|
//# sourceMappingURL=getSplitStyles.js.map
|