@fuxishi/vitepress-theme 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +112 -0
- package/dist/chunk/FxConfetti-DIy1zU6g.js +51 -0
- package/dist/chunk/FxHomeFeatureBefore-C2KseNb3.js +27 -0
- package/dist/chunk/FxMusicBall-B_F7Q9VQ.js +171 -0
- package/dist/config.d.ts +21 -0
- package/dist/config.js +22 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +37 -0
- package/dist/style.css +2 -0
- package/package.json +58 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025-present fuxishi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# @fuxishi/vitepress-theme
|
|
2
|
+
|
|
3
|
+
精美的 VitePress 文档站主题扩展,毛玻璃质感,紫蓝渐变,动效丰富,开箱即用。
|
|
4
|
+
|
|
5
|
+
## 特性
|
|
6
|
+
|
|
7
|
+
- 🎵 **悬浮音乐球** — 毛玻璃质感的浮动播放器,支持单曲/列表模式,紫蓝渐变进度环与四重播放动效
|
|
8
|
+
- 🎊 **点击彩纸** — 全局点击彩纸特效,金色星星与彩色纸屑
|
|
9
|
+
- ✨ **Feature 光效** — 首页 Feature 卡片鼠标追踪光晕效果
|
|
10
|
+
- 🌈 **彩虹边框** — 暗色模式下代码块 hover 时展示彩虹旋转边框
|
|
11
|
+
- 🚦 **macOS 红绿灯** — 代码块顶部红黄绿交通灯装饰
|
|
12
|
+
- 🔄 **主题切换动画** — View Transition API 实现亮暗模式圆形扩散动画
|
|
13
|
+
- 🎨 **标题装饰** — h1-h4 各有不同颜色的下划线装饰
|
|
14
|
+
- ⚙️ **类型安全** — 完整的 TypeScript 类型定义,IDE 友好
|
|
15
|
+
|
|
16
|
+
## 安装
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install @fuxishi/vitepress-theme
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
需要安装以下 peerDependencies:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install vitepress vue element-plus
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 使用
|
|
29
|
+
|
|
30
|
+
### 1. 注册主题
|
|
31
|
+
|
|
32
|
+
创建 `.vitepress/theme/index.ts`:
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
import FxTheme from '@fuxishi/vitepress-theme'
|
|
36
|
+
import '@fuxishi/vitepress-theme/style.css'
|
|
37
|
+
|
|
38
|
+
export default FxTheme
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. 继承配置
|
|
42
|
+
|
|
43
|
+
创建 `.vitepress/config.mts`:
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
import { defineConfigWithTheme } from 'vitepress'
|
|
47
|
+
import fxConfig from '@fuxishi/vitepress-theme/config'
|
|
48
|
+
import type { FxThemeConfig } from '@fuxishi/vitepress-theme/config'
|
|
49
|
+
|
|
50
|
+
export default defineConfigWithTheme<FxThemeConfig>({
|
|
51
|
+
extends: fxConfig,
|
|
52
|
+
lang: 'zh-CN',
|
|
53
|
+
title: '我的文档站',
|
|
54
|
+
themeConfig: {
|
|
55
|
+
nav: [
|
|
56
|
+
{ text: '指南', link: '/guide/' },
|
|
57
|
+
],
|
|
58
|
+
sidebar: {
|
|
59
|
+
'/guide/': [
|
|
60
|
+
{ text: '快速开始', link: '/guide/' },
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
// 启用音乐球
|
|
64
|
+
musicBall: {
|
|
65
|
+
enable: true,
|
|
66
|
+
autoplay: false,
|
|
67
|
+
loop: true,
|
|
68
|
+
src: '/music/my-song.mp3',
|
|
69
|
+
},
|
|
70
|
+
// 启用彩纸效果
|
|
71
|
+
confetti: true,
|
|
72
|
+
},
|
|
73
|
+
})
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 3. 启动开发服务器
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
npx vitepress dev
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## 配置
|
|
83
|
+
|
|
84
|
+
### FxThemeConfig
|
|
85
|
+
|
|
86
|
+
继承自 VitePress `DefaultTheme.Config`,新增以下字段:
|
|
87
|
+
|
|
88
|
+
| 配置项 | 类型 | 默认值 | 说明 |
|
|
89
|
+
|--------|------|--------|------|
|
|
90
|
+
| `musicBall.enable` | `boolean` | `true` | 是否启用音乐球 |
|
|
91
|
+
| `musicBall.visible` | `boolean` | `true` | 是否可见 |
|
|
92
|
+
| `musicBall.autoplay` | `boolean` | `false` | 自动播放 |
|
|
93
|
+
| `musicBall.loop` | `boolean` | `true` | 循环播放(单曲模式) |
|
|
94
|
+
| `musicBall.src` | `string` | `''` | 单首音乐地址 |
|
|
95
|
+
| `musicBall.list` | `MusicItem[]` | — | 多首音乐列表 |
|
|
96
|
+
| `confetti` | `boolean` | `true` | 是否启用点击彩纸效果 |
|
|
97
|
+
|
|
98
|
+
## 导出
|
|
99
|
+
|
|
100
|
+
| 导出路径 | 说明 |
|
|
101
|
+
|---------|------|
|
|
102
|
+
| `@fuxishi/vitepress-theme` | 主题(Layout + 样式) |
|
|
103
|
+
| `@fuxishi/vitepress-theme/config` | VitePress 基础配置预设 |
|
|
104
|
+
| `@fuxishi/vitepress-theme/style.css` | 独立样式文件 |
|
|
105
|
+
|
|
106
|
+
## 文档
|
|
107
|
+
|
|
108
|
+
完整文档请访问:[https://fuxishi-vitepress-theme.fuxizjxzy.cn](https://fuxishi-vitepress-theme.fuxizjxzy.cn)
|
|
109
|
+
|
|
110
|
+
## License
|
|
111
|
+
|
|
112
|
+
[MIT](./LICENSE)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { defineComponent as e, onMounted as t } from "vue";
|
|
2
|
+
import n from "canvas-confetti";
|
|
3
|
+
//#endregion
|
|
4
|
+
//#region .vitepress/components/FxConfetti.vue
|
|
5
|
+
var r = /* @__PURE__ */ e({
|
|
6
|
+
__name: "FxConfetti",
|
|
7
|
+
setup(e) {
|
|
8
|
+
t(() => {
|
|
9
|
+
window.addEventListener("click", (e) => {
|
|
10
|
+
r(e.clientX / (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth), e.clientY / (window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight));
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
let r = (e, t) => {
|
|
14
|
+
var r = {
|
|
15
|
+
spread: 360,
|
|
16
|
+
ticks: 50,
|
|
17
|
+
gravity: 0,
|
|
18
|
+
decay: .94,
|
|
19
|
+
startVelocity: 10,
|
|
20
|
+
colors: [
|
|
21
|
+
"FFE400",
|
|
22
|
+
"FFBD00",
|
|
23
|
+
"E89400",
|
|
24
|
+
"FFCA6C",
|
|
25
|
+
"FDFFB8"
|
|
26
|
+
],
|
|
27
|
+
origin: {
|
|
28
|
+
x: e,
|
|
29
|
+
y: t
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
function i() {
|
|
33
|
+
n({
|
|
34
|
+
...r,
|
|
35
|
+
particleCount: 4,
|
|
36
|
+
scalar: 1.2,
|
|
37
|
+
shapes: ["star"]
|
|
38
|
+
}), n({
|
|
39
|
+
...r,
|
|
40
|
+
particleCount: 10,
|
|
41
|
+
scalar: .75,
|
|
42
|
+
shapes: ["circle"]
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
setTimeout(i, 0), setTimeout(i, 50), setTimeout(i, 100);
|
|
46
|
+
};
|
|
47
|
+
return (e, t) => null;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
//#endregion
|
|
51
|
+
export { r as default };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineComponent as e, onMounted as t } from "vue";
|
|
2
|
+
//#region .vitepress/components/FxHomeFeatureBefore.ts
|
|
3
|
+
var n = e({ setup() {
|
|
4
|
+
return t(() => {
|
|
5
|
+
let e = [
|
|
6
|
+
"#f00",
|
|
7
|
+
"#0f0",
|
|
8
|
+
"#f0f",
|
|
9
|
+
"#0ff",
|
|
10
|
+
"#FE7300",
|
|
11
|
+
"#008EFF",
|
|
12
|
+
"red",
|
|
13
|
+
"red",
|
|
14
|
+
"red",
|
|
15
|
+
"red",
|
|
16
|
+
"red"
|
|
17
|
+
], t = document.querySelector(".VPHomeFeatures");
|
|
18
|
+
document.querySelectorAll(".VPHomeFeatures .VPFeature").forEach((n, r) => {
|
|
19
|
+
n.style.setProperty("--color", e[r]), n.addEventListener("mousemove", function(e) {
|
|
20
|
+
let n = e.pageX - this.offsetLeft, r = e.pageY - (t?.offsetTop || 0) - this.offsetTop;
|
|
21
|
+
this.style.setProperty("--x", n + "px"), this.style.setProperty("--y", r + "px");
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}), () => null;
|
|
25
|
+
} });
|
|
26
|
+
//#endregion
|
|
27
|
+
export { n as default };
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createVNode as a, defineComponent as o, normalizeClass as s, onMounted as c, openBlock as l, ref as u, renderList as ee, toDisplayString as d, unref as f, vShow as p, watchEffect as m, withDirectives as h } from "vue";
|
|
2
|
+
import { useData as g } from "vitepress";
|
|
3
|
+
import { ElSlider as _ } from "element-plus";
|
|
4
|
+
//#region .vitepress/assets/images/live.gif
|
|
5
|
+
var v = "data:image/gif;base64,R0lGODlhSABIAPfCAP/1+f9vn//i7P/7/P9rnf+Yuv94pf/6+/9xoP9rnP/9/v/o8P/m7v90ov/u9P/o7/+Ksf/8/f9zof9qnP/x9v+gwP9xof/+/v/0+P/n7//p8f/s8v95pf/7/f+qxv98p/+pxv/Q3/+rx//9/f9nmv9yof/4+//u8//z9//v9P/t8/+80v9pm//m7/+Zu/+dvf+80/9un/+Yu/9tnf9unv9nmf/d6P9tnv93pf+Gr/95pv/w9f9woP90o//y9v/c6P+Os//q8f/r8f+JsP9zov91o/+Rtf+hwf+vyv99qP+Aqv+Aq//k7f/p8P9+qf/K3P/5+//3+v/3+f/d6f/2+f/r8v+Frv/v9f+Drf/6/P9qm/92pP+Ir/+40P/f6f99qf/U4/+Jsf/P3/+VuP9om//S4f/L3f/W5P96p/+St/+Msv98qP+90//O3v/b5//T4f/T4v/R4P/h6/9wn/9omv/l7v/C1v+IsP+1zf/g6//4+v+jwf/y9/+50f+wy/+fv//e6f+Ptf+yzP/X5P/W4//E1/+bvf/a5v/I2v+CrP/C1//x9f+UuP++1P+pxf+Qtf+tyP/L3P+Frf+Ns//f6v/Z5v/A1f9snf+PtP/D1/+lw//B1f+nxP+kw/+Grv+DrP/M3f/J2//U4v+mw//l7f+gv/+hwP/c5/+2zv+evv/j7f+tyf/j7P/G2f+Rtv/1+P+mxP/Z5f+Hr//O3/96pv+Lsf/s8/+2z/+jwv/g6v+Ut//a5/+Vuf9/qv/H2v9/qf+Erf9mmf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDQ2MCwgMjAyMC8wNS8xMi0xNjowNDoxNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTczRTY3QTRGODczMTFFQkI0RjFFNzNEMDE1NTkzOUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTczRTY3QTVGODczMTFFQkI0RjFFNzNEMDE1NTkzOUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5NzNFNjdBMkY4NzMxMUVCQjRGMUU3M0QwMTU1OTM5QSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5NzNFNjdBM0Y4NzMxMUVCQjRGMUU3M0QwMTU1OTM5QSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2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", y = [
|
|
6
|
+
"src",
|
|
7
|
+
"autoplay",
|
|
8
|
+
"loop"
|
|
9
|
+
], b = ["src", "autoplay"], x = { class: "fx-music-ball__inner" }, S = { class: "fx-play-pause" }, C = { class: "iconfont icon-playfill" }, w = { class: "iconfont icon-pause" }, T = { class: "fx-time" }, E = { class: "fx-duration" }, D = { class: "fx-volume" }, O = ["stroke-dasharray"], k = {
|
|
10
|
+
key: 2,
|
|
11
|
+
class: "fx-orbit-ring"
|
|
12
|
+
}, A = {
|
|
13
|
+
key: 3,
|
|
14
|
+
class: "fx-music-list"
|
|
15
|
+
}, j = ["onClick"], M = {
|
|
16
|
+
key: 0,
|
|
17
|
+
src: v,
|
|
18
|
+
alt: "",
|
|
19
|
+
class: "image-live"
|
|
20
|
+
}, N = /* @__PURE__ */ o({
|
|
21
|
+
__name: "FxMusicBall",
|
|
22
|
+
setup(o) {
|
|
23
|
+
let { site: v } = g(), N = v.value.themeConfig.musicBall, P = u(null), F = u(0), I = u(0), L = u(0), R = u(!1), z = u(50), B = u(!1), V = u(0), H = u(!!N.autoplay), U = u(!1), W = 2 * Math.PI * 22, G = t(() => {
|
|
24
|
+
let e = W - Y.value / 100 * W;
|
|
25
|
+
return `${W - e} ${e}`;
|
|
26
|
+
}), K = t(() => N.src || N.list?.length === 1), q = t(() => N.src || N.list?.[0]?.src), J = t(() => N.list || []), Y = t({
|
|
27
|
+
get() {
|
|
28
|
+
return L.value / F.value * 100 || 0;
|
|
29
|
+
},
|
|
30
|
+
set(e) {
|
|
31
|
+
I.value = F.value * e / 100, !R.value && P.value && (P.value.currentTime = I.value);
|
|
32
|
+
}
|
|
33
|
+
}), X = t(() => $(F.value)), Z = t(() => $(L.value));
|
|
34
|
+
m(() => {
|
|
35
|
+
P.value && (B.value = !1, P.value.volume = z.value / 100);
|
|
36
|
+
}), m(() => {
|
|
37
|
+
P.value && (P.value.muted = B.value);
|
|
38
|
+
}), c(() => {
|
|
39
|
+
let e = P.value;
|
|
40
|
+
e?.addEventListener("play", () => {
|
|
41
|
+
R.value = !0;
|
|
42
|
+
}), e?.addEventListener("pause", () => {
|
|
43
|
+
R.value = !1;
|
|
44
|
+
}), e?.addEventListener("timeupdate", () => {
|
|
45
|
+
F.value = e.duration, L.value = e.currentTime;
|
|
46
|
+
}), e?.addEventListener("canplay", () => {
|
|
47
|
+
F.value = e.duration;
|
|
48
|
+
}), e?.addEventListener("ended", () => {
|
|
49
|
+
V.value + 1 > J.value.length - 1 ? V.value = 0 : V.value++;
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
let Q = () => {
|
|
53
|
+
R.value = !R.value, R.value ? P.value?.play() : P.value?.pause(), !K.value && !H.value && (H.value = !0);
|
|
54
|
+
}, te = () => {
|
|
55
|
+
P.value && (P.value.currentTime = I.value);
|
|
56
|
+
}, ne = (e) => {
|
|
57
|
+
H.value = !0, V.value = e;
|
|
58
|
+
}, re = () => {
|
|
59
|
+
U.value = !1;
|
|
60
|
+
};
|
|
61
|
+
function $(e) {
|
|
62
|
+
return e = Number(e), `${Math.floor(e % 3600 / 60) || 0}:${(Math.floor(e % 3600 % 60) || 0).toString().padStart(2, "0")}`;
|
|
63
|
+
}
|
|
64
|
+
return (t, o) => (l(), r("div", {
|
|
65
|
+
class: s(["fx-music-ball", {
|
|
66
|
+
active: U.value,
|
|
67
|
+
"is-playing": R.value
|
|
68
|
+
}]),
|
|
69
|
+
onMouseleave: re
|
|
70
|
+
}, [
|
|
71
|
+
K.value ? (l(), r("audio", {
|
|
72
|
+
key: 0,
|
|
73
|
+
class: "audio",
|
|
74
|
+
src: q.value,
|
|
75
|
+
autoplay: f(N).autoplay,
|
|
76
|
+
loop: f(N).loop,
|
|
77
|
+
style: { display: "none" },
|
|
78
|
+
ref_key: "audioRef",
|
|
79
|
+
ref: P
|
|
80
|
+
}, null, 8, y)) : (l(), r("audio", {
|
|
81
|
+
key: 1,
|
|
82
|
+
class: "audio",
|
|
83
|
+
src: J.value[V.value].src,
|
|
84
|
+
autoplay: H.value,
|
|
85
|
+
style: { display: "none" },
|
|
86
|
+
ref_key: "audioRef",
|
|
87
|
+
ref: P
|
|
88
|
+
}, null, 8, b)),
|
|
89
|
+
i("div", x, [
|
|
90
|
+
i("div", S, [h(i("span", C, null, 512), [[p, !R.value]]), h(i("span", w, null, 512), [[p, R.value]])]),
|
|
91
|
+
i("div", T, d(X.value) + "\xA0/\xA0" + d(Z.value), 1),
|
|
92
|
+
i("div", E, [a(f(_), {
|
|
93
|
+
style: { width: "100%" },
|
|
94
|
+
"show-tooltip": !1,
|
|
95
|
+
modelValue: Y.value,
|
|
96
|
+
"onUpdate:modelValue": o[0] ||= (e) => Y.value = e,
|
|
97
|
+
onChange: te
|
|
98
|
+
}, null, 8, ["modelValue"])]),
|
|
99
|
+
i("div", D, [
|
|
100
|
+
a(f(_), {
|
|
101
|
+
style: { width: "100%" },
|
|
102
|
+
"show-tooltip": !1,
|
|
103
|
+
modelValue: z.value,
|
|
104
|
+
"onUpdate:modelValue": o[1] ||= (e) => z.value = e
|
|
105
|
+
}, null, 8, ["modelValue"]),
|
|
106
|
+
h(i("span", {
|
|
107
|
+
class: "iconfont icon-ic_volume_off",
|
|
108
|
+
onClick: o[2] ||= (e) => B.value = !B.value
|
|
109
|
+
}, null, 512), [[p, B.value]]),
|
|
110
|
+
h(i("span", {
|
|
111
|
+
class: "iconfont icon-ic_volume_up",
|
|
112
|
+
onClick: o[3] ||= (e) => B.value = !B.value
|
|
113
|
+
}, null, 512), [[p, !B.value]])
|
|
114
|
+
]),
|
|
115
|
+
K.value ? n("", !0) : (l(), r("div", {
|
|
116
|
+
key: 0,
|
|
117
|
+
class: "fx-music-list-button",
|
|
118
|
+
onClick: o[4] ||= (e) => U.value = !U.value
|
|
119
|
+
}, [...o[5] ||= [i("span", { class: "iconfont icon-music_list" }, null, -1)]]))
|
|
120
|
+
]),
|
|
121
|
+
(l(), r("svg", {
|
|
122
|
+
class: "fx-progress-ring",
|
|
123
|
+
width: "50",
|
|
124
|
+
height: "50",
|
|
125
|
+
viewBox: "0 0 50 50",
|
|
126
|
+
onClick: Q
|
|
127
|
+
}, [
|
|
128
|
+
o[6] ||= i("defs", null, [i("linearGradient", {
|
|
129
|
+
id: "fx-progress-gradient",
|
|
130
|
+
x1: "0%",
|
|
131
|
+
y1: "0%",
|
|
132
|
+
x2: "100%",
|
|
133
|
+
y2: "100%"
|
|
134
|
+
}, [i("stop", {
|
|
135
|
+
offset: "0%",
|
|
136
|
+
"stop-color": "#bd34fe"
|
|
137
|
+
}), i("stop", {
|
|
138
|
+
offset: "100%",
|
|
139
|
+
"stop-color": "#41d1ff"
|
|
140
|
+
})])], -1),
|
|
141
|
+
o[7] ||= i("circle", {
|
|
142
|
+
class: "fx-progress-track",
|
|
143
|
+
cx: "25",
|
|
144
|
+
cy: "25",
|
|
145
|
+
r: "22",
|
|
146
|
+
fill: "none",
|
|
147
|
+
"stroke-width": "2.5"
|
|
148
|
+
}, null, -1),
|
|
149
|
+
i("circle", {
|
|
150
|
+
class: "fx-progress-bar",
|
|
151
|
+
cx: "25",
|
|
152
|
+
cy: "25",
|
|
153
|
+
r: "22",
|
|
154
|
+
fill: "none",
|
|
155
|
+
stroke: "url(#fx-progress-gradient)",
|
|
156
|
+
"stroke-width": "2.5",
|
|
157
|
+
"stroke-linecap": "round",
|
|
158
|
+
"stroke-dasharray": G.value
|
|
159
|
+
}, null, 8, O)
|
|
160
|
+
])),
|
|
161
|
+
R.value ? (l(), r("div", k)) : n("", !0),
|
|
162
|
+
U.value ? (l(), r("div", A, [(l(!0), r(e, null, ee(J.value, (e, t) => (l(), r("div", {
|
|
163
|
+
class: s(["fx-music-list-item", V.value === t ? "active" : ""]),
|
|
164
|
+
key: t,
|
|
165
|
+
onClick: (e) => ne(t)
|
|
166
|
+
}, [V.value === t ? (l(), r("img", M)) : n("", !0), i("span", null, d(e.name), 1)], 10, j))), 128)), o[8] ||= i("div", { class: "fx-music-list-sep" }, null, -1)])) : n("", !0)
|
|
167
|
+
], 34));
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
//#endregion
|
|
171
|
+
export { N as default };
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { UserConfig, DefaultTheme } from 'vitepress'
|
|
2
|
+
|
|
3
|
+
export type MusicItem = {
|
|
4
|
+
name: string
|
|
5
|
+
src: string
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface FxThemeConfig extends DefaultTheme.Config {
|
|
9
|
+
musicBall?: {
|
|
10
|
+
enable?: boolean
|
|
11
|
+
visible?: boolean
|
|
12
|
+
autoplay?: boolean
|
|
13
|
+
loop?: boolean
|
|
14
|
+
src?: string
|
|
15
|
+
list?: MusicItem[]
|
|
16
|
+
}
|
|
17
|
+
confetti?: boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare const fxConfig: UserConfig<FxThemeConfig>
|
|
21
|
+
export default fxConfig
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region .vitepress/config/index.ts
|
|
2
|
+
var e = {
|
|
3
|
+
themeConfig: {
|
|
4
|
+
outline: [2, 3],
|
|
5
|
+
musicBall: {
|
|
6
|
+
src: "",
|
|
7
|
+
enable: !0,
|
|
8
|
+
visible: !0,
|
|
9
|
+
autoplay: !1,
|
|
10
|
+
loop: !0
|
|
11
|
+
},
|
|
12
|
+
confetti: !0
|
|
13
|
+
},
|
|
14
|
+
markdown: { lineNumbers: !0 },
|
|
15
|
+
vite: { ssr: { noExternal: [
|
|
16
|
+
"element-plus",
|
|
17
|
+
"canvas-confetti",
|
|
18
|
+
"@fuxishi/vitepress-theme"
|
|
19
|
+
] } }
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { e as default };
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import e from "vitepress/theme";
|
|
2
|
+
import { defineComponent as t, h as n, nextTick as r, provide as i } from "vue";
|
|
3
|
+
import { defineClientComponent as a, useData as o } from "vitepress";
|
|
4
|
+
//#region .vitepress/components/FxLayout.ts
|
|
5
|
+
var s = t({ setup(t, { slots: s }) {
|
|
6
|
+
let c = s, { Layout: l } = e, { site: u, isDark: d } = o(), f = u.value.themeConfig;
|
|
7
|
+
i("toggle-appearance", async ({ clientX: e, clientY: t }) => {
|
|
8
|
+
if (!("startViewTransition" in document)) {
|
|
9
|
+
d.value = !d.value;
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
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)`];
|
|
13
|
+
await document.startViewTransition(async () => {
|
|
14
|
+
d.value = !d.value, await r();
|
|
15
|
+
}).ready, document.documentElement.animate({ clipPath: d.value ? n.reverse() : n }, {
|
|
16
|
+
duration: 400,
|
|
17
|
+
easing: "ease-in-out",
|
|
18
|
+
fill: "forwards",
|
|
19
|
+
pseudoElement: `::view-transition-${d.value ? "old" : "new"}(root)`
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
let p = f.musicBall?.enable && (f.musicBall?.src || f.musicBall?.list?.length > 0), m = a(() => import("./chunk/FxMusicBall-B_F7Q9VQ.js"), [{ style: { display: f.musicBall && f.musicBall.visible ? "" : "none" } }]), h = a(() => import("./chunk/FxHomeFeatureBefore-C2KseNb3.js")), g = a(() => import("./chunk/FxConfetti-DIy1zU6g.js"));
|
|
23
|
+
return () => [
|
|
24
|
+
n(l, null, {
|
|
25
|
+
...s,
|
|
26
|
+
"home-features-before": () => [n(h), c["home-features-before"]?.()]
|
|
27
|
+
}),
|
|
28
|
+
p && n(m),
|
|
29
|
+
f.confetti && n(g)
|
|
30
|
+
];
|
|
31
|
+
} }), c = {
|
|
32
|
+
extends: { ...e },
|
|
33
|
+
Layout: s,
|
|
34
|
+
enhanceApp({}) {}
|
|
35
|
+
};
|
|
36
|
+
//#endregion
|
|
37
|
+
export { c as default };
|
package/dist/style.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:root{--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}::selection{color:#fff;background-color:#fe7300}.dark ::selection{color:#efefef;background-color:#692f00}@property --anix{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes rotatingx{0%{--anix:0deg}to{--anix:360deg}}@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{background-color:#f9f9f9;width:10px}::-webkit-scrollbar-track{background:#f6f6f7;border-radius:10px}::-webkit-scrollbar-thumb{background-color:#c1c1c1;border:2px solid #fff;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.vp-doc h1{-webkit-text-decoration-color:var(--decoration-color-blue);text-decoration-color:var(--decoration-color-blue);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 h2{-webkit-text-decoration-color:var(--decoration-color-yellow);text-decoration-color:var(--decoration-color-yellow);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 h3{-webkit-text-decoration-color:var(--decoration-color-green);text-decoration-color:var(--decoration-color-green);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 h4{-webkit-text-decoration-color:var(--decoration-color-red);text-decoration-color:var(--decoration-color-red);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 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:1px dashed #2b2b2b;border-radius:5px;margin-top:10px}.dark .vp-doc .vp-code-group .tabs{border-top:2px!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){border-top:2px solid #0000}.dark .vp-doc .vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme):hover{background-clip:border-box;background:conic-gradient(from var(--anix), #0f0, #ff0, #0ff, #f0f, #0ff);opacity:.99;border-color:#0000;animation:2s linear infinite reverse rotatingx}.dark .vp-doc .vp-adaptive-theme:before{content:" ";z-index:-1;background:#121212;border-radius:8px;width:100%;height:100%;position:absolute;top:0;left:0}.dark ::-webkit-scrollbar{background-color:#1b1b1f;width:12px}.dark ::-webkit-scrollbar-track{background:#161618;border-radius:10px}.dark ::-webkit-scrollbar-thumb{background-color:#2b2b2b;border:2px solid #2c2c2c;border-radius:10px}.dark ::-webkit-scrollbar-thumb:hover{background:#202020}.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;inset:0;background-color:#222c;border-radius:10px;display:block;position:absolute;inset:2px}.dark .VPHomeFeatures .VPFeature>.box{z-index:1;position:relative}::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}pre.vp-code{padding-top:30px!important}.line-numbers-mode.vp-adaptive-theme:after{content:" ";background-color:#ff5f56;border-radius:7px;width:12px;height:12px;display:block;position:absolute;top:12px;left:55px;box-shadow:0 0 5px #0003}.line-numbers-mode.vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme) code:before{content:" ";background-color:#ffbd2e;border-radius:7px;width:12px;height:12px;display:block;position:absolute;top:12px;left:43px;box-shadow:0 0 5px #0003}.line-numbers-mode.vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme) code:after{content:" ";background-color:#27c93f;border-radius:7px;width:12px;height:12px;display:block;position:absolute;top:12px;left:63px;box-shadow:0 0 5px #0003}.vp-adaptive-theme:after{content:" ";background-color:#ff5f56;border-radius:7px;width:12px;height:12px;display:block;position:absolute;top:12px;left:24px;box-shadow:0 0 5px #0003}.vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme) code:before{content:" ";background-color:#ffbd2e;border-radius:7px;width:12px;height:12px;display:block;position:absolute;top:12px;left:43px;box-shadow:0 0 5px #0003}.vp-adaptive-theme:not(.vp-code-group .vp-adaptive-theme) code:after{content:" ";background-color:#27c93f;border-radius:7px;width:12px;height:12px;display:block;position:absolute;top:12px;left:63px;box-shadow:0 0 5px #0003}: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}@font-face{font-family:iconfont;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI9HkxfAAABjAAAAGBjbWFwoxO64gAAAgQAAAHAZ2x5ZirYg8gAAAPUAAACDGhlYWQn1QnxAAAA4AAAADZoaGVhB94DhwAAALwAAAAkaG10eBgAAAAAAAHsAAAAGGxvY2EByAE8AAADxAAAAA5tYXhwARQANgAAARgAAAAgbmFtZRCjPLAAAAXgAAACZ3Bvc3QWJBo5AAAISAAAAGYAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAAAYAAQAAAAEAACRsBBhfDzz1AAsEAAAAAADiW2L6AAAAAOJbYvoAAAAABAADAAAAAAgAAgAAAAAAAAABAAAABgAqAAQAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQEAAGQAAUAAAKJAswAAACPAokCzAAAAesAMgEIAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOcJ6Y8DgP+AAAAD3ACAAAAAAQAAAAAAAAAAAAAAAAACBAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAABQAAAAMAAAAsAAAABAAAAXQAAQAAAAAAbgADAAEAAAAsAAMACgAAAXQABABCAAAACgAIAAIAAucJ50/paumP//8AAOcJ50/paemP//8AAAAAAAAAAAABAAoACgAKAAwAAAAFAAEAAgADAAQAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAEwAAAAAAAAABQAA5wkAAOcJAAAABQAA508AAOdPAAAAAQAA6WkAAOlpAAAAAgAA6WoAAOlqAAAAAwAA6Y8AAOmPAAAABAAAAAAAIABoAKIA1AEGAAAAAQAAAAADQALkAA8AAAkBLgEOARURFB4BMjcBNjQDMf4ABxIPCQkPEQgCAA8BmwFEBAEIEAj9eAgPCQUBRAkkAAQAAAAAA4EDAAAGABYAJgApAAABNCYnFRc2NxQHFzY1NCcuAScVHgEXFgEHFyMRMxcRFwYHFTY3FzcBBxcCwDoxaQJrF0AsJyeIVT5hGxz9izbKyqvVti4zWEZXNv6AWVkBgDhcGF9oDQ45OEBTXlpQTWwTWBJUOjwBPjbK/wDVAR+2Iw9YFDlXNgKfWVkAAAMAAAAAA4AC9wAFAAwAIAAAExEzFxEHBTQmJxE+AQMVHgEXFhQHDgEHFT4BNzY0Jy4BgKvV1QGVOjExOms+YRscHBthPlWIJycnJ4gCAP8A1QKq1YA4XBj+qBhcAa5YElQ6PIQ8OlQSWBNsTVC0UE1sAAAAAgAAAAAC1gKBAA8AHwAAAREOASsBIiY1ETQ2OwEyFiUjIgYHER4BOwEyNjURNCYBqwESDUAOEhIOQA0SAQtADRIBARINQA4SEgJg/kANExMNAcANExMTEw3+QA0TEw0BwA0TAAQAAAAAA6sDAAADAAcACwAdAAATIRUhFSEVIRUzFSMBES4BIyIOARQeATI+ATURMzWAAYD+gAGA/oDR0QJVGUQjOmI5OWJ1YjmAAwBVVlVVVgGA/l4QEi5OXU4uLk4vAdVVAAAAABIA3gABAAAAAAAAABMAAAABAAAAAAABAAgAEwABAAAAAAACAAcAGwABAAAAAAADAAgAIgABAAAAAAAEAAgAKgABAAAAAAAFAAsAMgABAAAAAAAGAAgAPQABAAAAAAAKACsARQABAAAAAAALABMAcAADAAEECQAAACYAgwADAAEECQABABAAqQADAAEECQACAA4AuQADAAEECQADABAAxwADAAEECQAEABAA1wADAAEECQAFABYA5wADAAEECQAGABAA/QADAAEECQAKAFYBDQADAAEECQALACYBY0NyZWF0ZWQgYnkgaWNvbmZvbnRpY29uZm9udFJlZ3VsYXJpY29uZm9udGljb25mb250VmVyc2lvbiAxLjBpY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAcgBlAGEAdABlAGQAIABiAHkAIABpAGMAbwBuAGYAbwBuAHQAaQBjAG8AbgBmAG8AbgB0AFIAZQBnAHUAbABhAHIAaQBjAG8AbgBmAG8AbgB0AGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbgBmAG8AbgB0AEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAQIBAwEEAQUBBgEHAAhwbGF5ZmlsbA1pY192b2x1bWVfb2ZmDGljX3ZvbHVtZV91cAVwYXVzZQptdXNpY19saXN0AAAAAA==)format("truetype")}.iconfont{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;font-style:normal;font-family:iconfont!important}.icon-playfill:before{content:""}.icon-ic_volume_off:before{content:""}.icon-ic_volume_up:before{content:""}.icon-pause:before{content:""}.icon-music_list:before{content:""}.fx-music-ball{--fx-music-accent-start:#bd34fe;--fx-music-accent-end:#41d1ff;--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:#41d1ff;--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 #bd34fe26;--fx-music-text:#ffffffb3;--fx-music-text-muted:#fff6;--fx-music-slider-track:#ffffff1a;--fx-music-slider-thumb:#41d1ff;--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 .4s cubic-bezier(.34,1.56,.64,1) .1s;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;left:0;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{pointer-events:none;border:1.5px solid #bd34fe66;border-color:#bd34fe66 #41d1ff33 #0000 #0000;border-radius:50%;animation:3s linear infinite orbit-spin;position:absolute;inset:-4px}.dark .fx-music-ball .fx-orbit-ring{filter:drop-shadow(0 0 4px #bd34fe4d);border-top-color:#bd34fe99;border-right-color:#41d1ff4d}@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 .iconfont{color:var(--fx-music-text);font-size:20px}.fx-music-ball .icon-pause{font-size:26px}.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:#bd34fe1a}.dark .fx-music-ball .fx-play-pause:hover{background-color:#bd34fe26}.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}.el-slider__button{--el-slider-button-size:15px}.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);position:relative;top:-1px;box-shadow:0 0 6px #41d1ff4d}.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 .icon-ic_volume_up,.fx-music-ball .icon-ic_volume_off{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 #bd34fe4d)}50%{filter:drop-shadow(0 0 6px #41d1ff99)}}.fx-music-ball.is-playing:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#bd34fe14 0%,#0000 40%,#41d1ff14 60%,#0000 100%) 0 0/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 #bd34fe26,0 0 24px #41d1ff14}.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.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
|
+
/*$vite$:1*/
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fuxishi/vitepress-theme",
|
|
3
|
+
"displayName": "@fuxishi/vitepress-theme",
|
|
4
|
+
"private": false,
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"description": "A beautiful VitePress theme for fx-core documentation.",
|
|
8
|
+
"keywords": [
|
|
9
|
+
"vitepress",
|
|
10
|
+
"theme",
|
|
11
|
+
"vitepress-theme",
|
|
12
|
+
"fuxishi",
|
|
13
|
+
"fx-core"
|
|
14
|
+
],
|
|
15
|
+
"type": "module",
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"main": "./dist/index.js",
|
|
20
|
+
"module": "./dist/index.js",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"import": {
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"default": "./dist/index.js"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"./config": {
|
|
29
|
+
"import": {
|
|
30
|
+
"types": "./dist/config.d.ts",
|
|
31
|
+
"default": "./dist/config.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"./style.css": {
|
|
35
|
+
"import": "./dist/style.css"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "vite build",
|
|
40
|
+
"dev": "vite build --watch"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"canvas-confetti": "^1.9.4",
|
|
44
|
+
"element-plus": "^2.9.7"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/canvas-confetti": "^1.9.0",
|
|
48
|
+
"@vitejs/plugin-vue": "^6.0.5",
|
|
49
|
+
"typescript": "^6.0.2",
|
|
50
|
+
"vite": "^8.0.3",
|
|
51
|
+
"vitepress": "^1.6.4",
|
|
52
|
+
"vue": "^3.5.31"
|
|
53
|
+
},
|
|
54
|
+
"peerDependencies": {
|
|
55
|
+
"vitepress": "^1.6.4",
|
|
56
|
+
"vue": "^3.5.31"
|
|
57
|
+
}
|
|
58
|
+
}
|