@rsdoctor/components 1.5.12 → 1.5.14-beta.0
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/components/Alerts/collapse-cjs-require.d.ts +1 -1
- package/dist/components/Alerts/collapse-cross-chunks.d.ts +1 -1
- package/dist/components/Alerts/collapse-esm-cjs.d.ts +1 -1
- package/dist/components/Alerts/collapse-module-mixed-chunks.d.ts +1 -1
- package/dist/components/Alerts/collapse-shared.d.ts +2 -2
- package/dist/components/Alerts/collapse-side-effects-only-imports.d.ts +1 -1
- package/dist/components/Alerts/collapse.d.ts +1 -1
- package/dist/components/Alerts/list.d.ts +1 -1
- package/dist/components/FileTree/index.d.ts +1 -1
- package/dist/components/Layout/header.d.ts +0 -1
- package/dist/components/Layout/header.mjs +14 -53
- package/dist/components/Layout/header.mjs.map +1 -1
- package/dist/components/Layout/header.module.mjs +15 -0
- package/dist/components/Layout/header.module.mjs.map +1 -0
- package/dist/components/Layout/header_module.css +88 -0
- package/dist/components/Layout/header_module.css.map +1 -0
- package/dist/components/Layout/index.mjs +10 -8
- package/dist/components/Layout/index.mjs.map +1 -1
- package/dist/components/Layout/index.module.mjs +7 -0
- package/dist/components/Layout/index.module.mjs.map +1 -0
- package/dist/components/Layout/index_module.css +11 -0
- package/dist/components/Layout/index_module.css.map +1 -0
- package/dist/components/Overall/DataSummary.d.ts +1 -1
- package/dist/components/Overall/help-center.d.ts +1 -1
- package/dist/components/Overall/overview.d.ts +1 -1
- package/dist/components/base/CodeViewer/index.d.ts +1 -1
- package/dist/components/base/CodeViewer/useCodeDrawer.d.ts +1 -1
- package/dist/components/base/DiffViewer/index.d.ts +1 -1
- package/dist/components/base/DiffViewer/useDiffDrawer.d.ts +1 -1
- package/dist/pages/BundleSize/components/asset.mjs +392 -323
- package/dist/pages/BundleSize/components/asset.mjs.map +1 -1
- package/dist/pages/BundleSize/components/asset.module.mjs +16 -0
- package/dist/pages/BundleSize/components/asset.module.mjs.map +1 -0
- package/dist/pages/BundleSize/components/asset_module.css +111 -0
- package/dist/pages/BundleSize/components/asset_module.css.map +1 -0
- package/dist/pages/BundleSize/components/index.d.ts +1 -1
- package/dist/pages/BundleSize/components/index.mjs +217 -553
- package/dist/pages/BundleSize/components/index.mjs.map +1 -1
- package/dist/pages/BundleSize/components/index.module.mjs +10 -7
- package/dist/pages/BundleSize/components/index.module.mjs.map +1 -1
- package/dist/pages/BundleSize/components/index_module.css +47 -59
- package/dist/pages/BundleSize/components/index_module.css.map +1 -1
- package/dist/pages/BundleSize/components/tree-graph.d.ts +7 -0
- package/dist/pages/BundleSize/components/tree-graph.mjs +366 -0
- package/dist/pages/BundleSize/components/tree-graph.mjs.map +1 -0
- package/dist/pages/BundleSize/index.mjs +1 -11
- package/dist/pages/BundleSize/index.mjs.map +1 -1
- package/dist/pages/Overall/responsiveLayout.d.ts +1 -1
- package/dist/pages/Resources/BundleDiff/DiffContainer/utils.d.ts +1 -1
- package/dist/pages/TreeShaking/editor.d.ts +1 -1
- package/dist/pages/TreeShaking/space.d.ts +1 -1
- package/dist/utils/file.d.ts +1 -1
- package/dist/utils/hooks.d.ts +7 -1
- package/dist/utils/hooks.mjs +73 -3
- package/dist/utils/hooks.mjs.map +1 -1
- package/package.json +13 -12
- package/dist/components/Layout/header.css +0 -28
- package/dist/components/Layout/header.css.map +0 -1
|
@@ -3,4 +3,4 @@ import type { AlertProps } from '../Alert/types.js';
|
|
|
3
3
|
export declare const CjsRequireAlertCollapse: (props: {
|
|
4
4
|
data: Array<Rule.RuleStoreDataItem>;
|
|
5
5
|
extraData: Omit<AlertProps, "data">;
|
|
6
|
-
}) => import("react
|
|
6
|
+
}) => import("react").JSX.Element;
|
|
@@ -3,4 +3,4 @@ import type { AlertProps } from '../Alert/types.js';
|
|
|
3
3
|
export declare const CrossChunksAlertCollapse: (props: {
|
|
4
4
|
data: Array<Rule.RuleStoreDataItem>;
|
|
5
5
|
extraData: Omit<AlertProps, "data">;
|
|
6
|
-
}) => import("react
|
|
6
|
+
}) => import("react").JSX.Element;
|
|
@@ -3,4 +3,4 @@ import type { AlertProps } from '../Alert/types.js';
|
|
|
3
3
|
export declare const EsmResolvedToCjsAlertCollapse: (props: {
|
|
4
4
|
data: Array<Rule.RuleStoreDataItem>;
|
|
5
5
|
extraData: Omit<AlertProps, "data">;
|
|
6
|
-
}) => import("react
|
|
6
|
+
}) => import("react").JSX.Element;
|
|
@@ -3,4 +3,4 @@ import type { AlertProps } from '../Alert/types.js';
|
|
|
3
3
|
export declare const ModuleMixedChunksAlertCollapse: (props: {
|
|
4
4
|
data: Array<Rule.RuleStoreDataItem>;
|
|
5
5
|
extraData: Omit<AlertProps, "data">;
|
|
6
|
-
}) => import("react
|
|
6
|
+
}) => import("react").JSX.Element;
|
|
@@ -3,7 +3,7 @@ export declare const LabelComponent: (props: {
|
|
|
3
3
|
title: string | ReactNode;
|
|
4
4
|
description: string;
|
|
5
5
|
extra?: ReactNode;
|
|
6
|
-
}) => import("react
|
|
6
|
+
}) => import("react").JSX.Element;
|
|
7
7
|
export declare const IdeIcons: ({ file }: {
|
|
8
8
|
file: string;
|
|
9
|
-
}) => import("react
|
|
9
|
+
}) => import("react").JSX.Element;
|
|
@@ -3,4 +3,4 @@ import type { AlertProps } from '../Alert/types.js';
|
|
|
3
3
|
export declare const SideEffectsOnlyImportsAlertCollapse: (props: {
|
|
4
4
|
data: Array<Rule.RuleStoreDataItem>;
|
|
5
5
|
extraData: Omit<AlertProps, "data">;
|
|
6
|
-
}) => import("react
|
|
6
|
+
}) => import("react").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TreeProps } from 'rc-tree';
|
|
3
3
|
import './index.sass';
|
|
4
|
-
export declare function getFileCom(filename: string):
|
|
4
|
+
export declare function getFileCom(filename: string): React.JSX.Element;
|
|
5
5
|
export declare const FileTree: React.FC<Partial<TreeProps>>;
|
|
@@ -2,27 +2,19 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { TranslationOutlined } from "@ant-design/icons";
|
|
3
3
|
import { Col, Dropdown, Layout, Row } from "antd";
|
|
4
4
|
import "react";
|
|
5
|
-
import { Language
|
|
5
|
+
import { Language } from "../../constants.mjs";
|
|
6
6
|
import { useI18n, useTheme } from "../../utils/index.mjs";
|
|
7
7
|
import { OverlayAlertsWithButton } from "../Alerts/index.mjs";
|
|
8
8
|
import { BuilderSelect } from "./builder-select.mjs";
|
|
9
9
|
import { Menus } from "./menus.mjs";
|
|
10
|
-
import "./header.css";
|
|
11
10
|
import { Client } from "@rsdoctor/types";
|
|
12
11
|
import { useNavigate } from "react-router-dom";
|
|
12
|
+
import header_module from "./header.module.mjs";
|
|
13
|
+
import clsx from "clsx";
|
|
13
14
|
const Header = ({ enableRoutes })=>{
|
|
14
15
|
const { i18n } = useI18n();
|
|
15
16
|
const navigate = useNavigate();
|
|
16
|
-
const {
|
|
17
|
-
const iconStyle = {
|
|
18
|
-
display: 'inline-block',
|
|
19
|
-
fontSize: 20,
|
|
20
|
-
textAlign: 'center',
|
|
21
|
-
verticalAlign: 'middle',
|
|
22
|
-
cursor: 'pointer',
|
|
23
|
-
width: 30,
|
|
24
|
-
transition: 'all 0.3s ease'
|
|
25
|
-
};
|
|
17
|
+
const { isDark } = useTheme();
|
|
26
18
|
const languages = [
|
|
27
19
|
{
|
|
28
20
|
value: Language.Cn,
|
|
@@ -34,41 +26,20 @@ const Header = ({ enableRoutes })=>{
|
|
|
34
26
|
}
|
|
35
27
|
];
|
|
36
28
|
return /*#__PURE__*/ jsx(Layout.Header, {
|
|
37
|
-
|
|
38
|
-
height: Size.NavBarHeight,
|
|
39
|
-
padding: 0,
|
|
40
|
-
paddingLeft: Size.BasePadding,
|
|
41
|
-
paddingRight: Size.BasePadding,
|
|
42
|
-
position: 'fixed',
|
|
43
|
-
zIndex: 999,
|
|
44
|
-
width: '100%',
|
|
45
|
-
backgroundColor: isLight ? '#fff' : '#141414',
|
|
46
|
-
transition: 'none'
|
|
47
|
-
},
|
|
29
|
+
className: clsx(header_module.root, isDark && header_module.rootDark),
|
|
48
30
|
children: /*#__PURE__*/ jsxs(Row, {
|
|
49
|
-
|
|
50
|
-
align: "middle",
|
|
51
|
-
style: {
|
|
52
|
-
height: Size.NavBarHeight
|
|
53
|
-
},
|
|
54
|
-
wrap: false,
|
|
31
|
+
className: header_module.innerRoot,
|
|
55
32
|
children: [
|
|
56
33
|
/*#__PURE__*/ jsx(Col, {
|
|
57
|
-
|
|
58
|
-
height: Size.NavBarHeight,
|
|
59
|
-
lineHeight: `${Size.NavBarHeight + 2}px`
|
|
60
|
-
},
|
|
34
|
+
className: header_module.leftCol,
|
|
61
35
|
children: /*#__PURE__*/ jsxs("div", {
|
|
62
|
-
|
|
63
|
-
display: 'flex',
|
|
64
|
-
justifyContent: 'space-between',
|
|
65
|
-
alignItems: 'center',
|
|
66
|
-
height: '100%'
|
|
67
|
-
},
|
|
36
|
+
className: header_module.leftColInner,
|
|
68
37
|
children: [
|
|
69
38
|
/*#__PURE__*/ jsx("img", {
|
|
39
|
+
width: "1604",
|
|
40
|
+
height: "380",
|
|
70
41
|
src: "https://assets.rspack.rs/rsdoctor/rsdoctor-title-logo.png",
|
|
71
|
-
className:
|
|
42
|
+
className: header_module.rsdoctorLogo,
|
|
72
43
|
alt: "logo",
|
|
73
44
|
onClick: ()=>{
|
|
74
45
|
if (location.hash.includes(Client.RsdoctorClientRoutes.Uploader) && location.pathname.includes('/preview')) location.href = 'http://rsdoctor.rs';
|
|
@@ -85,18 +56,9 @@ const Header = ({ enableRoutes })=>{
|
|
|
85
56
|
}
|
|
86
57
|
}, enableRoutes ? JSON.stringify(enableRoutes) : 'default'),
|
|
87
58
|
/*#__PURE__*/ jsx(Col, {
|
|
88
|
-
|
|
59
|
+
className: header_module.rightCol,
|
|
89
60
|
children: /*#__PURE__*/ jsxs(Row, {
|
|
90
|
-
|
|
91
|
-
justify: "end",
|
|
92
|
-
style: {
|
|
93
|
-
height: Size.NavBarHeight
|
|
94
|
-
},
|
|
95
|
-
wrap: false,
|
|
96
|
-
gutter: [
|
|
97
|
-
Size.BasePadding / 3,
|
|
98
|
-
0
|
|
99
|
-
],
|
|
61
|
+
className: header_module.rightColInner,
|
|
100
62
|
children: [
|
|
101
63
|
/*#__PURE__*/ jsx(Col, {
|
|
102
64
|
children: /*#__PURE__*/ jsx(OverlayAlertsWithButton, {})
|
|
@@ -119,8 +81,7 @@ const Header = ({ enableRoutes })=>{
|
|
|
119
81
|
]
|
|
120
82
|
},
|
|
121
83
|
children: /*#__PURE__*/ jsx(TranslationOutlined, {
|
|
122
|
-
className:
|
|
123
|
-
style: iconStyle
|
|
84
|
+
className: header_module.translationsIcon
|
|
124
85
|
})
|
|
125
86
|
})
|
|
126
87
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/header.mjs","sources":["../../../src/components/Layout/header.tsx"],"sourcesContent":["import { TranslationOutlined } from '@ant-design/icons';\nimport { Col, Dropdown, Layout, Row } from 'antd';\nimport React from 'react';\nimport { Language
|
|
1
|
+
{"version":3,"file":"components/Layout/header.mjs","sources":["../../../src/components/Layout/header.tsx"],"sourcesContent":["import { TranslationOutlined } from '@ant-design/icons';\nimport { Col, Dropdown, Layout, Row } from 'antd';\nimport React from 'react';\nimport { Language } from '../../constants';\nimport { useI18n, useTheme } from '../../utils';\nimport { OverlayAlertsWithButton } from '../Alerts';\nimport { BuilderSelect } from './builder-select';\nimport { Menus } from './menus';\nimport { Client } from '@rsdoctor/types';\nimport { useNavigate } from 'react-router-dom';\nimport styles from './header.module.scss';\nimport clsx from 'clsx';\n\nexport interface HeaderProps {\n enableRoutes?: string[];\n}\n\nexport const Header: React.FC<HeaderProps> = ({ enableRoutes }) => {\n const { i18n } = useI18n();\n\n const navigate = useNavigate();\n const { isDark } = useTheme();\n const languages = [\n { value: Language.Cn, label: '中文' },\n { value: Language.En, label: 'English' },\n ];\n\n return (\n <Layout.Header className={clsx(styles.root, isDark && styles.rootDark)}>\n <Row className={styles.innerRoot}>\n <Col className={styles.leftCol}>\n <div className={styles.leftColInner}>\n <img\n width=\"1604\"\n height=\"380\"\n src=\"https://assets.rspack.rs/rsdoctor/rsdoctor-title-logo.png\"\n className={styles.rsdoctorLogo}\n alt=\"logo\"\n onClick={() => {\n if (\n location.hash.includes(\n Client.RsdoctorClientRoutes.Uploader,\n ) &&\n location.pathname.includes('/preview')\n ) {\n location.href = 'http://rsdoctor.rs';\n } else {\n navigate(Client.RsdoctorClientRoutes.Home);\n }\n }}\n />\n <BuilderSelect />\n </div>\n </Col>\n <Menus\n key={enableRoutes ? JSON.stringify(enableRoutes) : 'default'}\n style={{ transition: 'none' }}\n />\n\n <Col className={styles.rightCol}>\n <Row className={styles.rightColInner}>\n <Col>\n <OverlayAlertsWithButton />\n </Col>\n\n {/* <Col> TODO: dark mode has some error need fix.\n <Switch\n className=\"header-switch\"\n checkedChildren=\"🌛\"\n unCheckedChildren=\"🌞\"\n checked={isDark}\n onChange={(checked) => {\n setTheme(checked ? Theme.Dark : Theme.Light);\n }}\n style={{ border: `1px solid ${isLight ? '#ddd' : '#fff'}`, background: isLight ? '#eee' : '#141414' }}\n />\n </Col> */}\n <Col>\n <Dropdown\n overlayStyle={{ zIndex: 1000 }}\n menu={{\n items: languages.map((e) => ({\n label: e.label,\n key: e.value,\n onClick() {\n i18n.changeLanguage(e.value);\n },\n })),\n selectedKeys: [i18n.language],\n }}\n >\n <TranslationOutlined className={styles.translationsIcon} />\n </Dropdown>\n </Col>\n </Row>\n </Col>\n </Row>\n </Layout.Header>\n );\n};\n"],"names":["Header","enableRoutes","i18n","useI18n","navigate","useNavigate","isDark","useTheme","languages","Language","Layout","clsx","styles","Row","Col","location","Client","BuilderSelect","Menus","JSON","OverlayAlertsWithButton","Dropdown","e","TranslationOutlined"],"mappings":";;;;;;;;;;;;;AAiBO,MAAMA,SAAgC,CAAC,EAAEC,YAAY,EAAE;IAC5D,MAAM,EAAEC,IAAI,EAAE,GAAGC;IAEjB,MAAMC,WAAWC;IACjB,MAAM,EAAEC,MAAM,EAAE,GAAGC;IACnB,MAAMC,YAAY;QAChB;YAAE,OAAOC,SAAS,EAAE;YAAE,OAAO;QAAK;QAClC;YAAE,OAAOA,SAAS,EAAE;YAAE,OAAO;QAAU;KACxC;IAED,OAAO,WAAP,GACE,IAACC,OAAO,MAAM;QAAC,WAAWC,KAAKC,cAAAA,IAAW,EAAEN,UAAUM,cAAAA,QAAe;kBACnE,mBAACC,KAAGA;YAAC,WAAWD,cAAAA,SAAgB;;8BAC9B,IAACE,KAAGA;oBAAC,WAAWF,cAAAA,OAAc;8BAC5B,mBAAC;wBAAI,WAAWA,cAAAA,YAAmB;;0CACjC,IAAC;gCACC,OAAM;gCACN,QAAO;gCACP,KAAI;gCACJ,WAAWA,cAAAA,YAAmB;gCAC9B,KAAI;gCACJ,SAAS;oCACP,IACEG,SAAS,IAAI,CAAC,QAAQ,CACpBC,OAAO,oBAAoB,CAAC,QAAQ,KAEtCD,SAAS,QAAQ,CAAC,QAAQ,CAAC,aAE3BA,SAAS,IAAI,GAAG;yCAEhBX,SAASY,OAAO,oBAAoB,CAAC,IAAI;gCAE7C;;0CAEF,IAACC,eAAaA,CAAAA;;;;8BAGlB,IAACC,OAAKA;oBAEJ,OAAO;wBAAE,YAAY;oBAAO;mBADvBjB,eAAekB,KAAK,SAAS,CAAClB,gBAAgB;8BAIrD,IAACa,KAAGA;oBAAC,WAAWF,cAAAA,QAAe;8BAC7B,mBAACC,KAAGA;wBAAC,WAAWD,cAAAA,aAAoB;;0CAClC,IAACE,KAAGA;0CACF,kBAACM,yBAAuBA,CAAAA;;0CAe1B,IAACN,KAAGA;0CACF,kBAACO,UAAQA;oCACP,cAAc;wCAAE,QAAQ;oCAAK;oCAC7B,MAAM;wCACJ,OAAOb,UAAU,GAAG,CAAC,CAACc,IAAO;gDAC3B,OAAOA,EAAE,KAAK;gDACd,KAAKA,EAAE,KAAK;gDACZ;oDACEpB,KAAK,cAAc,CAACoB,EAAE,KAAK;gDAC7B;4CACF;wCACA,cAAc;4CAACpB,KAAK,QAAQ;yCAAC;oCAC/B;8CAEA,kBAACqB,qBAAmBA;wCAAC,WAAWX,cAAAA,gBAAuB;;;;;;;;;;AAQvE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import "./header_module.css";
|
|
2
|
+
const header_module = {
|
|
3
|
+
root: "root-nAtwJx",
|
|
4
|
+
rootDark: "rootDark-X_YzXd",
|
|
5
|
+
innerRoot: "innerRoot-b2vAK8",
|
|
6
|
+
leftCol: "leftCol-n3WyJ5",
|
|
7
|
+
leftColInner: "leftColInner-AB1JiD",
|
|
8
|
+
rightCol: "rightCol-jgHpb9",
|
|
9
|
+
rightColInner: "rightColInner-nINgMT",
|
|
10
|
+
rsdoctorLogo: "rsdoctorLogo-O30iKB",
|
|
11
|
+
translationsIcon: "translationsIcon-eK7oMQ"
|
|
12
|
+
};
|
|
13
|
+
export default header_module;
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=header.module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components/Layout/header.module.mjs","sources":["../../../src/components/Layout/header.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./header_module.css\"\nexport default {\"root\":\"root-nAtwJx\",\"rootDark\":\"rootDark-X_YzXd\",\"innerRoot\":\"innerRoot-b2vAK8\",\"leftCol\":\"leftCol-n3WyJ5\",\"leftColInner\":\"leftColInner-AB1JiD\",\"rightCol\":\"rightCol-jgHpb9\",\"rightColInner\":\"rightColInner-nINgMT\",\"rsdoctorLogo\":\"rsdoctorLogo-O30iKB\",\"translationsIcon\":\"translationsIcon-eK7oMQ\"};"],"names":[],"mappings":";AAEA,sBAAe;IAAC,MAAO;IAAc,UAAW;IAAkB,WAAY;IAAmB,SAAU;IAAiB,cAAe;IAAsB,UAAW;IAAkB,eAAgB;IAAuB,cAAe;IAAsB,kBAAmB;AAAyB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
.root-nAtwJx {
|
|
2
|
+
--bg-color: white;
|
|
3
|
+
--height: var(--layout-nav-height, 54px);
|
|
4
|
+
width: 100%;
|
|
5
|
+
height: var(--height);
|
|
6
|
+
padding: 0;
|
|
7
|
+
padding-inline: var(--spacing-base);
|
|
8
|
+
z-index: 999;
|
|
9
|
+
background-color: var(--bg-color);
|
|
10
|
+
transition: none;
|
|
11
|
+
position: fixed;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.root-nAtwJx .ant-switch-handle {
|
|
15
|
+
top: 1px !important;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.rootDark-X_YzXd {
|
|
19
|
+
--bg-color: #141414;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.innerRoot-b2vAK8 {
|
|
23
|
+
height: var(--height);
|
|
24
|
+
flex-wrap: nowrap;
|
|
25
|
+
justify-content: space-between;
|
|
26
|
+
align-items: center;
|
|
27
|
+
display: flex;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.leftCol-n3WyJ5 {
|
|
31
|
+
height: var(--height);
|
|
32
|
+
line-height: calc(var(--height) + 2px);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.leftColInner-AB1JiD {
|
|
36
|
+
justify-content: space-between;
|
|
37
|
+
align-items: center;
|
|
38
|
+
height: 100%;
|
|
39
|
+
display: flex;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.rightCol-jgHpb9 {
|
|
43
|
+
flex: 1;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.rightColInner-nINgMT {
|
|
47
|
+
justify-content: flex-end;
|
|
48
|
+
align-items: center;
|
|
49
|
+
column-gap: calc(var(--spacing-base)/3);
|
|
50
|
+
height: var(--height);
|
|
51
|
+
flex-wrap: nowrap;
|
|
52
|
+
display: flex;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.rsdoctorLogo-O30iKB {
|
|
56
|
+
cursor: pointer;
|
|
57
|
+
width: auto;
|
|
58
|
+
height: 30px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.rsdoctorLogo-O30iKB:active {
|
|
62
|
+
opacity: .8;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.translationsIcon-eK7oMQ {
|
|
66
|
+
--color-active: #40a9ff;
|
|
67
|
+
--color-hover: #1668dc;
|
|
68
|
+
text-align: center;
|
|
69
|
+
vertical-align: middle;
|
|
70
|
+
cursor: pointer;
|
|
71
|
+
-webkit-user-select: none;
|
|
72
|
+
user-select: none;
|
|
73
|
+
width: 30px;
|
|
74
|
+
font-size: 20px;
|
|
75
|
+
transition: all .3s;
|
|
76
|
+
display: inline-block;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.translationsIcon-eK7oMQ:hover {
|
|
80
|
+
color: var(--color-hover);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.translationsIcon-eK7oMQ:active {
|
|
84
|
+
color: var(--color-active);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
/*# sourceMappingURL=header_module.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack://./src/components/Layout/header.module.scss"],"names":[],"mappings":"AAAA;EACE,iBAAiB;EACjB,wCAAwC;EACxC,WAAW;EACX,qBAAqB;EACrB,UAAU;EACV,mCAAmC;EACnC,YAAY;EACZ,iCAAiC;EACjC,gBAAgB;EAChB,eAAe;AACjB;;AAX0N;EAcxN,mBAAmB;AACrB;;AAf8Q;EAkB5Q,mBAAmB;AACrB;;AAnB4S;EAsB1S,qBAAqB;EACrB,iBAAiB;EACjB,8BAA8B;EAC9B,mBAAmB;EACnB,aAAa;AACf;;AA3B2Z;EA8BzZ,qBAAqB;EACrB,sCAAsC;AACxC;;AAhC+d;EAmC7d,8BAA8B;EAC9B,mBAAmB;EACnB,YAAY;EACZ,aAAa;AACf;;AAvCujB;EA0CrjB,OAAO;AACT;;AA3CwkB;EA8CtkB,yBAAyB;EACzB,mBAAmB;EACnB,uCAAuC;EACvC,qBAAqB;EACrB,iBAAiB;EACjB,aAAa;AACf;;AApD6tB;EAuD3tB,eAAe;EACf,WAAW;EACX,YAAY;AACd;;AA1DixB;EA6D/wB,WAAW;AACb;;AA9DizB;EAiE/yB,uBAAuB;EACvB,sBAAsB;EACtB,kBAAkB;EAClB,sBAAsB;EACtB,eAAe;EACf,yBAAyB;EACzB,iBAAiB;EACjB,WAAW;EACX,eAAe;EACf,mBAAmB;EACnB,qBAAqB;AACvB;;AA5EigC;EA+E//B,yBAAyB;AAC3B;;AAhFkjC;EAmFhjC,0BAA0B;AAC5B","sourcesContent":[".root{--bg-color: white;--height: var(--layout-nav-height, 54px);width:100%;height:var(--height);position:fixed;padding:0;padding-inline:var(--spacing-base);z-index:999;background-color:var(--bg-color);transition:none}.root :global .ant-switch-handle{top:1px !important}.rootDark{--bg-color: #141414}.innerRoot{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;height:var(--height)}.leftCol{height:var(--height);line-height:calc(var(--height) + 2px)}.leftColInner{display:flex;justify-content:space-between;align-items:center;height:100%}.rightCol{flex:1}.rightColInner{display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;column-gap:calc(var(--spacing-base)/3);height:var(--height)}.rsdoctorLogo{width:auto;height:30px;cursor:pointer}.rsdoctorLogo:active{opacity:.8}.translationsIcon{--color-active: #40a9ff;--color-hover: #1668dc;display:inline-block;font-size:20px;text-align:center;vertical-align:middle;cursor:pointer;width:30px;transition:all .3s ease;user-select:none}.translationsIcon:hover{color:var(--color-hover)}.translationsIcon:active{color:var(--color-active)}"],"sourceRoot":""}
|
|
@@ -9,6 +9,7 @@ import { ConfigContext } from "../../config.mjs";
|
|
|
9
9
|
import { SDK } from "@rsdoctor/types";
|
|
10
10
|
import { ServerAPIProvider } from "../Manifest/index.mjs";
|
|
11
11
|
import { ProjectInfoContext } from "./project-info-context.mjs";
|
|
12
|
+
import index_module from "./index.module.mjs";
|
|
12
13
|
const TitleUpdater = ({ name })=>{
|
|
13
14
|
useEffect(()=>{
|
|
14
15
|
if (name) document.title = `Rsdoctor - ${name}`;
|
|
@@ -44,6 +45,12 @@ const Layout_Layout = (props)=>{
|
|
|
44
45
|
query
|
|
45
46
|
]);
|
|
46
47
|
const ctx = useContext(ConfigContext);
|
|
48
|
+
const showHeader = !ctx.embedded;
|
|
49
|
+
const globalCssVars = {
|
|
50
|
+
'--spacing-base': Size.BasePadding + 'px',
|
|
51
|
+
'--layout-nav-height': showHeader ? Size.NavBarHeight + 'px' : '0px',
|
|
52
|
+
'--color-bg-main': MAIN_BG
|
|
53
|
+
};
|
|
47
54
|
return /*#__PURE__*/ jsx(ServerAPIProvider, {
|
|
48
55
|
api: SDK.ServerAPI.API.GetProjectInfo,
|
|
49
56
|
showSkeleton: false,
|
|
@@ -52,22 +59,17 @@ const Layout_Layout = (props)=>{
|
|
|
52
59
|
project
|
|
53
60
|
},
|
|
54
61
|
children: /*#__PURE__*/ jsxs(Layout, {
|
|
62
|
+
style: globalCssVars,
|
|
55
63
|
children: [
|
|
56
64
|
/*#__PURE__*/ jsx(TitleUpdater, {
|
|
57
65
|
name: project?.name
|
|
58
66
|
}),
|
|
59
|
-
|
|
67
|
+
showHeader && /*#__PURE__*/ jsx(Header, {
|
|
60
68
|
enableRoutes: enableRoutes
|
|
61
69
|
}),
|
|
62
70
|
/*#__PURE__*/ jsx(Progress, {}),
|
|
63
71
|
/*#__PURE__*/ jsxs(Layout.Content, {
|
|
64
|
-
|
|
65
|
-
height: '100%',
|
|
66
|
-
minHeight: '100vh',
|
|
67
|
-
padding: Size.BasePadding,
|
|
68
|
-
marginTop: ctx.embedded ? 0 : Size.NavBarHeight,
|
|
69
|
-
background: MAIN_BG
|
|
70
|
-
},
|
|
72
|
+
className: index_module.content,
|
|
71
73
|
children: [
|
|
72
74
|
children,
|
|
73
75
|
/*#__PURE__*/ jsx(FloatButton.BackTop, {})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/Layout/index.mjs","sources":["../../../src/components/Layout/index.tsx"],"sourcesContent":["import { PropsWithChildren, useContext, useEffect, useState } from 'react';\nimport { FloatButton, Layout as L } from 'antd';\nimport { Language, MAIN_BG, Size } from '../../constants';\nimport { Header } from './header';\nimport {\n useLocale,\n useI18n,\n getFirstVisitFromStorage,\n setFirstVisitToStorage,\n getLanguage,\n useUrlQuery,\n getEnableRoutesFromUrlQuery,\n} from '../../utils';\nimport { Progress } from './progress';\nimport { ConfigContext } from '../../config';\nimport { SDK } from '@rsdoctor/types';\nimport { ServerAPIProvider } from '../Manifest';\nimport { ProjectInfoContext } from './project-info-context';\n\nexport interface LayoutProps {\n children: React.JSX.Element;\n}\n\nconst TitleUpdater: React.FC<{\n name?: string;\n}> = ({ name }) => {\n useEffect(() => {\n if (name) {\n document.title = `Rsdoctor - ${name}`;\n } else {\n document.title = 'Rsdoctor';\n }\n }, [name]);\n\n return null;\n};\n\nexport const Layout = (\n props: PropsWithChildren<LayoutProps>,\n): React.JSX.Element => {\n const locale = useLocale();\n const { i18n } = useI18n();\n const { children } = props;\n const query = useUrlQuery();\n const [enableRoutes, setEnableRoutes] = useState<string[] | undefined>(\n () => getEnableRoutesFromUrlQuery() || undefined,\n );\n\n useEffect(() => {\n let currentLocale = locale;\n // Check if the user is visiting the site for the first time\n const visited = getFirstVisitFromStorage();\n if (!visited) {\n setFirstVisitToStorage('1');\n const targetLang = window.navigator.language.split('-')[0];\n const userLang = getLanguage(targetLang);\n\n if (Object.values(Language).includes(userLang)) {\n currentLocale = userLang;\n }\n }\n\n if (i18n.language !== currentLocale) {\n i18n.changeLanguage(currentLocale);\n }\n }, [locale]);\n\n // Listen for enableRoutes changes in URL query parameters\n useEffect(() => {\n const newEnableRoutes = getEnableRoutesFromUrlQuery();\n setEnableRoutes(newEnableRoutes || undefined);\n }, [query]);\n\n const ctx = useContext(ConfigContext);\n\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetProjectInfo}\n showSkeleton={false}\n >\n {(project) => (\n <ProjectInfoContext.Provider value={{ project }}>\n <L>\n <TitleUpdater name={project?.name} />\n {
|
|
1
|
+
{"version":3,"file":"components/Layout/index.mjs","sources":["../../../src/components/Layout/index.tsx"],"sourcesContent":["import { PropsWithChildren, useContext, useEffect, useState } from 'react';\nimport { FloatButton, Layout as L } from 'antd';\nimport { Language, MAIN_BG, Size } from '../../constants';\nimport { Header } from './header';\nimport {\n useLocale,\n useI18n,\n getFirstVisitFromStorage,\n setFirstVisitToStorage,\n getLanguage,\n useUrlQuery,\n getEnableRoutesFromUrlQuery,\n} from '../../utils';\nimport { Progress } from './progress';\nimport { ConfigContext } from '../../config';\nimport { SDK } from '@rsdoctor/types';\nimport { ServerAPIProvider } from '../Manifest';\nimport { ProjectInfoContext } from './project-info-context';\nimport styles from './index.module.scss';\n\nexport interface LayoutProps {\n children: React.JSX.Element;\n}\n\nconst TitleUpdater: React.FC<{\n name?: string;\n}> = ({ name }) => {\n useEffect(() => {\n if (name) {\n document.title = `Rsdoctor - ${name}`;\n } else {\n document.title = 'Rsdoctor';\n }\n }, [name]);\n\n return null;\n};\n\nexport const Layout = (\n props: PropsWithChildren<LayoutProps>,\n): React.JSX.Element => {\n const locale = useLocale();\n const { i18n } = useI18n();\n const { children } = props;\n const query = useUrlQuery();\n const [enableRoutes, setEnableRoutes] = useState<string[] | undefined>(\n () => getEnableRoutesFromUrlQuery() || undefined,\n );\n\n useEffect(() => {\n let currentLocale = locale;\n // Check if the user is visiting the site for the first time\n const visited = getFirstVisitFromStorage();\n if (!visited) {\n setFirstVisitToStorage('1');\n const targetLang = window.navigator.language.split('-')[0];\n const userLang = getLanguage(targetLang);\n\n if (Object.values(Language).includes(userLang)) {\n currentLocale = userLang;\n }\n }\n\n if (i18n.language !== currentLocale) {\n i18n.changeLanguage(currentLocale);\n }\n }, [locale]);\n\n // Listen for enableRoutes changes in URL query parameters\n useEffect(() => {\n const newEnableRoutes = getEnableRoutesFromUrlQuery();\n setEnableRoutes(newEnableRoutes || undefined);\n }, [query]);\n\n const ctx = useContext(ConfigContext);\n const showHeader = !ctx.embedded;\n\n const globalCssVars = {\n '--spacing-base': Size.BasePadding + 'px',\n '--layout-nav-height': showHeader ? Size.NavBarHeight + 'px' : '0px',\n '--color-bg-main': MAIN_BG,\n } as React.CSSProperties;\n\n return (\n <ServerAPIProvider\n api={SDK.ServerAPI.API.GetProjectInfo}\n showSkeleton={false}\n >\n {(project) => (\n <ProjectInfoContext.Provider value={{ project }}>\n <L style={globalCssVars}>\n <TitleUpdater name={project?.name} />\n {showHeader && <Header enableRoutes={enableRoutes} />}\n <Progress />\n <L.Content className={styles.content}>\n {children}\n <FloatButton.BackTop />\n </L.Content>\n </L>\n </ProjectInfoContext.Provider>\n )}\n </ServerAPIProvider>\n );\n};\n"],"names":["TitleUpdater","name","useEffect","document","Layout","props","locale","useLocale","i18n","useI18n","children","query","useUrlQuery","enableRoutes","setEnableRoutes","useState","getEnableRoutesFromUrlQuery","undefined","currentLocale","visited","getFirstVisitFromStorage","setFirstVisitToStorage","targetLang","window","userLang","getLanguage","Object","Language","newEnableRoutes","ctx","useContext","ConfigContext","showHeader","globalCssVars","Size","MAIN_BG","ServerAPIProvider","SDK","project","ProjectInfoContext","L","Header","Progress","styles","FloatButton"],"mappings":";;;;;;;;;;;;AAwBA,MAAMA,eAED,CAAC,EAAEC,IAAI,EAAE;IACZC,UAAU;QACR,IAAID,MACFE,SAAS,KAAK,GAAG,CAAC,WAAW,EAAEF,MAAM;aAErCE,SAAS,KAAK,GAAG;IAErB,GAAG;QAACF;KAAK;IAET,OAAO;AACT;AAEO,MAAMG,gBAAS,CACpBC;IAEA,MAAMC,SAASC;IACf,MAAM,EAAEC,IAAI,EAAE,GAAGC;IACjB,MAAM,EAAEC,QAAQ,EAAE,GAAGL;IACrB,MAAMM,QAAQC;IACd,MAAM,CAACC,cAAcC,gBAAgB,GAAGC,SACtC,IAAMC,iCAAiCC;IAGzCf,UAAU;QACR,IAAIgB,gBAAgBZ;QAEpB,MAAMa,UAAUC;QAChB,IAAI,CAACD,SAAS;YACZE,uBAAuB;YACvB,MAAMC,aAAaC,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC1D,MAAMC,WAAWC,YAAYH;YAE7B,IAAII,OAAO,MAAM,CAACC,UAAU,QAAQ,CAACH,WACnCN,gBAAgBM;QAEpB;QAEA,IAAIhB,KAAK,QAAQ,KAAKU,eACpBV,KAAK,cAAc,CAACU;IAExB,GAAG;QAACZ;KAAO;IAGXJ,UAAU;QACR,MAAM0B,kBAAkBZ;QACxBF,gBAAgBc,mBAAmBX;IACrC,GAAG;QAACN;KAAM;IAEV,MAAMkB,MAAMC,WAAWC;IACvB,MAAMC,aAAa,CAACH,IAAI,QAAQ;IAEhC,MAAMI,gBAAgB;QACpB,kBAAkBC,KAAK,WAAW,GAAG;QACrC,uBAAuBF,aAAaE,KAAK,YAAY,GAAG,OAAO;QAC/D,mBAAmBC;IACrB;IAEA,OAAO,WAAP,GACE,IAACC,mBAAiBA;QAChB,KAAKC,IAAI,SAAS,CAAC,GAAG,CAAC,cAAc;QACrC,cAAc;kBAEb,CAACC,UAAAA,WAAAA,GACA,IAACC,mBAAmB,QAAQ;gBAAC,OAAO;oBAAED;gBAAQ;0BAC5C,mBAACE,QAACA;oBAAC,OAAOP;;sCACR,IAACjC,cAAYA;4BAAC,MAAMsC,SAAS;;wBAC5BN,cAAc,WAAdA,GAAc,IAACS,QAAMA;4BAAC,cAAc5B;;sCACrC,IAAC6B,UAAQA,CAAAA;sCACT,KAACF,OAAAA,OAAS;4BAAC,WAAWG,aAAAA,OAAc;;gCACjCjC;8CACD,IAACkC,YAAY,OAAO;;;;;;;AAOlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components/Layout/index.module.mjs","sources":["../../../src/components/Layout/index.module.scss"],"sourcesContent":["// extracted by LIB_CSS_EXTRACT_LOADER\nimport \"./index_module.css\"\nexport default {\"content\":\"content-LBJ07l\"};"],"names":[],"mappings":";AAEA,qBAAe;IAAC,SAAU;AAAgB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
.content-LBJ07l {
|
|
2
|
+
min-height: calc(100dvh - var(--layout-nav-height));
|
|
3
|
+
padding: var(--spacing-base);
|
|
4
|
+
margin-top: var(--layout-nav-height);
|
|
5
|
+
background: var(--color-bg-main, initial);
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
display: flex;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/*# sourceMappingURL=index_module.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack://./src/components/Layout/index.module.scss"],"names":[],"mappings":"AAAA;EACE,mDAAmD;EACnD,4BAA4B;EAC5B,oCAAoC;EACpC,yCAAyC;EACzC,sBAAsB;EACtB,aAAa;AACf","sourcesContent":[".content{display:flex;flex-direction:column;min-height:calc(100dvh - var(--layout-nav-height));padding:var(--spacing-base);margin-top:var(--layout-nav-height);background:var(--color-bg-main, initial)}"],"sourceRoot":""}
|
|
@@ -5,4 +5,4 @@ export interface DataSummaryProps {
|
|
|
5
5
|
description: string;
|
|
6
6
|
numberFontSize?: string;
|
|
7
7
|
}
|
|
8
|
-
export declare const DataSummary: ({ theme, number, description, }: DataSummaryProps) => import("react
|
|
8
|
+
export declare const DataSummary: ({ theme, number, description, }: DataSummaryProps) => import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const HelpCenter: () => import("react
|
|
1
|
+
export declare const HelpCenter: () => import("react").JSX.Element;
|
|
@@ -4,5 +4,5 @@ interface OverviewProps {
|
|
|
4
4
|
icon?: React.ReactNode;
|
|
5
5
|
style?: React.CSSProperties;
|
|
6
6
|
}
|
|
7
|
-
export declare const Overview: (props: OverviewProps) => import("react
|
|
7
|
+
export declare const Overview: (props: OverviewProps) => import("react").JSX.Element;
|
|
8
8
|
export default Overview;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodeViewerProps } from './interface.js';
|
|
2
|
-
export declare function CodeViewer({ className, style, code, lang, filePath, defaultLine, ranges, isEmbed, headerVisible, isLightTheme, formatOnMount, }: CodeViewerProps): import("react
|
|
2
|
+
export declare function CodeViewer({ className, style, code, lang, filePath, defaultLine, ranges, isEmbed, headerVisible, isLightTheme, formatOnMount, }: CodeViewerProps): import("react").JSX.Element;
|
|
3
3
|
export type { CodeViewerProps } from './interface.js';
|
|
4
4
|
export { useCodeDrawer } from './useCodeDrawer.js';
|
|
5
5
|
export { defineMonacoOptions } from './utils.js';
|
|
@@ -5,5 +5,5 @@ import { CodeViewerProps } from './interface.js';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare function useCodeDrawer(emptyReason: string): {
|
|
7
7
|
showCode(codeConfig: Pick<CodeViewerProps, "code" | "filePath" | "ranges" | "lang" | "defaultLine">): void;
|
|
8
|
-
codeDrawerComponent: import("react
|
|
8
|
+
codeDrawerComponent: import("react").JSX.Element;
|
|
9
9
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DiffViewerProps } from './interface.js';
|
|
2
|
-
export declare function DiffViewer({ className, style, original, modified, originalFilePath, modifiedFilePath, originalLang, modifiedLang, isEmbed, isLightTheme, headerVisible, }: DiffViewerProps): import("react
|
|
2
|
+
export declare function DiffViewer({ className, style, original, modified, originalFilePath, modifiedFilePath, originalLang, modifiedLang, isEmbed, isLightTheme, headerVisible, }: DiffViewerProps): import("react").JSX.Element;
|
|
3
3
|
export type { DiffViewerProps } from './interface.js';
|
|
4
4
|
export { useDiffDrawer } from './useDiffDrawer.js';
|
|
5
5
|
export { defineMonacoDiffOptions } from './utils.js';
|
|
@@ -5,5 +5,5 @@ import { DiffViewerProps } from './interface.js';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare function useDiffDrawer(emptyReason?: string): {
|
|
7
7
|
showCodeDiff(diffConfig: Pick<DiffViewerProps, "original" | "modified" | "originalFilePath" | "modifiedFilePath" | "originalLang" | "modifiedLang">): void;
|
|
8
|
-
codeDiffDrawerComponent: import("react
|
|
8
|
+
codeDiffDrawerComponent: import("react").JSX.Element;
|
|
9
9
|
};
|