@0xchain/header 1.1.0-beta.10 → 1.1.0-beta.100
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/index.js +43 -45
- package/dist/lib/Drawer.js +29 -25
- package/dist/lib/Explorer.js +61 -50
- package/dist/lib/Logo.js +61 -46
- package/dist/lib/Nav.js +178 -132
- package/dist/lib/PointsEntry.js +121 -0
- package/dist/lib/Products.js +102 -0
- package/dist/lib/Right.js +24 -16
- package/dist/lib/Setting/SettingBody.js +44 -36
- package/dist/lib/Setting/index.js +36 -32
- package/dist/lib/User/Logout.js +13 -13
- package/dist/lib/User/MainTrigger.js +33 -23
- package/dist/lib/User/Mobile.js +22 -22
- package/dist/lib/User/Pc.js +24 -22
- package/dist/lib/User/SignIn.js +16 -15
- package/dist/lib/User/index.js +27 -20
- package/dist/lib/authProfile.js +34 -0
- package/dist/lib/context.js +15 -15
- package/dist/lib/events.js +13 -15
- package/dist/lib/headerPoints.js +102 -0
- package/dist/lib/headerSource.js +13 -0
- package/dist/lib/loadHeaderBarUser.js +42 -0
- package/dist/lib/useHeaderUser.js +44 -0
- package/package.json +41 -24
package/dist/index.js
CHANGED
|
@@ -1,56 +1,54 @@
|
|
|
1
|
-
import { jsxs
|
|
2
|
-
import { twMerge
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
import Right from "./lib/Right.js";
|
|
4
|
+
import Logo from "./lib/Logo.js";
|
|
5
|
+
import { cookies } from "next/headers";
|
|
6
|
+
import { HeaderProvider } from "./lib/context.js";
|
|
7
|
+
import { createSessionFromCookieGetter } from "@0xchain/auth";
|
|
8
|
+
import { loadHeaderBarUserData } from "./lib/loadHeaderBarUser.js";
|
|
9
|
+
import { isChatHeaderSource, HeaderSource } from "./lib/headerSource.js";
|
|
10
|
+
import { USER_EVENTS, emitUserEvent, onUserEvent } from "./lib/events.js";
|
|
11
|
+
async function HeaderBar({
|
|
12
|
+
extra,
|
|
13
|
+
children,
|
|
14
|
+
className,
|
|
15
|
+
hideNews = false,
|
|
16
|
+
hideLogin = false,
|
|
17
|
+
source = HeaderSource.DEFAULT,
|
|
18
|
+
brand = "iChatGo"
|
|
17
19
|
}) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
data: {}
|
|
21
|
-
};
|
|
22
|
-
if (s !== "CHAINDIGG")
|
|
20
|
+
let user = {};
|
|
21
|
+
if (brand !== "CHAINDIGG") {
|
|
23
22
|
try {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
console.error(x), e = { data: {} };
|
|
32
|
-
}
|
|
23
|
+
const cookieStore = await cookies();
|
|
24
|
+
const session = createSessionFromCookieGetter(
|
|
25
|
+
(key) => cookieStore.get(key)?.value ?? null
|
|
26
|
+
);
|
|
27
|
+
if (session.isLoggedIn) {
|
|
28
|
+
user = await loadHeaderBarUserData(cookieStore);
|
|
29
|
+
}
|
|
33
30
|
} catch {
|
|
34
|
-
|
|
31
|
+
user = {};
|
|
35
32
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
33
|
+
}
|
|
34
|
+
return /* @__PURE__ */ jsxs(HeaderProvider, { brand, children: [
|
|
35
|
+
/* @__PURE__ */ jsxs("div", { className: twMerge("sticky left-0 right-0 top-0 bg-background h-16 z-999", isChatHeaderSource(source) ? "hidden md:block flex-1" : "block", className), children: [
|
|
36
|
+
/* @__PURE__ */ jsxs("div", { className: "md:bg-card h-13 w-full text-center flex flex-nowrap justify-between items-center gap-2 md:gap-10 px-4", children: [
|
|
37
|
+
/* @__PURE__ */ jsxs("div", { className: twMerge("items-center gap-6 shrink-0", isChatHeaderSource(source) ? "hidden md:flex" : "flex"), children: [
|
|
38
|
+
/* @__PURE__ */ jsx(Logo, {}),
|
|
39
|
+
children
|
|
42
40
|
] }),
|
|
43
|
-
/* @__PURE__ */
|
|
41
|
+
/* @__PURE__ */ jsx(Right, { hideNews, hideLogin, user })
|
|
44
42
|
] }),
|
|
45
|
-
|
|
43
|
+
extra
|
|
46
44
|
] }),
|
|
47
|
-
/* @__PURE__ */
|
|
45
|
+
/* @__PURE__ */ jsx("div", { className: twMerge(isChatHeaderSource(source) ? "flex justify-end md:hidden" : "hidden"), children: /* @__PURE__ */ jsx(Right, { hideNews, source, hideLogin, user }) })
|
|
48
46
|
] });
|
|
49
47
|
}
|
|
50
48
|
export {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
HeaderSource,
|
|
50
|
+
USER_EVENTS,
|
|
51
|
+
HeaderBar as default,
|
|
52
|
+
emitUserEvent,
|
|
53
|
+
onUserEvent
|
|
56
54
|
};
|
package/dist/lib/Drawer.js
CHANGED
|
@@ -1,42 +1,46 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx
|
|
3
|
-
import
|
|
4
|
-
import { Menu
|
|
5
|
-
import
|
|
6
|
-
import { useState
|
|
7
|
-
import { useIsChaindigg
|
|
8
|
-
function
|
|
9
|
-
hideLogin
|
|
10
|
-
hideNews
|
|
11
|
-
user
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import RcDrawer from "rc-drawer";
|
|
4
|
+
import { Menu, X } from "lucide-react";
|
|
5
|
+
import Nav from "./Nav.js";
|
|
6
|
+
import { useState } from "react";
|
|
7
|
+
import { useIsChaindigg } from "./context.js";
|
|
8
|
+
function Drawer({
|
|
9
|
+
hideLogin = false,
|
|
10
|
+
hideNews = false,
|
|
11
|
+
user
|
|
12
12
|
}) {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
const isChaindigg = useIsChaindigg();
|
|
14
|
+
const [open, setOpen] = useState(false);
|
|
15
|
+
if (!open) {
|
|
16
|
+
return /* @__PURE__ */ jsx(
|
|
17
|
+
Menu,
|
|
17
18
|
{
|
|
18
|
-
onClick: () =>
|
|
19
|
+
onClick: () => setOpen(true),
|
|
19
20
|
size: 32,
|
|
20
21
|
style: { color: "var(--foreground)" },
|
|
21
22
|
className: "md:hidden bg-card rounded-lg p-[4px]"
|
|
22
23
|
}
|
|
23
24
|
);
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
}
|
|
26
|
+
const handleClose = (e) => {
|
|
27
|
+
e?.preventDefault();
|
|
28
|
+
e?.stopPropagation();
|
|
29
|
+
setOpen(false);
|
|
26
30
|
};
|
|
27
|
-
return /* @__PURE__ */
|
|
28
|
-
|
|
31
|
+
return /* @__PURE__ */ jsx(
|
|
32
|
+
RcDrawer,
|
|
29
33
|
{
|
|
30
|
-
open
|
|
34
|
+
open,
|
|
31
35
|
placement: "right",
|
|
32
|
-
className: `block md:hidden fixed top-0 bottom-0 left-0 right-0 z-1001 p-2 ${
|
|
33
|
-
children: /* @__PURE__ */
|
|
34
|
-
/* @__PURE__ */
|
|
35
|
-
/* @__PURE__ */
|
|
36
|
+
className: `block md:hidden fixed top-0 bottom-0 left-0 right-0 z-1001 p-2 bg-card ${isChaindigg ? "bg-background" : "bg-background/70 h-screen"}`,
|
|
37
|
+
children: /* @__PURE__ */ jsxs("div", { className: `w-full overflow-y-auto p-3 bg-card rounded-lg ${isChaindigg ? "max-h-full" : "max-h-[calc(100svh-16px)]"}`, children: [
|
|
38
|
+
/* @__PURE__ */ jsx("div", { className: "flex justify-end items-center p-2", children: /* @__PURE__ */ jsx(X, { size: 24, style: { color: "var(--foreground)" }, onClick: (e) => handleClose(e) }) }),
|
|
39
|
+
/* @__PURE__ */ jsx(Nav, { onClick: (e) => handleClose(e), hideLogin, hideNews, user })
|
|
36
40
|
] })
|
|
37
41
|
}
|
|
38
42
|
);
|
|
39
43
|
}
|
|
40
44
|
export {
|
|
41
|
-
|
|
45
|
+
Drawer as default
|
|
42
46
|
};
|
package/dist/lib/Explorer.js
CHANGED
|
@@ -1,94 +1,105 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsxs
|
|
3
|
-
import
|
|
4
|
-
import { Dropdown
|
|
5
|
-
import { useState
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
2
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import Translation from "@0xchain/translation";
|
|
4
|
+
import { Dropdown } from "antd";
|
|
5
|
+
import { useState, useEffect } from "react";
|
|
6
|
+
import request from "@0xchain/request";
|
|
7
|
+
import BetterLink from "@0xchain/better-link";
|
|
8
|
+
import ImageBar from "@0xchain/image";
|
|
9
|
+
import { Accordion, AccordionItem, AccordionTrigger } from "@0xchain/ui/accordion";
|
|
10
|
+
function Explorer({ onClick = () => void 0, onExpandChange }) {
|
|
11
|
+
const { gotoExplorer } = BetterLink();
|
|
12
|
+
const [list, setList] = useState([]);
|
|
13
|
+
const [accordionValue, setAccordionValue] = useState("");
|
|
14
|
+
const getList = async () => {
|
|
15
|
+
try {
|
|
16
|
+
const res = await request.get("/api/v2/chains/all-chain-list/basic");
|
|
17
|
+
setList(Array.isArray(res.data) ? res.data : []);
|
|
18
|
+
} catch (error) {
|
|
19
|
+
console.error(error);
|
|
20
|
+
setList([]);
|
|
21
|
+
}
|
|
21
22
|
};
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
const handleClick = (e, item) => {
|
|
24
|
+
e?.preventDefault();
|
|
25
|
+
e?.stopPropagation();
|
|
26
|
+
onClick?.();
|
|
27
|
+
setAccordionValue("");
|
|
28
|
+
const url = gotoExplorer({ chain: item.chainSymbol });
|
|
29
|
+
const baseUrl = process.env.NEXT_PUBLIC_APP_URL || "";
|
|
30
|
+
window.location.href = `${baseUrl}${url}`;
|
|
31
|
+
};
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
getList();
|
|
24
34
|
}, []);
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
return /* @__PURE__ */ t(
|
|
35
|
+
const renderItemContent = (item) => {
|
|
36
|
+
return /* @__PURE__ */ jsxs(
|
|
28
37
|
"div",
|
|
29
38
|
{
|
|
30
39
|
className: "w-full h-full flex items-center gap-2 py-2 cursor-pointer font-medium",
|
|
31
40
|
children: [
|
|
32
|
-
/* @__PURE__ */
|
|
33
|
-
|
|
41
|
+
/* @__PURE__ */ jsx(
|
|
42
|
+
ImageBar,
|
|
34
43
|
{
|
|
35
|
-
src:
|
|
44
|
+
src: item?.chainIconUrl ? item?.chainIconUrl : `//cdn.ichaingo.com/module/cryptos/${item?.chain?.toLowerCase()?.replace(" ", "-")}.png?format=auto&width=20&height=20`,
|
|
36
45
|
className: "w-5 h-5",
|
|
37
46
|
objectFit: "contain"
|
|
38
47
|
}
|
|
39
48
|
),
|
|
40
|
-
/* @__PURE__ */
|
|
49
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1", children: item?.chainSymbol })
|
|
41
50
|
]
|
|
42
51
|
}
|
|
43
52
|
);
|
|
44
53
|
};
|
|
45
|
-
return /* @__PURE__ */
|
|
46
|
-
/* @__PURE__ */
|
|
47
|
-
|
|
54
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
55
|
+
/* @__PURE__ */ jsx("div", { className: "hidden md:block", children: /* @__PURE__ */ jsx(
|
|
56
|
+
Dropdown,
|
|
48
57
|
{
|
|
49
58
|
getPopupContainer: () => document.body,
|
|
50
59
|
classNames: {
|
|
51
60
|
root: "w-50"
|
|
52
61
|
},
|
|
53
|
-
arrow: { pointAtCenter:
|
|
62
|
+
arrow: { pointAtCenter: true },
|
|
54
63
|
placement: "bottom",
|
|
55
64
|
menu: {
|
|
56
|
-
items:
|
|
57
|
-
label:
|
|
58
|
-
key:
|
|
59
|
-
onClick: (
|
|
65
|
+
items: list.map((item) => ({
|
|
66
|
+
label: renderItemContent(item),
|
|
67
|
+
key: item.chainSymbol,
|
|
68
|
+
onClick: (info) => handleClick(info.domEvent, item)
|
|
60
69
|
}))
|
|
61
70
|
},
|
|
62
|
-
children: /* @__PURE__ */
|
|
71
|
+
children: /* @__PURE__ */ jsx("div", { className: "whitespace-nowrap flex items-center gap-1 rounded-lg", children: /* @__PURE__ */ jsx(Translation, { value: "title", parentKey: "browser" }) })
|
|
63
72
|
}
|
|
64
73
|
) }),
|
|
65
|
-
/* @__PURE__ */
|
|
66
|
-
e.preventDefault()
|
|
74
|
+
/* @__PURE__ */ jsx("div", { className: "md:hidden w-full", children: /* @__PURE__ */ jsxs("div", { onClick: (e) => {
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
e.stopPropagation();
|
|
67
77
|
}, children: [
|
|
68
|
-
/* @__PURE__ */
|
|
69
|
-
|
|
78
|
+
/* @__PURE__ */ jsx(
|
|
79
|
+
Accordion,
|
|
70
80
|
{
|
|
71
81
|
type: "single",
|
|
72
|
-
collapsible:
|
|
82
|
+
collapsible: true,
|
|
73
83
|
className: "w-full",
|
|
74
|
-
value:
|
|
75
|
-
onValueChange: (
|
|
76
|
-
|
|
84
|
+
value: accordionValue,
|
|
85
|
+
onValueChange: (value) => {
|
|
86
|
+
setAccordionValue(value);
|
|
87
|
+
onExpandChange?.(!!value);
|
|
77
88
|
},
|
|
78
|
-
children: /* @__PURE__ */
|
|
89
|
+
children: /* @__PURE__ */ jsx(AccordionItem, { value: "explorer", className: "border-0", children: /* @__PURE__ */ jsx(AccordionTrigger, { className: "rounded-lg font-medium h-11 w-full flex py-2 justify-between items-center hover:no-underline focus-visible:ring-0 focus-visible:ring-offset-0", children: /* @__PURE__ */ jsx("div", { className: "flex w-full justify-between items-center", children: /* @__PURE__ */ jsx("span", { className: "text-foreground", children: /* @__PURE__ */ jsx(Translation, { value: "title", parentKey: "browser" }) }) }) }) })
|
|
79
90
|
}
|
|
80
91
|
),
|
|
81
|
-
/* @__PURE__ */
|
|
92
|
+
/* @__PURE__ */ jsx(
|
|
82
93
|
"div",
|
|
83
94
|
{
|
|
84
95
|
className: "grid transition-[grid-template-rows] duration-300 ease-in-out",
|
|
85
|
-
style: { gridTemplateRows:
|
|
86
|
-
children: /* @__PURE__ */
|
|
96
|
+
style: { gridTemplateRows: accordionValue ? "1fr" : "0fr" },
|
|
97
|
+
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "mt-3 rounded-lg flex flex-col gap-2 max-h-[60vh] overflow-auto", children: list.map((item) => /* @__PURE__ */ jsx("div", { className: "w-full", onClick: (e) => handleClick(e, item), children: renderItemContent(item) }, item.chainSymbol)) }) })
|
|
87
98
|
}
|
|
88
99
|
)
|
|
89
100
|
] }) })
|
|
90
101
|
] });
|
|
91
102
|
}
|
|
92
103
|
export {
|
|
93
|
-
|
|
104
|
+
Explorer as default
|
|
94
105
|
};
|
package/dist/lib/Logo.js
CHANGED
|
@@ -1,65 +1,80 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsxs
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { twMerge
|
|
6
|
-
import { useIsChaindigg
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
+
import ImageBar from "@0xchain/image";
|
|
4
|
+
import LinkBar from "@0xchain/link";
|
|
5
|
+
import { twMerge } from "tailwind-merge";
|
|
6
|
+
import { useIsChaindigg } from "./context.js";
|
|
7
|
+
function Logo() {
|
|
8
|
+
const isChaindigg = useIsChaindigg();
|
|
9
|
+
if (isChaindigg) {
|
|
10
|
+
return /* @__PURE__ */ jsxs(
|
|
11
|
+
LinkBar,
|
|
12
|
+
{
|
|
13
|
+
suppressHydrationWarning: true,
|
|
14
|
+
href: `/explorer`,
|
|
15
|
+
baseUrl: "",
|
|
16
|
+
className: twMerge("w-auto shrink-0 block cursor-pointer"),
|
|
17
|
+
children: [
|
|
18
|
+
/* @__PURE__ */ jsx(
|
|
19
|
+
ImageBar,
|
|
20
|
+
{
|
|
21
|
+
className: "block dark:hidden",
|
|
22
|
+
src: `${process.env.NEXT_PUBLIC_CDN_URL}/uploads/2026/01/07/695dcb36c177e.png`,
|
|
23
|
+
width: 154,
|
|
24
|
+
height: 32,
|
|
25
|
+
alt: "logo",
|
|
26
|
+
objectFit: "contain",
|
|
27
|
+
priority: true
|
|
28
|
+
}
|
|
29
|
+
),
|
|
30
|
+
/* @__PURE__ */ jsx(
|
|
31
|
+
ImageBar,
|
|
32
|
+
{
|
|
33
|
+
className: "hidden dark:block",
|
|
34
|
+
src: `${process.env.NEXT_PUBLIC_CDN_URL}/uploads/2026/01/07/695dcf43c95d8.png`,
|
|
35
|
+
width: 154,
|
|
36
|
+
height: 32,
|
|
37
|
+
alt: "logo",
|
|
38
|
+
objectFit: "contain",
|
|
39
|
+
priority: true
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
return /* @__PURE__ */ jsxs(
|
|
47
|
+
LinkBar,
|
|
10
48
|
{
|
|
11
|
-
suppressHydrationWarning:
|
|
12
|
-
href:
|
|
13
|
-
baseUrl:
|
|
14
|
-
className:
|
|
49
|
+
suppressHydrationWarning: true,
|
|
50
|
+
href: `/`,
|
|
51
|
+
baseUrl: process.env.NEXT_PUBLIC_APP_URL,
|
|
52
|
+
className: twMerge("w-auto shrink-0 block cursor-pointer"),
|
|
15
53
|
children: [
|
|
16
|
-
/* @__PURE__ */
|
|
17
|
-
|
|
54
|
+
/* @__PURE__ */ jsx(
|
|
55
|
+
ImageBar,
|
|
18
56
|
{
|
|
19
57
|
className: "block dark:hidden",
|
|
20
|
-
src: `${process.env.NEXT_PUBLIC_CDN_URL}/uploads/2026/01/
|
|
21
|
-
width:
|
|
22
|
-
height: 32,
|
|
58
|
+
src: `${process.env.NEXT_PUBLIC_CDN_URL}/uploads/2026/04/01/69ccb9c05c2c6.png`,
|
|
59
|
+
width: 136,
|
|
23
60
|
alt: "logo",
|
|
24
|
-
|
|
25
|
-
priority: !0
|
|
61
|
+
priority: true
|
|
26
62
|
}
|
|
27
63
|
),
|
|
28
|
-
/* @__PURE__ */
|
|
29
|
-
|
|
64
|
+
/* @__PURE__ */ jsx(
|
|
65
|
+
ImageBar,
|
|
30
66
|
{
|
|
31
67
|
className: "hidden dark:block",
|
|
32
|
-
src: `${process.env.NEXT_PUBLIC_CDN_URL}/uploads/2026/01/
|
|
33
|
-
width:
|
|
34
|
-
height: 32,
|
|
68
|
+
src: `${process.env.NEXT_PUBLIC_CDN_URL}/uploads/2026/04/01/69ccb9bd7787f.png`,
|
|
69
|
+
width: 136,
|
|
35
70
|
alt: "logo",
|
|
36
|
-
|
|
37
|
-
priority: !0
|
|
71
|
+
priority: true
|
|
38
72
|
}
|
|
39
73
|
)
|
|
40
74
|
]
|
|
41
75
|
}
|
|
42
|
-
) : /* @__PURE__ */ r(
|
|
43
|
-
e,
|
|
44
|
-
{
|
|
45
|
-
suppressHydrationWarning: !0,
|
|
46
|
-
href: "/",
|
|
47
|
-
baseUrl: process.env.NEXT_PUBLIC_BASE_URL,
|
|
48
|
-
className: i("w-auto shrink-0 block cursor-pointer"),
|
|
49
|
-
children: /* @__PURE__ */ r(
|
|
50
|
-
o,
|
|
51
|
-
{
|
|
52
|
-
src: `${process.env.NEXT_PUBLIC_CDN_URL}/logo.png`,
|
|
53
|
-
width: 154,
|
|
54
|
-
height: 32,
|
|
55
|
-
alt: "logo",
|
|
56
|
-
objectFit: "contain",
|
|
57
|
-
priority: !0
|
|
58
|
-
}
|
|
59
|
-
)
|
|
60
|
-
}
|
|
61
76
|
);
|
|
62
77
|
}
|
|
63
78
|
export {
|
|
64
|
-
|
|
79
|
+
Logo as default
|
|
65
80
|
};
|