chore: Upgrade tailwindcss

This commit is contained in:
ezequielnick 2025-08-04 09:18:58 +08:00
parent f2ed0caced
commit 2e4090460d
22 changed files with 655 additions and 680 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@ out
*.log*
.idea
*.ttf
party.md

View File

@ -54,8 +54,9 @@ pkg:
file: build/background.png
linux:
desktop:
Name: Mihomo Party
MimeType: 'x-scheme-handler/clash;x-scheme-handler/mihomo'
entry:
Name: Mihomo Party
MimeType: 'x-scheme-handler/clash;x-scheme-handler/mihomo'
target:
- deb
- rpm

View File

@ -1,6 +1,7 @@
import { resolve } from 'path'
import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
import react from '@vitejs/plugin-react'
import tailwindcss from '@tailwindcss/vite'
// https://github.com/vdesjs/vite-plugin-monaco-editor/issues/21#issuecomment-1827562674
import monacoEditorPluginModule from 'vite-plugin-monaco-editor'
const isObjectWithDefaultFunction = (
@ -37,6 +38,7 @@ export default defineConfig({
},
plugins: [
react(),
tailwindcss(),
monacoEditorPlugin({
languageWorkers: ['editorWorkerService', 'typescript', 'css'],
customDistPath: (_, out) => `${out}/monacoeditorwork`,

View File

@ -51,6 +51,7 @@
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
"@electron-toolkit/eslint-config-ts": "^3.1.0",
"@electron-toolkit/tsconfig": "^1.0.1",
"@tailwindcss/vite": "^4.1.11",
"@types/adm-zip": "^0.5.7",
"@types/express": "^5.0.3",
"@types/node": "^24.1.0",
@ -59,7 +60,6 @@
"@types/react-dom": "^19.1.7",
"@types/ws": "^8.18.1",
"@vitejs/plugin-react": "^4.7.0",
"autoprefixer": "^10.4.21",
"cron-validator": "^1.4.0",
"driver.js": "^1.3.6",
"electron": "^37.2.5",
@ -87,7 +87,7 @@
"react-router-dom": "^7.7.1",
"react-virtuoso": "^4.13.0",
"swr": "^2.3.4",
"tailwindcss": "^3.4.17",
"tailwindcss": "^4.1.11",
"tar": "^7.4.3",
"tsx": "^4.20.3",
"types-pac": "^1.0.3",

1230
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {}
}
}

View File

@ -373,13 +373,13 @@ const App: React.FC = () => {
setSiderWidthValue(e.clientX)
}
}}
className={`w-full h-[100vh] flex ${resizing ? 'cursor-ew-resize' : ''}`}
className={`w-full h-screen flex ${resizing ? 'cursor-ew-resize' : ''}`}
>
{siderWidthValue === narrowWidth ? (
<div style={{ width: `${narrowWidth}px` }} className="side h-full">
<div className="app-drag flex justify-center items-center z-40 bg-transparent h-[49px]">
{platform !== 'darwin' && (
<MihomoIcon className="h-[32px] leading-[32px] text-lg mx-[1px]" />
<MihomoIcon className="h-[32px] leading-[32px] text-lg mx-px" />
)}
<UpdaterButton iconOnly={true} />
</div>
@ -417,7 +417,7 @@ const App: React.FC = () => {
className={`flex justify-between p-2 ${!useWindowFrame && platform === 'darwin' ? 'ml-[60px]' : ''}`}
>
<div className="flex ml-1">
<MihomoIcon className="h-[32px] leading-[32px] text-lg mx-[1px]" />
<MihomoIcon className="h-[32px] leading-[32px] text-lg mx-px" />
<h3 className="text-lg font-bold leading-[32px]">ihomo Party</h3>
</div>
<UpdaterButton />

View File

@ -59,9 +59,9 @@ const FloatingApp: React.FC = () => {
}, [])
return (
<div className="app-drag h-[100vh] w-[100vw] overflow-hidden">
<div className="floating-bg border-1 border-divider flex rounded-full bg-content1 h-[calc(100%-2px)] w-[calc(100%-2px)]">
<div className="flex justify-center items-center h-[100%] aspect-square">
<div className="app-drag h-screen w-screen overflow-hidden">
<div className="floating-bg border border-divider flex rounded-full bg-content1 h-[calc(100%-2px)] w-[calc(100%-2px)]">
<div className="flex justify-center items-center h-full aspect-square">
<div
onContextMenu={(e) => {
e.preventDefault()

View File

@ -1,6 +1,8 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@import 'tailwindcss';
@plugin './hero.ts';
@source '../**/*.{js,ts,jsx,tsx}';
@source '../../../../node_modules/@heroui/theme/dist/**/*.{js,ts,jsx,tsx}';
.floating-text {
font-family:

View File

@ -0,0 +1,2 @@
import { heroui } from '@heroui/react'
export default heroui()

View File

@ -1,6 +1,12 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@import 'tailwindcss';
@plugin './hero.ts';
@source '../**/*.{js,ts,jsx,tsx}';
@source '../../../../node_modules/@heroui/theme/dist/**/*.{js,ts,jsx,tsx}';
@theme {
--default-font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
@font-face {
font-family: 'Noto Color Emoji';

View File

@ -39,7 +39,7 @@ const ConnectionItem: React.FC<Props> = (props) => {
<Chip
color={`${info.isActive ? 'primary' : 'danger'}`}
size="sm"
radius="sm"
radius="xs"
variant="dot"
>
{info.metadata.type}({info.metadata.network.toUpperCase()})
@ -65,16 +65,16 @@ const ConnectionItem: React.FC<Props> = (props) => {
<Chip
className="flag-emoji text-ellipsis whitespace-nowrap overflow-hidden"
size="sm"
radius="sm"
radius="xs"
variant="bordered"
>
{info.chains[0]}
</Chip>
<Chip size="sm" radius="sm" variant="bordered">
<Chip size="sm" radius="xs" variant="bordered">
{calcTraffic(info.upload)} {calcTraffic(info.download)}
</Chip>
{info.uploadSpeed !== 0 || info.downloadSpeed !== 0 ? (
<Chip color="primary" size="sm" radius="sm" variant="bordered">
<Chip color="primary" size="sm" radius="xs" variant="bordered">
{calcTraffic(info.uploadSpeed || 0)}/s {calcTraffic(info.downloadSpeed || 0)}
/s
</Chip>

View File

@ -60,7 +60,7 @@ const ProxyItem: React.FC<Props> = (props) => {
onPress={() => onSelect(group.name, proxy.name)}
isPressable
fullWidth
shadow="sm"
shadow="xs"
className={`${
fixed
? 'bg-secondary/30 border-r-2 border-r-secondary border-l-2 border-l-secondary'
@ -68,7 +68,7 @@ const ProxyItem: React.FC<Props> = (props) => {
? 'bg-primary/30 border-r-2 border-r-primary border-l-2 border-l-primary'
: 'bg-content2'
}`}
radius="sm"
radius="xs"
>
<CardBody className="p-1">
{proxyDisplayMode === 'full' ? (

View File

@ -273,7 +273,7 @@ const Connections: React.FC = () => {
</div>
<Divider />
</div>
<div className="h-[calc(100vh-100px)] mt-[1px]">
<div className="h-[calc(100vh-100px)] mt-px">
<Virtuoso
data={filteredConnections}
itemContent={(i, connection) => (

View File

@ -264,7 +264,7 @@ const DNS: React.FC = () => {
{[...values.nameserverPolicy, { domain: '', value: '' }].map(
({ domain, value }, index) => (
<div key={index} className="flex mb-2">
<div className="flex-[4]">
<div className="flex-4">
<Input
size="sm"
fullWidth
@ -281,7 +281,7 @@ const DNS: React.FC = () => {
/>
</div>
<span className="mx-2">:</span>
<div className="flex-[6] flex">
<div className="flex-6 flex">
<Input
size="sm"
fullWidth
@ -332,7 +332,7 @@ const DNS: React.FC = () => {
<h3 className="mb-2">{t('dns.customHosts.list')}</h3>
{[...values.hosts, { domain: '', value: '' }].map(({ domain, value }, index) => (
<div key={index} className="flex mb-2">
<div className="flex-[4]">
<div className="flex-4">
<Input
size="sm"
fullWidth
@ -349,7 +349,7 @@ const DNS: React.FC = () => {
/>
</div>
<span className="mx-2">:</span>
<div className="flex-[6] flex">
<div className="flex-6 flex">
<Input
size="sm"
fullWidth

View File

@ -109,7 +109,7 @@ const Logs: React.FC = () => {
</div>
<Divider />
</div>
<div className="h-[calc(100vh-100px)] mt-[1px]">
<div className="h-[calc(100vh-100px)] mt-px">
<Virtuoso
ref={virtuosoRef}
data={filteredLogs}

View File

@ -642,7 +642,7 @@ const Mihomo: React.FC = () => {
const [user, pass] = auth.split(':')
return (
<div key={index} className="flex mb-2">
<div className="flex-[4]">
<div className="flex-4">
<Input
size="sm"
fullWidth
@ -662,7 +662,7 @@ const Mihomo: React.FC = () => {
/>
</div>
<span className="mx-2">:</span>
<div className="flex-[6] flex">
<div className="flex-6 flex">
<Input
size="sm"
fullWidth

View File

@ -85,7 +85,7 @@ const Profiles: React.FC = () => {
<div>
{sub.tag?.map((tag) => {
return (
<Chip key={tag} size="sm" className="ml-1" radius="sm">
<Chip key={tag} size="sm" className="ml-1" radius="xs">
{tag}
</Chip>
)
@ -108,7 +108,7 @@ const Profiles: React.FC = () => {
<div>
{sub.tag?.map((tag) => {
return (
<Chip key={tag} size="sm" className="ml-1" radius="sm">
<Chip key={tag} size="sm" className="ml-1" radius="xs">
{tag}
</Chip>
)

View File

@ -324,7 +324,7 @@ const Proxies: React.FC = () => {
<Avatar
className="bg-transparent mr-2"
size="sm"
radius="sm"
radius="xs"
src={
groups[index].icon.startsWith('<svg')
? `data:image/svg+xml;utf8,${groups[index].icon}`

View File

@ -38,7 +38,7 @@ const Rules: React.FC = () => {
</div>
<Divider />
</div>
<div className="h-[calc(100vh-100px)] mt-[1px]">
<div className="h-[calc(100vh-100px)] mt-px">
<Virtuoso
data={filteredRules}
itemContent={(i, rule) => (

View File

@ -1,14 +0,0 @@
/** @type {import('tailwindcss').Config} */
const { heroui } = require('@heroui/react')
module.exports = {
content: [
'./src/renderer/src/**/*.{js,ts,jsx,tsx}',
'./node_modules/@heroui/theme/dist/**/*.{js,ts,jsx,tsx}'
],
theme: {
extend: {}
},
darkMode: 'class',
plugins: [heroui()]
}

View File

@ -3,6 +3,7 @@
"include": ["electron.vite.config.*", "src/main/**/*", "src/preload/**/*", "src/shared/**/*"],
"compilerOptions": {
"composite": true,
"types": ["electron-vite/node"]
"types": ["electron-vite/node"],
"moduleResolution": "bundler"
}
}