@arcblock/ux 3.0.33 → 3.0.35
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/lib/Avatar/index.d.ts +3 -0
- package/lib/Avatar/index.js +26 -24
- package/lib/DIDConnect/auth-apps/auth-apps-info.js +20 -47
- package/lib/DIDConnect/icons/did-wallet-logo.d.ts +7 -0
- package/lib/DIDConnect/icons/did-wallet-logo.js +12 -0
- package/lib/DIDConnect/icons/github-logo.d.ts +7 -0
- package/lib/DIDConnect/icons/github-logo.js +11 -0
- package/lib/DIDConnect/provider-icon.d.ts +7 -0
- package/lib/DIDConnect/provider-icon.js +52 -0
- package/lib/Img/index.d.ts +9 -1
- package/lib/Img/index.js +83 -72
- package/lib/UserCard/components.js +15 -14
- package/lib/UserCard/index.js +41 -31
- package/lib/Util/constant.d.ts +2 -0
- package/lib/Util/constant.js +23 -20
- package/package.json +7 -7
- package/src/Avatar/index.jsx +3 -0
- package/src/DIDConnect/auth-apps/auth-apps-info.tsx +2 -37
- package/src/DIDConnect/icons/did-wallet-logo.tsx +18 -0
- package/src/DIDConnect/icons/github-logo.tsx +17 -0
- package/src/DIDConnect/provider-icon.tsx +62 -0
- package/src/Img/index.jsx +47 -9
- package/src/UserCard/components.tsx +1 -0
- package/src/UserCard/index.tsx +23 -6
- package/src/Util/constant.ts +3 -0
package/lib/Avatar/index.d.ts
CHANGED
@@ -21,6 +21,7 @@ export type AvatarProps = {
|
|
21
21
|
shape?: "" | "rectangle" | "square" | "hexagon" | "circle";
|
22
22
|
blockiesPadding?: true | false;
|
23
23
|
responsive?: false | true;
|
24
|
+
useProxyFallback?: boolean;
|
24
25
|
} & Omit<import('../Img').ImgProps, "size" | "src">;
|
25
26
|
export { Avatar as AvatarProps };
|
26
27
|
/**
|
@@ -34,6 +35,7 @@ export { Avatar as AvatarProps };
|
|
34
35
|
* shape?: '' | 'rectangle' | 'square' | 'hexagon' | 'circle';
|
35
36
|
* blockiesPadding?: true | false;
|
36
37
|
* responsive?: false | true;
|
38
|
+
* useProxyFallback?: boolean;
|
37
39
|
* } & Omit<import('../Img').ImgProps, 'size' | 'src'>} AvatarProps
|
38
40
|
*/
|
39
41
|
/**
|
@@ -51,6 +53,7 @@ declare namespace Avatar {
|
|
51
53
|
let shape: PropTypes.Requireable<string>;
|
52
54
|
let blockiesPadding: PropTypes.Requireable<boolean>;
|
53
55
|
let responsive: PropTypes.Requireable<boolean>;
|
56
|
+
let useProxyFallback: PropTypes.Requireable<boolean>;
|
54
57
|
}
|
55
58
|
export { propTypes_1 as propTypes };
|
56
59
|
}
|
package/lib/Avatar/index.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
2
|
-
import { useState as
|
3
|
-
import
|
2
|
+
import { useState as I, useMemo as P } from "react";
|
3
|
+
import a from "prop-types";
|
4
4
|
import { ErrorBoundary as z } from "react-error-boundary";
|
5
5
|
import { Shape as D } from "@arcblock/did-motif";
|
6
6
|
import { Box as u } from "@mui/material";
|
@@ -13,12 +13,12 @@ import { DID_PREFIX as f } from "../Util/constant.js";
|
|
13
13
|
function d({ ...s }) {
|
14
14
|
const r = Object.assign({}, s);
|
15
15
|
n(r.did) && (r.did = ""), n(r.size) && (r.size = 36), n(r.variant) && (r.variant = "default"), n(r.animation) && (r.animation = !1), n(r.shape) && (r.shape = ""), n(r.blockiesPadding) && (r.blockiesPadding = !0), n(r.responsive) && (r.responsive = !1);
|
16
|
-
const [
|
16
|
+
const [l, h] = I(!1), g = E(r, d, []), { did: i = "", size: e, src: p, variant: b, animation: v, shape: x, blockiesPadding: y, responsive: k, ...t } = g, c = P(() => R(i) ? T.createIcon({
|
17
17
|
seed: i.replace(f, "").toLowerCase(),
|
18
18
|
size: 8,
|
19
19
|
scale: 16
|
20
20
|
}).toDataURL() : null, [i]);
|
21
|
-
if (p && !
|
21
|
+
if (p && !l)
|
22
22
|
return /* @__PURE__ */ o(
|
23
23
|
m,
|
24
24
|
{
|
@@ -26,8 +26,9 @@ function d({ ...s }) {
|
|
26
26
|
src: p,
|
27
27
|
alt: i,
|
28
28
|
onError: () => h(!0),
|
29
|
-
...
|
30
|
-
className: `avatar-img--${b} ${
|
29
|
+
...t,
|
30
|
+
className: `avatar-img--${b} ${t?.className || ""}`,
|
31
|
+
useProxyFallback: !0,
|
31
32
|
sx: {
|
32
33
|
"& .avatar-img--rounded": {
|
33
34
|
borderRadius: "4px",
|
@@ -37,17 +38,17 @@ function d({ ...s }) {
|
|
37
38
|
borderRadius: "100%",
|
38
39
|
overflow: "hidden"
|
39
40
|
},
|
40
|
-
...
|
41
|
+
...t.sx
|
41
42
|
}
|
42
43
|
}
|
43
44
|
);
|
44
|
-
if (
|
45
|
+
if (c) {
|
45
46
|
if (y) {
|
46
|
-
const
|
47
|
+
const w = e > 24 ? 4 : 2;
|
47
48
|
return /* @__PURE__ */ o(
|
48
49
|
u,
|
49
50
|
{
|
50
|
-
...
|
51
|
+
...t,
|
51
52
|
sx: {
|
52
53
|
display: "flex",
|
53
54
|
alignItems: "center",
|
@@ -63,13 +64,13 @@ function d({ ...s }) {
|
|
63
64
|
borderRadius: `${Math.min(10, Math.floor(0.1 * e + 2))}px`,
|
64
65
|
background: "#ddd"
|
65
66
|
},
|
66
|
-
...
|
67
|
+
...t.sx
|
67
68
|
},
|
68
|
-
children: /* @__PURE__ */ o("div", { className: "blocky-icon-inner", children: /* @__PURE__ */ o(m, { width: e * 0.7 -
|
69
|
+
children: /* @__PURE__ */ o("div", { className: "blocky-icon-inner", children: /* @__PURE__ */ o(m, { width: e * 0.7 - w * 2, src: c, alt: i }) })
|
69
70
|
}
|
70
71
|
);
|
71
72
|
}
|
72
|
-
return /* @__PURE__ */ o(m, { ...
|
73
|
+
return /* @__PURE__ */ o(m, { ...t, width: e, src: c, alt: i, style: { marginRight: 4 } });
|
73
74
|
}
|
74
75
|
if (i)
|
75
76
|
return /* @__PURE__ */ o(
|
@@ -79,25 +80,26 @@ function d({ ...s }) {
|
|
79
80
|
size: e,
|
80
81
|
animation: v,
|
81
82
|
shape: D[(x || "").toUpperCase()],
|
82
|
-
responsive:
|
83
|
-
...
|
83
|
+
responsive: k,
|
84
|
+
...t
|
84
85
|
}
|
85
86
|
);
|
86
87
|
throw new Error(`Invalid DID: ${i}`);
|
87
88
|
}
|
88
89
|
d.propTypes = {
|
89
|
-
did:
|
90
|
-
size:
|
91
|
-
variant:
|
90
|
+
did: a.string,
|
91
|
+
size: a.number,
|
92
|
+
variant: a.oneOf(["circle", "rounded", "default"]),
|
92
93
|
// animation 仅对 did motif 有效
|
93
|
-
animation:
|
94
|
+
animation: a.bool,
|
94
95
|
// shape 仅对 did motif 有效, 明确指定 motif shape, 而非由 did role type 自动推断 shape
|
95
|
-
shape:
|
96
|
-
blockiesPadding:
|
97
|
-
responsive:
|
96
|
+
shape: a.oneOf(["", "rectangle", "square", "hexagon", "circle"]),
|
97
|
+
blockiesPadding: a.bool,
|
98
|
+
responsive: a.bool,
|
99
|
+
useProxyFallback: a.bool
|
98
100
|
};
|
99
101
|
function $(s) {
|
100
|
-
const r = s.size || 36,
|
102
|
+
const r = s.size || 36, l = { rounded: "4px", circle: "100%" }[s.variant] || 0;
|
101
103
|
return /* @__PURE__ */ o(
|
102
104
|
z,
|
103
105
|
{
|
@@ -108,7 +110,7 @@ function $(s) {
|
|
108
110
|
width: r,
|
109
111
|
height: r,
|
110
112
|
bgcolor: "grey.300",
|
111
|
-
borderRadius:
|
113
|
+
borderRadius: l
|
112
114
|
}
|
113
115
|
}
|
114
116
|
),
|
@@ -1,21 +1,12 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { Box as
|
1
|
+
import { jsxs as r, jsx as t } from "react/jsx-runtime";
|
2
|
+
import { Box as e, Typography as l } from "@mui/material";
|
3
3
|
import i from "../../Img/index.js";
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
try {
|
8
|
-
return new URL(e).protocol !== "https:" ? (console.warn("Image URL must use HTTPS protocol:", e), "") : `${s}/proxy?url=${e}`;
|
9
|
-
} catch (t) {
|
10
|
-
return console.warn("Invalid image URL format:", e, t), "";
|
11
|
-
}
|
12
|
-
};
|
13
|
-
function g({
|
14
|
-
requestAppInfo: e,
|
15
|
-
currentAppInfo: t
|
4
|
+
function m({
|
5
|
+
requestAppInfo: a,
|
6
|
+
currentAppInfo: o
|
16
7
|
}) {
|
17
|
-
return /* @__PURE__ */
|
18
|
-
|
8
|
+
return /* @__PURE__ */ r(
|
9
|
+
e,
|
19
10
|
{
|
20
11
|
sx: {
|
21
12
|
textAlign: "center",
|
@@ -25,8 +16,8 @@ function g({
|
|
25
16
|
gap: 2
|
26
17
|
},
|
27
18
|
children: [
|
28
|
-
/* @__PURE__ */
|
29
|
-
|
19
|
+
/* @__PURE__ */ r(
|
20
|
+
e,
|
30
21
|
{
|
31
22
|
sx: {
|
32
23
|
display: "flex",
|
@@ -34,18 +25,9 @@ function g({
|
|
34
25
|
justifyContent: "center"
|
35
26
|
},
|
36
27
|
children: [
|
37
|
-
/* @__PURE__ */ o
|
38
|
-
|
39
|
-
|
40
|
-
src: t.appLogo,
|
41
|
-
alt: "Server",
|
42
|
-
width: 48,
|
43
|
-
height: 48,
|
44
|
-
fallback: l(t.appLogo)
|
45
|
-
}
|
46
|
-
),
|
47
|
-
/* @__PURE__ */ a(
|
48
|
-
r,
|
28
|
+
/* @__PURE__ */ t(i, { src: o.appLogo, alt: "Server", width: 48, height: 48, useProxyFallback: !0 }),
|
29
|
+
/* @__PURE__ */ r(
|
30
|
+
e,
|
49
31
|
{
|
50
32
|
sx: {
|
51
33
|
mx: 2,
|
@@ -60,27 +42,18 @@ function g({
|
|
60
42
|
}
|
61
43
|
},
|
62
44
|
children: [
|
63
|
-
/* @__PURE__ */
|
64
|
-
/* @__PURE__ */
|
65
|
-
/* @__PURE__ */
|
45
|
+
/* @__PURE__ */ t(e, { className: "dot" }),
|
46
|
+
/* @__PURE__ */ t(e, { className: "dot" }),
|
47
|
+
/* @__PURE__ */ t(e, { className: "dot" })
|
66
48
|
]
|
67
49
|
}
|
68
50
|
),
|
69
|
-
/* @__PURE__ */
|
70
|
-
i,
|
71
|
-
{
|
72
|
-
src: e.appLogo,
|
73
|
-
alt: e.appName,
|
74
|
-
width: 48,
|
75
|
-
height: 48,
|
76
|
-
fallback: l(e.appLogo)
|
77
|
-
}
|
78
|
-
)
|
51
|
+
/* @__PURE__ */ t(i, { src: a.appLogo, alt: a.appName, width: 48, height: 48, useProxyFallback: !0 })
|
79
52
|
]
|
80
53
|
}
|
81
54
|
),
|
82
|
-
/* @__PURE__ */
|
83
|
-
|
55
|
+
/* @__PURE__ */ r(
|
56
|
+
l,
|
84
57
|
{
|
85
58
|
sx: {
|
86
59
|
mb: 1,
|
@@ -89,7 +62,7 @@ function g({
|
|
89
62
|
children: [
|
90
63
|
"Authorize",
|
91
64
|
" ",
|
92
|
-
/* @__PURE__ */
|
65
|
+
/* @__PURE__ */ t(e, { component: "span", sx: { color: "primary.main" }, children: a.appName })
|
93
66
|
]
|
94
67
|
}
|
95
68
|
)
|
@@ -98,5 +71,5 @@ function g({
|
|
98
71
|
);
|
99
72
|
}
|
100
73
|
export {
|
101
|
-
|
74
|
+
m as default
|
102
75
|
};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { jsx as L } from "react/jsx-runtime";
|
2
|
+
import { Box as N } from "@mui/material";
|
3
|
+
function i({
|
4
|
+
width: M = "100%",
|
5
|
+
height: I = "100%",
|
6
|
+
...j
|
7
|
+
}) {
|
8
|
+
return /* @__PURE__ */ L(N, { component: "img", width: M, height: I, alt: "did-wallet-logo", ...j, src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI3ByZWZpeF9fY2xpcDApIj48cmVjdCB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHJ4PSI2IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQwX2xpbmVhcikiLz48ZyBmaWx0ZXI9InVybCgjcHJlZml4X19maWx0ZXIwX2kpIj48cGF0aCBkPSJNMy41MiA3LjM2QTIuNTYgMi41NiAwIDAxNi4wOCA0LjhoMTkuODRhMi41NiAyLjU2IDAgMDEyLjU2IDIuNTZ2MTIuMTZhMi41NiAyLjU2IDAgMDEtMi41NiAyLjU2SDYuMDhhMi41NiAyLjU2IDAgMDEtMi41Ni0yLjU2VjcuMzZ6IiBmaWxsPSIjOUZDQkZGIi8+PC9nPjxnIGZpbHRlcj0idXJsKCNwcmVmaXhfX2ZpbHRlcjFfZCkiPjxwYXRoIGQ9Ik0yLjU2IDkuMjhhMi41NiAyLjU2IDAgMDEyLjU2LTIuNTZoMjEuNzZhMi41NiAyLjU2IDAgMDEyLjU2IDIuNTZ2MTMuNmEyLjU2IDIuNTYgMCAwMS0yLjU2IDIuNTZINS4xMmEyLjU2IDIuNTYgMCAwMS0yLjU2LTIuNTZWOS4yOHoiIGZpbGw9InVybCgjcHJlZml4X19wYWludDFfbGluZWFyKSIvPjwvZz48ZyBmaWx0ZXI9InVybCgjcHJlZml4X19maWx0ZXIyX2QpIj48cGF0aCBkPSJNMCAyMi4zMmwzMi02LjE2VjMySDB2LTkuNjh6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQyX2xpbmVhcikiLz48L2c+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjUzNiA5LjI0OGg4LjI4OGMuNDA4IDAgLjc0LjMuNzQuNjcydjQuNjRjMCAuMzcxLS4zMzIuNjcyLS43NC42NzJINS41MzZjLS40MDggMC0uNzQtLjMtLjc0LS42NzJ2LS4wNGEuMTU4LjE1OCAwIDEwLS4zMTYgMHYuMDRjMCAuNTMuNDczLjk2IDEuMDU2Ljk2aDguMjg4Yy41ODMgMCAxLjA1Ni0uNDMgMS4wNTYtLjk2VjkuOTJjMC0uNTMtLjQ3My0uOTYtMS4wNTYtLjk2SDUuNTM2Yy0uNTgzIDAtMS4wNTYuNDMtMS4wNTYuOTZ2LjA0YS4xNTguMTU4IDAgMDAuMzE3IDB2LS4wNGMwLS4zNzEuMzMtLjY3Mi43MzktLjY3MnptLTEuMDIzIDQuNjM4YS4xMjcuMTI3IDAgMDAuMDg3LjAzNGgxLjI2N2MuNDcyIDAgLjgzLS4xMDcgMS4wNzYtLjMyMi4yNS0uMjE3LjM4MS0uNTQ4LjM5Ny0uOTkzYTExLjI4MSAxMS4yODEgMCAwMDAtLjczNGMtLjAxMi0uNDI2LS4xNDgtLjc1MS0uNDA2LS45NzUtLjI1OC0uMjI0LS42MjItLjMzNi0xLjA5LS4zMzZINC42YS4xMjcuMTI3IDAgMDAtLjA4Ny4wMzQuMTE3LjExNyAwIDAwLS4wMzMuMDg2djMuMTJjMCAuMDMyLjAxMS4wNi4wMzMuMDg2em0xLjc5NC0uODA2Yy0uMDk5LjEtLjI1My4xNDktLjQ2NC4xNDloLS41MDJWMTEuMjVoLjQ3OGMuMjEgMCAuMzY5LjA1MS40NzQuMTU0LjEwOC4xMDIuMTY2LjI2LjE3Mi40NzUuMDA2LjA5LjAxLjIwOC4wMS4zNTVzLS4wMDQuMjY3LS4wMS4zNmMtLjAwNi4yMjEtLjA1OS4zODMtLjE1OC40ODV6bTEuNjMuODA2YS4xMjcuMTI3IDAgMDAuMDg3LjAzNGguNjRhLjExNi4xMTYgMCAwMC4wODctLjAzNC4xMS4xMSAwIDAwLjAzOC0uMDg2di0zLjEyYS4xMS4xMSAwIDAwLS4wMzgtLjA4Ni4xMTYuMTE2IDAgMDAtLjA4Ni0uMDM0aC0uNjQxYS4xMjcuMTI3IDAgMDAtLjA4Ny4wMzQuMTE3LjExNyAwIDAwLS4wMzMuMDg2djMuMTJjMCAuMDMyLjAxMS4wNi4wMzMuMDg2em0xLjYzNy4wMzRhLjEyNy4xMjcgMCAwMS0uMDg2LS4wMzQuMTI4LjEyOCAwIDAxLS4wMzMtLjA4NnYtMy4xMmMwLS4wMzUuMDEtLjA2NC4wMzMtLjA4NmEuMTI3LjEyNyAwIDAxLjA4Ni0uMDM0aDEuMjQ0Yy40NjkgMCAuODMyLjExMiAxLjA5LjMzNi4yNTkuMjI0LjM5NC41NDkuNDA3Ljk3NGExMS4yNDQgMTEuMjQ0IDAgMDEwIC43MzVjLS4wMTYuNDQ1LS4xNDguNzc2LS4zOTcuOTkzLS4yNDUuMjE1LS42MDQuMzIyLTEuMDc2LjMyMkg5LjU3NHptMS4yNDQtLjY5MWMuMjEgMCAuMzY1LS4wNS40NjQtLjE0OS4wOTktLjEwMi4xNTItLjI2NC4xNTgtLjQ4NWE1LjUyIDUuNTIgMCAwMC4wMS0uMzZjMC0uMTQ3LS4wMDQtLjI2NS0uMDEtLjM1NS0uMDA2LS4yMTQtLjA2NC0uMzczLS4xNzItLjQ3NS0uMTA2LS4xMDMtLjI2My0uMTU0LS40NzQtLjE1NGgtLjQ3OHYxLjk3OGguNTAyem0yLjQ2OC0xLjM4MmEuMjg4LjI4OCAwIDAxLS4yODgtLjI4Ni4yODguMjg4IDAgMDEuNTc2IDBjMCAuMTU4LS4xMy4yODYtLjI4OC4yODZ6bTAgMS40OTVhLjI4OC4yODggMCAwMS0uMjg4LS4yODYuMjg4LjI4OCAwIDAxLjU3NiAwYzAgLjE1OC0uMTMuMjg3LS4yODguMjg3eiIgZmlsbD0iIzQ1OThGQSIvPjwvZz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fcGFpbnQwX2xpbmVhciIgeDE9IjE2IiB5MT0iMCIgeDI9IjE2IiB5Mj0iMzIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjNEY5REY2Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMEE3OUY4Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fcGFpbnQxX2xpbmVhciIgeDE9IjE2IiB5MT0iNi43MiIgeDI9IjE2IiB5Mj0iMjUuNDQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRUNFRkZGIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fcGFpbnQyX2xpbmVhciIgeDE9IjE2IiB5MT0iMTkuMiIgeDI9IjE4LjQ4IiB5Mj0iMzIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9Ii4wMDciIHN0b3AtY29sb3I9IiM3N0IyRjYiLz48c3RvcCBvZmZzZXQ9Ii4wNTUiIHN0b3AtY29sb3I9IiM0RjlERjYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0NTk4RkEiLz48L2xpbmVhckdyYWRpZW50PjxmaWx0ZXIgaWQ9InByZWZpeF9fZmlsdGVyMF9pIiB4PSIzLjUyIiB5PSIxLjgiIHdpZHRoPSIyNC45NiIgaGVpZ2h0PSIyMC4yOCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIi8+PGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPjxmZU9mZnNldCBkeT0iLTMiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIyIi8+PGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMC4yIDAiLz48ZmVCbGVuZCBpbjI9InNoYXBlIiByZXN1bHQ9ImVmZmVjdDFfaW5uZXJTaGFkb3ciLz48L2ZpbHRlcj48ZmlsdGVyIGlkPSJwcmVmaXhfX2ZpbHRlcjFfZCIgeD0iLTEuNDQiIHk9IjEuNzIiIHdpZHRoPSIzNC44OCIgaGVpZ2h0PSIyNi43MiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+PGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPjxmZU9mZnNldCBkeT0iLTEiLz48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIyIi8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPSIwIDAgMCAwIDAuMjIwNzY3IDAgMCAwIDAgMC40NzA4MDMgMCAwIDAgMCAwLjcwMTYwNSAwIDAgMCAwLjE4IDAiLz48ZmVCbGVuZCBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3ciLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3ciIHJlc3VsdD0ic2hhcGUiLz48L2ZpbHRlcj48ZmlsdGVyIGlkPSJwcmVmaXhfX2ZpbHRlcjJfZCIgeD0iLTUiIHk9IjExLjE2IiB3aWR0aD0iNDIiIGhlaWdodD0iMjUuODQiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz48ZmVPZmZzZXQvPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjIuNSIvPjxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwLjE0MzgyIDAgMCAwIDAgMC4yMDUwNjUgMCAwIDAgMCAwLjUyMjYzNCAwIDAgMCAwLjI1IDAiLz48ZmVCbGVuZCBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3ciLz48ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3ciIHJlc3VsdD0ic2hhcGUiLz48L2ZpbHRlcj48Y2xpcFBhdGggaWQ9InByZWZpeF9fY2xpcDAiPjxyZWN0IHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgcng9IjYiIGZpbGw9IiNmZmYiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4=" });
|
9
|
+
}
|
10
|
+
export {
|
11
|
+
i as default
|
12
|
+
};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { jsx as c } from "react/jsx-runtime";
|
2
|
+
function e({
|
3
|
+
width: m = 24,
|
4
|
+
height: t = 24,
|
5
|
+
...o
|
6
|
+
}) {
|
7
|
+
return /* @__PURE__ */ c("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 256 250", width: m, height: t, ...o, children: /* @__PURE__ */ c("path", { d: "M128.001 0C57.317 0 0 57.307 0 128.001c0 56.554 36.676 104.535 87.535 121.46c6.397 1.185 8.746-2.777 8.746-6.158c0-3.052-.12-13.135-.174-23.83c-35.61 7.742-43.124-15.103-43.124-15.103c-5.823-14.795-14.213-18.73-14.213-18.73c-11.613-7.944.876-7.78.876-7.78c12.853.902 19.621 13.19 19.621 13.19c11.417 19.568 29.945 13.911 37.249 10.64c1.149-8.272 4.466-13.92 8.127-17.116c-28.431-3.236-58.318-14.212-58.318-63.258c0-13.975 5-25.394 13.188-34.358c-1.329-3.224-5.71-16.242 1.24-33.874c0 0 10.749-3.44 35.21 13.121c10.21-2.836 21.16-4.258 32.038-4.307c10.878.049 21.837 1.47 32.066 4.307c24.431-16.56 35.165-13.12 35.165-13.12c6.967 17.63 2.584 30.65 1.255 33.873c8.207 8.964 13.173 20.383 13.173 34.358c0 49.163-29.944 59.988-58.447 63.157c4.591 3.972 8.682 11.762 8.682 23.704c0 17.126-.148 30.91-.148 35.126c0 3.407 2.304 7.398 8.792 6.14C219.37 232.5 256 184.537 256 128.002C256 57.307 198.691 0 128.001 0m-80.06 182.34c-.282.636-1.283.827-2.194.39c-.929-.417-1.45-1.284-1.15-1.922c.276-.655 1.279-.838 2.205-.399c.93.418 1.46 1.293 1.139 1.931m6.296 5.618c-.61.566-1.804.303-2.614-.591c-.837-.892-.994-2.086-.375-2.66c.63-.566 1.787-.301 2.626.591c.838.903 1 2.088.363 2.66m4.32 7.188c-.785.545-2.067.034-2.86-1.104c-.784-1.138-.784-2.503.017-3.05c.795-.547 2.058-.055 2.861 1.075c.782 1.157.782 2.522-.019 3.08m7.304 8.325c-.701.774-2.196.566-3.29-.49c-1.119-1.032-1.43-2.496-.726-3.27c.71-.776 2.213-.558 3.315.49c1.11 1.03 1.45 2.505.701 3.27m9.442 2.81c-.31 1.003-1.75 1.459-3.199 1.033c-1.448-.439-2.395-1.613-2.103-2.626c.301-1.01 1.747-1.484 3.207-1.028c1.446.436 2.396 1.602 2.095 2.622m10.744 1.193c.036 1.055-1.193 1.93-2.715 1.95c-1.53.034-2.769-.82-2.786-1.86c0-1.065 1.202-1.932 2.733-1.958c1.522-.03 2.768.818 2.768 1.868m10.555-.405c.182 1.03-.875 2.088-2.387 2.37c-1.485.271-2.861-.365-3.05-1.386c-.184-1.056.893-2.114 2.376-2.387c1.514-.263 2.868.356 3.061 1.403" }) });
|
8
|
+
}
|
9
|
+
export {
|
10
|
+
e as default
|
11
|
+
};
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { BoxProps } from '@mui/material';
|
2
|
+
import { LOGIN_PROVIDER } from '../Util/constant';
|
3
|
+
declare function ProviderIcon({ provider, ...rest }: {
|
4
|
+
provider?: (typeof LOGIN_PROVIDER)[keyof typeof LOGIN_PROVIDER] | 'wallet-web';
|
5
|
+
} & BoxProps): import("react/jsx-runtime").JSX.Element | null;
|
6
|
+
declare const _default: import('react').MemoExoticComponent<typeof ProviderIcon>;
|
7
|
+
export default _default;
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
2
|
+
import { memo as e } from "react";
|
3
|
+
import c from "@iconify-icons/material-symbols/mail-outline-rounded";
|
4
|
+
import f from "@iconify-icons/logos/apple";
|
5
|
+
import p from "@iconify-icons/logos/google-icon";
|
6
|
+
import h from "@iconify-icons/logos/auth0-icon";
|
7
|
+
import a from "@iconify-icons/material-symbols/passkey-rounded";
|
8
|
+
import { Icon as u } from "@iconify/react";
|
9
|
+
import { Box as n } from "@mui/material";
|
10
|
+
import { LOGIN_PROVIDER as o } from "../Util/constant.js";
|
11
|
+
import { mergeSx as m } from "../Util/style.js";
|
12
|
+
import I from "./icons/did-wallet-logo.js";
|
13
|
+
import d from "./icons/github-logo.js";
|
14
|
+
function L({
|
15
|
+
provider: l = "wallet",
|
16
|
+
...r
|
17
|
+
}) {
|
18
|
+
if (["wallet", "wallet-web"].includes(l))
|
19
|
+
return /* @__PURE__ */ t(I, { ...r });
|
20
|
+
if (l === o.GITHUB)
|
21
|
+
return /* @__PURE__ */ t(n, { component: "span", ...r, sx: m({ display: "inline-block" }, r.sx), children: /* @__PURE__ */ t(d, { width: "100%", height: "100%", fill: "currentColor" }) });
|
22
|
+
const i = {
|
23
|
+
[o.AUTH0]: h,
|
24
|
+
[o.EMAIL]: c,
|
25
|
+
[o.APPLE]: f,
|
26
|
+
[o.GOOGLE]: p,
|
27
|
+
[o.PASSKEY]: a,
|
28
|
+
[o.TWITTER]: {
|
29
|
+
body: '<path fill="currentColor" d="M149.079 108.399L242.33 0h-22.098l-80.97 94.12L74.59 0H0l97.796 142.328L0 256h22.1l85.507-99.395L175.905 256h74.59L149.073 108.399zM118.81 143.58l-9.909-14.172l-78.84-112.773h33.943l63.625 91.011l9.909 14.173l82.705 118.3H186.3l-67.49-96.533z"/>',
|
30
|
+
width: 251,
|
31
|
+
height: 251
|
32
|
+
}
|
33
|
+
};
|
34
|
+
return i[l] ? /* @__PURE__ */ t(
|
35
|
+
n,
|
36
|
+
{
|
37
|
+
component: u,
|
38
|
+
icon: i[l],
|
39
|
+
fill: "currentColor",
|
40
|
+
...r,
|
41
|
+
sx: m(
|
42
|
+
{ width: "100%", height: "100%" },
|
43
|
+
l === o.TWITTER ? { scale: "0.8" } : {},
|
44
|
+
r.sx
|
45
|
+
)
|
46
|
+
}
|
47
|
+
) : null;
|
48
|
+
}
|
49
|
+
const M = e(L);
|
50
|
+
export {
|
51
|
+
M as default
|
52
|
+
};
|
package/lib/Img/index.d.ts
CHANGED
@@ -19,6 +19,13 @@ export type ImgExProps = {
|
|
19
19
|
lazy?: boolean | undefined;
|
20
20
|
placeholder?: string | undefined;
|
21
21
|
fallback?: string | undefined;
|
22
|
+
/**
|
23
|
+
* - 是否使用代理 fallback, 用于解决 CSP 的问题
|
24
|
+
*/
|
25
|
+
/**
|
26
|
+
* - 是否使用代理 fallback, 用于解决 CSP 的问题
|
27
|
+
*/
|
28
|
+
useProxyFallback?: boolean | undefined;
|
22
29
|
className?: string | undefined;
|
23
30
|
onError?: Function | undefined;
|
24
31
|
onSuccess?: Function | undefined;
|
@@ -29,7 +36,7 @@ export type ImgProps = ImgExProps & import('@mui/material').BoxProps;
|
|
29
36
|
* @param {ImgProps} props
|
30
37
|
* @returns {React.ReactComponentElement}
|
31
38
|
*/
|
32
|
-
declare function Img({ lazy, width, height, repeat, ratio, alt, size, position, src, placeholder, fallback, style, className, onError, onSuccess, ...rest }: ImgProps): import('react').ReactComponentElement<any, Pick<any, string | number | symbol>>;
|
39
|
+
declare function Img({ lazy, width, height, repeat, ratio, alt, size, position, src, useProxyFallback, placeholder, fallback, style, className, onError, onSuccess, ...rest }: ImgProps): import('react').ReactComponentElement<any, Pick<any, string | number | symbol>>;
|
33
40
|
declare namespace Img {
|
34
41
|
namespace propTypes {
|
35
42
|
let src: PropTypes.Validator<string>;
|
@@ -47,5 +54,6 @@ declare namespace Img {
|
|
47
54
|
let className: PropTypes.Requireable<string>;
|
48
55
|
let onError: PropTypes.Requireable<(...args: any[]) => any>;
|
49
56
|
let onSuccess: PropTypes.Requireable<(...args: any[]) => any>;
|
57
|
+
let useProxyFallback: PropTypes.Requireable<boolean>;
|
50
58
|
}
|
51
59
|
}
|
package/lib/Img/index.js
CHANGED
@@ -1,91 +1,101 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import { useState as
|
1
|
+
import { jsx as s, jsxs as F } from "react/jsx-runtime";
|
2
|
+
import { useState as R, useMemo as d, useEffect as w } from "react";
|
3
3
|
import e from "prop-types";
|
4
|
-
import { useInView as
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import { Icon as
|
8
|
-
import { Box as
|
9
|
-
import
|
10
|
-
import { mergeSx as
|
11
|
-
|
12
|
-
|
4
|
+
import { useInView as V } from "react-intersection-observer";
|
5
|
+
import W from "@iconify-icons/material-symbols/warning-rounded";
|
6
|
+
import X from "@iconify-icons/material-symbols/image-rounded";
|
7
|
+
import { Icon as k } from "@iconify/react";
|
8
|
+
import { Box as B } from "@mui/material";
|
9
|
+
import $ from "lodash/noop";
|
10
|
+
import { mergeSx as q } from "../Util/style.js";
|
11
|
+
import { BLOCKLET_SERVICE_PATH_PREFIX as A } from "../Util/constant.js";
|
12
|
+
const D = (r) => {
|
13
|
+
if (!r) return "";
|
14
|
+
try {
|
15
|
+
return new URL(r).protocol !== "https:" ? (console.warn("Image URL must use HTTPS protocol:", r), "") : `${A}/proxy?url=${encodeURIComponent(r)}`;
|
16
|
+
} catch (t) {
|
17
|
+
return console.warn("Invalid image URL format:", r, t), "";
|
18
|
+
}
|
19
|
+
}, K = "Img", v = {
|
20
|
+
root: `${K}-root`
|
13
21
|
};
|
14
|
-
function
|
15
|
-
lazy:
|
16
|
-
width:
|
17
|
-
height:
|
18
|
-
repeat:
|
19
|
-
ratio:
|
20
|
-
alt:
|
21
|
-
size:
|
22
|
-
position:
|
23
|
-
src:
|
24
|
-
|
25
|
-
fallback
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
22
|
+
function M({
|
23
|
+
lazy: r = !0,
|
24
|
+
width: t = null,
|
25
|
+
height: f = null,
|
26
|
+
repeat: E = "no-repeat",
|
27
|
+
ratio: N = 1,
|
28
|
+
alt: P = null,
|
29
|
+
size: p = "cover",
|
30
|
+
position: I = "top center",
|
31
|
+
src: n,
|
32
|
+
useProxyFallback: b = !1,
|
33
|
+
// 是否使用代理 fallback, 用于解决 CSP 的问题
|
34
|
+
placeholder: c = null,
|
35
|
+
fallback: m = null,
|
36
|
+
style: T = null,
|
37
|
+
className: j = "",
|
38
|
+
onError: h = $,
|
39
|
+
onSuccess: L = $,
|
40
|
+
...y
|
31
41
|
}) {
|
32
|
-
const [
|
42
|
+
const [U, x] = r ? V({ threshold: 0, triggerOnce: !0 }) : [null, !0], [o, g] = R("init"), [l, S] = R(!1), a = d(() => m || (b && n ? D(n) : m), [n, b, m]), u = d(() => {
|
33
43
|
switch (o) {
|
34
44
|
case "init":
|
35
45
|
case "loading":
|
36
|
-
return
|
46
|
+
return c;
|
37
47
|
case "error":
|
38
|
-
return
|
48
|
+
return l ? null : a;
|
39
49
|
case "loaded":
|
40
|
-
return
|
50
|
+
return n;
|
41
51
|
default:
|
42
52
|
return null;
|
43
53
|
}
|
44
|
-
}, [
|
54
|
+
}, [c, a, n, o, l]), _ = t && f ? 100 * f / t : N * 100, C = d(
|
45
55
|
() => ({
|
46
|
-
backgroundImage:
|
47
|
-
backgroundPosition:
|
48
|
-
backgroundSize:
|
49
|
-
backgroundRepeat:
|
50
|
-
paddingTop: `${
|
56
|
+
backgroundImage: u ? `url(${u})` : "",
|
57
|
+
backgroundPosition: I,
|
58
|
+
backgroundSize: p,
|
59
|
+
backgroundRepeat: E,
|
60
|
+
paddingTop: `${_}%`
|
51
61
|
}),
|
52
62
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
53
|
-
[
|
54
|
-
),
|
55
|
-
...
|
63
|
+
[u, I, p, o]
|
64
|
+
), H = {
|
65
|
+
...T,
|
56
66
|
display: "inline-block",
|
57
|
-
width:
|
67
|
+
width: t ? `${t}px` : "100%"
|
58
68
|
};
|
59
|
-
function
|
60
|
-
const
|
61
|
-
|
62
|
-
|
63
|
-
},
|
64
|
-
|
69
|
+
function O() {
|
70
|
+
const i = new Image();
|
71
|
+
i.src = n, g("loading"), S(!1), i.onload = () => {
|
72
|
+
g("loaded"), L();
|
73
|
+
}, i.onerror = () => {
|
74
|
+
g("error");
|
65
75
|
};
|
66
76
|
}
|
67
|
-
return
|
68
|
-
|
69
|
-
}, [
|
70
|
-
if (o === "error" &&
|
71
|
-
const
|
72
|
-
|
73
|
-
},
|
74
|
-
|
77
|
+
return w(() => {
|
78
|
+
x && O();
|
79
|
+
}, [x]), w(() => {
|
80
|
+
if (o === "error" && a && !l) {
|
81
|
+
const i = new Image();
|
82
|
+
i.src = a, i.onload = () => {
|
83
|
+
}, i.onerror = (z) => {
|
84
|
+
S(!0), o === "error" && h(z);
|
75
85
|
};
|
76
86
|
}
|
77
|
-
}, [o,
|
78
|
-
/* @__PURE__ */
|
79
|
-
|
87
|
+
}, [o, a, l, h]), // paddingTop 要求元素本身的宽度为 100%,所以只能加一个外层元素去限制宽度
|
88
|
+
/* @__PURE__ */ s(
|
89
|
+
B,
|
80
90
|
{
|
81
91
|
"data-id": "2",
|
82
|
-
ref:
|
83
|
-
style:
|
92
|
+
ref: U,
|
93
|
+
style: H,
|
84
94
|
className: "arcblock_ux_img-wrapper",
|
85
|
-
...
|
86
|
-
sx:
|
95
|
+
...y,
|
96
|
+
sx: q(
|
87
97
|
{
|
88
|
-
[`& .${
|
98
|
+
[`& .${v.root}`]: {
|
89
99
|
position: "relative",
|
90
100
|
overflow: "hidden",
|
91
101
|
"& .image--state, & .image--img": {
|
@@ -117,17 +127,17 @@ function O({
|
|
117
127
|
}
|
118
128
|
}
|
119
129
|
},
|
120
|
-
|
130
|
+
y.sx
|
121
131
|
),
|
122
|
-
children: /* @__PURE__ */
|
123
|
-
(
|
124
|
-
!
|
125
|
-
o === "loaded" && /* @__PURE__ */
|
132
|
+
children: /* @__PURE__ */ F("div", { className: `image ${j} ${v.root}`, style: C, children: [
|
133
|
+
(l || !a && o === "error") && /* @__PURE__ */ s("div", { className: "image--state", title: "Image load error", children: /* @__PURE__ */ s(k, { icon: W, className: "image--icon" }) }),
|
134
|
+
!c && o === "loading" && /* @__PURE__ */ s("div", { className: "image--state", title: "loading image", children: /* @__PURE__ */ s(k, { icon: X, className: "image--icon" }) }),
|
135
|
+
o === "loaded" && /* @__PURE__ */ s("img", { className: "image--img", src: n, alt: P })
|
126
136
|
] })
|
127
137
|
}
|
128
138
|
);
|
129
139
|
}
|
130
|
-
|
140
|
+
M.propTypes = {
|
131
141
|
src: e.string.isRequired,
|
132
142
|
alt: e.string,
|
133
143
|
size: e.string,
|
@@ -142,8 +152,9 @@ O.propTypes = {
|
|
142
152
|
fallback: e.string,
|
143
153
|
className: e.string,
|
144
154
|
onError: e.func,
|
145
|
-
onSuccess: e.func
|
155
|
+
onSuccess: e.func,
|
156
|
+
useProxyFallback: e.bool
|
146
157
|
};
|
147
158
|
export {
|
148
|
-
|
159
|
+
M as default
|
149
160
|
};
|