@tamagui/web 1.103.0 → 1.103.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/createComponent.js +4 -2
- package/dist/cjs/createComponent.js.map +1 -1
- package/dist/cjs/createComponent.native.js +4 -2
- package/dist/cjs/createComponent.native.js.map +2 -2
- package/dist/cjs/helpers/getSplitStyles.js +1 -0
- package/dist/cjs/helpers/getSplitStyles.js.map +1 -1
- package/dist/cjs/helpers/getSplitStyles.native.js +1 -0
- package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/cjs/helpers/getStylesAtomic.js +4 -1
- package/dist/cjs/helpers/getStylesAtomic.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.js +25 -20
- package/dist/cjs/views/TamaguiProvider.js.map +1 -1
- package/dist/cjs/views/TamaguiProvider.native.js +65 -73
- package/dist/cjs/views/TamaguiProvider.native.js.map +2 -2
- package/dist/cjs/views/Text.js +2 -1
- package/dist/cjs/views/Text.js.map +1 -1
- package/dist/esm/createComponent.js +5 -3
- package/dist/esm/createComponent.js.map +1 -1
- package/dist/esm/createComponent.mjs +5 -3
- package/dist/esm/createComponent.native.js +5 -3
- package/dist/esm/createComponent.native.js.map +2 -2
- package/dist/esm/helpers/getSplitStyles.js +1 -0
- package/dist/esm/helpers/getSplitStyles.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.mjs +1 -0
- package/dist/esm/helpers/getSplitStyles.native.js +1 -0
- package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
- package/dist/esm/helpers/getStylesAtomic.js +4 -1
- package/dist/esm/helpers/getStylesAtomic.js.map +1 -1
- package/dist/esm/helpers/getStylesAtomic.mjs +5 -3
- package/dist/esm/views/TamaguiProvider.js +25 -12
- package/dist/esm/views/TamaguiProvider.js.map +1 -1
- package/dist/esm/views/TamaguiProvider.mjs +29 -11
- package/dist/esm/views/TamaguiProvider.native.js +65 -65
- package/dist/esm/views/TamaguiProvider.native.js.map +2 -2
- package/dist/esm/views/Text.js +2 -1
- package/dist/esm/views/Text.js.map +1 -1
- package/dist/esm/views/Text.mjs +2 -1
- package/package.json +11 -11
- package/src/createComponent.tsx +14 -1
- package/src/helpers/getSplitStyles.tsx +1 -0
- package/src/helpers/getStylesAtomic.ts +15 -5
- package/src/types.tsx +1 -0
- package/src/views/TamaguiProvider.tsx +41 -28
- package/src/views/Text.tsx +1 -1
- package/types/createComponent.d.ts.map +1 -1
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/types.d.ts +1 -0
- package/types/types.d.ts.map +1 -1
- package/types/views/TamaguiProvider.d.ts +1 -1
- package/types/views/TamaguiProvider.d.ts.map +1 -1
|
@@ -1,33 +1,51 @@
|
|
|
1
|
-
import { isClient } from "@tamagui/constants";
|
|
2
|
-
import
|
|
1
|
+
import { isClient, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
|
+
import { useState, useMemo, useEffect } from "react";
|
|
3
3
|
import { ComponentContext } from "../contexts/ComponentContext.mjs";
|
|
4
|
+
import { useDidHydrateOnceRoot } from "../hooks/useDidHydrateOnce.mjs";
|
|
4
5
|
import { setupMediaListeners } from "../hooks/useMedia.mjs";
|
|
5
6
|
import { ThemeProvider } from "./ThemeProvider.mjs";
|
|
6
|
-
import { useDidHydrateOnceRoot } from "../hooks/useDidHydrateOnce.mjs";
|
|
7
7
|
import { jsx } from "react/jsx-runtime";
|
|
8
8
|
function TamaguiProvider({
|
|
9
9
|
children,
|
|
10
10
|
disableInjectCSS,
|
|
11
11
|
config,
|
|
12
|
-
|
|
12
|
+
className,
|
|
13
|
+
defaultTheme,
|
|
14
|
+
disableRootThemeClass,
|
|
15
|
+
reset,
|
|
16
|
+
themeClassNameOnRoot
|
|
13
17
|
}) {
|
|
14
|
-
|
|
15
|
-
if (config &&
|
|
18
|
+
setupMediaListeners(), isClient && (useDidHydrateOnceRoot(), useIsomorphicLayoutEffect(() => {
|
|
19
|
+
if (config && !disableInjectCSS) {
|
|
16
20
|
const style = document.createElement("style");
|
|
17
21
|
return style.appendChild(document.createTextNode(config.getCSS())), document.head.appendChild(style), () => {
|
|
18
22
|
document.head.removeChild(style);
|
|
19
23
|
};
|
|
20
24
|
}
|
|
21
|
-
}, [config, disableInjectCSS]))
|
|
25
|
+
}, [config, disableInjectCSS]));
|
|
26
|
+
const contents = useMemo(() => /* @__PURE__ */jsx(ComponentContext.Provider, {
|
|
22
27
|
animationDriver: config?.animations,
|
|
23
28
|
children: /* @__PURE__ */jsx(ThemeProvider, {
|
|
24
|
-
themeClassNameOnRoot: config?.themeClassNameOnRoot,
|
|
25
|
-
disableRootThemeClass: config?.disableRootThemeClass,
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
themeClassNameOnRoot: themeClassNameOnRoot ?? config?.themeClassNameOnRoot,
|
|
30
|
+
disableRootThemeClass: disableRootThemeClass ?? config?.disableRootThemeClass,
|
|
31
|
+
defaultTheme: defaultTheme ?? (config ? Object.keys(config.themes)[0] : ""),
|
|
32
|
+
reset,
|
|
33
|
+
className,
|
|
28
34
|
children
|
|
29
35
|
})
|
|
36
|
+
}), []);
|
|
37
|
+
return /* @__PURE__ */jsx(UnmountedClassName, {
|
|
38
|
+
children: contents
|
|
30
39
|
});
|
|
31
40
|
}
|
|
41
|
+
function UnmountedClassName(props) {
|
|
42
|
+
const [mounted, setMounted] = useState(!1);
|
|
43
|
+
return useEffect(() => {
|
|
44
|
+
setMounted(!0);
|
|
45
|
+
}, []), isWeb ? /* @__PURE__ */jsx("span", {
|
|
46
|
+
className: mounted ? "" : "t_unmounted",
|
|
47
|
+
children: props.children
|
|
48
|
+
}) : props.children;
|
|
49
|
+
}
|
|
32
50
|
TamaguiProvider.displayName = "TamaguiProvider";
|
|
33
51
|
export { TamaguiProvider };
|
|
@@ -1,69 +1,55 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { isClient } from "@tamagui/constants";
|
|
3
|
-
import
|
|
2
|
+
import { isClient, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
3
|
+
import { useState, useMemo, useEffect } from "react";
|
|
4
4
|
import { ComponentContext } from "../contexts/ComponentContext";
|
|
5
|
+
import { useDidHydrateOnceRoot } from "../hooks/useDidHydrateOnce";
|
|
5
6
|
import { setupMediaListeners } from "../hooks/useMedia";
|
|
6
7
|
import { ThemeProvider } from "./ThemeProvider";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
enumerable: !0,
|
|
12
|
-
configurable: !0,
|
|
13
|
-
writable: !0
|
|
14
|
-
}) : obj[key] = value, obj;
|
|
8
|
+
function _array_like_to_array(arr, len) {
|
|
9
|
+
(len == null || len > arr.length) && (len = arr.length);
|
|
10
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
11
|
+
return arr2;
|
|
15
12
|
}
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
var source = arguments[i] != null ? arguments[i] : {}, ownKeys2 = Object.keys(source);
|
|
19
|
-
typeof Object.getOwnPropertySymbols == "function" && (ownKeys2 = ownKeys2.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
20
|
-
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
21
|
-
}))), ownKeys2.forEach(function(key) {
|
|
22
|
-
_define_property(target, key, source[key]);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
return target;
|
|
13
|
+
function _array_with_holes(arr) {
|
|
14
|
+
if (Array.isArray(arr)) return arr;
|
|
26
15
|
}
|
|
27
|
-
function
|
|
28
|
-
var
|
|
29
|
-
if (
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
16
|
+
function _iterable_to_array_limit(arr, i) {
|
|
17
|
+
var _i = arr == null ? null : typeof Symbol < "u" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
18
|
+
if (_i != null) {
|
|
19
|
+
var _arr = [], _n = !0, _d = !1, _s, _e;
|
|
20
|
+
try {
|
|
21
|
+
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), !(i && _arr.length === i)); _n = !0)
|
|
22
|
+
;
|
|
23
|
+
} catch (err) {
|
|
24
|
+
_d = !0, _e = err;
|
|
25
|
+
} finally {
|
|
26
|
+
try {
|
|
27
|
+
!_n && _i.return != null && _i.return();
|
|
28
|
+
} finally {
|
|
29
|
+
if (_d) throw _e;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return _arr;
|
|
34
33
|
}
|
|
35
|
-
return keys;
|
|
36
34
|
}
|
|
37
|
-
function
|
|
38
|
-
|
|
39
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
40
|
-
}), target;
|
|
35
|
+
function _non_iterable_rest() {
|
|
36
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
41
37
|
}
|
|
42
|
-
function
|
|
43
|
-
|
|
44
|
-
var target = _object_without_properties_loose(source, excluded), key, i;
|
|
45
|
-
if (Object.getOwnPropertySymbols) {
|
|
46
|
-
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
47
|
-
for (i = 0; i < sourceSymbolKeys.length; i++)
|
|
48
|
-
key = sourceSymbolKeys[i], !(excluded.indexOf(key) >= 0) && Object.prototype.propertyIsEnumerable.call(source, key) && (target[key] = source[key]);
|
|
49
|
-
}
|
|
50
|
-
return target;
|
|
38
|
+
function _sliced_to_array(arr, i) {
|
|
39
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
51
40
|
}
|
|
52
|
-
function
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
41
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
42
|
+
if (o) {
|
|
43
|
+
if (typeof o == "string") return _array_like_to_array(o, minLen);
|
|
44
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
45
|
+
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set") return Array.from(n);
|
|
46
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
47
|
+
}
|
|
58
48
|
}
|
|
59
|
-
function TamaguiProvider(
|
|
60
|
-
var children =
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"config"
|
|
64
|
-
]);
|
|
65
|
-
setupMediaListeners(), isClient && (useDidHydrateOnceRoot(), React.useInsertionEffect(function() {
|
|
66
|
-
if (config && (config.disableSSR || document.documentElement.classList.contains("t_unmounted") && document.documentElement.classList.remove("t_unmounted"), !disableInjectCSS)) {
|
|
49
|
+
function TamaguiProvider(param) {
|
|
50
|
+
var children = param.children, disableInjectCSS = param.disableInjectCSS, config = param.config, className = param.className, defaultTheme = param.defaultTheme, disableRootThemeClass = param.disableRootThemeClass, reset = param.reset, themeClassNameOnRoot = param.themeClassNameOnRoot;
|
|
51
|
+
setupMediaListeners(), isClient && (useDidHydrateOnceRoot(), useIsomorphicLayoutEffect(function() {
|
|
52
|
+
if (config && !disableInjectCSS) {
|
|
67
53
|
var style = document.createElement("style");
|
|
68
54
|
return style.appendChild(document.createTextNode(config.getCSS())), document.head.appendChild(style), function() {
|
|
69
55
|
document.head.removeChild(style);
|
|
@@ -73,18 +59,32 @@ function TamaguiProvider(_param) {
|
|
|
73
59
|
config,
|
|
74
60
|
disableInjectCSS
|
|
75
61
|
]));
|
|
76
|
-
var
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
62
|
+
var contents = useMemo(function() {
|
|
63
|
+
return /* @__PURE__ */ _jsx(ComponentContext.Provider, {
|
|
64
|
+
animationDriver: config == null ? void 0 : config.animations,
|
|
65
|
+
children: /* @__PURE__ */ _jsx(ThemeProvider, {
|
|
66
|
+
themeClassNameOnRoot: themeClassNameOnRoot ?? (config == null ? void 0 : config.themeClassNameOnRoot),
|
|
67
|
+
disableRootThemeClass: disableRootThemeClass ?? (config == null ? void 0 : config.disableRootThemeClass),
|
|
68
|
+
defaultTheme: defaultTheme ?? (config ? Object.keys(config.themes)[0] : ""),
|
|
69
|
+
reset,
|
|
70
|
+
className,
|
|
71
|
+
children
|
|
72
|
+
})
|
|
73
|
+
});
|
|
74
|
+
}, []);
|
|
75
|
+
return /* @__PURE__ */ _jsx(UnmountedClassName, {
|
|
76
|
+
children: contents
|
|
86
77
|
});
|
|
87
78
|
}
|
|
79
|
+
function UnmountedClassName(props) {
|
|
80
|
+
var _useState = _sliced_to_array(useState(!1), 2), mounted = _useState[0], setMounted = _useState[1];
|
|
81
|
+
return useEffect(function() {
|
|
82
|
+
setMounted(!0);
|
|
83
|
+
}, []), isWeb ? /* @__PURE__ */ _jsx("span", {
|
|
84
|
+
className: mounted ? "" : "t_unmounted",
|
|
85
|
+
children: props.children
|
|
86
|
+
}) : props.children;
|
|
87
|
+
}
|
|
88
88
|
TamaguiProvider.displayName = "TamaguiProvider";
|
|
89
89
|
export {
|
|
90
90
|
TamaguiProvider
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/views/Users/n8/tamagui/code/core/web/src/views/TamaguiProvider.tsx"],
|
|
4
|
-
"mappings": ";AAAA,SAASA,
|
|
5
|
-
"names": ["isClient", "
|
|
4
|
+
"mappings": ";AAAA,SAASA,UAAUC,OAAOC,iCAAiC;AAC3D,SAASC,UAAUC,SAASC,iBAAiB;AAC7C,SAASC,wBAAwB;AACjC,SAASC,6BAA6B;AACtC,SAASC,2BAA2B;AAEpC,SAASC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEvB,SAASC,gBAAgB,OAST;MARrBC,WAD8B,MAC9BA,UACAC,mBAF8B,MAE9BA,kBACAC,SAH8B,MAG9BA,QACAC,YAJ8B,MAI9BA,WACAC,eAL8B,MAK9BA,cACAC,wBAN8B,MAM9BA,uBACAC,QAP8B,MAO9BA,OACAC,uBAR8B,MAQ9BA;AAEAV,sBAAAA,GAEIR,aAEFO,sBAAAA,GAEAL,0BAA0B,WAAA;AACxB,QAAKW,UACD,CAACD,kBAAkB;AACrB,UAAMO,QAAQC,SAASC,cAAc,OAAA;AACrCF,mBAAMG,YAAYF,SAASG,eAAeV,OAAOW,OAAM,CAAA,CAAA,GACvDJ,SAASK,KAAKH,YAAYH,KAAAA,GACnB,WAAA;AACLC,iBAASK,KAAKC,YAAYP,KAAAA;MAC5B;IACF;EACF,GAAG;IAACN;IAAQD;GAAiB;AAG/B,MAAMe,WAAWvB,QAAQ,WAAA;AACvB,WACE,qBAACE,iBAAiBsB,UAAQ;MAACC,iBAAiBhB,UAAAA,OAAAA,SAAAA,OAAQiB;gBAClD,qBAACrB,eAAAA;QACCS,sBAAsBA,yBAAwBL,UAAAA,OAAAA,SAAAA,OAAQK;QACtDF,uBAAuBA,0BAAyBH,UAAAA,OAAAA,SAAAA,OAAQG;QACxDD,cAAcA,iBAAiBF,SAASkB,OAAOC,KAAKnB,OAAOoB,MAAM,EAAE,CAAA,IAAK;QACxEhB;QACAH;;;;EAMR,GAAG,CAAA,CAAE;AAEL,SAAO,qBAACoB,oBAAAA;cAAoBP;;AAC9B;AAGA,SAASO,mBAAmBC,OAAoC;AAC9D,MAA8BhC,YAAAA,iBAAAA,SAAS,EAAA,GAAA,CAAA,GAAhCiC,UAAuBjC,UAAAA,CAAAA,GAAdkC,aAAclC,UAAAA,CAAAA;AAM9B,SAJAE,UAAU,WAAA;AACRgC,eAAW,EAAA;EACb,GAAG,CAAA,CAAE,GAEApC,QAIE,qBAACqC,QAAAA;IAAKxB,WAAWsB,UAAU,KAAK;cAAgBD,MAAMxB;OAHpDwB,MAAMxB;AAIjB;AAEAD,gBAAgB,cAAiB;",
|
|
5
|
+
"names": ["isClient", "isWeb", "useIsomorphicLayoutEffect", "useState", "useMemo", "useEffect", "ComponentContext", "useDidHydrateOnceRoot", "setupMediaListeners", "ThemeProvider", "TamaguiProvider", "children", "disableInjectCSS", "config", "className", "defaultTheme", "disableRootThemeClass", "reset", "themeClassNameOnRoot", "style", "document", "createElement", "appendChild", "createTextNode", "getCSS", "head", "removeChild", "contents", "Provider", "animationDriver", "animations", "Object", "keys", "themes", "UnmountedClassName", "props", "mounted", "setMounted", "span"]
|
|
6
6
|
}
|
package/dist/esm/views/Text.js
CHANGED
|
@@ -6,7 +6,8 @@ const ellipseStyle = {
|
|
|
6
6
|
textOverflow: "ellipsis",
|
|
7
7
|
whiteSpace: "nowrap"
|
|
8
8
|
}, defaultWebStyle = {
|
|
9
|
-
display: "inline",
|
|
9
|
+
display: "inline-block",
|
|
10
|
+
// display: inline breaks css transform styles
|
|
10
11
|
boxSizing: "border-box",
|
|
11
12
|
wordWrap: "break-word",
|
|
12
13
|
whiteSpace: "pre-wrap",
|
|
@@ -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;AAQhC,MAAM,eAAe;AAAA,EACnB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AACd,GAIM,kBAAkB;AAAA,EACtB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AACV,GAEM,gBAEA,cAMO,OAAO,gBAKlB;AAAA,EACA,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EAER,cAAc;AAAA,IACZ,YAAY;AAAA,IACZ,GACI;AAAA,EAIN;AAAA,EAEA,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,IAIA,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;AAAA;AAAA;AAAA,IAMF,SAAS;AAAA,MACP,MAAM;AAAA,IACR;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,aAAa;AAAA,IACX,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF,CAAC;AAED,KAAK,cAAiB;",
|
|
4
|
+
"mappings": "AAAA,SAAS,oBAAoB,mBAAmB;AAEhD,SAAS,uBAAuB;AAQhC,MAAM,eAAe;AAAA,EACnB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AACd,GAIM,kBAAkB;AAAA,EACtB,SAAS;AAAA;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AACV,GAEM,gBAEA,cAMO,OAAO,gBAKlB;AAAA,EACA,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EAER,cAAc;AAAA,IACZ,YAAY;AAAA,IACZ,GACI;AAAA,EAIN;AAAA,EAEA,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,IAIA,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;AAAA;AAAA;AAAA,IAMF,SAAS;AAAA,MACP,MAAM;AAAA,IACR;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,aAAa;AAAA,IACX,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF,CAAC;AAED,KAAK,cAAiB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/views/Text.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/web",
|
|
3
|
-
"version": "1.103.
|
|
3
|
+
"version": "1.103.1",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -27,18 +27,18 @@
|
|
|
27
27
|
"reset.css"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tamagui/compose-refs": "1.103.
|
|
31
|
-
"@tamagui/constants": "1.103.
|
|
32
|
-
"@tamagui/helpers": "1.103.
|
|
33
|
-
"@tamagui/normalize-css-color": "1.103.
|
|
34
|
-
"@tamagui/timer": "1.103.
|
|
35
|
-
"@tamagui/types": "1.103.
|
|
36
|
-
"@tamagui/use-did-finish-ssr": "1.103.
|
|
37
|
-
"@tamagui/use-event": "1.103.
|
|
38
|
-
"@tamagui/use-force-update": "1.103.
|
|
30
|
+
"@tamagui/compose-refs": "1.103.1",
|
|
31
|
+
"@tamagui/constants": "1.103.1",
|
|
32
|
+
"@tamagui/helpers": "1.103.1",
|
|
33
|
+
"@tamagui/normalize-css-color": "1.103.1",
|
|
34
|
+
"@tamagui/timer": "1.103.1",
|
|
35
|
+
"@tamagui/types": "1.103.1",
|
|
36
|
+
"@tamagui/use-did-finish-ssr": "1.103.1",
|
|
37
|
+
"@tamagui/use-event": "1.103.1",
|
|
38
|
+
"@tamagui/use-force-update": "1.103.1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@tamagui/build": "1.103.
|
|
41
|
+
"@tamagui/build": "1.103.1",
|
|
42
42
|
"@testing-library/react": "^14.0.0",
|
|
43
43
|
"csstype": "^3.0.10",
|
|
44
44
|
"typescript": "^5.5.2",
|
package/src/createComponent.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { composeRefs } from '@tamagui/compose-refs'
|
|
2
|
-
import { isClient, isServer, isWeb } from '@tamagui/constants'
|
|
2
|
+
import { isClient, isServer, isWeb, useIsomorphicLayoutEffect } from '@tamagui/constants'
|
|
3
3
|
import {
|
|
4
4
|
StyleObjectIdentifier,
|
|
5
5
|
StyleObjectRules,
|
|
@@ -887,6 +887,9 @@ export function createComponent<
|
|
|
887
887
|
if ((isAnimated || supportsCSSVars) && animations) {
|
|
888
888
|
animationStyles = animations.style
|
|
889
889
|
viewProps.style = animationStyles
|
|
890
|
+
if (animations.className) {
|
|
891
|
+
viewProps.className = `${viewProps.className || ''} ${animations.className}`
|
|
892
|
+
}
|
|
890
893
|
}
|
|
891
894
|
|
|
892
895
|
if (process.env.NODE_ENV === 'development' && time) time`animations`
|
|
@@ -961,6 +964,16 @@ export function createComponent<
|
|
|
961
964
|
|
|
962
965
|
const unPress = () => setStateShallow({ press: false, pressIn: false })
|
|
963
966
|
|
|
967
|
+
if (process.env.NODE_ENV === 'development') {
|
|
968
|
+
useIsomorphicLayoutEffect(() => {
|
|
969
|
+
if (debugProp) {
|
|
970
|
+
console.groupCollapsed(`Rendered style >`)
|
|
971
|
+
console.warn(getComputedStyle(stateRef.current.host! as any))
|
|
972
|
+
console.groupEnd()
|
|
973
|
+
}
|
|
974
|
+
})
|
|
975
|
+
}
|
|
976
|
+
|
|
964
977
|
useEffect(() => {
|
|
965
978
|
if (disabled) {
|
|
966
979
|
return
|
|
@@ -150,16 +150,26 @@ function createAtomicRules(
|
|
|
150
150
|
value: any,
|
|
151
151
|
pseudo?: PseudoDescriptor
|
|
152
152
|
): string[] {
|
|
153
|
-
const
|
|
153
|
+
const pseudoIdPostfix = pseudo
|
|
154
154
|
? pseudo.name === 'disabled'
|
|
155
155
|
? `[aria-disabled]`
|
|
156
156
|
: `:${pseudo.name}`
|
|
157
157
|
: ''
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
158
|
+
const pseudoSelector = pseudo?.selector
|
|
159
|
+
|
|
160
|
+
let selector = pseudo
|
|
161
|
+
? pseudoSelector
|
|
162
|
+
? `${pseudoSelector} .${identifier}`
|
|
163
|
+
: `${selectorPriority[pseudo.name]} .${identifier}${pseudoIdPostfix}`
|
|
162
164
|
: `:root .${identifier}`
|
|
165
|
+
|
|
166
|
+
// enter style on css driver needs both:
|
|
167
|
+
// .t_unmounted .selector
|
|
168
|
+
// .selector.t_unmounted
|
|
169
|
+
if (pseudoSelector === pseudoDescriptors.enterStyle.selector) {
|
|
170
|
+
selector = `${selector}, .${identifier}${pseudoSelector}`
|
|
171
|
+
}
|
|
172
|
+
|
|
163
173
|
const important = !!pseudo
|
|
164
174
|
|
|
165
175
|
let rules: string[] = []
|
package/src/types.tsx
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import { isClient } from '@tamagui/constants'
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { isClient, isWeb, useIsomorphicLayoutEffect } from '@tamagui/constants'
|
|
2
|
+
import { useState, useMemo, useEffect } from 'react'
|
|
4
3
|
import { ComponentContext } from '../contexts/ComponentContext'
|
|
4
|
+
import { useDidHydrateOnceRoot } from '../hooks/useDidHydrateOnce'
|
|
5
5
|
import { setupMediaListeners } from '../hooks/useMedia'
|
|
6
6
|
import type { TamaguiProviderProps } from '../types'
|
|
7
7
|
import { ThemeProvider } from './ThemeProvider'
|
|
8
|
-
import { useDidHydrateOnceRoot } from '../hooks/useDidHydrateOnce'
|
|
9
8
|
|
|
10
9
|
export function TamaguiProvider({
|
|
11
10
|
children,
|
|
12
11
|
disableInjectCSS,
|
|
13
12
|
config,
|
|
14
|
-
|
|
13
|
+
className,
|
|
14
|
+
defaultTheme,
|
|
15
|
+
disableRootThemeClass,
|
|
16
|
+
reset,
|
|
17
|
+
themeClassNameOnRoot,
|
|
15
18
|
}: TamaguiProviderProps) {
|
|
16
19
|
setupMediaListeners()
|
|
17
20
|
|
|
@@ -19,16 +22,8 @@ export function TamaguiProvider({
|
|
|
19
22
|
// inject CSS if asked to (not SSR compliant)
|
|
20
23
|
useDidHydrateOnceRoot()
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
useIsomorphicLayoutEffect(() => {
|
|
23
26
|
if (!config) return
|
|
24
|
-
if (!config.disableSSR) {
|
|
25
|
-
// for easier support of hidden-until-js mount animations
|
|
26
|
-
// user must set t_unmounted on documentElement from SSR
|
|
27
|
-
if (document.documentElement.classList.contains('t_unmounted')) {
|
|
28
|
-
document.documentElement.classList.remove('t_unmounted')
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
27
|
if (!disableInjectCSS) {
|
|
33
28
|
const style = document.createElement('style')
|
|
34
29
|
style.appendChild(document.createTextNode(config.getCSS()))
|
|
@@ -40,20 +35,38 @@ export function TamaguiProvider({
|
|
|
40
35
|
}, [config, disableInjectCSS])
|
|
41
36
|
}
|
|
42
37
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
38
|
+
const contents = useMemo(() => {
|
|
39
|
+
return (
|
|
40
|
+
<ComponentContext.Provider animationDriver={config?.animations}>
|
|
41
|
+
<ThemeProvider
|
|
42
|
+
themeClassNameOnRoot={themeClassNameOnRoot ?? config?.themeClassNameOnRoot}
|
|
43
|
+
disableRootThemeClass={disableRootThemeClass ?? config?.disableRootThemeClass}
|
|
44
|
+
defaultTheme={defaultTheme ?? (config ? Object.keys(config.themes)[0] : '')}
|
|
45
|
+
reset={reset}
|
|
46
|
+
className={className}
|
|
47
|
+
>
|
|
48
|
+
{children}
|
|
49
|
+
</ThemeProvider>
|
|
50
|
+
</ComponentContext.Provider>
|
|
51
|
+
)
|
|
52
|
+
}, [])
|
|
53
|
+
|
|
54
|
+
return <UnmountedClassName>{contents}</UnmountedClassName>
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// for CSS animations
|
|
58
|
+
function UnmountedClassName(props: { children: React.ReactNode }) {
|
|
59
|
+
const [mounted, setMounted] = useState(false)
|
|
60
|
+
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
setMounted(true)
|
|
63
|
+
}, [])
|
|
64
|
+
|
|
65
|
+
if (!isWeb) {
|
|
66
|
+
return props.children
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return <span className={mounted ? '' : 't_unmounted'}>{props.children}</span>
|
|
57
70
|
}
|
|
58
71
|
|
|
59
72
|
TamaguiProvider['displayName'] = 'TamaguiProvider'
|
package/src/views/Text.tsx
CHANGED
|
@@ -18,7 +18,7 @@ const ellipseStyle = {
|
|
|
18
18
|
export type Text = TamaguiTextElement
|
|
19
19
|
|
|
20
20
|
const defaultWebStyle = {
|
|
21
|
-
display: 'inline',
|
|
21
|
+
display: 'inline-block', // display: inline breaks css transform styles
|
|
22
22
|
boxSizing: 'border-box',
|
|
23
23
|
wordWrap: 'break-word',
|
|
24
24
|
whiteSpace: 'pre-wrap',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAQA,OAAO,KAYN,MAAM,OAAO,CAAA;AA0Bd,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAG/E,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EAKT,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,YAAY,EAEZ,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,SAAS,EAIV,MAAM,SAAS,CAAA;AAchB,KAAK,iBAAiB,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAEpF,eAAO,MAAM,kBAAkB,wBAA+B,CAAA;AAkE9D,eAAO,MAAM,iBAAiB,UACrB,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,+BACtB,iBAAiB,gBAChC,YAAY,UAClB,qBAAqB;;;;;;;;;;;;;;;;;;;CA+N9B,CAAA;AAuBD,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EACnD,GAAG,SAAS,cAAc,GAAG,cAAc,EAC3C,SAAS,GAAG,KAAK,EACjB,UAAU,SAAS,MAAM,GAAG,KAAK,EACjC,YAAY,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"createComponent.d.ts","sourceRoot":"","sources":["../src/createComponent.tsx"],"names":[],"mappings":"AAQA,OAAO,KAYN,MAAM,OAAO,CAAA;AA0Bd,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAG/E,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EAKT,cAAc,EACd,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,YAAY,EAEZ,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,SAAS,EAIV,MAAM,SAAS,CAAA;AAchB,KAAK,iBAAiB,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAEpF,eAAO,MAAM,kBAAkB,wBAA+B,CAAA;AAkE9D,eAAO,MAAM,iBAAiB,UACrB,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,+BACtB,iBAAiB,gBAChC,YAAY,UAClB,qBAAqB;;;;;;;;;;;;;;;;;;;CA+N9B,CAAA;AAuBD,wBAAgB,eAAe,CAC7B,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EACnD,GAAG,SAAS,cAAc,GAAG,cAAc,EAC3C,SAAS,GAAG,KAAK,EACjB,UAAU,SAAS,MAAM,GAAG,KAAK,EACjC,YAAY,EAAE,YAAY,wEAglC3B;AAsBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,OAEjD;yBAFe,QAAQ;;;AAkBxB,eAAO,MAAM,MAAM,yFA0CjB,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC5B,SAAS,CAAC,EAAE,cAAc,GAAG,OAAO,CAAA;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,mBA+FxD;AAwDD,eAAO,MAAM,UAAU,UAAW,GAAG,QAQpC,CAAA;AAED,eAAO,MAAM,uBAAuB,uFAOjC;IACD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,SAAS,KAAK,IAAI,CAAA;IAC5E,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACzB,gBAAgB,EAAE,iBAAiB,CAAA;IACnC,KAAK,EAAE,qBAAqB,CAAA;CAC7B,4CAqCA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,KAAK,EAEV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAOb,eAAe,EACf,YAAY,EAGZ,SAAS,EACT,WAAW,EAEZ,MAAM,UAAU,CAAA;AAsBjB,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAMhE,KAAK,aAAa,GAAG,CACnB,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAE3B,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,SAAS,EACjB,wBAAwB,CAAC,EAAE,OAAO,KAC/B,cAAc,CAAA;AAEnB,eAAO,MAAM,UAAU,MAAM,CAAA;AA8B7B,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAChF,OAAO,KAAK,EAEV,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAOb,eAAe,EACf,YAAY,EAGZ,SAAS,EACT,WAAW,EAEZ,MAAM,UAAU,CAAA;AAsBjB,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAMhE,KAAK,aAAa,GAAG,CACnB,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAE3B,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,SAAS,EACjB,wBAAwB,CAAC,EAAE,OAAO,KAC/B,cAAc,CAAA;AAEnB,eAAO,MAAM,UAAU,MAAM,CAAA;AA8B7B,eAAO,MAAM,cAAc,EAAE,aA+uC5B,CAAA;AAgED,eAAO,MAAM,WAAW,eACV,aAAa,UACjB,MAAM,WACL,MAAM,wBACO,OAAO,KAC5B,SA2BF,CAAA;AAQD,eAAO,MAAM,cAAc,EAAE,aAa5B,CAAA"}
|
package/types/types.d.ts
CHANGED
|
@@ -1436,6 +1436,7 @@ export type UseAnimationHook = (props: {
|
|
|
1436
1436
|
delay?: number;
|
|
1437
1437
|
}) => null | {
|
|
1438
1438
|
style?: StackStyleBase | StackStyleBase[];
|
|
1439
|
+
className?: string;
|
|
1439
1440
|
};
|
|
1440
1441
|
export type GestureReponderEvent = Exclude<View['props']['onResponderMove'], void> extends (event: infer Event) => void ? Event : never;
|
|
1441
1442
|
export type RulesToInsert = Record<string, StyleObject>;
|