diff --git a/packages/core/package.json b/packages/core/package.json
index 3fd82c8..53be7a3 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -20,7 +20,7 @@
"build": "tsc --build",
"watch": "tsc --watch",
"format": "prettier . --write",
- "lint": "eslint . --fix",
+ "lint": "eslint .",
"test": "vitest"
},
"files": [
diff --git a/packages/launcher/package.json b/packages/launcher/package.json
index e160d30..0133ea4 100644
--- a/packages/launcher/package.json
+++ b/packages/launcher/package.json
@@ -10,7 +10,7 @@
"build": "tsc && vite build",
"preview": "vite preview",
"format": "prettier . --write",
- "lint": "eslint src/**.{ts,tsx} --fix"
+ "lint": "eslint src"
},
"dependencies": {
"@emotion/css": "^11.13.5",
diff --git a/packages/launcher/src/components/DataLoading.tsx b/packages/launcher/src/components/DataLoading.tsx
index d5ba810..6338693 100644
--- a/packages/launcher/src/components/DataLoading.tsx
+++ b/packages/launcher/src/components/DataLoading.tsx
@@ -1,21 +1,20 @@
-import { Box, CircularProgress, Typography, type BoxProps } from '@mui/material';
+import { Box, CircularProgress, styled, Typography, type BoxProps } from '@mui/material';
type DataLoadingProps = BoxProps & {
error?: string;
loadingText?: string;
};
-export const DataLoading = ({ sx, loadingText = '加载数据中', error }: DataLoadingProps) => (
-
+const StyledBox = styled(Box)`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ height: 100%;
+` as typeof Box;
+
+export const DataLoading = ({ loadingText = '加载数据中', error, ...props }: DataLoadingProps) => (
+
{!error ? (
<>
@@ -24,5 +23,5 @@ export const DataLoading = ({ sx, loadingText = '加载数据中', error }: Data
) : (
{error}
)}
-
+
);
diff --git a/packages/launcher/src/components/styled/HexagonalButton.tsx b/packages/launcher/src/components/HexagonalButton.tsx
similarity index 85%
rename from packages/launcher/src/components/styled/HexagonalButton.tsx
rename to packages/launcher/src/components/HexagonalButton.tsx
index 0824d59..f8ec7c9 100644
--- a/packages/launcher/src/components/styled/HexagonalButton.tsx
+++ b/packages/launcher/src/components/HexagonalButton.tsx
@@ -1,4 +1,3 @@
-import { theme } from '@/theme';
import type { ButtonBaseProps } from '@mui/material';
import { alpha, ButtonBase, styled } from '@mui/material';
import { forwardRef, type ForwardedRef, type PropsWithChildren } from 'react';
@@ -34,8 +33,6 @@ const HexagonalButtonRoot = forwardRef(function HexagonalButtonRoot(
);
});
-const { palette, transitions } = theme;
-
const StyledButtonRoot = styled(HexagonalButtonRoot)`
overflow: overlay;
clip-path: polygon(
@@ -46,7 +43,8 @@ const StyledButtonRoot = styled(HexagonalButtonRoot)`
50% 118%,
calc(50% - 25% * 1.732 - 18%) calc(50% + 50% / 2)
);
- transition: ${transitions.create(['all'], { duration: transitions.duration.shortest })};
+ transition: ${({ theme: { transitions } }) =>
+ transitions.create(['all'], { duration: transitions.duration.shortest })};
&:focus {
outline: none;
@@ -67,11 +65,11 @@ const StyledButtonRoot = styled(HexagonalButtonRoot)`
flex-direction: column;
justify-content: center;
align-items: center;
- transition: ${transitions.create(['all'])};
+ transition: ${({ theme: { transitions } }) => transitions.create(['all'])};
}
& .bg {
- stroke: ${palette.primary.main};
+ stroke: ${({ theme: { palette } }) => palette.primary.main};
stroke-width: 3px;
stroke-linecap: round;
fill: transparent;
@@ -79,7 +77,7 @@ const StyledButtonRoot = styled(HexagonalButtonRoot)`
}
&:hover .content {
- filter: drop-shadow(0 0 4px ${alpha(palette.primary.main, 1)});
+ filter: drop-shadow(0 0 4px ${({ theme: { palette } }) => alpha(palette.primary.main, 1)});
}
@keyframes breathe {
@@ -92,7 +90,7 @@ const StyledButtonRoot = styled(HexagonalButtonRoot)`
50% {
opacity: 0.85;
transform: scale(1.02);
- filter: drop-shadow(0 0 4px ${alpha(palette.background.default, 1)});
+ filter: drop-shadow(0 0 4px ${({ theme: { palette } }) => alpha(palette.background.default, 1)});
}
}
`;
diff --git a/packages/launcher/src/components/IconButtonNoRipple.tsx b/packages/launcher/src/components/IconButtonNoRipple.tsx
index d6f9e5b..56ccd3b 100644
--- a/packages/launcher/src/components/IconButtonNoRipple.tsx
+++ b/packages/launcher/src/components/IconButtonNoRipple.tsx
@@ -1,16 +1,15 @@
import { IconButton, styled, type IconButtonProps } from '@mui/material';
-const StyledIconButton = styled(IconButton)`
- color: ${({ theme }) => theme.palette.text.primary};
- transition: ${({ theme }) => theme.transitions.create(['color', 'transform'])};
+export const IconButtonNoRipple = styled(({ ...props }: Omit) => (
+
+))`
+ color: ${({ theme: { palette } }) => palette.text.primary};
+ transition: ${({ theme: { transitions } }) =>
+ transitions.create(['color', 'transform'], { easing: 'cubic-bezier(0, 1, 0.32, 1.28)' })};
&:hover {
- color: ${({ theme }) => theme.palette.primary.main};
+ color: ${({ theme: { palette } }) => palette.primary.main};
}
&:active {
transform: scale(0.9);
}
-`;
-
-export function IconButtonNoRipple({ ...props }: Omit) {
- return ;
-}
+` as typeof IconButton;
diff --git a/packages/launcher/src/components/LabeledProgress.tsx b/packages/launcher/src/components/LabeledProgress.tsx
index ccad9c9..16945e8 100644
--- a/packages/launcher/src/components/LabeledProgress.tsx
+++ b/packages/launcher/src/components/LabeledProgress.tsx
@@ -1,5 +1,5 @@
import type { LinearProgressProps, TypographyProps } from '@mui/material';
-import { LinearProgress, Stack, Typography } from '@mui/material';
+import { LinearProgress, Stack, styled, Typography } from '@mui/material';
type LabeledProgressProps = LinearProgressProps & {
prompt?: string;
@@ -10,6 +10,10 @@ type LabeledProgressProps = LinearProgressProps & {
typographyProps?: TypographyProps;
};
+const FullWidthLinearProgress = styled(LinearProgress)`
+ width: 100%;
+`;
+
export function LabeledLinearProgress({
progress,
total,
@@ -17,7 +21,6 @@ export function LabeledLinearProgress({
overridePrompt,
labelPosition: position,
typographyProps,
- sx,
...rest
}: LabeledProgressProps) {
let display = prompt ?? '';
@@ -29,7 +32,7 @@ export function LabeledLinearProgress({
return (
{overridePrompt ?? display}
-
+
);
} else if (position === 'right') {
@@ -42,12 +45,7 @@ export function LabeledLinearProgress({
}}
spacing={0}
>
-
+
{overridePrompt ?? display}
@@ -67,12 +65,7 @@ export function LabeledLinearProgress({
{overridePrompt ?? display}
-
+
);
}
diff --git a/packages/launcher/src/components/LinerLoading.tsx b/packages/launcher/src/components/LinerLoading.tsx
index d423bf6..c606e5e 100644
--- a/packages/launcher/src/components/LinerLoading.tsx
+++ b/packages/launcher/src/components/LinerLoading.tsx
@@ -1,15 +1,14 @@
-import { Box, LinearProgress, type BoxProps } from '@mui/material';
+import { Box, LinearProgress, styled, type BoxProps } from '@mui/material';
-export const LinerLoading = ({ sx }: BoxProps) => (
-
+const StyledBox = styled(Box)`
+ display: flex;
+ justify-content: center;
+ align-items: stretch;
+ flex-direction: column;
+` as typeof Box;
+
+export const LinerLoading = ({ ...props }: BoxProps) => (
+
-
+
);
diff --git a/packages/launcher/src/components/Paper.tsx b/packages/launcher/src/components/Paper.tsx
new file mode 100644
index 0000000..d1ab857
--- /dev/null
+++ b/packages/launcher/src/components/Paper.tsx
@@ -0,0 +1,6 @@
+import { alpha, Paper as MuiPaper, styled } from '@mui/material';
+
+export const Paper = styled(MuiPaper)`
+ background-color: ${({ theme: { palette } }) => alpha(palette.primary.main, 0.08)};
+ backdrop-filter: unset;
+` as typeof MuiPaper;
diff --git a/packages/launcher/src/components/PopupMenuButton.tsx b/packages/launcher/src/components/PopupMenuButton.tsx
index 8b8e2b1..1702593 100644
--- a/packages/launcher/src/components/PopupMenuButton.tsx
+++ b/packages/launcher/src/components/PopupMenuButton.tsx
@@ -84,7 +84,7 @@ export function PopupMenuButton({
{children}
{data && data.length > 0 && (
-