@tamagui/core 1.0.1-beta.65 → 1.0.1-beta.68
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 +0 -3
- package/dist/cjs/Tamagui.js.map +2 -2
- package/dist/cjs/ThemeManager.js +1 -1
- package/dist/cjs/ThemeManager.js.map +2 -2
- package/dist/cjs/constants/constants.js +1 -1
- package/dist/cjs/constants/constants.js.map +1 -1
- package/dist/cjs/createComponent.js +55 -35
- package/dist/cjs/createComponent.js.map +2 -2
- package/dist/cjs/createTamagui.js +13 -9
- package/dist/cjs/createTamagui.js.map +2 -2
- package/dist/cjs/helpers/createTamaguiProvider.js +12 -12
- package/dist/cjs/helpers/createTamaguiProvider.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +12 -7
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/helpers/getStylesAtomic.js +7 -7
- package/dist/cjs/helpers/getStylesAtomic.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/views/Theme.js +1 -4
- package/dist/cjs/views/Theme.js.map +2 -2
- package/dist/cjs/views/ThemeProvider.js +3 -2
- package/dist/cjs/views/ThemeProvider.js.map +2 -2
- package/dist/esm/Tamagui.js +0 -3
- package/dist/esm/Tamagui.js.map +2 -2
- package/dist/esm/ThemeManager.js +1 -1
- package/dist/esm/ThemeManager.js.map +2 -2
- package/dist/esm/constants/constants.js +1 -1
- package/dist/esm/constants/constants.js.map +1 -1
- package/dist/esm/createComponent.js +55 -35
- package/dist/esm/createComponent.js.map +2 -2
- package/dist/esm/createTamagui.js +14 -10
- package/dist/esm/createTamagui.js.map +2 -2
- package/dist/esm/helpers/createTamaguiProvider.js +7 -7
- package/dist/esm/helpers/createTamaguiProvider.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +13 -8
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/helpers/getStylesAtomic.js +6 -6
- package/dist/esm/helpers/getStylesAtomic.js.map +1 -1
- package/dist/esm/views/Theme.js +1 -4
- package/dist/esm/views/Theme.js.map +2 -2
- package/dist/esm/views/ThemeProvider.js +3 -2
- package/dist/esm/views/ThemeProvider.js.map +2 -2
- package/dist/jsx/Tamagui.js +0 -3
- package/dist/jsx/ThemeManager.js +1 -1
- package/dist/jsx/constants/constants.js +1 -1
- package/dist/jsx/createComponent.js +53 -32
- package/dist/jsx/createTamagui.js +14 -10
- package/dist/jsx/helpers/createTamaguiProvider.js +4 -7
- package/dist/jsx/helpers/getSplitStyles.js +13 -8
- package/dist/jsx/helpers/getStylesAtomic.js +6 -6
- package/dist/jsx/views/Theme.js +1 -4
- package/dist/jsx/views/ThemeProvider.js +3 -2
- package/package.json +6 -5
- package/reset.css +12 -7
- package/types/constants/constants.d.ts +1 -1
- package/types/constants/constants.d.ts.map +1 -1
- package/types/createComponent.d.ts +3 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/helpers/createTamaguiProvider.d.ts +2 -5
- package/types/helpers/createTamaguiProvider.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getStylesAtomic.d.ts +1 -1
- package/types/types.d.ts +3 -1
- package/types/types.d.ts.map +1 -1
- package/types/views/ThemeProvider.d.ts +1 -0
- package/types/views/ThemeProvider.d.ts.map +1 -1
|
@@ -36,14 +36,14 @@ import { Pressability } from "./Pressability";
|
|
|
36
36
|
import { Slot, mergeEvent } from "./views/Slot";
|
|
37
37
|
import { TextAncestorContext } from "./views/TextAncestorContext";
|
|
38
38
|
React["keep"];
|
|
39
|
-
const defaultComponentState = {
|
|
39
|
+
const defaultComponentState = Object.freeze({
|
|
40
40
|
hover: false,
|
|
41
41
|
press: false,
|
|
42
42
|
pressIn: false,
|
|
43
43
|
focus: false,
|
|
44
44
|
mounted: false,
|
|
45
45
|
animation: null
|
|
46
|
-
};
|
|
46
|
+
});
|
|
47
47
|
const mouseUps = /* @__PURE__ */ new Set();
|
|
48
48
|
if (typeof document !== "undefined") {
|
|
49
49
|
document.addEventListener("mouseup", () => {
|
|
@@ -84,18 +84,6 @@ function createComponent(configIn, ParentComponent) {
|
|
|
84
84
|
let defaultNativeStyleSheet;
|
|
85
85
|
let tamaguiDefaultProps;
|
|
86
86
|
let initialSplitStyles;
|
|
87
|
-
function addPseudoToStyles(styles, name, pseudos) {
|
|
88
|
-
const pseudoStyle = pseudos[name];
|
|
89
|
-
const shouldNestObject = isWeb && name !== "enterStyle" && name !== "exitStyle";
|
|
90
|
-
const defaultPseudoStyle = initialSplitStyles.pseudos[name];
|
|
91
|
-
if (defaultPseudoStyle) {
|
|
92
|
-
styles.push(shouldNestObject ? { [name]: defaultPseudoStyle } : defaultPseudoStyle);
|
|
93
|
-
}
|
|
94
|
-
if (pseudoStyle) {
|
|
95
|
-
styles.push(shouldNestObject ? { [name]: pseudoStyle } : pseudoStyle);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
__name(addPseudoToStyles, "addPseudoToStyles");
|
|
99
87
|
const component = forwardRef((propsIn, forwardedRef) => {
|
|
100
88
|
var _a, _b, _c, _d, _e;
|
|
101
89
|
let props;
|
|
@@ -121,10 +109,18 @@ function createComponent(configIn, ParentComponent) {
|
|
|
121
109
|
}
|
|
122
110
|
const forceUpdate = useForceUpdate();
|
|
123
111
|
const theme = useTheme(props.theme, componentName, props, forceUpdate);
|
|
124
|
-
const
|
|
125
|
-
const setStateShallow = createShallowUpdate(
|
|
112
|
+
const statesUsed = useState(defaultComponentState);
|
|
113
|
+
const setStateShallow = createShallowUpdate(statesUsed[1]);
|
|
114
|
+
let state = statesUsed[0];
|
|
115
|
+
if (propsIn.forceStyle) {
|
|
116
|
+
state = {
|
|
117
|
+
...state,
|
|
118
|
+
[propsIn.forceStyle]: true
|
|
119
|
+
};
|
|
120
|
+
}
|
|
126
121
|
const shouldAvoidClasses = !!(props.animation && avoidClasses);
|
|
127
|
-
const
|
|
122
|
+
const shouldForcePseudo = !!propsIn.forceStyle;
|
|
123
|
+
const splitStyleState = !shouldAvoidClasses && !shouldForcePseudo ? {
|
|
128
124
|
...state,
|
|
129
125
|
dynamicStylesInline: true
|
|
130
126
|
} : {
|
|
@@ -170,6 +166,7 @@ function createComponent(configIn, ParentComponent) {
|
|
|
170
166
|
onMouseLeave,
|
|
171
167
|
hrefAttrs,
|
|
172
168
|
separator,
|
|
169
|
+
forceStyle: _forceStyle,
|
|
173
170
|
onClick,
|
|
174
171
|
theme: _themeProp,
|
|
175
172
|
defaultVariants,
|
|
@@ -355,7 +352,7 @@ function createComponent(configIn, ParentComponent) {
|
|
|
355
352
|
}, [hasEnterStyle, props.animation]);
|
|
356
353
|
let styles;
|
|
357
354
|
const animationStyles = state.animation ? state.animation.style : null;
|
|
358
|
-
if (isStringElement && shouldAvoidClasses) {
|
|
355
|
+
if (isStringElement && shouldAvoidClasses && !shouldForcePseudo) {
|
|
359
356
|
styles = {
|
|
360
357
|
...defaultNativeStyle,
|
|
361
358
|
...animationStyles != null ? animationStyles : style,
|
|
@@ -368,10 +365,24 @@ function createComponent(configIn, ParentComponent) {
|
|
|
368
365
|
medias
|
|
369
366
|
];
|
|
370
367
|
if (!animationStyles) {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
state.
|
|
374
|
-
state.
|
|
368
|
+
const initPseudos = initialSplitStyles.pseudos;
|
|
369
|
+
const force = shouldForcePseudo;
|
|
370
|
+
!state.mounted && addPseudoToStyles(styles, initPseudos, pseudos, "enterStyle");
|
|
371
|
+
state.hover && addPseudoToStyles(styles, initPseudos, pseudos, "hoverStyle", force);
|
|
372
|
+
state.focus && addPseudoToStyles(styles, initPseudos, pseudos, "focusStyle", force);
|
|
373
|
+
state.press && addPseudoToStyles(styles, initPseudos, pseudos, "pressStyle", force);
|
|
374
|
+
if (props["debug"]) {
|
|
375
|
+
console.log("wtf", state, styles);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
if (shouldForcePseudo) {
|
|
379
|
+
const next = {};
|
|
380
|
+
for (const style2 of styles) {
|
|
381
|
+
if (style2) {
|
|
382
|
+
Object.assign(next, style2);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
Object.assign(splitStyles.style, next);
|
|
375
386
|
}
|
|
376
387
|
}
|
|
377
388
|
if (isWeb) {
|
|
@@ -577,7 +588,7 @@ function createComponent(configIn, ParentComponent) {
|
|
|
577
588
|
const shouldWrapWithHover = events && attachHover;
|
|
578
589
|
if (shouldWrapWithHover || shouldWrapWithComponentTheme) {
|
|
579
590
|
const themeClassName = shouldWrapWithComponentTheme ? `${theme.className}` : "";
|
|
580
|
-
const hoverClassName = shouldWrapWithHover ? "
|
|
591
|
+
const hoverClassName = shouldWrapWithHover ? "t_Hoverable" : "";
|
|
581
592
|
content = <span className={`${hoverClassName} ${themeClassName}`} style={{
|
|
582
593
|
display: "contents"
|
|
583
594
|
}} {...shouldWrapWithHover && {
|
|
@@ -759,11 +770,11 @@ function spacedChildren({
|
|
|
759
770
|
}) {
|
|
760
771
|
const hasSpace = !!(space || spaceFlex);
|
|
761
772
|
const hasSeparator = !(separator === void 0 || separator === null);
|
|
762
|
-
if (!hasSpace && !hasSeparator) {
|
|
773
|
+
if (!hasSpace && !hasSeparator && !isZStack) {
|
|
763
774
|
return children;
|
|
764
775
|
}
|
|
765
776
|
const childrenList = Children.toArray(children);
|
|
766
|
-
if (childrenList.length <= 1) {
|
|
777
|
+
if (childrenList.length <= 1 && !isZStack) {
|
|
767
778
|
return childrenList;
|
|
768
779
|
}
|
|
769
780
|
const final = [];
|
|
@@ -774,6 +785,12 @@ function spacedChildren({
|
|
|
774
785
|
} else {
|
|
775
786
|
final.push(<Fragment key={index}>{isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}</Fragment>);
|
|
776
787
|
}
|
|
788
|
+
if (isUnspaced(child) && index === 0) {
|
|
789
|
+
continue;
|
|
790
|
+
}
|
|
791
|
+
if (isZStack) {
|
|
792
|
+
continue;
|
|
793
|
+
}
|
|
777
794
|
const next = childrenList[index + 1];
|
|
778
795
|
if (next && !isUnspaced(next)) {
|
|
779
796
|
if (separator) {
|
|
@@ -819,13 +836,7 @@ function isUnspaced(child) {
|
|
|
819
836
|
}
|
|
820
837
|
__name(isUnspaced, "isUnspaced");
|
|
821
838
|
function AbsoluteFill(props) {
|
|
822
|
-
return
|
|
823
|
-
position: "absolute",
|
|
824
|
-
top: 0,
|
|
825
|
-
left: 0,
|
|
826
|
-
right: 0,
|
|
827
|
-
bottom: 0
|
|
828
|
-
}}>{props.children}</div> : <View style={StyleSheet.absoluteFill}>{props.child}</View>;
|
|
839
|
+
return <View pointerEvents="box-none" style={StyleSheet.absoluteFill}>{props.children}</View>;
|
|
829
840
|
}
|
|
830
841
|
__name(AbsoluteFill, "AbsoluteFill");
|
|
831
842
|
function processIDRefList(idRefList) {
|
|
@@ -1006,6 +1017,16 @@ function assignNativePropsToWeb(elementType, viewProps, nativeProps) {
|
|
|
1006
1017
|
}
|
|
1007
1018
|
}
|
|
1008
1019
|
__name(assignNativePropsToWeb, "assignNativePropsToWeb");
|
|
1020
|
+
function addPseudoToStyles(styles, initialPseudos, pseudos, name, force = false) {
|
|
1021
|
+
const pseudoStyle = pseudos[name];
|
|
1022
|
+
const shouldNestObject = isWeb && name !== "enterStyle" && name !== "exitStyle";
|
|
1023
|
+
const defaultPseudoStyle = initialPseudos[name];
|
|
1024
|
+
const style = defaultPseudoStyle ? { ...defaultPseudoStyle, ...pseudoStyle } : pseudoStyle;
|
|
1025
|
+
if (style) {
|
|
1026
|
+
styles.push(shouldNestObject && !force ? { [name]: style } : style);
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
__name(addPseudoToStyles, "addPseudoToStyles");
|
|
1009
1030
|
export {
|
|
1010
1031
|
AbsoluteFill,
|
|
1011
1032
|
Spacer,
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
} from "./helpers/registerCSSVariable";
|
|
15
15
|
import { configureMedia } from "./hooks/useMedia";
|
|
16
16
|
import { parseFont, registerFontVariables } from "./insertFont";
|
|
17
|
+
import { Tamagui } from "./Tamagui";
|
|
17
18
|
const createdConfigs = /* @__PURE__ */ new WeakMap();
|
|
18
19
|
function createTamagui(config) {
|
|
19
20
|
if (createdConfigs.has(config)) {
|
|
@@ -46,7 +47,7 @@ function createTamagui(config) {
|
|
|
46
47
|
return res;
|
|
47
48
|
})();
|
|
48
49
|
const themeConfig = (() => {
|
|
49
|
-
var _a
|
|
50
|
+
var _a;
|
|
50
51
|
const themes = { ...config.themes };
|
|
51
52
|
let cssRules = [];
|
|
52
53
|
if (isWeb) {
|
|
@@ -101,12 +102,12 @@ function createTamagui(config) {
|
|
|
101
102
|
vars += `--${themeKey}:${value};`;
|
|
102
103
|
}
|
|
103
104
|
const isDarkOrLightBase = themeName === "dark" || themeName === "light";
|
|
104
|
-
const isDark = themeName.startsWith("dark");
|
|
105
105
|
const selectors = names.map((name) => {
|
|
106
106
|
return `${CNP}${name}`;
|
|
107
107
|
});
|
|
108
108
|
if (hasDarkLight) {
|
|
109
109
|
for (const subName of names) {
|
|
110
|
+
const isDark = subName.startsWith("dark");
|
|
110
111
|
const childSelector = `${CNP}${subName.replace("dark_", "").replace("light_", "")}`;
|
|
111
112
|
const order = isDark ? ["dark", "light"] : ["light", "dark"];
|
|
112
113
|
if (isDarkOrLightBase) {
|
|
@@ -126,7 +127,8 @@ function createTamagui(config) {
|
|
|
126
127
|
}
|
|
127
128
|
const rootSep = config.themeClassNameOnRoot ? "" : " ";
|
|
128
129
|
cssRules.push(`${selectors.map((x) => `:root${rootSep}${x}`).join(", ")} {${vars}}`);
|
|
129
|
-
if (
|
|
130
|
+
if (config.shouldAddPrefersColorThemes) {
|
|
131
|
+
const isDark = themeName.startsWith("dark");
|
|
130
132
|
if (isDarkOrLightBase) {
|
|
131
133
|
cssRules.push(`@media(prefers-color-scheme: ${isDark ? "dark" : "light"}) {
|
|
132
134
|
body { background:${theme.background}; color: ${theme.color} }
|
|
@@ -181,30 +183,32 @@ ${getInsertedRules().join("\n")}`;
|
|
|
181
183
|
}
|
|
182
184
|
}
|
|
183
185
|
const next = {
|
|
186
|
+
defaultTheme: "light",
|
|
184
187
|
fonts: {},
|
|
185
188
|
animations: {},
|
|
186
189
|
shorthands: {},
|
|
187
190
|
media: {},
|
|
188
191
|
...config,
|
|
189
192
|
themes: themeConfig.themes,
|
|
190
|
-
Provider: createTamaguiProvider({
|
|
191
|
-
getCSS,
|
|
192
|
-
defaultTheme: "light",
|
|
193
|
-
...config,
|
|
194
|
-
themes: themeConfig.themes
|
|
195
|
-
}),
|
|
196
193
|
fontsParsed,
|
|
197
194
|
themeConfig,
|
|
198
195
|
tokensParsed,
|
|
199
196
|
parsed: true,
|
|
200
|
-
getCSS
|
|
197
|
+
getCSS,
|
|
198
|
+
Provider: null
|
|
201
199
|
};
|
|
200
|
+
next.Provider = createTamaguiProvider(next);
|
|
202
201
|
setConfig(next);
|
|
203
202
|
if (configListeners.size) {
|
|
204
203
|
configListeners.forEach((cb) => cb(next));
|
|
205
204
|
configListeners.clear();
|
|
206
205
|
}
|
|
207
206
|
createdConfigs.set(next, true);
|
|
207
|
+
if (process.env.NODE_ENV === "development") {
|
|
208
|
+
if (!globalThis["Tamagui"]) {
|
|
209
|
+
globalThis["Tamagui"] = Tamagui;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
208
212
|
return next;
|
|
209
213
|
}
|
|
210
214
|
__name(createTamagui, "createTamagui");
|
|
@@ -4,10 +4,7 @@ import * as React from "react";
|
|
|
4
4
|
import { ButtonInsideButtonContext } from "../contexts/ButtonInsideButtonContext";
|
|
5
5
|
import { TextAncestorProvider } from "../views/TextAncestorContext";
|
|
6
6
|
import { ThemeProvider } from "../views/ThemeProvider";
|
|
7
|
-
function createTamaguiProvider({
|
|
8
|
-
getCSS,
|
|
9
|
-
...themeProps
|
|
10
|
-
}) {
|
|
7
|
+
function createTamaguiProvider(config) {
|
|
11
8
|
return /* @__PURE__ */ __name(function TamaguiProvider({
|
|
12
9
|
disableInjectCSS,
|
|
13
10
|
children,
|
|
@@ -18,14 +15,14 @@ function createTamaguiProvider({
|
|
|
18
15
|
if (disableInjectCSS)
|
|
19
16
|
return;
|
|
20
17
|
const style = document.createElement("style");
|
|
21
|
-
style.appendChild(document.createTextNode(getCSS()));
|
|
18
|
+
style.appendChild(document.createTextNode(config.getCSS()));
|
|
22
19
|
document.head.appendChild(style);
|
|
23
20
|
return () => {
|
|
24
21
|
document.head.removeChild(style);
|
|
25
22
|
};
|
|
26
|
-
}, []);
|
|
23
|
+
}, [disableInjectCSS]);
|
|
27
24
|
}
|
|
28
|
-
return <ButtonInsideButtonContext.Provider value={false}><TextAncestorProvider><ThemeProvider {
|
|
25
|
+
return <ButtonInsideButtonContext.Provider value={false}><TextAncestorProvider><ThemeProvider themes={config.themes} defaultTheme={config.defaultTheme || "light"} themeClassNameOnRoot={config.themeClassNameOnRoot} disableRootThemeClass={config.disableRootThemeClass} {...themePropsProvider}>{children}</ThemeProvider></TextAncestorProvider></ButtonInsideButtonContext.Provider>;
|
|
29
26
|
}, "TamaguiProvider");
|
|
30
27
|
}
|
|
31
28
|
__name(createTamaguiProvider, "createTamaguiProvider");
|
|
@@ -7,7 +7,7 @@ import { isClient, isWeb, useIsomorphicLayoutEffect } from "../constants/platfor
|
|
|
7
7
|
import { mediaQueryConfig, mediaState } from "../hooks/useMedia";
|
|
8
8
|
import { createMediaStyle } from "./createMediaStyle";
|
|
9
9
|
import { fixNativeShadow } from "./fixNativeShadow";
|
|
10
|
-
import { getStylesAtomic,
|
|
10
|
+
import { getStylesAtomic, pseudoCNInverse } from "./getStylesAtomic";
|
|
11
11
|
import {
|
|
12
12
|
insertStyleRule,
|
|
13
13
|
insertedTransforms,
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
updateInsertedCache
|
|
16
16
|
} from "./insertStyleRule";
|
|
17
17
|
import { mergeTransform } from "./mergeTransform";
|
|
18
|
+
import { pseudos as pseudoAttrs } from "./pseudos";
|
|
18
19
|
const skipProps = {
|
|
19
20
|
animation: true,
|
|
20
21
|
animateOnly: true,
|
|
@@ -36,7 +37,7 @@ const skipProps = {
|
|
|
36
37
|
};
|
|
37
38
|
let conf;
|
|
38
39
|
const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state, defaultClassNames, debug) => {
|
|
39
|
-
var _a;
|
|
40
|
+
var _a, _b;
|
|
40
41
|
conf = conf || getConfig();
|
|
41
42
|
const validStyleProps = staticConfig.isText ? stylePropsText : validStyles;
|
|
42
43
|
const viewProps = {};
|
|
@@ -129,18 +130,18 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
129
130
|
}
|
|
130
131
|
for (const cn of valInit.split(" ")) {
|
|
131
132
|
if (cn[0] === "_") {
|
|
132
|
-
const [shorthand,
|
|
133
|
-
const isMedia2 =
|
|
134
|
-
const isPseudo2 =
|
|
133
|
+
const [shorthand, mediaOrPseudo] = cn.slice(1).split("-");
|
|
134
|
+
const isMedia2 = mediaOrPseudo[0] === "_";
|
|
135
|
+
const isPseudo2 = mediaOrPseudo[0] === "0";
|
|
135
136
|
const isMediaOrPseudo2 = isMedia2 || isPseudo2;
|
|
136
137
|
let fullKey = conf.shorthands[shorthand];
|
|
137
138
|
if (isMedia2) {
|
|
138
|
-
let mediaShortKey =
|
|
139
|
+
let mediaShortKey = mediaOrPseudo.slice(1);
|
|
139
140
|
mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf("_"));
|
|
140
141
|
fullKey += `-${mediaShortKey}`;
|
|
141
142
|
} else if (isPseudo2) {
|
|
142
|
-
const pseudoShortKey =
|
|
143
|
-
fullKey += `-${
|
|
143
|
+
const pseudoShortKey = mediaOrPseudo.slice(1);
|
|
144
|
+
fullKey += `-${pseudoCNInverse[pseudoShortKey]}`;
|
|
144
145
|
}
|
|
145
146
|
usedKeys.add(fullKey);
|
|
146
147
|
mergeClassName(fullKey, cn, isMediaOrPseudo2);
|
|
@@ -205,6 +206,10 @@ const getSplitStyles = /* @__PURE__ */ __name((props, staticConfig, theme, state
|
|
|
205
206
|
pseudos[key] = pseudos[key] || {};
|
|
206
207
|
pseudos[key] = getSubStyle(val, staticConfig, theme, props, state, true);
|
|
207
208
|
if (isWeb && !state.noClassNames) {
|
|
209
|
+
const shorthand = pseudoAttrs[key].name;
|
|
210
|
+
if ((_b = props.forceStyle) == null ? void 0 : _b[shorthand]) {
|
|
211
|
+
console.warn("force");
|
|
212
|
+
}
|
|
208
213
|
const pseudoStyles = getStylesAtomic({ [key]: pseudos[key] });
|
|
209
214
|
for (const style2 of pseudoStyles) {
|
|
210
215
|
const fullKey = `${style2.property}-${key}`;
|
|
@@ -7,7 +7,7 @@ import { generateAtomicStyles } from "./generateAtomicStyles";
|
|
|
7
7
|
import { invertMapTransformKeys, mergeTransform } from "./mergeTransform";
|
|
8
8
|
import { pseudos } from "./pseudos";
|
|
9
9
|
const pseudosOrdered = Object.values(pseudos);
|
|
10
|
-
const
|
|
10
|
+
const pseudoCNInverse = {
|
|
11
11
|
hover: "hoverStyle",
|
|
12
12
|
focus: "focusStyle",
|
|
13
13
|
press: "pressStyle"
|
|
@@ -66,17 +66,17 @@ function getAtomicStyle(style, pseudo, options) {
|
|
|
66
66
|
return Object.keys(atomicStyles).map((key) => {
|
|
67
67
|
const val = atomicStyles[key];
|
|
68
68
|
const hash = val.identifier;
|
|
69
|
-
const
|
|
69
|
+
const pseudoPrefix = pseudo ? `0${pseudo.name}-` : "";
|
|
70
70
|
if (!val.property) {
|
|
71
71
|
throw new Error(`no prop`);
|
|
72
72
|
}
|
|
73
73
|
const shortProp = reversedShorthands[val.property] || val.property;
|
|
74
|
-
const identifier = `_${shortProp}-${
|
|
74
|
+
const identifier = `_${shortProp}-${pseudoPrefix}${hash}`;
|
|
75
75
|
const className = `.${identifier}`;
|
|
76
76
|
const rules = val.rules.map((rule) => {
|
|
77
77
|
if (pseudo) {
|
|
78
|
-
const
|
|
79
|
-
let res = rule.replace(`.${val.identifier}`, `${
|
|
78
|
+
const pseudoPrefixSelect = [...Array(pseudo.priority)].map(() => ":root").join("") + " ";
|
|
79
|
+
let res = rule.replace(`.${val.identifier}`, `${pseudoPrefixSelect} ${className}`).replace("{", `:${pseudo.name}{`).replace(";", " !important;");
|
|
80
80
|
if (pseudo.name === "hover") {
|
|
81
81
|
res = `@media not all and (hover: none) { ${res} }`;
|
|
82
82
|
}
|
|
@@ -106,5 +106,5 @@ const borderDefaults = {
|
|
|
106
106
|
};
|
|
107
107
|
export {
|
|
108
108
|
getStylesAtomic,
|
|
109
|
-
|
|
109
|
+
pseudoCNInverse
|
|
110
110
|
};
|
package/dist/jsx/views/Theme.js
CHANGED
|
@@ -17,10 +17,7 @@ const Theme = memo(/* @__PURE__ */ __name(function Theme2(props) {
|
|
|
17
17
|
return props.children;
|
|
18
18
|
}
|
|
19
19
|
if (isWeb) {
|
|
20
|
-
return <span className={[
|
|
21
|
-
`tui_Theme`,
|
|
22
|
-
...!props.disableThemeClass ? [props.className, className].filter(Boolean) : []
|
|
23
|
-
].join(" ")} style={{
|
|
20
|
+
return <span className={(!props.disableThemeClass ? [props.className, className].filter(Boolean) : []).join(" ")} style={{
|
|
24
21
|
display: "contents",
|
|
25
22
|
color: (_b = (_a = themes[name]) == null ? void 0 : _a.color) == null ? void 0 : _b.toString()
|
|
26
23
|
}}>{contents}</span>;
|
|
@@ -16,9 +16,10 @@ const ThemeProvider = /* @__PURE__ */ __name((props) => {
|
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
18
18
|
const cn = `${THEME_CLASSNAME_PREFIX}${props.defaultTheme}`;
|
|
19
|
-
document.body
|
|
19
|
+
const target = props.themeClassNameOnRoot ? document.documentElement : document.body;
|
|
20
|
+
target.classList.add(cn);
|
|
20
21
|
return () => {
|
|
21
|
-
|
|
22
|
+
target.classList.remove(cn);
|
|
22
23
|
};
|
|
23
24
|
}, [props.defaultTheme, props.disableRootThemeClass]);
|
|
24
25
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/core",
|
|
3
|
-
"version": "1.0.1-beta.
|
|
3
|
+
"version": "1.0.1-beta.68",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -21,10 +21,11 @@
|
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@expo/match-media": "^0.3.0",
|
|
24
|
-
"@tamagui/
|
|
24
|
+
"@tamagui/compose-refs": "^1.0.1-beta.68",
|
|
25
|
+
"@tamagui/helpers": "^1.0.1-beta.68",
|
|
25
26
|
"@tamagui/ow": "^0.28.1",
|
|
26
|
-
"@tamagui/use-debounce": "^1.0.1-beta.
|
|
27
|
-
"@tamagui/use-force-update": "^1.0.1-beta.
|
|
27
|
+
"@tamagui/use-debounce": "^1.0.1-beta.68",
|
|
28
|
+
"@tamagui/use-force-update": "^1.0.1-beta.68",
|
|
28
29
|
"expo-screen-orientation": "^4.2.0",
|
|
29
30
|
"hyphenate-style-name": "^1.0.4",
|
|
30
31
|
"normalize-css-color": "^1.0.2",
|
|
@@ -35,7 +36,7 @@
|
|
|
35
36
|
"react-native-web": "*"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
38
|
-
"@tamagui/build": "^1.0.1-beta.
|
|
39
|
+
"@tamagui/build": "^1.0.1-beta.68",
|
|
39
40
|
"@types/react": "^17.0.35",
|
|
40
41
|
"csstype": "^3.0.10",
|
|
41
42
|
"esbuild": "^0.14.36",
|
package/reset.css
CHANGED
|
@@ -14,6 +14,15 @@ a {
|
|
|
14
14
|
color: inherit;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
h1, h2, h3, h4, h5, h6 {
|
|
18
|
+
margin: 0;
|
|
19
|
+
padding: 0;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
li, select, input, button, [role="slider"] {
|
|
23
|
+
outline: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
17
26
|
p,
|
|
18
27
|
input,
|
|
19
28
|
textarea,
|
|
@@ -23,11 +32,7 @@ ul,
|
|
|
23
32
|
ol,
|
|
24
33
|
li,
|
|
25
34
|
pre,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
li, select, input, button, [role="slider"] {
|
|
32
|
-
outline: none;
|
|
35
|
+
dialog {
|
|
36
|
+
all: unset;
|
|
37
|
+
box-sizing: border-box;
|
|
33
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,MAAM,CAAA;AACvC,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,MAAM,CAAA;AACvC,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAE1C,eAAO,MAAM,kBAAkB;;;;;;CAS9B,CAAA"}
|
|
@@ -24,7 +24,9 @@ export declare type SpacedChildrenProps = {
|
|
|
24
24
|
separator?: React.ReactNode;
|
|
25
25
|
};
|
|
26
26
|
export declare function spacedChildren({ isZStack, children, space, direction, spaceFlex, separator, }: SpacedChildrenProps): any;
|
|
27
|
-
export declare function AbsoluteFill(props:
|
|
27
|
+
export declare function AbsoluteFill(props: {
|
|
28
|
+
children?: React.ReactNode;
|
|
29
|
+
}): JSX.Element;
|
|
28
30
|
export declare function assignNativePropsToWeb(elementType: string, viewProps: any, nativeProps: any): void;
|
|
29
31
|
export {};
|
|
30
32
|
//# sourceMappingURL=createComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAWN,MAAM,OAAO,CAAA;AAqBd,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAGhB,cAAc,EAGf,MAAM,SAAS,CAAA;AAgBhB,eAAO,MAAM,QAAQ,eAAsB,CAAA;AA0B3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,GAAG,EAAE,EACtC,GAAG,GAAG,cAAc,EACpB,SAAS,GAAG,KAAK,EACjB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,EAAE,eAAe,CAAC,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAWN,MAAM,OAAO,CAAA;AAqBd,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAGhB,cAAc,EAGf,MAAM,SAAS,CAAA;AAgBhB,eAAO,MAAM,QAAQ,eAAsB,CAAA;AA0B3C,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,GAAG,EAAE,EACtC,GAAG,GAAG,cAAc,EACpB,SAAS,GAAG,KAAK,EACjB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,EAAE,eAAe,CAAC,EAAE,iBAAiB,4DAy7B1F;AAKD,eAAO,MAAM,QAAQ;YAAW;QAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE;;CAEjD,CAAA;AAMD,aAAK,cAAc,GAAG,UAAU,GAAG,YAAY,CAAA;AAE/C,oBAAY,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG;IACjE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IAC3B,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,cAAc,CAAA;CAC3B,CAAA;AACD,eAAO,MAAM,MAAM,0DA2CjB,CAAA;AAEF,oBAAY,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC5B,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,GACV,EAAE,mBAAmB,OAgFrB;AA2BD,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,eAMjE;AA6BD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,QA6K3F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTamagui.d.ts","sourceRoot":"","sources":["../src/createTamagui.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAA8B,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"createTamagui.d.ts","sourceRoot":"","sources":["../src/createTamagui.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAA8B,MAAM,kBAAkB,CAAA;AAYvE,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,SAAS,EAEV,MAAM,SAAS,CAAA;AAEhB,oBAAY,kBAAkB,GAE5B,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC,GAAG;IACxE,UAAU,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IACtC,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;SAC1C,CAAA;KACF,CAAA;IAED,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QACnC,KAAK,CAAC,EAAE,UAAU,CAAA;QAClB,IAAI,CAAC,EAAE,SAAS,CAAA;QAChB,MAAM,CAAC,EAAE,WAAW,CAAA;KACrB,CAAA;IAID,uBAAuB,CAAC,EAAE,aAAa,EAAE,CAAA;IAIzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAQ1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAG5B,2BAA2B,CAAC,EAAE,OAAO,CAAA;IAGrC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAKH,oBAAY,kBAAkB,CAAC,IAAI,SAAS,kBAAkB,IAAI,IAAI,SAAS,OAAO,CACpF,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAC1E,GACG,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACvC,OAAO,CAAA;AAEX,wBAAgB,aAAa,CAAC,IAAI,SAAS,kBAAkB,EAC3D,MAAM,EAAE,IAAI,GACX,kBAAkB,CAAC,IAAI,CAAC,CAiQ1B;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAA"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { TamaguiProviderProps } from '../types';
|
|
3
|
-
|
|
4
|
-
export declare function createTamaguiProvider({ getCSS, ...themeProps }: ThemeProviderProps & {
|
|
5
|
-
getCSS: () => string;
|
|
6
|
-
}): ({ disableInjectCSS, children, ...themePropsProvider }: TamaguiProviderProps) => JSX.Element;
|
|
2
|
+
import { TamaguiInternalConfig, TamaguiProviderProps } from '../types';
|
|
3
|
+
export declare function createTamaguiProvider(config: TamaguiInternalConfig): ({ disableInjectCSS, children, ...themePropsProvider }: TamaguiProviderProps) => JSX.Element;
|
|
7
4
|
//# sourceMappingURL=createTamaguiProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTamaguiProvider.d.ts","sourceRoot":"","sources":["../../src/helpers/createTamaguiProvider.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"createTamaguiProvider.d.ts","sourceRoot":"","sources":["../../src/helpers/createTamaguiProvider.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAItE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,2DAK9D,oBAAoB,iBA8BxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAKxC,OAAO,EACL,SAAS,EACT,SAAS,
|
|
1
|
+
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAKxC,OAAO,EACL,SAAS,EACT,SAAS,EAGT,YAAY,EACZ,eAAe,EACf,UAAU,EACV,kBAAkB,EAElB,WAAW,EACZ,MAAM,UAAU,CAAA;AAajB,oBAAY,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAC3D,oBAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACrD,oBAAY,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AA2BhE,aAAK,aAAa,GAAG,CACnB,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,kBAAkB,EAChC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,eAAe,GAAG;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B,EACD,iBAAiB,CAAC,EAAE,GAAG,EACvB,KAAK,CAAC,EAAE,SAAS,KACd;IACH,OAAO,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACpC,KAAK,EAAE,SAAS,CAAA;IAChB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IACjC,SAAS,EAAE,UAAU,CAAA;CACtB,CAAA;AASD,eAAO,MAAM,cAAc,EAAE,aAoX5B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,aAM/B,CAAA;AAID,eAAO,MAAM,cAAc,EAAE,aAQ5B,CAAA;AAED,eAAO,MAAM,WAAW,YACb,MAAM,gBACD,kBAAkB,SACzB,WAAW,SACX,GAAG,SACH,eAAe,sBACF,OAAO,KAC1B,SAeF,CAAA;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,QAI9C"}
|
|
@@ -8,7 +8,7 @@ export declare type ViewStyleWithPseudos = ViewStyle & {
|
|
|
8
8
|
declare type AtomicStyleOptions = {
|
|
9
9
|
splitTransforms?: boolean;
|
|
10
10
|
};
|
|
11
|
-
export declare const
|
|
11
|
+
export declare const pseudoCNInverse: {
|
|
12
12
|
hover: string;
|
|
13
13
|
focus: string;
|
|
14
14
|
press: string;
|
package/types/types.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export declare type TamaguiComponentPropsBase = {
|
|
|
26
26
|
tag?: string;
|
|
27
27
|
theme?: ThemeName | null;
|
|
28
28
|
componentName?: string;
|
|
29
|
+
forceStyle?: 'hover' | 'press' | 'focus';
|
|
29
30
|
onHoverIn?: (e: MouseEvent) => any;
|
|
30
31
|
onHoverOut?: (e: MouseEvent) => any;
|
|
31
32
|
onPress?: (e: GestureResponderEvent) => any;
|
|
@@ -128,6 +129,7 @@ export declare type TamaguiInternalConfig<A extends GenericTokens = GenericToken
|
|
|
128
129
|
fontsParsed: GenericFonts;
|
|
129
130
|
getCSS: () => string;
|
|
130
131
|
parsed: boolean;
|
|
132
|
+
themeClassNameOnRoot?: boolean;
|
|
131
133
|
};
|
|
132
134
|
export declare type GetAnimationKeys<A extends GenericTamaguiConfig> = keyof A['animations']['animations'];
|
|
133
135
|
export declare type UnionableString = string & {};
|
|
@@ -246,7 +248,7 @@ export declare type PseudoProps<A> = {
|
|
|
246
248
|
exitStyle?: A | null;
|
|
247
249
|
enterStyle?: A | null;
|
|
248
250
|
};
|
|
249
|
-
export declare type
|
|
251
|
+
export declare type PseudoPropKeys = keyof PseudoProps<any>;
|
|
250
252
|
export declare type PseudoStyles = {
|
|
251
253
|
hoverStyle?: ViewStyle;
|
|
252
254
|
pressStyle?: ViewStyle;
|