From 1e9c2e235be17543063f400e2f76b04da06566e6 Mon Sep 17 00:00:00 2001 From: nyqykk <65393845+nyqykk@users.noreply.github.com> Date: Tue, 7 Jan 2025 11:11:01 +0800 Subject: [PATCH] fix(ui): detail fixed (#674) --- packages/client/src/App.tsx | 1 + .../Alert/ecma-version-check.module.scss | 1 - .../Alerts/bundle-alert.module.scss | 22 ++ .../src/components/Alerts/bundle-alert.tsx | 87 +++++- .../components/Alerts/collapse.module.scss | 11 +- .../src/components/Alerts/collapse.tsx | 10 +- .../src/components/Alerts/list.module.scss | 1 - .../components/src/components/Card/index.tsx | 3 +- .../src/components/Card/size.module.scss | 2 - .../components/src/components/Card/size.tsx | 7 +- .../src/components/Card/statistic.scss | 20 -- .../src/components/Charts/bootstrap.tsx | 8 +- .../components/src/components/Charts/done.tsx | 8 +- .../Configuration/builder.module.scss | 6 + .../src/components/Configuration/builder.tsx | 14 +- .../Overall/DataSummary.module.scss | 6 +- .../src/components/Overall/bundle.module.scss | 21 +- .../src/components/Overall/bundle.tsx | 77 ++--- .../src/components/Overall/card.module.scss | 1 - .../components/Overall/compile.module.scss | 8 +- .../src/components/Overall/compile.tsx | 104 +++---- .../Overall/help-center.module.scss | 26 +- .../src/components/Overall/help-center.tsx | 35 +-- .../src/components/Overall/list.module.scss | 16 +- .../components/Overall/overview.module.scss | 30 +- .../src/components/Overall/overview.tsx | 2 +- .../components/Overall/project.module.scss | 18 +- .../src/components/Overall/project.tsx | 36 ++- .../BundleSize/components/card.module.scss | 7 +- .../src/pages/BundleSize/components/cards.tsx | 6 +- .../src/pages/Overall/index.module.scss | 16 +- .../components/src/pages/Overall/index.tsx | 41 +-- .../src/pages/Overall/responsiveLayout.tsx | 12 +- packages/components/src/utils/i18n/cn.ts | 2 +- packages/components/src/utils/i18n/en.ts | 2 +- pnpm-lock.yaml | 278 +++++++++--------- 36 files changed, 556 insertions(+), 389 deletions(-) delete mode 100644 packages/components/src/components/Card/statistic.scss create mode 100644 packages/components/src/components/Configuration/builder.module.scss diff --git a/packages/client/src/App.tsx b/packages/client/src/App.tsx index c83a49df..8ba1a9db 100644 --- a/packages/client/src/App.tsx +++ b/packages/client/src/App.tsx @@ -121,6 +121,7 @@ const App: React.FC = (): React.ReactElement => { token: { padding: 16, colorText: 'rgba(0, 0, 0, 0.85)', + fontFamily: 'var(--font-family-code)', }, }} > diff --git a/packages/components/src/components/Alert/ecma-version-check.module.scss b/packages/components/src/components/Alert/ecma-version-check.module.scss index 2a7eacce..9a387571 100644 --- a/packages/components/src/components/Alert/ecma-version-check.module.scss +++ b/packages/components/src/components/Alert/ecma-version-check.module.scss @@ -3,7 +3,6 @@ justify-content: space-between; align-items: center; padding: 10px 20px; - font-family: var(--font-family-code); .box { width: 300px; diff --git a/packages/components/src/components/Alerts/bundle-alert.module.scss b/packages/components/src/components/Alerts/bundle-alert.module.scss index 1f464ba6..bbc9993d 100644 --- a/packages/components/src/components/Alerts/bundle-alert.module.scss +++ b/packages/components/src/components/Alerts/bundle-alert.module.scss @@ -14,3 +14,25 @@ } } } + +.title { + height: 32px; + font-size: 16px; + font-weight: 500; + line-height: 20px; + text-align: left; +} + +.labelTitle { + font-family: PingFang SC; + font-size: 12px; + font-weight: 400; + line-height: 20px; + text-align: left; +} + +.labelDescription { + display: flex; + justify-content: space-between; + align-items: center; +} diff --git a/packages/components/src/components/Alerts/bundle-alert.tsx b/packages/components/src/components/Alerts/bundle-alert.tsx index 7760dbe7..53929596 100644 --- a/packages/components/src/components/Alerts/bundle-alert.tsx +++ b/packages/components/src/components/Alerts/bundle-alert.tsx @@ -1,4 +1,4 @@ -import { Typography, Tabs, Empty } from 'antd'; +import { Tabs, Empty, Tag } from 'antd'; import { Card } from '../Card'; import { ECMAVersionCheck } from '../Alert/ecma-version-check'; @@ -12,6 +12,7 @@ import { AlertProps } from '../Alert/types'; import type { Rule } from '@rsdoctor/types'; import styles from './bundle-alert.module.scss'; +import { CSSProperties, useState } from 'react'; interface BundleAlertProps { title: string; @@ -28,6 +29,7 @@ export const BundleAlert: React.FC = ({ dataSource, extraData, }) => { + const [activekey, setActiveKey] = useState('E1001'); const tabData: Array<{ key: string; label: string; @@ -61,11 +63,40 @@ export const BundleAlert: React.FC = ({ }); const tabItems = tabData.map((td) => { + const tagStyle = + activekey === td.key + ? ({ + border: '1px solid #91D5FF', + backgroundColor: '#E6F7FF', + } as CSSProperties) + : {}; + + const tagTextStyle = + activekey === td.key + ? { + color: '#1890FF', + } + : {}; + const LabelComponent = () => ( {td.key}} + style={{ + backgroundColor: 'transparent', + paddingLeft: 0, + paddingRight: 0, + width: '100%', + }} + title={{td.label}} + description={ +
+ {td.data.length} + + {td.key} + +
+ } /> ); @@ -104,7 +135,26 @@ export const BundleAlert: React.FC = ({ key: td.key, label: , children: ( - + + + {td.key} + + {td.label} + + } + > {children} ), @@ -112,15 +162,24 @@ export const BundleAlert: React.FC = ({ }); return ( - - {!dataSource.length ? ( - - ) : ( - - )} + +
+
{title}
+ {!dataSource.length ? ( + + ) : ( + + )} +
); }; diff --git a/packages/components/src/components/Alerts/collapse.module.scss b/packages/components/src/components/Alerts/collapse.module.scss index 6765c453..0f05f08a 100644 --- a/packages/components/src/components/Alerts/collapse.module.scss +++ b/packages/components/src/components/Alerts/collapse.module.scss @@ -20,7 +20,6 @@ .collapseContainer { .collapseChild { display: flex; - font-family: var(--font-family-code); font-size: 14px; font-weight: 400; line-height: 20px; @@ -31,7 +30,6 @@ } .attribute { - font-family: var(--font-family-code); font-size: 12px; font-weight: 400; line-height: 16px; @@ -55,7 +53,6 @@ align-items: center; .drawerLabelSize { - font-family: var(--font-family-code); font-size: 12px; font-weight: 400; } @@ -76,3 +73,11 @@ margin-left: 5px; } } + +.pkgName { + font-size: 13px; + font-weight: 700; + line-height: 20px; + text-align: left; + font-family: Menlo; +} diff --git a/packages/components/src/components/Alerts/collapse.tsx b/packages/components/src/components/Alerts/collapse.tsx index 7fc56838..d866f6ff 100644 --- a/packages/components/src/components/Alerts/collapse.tsx +++ b/packages/components/src/components/Alerts/collapse.tsx @@ -22,7 +22,7 @@ import styles from './collapse.module.scss'; const { Paragraph } = Typography; const LabelComponent = (props: { - title: string; + title: string | ReactNode; description: string; extra: ReactNode; }) => { @@ -124,8 +124,12 @@ export const AlertCollapse = (props: { key: d.code, label: ( + {name} + + } + description={`${packages.length} versions was found`} extra={
diff --git a/packages/components/src/components/Alerts/list.module.scss b/packages/components/src/components/Alerts/list.module.scss index a961a97c..b1ebe2a2 100644 --- a/packages/components/src/components/Alerts/list.module.scss +++ b/packages/components/src/components/Alerts/list.module.scss @@ -1,5 +1,4 @@ .description { - font-family: var(--font-family-code); font-size: 14px; font-weight: 400; line-height: 16px; diff --git a/packages/components/src/components/Card/index.tsx b/packages/components/src/components/Card/index.tsx index 149456bf..d5f1a66b 100644 --- a/packages/components/src/components/Card/index.tsx +++ b/packages/components/src/components/Card/index.tsx @@ -24,6 +24,7 @@ export const Card: React.FC = ({ if (title && collapsable) { return ( @@ -59,7 +60,7 @@ export const Card: React.FC = ({ ); } return ( - + {children} ); diff --git a/packages/components/src/components/Card/size.module.scss b/packages/components/src/components/Card/size.module.scss index 76bd13d2..3bf8bac8 100644 --- a/packages/components/src/components/Card/size.module.scss +++ b/packages/components/src/components/Card/size.module.scss @@ -1,5 +1,4 @@ .dataContainer { - font-family: var(--font-family-code); display: flex; flex-direction: column; @@ -23,7 +22,6 @@ display: flex; flex-direction: column; .percentDescription { - font-family: var(--font-family-code); font-size: 12px; font-weight: 400; line-height: 20px; diff --git a/packages/components/src/components/Card/size.tsx b/packages/components/src/components/Card/size.tsx index b9cce397..1d157e9c 100644 --- a/packages/components/src/components/Card/size.tsx +++ b/packages/components/src/components/Card/size.tsx @@ -73,7 +73,8 @@ export const SizeCard: React.FC = ({ body={{ withFileContent: false }} > {(res) => { - const { treeData } = getFiles(res[fileType].total, fileType); + const type = fileType.includes('image') ? 'imgs' : fileType; + const { treeData } = getFiles(res[type].total, type); return ( {showProgress ? ( @@ -88,7 +89,9 @@ export const SizeCard: React.FC = ({ format={(percent) => (
{percent}% - {type} + + total {type} +
)} /> diff --git a/packages/components/src/components/Card/statistic.scss b/packages/components/src/components/Card/statistic.scss deleted file mode 100644 index 499437e0..00000000 --- a/packages/components/src/components/Card/statistic.scss +++ /dev/null @@ -1,20 +0,0 @@ -.statistic-card { - border-radius: 8px; - text-align: center; - padding: 24px; - - &-title { - font-size: 14px; - font-weight: 500; - } - - &-light { - background: white; - // background: linear-gradient(135deg, rgb(255 255 255) 0%, rgb(228 243 255) 100%); - border: 1px solid #eee; - box-shadow: 0px 0px 50px 0px #dcf2f4; - } - &-dark { - background: rgb(20, 20, 20); - } -} \ No newline at end of file diff --git a/packages/components/src/components/Charts/bootstrap.tsx b/packages/components/src/components/Charts/bootstrap.tsx index 31e6a27e..0993974f 100644 --- a/packages/components/src/components/Charts/bootstrap.tsx +++ b/packages/components/src/components/Charts/bootstrap.tsx @@ -1,6 +1,5 @@ import React from 'react'; import { Space } from 'antd'; -import { BarChartOutlined } from '@ant-design/icons'; import { SDK } from '@rsdoctor/types'; import { TextDrawer } from '../TextDrawer'; @@ -44,12 +43,7 @@ export const BootstrapChartContainer: React.FC = ({ BeforeCompile" stage' }} - text={ - - detail - - - } + text={detail} > {(res) => diff --git a/packages/components/src/components/Charts/done.tsx b/packages/components/src/components/Charts/done.tsx index 847ce953..8d33f097 100644 --- a/packages/components/src/components/Charts/done.tsx +++ b/packages/components/src/components/Charts/done.tsx @@ -1,6 +1,5 @@ import React from 'react'; import { Divider, Space } from 'antd'; -import { BarChartOutlined } from '@ant-design/icons'; import { SDK } from '@rsdoctor/types'; import { Summary } from '@rsdoctor/utils/common'; import { TextDrawer } from '../TextDrawer'; @@ -42,12 +41,7 @@ export const DoneChartContainer: React.FC = ({ - detail - -
- } + text={detail} > {(res) => diff --git a/packages/components/src/components/Configuration/builder.module.scss b/packages/components/src/components/Configuration/builder.module.scss new file mode 100644 index 00000000..c58e4045 --- /dev/null +++ b/packages/components/src/components/Configuration/builder.module.scss @@ -0,0 +1,6 @@ +.title { + font-size: 13px; + font-weight: 400; + line-height: 22px; + text-align: right; +} diff --git a/packages/components/src/components/Configuration/builder.tsx b/packages/components/src/components/Configuration/builder.tsx index bf5f0217..d0c84bbc 100644 --- a/packages/components/src/components/Configuration/builder.tsx +++ b/packages/components/src/components/Configuration/builder.tsx @@ -1,5 +1,6 @@ import { SDK } from '@rsdoctor/types'; import { Divider, Row, Select, Space, Typography } from 'antd'; +import { RightOutlined } from '@ant-design/icons'; import { pick } from 'lodash-es'; import React, { useState } from 'react'; import ReactJson from 'react-json-view'; @@ -8,6 +9,8 @@ import { withServerAPI } from '../Manifest'; import { TextDrawer } from '../TextDrawer'; import { Title } from '../Title'; +import styles from './builder.module.scss'; + interface WebpackConfigurationViewerBaseProps { defaultKeys?: string[]; configs: SDK.ConfigData; @@ -25,7 +28,16 @@ export const WebpackConfigurationViewerBase: React.FC< const [selectKeys, setSelectKeys] = useState(defaultKeys || keys); return ( - + + + View Bundler Config + + +
+ } + > <Divider /> diff --git a/packages/components/src/components/Overall/DataSummary.module.scss b/packages/components/src/components/Overall/DataSummary.module.scss index e1c96036..7b7f6abf 100644 --- a/packages/components/src/components/Overall/DataSummary.module.scss +++ b/packages/components/src/components/Overall/DataSummary.module.scss @@ -1,7 +1,6 @@ .errorNumber, .warningNumber, .successNumber { - font-family: var(--font-family-code); font-size: 14px; font-weight: 500; line-height: 32px; @@ -67,11 +66,12 @@ } .container { + height: 40px; display: flex; align-items: center; padding: 10px 20px 10px 5px; border-radius: 10px; - margin: 10px 0; + margin: 10px 0 20px 0; .icon { margin: 0 5px 0 10px; @@ -79,7 +79,6 @@ .description { margin-right: 5px; - font-family: var(--font-family-code); font-size: 14px; font-weight: 400; line-height: 20px; @@ -87,7 +86,6 @@ } .data { - font-family: var(--font-family-code); font-size: 14px; font-weight: 500; line-height: 32px; diff --git a/packages/components/src/components/Overall/bundle.module.scss b/packages/components/src/components/Overall/bundle.module.scss index c5a6b8c2..e977f35e 100644 --- a/packages/components/src/components/Overall/bundle.module.scss +++ b/packages/components/src/components/Overall/bundle.module.scss @@ -1,18 +1,25 @@ .title { + height: 40px; display: flex; justify-content: space-between; + align-items: center; + font-size: 16px; + font-weight: 500; + line-height: 20px; + text-align: left; + position: relative; + top: -10px; } .description { - font-family: var(--font-family-code); font-size: 20px; font-weight: 500; line-height: 32px; margin-right: 5px; + margin-bottom: 14px; } .unit { - font-family: var(--font-family-code); font-size: 12px; font-weight: 400; line-height: 32px; @@ -42,3 +49,13 @@ height: 23px; } } + +.label { + font-size: 12px; + font-weight: 400; + line-height: 20px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + color: #000000a6; +} diff --git a/packages/components/src/components/Overall/bundle.tsx b/packages/components/src/components/Overall/bundle.tsx index 9539133d..7b744d86 100644 --- a/packages/components/src/components/Overall/bundle.tsx +++ b/packages/components/src/components/Overall/bundle.tsx @@ -8,7 +8,7 @@ import { Tree, Tag, } from 'antd'; -import Icon, { FolderOpenTwoTone } from '@ant-design/icons'; +import Icon, { FolderOpenTwoTone, RightOutlined } from '@ant-design/icons'; import { useNavigate } from 'react-router-dom'; import { formatSize, useI18n } from '../../utils'; @@ -192,8 +192,8 @@ const BundleDescriptions = ({ ), }, { - key: 'img-files-count', - label: 'Img files', + key: 'image-files-count', + label: 'Image files', children: ( <span className={styles.description}> {getFilesWithDrawer(res.imgs.total, 'imgs')} @@ -223,17 +223,17 @@ const BundleDescriptions = ({ const sizeItems: DescriptionsProps['items'] = [ { key: 'js-files-size', - label: 'JS size', + label: <span className={styles.label}>JS size</span>, children: ( - <> + <div> <span className={styles.description}>{jsSize}</span> <span className={styles.unit}>{jsSizeUnit}</span> - </> + </div> ), }, { key: 'css-files-size', - label: 'CSS size', + label: <span className={styles.label}>CSS size</span>, children: ( <> <span className={styles.description}>{cssSize}</span> @@ -243,7 +243,7 @@ const BundleDescriptions = ({ }, { key: 'font-files-size', - label: 'Font size', + label: <span className={styles.label}>Font size</span>, children: ( <> <span className={styles.description}>{fontSize}</span> @@ -253,7 +253,7 @@ const BundleDescriptions = ({ }, { key: 'html-files-size', - label: 'HTML size', + label: <span className={styles.label}>HTML size</span>, children: ( <> <span className={styles.description}>{htmlSize}</span> @@ -262,8 +262,8 @@ const BundleDescriptions = ({ ), }, { - key: 'img-files-size', - label: 'Img size', + key: 'image-files-size', + label: <span className={styles.label}>Image size</span>, children: ( <> <span className={styles.description}>{imgSize}</span> @@ -273,7 +273,7 @@ const BundleDescriptions = ({ }, { key: 'media-files-size', - label: 'Media size', + label: <span className={styles.label}>Media size</span>, children: ( <> <span className={styles.description}>{mediaSize}</span> @@ -286,7 +286,7 @@ const BundleDescriptions = ({ return ( <Descriptions layout={'vertical'} - className={listStyles.root} + className={listStyles.bundleOverall} size="small" column={3} colon={false} @@ -315,37 +315,46 @@ export const BundleOverall: React.FC<{ {(res) => { const totalSizeStr = formatSize(res.all.total.size); return ( - <Card - title={ + <Card className={cardStyles.card} style={{ height: '316px' }}> + <div style={{ marginTop: '-4px' }}> <div className={styles.title}> <span>{t('Bundle Overall')}</span> <Button type="link" + style={{ padding: '0px' }} onClick={() => { navigate(Client.RsdoctorClientRoutes.BundleSize); }} > - View Bundler Size + <div style={{ display: 'flex', alignItems: 'center' }}> + <span style={{ marginRight: '8px', fontSize: '13px' }}> + View Bundler Size + </span> + <RightOutlined style={{ fontSize: '10px' }} /> + </div> </Button> </div> - } - className={cardStyles.card} - > - <Radio.Group - onChange={handleViewChange} - value={view} - defaultValue={view} - style={{ marginBottom: 8 }} - > - <Radio.Button value="size">Size</Radio.Button> - <Radio.Button value="files">Files</Radio.Button> - </Radio.Group> - <DataSummary - theme={view === 'files' ? 'common' : 'warning'} - number={view === 'files' ? res.all.total.count : totalSizeStr} - description={`Total ${view}`} - /> - <BundleDescriptions view={view} res={res} /> + <Radio.Group + size="small" + onChange={handleViewChange} + value={view} + defaultValue={view} + style={{ marginBottom: 8 }} + > + <Radio.Button style={{ fontSize: '14px' }} value="size"> + Size + </Radio.Button> + <Radio.Button style={{ fontSize: '14px' }} value="files"> + Files + </Radio.Button> + </Radio.Group> + <DataSummary + theme={view === 'files' ? 'common' : 'warning'} + number={view === 'files' ? res.all.total.count : totalSizeStr} + description={`Total ${view}`} + /> + <BundleDescriptions view={view} res={res} /> + </div> </Card> ); }} diff --git a/packages/components/src/components/Overall/card.module.scss b/packages/components/src/components/Overall/card.module.scss index cabcc936..e9d8e0c7 100644 --- a/packages/components/src/components/Overall/card.module.scss +++ b/packages/components/src/components/Overall/card.module.scss @@ -1,6 +1,5 @@ .card { width: 100%; - padding-bottom: 10px; :global(.ant-card-body) { padding-bottom: 16px; diff --git a/packages/components/src/components/Overall/compile.module.scss b/packages/components/src/components/Overall/compile.module.scss index 868edbfb..6f65fb06 100644 --- a/packages/components/src/components/Overall/compile.module.scss +++ b/packages/components/src/components/Overall/compile.module.scss @@ -3,4 +3,10 @@ opacity: 0.8; font-size: 13px; } -} \ No newline at end of file +} + +.title { + font-size: 16px; + font-weight: 500; + line-height: 20px; +} diff --git a/packages/components/src/components/Overall/compile.tsx b/packages/components/src/components/Overall/compile.tsx index 230dc38b..02ce33bf 100644 --- a/packages/components/src/components/Overall/compile.tsx +++ b/packages/components/src/components/Overall/compile.tsx @@ -7,6 +7,7 @@ import { Card } from '../Card'; import { BootstrapChartContainer } from '../Charts/bootstrap'; import { DoneChartContainer } from '../Charts/done'; import { MinifyChartContainer } from '../Charts/minify'; + import cardStyles from './card.module.scss'; import styles from './compile.module.scss'; @@ -35,59 +36,62 @@ export const CompileOverall: React.FC<{ summary: SDK.SummaryData }> = ({ const maxCosts = Math.max(...summary.costs.map((item) => item.costs)); return ( - <Card title={t('Compile Overall')} className={cardStyles.card}> - <Space - style={{ wordBreak: 'break-all', width: '100%' }} - size={20} - direction="vertical" - > - {summary.costs.map((e) => { - const { name, costs } = e; - const percent = (costs * 100) / maxCosts; + <Card className={cardStyles.card}> + <div style={{ marginTop: '-4px' }}> + <Space + style={{ wordBreak: 'break-all', width: '100%', marginTop: '-4px' }} + size={20} + direction="vertical" + > + <div className={styles.title}>{t('Compile Overall')}</div> + {summary.costs.map((e) => { + const { name, costs } = e; + const percent = (costs * 100) / maxCosts; - const ProgressBar = ( - <Progress - className={styles.progress} - percent={percent} - status="normal" - format={() => formatCosts(costs)} - /> - ); + const ProgressBar = ( + <Progress + className={styles.progress} + percent={percent} + status="normal" + format={() => formatCosts(costs)} + /> + ); - switch (name) { - case Summary.SummaryCostsDataName.Bootstrap: - return ( - <Stage name="Bootstrap ~ BeforeCompile" key={name}> - <BootstrapChartContainer summary={summary} /> - {ProgressBar} - </Stage> - ); - case Summary.SummaryCostsDataName.Compile: - return ( - <Stage name="Compile" key={name} showDivider={false}> - {ProgressBar} - </Stage> - ); - case Summary.SummaryCostsDataName.Done: - return ( - <Stage name="AfterCompile ~ Done" key={name}> - <DoneChartContainer summary={summary} /> - {ProgressBar} - </Stage> - ); - case Summary.SummaryCostsDataName.Minify: - return ( - <Stage name="Minify" key={name}> - <MinifyChartContainer summary={summary} /> - {ProgressBar} - </Stage> - ); + switch (name) { + case Summary.SummaryCostsDataName.Bootstrap: + return ( + <Stage name="Bootstrap ~ BeforeCompile" key={name}> + <BootstrapChartContainer summary={summary} /> + {ProgressBar} + </Stage> + ); + case Summary.SummaryCostsDataName.Compile: + return ( + <Stage name="Compile" key={name} showDivider={false}> + {ProgressBar} + </Stage> + ); + case Summary.SummaryCostsDataName.Done: + return ( + <Stage name="AfterCompile ~ Done" key={name}> + <DoneChartContainer summary={summary} /> + {ProgressBar} + </Stage> + ); + case Summary.SummaryCostsDataName.Minify: + return ( + <Stage name="Minify" key={name}> + <MinifyChartContainer summary={summary} /> + {ProgressBar} + </Stage> + ); - default: - return null; - } - })} - </Space> + default: + return null; + } + })} + </Space> + </div> </Card> ); }; diff --git a/packages/components/src/components/Overall/help-center.module.scss b/packages/components/src/components/Overall/help-center.module.scss index 20f9908f..4cc6df11 100644 --- a/packages/components/src/components/Overall/help-center.module.scss +++ b/packages/components/src/components/Overall/help-center.module.scss @@ -2,20 +2,38 @@ display: flex; align-items: center; justify-content: space-between; + position: relative; + height: 36px; + position: relative; + top: -10px; + + font-size: 16px; + font-weight: 500; + line-height: 20px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; } .container { display: flex; - justify-content: space-around; + justify-content: space-between; flex-wrap: wrap; + position: relative; + top: 8px; .content { cursor: pointer; - font-size: 16px; width: 48%; - margin-bottom: 13px; - padding: 0 10px; + margin-bottom: 16px; transition: color 0.5s ease; + + font-size: 14px; + font-weight: 400; + line-height: 16px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; } .content:hover { diff --git a/packages/components/src/components/Overall/help-center.tsx b/packages/components/src/components/Overall/help-center.tsx index d1e0174c..d6d7aa3e 100644 --- a/packages/components/src/components/Overall/help-center.tsx +++ b/packages/components/src/components/Overall/help-center.tsx @@ -1,4 +1,5 @@ import { Button } from 'antd'; +import { RightOutlined } from '@ant-design/icons'; import { Card } from '../Card'; import { useI18n } from '../../utils'; @@ -17,33 +18,33 @@ export const HelpCenter = (props: HelpCenterProps) => { const { t } = useI18n(); return ( - <Card - style={{ width: '100%' }} - title={ + <Card style={{ width: '100%', borderRadius: '12px' }}> + <div style={{ marginTop: '-4px' }}> <div className={styles.title}> <span>{t('Help Center')}</span> <Button + style={{ display: 'flex', alignItems: 'center', padding: 0 }} type="link" onClick={() => { window.open('https://rsdoctor.dev/index', '_blank'); }} > - More + <span style={{ marginRight: '3px' }}>More</span> + <RightOutlined style={{ fontSize: '10px' }} /> </Button> </div> - } - > - <div className={styles.container}> - {data.map(({ title, link }) => { - return ( - <div - className={styles.content} - onClick={() => window.open(link, '_blank')} - > - {t(title)} - </div> - ); - })} + <div className={styles.container}> + {data.map(({ title, link }) => { + return ( + <div + className={styles.content} + onClick={() => window.open(link, '_blank')} + > + {t(title)} + </div> + ); + })} + </div> </div> </Card> ); diff --git a/packages/components/src/components/Overall/list.module.scss b/packages/components/src/components/Overall/list.module.scss index 0b29356a..451842e3 100644 --- a/packages/components/src/components/Overall/list.module.scss +++ b/packages/components/src/components/Overall/list.module.scss @@ -1,4 +1,4 @@ -.root { +.projectOverall { :global(.ant-descriptions-item-label), :global(.ant-descriptions-item-content) { font-size: 13px; @@ -6,6 +6,18 @@ } :global(.ant-descriptions-item) { - padding-bottom: 6px !important; + padding-bottom: 10px !important; + } +} + +.bundleOverall { + :global(.ant-descriptions-item-label), + :global(.ant-descriptions-item-content) { + font-size: 13px; + color: #000000a6; + } + + :global(.ant-descriptions-item) { + padding-bottom: 0px !important; } } diff --git a/packages/components/src/components/Overall/overview.module.scss b/packages/components/src/components/Overall/overview.module.scss index 86d086ec..4ac3a7cd 100644 --- a/packages/components/src/components/Overall/overview.module.scss +++ b/packages/components/src/components/Overall/overview.module.scss @@ -4,23 +4,25 @@ background: #f6f8fa; align-items: center; justify-content: space-between; - min-width: 280px; - padding: 10px 20px; border-radius: 8px; + padding: 8px 20px 8px 20px; margin-right: 10px; + white-space: nowrap; - .title { - font-family: var(--font-family-code); - font-size: 12px; - font-weight: 400; - line-height: 20px; - color: #000000a6; - } + .content { + flex: 1; + + .title { + font-size: 12px; + font-weight: 400; + line-height: 20px; + color: #000000a6; + } - .description { - font-family: var(--font-family-code); - font-size: 24px; - font-weight: 500; - line-height: 32px; + .description { + font-size: 24px; + font-weight: 500; + line-height: 32px; + } } } diff --git a/packages/components/src/components/Overall/overview.tsx b/packages/components/src/components/Overall/overview.tsx index 7c08463f..2ef45b4d 100644 --- a/packages/components/src/components/Overall/overview.tsx +++ b/packages/components/src/components/Overall/overview.tsx @@ -11,7 +11,7 @@ export const Overview = (props: OverviewProps) => { const { title, description, icon, style } = props; return ( <div className={styles.container} style={style}> - <div> + <div className={styles.content}> <div className={styles.title}>{title}</div> <div className={styles.description}>{description}</div> </div> diff --git a/packages/components/src/components/Overall/project.module.scss b/packages/components/src/components/Overall/project.module.scss index b54d67bb..0c311525 100644 --- a/packages/components/src/components/Overall/project.module.scss +++ b/packages/components/src/components/Overall/project.module.scss @@ -1,4 +1,20 @@ .overview { display: flex; - margin-bottom: 20px; + margin-bottom: 19px; +} + +.title { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 20px; + + .left { + font-size: 16px; + font-weight: 500; + line-height: 24px; + text-align: left; + text-underline-position: from-font; + text-decoration-skip-ink: none; + } } diff --git a/packages/components/src/components/Overall/project.tsx b/packages/components/src/components/Overall/project.tsx index e772ab5c..55b221ed 100644 --- a/packages/components/src/components/Overall/project.tsx +++ b/packages/components/src/components/Overall/project.tsx @@ -12,6 +12,7 @@ import { useI18n, formatSize } from '../../utils'; import { WebpackConfigurationViewer } from '../Configuration'; import { Card } from '../Card'; import { Overview } from './overview'; +import styles from './project.module.scss'; import listStyles from './list.module.scss'; import cardStyles from './card.module.scss'; @@ -122,22 +123,27 @@ export const ProjectOverall: React.FC<{ ]; return ( - <Card - title={t('Project Overall')} - extra={<WebpackConfigurationViewer />} - className={cardStyles.card} - > - <div className={projectStyles.overview}> - {overViewData.map((data, idx) => ( - <Overview - key={idx} - title={data.title} - description={<span>{data.description}</span>} - icon={data.icon} - /> - ))} + <Card className={cardStyles.card}> + <div style={{ marginTop: '-4px' }}> + <div className={styles.title}> + <span className={styles.left}>{t('Project Overall')}</span> + <WebpackConfigurationViewer /> + </div> + <div className={projectStyles.overview}> + {overViewData.map((data, idx) => ( + <Overview + key={idx} + title={data.title} + description={<span>{data.description}</span>} + icon={data.icon} + /> + ))} + </div> + <Descriptions + className={listStyles.projectOverall} + items={items} + /> </div> - <Descriptions className={listStyles.root} items={items} /> </Card> ); }} diff --git a/packages/components/src/pages/BundleSize/components/card.module.scss b/packages/components/src/pages/BundleSize/components/card.module.scss index 58647f53..fe009ea0 100644 --- a/packages/components/src/pages/BundleSize/components/card.module.scss +++ b/packages/components/src/pages/BundleSize/components/card.module.scss @@ -9,10 +9,12 @@ width: 100%; display: flex; justify-content: space-evenly; + .chart { display: flex; align-items: center; justify-content: center; + flex: 1; } } @@ -23,7 +25,6 @@ margin: 0 20px; .description { - font-family: var(--font-family-code); font-size: 20px; font-weight: 500; line-height: 32px; @@ -31,17 +32,16 @@ } .unit { - font-family: var(--font-family-code); font-size: 12px; font-weight: 400; line-height: 32px; } .totalNumber { - font-family: var(--font-family-code); font-size: 13px; font-weight: 400; line-height: 20px; + margin: 4px 0; } } } @@ -53,7 +53,6 @@ margin-bottom: 25px; .title { - font-family: var(--font-family-code); font-size: 14px; font-weight: 500; line-height: 20px; diff --git a/packages/components/src/pages/BundleSize/components/cards.tsx b/packages/components/src/pages/BundleSize/components/cards.tsx index efbcb470..07606eda 100644 --- a/packages/components/src/pages/BundleSize/components/cards.tsx +++ b/packages/components/src/pages/BundleSize/components/cards.tsx @@ -134,7 +134,7 @@ export const BundleCards: React.FC<{ ]} />, <AssetCardContainer - titles={['Imgs', 'Fonts', 'Media']} + titles={['Images', 'Fonts', 'Media']} datas={[ { data: summary.imgs.total, @@ -228,12 +228,12 @@ export const BundleCards: React.FC<{ /> } style={{ - marginBottom: '20px', + marginBottom: '12px', }} /> <Overview title={ - <div> + <div style={{ margin: '4px 0' }}> <span style={{ marginRight: '5px' }}> Duplicate Packages </span> diff --git a/packages/components/src/pages/Overall/index.module.scss b/packages/components/src/pages/Overall/index.module.scss index 1146248e..59d40ddb 100644 --- a/packages/components/src/pages/Overall/index.module.scss +++ b/packages/components/src/pages/Overall/index.module.scss @@ -1,6 +1,7 @@ :root { - --font-family-code: Roboto, Roboto Mono, Menlo, 'Segoe UI', 'Segoe UI Symbol', - 'Noto Color Emoji'; + --font-family-code: Roboto, Roboto Mono, -apple-system, BlinkMacSystemFont, + 'Segoe UI', Menlo, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, + 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; } :global { @@ -19,6 +20,17 @@ .ant-tree-node-content-wrapper-normal { display: flex; } + + // for bundle alerts + .ant-tabs-nav-list { + width: 100%; + } + .ant-tabs-tab { + flex: 1; + } + .ant-tabs-tab-btn { + width: 100%; + } } .overall { diff --git a/packages/components/src/pages/Overall/index.tsx b/packages/components/src/pages/Overall/index.tsx index e0cc7c97..ae7b21cd 100644 --- a/packages/components/src/pages/Overall/index.tsx +++ b/packages/components/src/pages/Overall/index.tsx @@ -1,5 +1,6 @@ import { SDK } from '@rsdoctor/types'; import React from 'react'; +import { Flex } from 'antd'; import { HelpCenter } from '../../components/Overall/help-center'; import { BundleAlerts } from '../../components/Alerts'; @@ -23,7 +24,7 @@ const helpCenterData = [ link: 'https://rsdoctor.dev/guide/more/faq', }, { - title: 'Introduction', + title: 'Rsdoctor Introduction', link: 'https://rsdoctor.dev/guide/start/intro', }, { @@ -64,25 +65,27 @@ const Component: React.FC<Props> = ({ project }) => { return ( <div className={style.overall}> - <div> - <ResponsiveLayout> - <ProjectOverall - configs={configs} - cwd={cwd} - envinfo={envinfo} - alerts={errors} - /> - <BundleAlerts /> - </ResponsiveLayout> - </div> + <Flex> + <div style={{ flex: 3 }}> + <ResponsiveLayout> + <ProjectOverall + configs={configs} + cwd={cwd} + envinfo={envinfo} + alerts={errors} + /> + <BundleAlerts /> + </ResponsiveLayout> + </div> - <div> - <ResponsiveLayout> - <BundleOverall errors={errors} cwd={cwd} /> - <CompileOverall summary={summary} /> - <HelpCenter data={helpCenterData} /> - </ResponsiveLayout> - </div> + <div style={{ flex: 1 }}> + <ResponsiveLayout> + <BundleOverall errors={errors} cwd={cwd} /> + <CompileOverall summary={summary} /> + <HelpCenter data={helpCenterData} /> + </ResponsiveLayout> + </div> + </Flex> </div> ); }; diff --git a/packages/components/src/pages/Overall/responsiveLayout.tsx b/packages/components/src/pages/Overall/responsiveLayout.tsx index 5b083c06..58caf253 100644 --- a/packages/components/src/pages/Overall/responsiveLayout.tsx +++ b/packages/components/src/pages/Overall/responsiveLayout.tsx @@ -1,4 +1,4 @@ -import { Col, Row } from 'antd'; +import { Flex } from 'antd'; import React from 'react'; import style from './index.module.scss'; @@ -9,12 +9,10 @@ interface Props { export const ResponsiveLayout = ({ children }: Props) => { return ( - <Col className={style.layout}> - {children.map((e, i) => ( - <Row className={style.row} key={i} wrap> - {e} - </Row> + <Flex vertical className={style.layout}> + {children.map((e) => ( + <div className={style.row}>{e}</div> ))} - </Col> + </Flex> ); }; diff --git a/packages/components/src/utils/i18n/cn.ts b/packages/components/src/utils/i18n/cn.ts index 76bb9e93..c1a84634 100644 --- a/packages/components/src/utils/i18n/cn.ts +++ b/packages/components/src/utils/i18n/cn.ts @@ -5,7 +5,7 @@ const cn: typeof en = { 'Compile Analysis': '编译分析', 'Bundle Alerts': '编译预警', 'Help Center': '帮助中心', - Introduction: '介绍', + 'Rsdoctor Introduction': 'Rsdoctor 介绍', 'Compilation Alerts': '编译预警', 'Plugin Analysis': 'Plugins 分析', LoadersAnalysis: 'Loaders 分析', diff --git a/packages/components/src/utils/i18n/en.ts b/packages/components/src/utils/i18n/en.ts index 6648245f..7a30c152 100644 --- a/packages/components/src/utils/i18n/en.ts +++ b/packages/components/src/utils/i18n/en.ts @@ -7,7 +7,7 @@ const en = { LoadersAnalysis: 'Loaders Analysis', 'Loaders Timeline': 'Loaders Timeline', 'Loaders Analysis': 'Loaders Analysis', - Introduction: 'Introduction', + 'Rsdoctor Introduction': 'Rsdoctor Introduction', 'Compilation Alerts': 'Compilation Alerts', 'Plugin Analysis': 'Plugin Analysis', PluginsAnalysis: 'Plugins Analysis', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6b7d4988..49e76ea1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1546,15 +1546,6 @@ packages: jsesc: 2.5.2 dev: true - /@babel/generator@7.25.7: - resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.26.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 - /@babel/generator@7.26.2: resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} engines: {node: '>=6.9.0'} @@ -1723,15 +1714,6 @@ packages: - supports-color dev: true - /@babel/helper-module-imports@7.24.7: - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - /@babel/helper-module-imports@7.25.9(supports-color@5.5.0): resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} @@ -3600,7 +3582,7 @@ packages: dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-module-imports': 7.24.7 + '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) '@babel/types': 7.26.0 @@ -3615,7 +3597,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-module-imports': 7.24.7 + '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0) '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.26.0) '@babel/types': 7.26.0 @@ -4255,14 +4237,6 @@ packages: dependencies: regenerator-runtime: 0.14.1 - /@babel/template@7.25.7: - resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.25.7 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 - /@babel/template@7.25.9: resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} @@ -4286,20 +4260,6 @@ packages: - supports-color dev: true - /@babel/traverse@7.25.7: - resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/parser': 7.26.2 - '@babel/template': 7.25.7 - '@babel/types': 7.26.0 - debug: 4.3.7(supports-color@5.5.0) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - /@babel/traverse@7.25.9(supports-color@5.5.0): resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} @@ -6611,7 +6571,7 @@ packages: '@rsbuild/plugin-sass': 1.0.4(@rsbuild/core@1.0.19) '@rsbuild/plugin-source-build': 1.0.1(@rsbuild/core@1.0.19) '@rsbuild/plugin-styled-components': 1.0.1(@rsbuild/core@1.0.19) - '@rsbuild/plugin-svgr': 1.0.6(@rsbuild/core@1.0.19)(typescript@5.5.4) + '@rsbuild/plugin-svgr': 1.0.4(@rsbuild/core@1.0.19)(typescript@5.5.4) '@rsbuild/plugin-toml': 1.0.1(@rsbuild/core@1.0.19) '@rsbuild/plugin-type-check': 1.0.1(@rsbuild/core@1.0.19)(esbuild@0.17.19)(typescript@5.5.4) '@rsbuild/plugin-typed-css-modules': 1.0.2(@rsbuild/core@1.0.19) @@ -7239,7 +7199,7 @@ packages: '@rsbuild/core': 1.0.14 '@types/babel__core': 7.20.5 deepmerge: 4.3.1 - reduce-configs: 1.1.0 + reduce-configs: 1.0.0 upath: 2.0.1 transitivePeerDependencies: - supports-color @@ -7257,7 +7217,7 @@ packages: '@rsbuild/core': 1.0.19 '@types/babel__core': 7.20.5 deepmerge: 4.3.1 - reduce-configs: 1.1.0 + reduce-configs: 1.0.0 upath: 2.0.1 transitivePeerDependencies: - supports-color @@ -7303,7 +7263,7 @@ packages: dependencies: '@rsbuild/core': 1.0.19 css-minimizer-webpack-plugin: 5.0.1(esbuild@0.17.19)(webpack@5.95.0) - reduce-configs: 1.1.0 + reduce-configs: 1.0.0 transitivePeerDependencies: - '@parcel/css' - '@swc/css' @@ -7321,7 +7281,7 @@ packages: dependencies: '@rsbuild/core': 1.0.19 deepmerge: 4.3.1 - reduce-configs: 1.1.0 + reduce-configs: 1.0.0 dev: true /@rsbuild/plugin-less@1.1.0(@rsbuild/core@1.1.13): @@ -7412,37 +7372,37 @@ packages: '@rsbuild/core': 1.0.19 '@types/pug': 2.0.10 pug: 3.0.3 - reduce-configs: 1.1.0 + reduce-configs: 1.0.0 dev: true - /@rsbuild/plugin-react@1.0.7(@rsbuild/core@1.0.19): - resolution: {integrity: sha512-t7T/GqDwodusTAnxGpqVRnQ/G+HYh98zk71qIg19WkjVJJGv57AC1Ppx0/6zzbZAbxU60bfK8TeEEXjhXCdSxA==} + /@rsbuild/plugin-react@1.0.4(@rsbuild/core@1.0.19): + resolution: {integrity: sha512-lZQPl2Ocw3mxdR8dGZNTx70iLILt/p1B4oAStDNnDCVK9mzeCzpG67IYP82KaAJ5KowXTPLRqEkF9fKr5lWPPA==} peerDependencies: - '@rsbuild/core': 1.x + '@rsbuild/core': 1.x || ^1.0.1-rc.0 dependencies: '@rsbuild/core': 1.0.19 '@rspack/plugin-react-refresh': 1.0.0(react-refresh@0.14.2) react-refresh: 0.14.2 dev: true - /@rsbuild/plugin-react@1.0.7(@rsbuild/core@1.1.1): + /@rsbuild/plugin-react@1.0.7(@rsbuild/core@1.0.19): resolution: {integrity: sha512-t7T/GqDwodusTAnxGpqVRnQ/G+HYh98zk71qIg19WkjVJJGv57AC1Ppx0/6zzbZAbxU60bfK8TeEEXjhXCdSxA==} peerDependencies: '@rsbuild/core': 1.x dependencies: - '@rsbuild/core': 1.1.1 + '@rsbuild/core': 1.0.19 '@rspack/plugin-react-refresh': 1.0.0(react-refresh@0.14.2) react-refresh: 0.14.2 dev: true - /@rsbuild/plugin-react@1.1.0(@rsbuild/core@1.0.19): - resolution: {integrity: sha512-uqdRoV2V91G1XIA14dAmxqYTlTDVf0ktpE7TgwG29oQ2j+DerF1kh29WPHK9HvGE34JTfaBrsme2Zmb6bGD0cw==} + /@rsbuild/plugin-react@1.0.7(@rsbuild/core@1.1.1): + resolution: {integrity: sha512-t7T/GqDwodusTAnxGpqVRnQ/G+HYh98zk71qIg19WkjVJJGv57AC1Ppx0/6zzbZAbxU60bfK8TeEEXjhXCdSxA==} peerDependencies: '@rsbuild/core': 1.x dependencies: - '@rsbuild/core': 1.0.19 - '@rspack/plugin-react-refresh': 1.0.0(react-refresh@0.16.0) - react-refresh: 0.16.0 + '@rsbuild/core': 1.1.1 + '@rspack/plugin-react-refresh': 1.0.0(react-refresh@0.14.2) + react-refresh: 0.14.2 dev: true /@rsbuild/plugin-react@1.1.0(@rsbuild/core@1.1.13): @@ -7476,7 +7436,7 @@ packages: deepmerge: 4.3.1 loader-utils: 2.0.4 postcss: 8.4.49 - reduce-configs: 1.1.0 + reduce-configs: 1.0.0 sass-embedded: 1.81.0 dev: true @@ -7490,7 +7450,7 @@ packages: loader-utils: 2.0.4 postcss: 8.4.49 reduce-configs: 1.1.0 - sass-embedded: 1.83.0 + sass-embedded: 1.82.0 /@rsbuild/plugin-source-build@1.0.1(@rsbuild/core@1.0.19): resolution: {integrity: sha512-GA9Uapy4cTOOa0jkwf4/L4m6rPieWWOmeeEygVnJAHRdB5nW45conwlV9g1ZQC14ITHsZlai8FiZotWGPNJlwA==} @@ -7516,16 +7476,16 @@ packages: dependencies: '@rsbuild/core': 1.0.19 '@swc/plugin-styled-components': 2.0.11 - reduce-configs: 1.1.0 + reduce-configs: 1.0.0 dev: true - /@rsbuild/plugin-svgr@1.0.6(@rsbuild/core@1.0.19)(typescript@5.5.4): - resolution: {integrity: sha512-znLFk2fumNObMntkjrpZhO3guXmaQZbqv0JjhqBVng63bNdsJAmfZGXX5He8Avp4VDlv6EJI6BC5SIEs8XspTg==} + /@rsbuild/plugin-svgr@1.0.4(@rsbuild/core@1.0.19)(typescript@5.5.4): + resolution: {integrity: sha512-j2BXjNxsIEwRghsw3hagljbCYhe5uuw9qOMuN9Lgrb9PzNt44IMgIgrIdsS+3TR05CioMU/LHhA+Xjl+bhTMxA==} peerDependencies: - '@rsbuild/core': 1.x + '@rsbuild/core': 1.x || ^1.0.1-rc.0 dependencies: '@rsbuild/core': 1.0.19 - '@rsbuild/plugin-react': 1.1.0(@rsbuild/core@1.0.19) + '@rsbuild/plugin-react': 1.0.4(@rsbuild/core@1.0.19) '@svgr/core': 8.1.0(typescript@5.5.4) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)(typescript@5.5.4) @@ -7560,7 +7520,7 @@ packages: deepmerge: 4.3.1 fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.5.4)(webpack@5.95.0) json5: 2.2.3 - reduce-configs: 1.1.0 + reduce-configs: 1.0.0 webpack: 5.95.0(esbuild@0.17.19) transitivePeerDependencies: - '@swc/core' @@ -7619,7 +7579,7 @@ packages: copy-webpack-plugin: 11.0.0(webpack@5.95.0) mini-css-extract-plugin: 2.9.1(webpack@5.95.0) picocolors: 1.1.1 - reduce-configs: 1.1.0 + reduce-configs: 1.0.0 tsconfig-paths-webpack-plugin: 4.1.0 webpack: 5.95.0(esbuild@0.17.19) transitivePeerDependencies: @@ -9015,8 +8975,8 @@ packages: dependencies: '@mapbox/node-pre-gyp': 1.0.11 '@rollup/pluginutils': 4.2.1 - acorn: 8.14.0 - acorn-import-attributes: 1.9.5(acorn@8.14.0) + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 @@ -9049,7 +9009,7 @@ packages: /@vitest/snapshot@1.6.0: resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} dependencies: - magic-string: 0.30.17 + magic-string: 0.30.14 pathe: 1.1.2 pretty-format: 29.7.0 dev: true @@ -9095,7 +9055,7 @@ packages: '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 estree-walker: 2.0.2 - magic-string: 0.30.17 + magic-string: 0.30.12 postcss: 8.4.49 source-map-js: 1.2.1 dev: false @@ -9380,12 +9340,12 @@ packages: dependencies: acorn: 8.12.1 - /acorn-import-attributes@1.9.5(acorn@8.14.0): - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + /acorn-jsx@5.3.2(acorn@8.12.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: - acorn: ^8 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.14.0 + acorn: 8.12.1 dev: true /acorn-jsx@5.3.2(acorn@8.14.0): @@ -9741,6 +9701,16 @@ packages: possible-typed-array-names: 1.0.0 dev: true + /axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + dependencies: + follow-redirects: 1.15.9(debug@4.3.7) + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + /axios@1.7.9(debug@4.3.7): resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} dependencies: @@ -10358,7 +10328,7 @@ packages: js-yaml: 4.1.0 semver: 7.6.3 table: 6.8.2 - type-fest: 4.30.2 + type-fest: 4.30.0 dev: true /check-error@1.0.3: @@ -12159,8 +12129,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 3.4.3 dev: true @@ -14392,10 +14362,23 @@ packages: '@jridgewell/sourcemap-codec': 1.5.0 dev: true + /magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + dev: false + + /magic-string@0.30.14: + resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + dev: true + /magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + dev: true /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} @@ -15350,7 +15333,7 @@ packages: /mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} dependencies: - acorn: 8.14.0 + acorn: 8.12.1 pathe: 1.1.2 pkg-types: 1.1.3 ufo: 1.5.4 @@ -15414,6 +15397,7 @@ packages: /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -15552,7 +15536,7 @@ packages: '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 '@zkochan/js-yaml': 0.0.6 - axios: 1.7.9(debug@4.3.7) + axios: 1.7.7 chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 @@ -17856,6 +17840,12 @@ packages: dependencies: resolve: 1.22.8 + /reduce-configs@1.0.0: + resolution: {integrity: sha512-/JCYSgL/QeXXsq0Lv/7kOZfqvof7vyzHWfyNQPt3c6vc73mU4WRyT8RJ6ZH5Ci08vUOqXwk7jkZy6BycHTDD9w==} + dependencies: + browserslist: 4.24.0 + dev: true + /reduce-configs@1.1.0: resolution: {integrity: sha512-DQxy6liNadHfrLahZR7lMdc227NYVaQZhY5FMsxLEjX8X0SCuH+ESHSLCoz2yDZFq1/CLMDOAHdsEHwOEXKtvg==} @@ -18266,8 +18256,8 @@ packages: dev: true optional: true - /sass-embedded-android-arm64@1.83.0: - resolution: {integrity: sha512-GBiCvM4a2rkWBLdYDxI6XYnprfk5U5c81g69RC2X6kqPuzxzx8qTArQ9M6keFK4+iDQ5N9QTwFCr0KbZTn+ZNQ==} + /sass-embedded-android-arm64@1.82.0: + resolution: {integrity: sha512-bldHMs02QQWXsgHUZRgolNnZdMjN6XHvmUYoRkzmFq7lsvtLU6SJg2S1Wa9IZJs9jRWdTmOgA6YibSf3pROyFQ==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [android] @@ -18283,8 +18273,8 @@ packages: dev: true optional: true - /sass-embedded-android-arm@1.83.0: - resolution: {integrity: sha512-uwFSXzJlfbd4Px189xE5l+cxN8+TQpXdQgJec7TIrb4HEY7imabtpYufpVdqUVwT1/uiis5V4+qIEC4Vl5XObQ==} + /sass-embedded-android-arm@1.82.0: + resolution: {integrity: sha512-ttGMvWnA/5TYdZTjr5fWHDbb9nZgKipHKCc9zZQRF5HjUydOYWKNqmAJHQtbFWaq35kd5qn6yiE73IJN6eJ6wA==} engines: {node: '>=14.0.0'} cpu: [arm] os: [android] @@ -18300,8 +18290,8 @@ packages: dev: true optional: true - /sass-embedded-android-ia32@1.83.0: - resolution: {integrity: sha512-5ATPdGo2SICqAhiJl/Z8KQ23zH4sGgobGgux0TnrNtt83uHZ+r+To/ubVJ7xTkZxed+KJZnIpolGD8dQyQqoTg==} + /sass-embedded-android-ia32@1.82.0: + resolution: {integrity: sha512-FUJOnxw8IYKuYuxxiOkk6QXle8/yQFtKjnuSAJuZ5ZpLVMcSZzLc3SWOtuEXYx5iSAfJCO075o2ZoG/pPrJ9aw==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [android] @@ -18317,8 +18307,8 @@ packages: dev: true optional: true - /sass-embedded-android-riscv64@1.83.0: - resolution: {integrity: sha512-aveknUOB8GZewOzVn2Uwk+DKcncTR50Q6vtzslNMGbYnxtgQNHzy8A1qVEviNUruex+pHofppeMK4iMPFAbiEQ==} + /sass-embedded-android-riscv64@1.82.0: + resolution: {integrity: sha512-rd+vc+sxJxNnbhaubiIJmnb1b3FvC9wxCIq8spstopbO7o1uufvBBDeRoFSJaN+7oNhamzjlYGdu6aQoQNs3+A==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [android] @@ -18334,8 +18324,8 @@ packages: dev: true optional: true - /sass-embedded-android-x64@1.83.0: - resolution: {integrity: sha512-WqIay/72ncyf9Ph4vS742J3a73wZihWmzFUwpn1OD6lme1Aj4eWzWIve5IVnlTEJgcZcDHu6ECID9IZgehJKoA==} + /sass-embedded-android-x64@1.82.0: + resolution: {integrity: sha512-EVlybGTgJ8wNLyWj8RUatPXSnmIcvCsx3EfsRfBfhGihLbn4NNpavYO9QsvZzI2XWbJqHLBCd+CvkTcDw/TaSQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [android] @@ -18351,8 +18341,8 @@ packages: dev: true optional: true - /sass-embedded-darwin-arm64@1.83.0: - resolution: {integrity: sha512-XQl9QqgxFFIPm/CzHhmppse5o9ocxrbaAdC2/DAnlAqvYWBBtgFqPjGoYlej13h9SzfvNoogx+y9r+Ap+e+hYg==} + /sass-embedded-darwin-arm64@1.82.0: + resolution: {integrity: sha512-LvdJPojjKlNGYOB0nSUR/ZtMDuAF4puspHlwK42aA/qK292bfSkMUKZPPapB2aSRwccc/ieBq5fI7n/WHrOCVw==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [darwin] @@ -18368,8 +18358,8 @@ packages: dev: true optional: true - /sass-embedded-darwin-x64@1.83.0: - resolution: {integrity: sha512-ERQ7Tvp1kFOW3ux4VDFIxb7tkYXHYc+zJpcrbs0hzcIO5ilIRU2tIOK1OrNwrFO6Qxyf7AUuBwYKLAtIU/Nz7g==} + /sass-embedded-darwin-x64@1.82.0: + resolution: {integrity: sha512-6LfnD6YmG1aBfd3ReqMOJDb6Pg2Z/hmlJB7nU+Lb3E+hCNjAZAgeUHQxU/Pm1eIqJJTU/h4ib5QP0Pt9O8yVnw==} engines: {node: '>=14.0.0'} cpu: [x64] os: [darwin] @@ -18385,8 +18375,8 @@ packages: dev: true optional: true - /sass-embedded-linux-arm64@1.83.0: - resolution: {integrity: sha512-syEAVTJt4qhaMLxrSwOWa46zdqHJdnqJkLUK+t9aCr8xqBZLPxSUeIGji76uOehQZ1C+KGFj6n9xstHN6wzOJw==} + /sass-embedded-linux-arm64@1.82.0: + resolution: {integrity: sha512-590/y0HJr/JiyxaqgR7Xf9P20BIhJ+zhB/afAnVuZe/4lEfCpTyM5xMe2+sKLsqtrVyzs9Zm/M4S4ASUOPCggA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] @@ -18402,8 +18392,8 @@ packages: dev: true optional: true - /sass-embedded-linux-arm@1.83.0: - resolution: {integrity: sha512-baG9RYBJxUFmqwDNC9h9ZFElgJoyO3jgHGjzEZ1wHhIS9anpG+zZQvO8bHx3dBpKEImX+DBeLX+CxsFR9n81gQ==} + /sass-embedded-linux-arm@1.82.0: + resolution: {integrity: sha512-ozjdC5rWzyi5Vo300I4tVZzneXOTQUiaxOr7DjtN26HuFaGAGCGmvThh2BRV4RvySg++5H9rdFu+VgyUQ5iukw==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] @@ -18419,8 +18409,8 @@ packages: dev: true optional: true - /sass-embedded-linux-ia32@1.83.0: - resolution: {integrity: sha512-RRBxQxMpoxu5+XcSSc6QR/o9asEwUzR8AbCS83RaXcdTIHTa/CccQsiAoDDoPlRsMTLqnzs0LKL4CfOsf7zBbA==} + /sass-embedded-linux-ia32@1.82.0: + resolution: {integrity: sha512-hpc4acZ3UTjjJ3Q/GUXqQOCSml6AFKaku0HMawra9bKyRmOpxn8V5hqgXeOWVjK2oQzCmCnJvwKoQUP+S/SIYQ==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [linux] @@ -18436,8 +18426,8 @@ packages: dev: true optional: true - /sass-embedded-linux-musl-arm64@1.83.0: - resolution: {integrity: sha512-Y7juhPHClUO2H5O+u+StRy6SEAcwZ+hTEk5WJdEmo1Bb1gDtfHvJaWB/iFZJ2tW0W1e865AZeUrC4OcOFjyAQA==} + /sass-embedded-linux-musl-arm64@1.82.0: + resolution: {integrity: sha512-bc2MUSMv/jabnNGEyKP2jQAYZoEzTT/c633W6QoeSEWETGCuTNjaHvWWE6qSI6/UfRg1EpuV1LQA2jPMzZfv/w==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] @@ -18453,8 +18443,8 @@ packages: dev: true optional: true - /sass-embedded-linux-musl-arm@1.83.0: - resolution: {integrity: sha512-Yc7u2TelCfBab+PRob9/MNJFh3EooMiz4urvhejXkihTiKSHGCv5YqDdtWzvyb9tY2Jb7YtYREVuHwfdVn3dTQ==} + /sass-embedded-linux-musl-arm@1.82.0: + resolution: {integrity: sha512-R5PQmY/I+GSoMtfLo8GgHkvF/q6x6y8VNM7yu/Ac1mJj86n48VFi29W1HfY2496+Q6cpAq7toobDj7YfldIdVA==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] @@ -18470,8 +18460,8 @@ packages: dev: true optional: true - /sass-embedded-linux-musl-ia32@1.83.0: - resolution: {integrity: sha512-arQeYwGmwXV8byx5G1PtSzZWW1jbkfR5qrIHMEbTFSAvAxpqjgSvCvrHMOFd73FcMxVaYh4BX9LQNbKinkbEdg==} + /sass-embedded-linux-musl-ia32@1.82.0: + resolution: {integrity: sha512-ZQKCFKm5TBcJ19UG6uUQmIKfVCJIWMb7e1a93lGeujSb9gyKF5Fb6MN3tuExoT7iFK8zU0Z9iyHqh93F58lcCw==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [linux] @@ -18487,8 +18477,8 @@ packages: dev: true optional: true - /sass-embedded-linux-musl-riscv64@1.83.0: - resolution: {integrity: sha512-E6uzlIWz59rut+Z3XR6mLG915zNzv07ISvj3GUNZENdHM7dF8GQ//ANoIpl5PljMQKp89GnYdvo6kj2gnaBf/g==} + /sass-embedded-linux-musl-riscv64@1.82.0: + resolution: {integrity: sha512-5meSU8BHFeaT09RWfkuUrikRlC+WZcYb9To7MpfV1d9nlD7CZ2xydPExK+mj3DqRuQvTbvhMPcr7f+pHlgHINQ==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] @@ -18504,8 +18494,8 @@ packages: dev: true optional: true - /sass-embedded-linux-musl-x64@1.83.0: - resolution: {integrity: sha512-eAMK6tyGqvqr21r9g8BnR3fQc1rYFj85RGduSQ3xkITZ6jOAnOhuU94N5fwRS852Hpws0lXhET+7JHXgg3U18w==} + /sass-embedded-linux-musl-x64@1.82.0: + resolution: {integrity: sha512-ASLAMfjWv7YEPBvEOVlb3zzHq8l4Y9Eh4x3m7B1dNauGVbO11Yng5cPCX/XbwGVf30BtE75pwqvV7oXxBtN15w==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] @@ -18521,8 +18511,8 @@ packages: dev: true optional: true - /sass-embedded-linux-riscv64@1.83.0: - resolution: {integrity: sha512-Ojpi78pTv02sy2fUYirRGXHLY3fPnV/bvwuC2i5LwPQw2LpCcFyFTtN0c5h4LJDk9P6wr+/ZB/JXU8tHIOlK+Q==} + /sass-embedded-linux-riscv64@1.82.0: + resolution: {integrity: sha512-qWvRDXCXH3GzD8OcP0ntd8gBTK3kZyUeyXmxQDZyEtMAM4STC2Tn7+5+2JYYHlppzqWnZPFBNESvpKeOtHaBBw==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] @@ -18538,8 +18528,8 @@ packages: dev: true optional: true - /sass-embedded-linux-x64@1.83.0: - resolution: {integrity: sha512-3iLjlXdoPfgZRtX4odhRvka1BQs5mAXqfCtDIQBgh/o0JnGPzJIWWl9bYLpHxK8qb+uyVBxXYgXpI0sCzArBOw==} + /sass-embedded-linux-x64@1.82.0: + resolution: {integrity: sha512-AmRaHqShztwfep+M4NagdGaY7fTyWGSOM3k4Z/dd7q4nZclXbALLqNJtKx8xOM7A41LHYJ9zDpIBVRkrh0PzTA==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] @@ -18555,8 +18545,8 @@ packages: dev: true optional: true - /sass-embedded-win32-arm64@1.83.0: - resolution: {integrity: sha512-iOHw/8/t2dlTW3lOFwG5eUbiwhEyGWawivlKWJ8lkXH7fjMpVx2VO9zCFAm8RvY9xOHJ9sf1L7g5bx3EnNP9BQ==} + /sass-embedded-win32-arm64@1.82.0: + resolution: {integrity: sha512-zL9JDQZHXHSGAZe5DqSrR86wMHbm9QPziU4/3hoIG+99StuS74CuV42+hw/+FXXBkXMWbjKWsyF/HZt+I/wJuw==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [win32] @@ -18572,8 +18562,8 @@ packages: dev: true optional: true - /sass-embedded-win32-ia32@1.83.0: - resolution: {integrity: sha512-2PxNXJ8Pad4geVcTXY4rkyTr5AwbF8nfrCTDv0ulbTvPhzX2mMKEGcBZUXWn5BeHZTBc6whNMfS7d5fQXR9dDQ==} + /sass-embedded-win32-ia32@1.82.0: + resolution: {integrity: sha512-xE+AzLquCkFPnnpo0NHjQdLRIhG1bVs42xIKx42aUbVLYKkBDvbBGpw6EtTscRMyvcjoOqGH5saRvSFComUQcw==} engines: {node: '>=14.0.0'} cpu: [ia32] os: [win32] @@ -18589,8 +18579,8 @@ packages: dev: true optional: true - /sass-embedded-win32-x64@1.83.0: - resolution: {integrity: sha512-muBXkFngM6eLTNqOV0FQi7Dv9s+YRQ42Yem26mosdan/GmJQc81deto6uDTgrYn+bzFNmiXcOdfm+0MkTWK3OQ==} + /sass-embedded-win32-x64@1.82.0: + resolution: {integrity: sha512-cEgfOQG5womOzzk16ReTv2dxPq5BG16LgLUold/LH9IZH86u4E/MN7Fspf4RWeEJ2EcLdew9QYSC2YWs1l98dQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [win32] @@ -18633,8 +18623,8 @@ packages: sass-embedded-win32-x64: 1.81.0 dev: true - /sass-embedded@1.83.0: - resolution: {integrity: sha512-/8cYZeL39evUqe0o//193na51Q1VWZ61qhxioQvLJwOtWIrX+PgNhCyD8RSuTtmzc4+6+waFZf899bfp/MCUwA==} + /sass-embedded@1.82.0: + resolution: {integrity: sha512-v13sRVVZtWAQLpAGTz5D8hy+oyNKRHao5tKVc/P6AMqSP+jDM8X6GkEpL0jfbu3MaN2/hAQsd4Qx14GG1u0prQ==} engines: {node: '>=16.0.0'} hasBin: true dependencies: @@ -18647,26 +18637,26 @@ packages: sync-child-process: 1.0.2 varint: 6.0.0 optionalDependencies: - sass-embedded-android-arm: 1.83.0 - sass-embedded-android-arm64: 1.83.0 - sass-embedded-android-ia32: 1.83.0 - sass-embedded-android-riscv64: 1.83.0 - sass-embedded-android-x64: 1.83.0 - sass-embedded-darwin-arm64: 1.83.0 - sass-embedded-darwin-x64: 1.83.0 - sass-embedded-linux-arm: 1.83.0 - sass-embedded-linux-arm64: 1.83.0 - sass-embedded-linux-ia32: 1.83.0 - sass-embedded-linux-musl-arm: 1.83.0 - sass-embedded-linux-musl-arm64: 1.83.0 - sass-embedded-linux-musl-ia32: 1.83.0 - sass-embedded-linux-musl-riscv64: 1.83.0 - sass-embedded-linux-musl-x64: 1.83.0 - sass-embedded-linux-riscv64: 1.83.0 - sass-embedded-linux-x64: 1.83.0 - sass-embedded-win32-arm64: 1.83.0 - sass-embedded-win32-ia32: 1.83.0 - sass-embedded-win32-x64: 1.83.0 + sass-embedded-android-arm: 1.82.0 + sass-embedded-android-arm64: 1.82.0 + sass-embedded-android-ia32: 1.82.0 + sass-embedded-android-riscv64: 1.82.0 + sass-embedded-android-x64: 1.82.0 + sass-embedded-darwin-arm64: 1.82.0 + sass-embedded-darwin-x64: 1.82.0 + sass-embedded-linux-arm: 1.82.0 + sass-embedded-linux-arm64: 1.82.0 + sass-embedded-linux-ia32: 1.82.0 + sass-embedded-linux-musl-arm: 1.82.0 + sass-embedded-linux-musl-arm64: 1.82.0 + sass-embedded-linux-musl-ia32: 1.82.0 + sass-embedded-linux-musl-riscv64: 1.82.0 + sass-embedded-linux-musl-x64: 1.82.0 + sass-embedded-linux-riscv64: 1.82.0 + sass-embedded-linux-x64: 1.82.0 + sass-embedded-win32-arm64: 1.82.0 + sass-embedded-win32-ia32: 1.82.0 + sass-embedded-win32-x64: 1.82.0 /sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} @@ -19852,8 +19842,8 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - /type-fest@4.30.2: - resolution: {integrity: sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==} + /type-fest@4.30.0: + resolution: {integrity: sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==} engines: {node: '>=16'} dev: true