@tamagui/web 1.72.3 → 1.73.1
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/contexts/ComponentContext.js +1 -0
- package/dist/cjs/contexts/ComponentContext.js.map +1 -1
- package/dist/cjs/contexts/ComponentContext.native.js +1 -0
- package/dist/cjs/contexts/ComponentContext.native.js.map +1 -1
- package/dist/cjs/createComponent.js +47 -46
- package/dist/cjs/createComponent.js.map +1 -1
- package/dist/cjs/createComponent.native.js +27 -26
- package/dist/cjs/createComponent.native.js.map +1 -1
- package/dist/cjs/createTamagui.js +35 -32
- package/dist/cjs/createTamagui.js.map +1 -1
- package/dist/cjs/createTamagui.native.js +35 -32
- package/dist/cjs/createTamagui.native.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.js +8 -7
- package/dist/cjs/helpers/getSplitStyles.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.native.js +6 -5
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/getStylesAtomic.js +16 -11
- package/dist/cjs/helpers/getStylesAtomic.js.map +2 -2
- package/dist/cjs/helpers/getThemeCSSRules.js +1 -1
- package/dist/cjs/helpers/getThemeCSSRules.js.map +1 -1
- package/dist/cjs/helpers/propMapper.js +15 -10
- package/dist/cjs/helpers/propMapper.js.map +1 -1
- package/dist/cjs/helpers/propMapper.native.js +15 -10
- package/dist/cjs/helpers/propMapper.native.js.map +1 -1
- package/dist/cjs/hooks/{useAnimationDriver.js → useConfiguration.js} +15 -8
- package/dist/cjs/hooks/useConfiguration.js.map +6 -0
- package/dist/cjs/hooks/{useAnimationDriver.native.js → useConfiguration.native.js} +15 -8
- package/dist/cjs/hooks/useConfiguration.native.js.map +6 -0
- package/dist/cjs/{helpers/getAnimationDriver.js → hooks/useDisableSSR.js} +15 -9
- package/dist/cjs/hooks/useDisableSSR.js.map +6 -0
- package/dist/cjs/{helpers/getAnimationDriver.native.js → hooks/useDisableSSR.native.js} +15 -9
- package/dist/cjs/hooks/useDisableSSR.native.js.map +6 -0
- package/dist/cjs/hooks/useMedia.js +7 -9
- package/dist/cjs/hooks/useMedia.js.map +1 -1
- package/dist/cjs/hooks/useMedia.native.js +7 -9
- package/dist/cjs/hooks/useMedia.native.js.map +1 -1
- package/dist/cjs/hooks/useProps.js +2 -2
- package/dist/cjs/hooks/useProps.js.map +1 -1
- package/dist/cjs/hooks/useProps.native.js +2 -2
- package/dist/cjs/hooks/useProps.native.js.map +1 -1
- package/dist/cjs/hooks/useTheme.js +23 -24
- package/dist/cjs/hooks/useTheme.js.map +1 -1
- package/dist/cjs/hooks/useTheme.native.js +23 -24
- package/dist/cjs/hooks/useTheme.native.js.map +1 -1
- package/dist/cjs/index.js +6 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +6 -6
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/views/{AnimationDriverProvider.js → Configuration.js} +7 -7
- package/dist/cjs/views/Configuration.js.map +6 -0
- package/dist/cjs/views/{AnimationDriverProvider.native.js → Configuration.native.js} +7 -7
- package/dist/cjs/views/Configuration.native.js.map +6 -0
- package/dist/cjs/views/Text.js +0 -1
- package/dist/cjs/views/Text.js.map +1 -1
- package/dist/cjs/views/Text.native.js +0 -1
- package/dist/cjs/views/Text.native.js.map +1 -1
- package/dist/cjs/views/Theme.js +16 -11
- package/dist/cjs/views/Theme.js.map +1 -1
- package/dist/cjs/views/Theme.native.js +16 -11
- package/dist/cjs/views/Theme.native.js.map +1 -1
- package/dist/cjs/views/ThemeDebug.js +8 -8
- package/dist/cjs/views/ThemeDebug.js.map +1 -1
- package/dist/esm/contexts/ComponentContext.js +1 -0
- package/dist/esm/contexts/ComponentContext.js.map +1 -1
- package/dist/esm/createComponent.js +40 -39
- package/dist/esm/createComponent.js.map +1 -1
- package/dist/esm/createTamagui.js +35 -32
- package/dist/esm/createTamagui.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.js +14 -8
- package/dist/esm/helpers/getSplitStyles.js.map +1 -1
- package/dist/esm/helpers/getStylesAtomic.js +14 -10
- package/dist/esm/helpers/getStylesAtomic.js.map +2 -2
- package/dist/esm/helpers/getThemeCSSRules.js +1 -1
- package/dist/esm/helpers/getThemeCSSRules.js.map +1 -1
- package/dist/esm/helpers/propMapper.js +15 -10
- package/dist/esm/helpers/propMapper.js.map +1 -1
- package/dist/esm/hooks/useConfiguration.js +15 -0
- package/dist/esm/hooks/useConfiguration.js.map +6 -0
- package/dist/esm/hooks/useDisableSSR.js +15 -0
- package/dist/esm/hooks/useDisableSSR.js.map +6 -0
- package/dist/esm/hooks/useMedia.js +7 -7
- package/dist/esm/hooks/useMedia.js.map +1 -1
- package/dist/esm/hooks/useProps.js +1 -1
- package/dist/esm/hooks/useProps.js.map +1 -1
- package/dist/esm/hooks/useTheme.js +22 -24
- package/dist/esm/hooks/useTheme.js.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/views/Configuration.js +7 -0
- package/dist/esm/views/Configuration.js.map +6 -0
- package/dist/esm/views/Text.js +0 -1
- package/dist/esm/views/Text.js.map +1 -1
- package/dist/esm/views/Theme.js +15 -11
- package/dist/esm/views/Theme.js.map +1 -1
- package/dist/esm/views/ThemeDebug.js +2 -2
- package/dist/esm/views/ThemeDebug.js.map +1 -1
- package/package.json +9 -9
- package/src/contexts/ComponentContext.tsx +1 -0
- package/src/createComponent.tsx +55 -44
- package/src/createTamagui.ts +54 -51
- package/src/helpers/getSplitStyles.tsx +26 -7
- package/src/helpers/getStylesAtomic.ts +19 -15
- package/src/helpers/getThemeCSSRules.ts +2 -1
- package/src/helpers/propMapper.ts +16 -18
- package/src/hooks/useConfiguration.tsx +14 -0
- package/src/hooks/useDisableSSR.tsx +14 -0
- package/src/hooks/useMedia.tsx +12 -8
- package/src/hooks/useProps.tsx +1 -1
- package/src/hooks/useTheme.tsx +27 -26
- package/src/index.ts +3 -3
- package/src/types.tsx +15 -11
- package/src/views/Configuration.tsx +11 -0
- package/src/views/Text.tsx +0 -2
- package/src/views/Theme.tsx +8 -9
- package/src/views/ThemeDebug.tsx +3 -3
- package/types/contexts/ComponentContext.d.ts.map +1 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/createTamagui.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/helpers/getStylesAtomic.d.ts +1 -0
- package/types/helpers/getStylesAtomic.d.ts.map +1 -1
- package/types/helpers/getThemeCSSRules.d.ts.map +1 -1
- package/types/helpers/propMapper.d.ts.map +1 -1
- package/types/hooks/useConfiguration.d.ts +151 -0
- package/types/hooks/useConfiguration.d.ts.map +1 -0
- package/types/hooks/useDisableSSR.d.ts +4 -0
- package/types/hooks/useDisableSSR.d.ts.map +1 -0
- package/types/hooks/useMedia.d.ts +2 -3
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/hooks/useTheme.d.ts +3 -3
- package/types/hooks/useTheme.d.ts.map +1 -1
- package/types/index.d.ts +3 -3
- package/types/index.d.ts.map +1 -1
- package/types/types.d.ts +12 -9
- package/types/types.d.ts.map +1 -1
- package/types/views/Configuration.d.ts +9 -0
- package/types/views/Configuration.d.ts.map +1 -0
- package/types/views/Text.d.ts.map +1 -1
- package/types/views/Theme.d.ts.map +1 -1
- package/dist/cjs/helpers/getAnimationDriver.js.map +0 -6
- package/dist/cjs/helpers/getAnimationDriver.native.js.map +0 -6
- package/dist/cjs/hooks/useAnimationDriver.js.map +0 -6
- package/dist/cjs/hooks/useAnimationDriver.native.js.map +0 -6
- package/dist/cjs/views/AnimationDriverProvider.js.map +0 -6
- package/dist/cjs/views/AnimationDriverProvider.native.js.map +0 -6
- package/dist/esm/helpers/getAnimationDriver.js +0 -8
- package/dist/esm/helpers/getAnimationDriver.js.map +0 -6
- package/dist/esm/hooks/useAnimationDriver.js +0 -8
- package/dist/esm/hooks/useAnimationDriver.js.map +0 -6
- package/dist/esm/views/AnimationDriverProvider.js +0 -7
- package/dist/esm/views/AnimationDriverProvider.js.map +0 -6
- package/src/helpers/getAnimationDriver.tsx +0 -8
- package/src/hooks/useAnimationDriver.tsx +0 -8
- package/src/views/AnimationDriverProvider.tsx +0 -16
- package/types/helpers/getAnimationDriver.d.ts +0 -9
- package/types/helpers/getAnimationDriver.d.ts.map +0 -1
- package/types/hooks/useAnimationDriver.d.ts +0 -4
- package/types/hooks/useAnimationDriver.d.ts.map +0 -1
- package/types/hooks/useStyle.d.ts +0 -8
- package/types/views/AnimationDriverProvider.d.ts +0 -9
- package/types/views/AnimationDriverProvider.d.ts.map +0 -1
package/dist/esm/views/Text.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/views/Text.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,oBAAoB,mBAAmB;AAEhD,SAAS,uBAAuB;AAGhC,MAAM,eAAe;AAAA,EACnB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AACd,GAIa,OAAO,gBAAgD;AAAA,EAClE,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EAER,cAEM;AAAA,IACE,
|
|
4
|
+
"mappings": "AAAA,SAAS,oBAAoB,mBAAmB;AAEhD,SAAS,uBAAuB;AAGhC,MAAM,eAAe;AAAA,EACnB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AACd,GAIa,OAAO,gBAAgD;AAAA,EAClE,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EAER,cAEM;AAAA,IACE,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EAMN,uBAAuB,oBAAI,IAAI,CAAC,YAAY,CAAC;AAAA,EAE7C,UAAU;AAAA,IAEN,eAAe;AAAA,MACb,GAAG;AAAA,MAEH,WAAW,CAAC,kBACV,iBAAiB,IACb;AAAA,QACE,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,IACA;AAAA,IACR;AAAA;AAAA,IAIF,eAAe;AAAA,MACb,OAAO,MAAM;AAAA,IACf;AAAA,IAGE,YAAY;AAAA,MACV,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,QAAQ;AAAA,MACV;AAAA,MACA,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IAGF,SAAS;AAAA,MACP,MAEM;AAAA,IAKR;AAAA,EACF;AAAA,EAEA,YAAY,oBAAI,IAA2C,CAAC,CAAe;AAAA,EAE3E,aAAa;AAAA,IACX,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/views/Theme.js
CHANGED
|
@@ -40,7 +40,7 @@ function useThemedChildren(themeState, children, props, isRoot = !1) {
|
|
|
40
40
|
void 0,
|
|
41
41
|
/* @__PURE__ */ jsx(Theme, { name: themeManager.state.parentName, children: child.props.children })
|
|
42
42
|
) : child));
|
|
43
|
-
const elementsWithContext = /* @__PURE__ */ jsx(ThemeManagerContext.Provider, { value: themeManager, children: next });
|
|
43
|
+
const elementsWithContext = themeManager ? /* @__PURE__ */ jsx(ThemeManagerContext.Provider, { value: themeManager, children: next }) : next;
|
|
44
44
|
return forceClassName === !1 ? elementsWithContext : isWeb ? wrapThemeElements({
|
|
45
45
|
children: elementsWithContext,
|
|
46
46
|
themeState,
|
|
@@ -56,22 +56,26 @@ function wrapThemeElements({
|
|
|
56
56
|
}) {
|
|
57
57
|
if (isRoot && forceClassName === !1)
|
|
58
58
|
return children;
|
|
59
|
-
const inverse = themeState.state
|
|
59
|
+
const inverse = themeState.state?.inverse;
|
|
60
60
|
if (!themeState.isNewTheme && !inverse && !forceClassName)
|
|
61
61
|
return /* @__PURE__ */ jsx("span", { className: "_dsp_contents is_Theme", children });
|
|
62
|
-
const themeColor = themeState.state
|
|
62
|
+
const themeColor = themeState.state?.theme && themeState.isNewTheme ? variableToString(themeState.state.theme.color) : "", colorStyle = themeColor ? {
|
|
63
63
|
color: themeColor
|
|
64
64
|
} : void 0;
|
|
65
|
-
let className = themeState.state
|
|
65
|
+
let className = themeState.state?.className || "";
|
|
66
66
|
isRoot && (className = className.replace("t_sub_theme", ""));
|
|
67
67
|
let themedChildren = /* @__PURE__ */ jsx("span", { className: `${className} _dsp_contents is_Theme`, style: colorStyle, children });
|
|
68
|
-
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
if (inverse != null || forceClassName) {
|
|
69
|
+
const name = themeState.state?.name || "";
|
|
70
|
+
themedChildren = /* @__PURE__ */ jsx(
|
|
71
|
+
"span",
|
|
72
|
+
{
|
|
73
|
+
className: `${name.startsWith("light") ? "t_light" : name.startsWith("dark") ? "t_dark" : ""} _dsp_contents ${inverse ? "is_inversed" : ""}`,
|
|
74
|
+
children: themedChildren
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
return themedChildren;
|
|
75
79
|
}
|
|
76
80
|
export {
|
|
77
81
|
Theme,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/views/Theme.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,aAAa;AACtB,OAAO;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;AACpC,SAA+B,4BAA4B;AAE3D,SAAS,kBAAkB;AA+BjB;AA7BH,MAAM,QAAQ,WAAW,SAAe,OAAmB,KAAK;AAErE,MAAI,MAAM;AACR,WAAO,MAAM;AAGf,QAAM,SAAS,CAAC,CAAC,MAAM,SACjB,0BAA0B,MAAM,qBAAqB,GACrD,aAAa,qBAAqB,OAAO,MAAM,GAE/C,WAAW,QAAQ,MAAM;AAC7B,QAAIA,YAAW,0BACX,SAAS;AAAA,MAAI,MAAM;AAAA,MAAU,CAAC,UAC5B,aAAa,OAAO,EAAG,sBAAuB,GAAK,CAAC;AAAA,IACtD,IACA,MAAM;AAEV,QAAI;AACF,UAAI;AACF,cAAM,SAAS,KAAKA,SAAQ,GAC5BA,YAAW,aAAaA,WAAU,EAAE,IAAI,CAAC;AAAA,MAC3C,QAAQ;AAAA,MAER;AAGF,WAAI,QAAQ,IAAI,aAAa,iBACvB,MAAM,UAAU,gBAClBA,YACE,oBAAC,cAAW,YAAwB,YAAY,OAC7C,UAAAA,WACH,IAKCA;AAAA,EACT,GAAG,CAAC,MAAM,UAAU,uBAAuB,CAAC;AAE5C,SAAO,kBAAkB,YAAY,UAAU,OAAO,MAAM;AAC9D,CAAC;AAED,MAAM,kBAAqB;AAEpB,SAAS,kBACd,YACA,UACA,OACA,SAAS,IACT;AACA,QAAM,EAAE,cAAc,WAAW,IAAI,YAC/B,EAAE,SAAS,eAAe,IAAI,OAC9B,gBAAgB,OAAO,EAAK;AAQlC,MAPI,eACF,cAAc,UAAU,KAMtB,EAFF,cAAc,MAAM,WAAW,cAAc,WAAW,kBAAkB;AAG1E,WAAO;AAGT,MAAI,OAAO;AAGX,EAAI,WAAW,iBACb,OAAO,SAAS,QAAQ,QAAQ,EAAE,IAAI,CAAC,UAC9B,eAAe,KAAK,IACvB;AAAA,IACE;AAAA,IACA;AAAA,IACA,oBAAC,SAAM,MAAM,aAAa,MAAM,YAC5B,gBAAc,MAAM,UACxB;AAAA,EACF,IACA,KACL;AAGH,QAAM,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["children"]
|
|
6
6
|
}
|
|
@@ -36,8 +36,8 @@ function ThemeDebug({
|
|
|
36
36
|
" />\xA0",
|
|
37
37
|
JSON.stringify(
|
|
38
38
|
{
|
|
39
|
-
name: themeState
|
|
40
|
-
className: themeState
|
|
39
|
+
name: themeState?.state?.name,
|
|
40
|
+
className: themeState?.state?.className,
|
|
41
41
|
inverse: themeProps.inverse,
|
|
42
42
|
forceClassName: themeProps.forceClassName,
|
|
43
43
|
parent: themeState.themeManager?.state.parentName,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/views/ThemeDebug.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,sBAAsB;AAC/B,SAAS,WAAW,OAAO,gBAAgB;AAC3C,SAAS,oBAAoB;AA6DvB,mBA+BE,KA7BE,YAFJ;AAxDN,IAAI;AAEG,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AAED,MAAI,WAAW,qBAAqB;AAClC,WAAO;AAGT,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,UAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,CAAC,GAC9C,WAAW,eAAe,GAC1B,KAAK,MAAM;AAEjB,WAAI,QAAQ,IAAI,aAAa,iBAAiB,OAAO,WAAa,QAC3D,SACH,OAAO,SAAS,cAAc,KAAK,GACnC,KAAK,MAAM,SAAS,SACpB,KAAK,MAAM,YAAY,UACvB,KAAK,MAAM,WAAW,SACtB,KAAK,MAAM,SAAS,KACpB,KAAK,MAAM,SAAS,QACpB,KAAK,MAAM,OAAO,QAClB,KAAK,MAAM,QAAQ,QACnB,KAAK,MAAM,UAAU,QACrB,KAAK,MAAM,SAAS,kBACpB,KAAK,MAAM,gBAAgB,OAC3B,KAAK,MAAM,aAAa,qBACxB,SAAS,KAAK,YAAY,IAAI,KAIlC,UAAU,MAAM;AACd,iBAAW,cAAc,eAAe,cAAc,CAAC,MAAM,YAAY;AACvE,yBAAiB,CAAC,MAAM,EAAE,CAAC,GAC3B,QAAQ;AAAA,UACN,qBAAqB,WAAW,cAAc,EAAE,gBAAgB,WAAW,cAAc,eAAe,EAAE;AAAA,UAC1G;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,GAAG,CAAC,WAAW,YAAY,CAAC,GAE5B,UAAU,MAAM;AAEd,YAAM,KAAK,YAAY,UAAU,GAAI;AACrC,aAAO,MAAM,aAAa,
|
|
4
|
+
"mappings": "AAAA,SAAS,sBAAsB;AAC/B,SAAS,WAAW,OAAO,gBAAgB;AAC3C,SAAS,oBAAoB;AA6DvB,mBA+BE,KA7BE,YAFJ;AAxDN,IAAI;AAEG,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AAED,MAAI,WAAW,qBAAqB;AAClC,WAAO;AAGT,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,UAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,CAAC,GAC9C,WAAW,eAAe,GAC1B,KAAK,MAAM;AAEjB,WAAI,QAAQ,IAAI,aAAa,iBAAiB,OAAO,WAAa,QAC3D,SACH,OAAO,SAAS,cAAc,KAAK,GACnC,KAAK,MAAM,SAAS,SACpB,KAAK,MAAM,YAAY,UACvB,KAAK,MAAM,WAAW,SACtB,KAAK,MAAM,SAAS,KACpB,KAAK,MAAM,SAAS,QACpB,KAAK,MAAM,OAAO,QAClB,KAAK,MAAM,QAAQ,QACnB,KAAK,MAAM,UAAU,QACrB,KAAK,MAAM,SAAS,kBACpB,KAAK,MAAM,gBAAgB,OAC3B,KAAK,MAAM,aAAa,qBACxB,SAAS,KAAK,YAAY,IAAI,KAIlC,UAAU,MAAM;AACd,iBAAW,cAAc,eAAe,cAAc,CAAC,MAAM,YAAY;AACvE,yBAAiB,CAAC,MAAM,EAAE,CAAC,GAC3B,QAAQ;AAAA,UACN,qBAAqB,WAAW,cAAc,EAAE,gBAAgB,WAAW,cAAc,eAAe,EAAE;AAAA,UAC1G;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,GAAG,CAAC,WAAW,YAAY,CAAC,GAE5B,UAAU,MAAM;AAEd,YAAM,KAAK,YAAY,UAAU,GAAI;AACrC,aAAO,MAAM,aAAa,EAAS;AAAA,IACrC,GAAG,CAAC,CAAC,GAGH,iCACG;AAAA;AAAA,QACC;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,cACL,YAAY;AAAA,YACd;AAAA,YACD;AAAA;AAAA,cACY;AAAA,cAAG;AAAA,cACb,KAAK;AAAA,gBACJ;AAAA,kBACE,MAAM,YAAY,OAAO;AAAA,kBACzB,WAAW,YAAY,OAAO;AAAA,kBAC9B,SAAS,WAAW;AAAA,kBACpB,gBAAgB,WAAW;AAAA,kBAC3B,QAAQ,WAAW,cAAc,MAAM;AAAA,kBACvC,IAAI,WAAW,cAAc;AAAA,kBAC7B,UAAU,WAAW,cAAc,eAAe;AAAA,kBAClD,OAAO,WAAW;AAAA,kBAClB;AAAA,kBACA,WAAW,CAAC,GAAI,WAAW,cAAe,iBAAoB,CAAC,CAAE,EAAE;AAAA,oBACjE;AAAA,kBACF;AAAA,kBACA,sBAAsB,WAAW,cAAe;AAAA,gBAClD;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA;AAAA;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,MAEA,oBAAC,SAAI,OAAO,EAAE,OAAO,MAAM,GAAI,cAAG;AAAA,MAEjC;AAAA,OACH;AAAA,EAEJ;AACA,SAAO;AACT;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.73.1",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -27,19 +27,19 @@
|
|
|
27
27
|
"reset.css"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tamagui/compose-refs": "1.
|
|
31
|
-
"@tamagui/constants": "1.
|
|
32
|
-
"@tamagui/helpers": "1.
|
|
33
|
-
"@tamagui/normalize-css-color": "1.
|
|
34
|
-
"@tamagui/timer": "1.
|
|
35
|
-
"@tamagui/use-did-finish-ssr": "1.
|
|
36
|
-
"@tamagui/use-force-update": "1.
|
|
30
|
+
"@tamagui/compose-refs": "1.73.1",
|
|
31
|
+
"@tamagui/constants": "1.73.1",
|
|
32
|
+
"@tamagui/helpers": "1.73.1",
|
|
33
|
+
"@tamagui/normalize-css-color": "1.73.1",
|
|
34
|
+
"@tamagui/timer": "1.73.1",
|
|
35
|
+
"@tamagui/use-did-finish-ssr": "1.73.1",
|
|
36
|
+
"@tamagui/use-force-update": "1.73.1"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"react": "*"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@tamagui/build": "1.
|
|
42
|
+
"@tamagui/build": "1.73.1",
|
|
43
43
|
"@testing-library/react": "^14.0.0",
|
|
44
44
|
"csstype": "^3.0.10",
|
|
45
45
|
"react": "^18.2.0",
|
|
@@ -4,6 +4,7 @@ import { ComponentContextI, GroupStateListener } from '../types'
|
|
|
4
4
|
const listeners = new Set<GroupStateListener>()
|
|
5
5
|
|
|
6
6
|
export const ComponentContext = createStyledContext<ComponentContextI>({
|
|
7
|
+
disableSSR: undefined,
|
|
7
8
|
inText: false,
|
|
8
9
|
language: null,
|
|
9
10
|
animationDriver: null,
|
package/src/createComponent.tsx
CHANGED
|
@@ -43,6 +43,7 @@ import {
|
|
|
43
43
|
DisposeFn,
|
|
44
44
|
GroupState,
|
|
45
45
|
LayoutEvent,
|
|
46
|
+
SizeTokens,
|
|
46
47
|
SpaceDirection,
|
|
47
48
|
SpaceValue,
|
|
48
49
|
SpacerProps,
|
|
@@ -56,6 +57,7 @@ import {
|
|
|
56
57
|
TextProps,
|
|
57
58
|
UseAnimationHook,
|
|
58
59
|
UseAnimationProps,
|
|
60
|
+
WebOnlyPressEvents,
|
|
59
61
|
} from './types'
|
|
60
62
|
import { Slot } from './views/Slot'
|
|
61
63
|
import { useThemedChildren } from './views/Theme'
|
|
@@ -223,6 +225,7 @@ export function createComponent<
|
|
|
223
225
|
let overriddenContextProps: Object | undefined
|
|
224
226
|
let contextValue: Object | null | undefined
|
|
225
227
|
const { context } = staticConfig
|
|
228
|
+
|
|
226
229
|
if (context) {
|
|
227
230
|
contextValue = useContext(context)
|
|
228
231
|
const { inverseShorthands } = getConfig()
|
|
@@ -570,11 +573,7 @@ export function createComponent<
|
|
|
570
573
|
|
|
571
574
|
if (process.env.NODE_ENV === 'development' && time) time`theme`
|
|
572
575
|
|
|
573
|
-
const mediaState = useMedia(
|
|
574
|
-
// @ts-ignore, we just pass a stable object so we can get it later with
|
|
575
|
-
// should match to the one used in `setMediaShouldUpdate` below
|
|
576
|
-
stateRef
|
|
577
|
-
)
|
|
576
|
+
const mediaState = useMedia(stateRef, componentContext)
|
|
578
577
|
|
|
579
578
|
if (process.env.NODE_ENV === 'development' && time) time`media`
|
|
580
579
|
|
|
@@ -603,7 +602,7 @@ export function createComponent<
|
|
|
603
602
|
props,
|
|
604
603
|
staticConfig,
|
|
605
604
|
theme,
|
|
606
|
-
themeState
|
|
605
|
+
themeState?.state?.name || '',
|
|
607
606
|
state,
|
|
608
607
|
styleProps,
|
|
609
608
|
null,
|
|
@@ -697,7 +696,7 @@ export function createComponent<
|
|
|
697
696
|
presence,
|
|
698
697
|
componentState: state,
|
|
699
698
|
styleProps,
|
|
700
|
-
theme: themeState.state
|
|
699
|
+
theme: themeState.state?.theme!,
|
|
701
700
|
pseudos: pseudos || null,
|
|
702
701
|
hostRef,
|
|
703
702
|
staticConfig,
|
|
@@ -959,10 +958,7 @@ export function createComponent<
|
|
|
959
958
|
// check presence rather than value to prevent reparenting bugs
|
|
960
959
|
// allows for onPress={x ? function : undefined} without re-ordering dom
|
|
961
960
|
const shouldAttach = Boolean(
|
|
962
|
-
attachPress ||
|
|
963
|
-
isHoverable ||
|
|
964
|
-
(noClassNames && 'pressStyle' in props) ||
|
|
965
|
-
(isWeb && noClassNames && 'hoverStyle' in props)
|
|
961
|
+
attachPress || isHoverable || runtimePressStyle || runtimeHoverStyle
|
|
966
962
|
)
|
|
967
963
|
|
|
968
964
|
if (process.env.NODE_ENV === 'development' && time) time`events-setup`
|
|
@@ -1091,24 +1087,23 @@ export function createComponent<
|
|
|
1091
1087
|
elementType = Slot
|
|
1092
1088
|
// on native this is already merged into viewProps in hooks.useEvents
|
|
1093
1089
|
if (process.env.TAMAGUI_TARGET === 'web') {
|
|
1094
|
-
const
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
? getWebEvents(passEvents as any)
|
|
1110
|
-
: passEvents
|
|
1090
|
+
const webStyleEvents = asChild === 'web' || asChild === 'except-style-web'
|
|
1091
|
+
const passEvents = getWebEvents(
|
|
1092
|
+
{
|
|
1093
|
+
onPress,
|
|
1094
|
+
onLongPress,
|
|
1095
|
+
onPressIn,
|
|
1096
|
+
onPressOut,
|
|
1097
|
+
onHoverIn,
|
|
1098
|
+
onHoverOut,
|
|
1099
|
+
onMouseUp,
|
|
1100
|
+
onMouseDown,
|
|
1101
|
+
onMouseEnter,
|
|
1102
|
+
onMouseLeave,
|
|
1103
|
+
},
|
|
1104
|
+
webStyleEvents
|
|
1111
1105
|
)
|
|
1106
|
+
Object.assign(viewProps, passEvents)
|
|
1112
1107
|
}
|
|
1113
1108
|
}
|
|
1114
1109
|
|
|
@@ -1200,6 +1195,17 @@ export function createComponent<
|
|
|
1200
1195
|
}
|
|
1201
1196
|
}
|
|
1202
1197
|
|
|
1198
|
+
// ensure we override new context with syle resolved values
|
|
1199
|
+
if (staticConfig.context) {
|
|
1200
|
+
const contextProps = staticConfig.context.props
|
|
1201
|
+
for (const key in contextProps) {
|
|
1202
|
+
if (key in style || key in viewProps) {
|
|
1203
|
+
overriddenContextProps ||= {}
|
|
1204
|
+
overriddenContextProps[key] = style[key] ?? viewProps[key]
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1203
1209
|
if (overriddenContextProps) {
|
|
1204
1210
|
const Provider = staticConfig.context!.Provider!
|
|
1205
1211
|
content = (
|
|
@@ -1331,11 +1337,16 @@ export function createComponent<
|
|
|
1331
1337
|
return res
|
|
1332
1338
|
}
|
|
1333
1339
|
|
|
1334
|
-
|
|
1340
|
+
type EventKeys = keyof (TamaguiComponentEvents & WebOnlyPressEvents)
|
|
1341
|
+
type EventLikeObject = {
|
|
1342
|
+
[key in EventKeys]?: any
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1345
|
+
function getWebEvents<E extends EventLikeObject>(events: E, webStyle = true) {
|
|
1335
1346
|
return {
|
|
1336
|
-
onMouseEnter: events.onMouseEnter,
|
|
1337
|
-
onMouseLeave: events.onMouseLeave,
|
|
1338
|
-
onClick: events.onPress,
|
|
1347
|
+
onMouseEnter: events.onHoverIn ?? events.onMouseEnter,
|
|
1348
|
+
onMouseLeave: events.onHoverOut ?? events.onMouseLeave,
|
|
1349
|
+
[webStyle ? 'onClick' : 'onPress']: events.onPress,
|
|
1339
1350
|
onMouseDown: events.onPressIn,
|
|
1340
1351
|
onMouseUp: events.onPressOut,
|
|
1341
1352
|
onTouchStart: events.onPressIn,
|
|
@@ -1349,6 +1360,17 @@ export function Unspaced(props: { children?: any }) {
|
|
|
1349
1360
|
}
|
|
1350
1361
|
Unspaced['isUnspaced'] = true
|
|
1351
1362
|
|
|
1363
|
+
const getSpacerSize = (size: SizeTokens | number | boolean, { tokens }) => {
|
|
1364
|
+
size = size === true ? '$true' : size
|
|
1365
|
+
const sizePx = tokens.space[size as any] ?? size
|
|
1366
|
+
return {
|
|
1367
|
+
width: sizePx,
|
|
1368
|
+
height: sizePx,
|
|
1369
|
+
minWidth: sizePx,
|
|
1370
|
+
minHeight: sizePx,
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1352
1374
|
// dont used styled() here to avoid circular deps
|
|
1353
1375
|
// keep inline to avoid circular deps
|
|
1354
1376
|
// @ts-expect-error we override
|
|
@@ -1368,16 +1390,7 @@ export const Spacer = createComponent<SpacerProps>({
|
|
|
1368
1390
|
|
|
1369
1391
|
variants: {
|
|
1370
1392
|
size: {
|
|
1371
|
-
'...
|
|
1372
|
-
size = size === true ? '$true' : size
|
|
1373
|
-
const sizePx = tokens.space[size] ?? size
|
|
1374
|
-
return {
|
|
1375
|
-
width: sizePx,
|
|
1376
|
-
height: sizePx,
|
|
1377
|
-
minWidth: sizePx,
|
|
1378
|
-
minHeight: sizePx,
|
|
1379
|
-
}
|
|
1380
|
-
},
|
|
1393
|
+
'...': getSpacerSize,
|
|
1381
1394
|
},
|
|
1382
1395
|
|
|
1383
1396
|
flex: {
|
|
@@ -1530,8 +1543,6 @@ function isUnspaced(child: React.ReactNode) {
|
|
|
1530
1543
|
return t?.['isVisuallyHidden'] || t?.['isUnspaced']
|
|
1531
1544
|
}
|
|
1532
1545
|
|
|
1533
|
-
const DefaultProps = new Map()
|
|
1534
|
-
|
|
1535
1546
|
const AbsoluteFill: any = createComponent({
|
|
1536
1547
|
defaultProps: {
|
|
1537
1548
|
...stackDefaultStyles,
|
package/src/createTamagui.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { isWeb } from '@tamagui/constants'
|
|
|
2
2
|
|
|
3
3
|
import { configListeners, setConfig, setTokens } from './config'
|
|
4
4
|
import { Variable } from './createVariable'
|
|
5
|
-
import { createVariables } from './createVariables'
|
|
5
|
+
import { DeepVariableObject, createVariables } from './createVariables'
|
|
6
6
|
import { getThemeCSSRules } from './helpers/getThemeCSSRules'
|
|
7
7
|
import {
|
|
8
8
|
getAllRules,
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
CreateTamaguiProps,
|
|
20
20
|
DedupedTheme,
|
|
21
21
|
DedupedThemes,
|
|
22
|
+
GenericFont,
|
|
22
23
|
GetCSS,
|
|
23
24
|
InferTamaguiConfig,
|
|
24
25
|
TamaguiInternalConfig,
|
|
@@ -38,62 +39,63 @@ export function createTamagui<Conf extends CreateTamaguiProps>(
|
|
|
38
39
|
return configIn as any
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
if (process.env.NODE_ENV === 'development') {
|
|
42
|
-
if (!configIn.tokens) {
|
|
43
|
-
throw new Error('Must define tokens')
|
|
44
|
-
}
|
|
45
|
-
if (!configIn.themes) {
|
|
46
|
-
throw new Error('Must define themes')
|
|
47
|
-
}
|
|
48
|
-
if (!configIn.fonts) {
|
|
49
|
-
throw new Error('Must define fonts')
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
42
|
// ensure variables
|
|
54
|
-
const tokens = createVariables(configIn.tokens)
|
|
55
|
-
|
|
56
|
-
// faster lookups
|
|
57
43
|
const tokensParsed: TokensParsed = {} as any
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
for (const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
44
|
+
const tokens = createVariables(configIn.tokens || {})
|
|
45
|
+
|
|
46
|
+
if (configIn.tokens) {
|
|
47
|
+
// faster lookups
|
|
48
|
+
const tokensMerged: TokensMerged = {} as any
|
|
49
|
+
for (const cat in tokens) {
|
|
50
|
+
tokensParsed[cat] = {}
|
|
51
|
+
tokensMerged[cat] = {}
|
|
52
|
+
const tokenCat = tokens[cat]
|
|
53
|
+
for (const key in tokenCat) {
|
|
54
|
+
const val = tokenCat[key]
|
|
55
|
+
const prefixedKey = `$${key}`
|
|
56
|
+
tokensParsed[cat][prefixedKey] = val as any
|
|
57
|
+
tokensMerged[cat][prefixedKey] = val as any
|
|
58
|
+
tokensMerged[cat][key] = val as any
|
|
59
|
+
}
|
|
69
60
|
}
|
|
61
|
+
setTokens(tokensMerged)
|
|
70
62
|
}
|
|
71
|
-
setTokens(tokensMerged)
|
|
72
63
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
64
|
+
let foundThemes: DedupedThemes | undefined
|
|
65
|
+
if (configIn.themes) {
|
|
66
|
+
const noThemes = Object.keys(configIn.themes).length === 0
|
|
67
|
+
foundThemes = scanAllSheets(noThemes, tokensParsed)
|
|
68
|
+
}
|
|
76
69
|
|
|
77
|
-
|
|
78
|
-
Object.entries(configIn.fonts!).map(([k, v]) => {
|
|
79
|
-
return [k, createVariables(v, 'f', true)]
|
|
80
|
-
})
|
|
81
|
-
)
|
|
70
|
+
listenForSheetChanges()
|
|
82
71
|
|
|
83
72
|
let fontSizeTokens: Set<string> | null = null
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
for (const familyName in fontTokens) {
|
|
88
|
-
const font = fontTokens[familyName]
|
|
89
|
-
const fontParsed = parseFont(font)
|
|
90
|
-
res[`$${familyName}`] = fontParsed
|
|
91
|
-
if (!fontSizeTokens && fontParsed.size) {
|
|
92
|
-
fontSizeTokens = new Set(Object.keys(fontParsed.size))
|
|
73
|
+
let fontsParsed:
|
|
74
|
+
| {
|
|
75
|
+
[k: string]: DeepVariableObject<GenericFont<string>>
|
|
93
76
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
77
|
+
| undefined
|
|
78
|
+
|
|
79
|
+
if (configIn.fonts) {
|
|
80
|
+
const fontTokens = Object.fromEntries(
|
|
81
|
+
Object.entries(configIn.fonts).map(([k, v]) => {
|
|
82
|
+
return [k, createVariables(v, 'f', true)]
|
|
83
|
+
})
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
fontsParsed = (() => {
|
|
87
|
+
const res = {} as typeof fontTokens
|
|
88
|
+
for (const familyName in fontTokens) {
|
|
89
|
+
const font = fontTokens[familyName]
|
|
90
|
+
const fontParsed = parseFont(font)
|
|
91
|
+
res[`$${familyName}`] = fontParsed
|
|
92
|
+
if (!fontSizeTokens && fontParsed.size) {
|
|
93
|
+
fontSizeTokens = new Set(Object.keys(fontParsed.size))
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return res!
|
|
97
|
+
})()
|
|
98
|
+
}
|
|
97
99
|
|
|
98
100
|
const specificTokens = {}
|
|
99
101
|
|
|
@@ -238,14 +240,14 @@ ${runtimeStyles}`
|
|
|
238
240
|
let defaultFontName =
|
|
239
241
|
configIn.defaultFont ||
|
|
240
242
|
// uses font named "body" if present for compat
|
|
241
|
-
('body' in configIn.fonts ? 'body' : '')
|
|
243
|
+
(configIn.fonts && ('body' in configIn.fonts ? 'body' : ''))
|
|
242
244
|
|
|
243
245
|
if (!defaultFontName && configIn.fonts) {
|
|
244
246
|
// defaults to the first font to make life easier
|
|
245
247
|
defaultFontName = Object.keys(configIn.fonts)[0]
|
|
246
248
|
}
|
|
247
249
|
|
|
248
|
-
if (defaultFontName[0] === '$') {
|
|
250
|
+
if (defaultFontName?.[0] === '$') {
|
|
249
251
|
defaultFontName = defaultFontName.slice(1)
|
|
250
252
|
}
|
|
251
253
|
|
|
@@ -253,6 +255,7 @@ ${runtimeStyles}`
|
|
|
253
255
|
const defaultFont = `$${defaultFontName}`
|
|
254
256
|
|
|
255
257
|
const config: TamaguiInternalConfig = {
|
|
258
|
+
fonts: {},
|
|
256
259
|
groupNames: [],
|
|
257
260
|
settings: {},
|
|
258
261
|
onlyAllowShorthands: false,
|
|
@@ -267,7 +270,7 @@ ${runtimeStyles}`
|
|
|
267
270
|
? Object.fromEntries(Object.entries(shorthands).map(([k, v]) => [v, k]))
|
|
268
271
|
: {},
|
|
269
272
|
themes: themeConfig.themes as any,
|
|
270
|
-
fontsParsed,
|
|
273
|
+
fontsParsed: fontsParsed || {},
|
|
271
274
|
themeConfig,
|
|
272
275
|
tokensParsed: tokensParsed as any,
|
|
273
276
|
parsed: true,
|
|
@@ -55,7 +55,12 @@ import type {
|
|
|
55
55
|
import { createMediaStyle } from './createMediaStyle'
|
|
56
56
|
import { fixStyles } from './expandStyles'
|
|
57
57
|
import { getGroupPropParts } from './getGroupPropParts'
|
|
58
|
-
import {
|
|
58
|
+
import {
|
|
59
|
+
generateAtomicStyles,
|
|
60
|
+
getStylesAtomic,
|
|
61
|
+
styleToCSS,
|
|
62
|
+
transformsToString,
|
|
63
|
+
} from './getStylesAtomic'
|
|
59
64
|
import {
|
|
60
65
|
insertStyleRules,
|
|
61
66
|
insertedTransforms,
|
|
@@ -680,10 +685,11 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
680
685
|
|
|
681
686
|
// have to run this logic again here because expansions may need to be passed down
|
|
682
687
|
// see StyledButtonVariantPseudoMerge test
|
|
683
|
-
const
|
|
684
|
-
|
|
688
|
+
const shouldPassThrough =
|
|
689
|
+
(styleProps.noExpand && isPseudo) ||
|
|
690
|
+
(isHOC && (isMediaOrPseudo || parentStaticConfig?.variants?.[keyInit]))
|
|
685
691
|
|
|
686
|
-
if (
|
|
692
|
+
if (shouldPassThrough) {
|
|
687
693
|
passDownProp(viewProps, key, val, isMediaOrPseudo)
|
|
688
694
|
if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
|
|
689
695
|
console.groupCollapsed(` - passing down prop ${key}`)
|
|
@@ -694,7 +700,6 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
694
700
|
continue
|
|
695
701
|
}
|
|
696
702
|
|
|
697
|
-
// pseudo
|
|
698
703
|
if (isPseudo) {
|
|
699
704
|
if (!val) continue
|
|
700
705
|
|
|
@@ -811,7 +816,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
811
816
|
mergeStyle(styleState, pkey, defaultVal)
|
|
812
817
|
}
|
|
813
818
|
} else {
|
|
814
|
-
const curImportance = usedKeys[
|
|
819
|
+
const curImportance = usedKeys[pkey] || 0
|
|
815
820
|
const shouldMerge = importance >= curImportance
|
|
816
821
|
|
|
817
822
|
if (shouldMerge) {
|
|
@@ -819,7 +824,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
819
824
|
pseudos[key] ||= {}
|
|
820
825
|
pseudos[key][pkey] = val
|
|
821
826
|
mergeStyle(styleState, pkey, val)
|
|
822
|
-
usedKeys[pkey]
|
|
827
|
+
usedKeys[pkey] = Math.max(usedKeys[pkey], importance)
|
|
823
828
|
}
|
|
824
829
|
|
|
825
830
|
if (process.env.NODE_ENV === 'development' && debug === 'verbose') {
|
|
@@ -829,6 +834,7 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
829
834
|
curImportance,
|
|
830
835
|
pkey,
|
|
831
836
|
val,
|
|
837
|
+
transforms: { ...styleState.transforms },
|
|
832
838
|
})
|
|
833
839
|
}
|
|
834
840
|
}
|
|
@@ -1058,6 +1064,8 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
1058
1064
|
// biome-ignore lint/suspicious/noConsoleLog: <explanation>
|
|
1059
1065
|
console.log('style', { ...style })
|
|
1060
1066
|
// biome-ignore lint/suspicious/noConsoleLog: <explanation>
|
|
1067
|
+
console.log('transforms', { ...transforms })
|
|
1068
|
+
// biome-ignore lint/suspicious/noConsoleLog: <explanation>
|
|
1061
1069
|
console.log('viewProps', { ...viewProps })
|
|
1062
1070
|
} catch {
|
|
1063
1071
|
// RN can run into PayloadTooLargeError: request entity too large
|
|
@@ -1102,6 +1110,17 @@ export const getSplitStyles: StyleSplitter = (
|
|
|
1102
1110
|
.forEach(([key, val]) => {
|
|
1103
1111
|
mergeTransform(style, key, val, true)
|
|
1104
1112
|
})
|
|
1113
|
+
|
|
1114
|
+
// Button for example uses disableClassName: true but renders to a 'button' element, so needs this
|
|
1115
|
+
if (process.env.TAMAGUI_TARGET === 'web') {
|
|
1116
|
+
if (
|
|
1117
|
+
!staticConfig.isReactNative &&
|
|
1118
|
+
!styleProps.isAnimated &&
|
|
1119
|
+
Array.isArray(style.transform)
|
|
1120
|
+
) {
|
|
1121
|
+
style.transform = transformsToString(style.transform) as any
|
|
1122
|
+
}
|
|
1123
|
+
}
|
|
1105
1124
|
}
|
|
1106
1125
|
|
|
1107
1126
|
// add in defaults if not set:
|
|
@@ -41,6 +41,24 @@ let conf: TamaguiInternalConfig
|
|
|
41
41
|
|
|
42
42
|
// mutates...
|
|
43
43
|
|
|
44
|
+
export function transformsToString(transforms: any[]) {
|
|
45
|
+
return transforms
|
|
46
|
+
.map(
|
|
47
|
+
// { scale: 2 } => 'scale(2)'
|
|
48
|
+
// { translateX: 20 } => 'translateX(20px)'
|
|
49
|
+
// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'
|
|
50
|
+
(transform) => {
|
|
51
|
+
const type = Object.keys(transform)[0]
|
|
52
|
+
const value = transform[type]
|
|
53
|
+
if (type === 'matrix' || type === 'matrix3d') {
|
|
54
|
+
return `${type}(${value.join(',')})`
|
|
55
|
+
}
|
|
56
|
+
return `${type}(${normalizeValueWithProperty(value, type)})`
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
.join(' ')
|
|
60
|
+
}
|
|
61
|
+
|
|
44
62
|
export const generateAtomicStyles = (
|
|
45
63
|
style: ViewStyleWithPseudos,
|
|
46
64
|
pseudo?: PseudoDescriptor
|
|
@@ -59,21 +77,7 @@ export const generateAtomicStyles = (
|
|
|
59
77
|
|
|
60
78
|
// transform
|
|
61
79
|
if (key === 'transform' && Array.isArray(style.transform)) {
|
|
62
|
-
val = (val
|
|
63
|
-
.map(
|
|
64
|
-
// { scale: 2 } => 'scale(2)'
|
|
65
|
-
// { translateX: 20 } => 'translateX(20px)'
|
|
66
|
-
// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'
|
|
67
|
-
(transform) => {
|
|
68
|
-
const type = Object.keys(transform)[0]
|
|
69
|
-
const value = transform[type]
|
|
70
|
-
if (type === 'matrix' || type === 'matrix3d') {
|
|
71
|
-
return `${type}(${value.join(',')})`
|
|
72
|
-
}
|
|
73
|
-
return `${type}(${normalizeValueWithProperty(value, type)})`
|
|
74
|
-
}
|
|
75
|
-
)
|
|
76
|
-
.join(' ')
|
|
80
|
+
val = transformsToString(val)
|
|
77
81
|
}
|
|
78
82
|
|
|
79
83
|
const value = normalizeValueWithProperty(val, key)
|
|
@@ -23,7 +23,8 @@ export function getThemeCSSRules(props: {
|
|
|
23
23
|
const { config, themeName, theme, names } = props
|
|
24
24
|
|
|
25
25
|
// special case for SSR
|
|
26
|
-
const hasDarkLight =
|
|
26
|
+
const hasDarkLight =
|
|
27
|
+
config.themes && ('light' in config.themes || 'dark' in config.themes)
|
|
27
28
|
const CNP = `.${THEME_CLASSNAME_PREFIX}`
|
|
28
29
|
let vars = ''
|
|
29
30
|
|