@fuxishi/vitepress-theme 1.0.14 → 2.0.0-alpha.10
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/README.md +10 -9
- package/README_EN.md +140 -0
- package/dist/chunk/{FxCodeBlockFold-C7zqZ39g.js → FxCodeBlockFold-DGFv2bTG.js} +17 -17
- package/dist/chunk/{FxMusicBall-CTP51ydo.js → FxMusicBall-B2TF7Q7J.js} +1 -1
- package/dist/chunk/{icons-DtAsNqxj.js → icons-BLv72Cfw.js} +1 -1
- package/dist/config.d.ts +9 -4
- package/dist/config.js +126 -19
- package/dist/index.d.ts +14 -3
- package/dist/index.js +118 -53
- package/dist/style.css +1 -1
- package/package.json +24 -22
- /package/dist/chunk/{FxConfetti-DFRD5KKS.js → FxConfetti-C8bEZxL7.js} +0 -0
- /package/dist/chunk/{FxHeroImageBg-DyiZOKOD.js → FxHeroImageBg-BWDDLukW.js} +0 -0
- /package/dist/chunk/{FxHomeFeatureBefore-Cd9m9wit.js → FxHomeFeatureBefore-BHzR4SeT.js} +0 -0
package/README.md
CHANGED
|
@@ -10,16 +10,14 @@
|
|
|
10
10
|
- 🎊 **点击彩纸** — 全局点击彩纸特效,支持金色星星、彩色纸片和自定义 Emoji
|
|
11
11
|
- 🎨 **Hero 图片取色** — 自动提取首页 hero 图片颜色,动态应用到背景光晕、标题渐变、代码块光束和音乐球
|
|
12
12
|
- ✨ **Feature 光效** — 首页 Feature 卡片鼠标追踪光晕效果
|
|
13
|
-
- ✨ **光束边框** —
|
|
13
|
+
- ✨ **光束边框** — 暗色模式下代码块、代码组和导航 hover 时展示紫青品牌色光束旋转边框
|
|
14
14
|
- 🔄 **主题切换动画** — View Transition API 实现亮暗模式圆形扩散动画
|
|
15
15
|
- 📜 **平滑滚动** — 右侧大纲导航点击时平滑滚动,指示条丝滑过渡
|
|
16
16
|
- 🎨 **标题装饰** — h1-h4 各有不同颜色的下划线装饰
|
|
17
17
|
- 📦 **代码块折叠** — 超过指定行数的代码块自动折叠,底部毛玻璃模糊遮罩,可配置折叠行数阈值
|
|
18
18
|
- ⚙️ **类型安全** — 完整的 TypeScript 类型定义,IDE 友好
|
|
19
19
|
|
|
20
|
-
> **注意:** `
|
|
21
|
-
>
|
|
22
|
-
> ⚠️ `1.0.10` 版本的代码块折叠展开功能存在问题,已废弃,请升级到 `1.0.11` 及以上版本。
|
|
20
|
+
> **注意:** 本版本(v2.x)基于 VitePress `2.0` 开发,不向下兼容 VitePress 1.x。
|
|
23
21
|
|
|
24
22
|
## 安装
|
|
25
23
|
|
|
@@ -51,11 +49,14 @@ export default FxTheme
|
|
|
51
49
|
创建 `.vitepress/config.mts`:
|
|
52
50
|
|
|
53
51
|
```ts
|
|
54
|
-
import {
|
|
52
|
+
import { defineConfig } from "vitepress"
|
|
53
|
+
import type { DefaultTheme } from "vitepress"
|
|
55
54
|
import fxConfig from "@fuxishi/vitepress-theme/config"
|
|
56
|
-
import type {
|
|
55
|
+
import type { FxThemeCustomConfig } from "@fuxishi/vitepress-theme"
|
|
57
56
|
|
|
58
|
-
|
|
57
|
+
type ThemeConfig = DefaultTheme.Config & FxThemeCustomConfig
|
|
58
|
+
|
|
59
|
+
export default defineConfig<ThemeConfig>({
|
|
59
60
|
extends: fxConfig,
|
|
60
61
|
lang: "zh-CN",
|
|
61
62
|
title: "我的文档站",
|
|
@@ -97,9 +98,9 @@ npx vitepress dev
|
|
|
97
98
|
|
|
98
99
|
## 配置
|
|
99
100
|
|
|
100
|
-
###
|
|
101
|
+
### FxThemeCustomConfig
|
|
101
102
|
|
|
102
|
-
|
|
103
|
+
通过 `DefaultTheme.Config & FxThemeCustomConfig` 交叉类型扩展 VitePress 默认主题配置,新增以下字段:
|
|
103
104
|
|
|
104
105
|
| 配置项 | 类型 | 默认值 | 说明 |
|
|
105
106
|
| --------------------- | --------------------------- | -------- | ------------------------------------------------------ |
|
package/README_EN.md
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# @fuxishi/vitepress-theme
|
|
2
|
+
|
|
3
|
+
A beautiful VitePress theme extension with frosted glass effects, purple-blue gradients, rich animations, and ready to use.
|
|
4
|
+
|
|
5
|
+
[中文](./README.md)
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- 🎵 **Floating Music Ball** — Frosted glass floating player with single/playlist mode, purple-blue gradient progress ring and four playback animations
|
|
10
|
+
- 🎊 **Click Confetti** — Global click confetti effect with gold stars, colored paper pieces, and custom Emoji
|
|
11
|
+
- 🎨 **Hero Image Color** — Auto-extract colors from hero image for background glow, title gradient, code block beams, and music ball
|
|
12
|
+
- ✨ **Feature Glow** — Mouse-tracking glow effect on homepage Feature cards
|
|
13
|
+
- ✨ **Beam Border** — Purple-cyan brand color beam border on code blocks, code groups, and navigation in dark mode on hover
|
|
14
|
+
- 🔄 **Theme Switch Animation** — Circular spread animation for light/dark mode switching using View Transition API
|
|
15
|
+
- 📜 **Smooth Scroll** — Smooth scrolling when clicking outline navigation with silky marker transition
|
|
16
|
+
- 🎨 **Heading Decorations** — Different colored underlines for h1-h4 headings
|
|
17
|
+
- 📦 **Code Block Fold** — Auto-fold code blocks exceeding a line threshold with frosted glass blur overlay, configurable fold line count
|
|
18
|
+
- ⚙️ **Type-safe** — Complete TypeScript type definitions, IDE friendly
|
|
19
|
+
|
|
20
|
+
> **Note:** This version (v2.x) is built on VitePress `2.0` and is not backward compatible with VitePress 1.x.
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install @fuxishi/vitepress-theme
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Install peerDependencies:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm install vitepress
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
### 1. Register Theme
|
|
37
|
+
|
|
38
|
+
Create `.vitepress/theme/index.ts`:
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import FxTheme from "@fuxishi/vitepress-theme"
|
|
42
|
+
import "@fuxishi/vitepress-theme/style.css"
|
|
43
|
+
|
|
44
|
+
export default FxTheme
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 2. Extend Configuration
|
|
48
|
+
|
|
49
|
+
Create `.vitepress/config.mts`:
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
import { defineConfig } from "vitepress"
|
|
53
|
+
import type { DefaultTheme } from "vitepress"
|
|
54
|
+
import fxConfig from "@fuxishi/vitepress-theme/config"
|
|
55
|
+
import type { FxThemeCustomConfig } from "@fuxishi/vitepress-theme"
|
|
56
|
+
|
|
57
|
+
type ThemeConfig = DefaultTheme.Config & FxThemeCustomConfig
|
|
58
|
+
|
|
59
|
+
export default defineConfig<ThemeConfig>({
|
|
60
|
+
extends: fxConfig,
|
|
61
|
+
lang: "en",
|
|
62
|
+
title: "My Docs",
|
|
63
|
+
themeConfig: {
|
|
64
|
+
nav: [{ text: "Guide", link: "/guide/" }],
|
|
65
|
+
sidebar: {
|
|
66
|
+
"/guide/": [{ text: "Getting Started", link: "/guide/" }],
|
|
67
|
+
},
|
|
68
|
+
// Enable music ball
|
|
69
|
+
musicBall: {
|
|
70
|
+
enable: true,
|
|
71
|
+
autoplay: false,
|
|
72
|
+
loop: true,
|
|
73
|
+
src: "/music/my-song.mp3",
|
|
74
|
+
},
|
|
75
|
+
// Enable confetti
|
|
76
|
+
confetti: true,
|
|
77
|
+
// Colored paper pieces
|
|
78
|
+
// confetti: { shape: "colored-paper" },
|
|
79
|
+
// Custom Emoji
|
|
80
|
+
// confetti: { shapes: ["🌸", "🎀"] },
|
|
81
|
+
// Enable hero image color extraction
|
|
82
|
+
heroImageColor: true,
|
|
83
|
+
// Enable smooth scroll
|
|
84
|
+
smoothScroll: true,
|
|
85
|
+
// Code block fold (enabled by default, 10 lines threshold)
|
|
86
|
+
codeBlockFold: true,
|
|
87
|
+
// Custom fold line threshold
|
|
88
|
+
// codeBlockFold: { lines: 20 },
|
|
89
|
+
},
|
|
90
|
+
})
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 3. Start Dev Server
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
npx vitepress dev
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Configuration
|
|
100
|
+
|
|
101
|
+
### FxThemeCustomConfig
|
|
102
|
+
|
|
103
|
+
Extends VitePress `DefaultTheme.Config` via intersection type `DefaultTheme.Config & FxThemeCustomConfig`, adding the following fields:
|
|
104
|
+
|
|
105
|
+
| Option | Type | Default | Description |
|
|
106
|
+
| --------------------- | --------------------------- | -------- | ----------------------------------------------------------------- |
|
|
107
|
+
| `musicBall.enable` | `boolean` | `true` | Enable music ball |
|
|
108
|
+
| `musicBall.visible` | `boolean` | `true` | Visibility |
|
|
109
|
+
| `musicBall.autoplay` | `boolean` | `false` | Autoplay |
|
|
110
|
+
| `musicBall.loop` | `boolean` | `true` | Loop playback (single mode) |
|
|
111
|
+
| `musicBall.src` | `string` | `''` | Single music URL |
|
|
112
|
+
| `musicBall.list` | `MusicItem[]` | — | Multi-song playlist |
|
|
113
|
+
| `confetti` | `boolean \| object` | `true` | Enable confetti |
|
|
114
|
+
| `confetti.shape` | `'star' \| 'colored-paper'` | `'star'` | Preset shape |
|
|
115
|
+
| `confetti.shapes` | `string \| string[]` | — | Custom Emoji shapes |
|
|
116
|
+
| `confetti.secondary` | `boolean` | `true` | Whether to add secondary particles |
|
|
117
|
+
| `heroImageColor` | `boolean` | `false` | Auto-extract hero image colors (affects glow, title, beams, ball) |
|
|
118
|
+
| `smoothScroll` | `boolean` | `false` | Enable smooth scrolling and outline marker transition |
|
|
119
|
+
| `codeBlockFold` | `boolean \| object` | `true` | Enable code block folding |
|
|
120
|
+
| `codeBlockFold.lines` | `number` | `10` | Line count threshold for folding |
|
|
121
|
+
|
|
122
|
+
## Exports
|
|
123
|
+
|
|
124
|
+
| Export Path | Description |
|
|
125
|
+
| ------------------------------------ | ---------------------------- |
|
|
126
|
+
| `@fuxishi/vitepress-theme` | Theme (Layout + Styles) |
|
|
127
|
+
| `@fuxishi/vitepress-theme/config` | VitePress base config preset |
|
|
128
|
+
| `@fuxishi/vitepress-theme/style.css` | Standalone style file |
|
|
129
|
+
|
|
130
|
+
## Documentation
|
|
131
|
+
|
|
132
|
+
Full documentation:
|
|
133
|
+
|
|
134
|
+
[https://fuxishi-vitepress-theme.fuxizjxzy.cn](https://fuxishi-vitepress-theme.fuxizjxzy.cn)
|
|
135
|
+
|
|
136
|
+
## License
|
|
137
|
+
|
|
138
|
+
[MIT](./LICENSE)
|
|
139
|
+
|
|
140
|
+
> Will be open-sourced on GitHub in the future.
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { t as e } from "./icons-
|
|
1
|
+
import { t as e } from "./icons-BLv72Cfw.js";
|
|
2
2
|
import { defineComponent as t, nextTick as n, onBeforeUnmount as r, onMounted as i, watch as a } from "vue";
|
|
3
3
|
import { useRoute as o } from "vitepress";
|
|
4
4
|
//#region .vitepress/components/FxCodeBlockFold.ts
|
|
5
|
-
var s = "fx-code-folded", c = "fx-code-fold-overlay", l = t({
|
|
5
|
+
var s = "fx-code-folded", c = "fx-code-fold-overlay", l = "div[class*='language-']", u = t({
|
|
6
6
|
props: { lines: {
|
|
7
7
|
type: Number,
|
|
8
8
|
default: 10
|
|
9
9
|
} },
|
|
10
10
|
setup(t) {
|
|
11
|
-
function
|
|
11
|
+
function u() {
|
|
12
12
|
let n = t.lines ?? 10;
|
|
13
|
-
document.querySelectorAll(
|
|
13
|
+
document.querySelectorAll(l).forEach((t) => {
|
|
14
14
|
if (t.classList.contains(c) || t.classList.contains("vp-code-group")) return;
|
|
15
|
-
let r = t.querySelector("pre.
|
|
15
|
+
let r = t.querySelector("pre.shiki code");
|
|
16
16
|
if (!r) return;
|
|
17
17
|
if (r.querySelectorAll(".line").length <= n) {
|
|
18
18
|
t.classList.add("fx-code-no-fold");
|
|
@@ -29,29 +29,29 @@ var s = "fx-code-folded", c = "fx-code-fold-overlay", l = t({
|
|
|
29
29
|
}), t.appendChild(i);
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
-
let
|
|
33
|
-
function
|
|
34
|
-
|
|
32
|
+
let d = null;
|
|
33
|
+
function f() {
|
|
34
|
+
d?.disconnect();
|
|
35
35
|
let e = document.querySelector(".vp-doc");
|
|
36
|
-
e && (
|
|
37
|
-
requestAnimationFrame(
|
|
38
|
-
}),
|
|
36
|
+
e && (d = new MutationObserver(() => {
|
|
37
|
+
requestAnimationFrame(u);
|
|
38
|
+
}), d.observe(e, {
|
|
39
39
|
childList: !0,
|
|
40
40
|
subtree: !0
|
|
41
41
|
}));
|
|
42
42
|
}
|
|
43
43
|
i(() => {
|
|
44
|
-
|
|
44
|
+
u(), f();
|
|
45
45
|
});
|
|
46
|
-
let
|
|
47
|
-
return a(() =>
|
|
46
|
+
let p = o();
|
|
47
|
+
return a(() => p.path, () => {
|
|
48
48
|
n(() => {
|
|
49
|
-
|
|
49
|
+
u(), f();
|
|
50
50
|
});
|
|
51
51
|
}), r(() => {
|
|
52
|
-
|
|
52
|
+
d?.disconnect();
|
|
53
53
|
}), () => null;
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
//#endregion
|
|
57
|
-
export {
|
|
57
|
+
export { u as default };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as e } from "./icons-
|
|
1
|
+
import { t as e } from "./icons-BLv72Cfw.js";
|
|
2
2
|
import { Fragment as t, computed as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createVNode as o, defineComponent as s, nextTick as ee, normalizeClass as c, onBeforeUnmount as l, onMounted as u, openBlock as d, ref as f, renderList as p, toDisplayString as m, unref as h, vShow as g, watchEffect as _, withDirectives as v } from "vue";
|
|
3
3
|
import { useData as y, withBase as b } from "vitepress";
|
|
4
4
|
import { ElSlider as x } from "element-plus";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#endregion
|
|
2
2
|
//#region .vitepress/utils/icons.ts
|
|
3
|
-
var e = /*
|
|
3
|
+
var e = /* #__PURE__ */ Object.assign({
|
|
4
4
|
"../assets/svg/fold.svg": "<svg t=\"1777001773348\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"15732\" width=\"200\" height=\"200\"><path d=\"M736 480c-12.5-12.5-32.8-12.5-45.3 0L523.3 647.4c-6.2 6.2-16.4 6.2-22.6 0L333.3 480c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L466.7 704c25 25 65.5 25 90.5 0L736 525.3c12.5-12.5 12.5-32.8 0-45.3z\" p-id=\"15733\"></path></svg>",
|
|
5
5
|
"../assets/svg/music-ball/music_list.svg": "<svg t=\"1777001773348\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"15732\" width=\"200\" height=\"200\"><path d=\"M128 128h384v85.333333H128zM128 298.666667h384v85.333333H128zM128 469.333333h209.066667v85.333334H128zM725.333333 170.666667v418.133333c-34.133333-21.333333-81.066667-34.133333-128-34.133333-119.466667 0-213.333333 76.8-213.333333 170.666666s93.866667 170.666667 213.333333 170.666667 213.333333-76.8 213.333334-170.666667V256h128V170.666667h-213.333334z\" ></path></svg>",
|
|
6
6
|
"../assets/svg/music-ball/pause.svg": "<svg t=\"1777001773348\" class=\"icon\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"15732\" width=\"200\" height=\"200\"><path d=\"M426.666667 288v448a32.426667 32.426667 0 0 1-32 32h-64a32.426667 32.426667 0 0 1-32-32V288A32.426667 32.426667 0 0 1 330.666667 256h64a32.426667 32.426667 0 0 1 32 32zM693.333333 256h-64a32.426667 32.426667 0 0 0-32 32v448a32.426667 32.426667 0 0 0 32 32h64a32.426667 32.426667 0 0 0 32-32V288a32.426667 32.426667 0 0 0-32-32z\" ></path></svg>",
|
package/dist/config.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { UserConfig, DefaultTheme } from 'vitepress'
|
|
2
|
-
|
|
3
1
|
export type MusicItem = {
|
|
4
2
|
name: string
|
|
5
3
|
src: string
|
|
@@ -13,7 +11,8 @@ export type ConfettiConfig = {
|
|
|
13
11
|
secondary?: boolean
|
|
14
12
|
}
|
|
15
13
|
|
|
16
|
-
|
|
14
|
+
/** 自定义主题属性,消费方通过 & 组合到 DefaultTheme.Config */
|
|
15
|
+
export interface FxThemeCustomConfig {
|
|
17
16
|
musicBall?: {
|
|
18
17
|
enable?: boolean
|
|
19
18
|
visible?: boolean
|
|
@@ -34,5 +33,11 @@ export interface FxThemeConfig extends DefaultTheme.Config {
|
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
// fxConfig 不引用 vitepress 内部类型,避免跨模块类型冲突
|
|
37
|
+
// 运行时实际值包含完整配置(在 .vitepress/config/index.ts 源码中维护)
|
|
38
|
+
declare const fxConfig: {
|
|
39
|
+
markdown?: { lineNumbers?: boolean }
|
|
40
|
+
transformPageData?: (pageData: any) => any
|
|
41
|
+
vite?: { ssr?: { noExternal?: string[] } }
|
|
42
|
+
}
|
|
38
43
|
export default fxConfig
|
package/dist/config.js
CHANGED
|
@@ -1,5 +1,104 @@
|
|
|
1
|
+
import e from "node:crypto";
|
|
2
|
+
import { existsSync as t, readdirSync as n } from "node:fs";
|
|
3
|
+
import { dirname as r, extname as i, join as a, resolve as o } from "node:path";
|
|
4
|
+
//#region .vitepress/config/plugins/demo-preview.ts
|
|
5
|
+
var s = "virtual:fx-demo/", c = /* @__PURE__ */ new Map();
|
|
6
|
+
function l(t, n = 10) {
|
|
7
|
+
return e.createHash("sha256").update(t).digest("hex").slice(0, n);
|
|
8
|
+
}
|
|
9
|
+
function u(e) {
|
|
10
|
+
return i(e).slice(1) || "vue";
|
|
11
|
+
}
|
|
12
|
+
function d(e) {
|
|
13
|
+
return e.split("\\").join("/");
|
|
14
|
+
}
|
|
15
|
+
function f(e) {
|
|
16
|
+
let t = e.split("\n"), n = t.filter((e) => e.trim()).map((e) => (e.match(/^\s*/) || [""])[0].length), r = n.length ? Math.min(...n) : 0;
|
|
17
|
+
return t.map((e) => e.slice(r)).join("\n");
|
|
18
|
+
}
|
|
19
|
+
function p(e) {
|
|
20
|
+
e.core.ruler.after("inline", "fx-demo-preview", (e) => {
|
|
21
|
+
let i = e.env, p = process.cwd(), m = (t) => {
|
|
22
|
+
let n = e.tokens.findIndex((e) => e.type === "html_block" && /^<script setup>/.test(e.content.trim()));
|
|
23
|
+
if (n === -1) {
|
|
24
|
+
let n = new e.Token("html_block", "", 0);
|
|
25
|
+
n.content = `<script setup>\n${t}\n<\/script>\n`, e.tokens.splice(0, 0, n);
|
|
26
|
+
} else e.tokens[n].content.includes(t) || (e.tokens[n].content = e.tokens[n].content.replace("<\/script>", `${t}\n<\/script>`));
|
|
27
|
+
}, h = (t, n, r, i) => {
|
|
28
|
+
let a = [], o = new e.Token("html_inline", "", 0);
|
|
29
|
+
o.content = `<template #${t}>`, a.push(o);
|
|
30
|
+
let s = new e.Token("fence", "code", 0);
|
|
31
|
+
s.info = n, s.content = r, i && (s.src = i), a.push(s);
|
|
32
|
+
let c = new e.Token("html_inline", "", 0);
|
|
33
|
+
return c.content = "</template>", a.push(c), a;
|
|
34
|
+
}, g = () => {
|
|
35
|
+
let t = new e.Token("html_inline", "", 0);
|
|
36
|
+
return t.content = "</DemoPreview>", t;
|
|
37
|
+
}, _ = (t, n, r, i) => {
|
|
38
|
+
e.tokens[t].content = `<DemoPreview files="${encodeURIComponent(JSON.stringify(n))}"><${r}/>`, e.tokens.splice(t + 1, 0, ...i, g());
|
|
39
|
+
};
|
|
40
|
+
e.src = e.src.replace(/<DemoPreview\b[^>]*\bdir="([^"]*)"[^>]*?\/?>/g, (t, r) => {
|
|
41
|
+
let i = d(a(p, r)), o = [];
|
|
42
|
+
try {
|
|
43
|
+
o = n(i) || [];
|
|
44
|
+
} catch {
|
|
45
|
+
o = [];
|
|
46
|
+
}
|
|
47
|
+
if (!o.length) return "";
|
|
48
|
+
o.sort((e, t) => e === "index.vue" ? -1 : t === "index.vue" ? 1 : e.localeCompare(t));
|
|
49
|
+
let s = `Fx_${l(i)}`;
|
|
50
|
+
m(`import ${s} from '${i}/index.vue'`);
|
|
51
|
+
let c = e.tokens.findIndex((e) => e.content.includes(t));
|
|
52
|
+
if (c === -1) return "";
|
|
53
|
+
let f = o.flatMap((e) => {
|
|
54
|
+
let t = d(a(i, e));
|
|
55
|
+
return h(e, u(e), `<<< ${t}`, [t]);
|
|
56
|
+
});
|
|
57
|
+
return _(c, o, s, f), "";
|
|
58
|
+
}), e.src = e.src.replace(/<DemoPreview\b[^>]*\bsrc="([^"]*)"[^>]*?\/?>/g, (n, a) => {
|
|
59
|
+
let s = d(o(i.path ? r(i.path) : p, a));
|
|
60
|
+
if (!t(s)) return "";
|
|
61
|
+
let c = a.split("/").pop() || "demo.vue", f = `Fx_${l(s)}`;
|
|
62
|
+
m(`import ${f} from '${s}'`);
|
|
63
|
+
let g = e.tokens.findIndex((e) => e.content.includes(n));
|
|
64
|
+
return g === -1 || _(g, [c], f, h(c, u(c), `<<< ${s}`, [s])), "";
|
|
65
|
+
});
|
|
66
|
+
for (let t = 0; t < e.tokens.length; t++) {
|
|
67
|
+
let n = e.tokens[t];
|
|
68
|
+
if (n.type !== "html_block") continue;
|
|
69
|
+
let r = n.content.match(/^<DemoPreview>([\s\S]*?)<\/DemoPreview>\s*$/);
|
|
70
|
+
if (!r) continue;
|
|
71
|
+
let i = f(r[1]).trim();
|
|
72
|
+
if (!i) continue;
|
|
73
|
+
let a = i.match(/<script setup>([\s\S]*?)<\/script>/), o = a ? a[1].trim() : "", u = `<template>\n${i.replace(/<script setup>[\s\S]*?<\/script>/, "").trim()}\n</template>` + (o ? `\n<script setup>\n${o}\n<\/script>` : ""), d = l(u);
|
|
74
|
+
c.set(d, u);
|
|
75
|
+
let p = `Fx_${d}`;
|
|
76
|
+
m(`import ${p} from '${s}${d}.vue'`);
|
|
77
|
+
let _ = "demo.vue";
|
|
78
|
+
n.content = `<DemoPreview files="${encodeURIComponent(JSON.stringify([_]))}"><${p}/>`;
|
|
79
|
+
let v = [...h(_, "vue", i), g()], y = e.tokens.indexOf(n);
|
|
80
|
+
e.tokens.splice(y + 1, 0, ...v), t = y + v.length;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function m() {
|
|
85
|
+
return {
|
|
86
|
+
name: "fx-demo-virtual",
|
|
87
|
+
enforce: "pre",
|
|
88
|
+
resolveId(e) {
|
|
89
|
+
if (e.startsWith(s)) return e;
|
|
90
|
+
},
|
|
91
|
+
load(e) {
|
|
92
|
+
if (e.startsWith(s)) {
|
|
93
|
+
let t = e.slice(16).replace(/\.vue$/, "");
|
|
94
|
+
return c.get(t) || "";
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
//#endregion
|
|
1
100
|
//#region .vitepress/config/index.ts
|
|
2
|
-
var
|
|
101
|
+
var h = null, g = {
|
|
3
102
|
themeConfig: {
|
|
4
103
|
outline: [2, 3],
|
|
5
104
|
musicBall: {
|
|
@@ -11,27 +110,35 @@ var e = null, t = {
|
|
|
11
110
|
},
|
|
12
111
|
confetti: !0
|
|
13
112
|
},
|
|
14
|
-
markdown: {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
113
|
+
markdown: {
|
|
114
|
+
lineNumbers: !0,
|
|
115
|
+
preConfig(e) {
|
|
116
|
+
e.use(p);
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
transformPageData(e) {
|
|
120
|
+
let t = e.frontmatter;
|
|
121
|
+
if (t.layout === "home" && t.hero?.image) {
|
|
122
|
+
let e = t.hero.image;
|
|
123
|
+
h = typeof e == "string" ? {
|
|
124
|
+
light: e,
|
|
125
|
+
dark: e
|
|
22
126
|
} : {
|
|
23
|
-
light:
|
|
24
|
-
dark:
|
|
127
|
+
light: e.light,
|
|
128
|
+
dark: e.dark
|
|
25
129
|
};
|
|
26
130
|
}
|
|
27
|
-
|
|
131
|
+
h && (h.light || h.dark) && (e.frontmatter.fxHeroImages = { ...h });
|
|
28
132
|
},
|
|
29
|
-
vite: {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
133
|
+
vite: {
|
|
134
|
+
plugins: [m()],
|
|
135
|
+
ssr: { noExternal: [
|
|
136
|
+
"element-plus",
|
|
137
|
+
"canvas-confetti",
|
|
138
|
+
"node-vibrant",
|
|
139
|
+
"@fuxishi/vitepress-theme"
|
|
140
|
+
] }
|
|
141
|
+
}
|
|
35
142
|
};
|
|
36
143
|
//#endregion
|
|
37
|
-
export {
|
|
144
|
+
export { g as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
export type {
|
|
2
|
+
FxThemeCustomConfig,
|
|
3
|
+
MusicItem,
|
|
4
|
+
ConfettiShape,
|
|
5
|
+
ConfettiConfig,
|
|
6
|
+
} from "./config";
|
|
7
|
+
export { default as configPreset } from "./config";
|
|
2
8
|
|
|
3
|
-
declare const theme:
|
|
4
|
-
|
|
9
|
+
declare const theme: {
|
|
10
|
+
extends?: any;
|
|
11
|
+
Layout?: any;
|
|
12
|
+
enhanceApp?: (ctx: any) => any;
|
|
13
|
+
setup?: () => void;
|
|
14
|
+
};
|
|
15
|
+
export default theme;
|
package/dist/index.js
CHANGED
|
@@ -1,58 +1,123 @@
|
|
|
1
1
|
import e from "vitepress/theme";
|
|
2
|
-
import {
|
|
3
|
-
import { defineClientComponent as
|
|
4
|
-
import { ElTooltip as
|
|
5
|
-
//#
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
import { Fragment as t, computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createSlots as s, createVNode as c, defineComponent as l, h as u, nextTick as d, normalizeClass as f, onMounted as p, onUnmounted as m, openBlock as h, provide as g, ref as _, renderList as v, renderSlot as y, resolveComponent as b, resolveDynamicComponent as x, toDisplayString as S, useSlots as C, vShow as w, withCtx as T, withDirectives as E } from "vue";
|
|
3
|
+
import { defineClientComponent as D, useData as O } from "vitepress";
|
|
4
|
+
import { ElTooltip as k } from "element-plus";
|
|
5
|
+
//#region .vitepress/components/FxLayout.ts
|
|
6
|
+
var A = l({ setup(t, { slots: n }) {
|
|
7
|
+
let r = n, { Layout: i } = e, { site: a, isDark: o } = O(), s = a.value.themeConfig;
|
|
8
|
+
g("toggle-appearance", async ({ clientX: e, clientY: t }) => {
|
|
9
|
+
if (!("startViewTransition" in document)) {
|
|
10
|
+
o.value = !o.value;
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
let n = [`circle(0px at ${e}px ${t}px)`, `circle(${Math.hypot(Math.max(e, innerWidth - e), Math.max(t, innerHeight - t))}px at ${e}px ${t}px)`];
|
|
14
|
+
await document.startViewTransition(async () => {
|
|
15
|
+
o.value = !o.value, await d();
|
|
16
|
+
}).ready, document.documentElement.animate({ clipPath: o.value ? [...n].reverse() : n }, {
|
|
17
|
+
duration: 400,
|
|
18
|
+
easing: "ease-in-out",
|
|
19
|
+
fill: "forwards",
|
|
20
|
+
pseudoElement: `::view-transition-${o.value ? "old" : "new"}(root)`
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
let c = s.musicBall?.enable && (s.musicBall?.src || s.musicBall?.list?.length > 0), l = _(), f = _(""), h = _(!1), v, y = s.codeBlockFold !== !1, b = typeof s.codeBlockFold == "object" ? s.codeBlockFold.lines : void 0;
|
|
24
|
+
p(() => {
|
|
25
|
+
s.smoothScroll && document.documentElement.classList.add("fx-smooth-scroll"), y && document.documentElement.classList.add("fx-code-fold-enabled");
|
|
26
|
+
let e = () => {
|
|
27
|
+
let e = document.querySelector(".VPNavBarTitle .title span");
|
|
28
|
+
e && (l.value = e, f.value = e.textContent || "", h.value = e.scrollWidth > e.clientWidth);
|
|
29
|
+
}, t = document.querySelector(".VPNavBarTitle .title");
|
|
30
|
+
t && (v = new ResizeObserver(e), v.observe(t)), e();
|
|
31
|
+
}), m(() => v?.disconnect());
|
|
32
|
+
let x = D(() => import("./chunk/FxMusicBall-B2TF7Q7J.js"), [{ style: { display: s.musicBall && s.musicBall.visible ? "" : "none" } }]), S = D(() => import("./chunk/FxHomeFeatureBefore-BHzR4SeT.js")), C = D(() => import("./chunk/FxConfetti-C8bEZxL7.js"), [{ confetti: s.confetti }]), w = D(() => import("./chunk/FxHeroImageBg-BWDDLukW.js"), [{ heroImageColor: s.heroImageColor }]), T = D(() => import("./chunk/FxCodeBlockFold-DGFv2bTG.js"), [{ lines: b }]);
|
|
33
|
+
return () => [
|
|
34
|
+
y && u("style", `:root{--fx-code-fold-lines:${b || 10}}`),
|
|
35
|
+
s.heroImageColor && u("style", ":root{--vp-home-hero-image-background-image:none;--vp-home-hero-name-color:transparent;--vp-home-hero-name-background:none}"),
|
|
36
|
+
u(i, null, {
|
|
37
|
+
...n,
|
|
38
|
+
"home-features-before": () => [u(S), r["home-features-before"]?.()]
|
|
39
|
+
}),
|
|
40
|
+
c && u(x),
|
|
41
|
+
s.confetti && u(C),
|
|
42
|
+
s.heroImageColor && u(w),
|
|
43
|
+
y && u(T),
|
|
44
|
+
l.value && u(k, {
|
|
45
|
+
content: f.value,
|
|
46
|
+
virtualTriggering: !0,
|
|
47
|
+
virtualRef: l.value,
|
|
48
|
+
disabled: !h.value,
|
|
49
|
+
placement: "bottom"
|
|
50
|
+
})
|
|
51
|
+
];
|
|
52
|
+
} }), j = { class: "fx-preview-group" }, M = { class: "fx-preview-group__toolbar" }, N = { class: "fx-preview-group__tabs" }, P = ["onClick"], F = ["title"], I = { class: "fx-preview-group__content" }, L = /* @__PURE__ */ l({
|
|
53
|
+
__name: "PreviewGroup",
|
|
54
|
+
props: { files: { default: () => [] } },
|
|
55
|
+
setup(e) {
|
|
56
|
+
let i = e, s = C(), c = _(!1), l = _(i.files[0] || ""), u = n(() => i.files.map((e) => ({
|
|
57
|
+
label: e,
|
|
58
|
+
render: s[e]
|
|
59
|
+
}))), d = (e) => {
|
|
60
|
+
l.value = e, c.value = !0;
|
|
61
|
+
};
|
|
62
|
+
return (e, n) => (h(), a("div", j, [o("div", M, [o("div", N, [(h(!0), a(t, null, v(u.value, (e) => (h(), a("button", {
|
|
63
|
+
key: e.label,
|
|
64
|
+
type: "button",
|
|
65
|
+
class: f(["fx-preview-group__tab", { "is-active": l.value === e.label }]),
|
|
66
|
+
onClick: (t) => d(e.label)
|
|
67
|
+
}, S(e.label), 11, P))), 128))]), o("button", {
|
|
68
|
+
type: "button",
|
|
69
|
+
class: f(["fx-preview-group__toggle", { "is-expanded": c.value }]),
|
|
70
|
+
title: c.value ? "收起源码" : "查看源码",
|
|
71
|
+
onClick: n[0] ||= (e) => c.value = !c.value
|
|
72
|
+
}, [...n[1] ||= [o("svg", {
|
|
73
|
+
viewBox: "0 0 24 24",
|
|
74
|
+
width: "16",
|
|
75
|
+
height: "16",
|
|
76
|
+
"aria-hidden": "true"
|
|
77
|
+
}, [o("path", {
|
|
78
|
+
fill: "none",
|
|
79
|
+
stroke: "currentColor",
|
|
80
|
+
"stroke-width": "2",
|
|
81
|
+
"stroke-linecap": "round",
|
|
82
|
+
"stroke-linejoin": "round",
|
|
83
|
+
d: "m6 9 6 6 6-6"
|
|
84
|
+
})], -1)]], 10, F)]), E(o("div", I, [(h(!0), a(t, null, v(u.value, (e) => E((h(), a("div", {
|
|
85
|
+
key: e.label,
|
|
86
|
+
class: "fx-preview-group__panel"
|
|
87
|
+
}, [(h(), r(x(e.render)))])), [[w, l.value === e.label]])), 128))], 512), [[w, c.value]])]));
|
|
88
|
+
}
|
|
89
|
+
}), R = { class: "fx-demo-preview" }, z = { class: "fx-demo-preview__runner not-prose" }, B = /* @__PURE__ */ l({
|
|
90
|
+
__name: "DemoPreview",
|
|
91
|
+
props: { files: { default: "" } },
|
|
92
|
+
setup(e) {
|
|
93
|
+
let t = e, l = n(() => {
|
|
94
|
+
try {
|
|
95
|
+
return JSON.parse(decodeURIComponent(t.files || ""));
|
|
96
|
+
} catch {
|
|
97
|
+
return [];
|
|
15
98
|
}
|
|
16
|
-
let n = [`circle(0px at ${e}px ${t}px)`, `circle(${Math.hypot(Math.max(e, innerWidth - e), Math.max(t, innerHeight - t))}px at ${e}px ${t}px)`];
|
|
17
|
-
await document.startViewTransition(async () => {
|
|
18
|
-
h.value = !h.value, await r();
|
|
19
|
-
}).ready, document.documentElement.animate({ clipPath: h.value ? [...n].reverse() : n }, {
|
|
20
|
-
duration: 400,
|
|
21
|
-
easing: "ease-in-out",
|
|
22
|
-
fill: "forwards",
|
|
23
|
-
pseudoElement: `::view-transition-${h.value ? "old" : "new"}(root)`
|
|
24
|
-
});
|
|
25
99
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
},
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
v.value && n(u, {
|
|
48
|
-
content: y.value,
|
|
49
|
-
virtualTriggering: !0,
|
|
50
|
-
virtualRef: v.value,
|
|
51
|
-
disabled: !b.value,
|
|
52
|
-
placement: "bottom"
|
|
53
|
-
})
|
|
54
|
-
];
|
|
55
|
-
} })
|
|
100
|
+
return (e, t) => {
|
|
101
|
+
let n = b("ClientOnly");
|
|
102
|
+
return h(), a("div", R, [o("div", z, [c(n, null, {
|
|
103
|
+
fallback: T(() => [...t[0] ||= [o("div", { class: "fx-demo-preview__loading" }, "加载预览中…", -1)]]),
|
|
104
|
+
default: T(() => [y(e.$slots, "default")]),
|
|
105
|
+
_: 3
|
|
106
|
+
})]), l.value.length ? (h(), r(L, {
|
|
107
|
+
key: 0,
|
|
108
|
+
files: l.value
|
|
109
|
+
}, s({ _: 2 }, [v(l.value, (t) => ({
|
|
110
|
+
name: t,
|
|
111
|
+
fn: T(() => [y(e.$slots, t)])
|
|
112
|
+
}))]), 1032, ["files"])) : i("", !0)]);
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}), V = {
|
|
116
|
+
extends: e,
|
|
117
|
+
Layout: A,
|
|
118
|
+
enhanceApp({ app: e }) {
|
|
119
|
+
e.component("DemoPreview", B);
|
|
120
|
+
}
|
|
56
121
|
};
|
|
57
122
|
//#endregion
|
|
58
|
-
export {
|
|
123
|
+
export { V as default };
|
package/dist/style.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:root{--fx-beam-c1:189, 52, 254;--fx-beam-c2:65, 209, 255;--decoration-color-blue:#45abff;--decoration-color-yellow:#a29bdb;--decoration-color-green:#8eb78b;--decoration-color-red:#f3bad6;--decoration-color-blue-dark:hsl(from var(--decoration-color-blue) h s calc(l * .5));--decoration-color-yellow-dark:hsl(from var(--decoration-color-yellow) h s calc(l * .5));--decoration-color-green-dark:hsl(from var(--decoration-color-green) h s calc(l * .5));--decoration-color-red-dark:hsl(from var(--decoration-color-red) h s calc(l * .5));--decoration-thick:.6em;--decoration-style:solid;--decoration-line:underline;--decoration-skip-ink:none;--underline-offset:-.4em;--vp-home-hero-name-color:transparent;--vp-home-hero-name-background:linear-gradient(120deg, #bd34fe, #41d1ff);--vp-home-hero-image-background-image:-webkit-linear-gradient(-45deg, #bd34fe 50%, #47caff 50%);--vp-home-hero-image-filter:blur(45px);--vp-layout-max-width:1450px;--vp-code-line-height:2.2em;--fx-code-fold-lines:99999}::selection{color:#fff;background-color:#fe7300}.dark ::selection{color:#efefef;background-color:#692f00}@property --beam-angle{syntax:"<angle>";inherits:true;initial-value:0deg}@keyframes beam-spin{to{--beam-angle:360deg}}@keyframes beam-hue-shift{0%{filter:hue-rotate(-20deg)brightness(1.2)saturate(1.1)}50%{filter:hue-rotate(20deg)brightness(1.2)saturate(1.1)}to{filter:hue-rotate(-20deg)brightness(1.2)saturate(1.1)}}@keyframes beam-hue-shift-bloom{0%{filter:blur(4px)hue-rotate(-20deg)brightness(1.2)saturate(1.1)}50%{filter:blur(4px)hue-rotate(20deg)brightness(1.2)saturate(1.1)}to{filter:blur(4px)hue-rotate(-20deg)brightness(1.2)saturate(1.1)}}@property --blur{syntax:"<length>";inherits:false;initial-value:30px}@keyframes filter_blur{0%{--blur:30px}to{--blur:80px}}.VPDoc.has-aside .content-container{max-width:100%!important}.VPDoc.has-aside>.container>.content{padding-left:5px;padding-right:5px}.VPImage{border-radius:50%}.VPDocOutlineItem a{font-size:12px!important}.aside-container{width:350px!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#80808059;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#8080808c}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4{text-decoration-thickness:var(--decoration-thick);-webkit-text-decoration-style:var(--decoration-style);text-decoration-style:var(--decoration-style);-webkit-text-decoration-line:var(--decoration-line);text-decoration-line:var(--decoration-line);text-decoration-skip-ink:var(--decoration-skip-ink);text-underline-offset:var(--underline-offset)}.vp-doc h1{-webkit-text-decoration-color:var(--decoration-color-blue);text-decoration-color:var(--decoration-color-blue)}.vp-doc h2{-webkit-text-decoration-color:var(--decoration-color-yellow);text-decoration-color:var(--decoration-color-yellow)}.vp-doc h3{-webkit-text-decoration-color:var(--decoration-color-green);text-decoration-color:var(--decoration-color-green)}.vp-doc h4{-webkit-text-decoration-color:var(--decoration-color-red);text-decoration-color:var(--decoration-color-red)}.vp-doc img{border:1px dashed #efefef;border-radius:5px;margin-top:10px}.vp-doc .vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme){border-top:6px solid #d4eaf7}.vp-doc .vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme) .vp-code:not(.dark .vp-code){padding-bottom:18px}.vp-doc .vp-code-group.vp-adaptive-theme:not(.dark .vp-code-group.vp-adaptive-theme){border-top:none!important}.vp-doc .vp-code-group.vp-adaptive-theme:after{display:none}.vp-doc .vp-code-group .tabs{border-top:6px solid #d4eaf7}.dark .VPHome .image-bg{filter:blur(var(--blur));animation:1.8s ease-in infinite alternate-reverse filter_blur}.dark .vp-doc h1{-webkit-text-decoration-color:var(--decoration-color-blue-dark);text-decoration-color:var(--decoration-color-blue-dark)}.dark .vp-doc h2{-webkit-text-decoration-color:var(--decoration-color-yellow-dark);text-decoration-color:var(--decoration-color-yellow-dark)}.dark .vp-doc h3{-webkit-text-decoration-color:var(--decoration-color-green-dark);text-decoration-color:var(--decoration-color-green-dark)}.dark .vp-doc h4{-webkit-text-decoration-color:var(--decoration-color-red-dark);text-decoration-color:var(--decoration-color-red-dark)}.dark .vp-doc img{border-color:#2b2b2b}.dark .vp-doc .vp-code-group .tabs{border-top:2px solid #0000!important}.dark .vp-doc .vp-adaptive-theme{border:2px solid #0000;border-radius:8px;position:relative}.dark .vp-doc .vp-adaptive-theme.active{margin-bottom:0}.dark .vp-doc .vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme){--beam-radius:8px;--beam-z-before:4;--beam-z-after:5;--beam-mask-inset:28px;border-top:2px solid #0000}.dark .VPDocFooter .pager-link{border-color:#0000;position:relative}.dark .VPDocFooter .pager-link:not(:hover){border-color:var(--vp-c-divider,#313d44)}.dark .VPDocFooter .pager-link{--beam-radius:8px;--beam-z-before:1;--beam-z-after:2;--beam-mask-inset:20px}.dark .vp-doc .vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme):before,.dark .VPDocFooter .pager-link:before{content:"";border-radius:var(--beam-radius);clip-path:inset(0 round var(--beam-radius));pointer-events:none;z-index:var(--beam-z-before);opacity:0;box-shadow:inset 0 0 9px 1px rgba(var(--fx-beam-c1),.3), inset 0 0 12px rgba(var(--fx-beam-c2),.15);background:radial-gradient(ellipse 63px 36px at 33% -7.4%, rgba(var(--fx-beam-c1),.45), transparent), radial-gradient(ellipse 54px 31px at 12% -5%, rgba(var(--fx-beam-c1),.45), transparent), radial-gradient(ellipse 36px 63px at 2.1% 68.3%, rgba(var(--fx-beam-c2),.45), transparent), radial-gradient(ellipse 18px 31px at 2.1% 68.3%, rgba(var(--fx-beam-c2),.45), transparent), radial-gradient(ellipse 162px 28px at 74.4% 100%, rgba(var(--fx-beam-c1),.45), transparent), radial-gradient(ellipse 76px 23px at 55% 100%, rgba(var(--fx-beam-c2),.45), transparent), radial-gradient(ellipse 66px 28px at 93.9% 0%, rgba(var(--fx-beam-c1),.45), transparent), radial-gradient(ellipse 23px 37px at 100% 27.1%, rgba(var(--fx-beam-c1),.45), transparent), radial-gradient(ellipse 46px 43px at 100% 27.1%, rgba(var(--fx-beam-c2),.45), transparent);-webkit-mask-image:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white), linear-gradient(to right, white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white);-webkit-mask-image:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white), linear-gradient(to right, white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white);mask-image:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white), linear-gradient(to right, white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white);-webkit-mask-composite:source-in, source-over;transition:opacity .5s;animation:3s linear infinite beam-spin,12s ease-in-out infinite beam-hue-shift;position:absolute;inset:0;-webkit-mask-composite:source-in,source-over;mask-composite:intersect,add}.dark .vp-doc .vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme):after,.dark .VPDocFooter .pager-link:after{content:"";border-radius:var(--beam-radius);pointer-events:none;z-index:var(--beam-z-after);opacity:0;background:conic-gradient(from var(--beam-angle), transparent 0%, transparent 64%, rgba(var(--fx-beam-c1),.15) 66.5%, rgba(var(--fx-beam-c1),.35) 68%, rgba(var(--fx-beam-c1),.5) 69%, rgba(var(--fx-beam-c2),.65) 70%, rgba(var(--fx-beam-c2),.65) 70.5%, rgba(var(--fx-beam-c2),.45) 71.5%, rgba(var(--fx-beam-c1),.25) 73%, rgba(var(--fx-beam-c1),.1) 75%, transparent 77%, transparent 100%), radial-gradient(ellipse 70px 40px at 33% -7.4%, rgb(var(--fx-beam-c1)), transparent), radial-gradient(ellipse 60px 35px at 12% -5%, rgb(var(--fx-beam-c1)), transparent), radial-gradient(ellipse 40px 70px at 2.1% 68.3%, rgb(var(--fx-beam-c2)), transparent), radial-gradient(ellipse 20px 35px at 2.1% 68.3%, rgb(var(--fx-beam-c2)), transparent), radial-gradient(ellipse 180px 32px at 74.4% 100%, rgb(var(--fx-beam-c1)), transparent), radial-gradient(ellipse 85px 26px at 55% 100%, rgb(var(--fx-beam-c2)), transparent), radial-gradient(ellipse 74px 32px at 93.9% 0%, rgb(var(--fx-beam-c1)), transparent), radial-gradient(ellipse 26px 42px at 100% 27.1%, rgb(var(--fx-beam-c1)), transparent), radial-gradient(ellipse 52px 48px at 100% 27.1%, rgb(var(--fx-beam-c2)), transparent);-webkit-mask:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:source-in, xor;filter:blur(4px)brightness(1.2)saturate(1.1);padding:1px;transition:opacity .5s;animation:3s linear infinite beam-spin,12s ease-in-out infinite beam-hue-shift-bloom;position:absolute;inset:0;-webkit-mask-composite:source-in,xor;mask-composite:intersect,exclude}.dark .vp-doc .vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme):hover:before,.dark .VPDocFooter .pager-link:hover:before{opacity:.7}.dark .vp-doc .vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme):hover:after,.dark .VPDocFooter .pager-link:hover:after{opacity:.6}.dark .VPHomeFeatures .VPFeature{border-radius:12px;position:relative;overflow:hidden}.dark .VPHomeFeatures .VPFeature:before{content:"";background:radial-gradient(var(--color), transparent, transparent);left:var(--x);top:var(--y);opacity:0;width:700px;height:700px;transition:opacity 1s;display:block;position:absolute;transform:translate(-50%,-50%)}.dark .VPHomeFeatures .VPFeature:hover:before{opacity:1;transition:opacity .3s}.dark .VPHomeFeatures .VPFeature:after{content:"";z-index:0;background-color:#222c;border-radius:10px;display:block;position:absolute;inset:2px}.dark .VPHomeFeatures .VPFeature>.box{z-index:1;position:relative}html.fx-smooth-scroll{scroll-behavior:smooth}html.fx-smooth-scroll .VPDocAsideOutline .outline-marker{transition:top .35s cubic-bezier(.22,1,.36,1),opacity .35s}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}.dark::view-transition-new(root){z-index:1}::view-transition-new(root){z-index:9999}.dark::view-transition-old(root){z-index:9999}.VPNavBarTitle{overflow:hidden}.VPNavBarTitle .title{min-width:0}.VPNavBarTitle .title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.VPNavBarTitle .title img{flex-shrink:0}.vp-doc .vp-adaptive-theme{position:relative}.vp-doc .vp-adaptive-theme>.vp-code{max-height:calc(var(--vp-code-line-height,2.2em) * var(--fx-code-fold-lines,10) + 18px);overflow:hidden}.vp-doc .vp-adaptive-theme>.line-numbers-wrapper{max-height:calc(var(--vp-code-line-height,2.2em) * var(--fx-code-fold-lines,10));overflow:hidden}.fx-code-fold-enabled .vp-doc .fx-code-no-fold>.vp-code,.fx-code-fold-enabled .vp-doc .fx-code-no-fold>.line-numbers-wrapper,.fx-code-fold-enabled .vp-doc .fx-code-foldable:not(.fx-code-folded)>.vp-code,.fx-code-fold-enabled .vp-doc .fx-code-foldable:not(.fx-code-folded)>.line-numbers-wrapper{max-height:none;overflow:visible}.fx-code-fold-overlay{pointer-events:none;z-index:3;justify-content:center;align-items:center;font-size:13px;font-weight:500;transition:-webkit-backdrop-filter .3s,backdrop-filter .3s,height .3s;display:flex;position:absolute;bottom:0;left:0;right:0}.fx-code-fold-label{color:var(--vp-c-text-1);pointer-events:auto;cursor:pointer;align-items:center;gap:4px;display:inline-flex}.fx-code-fold-label svg{fill:currentColor;flex-shrink:0}.fx-code-fold-overlay:hover .fx-code-fold-label{color:var(--vp-c-brand-1)}.fx-code-folded>.fx-code-fold-overlay{-webkit-backdrop-filter:blur(8px);background:linear-gradient(to bottom, transparent, var(--vp-c-bg-soft));align-items:flex-end;height:80px;padding-bottom:10px}.fx-code-fold-overlay.fx-code-fold-expanded{height:auto;padding:8px 0}.fx-code-foldable:not(.fx-code-folded){padding-bottom:36px}:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64, 158, 255;--el-color-success-rgb:103, 194, 58;--el-color-warning-rgb:230, 162, 60;--el-color-danger-rgb:245, 108, 108;--el-color-error-rgb:245, 108, 108;--el-color-info-rgb:144, 147, 153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px #0000000a, 0px 8px 20px #00000014;--el-box-shadow-light:0px 0px 12px #0000001f;--el-box-shadow-lighter:0px 0px 6px #0000001f;--el-box-shadow-dark:0px 16px 48px 16px #00000014, 0px 12px 32px #0000001f, 0px 8px 16px -8px #00000029;--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:#000c;--el-overlay-color-light:#000000b3;--el-overlay-color-lighter:#00000080;--el-mask-color:#ffffffe6;--el-mask-color-extra-light:#ffffff4d;--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:top;transform:scaleY(1)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:bottom;transform:scaleY(1)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:0 0;transform:scale(1)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out, var(--el-transition-duration) padding-top ease-in-out, var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out, var(--el-transition-duration) padding-top ease-in-out, var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out, var(--el-transition-duration) padding-left ease-in-out, var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;fill:currentColor;width:1em;height:1em;color:var(--color);line-height:1em;font-size:inherit;justify-content:center;align-items:center;display:inline-flex;position:relative}.el-icon.is-loading{animation:2s linear infinite rotating}.el-icon svg{width:1em;height:1em}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);--el-popper-bg-color-light:var(--el-bg-color-overlay);--el-popper-bg-color-dark:var(--el-text-color-primary);border-radius:var(--el-popper-border-radius);z-index:2000;overflow-wrap:break-word;word-break:normal;visibility:visible;min-width:10px;padding:5px 11px;font-size:12px;line-height:20px;position:absolute}.el-popper.is-dark{--el-fill-color-blank:var(--el-popper-bg-color-dark);color:var(--el-bg-color);background:var(--el-popper-bg-color-dark);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-popper-bg-color-dark);right:0}.el-popper.is-light{--el-fill-color-blank:var(--el-popper-bg-color-light);background:var(--el-popper-bg-color-light);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-popper-bg-color-light);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{z-index:-1;width:10px;height:10px;position:absolute}.el-popper__arrow:before{z-index:-1;content:" ";background:var(--el-text-color-primary);box-sizing:border-box;width:10px;height:10px;position:absolute;transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-top-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-right-color:#0000!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-top-color:#0000!important;border-right-color:#0000!important}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;vertical-align:bottom;width:100%;font-size:var(--el-font-size-base);display:inline-block;position:relative}.el-textarea__inner{resize:vertical;box-sizing:border-box;width:100%;line-height:1.5;font-size:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);background-image:none;border:none;padding:5px 11px;font-family:inherit;display:block;position:relative}.el-textarea__inner.is-clearable{padding:5px 26px 5px 11px}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea__clear{color:var(--el-input-icon-color);cursor:pointer;font-size:14px;position:absolute;top:15px;right:11px;transform:translateY(-50%)}.el-textarea__clear:hover{color:var(--el-input-clear-hover-color)}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);font-size:12px;line-height:14px;position:absolute;bottom:5px;right:10px}.el-textarea .el-input__count.is-outside{top:100%;right:0;bottom:unset;background:0 0;padding-top:2px;line-height:1;position:absolute}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);font-size:var(--el-font-size-base);width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle;display:inline-flex;position:relative}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;color:var(--el-color-info);align-items:center;font-size:12px;display:inline-flex}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;padding-left:8px;display:inline-block}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;top:100%;right:0}.el-input .el-input__count.is-outside .el-input__count-inner{background:0 0;padding-left:0;line-height:1}.el-input__wrapper{background-color:var(--el-input-bg-color,var(--el-fill-color-blank));border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;background-image:none;flex-grow:1;justify-content:center;align-items:center;padding:1px 11px;display:inline-flex;transform:translate(0)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height,32px) - 2px)}.el-input__inner{-webkit-appearance:none;width:100%;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);box-sizing:border-box;background:0 0;border:none;outline:none;flex-grow:1;padding:0}.el-input__inner:focus{outline:none}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__prefix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__suffix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;transition:all var(--el-transition-duration);justify-content:center;align-items:center;margin-left:8px;display:flex}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);cursor:not-allowed;box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height,40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height,24px) - 2px)}.el-input-group{align-items:stretch;width:100%;display:inline-flex}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);border-radius:var(--el-input-border-radius);white-space:nowrap;justify-content:center;align-items:center;min-height:100%;padding:0 20px;display:inline-flex;position:relative}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-select,.el-input-group__append .el-button,.el-input-group__prepend .el-select,.el-input-group__prepend .el-button{flex:1;margin:0 -20px;display:inline-block}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{color:inherit;background-color:#0000;border-color:#0000}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{box-shadow:1px 0 0 0 var(--el-input-border-color) inset, 0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append{box-shadow:0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset, -1px 0 0 0 var(--el-input-border-color) inset;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{box-shadow:1px 0 0 0 var(--el-input-border-color) inset, 0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{box-shadow:0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset, -1px 0 0 0 var(--el-input-border-color) inset;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-hidden{display:none!important}.el-input-number{vertical-align:middle;width:150px;line-height:30px;display:inline-flex;position:relative}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__increase,.el-input-number__decrease{z-index:1;background:var(--el-fill-color-light);width:32px;height:auto;color:var(--el-text-color-regular);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;top:1px;bottom:1px}.el-input-number__increase:hover,.el-input-number__decrease:hover{color:var(--el-color-primary)}.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__increase.is-disabled,.el-input-number__decrease.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border);right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__increase,.el-input-number.is-disabled .el-input-number__decrease{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__increase:hover,.el-input-number.is-disabled .el-input-number__decrease:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__increase,.el-input-number--large .el-input-number__decrease{width:40px;font-size:14px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__increase,.el-input-number--small .el-input-number__decrease{width:24px;font-size:12px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__increase [class*=el-icon],.el-input-number--small .el-input-number__decrease [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__increase,.el-input-number.is-controls-right .el-input-number__decrease{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon],.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border);bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;top:auto;left:auto;right:1px}.el-input-number.is-controls-right[class*=large] [class*=increase],.el-input-number.is-controls-right[class*=large] [class*=decrease]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=increase],.el-input-number.is-controls-right[class*=small] [class*=decrease]{--el-input-number-controls-height:11px}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;width:100%;height:32px;display:flex}.el-slider__runway{height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;position:relative}.el-slider__runway.show-input{width:auto;margin-right:30px}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed;transform:scale(1)}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);z-index:1;top:var(--el-slider-button-wrapper-offset);text-align:center;-webkit-user-select:none;user-select:none;background-color:#0000;outline:none;line-height:normal;position:absolute;transform:translate(-50%)}.el-slider__button-wrapper:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-slider__button-wrapper:hover,.el-slider__button-wrapper.hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;border-radius:50%;display:inline-block}.el-slider__button:hover,.el-slider__button.hover,.el-slider__button.dragging{transform:scale(1.2)}.el-slider__button:hover,.el-slider__button.hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);position:absolute;transform:translate(-50%)}.el-slider__marks{width:18px;height:100%;top:0;left:12px}.el-slider__marks-text{color:var(--el-color-info);white-space:pre;margin-top:15px;font-size:14px;position:absolute;transform:translate(-50%)}.el-slider.is-vertical{flex:0;width:auto;height:100%;display:inline-flex;position:relative}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);border-radius:0 0 3px 3px;height:auto}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.fx-music-ball{--fx-music-accent-start:rgb(var(--fx-beam-c1));--fx-music-accent-end:rgb(var(--fx-beam-c2));--fx-music-bg:#ffffff73;--fx-music-bg-blur:12px;--fx-music-border:#ffffff4d;--fx-music-shadow:0 4px 16px #0000001a;--fx-music-text:#000000a6;--fx-music-text-muted:#0006;--fx-music-slider-track:#00000014;--fx-music-slider-thumb:rgb(var(--fx-beam-c2));--music-list-sep-color:#0000000f;--music-list-bgcolor:#ffffff80;--music-list-bdcolor:#ffffff4d}.dark .fx-music-ball{--fx-music-bg:#1e1e328c;--fx-music-bg-blur:16px;--fx-music-border:#ffffff14;--fx-music-shadow:0 4px 20px #0000004d, 0 0 12px rgba(var(--fx-beam-c1), .15);--fx-music-text:#ffffffb3;--fx-music-text-muted:#fff6;--fx-music-slider-track:#ffffff1a;--music-list-sep-color:#ffffff0d;--music-list-bgcolor:#1e1e3299;--music-list-bdcolor:#ffffff0f}.fx-music-ball{background:var(--fx-music-bg);-webkit-backdrop-filter:blur(var(--fx-music-bg-blur));border:1px solid var(--fx-music-border);box-shadow:var(--fx-music-shadow);cursor:pointer;z-index:99;box-sizing:border-box;border-radius:28px;justify-content:space-between;align-items:center;width:50px;height:50px;padding:0 20px 0 5px;transition:width .35s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;bottom:15px;left:15px;overflow:hidden}.fx-music-ball.active{overflow:inherit}.fx-music-ball:hover{width:330px;transition:width .4s cubic-bezier(.34,1.56,.64,1) .5s}.fx-music-ball .fx-progress-ring{cursor:pointer;position:absolute;top:-1px;left:-1px;transform:rotate(-90deg)}.fx-music-ball .fx-progress-track{stroke:var(--fx-music-slider-track)}.fx-music-ball .fx-progress-bar{stroke:url(#fx-progress-gradient);transition:stroke-dasharray .1s}.fx-music-ball .fx-orbit-ring{border:1.5px solid #0000;border-top-color:rgba(var(--fx-beam-c1), .4);border-right-color:rgba(var(--fx-beam-c2), .2);pointer-events:none;border-radius:50%;animation:3s linear infinite orbit-spin;position:absolute;inset:-4px}.dark .fx-music-ball .fx-orbit-ring{border-top-color:rgba(var(--fx-beam-c1), .6);border-right-color:rgba(var(--fx-beam-c2), .3);filter:drop-shadow(0 0 4px rgba(var(--fx-beam-c1), .3))}@keyframes orbit-spin{to{transform:rotate(360deg)}}.fx-music-ball .fx-music-ball__inner{justify-content:space-between;align-items:center;width:330px;display:flex}.fx-music-ball .fx-play-pause span,.fx-music-ball .fx-music-list-button span,.fx-music-ball .fx-icon-volume{justify-content:center;align-items:center;display:flex}.fx-music-ball .fx-play-pause span svg,.fx-music-ball .fx-music-list-button span svg,.fx-music-ball .fx-icon-volume svg{fill:var(--fx-music-text)}.fx-music-ball .fx-play-pause{border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .3s;display:flex}.fx-music-ball .fx-play-pause:hover{background-color:rgba(var(--fx-beam-c1), .1)}.dark .fx-music-ball .fx-play-pause:hover{background-color:rgba(var(--fx-beam-c1), .15)}.fx-music-ball .fx-time{color:var(--fx-music-text-muted);white-space:nowrap;width:78px;padding:0 10px;font-size:12px}.fx-music-ball .fx-duration{flex:1;padding:0 10px 0 3px}.fx-music-ball .fx-music-list-button{justify-content:center;align-items:center;width:30px;margin-left:8px;display:flex}.fx-music-ball .el-slider{--el-slider-height:4px;--el-slider-main-bg-color:var(--fx-music-accent-end);--el-color-white:var(--fx-music-slider-thumb)}.fx-music-ball .el-slider .el-slider__runway{background-color:var(--fx-music-slider-track)}.fx-music-ball .el-slider .el-slider__bar{background:linear-gradient(90deg, var(--fx-music-accent-start), var(--fx-music-accent-end))}.fx-music-ball .el-slider .el-slider__button{--el-slider-button-size:12px;border-color:var(--fx-music-slider-thumb);box-shadow:0 0 6px rgba(var(--fx-beam-c2), .3);position:relative;top:-1px}.fx-music-ball .fx-volume{align-items:center;width:30px;transition:width .3s .3s;display:flex}.fx-music-ball .fx-volume .el-slider{opacity:0;transition:opacity .3s .3s}.fx-music-ball .fx-volume:hover{width:120px;transition:width .3s .3s}.fx-music-ball .fx-volume:hover .el-slider{opacity:1;transition:opacity .3s}.fx-music-ball .fx-icon-volume{cursor:pointer;margin-left:5px}.fx-music-ball.is-playing .fx-progress-bar{animation:2s ease-in-out infinite progress-pulse}@keyframes progress-pulse{0%,to{filter:drop-shadow(0 0 2px rgba(var(--fx-beam-c1), .3))}50%{filter:drop-shadow(0 0 6px rgba(var(--fx-beam-c2), .6))}}.fx-music-ball.is-playing:before{content:"";border-radius:inherit;background:linear-gradient(135deg, rgba(var(--fx-beam-c1), .08) 0%, transparent 40%, rgba(var(--fx-beam-c2), .08) 60%, transparent 100%);pointer-events:none;background-size:200% 200%;animation:4s ease-in-out infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:200% 0}50%{background-position:0 200%}to{background-position:200% 0}}.dark .fx-music-ball.is-playing{box-shadow:0 4px 20px #0000004d, 0 0 12px rgba(var(--fx-beam-c1), .15), 0 0 24px rgba(var(--fx-beam-c2), .08)}.fx-music-ball .fx-music-list{box-sizing:border-box;z-index:-9;background:var(--music-list-bgcolor);-webkit-backdrop-filter:blur(20px);border:1px solid var(--music-list-bdcolor);width:100%;box-shadow:var(--fx-music-shadow);opacity:0;pointer-events:none;border-radius:24px;padding:15px 5px 50px;transition:opacity .3s,transform .3s;position:absolute;bottom:0;left:0;transform:translateY(10px)}.fx-music-ball.active .fx-music-list{opacity:1;pointer-events:auto;transform:translateY(0)}.fx-music-ball .fx-music-list .fx-music-list-sep{border-bottom:1px solid var(--music-list-sep-color);margin:5px 0}.fx-music-ball .fx-music-list .fx-music-list-item{text-wrap:nowrap;text-overflow:ellipsis;color:var(--fx-music-text-muted);padding-left:20px;padding-right:20px;font-size:12px;line-height:24px;transition:color .2s;position:relative;overflow:hidden}.fx-music-ball .fx-music-list .fx-music-list-item:hover{color:var(--fx-music-accent-end)}.fx-music-ball .fx-music-list .fx-music-list-item .image-live{width:12px;height:12px;position:absolute;bottom:6px;left:3px}.fx-music-ball .fx-music-list .fx-music-list-item .image-live svg{width:100%;height:100%}.fx-music-ball .fx-music-list .fx-music-list-item .image-live .bar{fill:currentColor;transform-box:fill-box;transform-origin:bottom}.fx-music-ball .fx-music-list .fx-music-list-item .image-live.playing .bar-1{animation:.8s ease-in-out infinite fx-eq-bar}.fx-music-ball .fx-music-list .fx-music-list-item .image-live.playing .bar-2{animation:.8s ease-in-out .2s infinite fx-eq-bar}.fx-music-ball .fx-music-list .fx-music-list-item .image-live.playing .bar-3{animation:.8s ease-in-out .4s infinite fx-eq-bar}.fx-music-ball .fx-music-list .fx-music-list-item .image-live.playing .bar-4{animation:.8s ease-in-out .1s infinite fx-eq-bar}@keyframes fx-eq-bar{0%,to{transform:scaleY(1)}50%{transform:scaleY(.3)}}.fx-music-ball .fx-music-list .fx-music-list-item.active{color:var(--fx-music-accent-start)}.fx-music-ball .fx-music-list .fx-music-list-item.active:hover{color:var(--fx-music-accent-end)}@media (prefers-reduced-motion:reduce){.fx-music-ball *,.fx-music-ball :before,.fx-music-ball :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
|
|
1
|
+
:root{--fx-beam-c1:189, 52, 254;--fx-beam-c2:65, 209, 255;--decoration-color-blue:#45abff;--decoration-color-yellow:#a29bdb;--decoration-color-green:#8eb78b;--decoration-color-red:#f3bad6;--decoration-color-blue-dark:hsl(from var(--decoration-color-blue) h s calc(l * .5));--decoration-color-yellow-dark:hsl(from var(--decoration-color-yellow) h s calc(l * .5));--decoration-color-green-dark:hsl(from var(--decoration-color-green) h s calc(l * .5));--decoration-color-red-dark:hsl(from var(--decoration-color-red) h s calc(l * .5));--decoration-thick:.6em;--decoration-style:solid;--decoration-line:underline;--decoration-skip-ink:none;--underline-offset:-.4em;--vp-home-hero-name-color:transparent;--vp-home-hero-name-background:linear-gradient(120deg, #bd34fe, #41d1ff);--vp-home-hero-image-background-image:-webkit-linear-gradient(-45deg, #bd34fe 50%, #47caff 50%);--vp-home-hero-image-filter:blur(45px);--vp-layout-max-width:1450px;--vp-code-line-height:2.2em;--fx-code-fold-lines:99999}::selection{color:#fff;background-color:#fe7300}.dark ::selection{color:#efefef;background-color:#692f00}@property --beam-angle{syntax:"<angle>";inherits:true;initial-value:0deg}@keyframes beam-spin{to{--beam-angle:360deg}}@keyframes beam-hue-shift{0%{filter:hue-rotate(-20deg)brightness(1.2)saturate(1.1)}50%{filter:hue-rotate(20deg)brightness(1.2)saturate(1.1)}to{filter:hue-rotate(-20deg)brightness(1.2)saturate(1.1)}}@keyframes beam-hue-shift-bloom{0%{filter:blur(4px)hue-rotate(-20deg)brightness(1.2)saturate(1.1)}50%{filter:blur(4px)hue-rotate(20deg)brightness(1.2)saturate(1.1)}to{filter:blur(4px)hue-rotate(-20deg)brightness(1.2)saturate(1.1)}}@property --blur{syntax:"<length>";inherits:false;initial-value:30px}@keyframes filter_blur{0%{--blur:30px}to{--blur:80px}}.VPDoc.has-aside .content-container{max-width:100%!important}.VPDoc.has-aside>.container>.content{padding-left:5px;padding-right:5px}.VPImage{border-radius:50%}.VPDocOutlineItem a{font-size:12px!important}.aside-container{width:350px!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#80808059;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#8080808c}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4{text-decoration-thickness:var(--decoration-thick);-webkit-text-decoration-style:var(--decoration-style);text-decoration-style:var(--decoration-style);-webkit-text-decoration-line:var(--decoration-line);text-decoration-line:var(--decoration-line);text-decoration-skip-ink:var(--decoration-skip-ink);text-underline-offset:var(--underline-offset)}.vp-doc h1{-webkit-text-decoration-color:var(--decoration-color-blue);text-decoration-color:var(--decoration-color-blue)}.vp-doc h2{-webkit-text-decoration-color:var(--decoration-color-yellow);text-decoration-color:var(--decoration-color-yellow)}.vp-doc h3{-webkit-text-decoration-color:var(--decoration-color-green);text-decoration-color:var(--decoration-color-green)}.vp-doc h4{-webkit-text-decoration-color:var(--decoration-color-red);text-decoration-color:var(--decoration-color-red)}.vp-doc img{border:1px dashed #efefef;border-radius:5px;margin-top:10px}.vp-doc div[class*=language-]:not(.vp-code-group div[class*=language-]){border-top:6px solid #d4eaf7}.vp-doc div[class*=language-]:not(.vp-code-group div[class*=language-]) pre.shiki:not(.dark pre.shiki){padding-bottom:18px}.vp-doc .vp-code-group:not(.dark .vp-code-group){border-top:none!important}.vp-doc .vp-code-group .tabs{border-top:6px solid #d4eaf7}.dark .VPHome .image-bg{filter:blur(var(--blur));animation:1.8s ease-in infinite alternate-reverse filter_blur}.dark .vp-doc h1{-webkit-text-decoration-color:var(--decoration-color-blue-dark);text-decoration-color:var(--decoration-color-blue-dark)}.dark .vp-doc h2{-webkit-text-decoration-color:var(--decoration-color-yellow-dark);text-decoration-color:var(--decoration-color-yellow-dark)}.dark .vp-doc h3{-webkit-text-decoration-color:var(--decoration-color-green-dark);text-decoration-color:var(--decoration-color-green-dark)}.dark .vp-doc h4{-webkit-text-decoration-color:var(--decoration-color-red-dark);text-decoration-color:var(--decoration-color-red-dark)}.dark .vp-doc img{border-color:#2b2b2b}.dark .vp-doc .vp-code-group .tabs{border-top:2px solid #0000!important}.dark .vp-doc div[class*=language-]:not(.vp-code-group div[class*=language-]){--beam-radius:8px;--beam-z-before:4;--beam-z-after:5;--beam-mask-inset:28px;border:2px solid #0000;border-radius:8px;position:relative}.dark .vp-doc .vp-code-group{--beam-radius:8px;--beam-z-before:4;--beam-z-after:5;--beam-mask-inset:28px;border-radius:8px;position:relative;overflow:hidden}.vp-doc .vp-code-group div[class*=language-]{margin-bottom:0!important}.dark .VPDocFooter .pager-link{border-color:#0000;position:relative}.dark .VPDocFooter .pager-link:not(:hover){border-color:var(--vp-c-divider,#313d44)}.dark .VPDocFooter .pager-link{--beam-radius:8px;--beam-z-before:1;--beam-z-after:2;--beam-mask-inset:20px}.dark .vp-doc div[class*=language-]:not(.vp-code-group div[class*=language-]):before,.dark .vp-doc .vp-code-group:before,.dark .VPDocFooter .pager-link:before{content:"";border-radius:var(--beam-radius);clip-path:inset(0 round var(--beam-radius));pointer-events:none;z-index:var(--beam-z-before);opacity:0;box-shadow:inset 0 0 9px 1px rgba(var(--fx-beam-c1),.3), inset 0 0 12px rgba(var(--fx-beam-c2),.15);background:radial-gradient(ellipse 63px 36px at 33% -7.4%, rgba(var(--fx-beam-c1),.45), transparent), radial-gradient(ellipse 54px 31px at 12% -5%, rgba(var(--fx-beam-c1),.45), transparent), radial-gradient(ellipse 36px 63px at 2.1% 68.3%, rgba(var(--fx-beam-c2),.45), transparent), radial-gradient(ellipse 18px 31px at 2.1% 68.3%, rgba(var(--fx-beam-c2),.45), transparent), radial-gradient(ellipse 162px 28px at 74.4% 100%, rgba(var(--fx-beam-c1),.45), transparent), radial-gradient(ellipse 76px 23px at 55% 100%, rgba(var(--fx-beam-c2),.45), transparent), radial-gradient(ellipse 66px 28px at 93.9% 0%, rgba(var(--fx-beam-c1),.45), transparent), radial-gradient(ellipse 23px 37px at 100% 27.1%, rgba(var(--fx-beam-c1),.45), transparent), radial-gradient(ellipse 46px 43px at 100% 27.1%, rgba(var(--fx-beam-c2),.45), transparent);-webkit-mask-image:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white), linear-gradient(to right, white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white);-webkit-mask-image:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white), linear-gradient(to right, white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white);mask-image:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white), linear-gradient(to right, white, transparent var(--beam-mask-inset), transparent calc(100% - var(--beam-mask-inset)), white);-webkit-mask-composite:source-in, source-over;transition:opacity .5s;animation:3s linear infinite beam-spin,12s ease-in-out infinite beam-hue-shift;position:absolute;inset:0;-webkit-mask-composite:source-in,source-over;mask-composite:intersect,add}.dark .vp-doc div[class*=language-]:not(.vp-code-group div[class*=language-]):after,.dark .vp-doc .vp-code-group:after,.dark .VPDocFooter .pager-link:after{content:"";border-radius:var(--beam-radius);pointer-events:none;z-index:var(--beam-z-after);opacity:0;background:conic-gradient(from var(--beam-angle), transparent 0%, transparent 64%, rgba(var(--fx-beam-c1),.15) 66.5%, rgba(var(--fx-beam-c1),.35) 68%, rgba(var(--fx-beam-c1),.5) 69%, rgba(var(--fx-beam-c2),.65) 70%, rgba(var(--fx-beam-c2),.65) 70.5%, rgba(var(--fx-beam-c2),.45) 71.5%, rgba(var(--fx-beam-c1),.25) 73%, rgba(var(--fx-beam-c1),.1) 75%, transparent 77%, transparent 100%), radial-gradient(ellipse 70px 40px at 33% -7.4%, rgb(var(--fx-beam-c1)), transparent), radial-gradient(ellipse 60px 35px at 12% -5%, rgb(var(--fx-beam-c1)), transparent), radial-gradient(ellipse 40px 70px at 2.1% 68.3%, rgb(var(--fx-beam-c2)), transparent), radial-gradient(ellipse 20px 35px at 2.1% 68.3%, rgb(var(--fx-beam-c2)), transparent), radial-gradient(ellipse 180px 32px at 74.4% 100%, rgb(var(--fx-beam-c1)), transparent), radial-gradient(ellipse 85px 26px at 55% 100%, rgb(var(--fx-beam-c2)), transparent), radial-gradient(ellipse 74px 32px at 93.9% 0%, rgb(var(--fx-beam-c1)), transparent), radial-gradient(ellipse 26px 42px at 100% 27.1%, rgb(var(--fx-beam-c1)), transparent), radial-gradient(ellipse 52px 48px at 100% 27.1%, rgb(var(--fx-beam-c2)), transparent);-webkit-mask:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);mask:conic-gradient(from var(--beam-angle), transparent 0%, transparent 48%, #ffffff1a 54%, #ffffff59 62%, white 68%, white 72%, #ffffff59 78%, #ffffff1a 84%, transparent 95%, transparent 100%), linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);-webkit-mask-composite:source-in, xor;filter:blur(4px)brightness(1.2)saturate(1.1);padding:1px;transition:opacity .5s;animation:3s linear infinite beam-spin,12s ease-in-out infinite beam-hue-shift-bloom;position:absolute;inset:0;-webkit-mask-composite:source-in,xor;mask-composite:intersect,exclude}.dark .vp-doc div[class*=language-]:not(.vp-code-group div[class*=language-]):hover:before,.dark .vp-doc .vp-code-group:hover:before,.dark .VPDocFooter .pager-link:hover:before{opacity:.7}.dark .vp-doc div[class*=language-]:not(.vp-code-group div[class*=language-]):hover:after,.dark .vp-doc .vp-code-group:hover:after,.dark .VPDocFooter .pager-link:hover:after{opacity:.6}.dark .VPHomeFeatures .VPFeature{border-radius:12px;position:relative;overflow:hidden}.dark .VPHomeFeatures .VPFeature:before{content:"";background:radial-gradient(var(--color), transparent, transparent);left:var(--x);top:var(--y);opacity:0;width:700px;height:700px;transition:opacity 1s;display:block;position:absolute;transform:translate(-50%,-50%)}.dark .VPHomeFeatures .VPFeature:hover:before{opacity:1;transition:opacity .3s}.dark .VPHomeFeatures .VPFeature:after{content:"";z-index:0;background-color:#222c;border-radius:10px;display:block;position:absolute;inset:2px}.dark .VPHomeFeatures .VPFeature>.box{z-index:1;position:relative}html.fx-smooth-scroll{scroll-behavior:smooth}html.fx-smooth-scroll .VPDocAsideOutline .outline-marker{transition:top .35s cubic-bezier(.22,1,.36,1),opacity .35s}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}.dark::view-transition-new(root){z-index:1}::view-transition-new(root){z-index:9999}.dark::view-transition-old(root){z-index:9999}.VPNavBarTitle{overflow:hidden}.VPNavBarTitle .title{min-width:0}.VPNavBarTitle .title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.VPNavBarTitle .title img{flex-shrink:0}.vp-doc div[class*=language-]{position:relative;overflow:hidden}.vp-doc div[class*=language-]>pre.shiki{max-height:calc(var(--vp-code-line-height,2.2em) * var(--fx-code-fold-lines,10) + 18px);overflow:hidden}.vp-doc div[class*=language-]>.line-numbers-wrapper{max-height:calc(var(--vp-code-line-height,2.2em) * var(--fx-code-fold-lines,10));overflow:hidden}.fx-code-fold-enabled .vp-doc .fx-code-no-fold>pre.shiki,.fx-code-fold-enabled .vp-doc .fx-code-no-fold>.line-numbers-wrapper,.fx-code-fold-enabled .vp-doc .fx-code-foldable:not(.fx-code-folded)>pre.shiki,.fx-code-fold-enabled .vp-doc .fx-code-foldable:not(.fx-code-folded)>.line-numbers-wrapper{max-height:none;overflow:visible}.fx-code-fold-overlay{pointer-events:none;z-index:3;justify-content:center;align-items:center;font-size:13px;font-weight:500;transition:-webkit-backdrop-filter .3s,backdrop-filter .3s,height .3s;display:flex;position:absolute;bottom:0;left:0;right:0}.fx-code-fold-label{color:var(--vp-c-text-1);pointer-events:auto;cursor:pointer;align-items:center;gap:4px;display:inline-flex}.fx-code-fold-label svg{fill:currentColor;flex-shrink:0}.fx-code-fold-overlay:hover .fx-code-fold-label{color:var(--vp-c-brand-1)}.fx-code-folded>.fx-code-fold-overlay{-webkit-backdrop-filter:blur(8px);background:linear-gradient(to bottom, transparent, var(--vp-c-bg-soft));align-items:flex-end;height:80px;padding-bottom:10px}.fx-code-fold-overlay.fx-code-fold-expanded{height:auto;padding:8px 0}.fx-code-foldable:not(.fx-code-folded){padding-bottom:36px}@property --fx-demo-beam{syntax:"<angle>";inherits:false;initial-value:0deg}.fx-demo-preview{border:1px solid var(--vp-c-divider);background:var(--vp-c-bg);border-radius:10px;margin:18px 0;transition:box-shadow .4s;position:relative;overflow:hidden}.dark .fx-demo-preview{border:2px solid #0000}.dark .fx-demo-preview:before{content:"";z-index:0;opacity:0;background:conic-gradient(from var(--fx-demo-beam,0deg), transparent 0%, transparent 46%, rgba(var(--fx-beam-c1), .5) 52%, rgba(var(--fx-beam-c2), .4) 58%, transparent 64%, transparent 100%);border-radius:12px;transition:opacity .4s;animation:4s linear infinite fx-demo-beam-spin;position:absolute;inset:-2px}.dark .fx-demo-preview:hover:before{opacity:.7}.dark .fx-demo-preview>*{z-index:1;position:relative}@keyframes fx-demo-beam-spin{to{--fx-demo-beam:360deg}}.fx-demo-preview__runner{background:radial-gradient(ellipse 80% 60% at 50% 0%, rgba(var(--fx-beam-c1), .05), transparent 70%), var(--vp-c-bg);justify-content:center;align-items:center;min-height:100px;padding:28px;display:flex}.dark .fx-demo-preview__runner{background:radial-gradient(ellipse 80% 60% at 50% 0%, rgba(var(--fx-beam-c1), .1), transparent 70%), var(--vp-c-bg)}.fx-demo-preview__loading{color:var(--vp-c-text-3);font-size:13px}.fx-preview-group{border-top:1px solid var(--vp-c-divider);background:var(--vp-c-bg-soft)}.fx-preview-group__toolbar{z-index:1;border-bottom:1px solid var(--vp-c-divider);background:rgba(var(--vp-c-bg-soft-rgb,248, 248, 248), .85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:space-between;align-items:center;gap:8px;padding:0 8px 0 4px;display:flex;position:sticky;top:0}.dark .fx-preview-group__toolbar{background:#222226d9}.fx-preview-group__tabs{scrollbar-width:none;display:flex;overflow-x:auto}.fx-preview-group__tabs::-webkit-scrollbar{display:none}.fx-preview-group__tab{color:var(--vp-c-text-2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;padding:10px 16px;font-size:13px;font-weight:500;transition:color .25s,border-color .25s}.fx-preview-group__tab:hover{color:var(--vp-c-text-1)}.fx-preview-group__tab.is-active{color:rgb(var(--fx-beam-c1));border-bottom-color:rgb(var(--fx-beam-c1))}.fx-preview-group__toggle{width:30px;height:30px;color:var(--vp-c-text-2);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:color .2s,background-color .2s;display:inline-flex}.fx-preview-group__toggle:hover{color:rgb(var(--fx-beam-c1));background:rgba(var(--fx-beam-c1), .08)}.fx-preview-group__toggle svg{transition:transform .25s}.fx-preview-group__toggle.is-expanded svg{transform:rotate(180deg)}.fx-preview-group__panel div[class*=language-]{border:none!important;border-radius:0!important;margin:0!important}:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64, 158, 255;--el-color-success-rgb:103, 194, 58;--el-color-warning-rgb:230, 162, 60;--el-color-danger-rgb:245, 108, 108;--el-color-error-rgb:245, 108, 108;--el-color-info-rgb:144, 147, 153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px #0000000a, 0px 8px 20px #00000014;--el-box-shadow-light:0px 0px 12px #0000001f;--el-box-shadow-lighter:0px 0px 6px #0000001f;--el-box-shadow-dark:0px 16px 48px 16px #00000014, 0px 12px 32px #0000001f, 0px 8px 16px -8px #00000029;--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:#000c;--el-overlay-color-light:#000000b3;--el-overlay-color-lighter:#00000080;--el-mask-color:#ffffffe6;--el-mask-color-extra-light:#ffffff4d;--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:top;transform:scaleY(1)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:bottom;transform:scaleY(1)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:0 0;transform:scale(1)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out, var(--el-transition-duration) padding-top ease-in-out, var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out, var(--el-transition-duration) padding-top ease-in-out, var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out, var(--el-transition-duration) padding-left ease-in-out, var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;fill:currentColor;width:1em;height:1em;color:var(--color);line-height:1em;font-size:inherit;justify-content:center;align-items:center;display:inline-flex;position:relative}.el-icon.is-loading{animation:2s linear infinite rotating}.el-icon svg{width:1em;height:1em}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);--el-popper-bg-color-light:var(--el-bg-color-overlay);--el-popper-bg-color-dark:var(--el-text-color-primary);border-radius:var(--el-popper-border-radius);z-index:2000;overflow-wrap:break-word;word-break:normal;visibility:visible;min-width:10px;padding:5px 11px;font-size:12px;line-height:20px;position:absolute}.el-popper.is-dark{--el-fill-color-blank:var(--el-popper-bg-color-dark);color:var(--el-bg-color);background:var(--el-popper-bg-color-dark);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-popper-bg-color-dark);right:0}.el-popper.is-light{--el-fill-color-blank:var(--el-popper-bg-color-light);background:var(--el-popper-bg-color-light);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-popper-bg-color-light);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{z-index:-1;width:10px;height:10px;position:absolute}.el-popper__arrow:before{z-index:-1;content:" ";background:var(--el-text-color-primary);box-sizing:border-box;width:10px;height:10px;position:absolute;transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-top-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-right-color:#0000!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-top-color:#0000!important;border-right-color:#0000!important}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;vertical-align:bottom;width:100%;font-size:var(--el-font-size-base);display:inline-block;position:relative}.el-textarea__inner{resize:vertical;box-sizing:border-box;width:100%;line-height:1.5;font-size:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);background-image:none;border:none;padding:5px 11px;font-family:inherit;display:block;position:relative}.el-textarea__inner.is-clearable{padding:5px 26px 5px 11px}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea__clear{color:var(--el-input-icon-color);cursor:pointer;font-size:14px;position:absolute;top:15px;right:11px;transform:translateY(-50%)}.el-textarea__clear:hover{color:var(--el-input-clear-hover-color)}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);font-size:12px;line-height:14px;position:absolute;bottom:5px;right:10px}.el-textarea .el-input__count.is-outside{top:100%;right:0;bottom:unset;background:0 0;padding-top:2px;line-height:1;position:absolute}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);font-size:var(--el-font-size-base);width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle;display:inline-flex;position:relative}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;color:var(--el-color-info);align-items:center;font-size:12px;display:inline-flex}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;padding-left:8px;display:inline-block}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;top:100%;right:0}.el-input .el-input__count.is-outside .el-input__count-inner{background:0 0;padding-left:0;line-height:1}.el-input__wrapper{background-color:var(--el-input-bg-color,var(--el-fill-color-blank));border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;background-image:none;flex-grow:1;justify-content:center;align-items:center;padding:1px 11px;display:inline-flex;transform:translate(0)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height,32px) - 2px)}.el-input__inner{-webkit-appearance:none;width:100%;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);box-sizing:border-box;background:0 0;border:none;outline:none;flex-grow:1;padding:0}.el-input__inner:focus{outline:none}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__prefix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__suffix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;transition:all var(--el-transition-duration);justify-content:center;align-items:center;margin-left:8px;display:flex}.el-input .el-input__clear{transition:color var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);cursor:not-allowed;box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height,40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height,24px) - 2px)}.el-input-group{align-items:stretch;width:100%;display:inline-flex}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);border-radius:var(--el-input-border-radius);white-space:nowrap;justify-content:center;align-items:center;min-height:100%;padding:0 20px;display:inline-flex;position:relative}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-select,.el-input-group__append .el-button,.el-input-group__prepend .el-select,.el-input-group__prepend .el-button{flex:1;margin:0 -20px;display:inline-block}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{color:inherit;background-color:#0000;border-color:#0000}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{box-shadow:1px 0 0 0 var(--el-input-border-color) inset, 0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append{box-shadow:0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset, -1px 0 0 0 var(--el-input-border-color) inset;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{box-shadow:1px 0 0 0 var(--el-input-border-color) inset, 0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{box-shadow:0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset, -1px 0 0 0 var(--el-input-border-color) inset;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-hidden{display:none!important}.el-input-number{vertical-align:middle;width:150px;line-height:30px;display:inline-flex;position:relative}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__increase,.el-input-number__decrease{z-index:1;background:var(--el-fill-color-light);width:32px;height:auto;color:var(--el-text-color-regular);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;top:1px;bottom:1px}.el-input-number__increase:hover,.el-input-number__decrease:hover{color:var(--el-color-primary)}.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__increase.is-disabled,.el-input-number__decrease.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border);right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__increase,.el-input-number.is-disabled .el-input-number__decrease{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__increase:hover,.el-input-number.is-disabled .el-input-number__decrease:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__increase,.el-input-number--large .el-input-number__decrease{width:40px;font-size:14px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__increase,.el-input-number--small .el-input-number__decrease{width:24px;font-size:12px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__increase [class*=el-icon],.el-input-number--small .el-input-number__decrease [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__increase,.el-input-number.is-controls-right .el-input-number__decrease{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon],.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border);bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;top:auto;left:auto;right:1px}.el-input-number.is-controls-right[class*=large] [class*=increase],.el-input-number.is-controls-right[class*=large] [class*=decrease]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=increase],.el-input-number.is-controls-right[class*=small] [class*=decrease]{--el-input-number-controls-height:11px}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;width:100%;height:32px;display:flex}.el-slider__runway{height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;position:relative}.el-slider__runway.show-input{width:auto;margin-right:30px}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed;transform:scale(1)}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);z-index:1;top:var(--el-slider-button-wrapper-offset);text-align:center;-webkit-user-select:none;user-select:none;background-color:#0000;outline:none;line-height:normal;position:absolute;transform:translate(-50%)}.el-slider__button-wrapper:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-slider__button-wrapper:hover,.el-slider__button-wrapper.hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;border-radius:50%;display:inline-block}.el-slider__button:hover,.el-slider__button.hover,.el-slider__button.dragging{transform:scale(1.2)}.el-slider__button:hover,.el-slider__button.hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);position:absolute;transform:translate(-50%)}.el-slider__marks{width:18px;height:100%;top:0;left:12px}.el-slider__marks-text{color:var(--el-color-info);white-space:pre;margin-top:15px;font-size:14px;position:absolute;transform:translate(-50%)}.el-slider.is-vertical{flex:0;width:auto;height:100%;display:inline-flex;position:relative}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);border-radius:0 0 3px 3px;height:auto}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.fx-music-ball{--fx-music-accent-start:rgb(var(--fx-beam-c1));--fx-music-accent-end:rgb(var(--fx-beam-c2));--fx-music-bg:#ffffff73;--fx-music-bg-blur:12px;--fx-music-border:#ffffff4d;--fx-music-shadow:0 4px 16px #0000001a;--fx-music-text:#000000a6;--fx-music-text-muted:#0006;--fx-music-slider-track:#00000014;--fx-music-slider-thumb:rgb(var(--fx-beam-c2));--music-list-sep-color:#0000000f;--music-list-bgcolor:#ffffff80;--music-list-bdcolor:#ffffff4d}.dark .fx-music-ball{--fx-music-bg:#1e1e328c;--fx-music-bg-blur:16px;--fx-music-border:#ffffff14;--fx-music-shadow:0 4px 20px #0000004d, 0 0 12px rgba(var(--fx-beam-c1), .15);--fx-music-text:#ffffffb3;--fx-music-text-muted:#fff6;--fx-music-slider-track:#ffffff1a;--music-list-sep-color:#ffffff0d;--music-list-bgcolor:#1e1e3299;--music-list-bdcolor:#ffffff0f}.fx-music-ball{background:var(--fx-music-bg);-webkit-backdrop-filter:blur(var(--fx-music-bg-blur));border:1px solid var(--fx-music-border);box-shadow:var(--fx-music-shadow);cursor:pointer;z-index:99;box-sizing:border-box;border-radius:28px;justify-content:space-between;align-items:center;width:50px;height:50px;padding:0 20px 0 5px;transition:width .35s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;bottom:15px;left:15px;overflow:hidden}.fx-music-ball.active{overflow:inherit}.fx-music-ball:hover{width:330px;transition:width .4s cubic-bezier(.34,1.56,.64,1) .5s}.fx-music-ball .fx-progress-ring{cursor:pointer;position:absolute;top:-1px;left:-1px;transform:rotate(-90deg)}.fx-music-ball .fx-progress-track{stroke:var(--fx-music-slider-track)}.fx-music-ball .fx-progress-bar{stroke:url(#fx-progress-gradient);transition:stroke-dasharray .1s}.fx-music-ball .fx-orbit-ring{border:1.5px solid #0000;border-top-color:rgba(var(--fx-beam-c1), .4);border-right-color:rgba(var(--fx-beam-c2), .2);pointer-events:none;border-radius:50%;animation:3s linear infinite orbit-spin;position:absolute;inset:-4px}.dark .fx-music-ball .fx-orbit-ring{border-top-color:rgba(var(--fx-beam-c1), .6);border-right-color:rgba(var(--fx-beam-c2), .3);filter:drop-shadow(0 0 4px rgba(var(--fx-beam-c1), .3))}@keyframes orbit-spin{to{transform:rotate(360deg)}}.fx-music-ball .fx-music-ball__inner{justify-content:space-between;align-items:center;width:330px;display:flex}.fx-music-ball .fx-play-pause span,.fx-music-ball .fx-music-list-button span,.fx-music-ball .fx-icon-volume{justify-content:center;align-items:center;display:flex}.fx-music-ball .fx-play-pause span svg,.fx-music-ball .fx-music-list-button span svg,.fx-music-ball .fx-icon-volume svg{fill:var(--fx-music-text)}.fx-music-ball .fx-play-pause{border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .3s;display:flex}.fx-music-ball .fx-play-pause:hover{background-color:rgba(var(--fx-beam-c1), .1)}.dark .fx-music-ball .fx-play-pause:hover{background-color:rgba(var(--fx-beam-c1), .15)}.fx-music-ball .fx-time{color:var(--fx-music-text-muted);white-space:nowrap;width:78px;padding:0 10px;font-size:12px}.fx-music-ball .fx-duration{flex:1;padding:0 10px 0 3px}.fx-music-ball .fx-music-list-button{justify-content:center;align-items:center;width:30px;margin-left:8px;display:flex}.fx-music-ball .el-slider{--el-slider-height:4px;--el-slider-main-bg-color:var(--fx-music-accent-end);--el-color-white:var(--fx-music-slider-thumb)}.fx-music-ball .el-slider .el-slider__runway{background-color:var(--fx-music-slider-track)}.fx-music-ball .el-slider .el-slider__bar{background:linear-gradient(90deg, var(--fx-music-accent-start), var(--fx-music-accent-end))}.fx-music-ball .el-slider .el-slider__button{--el-slider-button-size:12px;border-color:var(--fx-music-slider-thumb);box-shadow:0 0 6px rgba(var(--fx-beam-c2), .3);position:relative;top:-1px}.fx-music-ball .fx-volume{align-items:center;width:30px;transition:width .3s .3s;display:flex}.fx-music-ball .fx-volume .el-slider{opacity:0;transition:opacity .3s .3s}.fx-music-ball .fx-volume:hover{width:120px;transition:width .3s .3s}.fx-music-ball .fx-volume:hover .el-slider{opacity:1;transition:opacity .3s}.fx-music-ball .fx-icon-volume{cursor:pointer;margin-left:5px}.fx-music-ball.is-playing .fx-progress-bar{animation:2s ease-in-out infinite progress-pulse}@keyframes progress-pulse{0%,to{filter:drop-shadow(0 0 2px rgba(var(--fx-beam-c1), .3))}50%{filter:drop-shadow(0 0 6px rgba(var(--fx-beam-c2), .6))}}.fx-music-ball.is-playing:before{content:"";border-radius:inherit;background:linear-gradient(135deg, rgba(var(--fx-beam-c1), .08) 0%, transparent 40%, rgba(var(--fx-beam-c2), .08) 60%, transparent 100%);pointer-events:none;background-size:200% 200%;animation:4s ease-in-out infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:200% 0}50%{background-position:0 200%}to{background-position:200% 0}}.dark .fx-music-ball.is-playing{box-shadow:0 4px 20px #0000004d, 0 0 12px rgba(var(--fx-beam-c1), .15), 0 0 24px rgba(var(--fx-beam-c2), .08)}.fx-music-ball .fx-music-list{box-sizing:border-box;z-index:-9;background:var(--music-list-bgcolor);-webkit-backdrop-filter:blur(20px);border:1px solid var(--music-list-bdcolor);width:100%;box-shadow:var(--fx-music-shadow);opacity:0;pointer-events:none;border-radius:24px;padding:15px 5px 50px;transition:opacity .3s,transform .3s;position:absolute;bottom:0;left:0;transform:translateY(10px)}.fx-music-ball.active .fx-music-list{opacity:1;pointer-events:auto;transform:translateY(0)}.fx-music-ball .fx-music-list .fx-music-list-sep{border-bottom:1px solid var(--music-list-sep-color);margin:5px 0}.fx-music-ball .fx-music-list .fx-music-list-item{text-wrap:nowrap;text-overflow:ellipsis;color:var(--fx-music-text-muted);padding-left:20px;padding-right:20px;font-size:12px;line-height:24px;transition:color .2s;position:relative;overflow:hidden}.fx-music-ball .fx-music-list .fx-music-list-item:hover{color:var(--fx-music-accent-end)}.fx-music-ball .fx-music-list .fx-music-list-item .image-live{width:12px;height:12px;position:absolute;bottom:6px;left:3px}.fx-music-ball .fx-music-list .fx-music-list-item .image-live svg{width:100%;height:100%}.fx-music-ball .fx-music-list .fx-music-list-item .image-live .bar{fill:currentColor;transform-box:fill-box;transform-origin:bottom}.fx-music-ball .fx-music-list .fx-music-list-item .image-live.playing .bar-1{animation:.8s ease-in-out infinite fx-eq-bar}.fx-music-ball .fx-music-list .fx-music-list-item .image-live.playing .bar-2{animation:.8s ease-in-out .2s infinite fx-eq-bar}.fx-music-ball .fx-music-list .fx-music-list-item .image-live.playing .bar-3{animation:.8s ease-in-out .4s infinite fx-eq-bar}.fx-music-ball .fx-music-list .fx-music-list-item .image-live.playing .bar-4{animation:.8s ease-in-out .1s infinite fx-eq-bar}@keyframes fx-eq-bar{0%,to{transform:scaleY(1)}50%{transform:scaleY(.3)}}.fx-music-ball .fx-music-list .fx-music-list-item.active{color:var(--fx-music-accent-start)}.fx-music-ball .fx-music-list .fx-music-list-item.active:hover{color:var(--fx-music-accent-end)}@media (prefers-reduced-motion:reduce){.fx-music-ball *,.fx-music-ball :before,.fx-music-ball :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
|
|
2
2
|
/*$vite$:1*/
|
package/package.json
CHANGED
|
@@ -2,40 +2,41 @@
|
|
|
2
2
|
"name": "@fuxishi/vitepress-theme",
|
|
3
3
|
"displayName": "@fuxishi/vitepress-theme",
|
|
4
4
|
"private": false,
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "2.0.0-alpha.10",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"description": "一款精美的 VitePress 主题",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"vitepress",
|
|
10
|
-
"theme",
|
|
11
10
|
"vitepress-theme",
|
|
12
11
|
"@fuxishi/vitepress-theme",
|
|
13
12
|
"fuxishi"
|
|
14
13
|
],
|
|
15
14
|
"type": "module",
|
|
16
15
|
"files": [
|
|
17
|
-
"dist"
|
|
16
|
+
"dist",
|
|
17
|
+
"LICENSE",
|
|
18
|
+
"README.md",
|
|
19
|
+
"README_EN.md",
|
|
20
|
+
"package.json"
|
|
18
21
|
],
|
|
19
22
|
"main": "./dist/index.js",
|
|
20
23
|
"module": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
21
25
|
"exports": {
|
|
22
26
|
".": {
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"import": "./dist/index.js",
|
|
29
|
+
"default": "./dist/index.js"
|
|
27
30
|
},
|
|
28
31
|
"./config": {
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
32
|
+
"types": "./dist/config.d.ts",
|
|
33
|
+
"import": "./dist/config.js",
|
|
34
|
+
"default": "./dist/config.js"
|
|
33
35
|
},
|
|
34
36
|
"./style.css": {
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
37
|
+
"types": "./dist/style.css.d.ts",
|
|
38
|
+
"import": "./dist/style.css",
|
|
39
|
+
"default": "./dist/style.css"
|
|
39
40
|
}
|
|
40
41
|
},
|
|
41
42
|
"scripts": {
|
|
@@ -44,23 +45,24 @@
|
|
|
44
45
|
"ncu": "ncu -u && npm install",
|
|
45
46
|
"login": "npm login --registry=https://registry.npmjs.org/",
|
|
46
47
|
"pub": "npm publish --access public --registry=https://registry.npmjs.org/",
|
|
48
|
+
"pub-tag": "npm publish --access public --tag alpha --registry=https://registry.npmjs.org/",
|
|
47
49
|
"deprecate": "node -e \"const v=process.argv[1],m=process.argv[2]||'';require('child_process').execSync('npm deprecate @fuxishi/vitepress-theme@'+v+' \\\"'+m+'\\\" --registry=https://registry.npmjs.org/',{stdio:'inherit'})\""
|
|
48
50
|
},
|
|
49
51
|
"dependencies": {
|
|
50
52
|
"canvas-confetti": "^1.9.4",
|
|
51
|
-
"element-plus": "^2.
|
|
53
|
+
"element-plus": "^2.14.2",
|
|
52
54
|
"node-vibrant": "^4.0.4"
|
|
53
55
|
},
|
|
54
56
|
"devDependencies": {
|
|
55
57
|
"@types/canvas-confetti": "^1.9.0",
|
|
56
|
-
"@types/node": "^25.
|
|
57
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
58
|
+
"@types/node": "^25.9.3",
|
|
59
|
+
"@vitejs/plugin-vue": "^6.0.7",
|
|
58
60
|
"typescript": "^6.0.3",
|
|
59
|
-
"vite": "^8.0.
|
|
60
|
-
"vitepress": "^
|
|
61
|
-
"vue": "^3.5.
|
|
61
|
+
"vite": "^8.0.16",
|
|
62
|
+
"vitepress": "^2.0.0-alpha.17",
|
|
63
|
+
"vue": "^3.5.38"
|
|
62
64
|
},
|
|
63
65
|
"peerDependencies": {
|
|
64
|
-
"vitepress": "
|
|
66
|
+
"vitepress": ">=2.0.0-alpha.17"
|
|
65
67
|
}
|
|
66
68
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|