@robot-admin/naive-ui-components 0.6.8 → 0.6.11
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 +277 -261
- package/dist/C_AudioPlayer-DKRIGhi7.css.map +1 -0
- package/dist/C_AudioPlayer-DlB6eNsa.css.map +1 -0
- package/dist/C_AudioPlayer.cjs +1 -0
- package/dist/C_AudioPlayer.css +283 -0
- package/dist/C_AudioPlayer.d.cts +2 -0
- package/dist/C_AudioPlayer.d.ts +2 -0
- package/dist/C_AudioPlayer.js +1 -0
- package/dist/C_AudioPlayer.js.map +1 -0
- package/dist/C_AudioPlayer2.js +2 -0
- package/dist/C_AudioPlayer2.js.map +1 -0
- package/dist/C_AvatarGroup-D02zci-i.css.map +1 -0
- package/dist/C_AvatarGroup-DatHaUlY.css.map +1 -0
- package/dist/C_AvatarGroup.cjs +1 -0
- package/dist/C_AvatarGroup.css +107 -0
- package/dist/C_AvatarGroup.d.cts +2 -0
- package/dist/C_AvatarGroup.d.ts +2 -0
- package/dist/C_AvatarGroup.js +1 -0
- package/dist/C_AvatarGroup.js.map +1 -0
- package/dist/C_AvatarGroup2.js +2 -0
- package/dist/C_AvatarGroup2.js.map +1 -0
- package/dist/C_Barcode.d.cts +1 -1
- package/dist/C_Barcode.d.ts +1 -1
- package/dist/{C_Breadcrumb-B5PGpP5m.css.map → C_Breadcrumb-BiH0d9AI.css.map} +1 -1
- package/dist/{C_Breadcrumb-Cay7qluL.css.map → C_Breadcrumb-Bqqrl8nX.css.map} +1 -1
- package/dist/C_Breadcrumb.css +8 -2
- package/dist/C_Breadcrumb.d.cts +1 -1
- package/dist/C_Breadcrumb.d.ts +1 -1
- package/dist/C_Breadcrumb.js.map +1 -1
- package/dist/C_Breadcrumb2.js.map +1 -1
- package/dist/C_Captcha.d.cts +1 -1
- package/dist/C_Captcha.d.ts +1 -1
- package/dist/C_Cascade.d.cts +1 -1
- package/dist/C_Cascade.d.ts +1 -1
- package/dist/C_Chat-CcjZdAwu.css.map +1 -0
- package/dist/C_Chat-Diq7tyWU.css.map +1 -0
- package/dist/C_Chat.cjs +1 -0
- package/dist/C_Chat.css +395 -0
- package/dist/C_Chat.d.cts +2 -0
- package/dist/C_Chat.d.ts +2 -0
- package/dist/C_Chat.js +1 -0
- package/dist/C_Chat.js.map +1 -0
- package/dist/C_Chat2.js +2 -0
- package/dist/C_Chat2.js.map +1 -0
- package/dist/C_City.d.cts +1 -1
- package/dist/C_City.d.ts +1 -1
- package/dist/C_Code.d.cts +1 -1
- package/dist/C_Code.d.ts +1 -1
- package/dist/C_ContextMenu-B3Cgz_wJ.css.map +1 -0
- package/dist/C_ContextMenu-u1LixF3_.css.map +1 -0
- package/dist/C_ContextMenu.cjs +1 -0
- package/dist/C_ContextMenu.css +115 -0
- package/dist/C_ContextMenu.d.cts +2 -0
- package/dist/C_ContextMenu.d.ts +2 -0
- package/dist/C_ContextMenu.js +1 -0
- package/dist/C_ContextMenu.js.map +1 -0
- package/dist/C_ContextMenu2.js +2 -0
- package/dist/C_ContextMenu2.js.map +1 -0
- package/dist/C_Date.d.cts +1 -1
- package/dist/C_Date.d.ts +1 -1
- package/dist/C_Editor.d.cts +1 -1
- package/dist/C_Editor.d.ts +1 -1
- package/dist/C_Guide.d.cts +1 -1
- package/dist/C_Guide.d.ts +1 -1
- package/dist/C_Icon.d.cts +1 -1
- package/dist/C_Icon.d.ts +1 -1
- package/dist/C_Icon.js.map +1 -1
- package/dist/C_Icon2.js +1 -1
- package/dist/C_Icon2.js.map +1 -1
- package/dist/C_Language.d.cts +1 -1
- package/dist/C_Language.d.ts +1 -1
- package/dist/C_Language.js.map +1 -1
- package/dist/C_Language2.js +1 -1
- package/dist/C_Language2.js.map +1 -1
- package/dist/C_Login-BkdnkBKX.css.map +1 -0
- package/dist/C_Login-VkMM6OJ2.css.map +1 -0
- package/dist/C_Login.cjs +1 -0
- package/dist/C_Login.css +515 -0
- package/dist/C_Login.d.cts +2 -0
- package/dist/C_Login.d.ts +2 -0
- package/dist/C_Login.js +1 -0
- package/dist/C_Login.js.map +1 -0
- package/dist/C_Login2.js +2 -0
- package/dist/C_Login2.js.map +1 -0
- package/dist/C_Markdown.d.cts +1 -1
- package/dist/C_Markdown.d.ts +1 -1
- package/dist/C_Menu.d.cts +1 -1
- package/dist/C_Menu.d.ts +1 -1
- package/dist/C_Progress.d.cts +1 -1
- package/dist/C_Progress.d.ts +1 -1
- package/dist/C_Steps.d.cts +1 -1
- package/dist/C_Steps.d.ts +1 -1
- package/dist/C_TagsView.d.cts +1 -1
- package/dist/C_TagsView.d.ts +1 -1
- package/dist/C_Theme.d.cts +1 -1
- package/dist/C_Theme.d.ts +1 -1
- package/dist/C_Timeline-BIvw3f41.css.map +1 -0
- package/dist/C_Timeline-VsDfCv4Q.css.map +1 -0
- package/dist/C_Timeline.cjs +1 -0
- package/dist/C_Timeline.css +271 -0
- package/dist/C_Timeline.d.cts +2 -0
- package/dist/C_Timeline.d.ts +2 -0
- package/dist/C_Timeline.js +1 -0
- package/dist/C_Timeline.js.map +1 -0
- package/dist/C_Timeline2.js +2 -0
- package/dist/C_Timeline2.js.map +1 -0
- package/dist/C_Transfer-BOB6OBqS.css.map +1 -0
- package/dist/C_Transfer-Dpq7ezWC.css.map +1 -0
- package/dist/C_Transfer.cjs +1 -0
- package/dist/C_Transfer.css +193 -0
- package/dist/C_Transfer.d.cts +2 -0
- package/dist/C_Transfer.d.ts +2 -0
- package/dist/C_Transfer.js +1 -0
- package/dist/C_Transfer.js.map +1 -0
- package/dist/C_Transfer2.js +2 -0
- package/dist/C_Transfer2.js.map +1 -0
- package/dist/C_VtableGantt.d.cts +1 -1
- package/dist/C_VtableGantt.d.ts +1 -1
- package/dist/constants.d.ts +2 -2
- package/dist/constants2.d.ts +2 -2
- package/dist/constants4.d.ts +3 -3
- package/dist/constants5.d.ts +2 -2
- package/dist/data.d.ts +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +48 -41
- package/dist/index.d.ts +48 -41
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.vue.d.ts +1 -1
- package/dist/index10.vue.d.ts +41 -23
- package/dist/index11.vue.d.ts +80 -63
- package/dist/index12.vue.d.ts +48 -20
- package/dist/index13.vue.d.ts +23 -63
- package/dist/index14.vue.d.ts +21 -58
- package/dist/index15.vue.d.ts +65 -48
- package/dist/index16.vue.d.ts +16 -21
- package/dist/index17.vue.d.ts +106 -77
- package/dist/index18.vue.d.ts +74 -11
- package/dist/index19.vue.d.ts +58 -653
- package/dist/index2.vue.d.ts +75 -30
- package/dist/index20.vue.d.ts +55 -0
- package/dist/index21.vue.d.ts +33 -0
- package/dist/index22.vue.d.ts +88 -0
- package/dist/index23.vue.d.ts +18 -0
- package/dist/index24.vue.d.ts +112 -0
- package/dist/index25.vue.d.ts +81 -0
- package/dist/index26.vue.d.ts +662 -0
- package/dist/index3.vue.d.ts +77 -19
- package/dist/index4.vue.d.ts +29 -36
- package/dist/index5.vue.d.ts +19 -20
- package/dist/index6.vue.d.ts +36 -26
- package/dist/index7.vue.d.ts +23 -40
- package/dist/index8.vue.d.ts +117 -45
- package/dist/index9.vue.d.ts +19 -25
- package/dist/resolver.cjs +1 -1
- package/dist/resolver.cjs.map +1 -1
- package/dist/resolver.d.cts +1 -1
- package/dist/resolver.d.ts +1 -1
- package/dist/resolver.js +1 -1
- package/dist/resolver.js.map +1 -1
- package/dist/style.css +1920 -21
- package/dist/useCollapsePanel.d.ts +1 -1
- package/dist/useCropperCore.d.ts +4 -4
- package/dist/useDraggableLayout.d.ts +8 -8
- package/dist/useDynamicFormState.d.ts +10 -10
- package/dist/useEdgeInteraction.d.ts +1 -1
- package/dist/useInfiniteScroll.d.ts +2 -2
- package/dist/useModalEdit.d.ts +2 -2
- package/dist/useQRCode.d.ts +4 -4
- package/dist/useSearchState.d.ts +2 -2
- package/dist/useSignatureHistory.d.ts +1 -1
- package/dist/useSplitResize.d.ts +5 -5
- package/dist/useTimeSelection.d.ts +2 -2
- package/dist/useTreeOperations.d.ts +6 -6
- package/dist/useWorkflowValidation.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,261 +1,277 @@
|
|
|
1
|
-
# @agile-team/naive-ui-components
|
|
2
|
-
|
|
3
|
-
基于 **Naive UI** 的 Vue 3 企业级组件库,从 Robot Admin 中提炼的
|
|
4
|
-
|
|
5
|
-
支持 **全量注册**、**按需导入(Tree-Shaking)** 和 **子路径独立导入**,配合多入口构建输出 ESM / CJS / DTS,满足不同集成场景。
|
|
6
|
-
|
|
7
|
-
## 📦 安装
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
bun add @agile-team/naive-ui-components
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
必需的对等依赖:
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
bun add vue@^3.5.0 naive-ui@^2.35.0
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## 🚀 快速开始
|
|
20
|
-
|
|
21
|
-
### 全局注册
|
|
22
|
-
|
|
23
|
-
```typescript
|
|
24
|
-
import { createApp } from 'vue'
|
|
25
|
-
import NaiveUIComponents from '@agile-team/naive-ui-components'
|
|
26
|
-
import '@agile-team/naive-ui-components/style.css'
|
|
27
|
-
|
|
28
|
-
const app = createApp(App)
|
|
29
|
-
app.use(NaiveUIComponents)
|
|
30
|
-
app.mount('#app')
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### 按需导入(主入口 Tree-Shaking)
|
|
34
|
-
|
|
35
|
-
```vue
|
|
36
|
-
<script setup lang="ts">
|
|
37
|
-
import { C_Icon, C_Table, C_Form } from '@agile-team/naive-ui-components'
|
|
38
|
-
import '@agile-team/naive-ui-components/style.css'
|
|
39
|
-
</script>
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### 子路径独立导入(推荐,最小打包体积)
|
|
43
|
-
|
|
44
|
-
每个组件都提供独立的子路径入口,仅加载目标组件的代码和类型:
|
|
45
|
-
|
|
46
|
-
```vue
|
|
47
|
-
<script setup lang="ts">
|
|
48
|
-
import { C_Form } from '@agile-team/naive-ui-components/C_Form'
|
|
49
|
-
import { C_Table } from '@agile-team/naive-ui-components/C_Table'
|
|
50
|
-
import { C_Icon } from '@agile-team/naive-ui-components/C_Icon'
|
|
51
|
-
import '@agile-team/naive-ui-components/style.css'
|
|
52
|
-
</script>
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
> 子路径导入提供完整的 TypeScript 类型支持(`.d.ts`),IDE 可自动补全 props / emits / slots。
|
|
56
|
-
|
|
57
|
-
### Composables 单独使用
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
import {
|
|
61
|
-
useTableManager,
|
|
62
|
-
useFormState,
|
|
63
|
-
usePlayerCore,
|
|
64
|
-
} from '@agile-team/naive-ui-components'
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## 📋 组件清单(
|
|
68
|
-
|
|
69
|
-
> 💡 所有组件均提供 **在线交互演示**,访问 [组件文档](https://www.tzagileteam.com/robot/components/preface) 可直接在页面中体验真实效果(通过 iframe 嵌入 Robot Admin 生产环境)。
|
|
70
|
-
|
|
71
|
-
### 基础组件
|
|
72
|
-
|
|
73
|
-
| 组件
|
|
74
|
-
|
|
|
75
|
-
| `C_Icon`
|
|
76
|
-
| `C_Code`
|
|
77
|
-
| `C_Barcode`
|
|
78
|
-
| `C_Captcha`
|
|
79
|
-
| `C_Cascade`
|
|
80
|
-
| `C_Guide`
|
|
81
|
-
| `C_Progress`
|
|
82
|
-
| `C_Steps`
|
|
83
|
-
| `C_ActionBar`
|
|
84
|
-
| `C_Theme`
|
|
85
|
-
| `C_Language`
|
|
86
|
-
| `C_Date`
|
|
87
|
-
| `C_City`
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
| `
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
|
103
|
-
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
| `
|
|
110
|
-
| `
|
|
111
|
-
| `
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
|
116
|
-
|
|
|
117
|
-
| `
|
|
118
|
-
| `
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
|
123
|
-
|
|
|
124
|
-
| `
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
|
129
|
-
|
|
|
130
|
-
| `
|
|
131
|
-
| `
|
|
132
|
-
| `
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
│
|
|
224
|
-
├──
|
|
225
|
-
│ ├──
|
|
226
|
-
│
|
|
227
|
-
│ ├──
|
|
228
|
-
│
|
|
229
|
-
│
|
|
230
|
-
├──
|
|
231
|
-
│
|
|
232
|
-
├──
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
1
|
+
# @agile-team/naive-ui-components
|
|
2
|
+
|
|
3
|
+
基于 **Naive UI** 的 Vue 3 企业级组件库,从 Robot Admin 中提炼的 49 个高质量业务组件。
|
|
4
|
+
|
|
5
|
+
支持 **全量注册**、**按需导入(Tree-Shaking)** 和 **子路径独立导入**,配合多入口构建输出 ESM / CJS / DTS,满足不同集成场景。
|
|
6
|
+
|
|
7
|
+
## 📦 安装
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
bun add @agile-team/naive-ui-components
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
必需的对等依赖:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
bun add vue@^3.5.0 naive-ui@^2.35.0
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 🚀 快速开始
|
|
20
|
+
|
|
21
|
+
### 全局注册
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { createApp } from 'vue'
|
|
25
|
+
import NaiveUIComponents from '@agile-team/naive-ui-components'
|
|
26
|
+
import '@agile-team/naive-ui-components/style.css'
|
|
27
|
+
|
|
28
|
+
const app = createApp(App)
|
|
29
|
+
app.use(NaiveUIComponents)
|
|
30
|
+
app.mount('#app')
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 按需导入(主入口 Tree-Shaking)
|
|
34
|
+
|
|
35
|
+
```vue
|
|
36
|
+
<script setup lang="ts">
|
|
37
|
+
import { C_Icon, C_Table, C_Form } from '@agile-team/naive-ui-components'
|
|
38
|
+
import '@agile-team/naive-ui-components/style.css'
|
|
39
|
+
</script>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 子路径独立导入(推荐,最小打包体积)
|
|
43
|
+
|
|
44
|
+
每个组件都提供独立的子路径入口,仅加载目标组件的代码和类型:
|
|
45
|
+
|
|
46
|
+
```vue
|
|
47
|
+
<script setup lang="ts">
|
|
48
|
+
import { C_Form } from '@agile-team/naive-ui-components/C_Form'
|
|
49
|
+
import { C_Table } from '@agile-team/naive-ui-components/C_Table'
|
|
50
|
+
import { C_Icon } from '@agile-team/naive-ui-components/C_Icon'
|
|
51
|
+
import '@agile-team/naive-ui-components/style.css'
|
|
52
|
+
</script>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
> 子路径导入提供完整的 TypeScript 类型支持(`.d.ts`),IDE 可自动补全 props / emits / slots。
|
|
56
|
+
|
|
57
|
+
### Composables 单独使用
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
import {
|
|
61
|
+
useTableManager,
|
|
62
|
+
useFormState,
|
|
63
|
+
usePlayerCore,
|
|
64
|
+
} from '@agile-team/naive-ui-components'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 📋 组件清单(49 个)
|
|
68
|
+
|
|
69
|
+
> 💡 所有组件均提供 **在线交互演示**,访问 [组件文档](https://www.tzagileteam.com/robot/components/preface) 可直接在页面中体验真实效果(通过 iframe 嵌入 Robot Admin 生产环境)。
|
|
70
|
+
|
|
71
|
+
### 基础组件
|
|
72
|
+
|
|
73
|
+
| 组件 | 说明 | 外部依赖 |
|
|
74
|
+
| ---------------- | ---------------- | --------------------------- |
|
|
75
|
+
| `C_Icon` | Iconify 图标封装 | `@iconify/vue` |
|
|
76
|
+
| `C_Code` | 代码高亮显示 | `highlight.js` |
|
|
77
|
+
| `C_Barcode` | 条形码生成器 | `@chenfengyuan/vue-barcode` |
|
|
78
|
+
| `C_Captcha` | 拼图验证码 | `vue3-puzzle-vcode` |
|
|
79
|
+
| `C_Cascade` | 级联面板选择器 | - |
|
|
80
|
+
| `C_Guide` | 新手引导 | `driver.js` |
|
|
81
|
+
| `C_Progress` | 增强进度条 | - |
|
|
82
|
+
| `C_Steps` | 步骤条 | - |
|
|
83
|
+
| `C_ActionBar` | 操作按钮栏 | - |
|
|
84
|
+
| `C_Theme` | 主题切换器 | - |
|
|
85
|
+
| `C_Language` | 语言切换器 | - |
|
|
86
|
+
| `C_Date` | 日期选择器增强 | - |
|
|
87
|
+
| `C_City` | 省市区三级联动 | - |
|
|
88
|
+
| `C_Breadcrumb` | 面包屑导航 | - |
|
|
89
|
+
| `C_Menu` | 导航菜单 | - |
|
|
90
|
+
| `C_TagsView` | 标签页导航 | - |
|
|
91
|
+
| `C_GlobalSearch` | 全局搜索面板 | - |
|
|
92
|
+
| `C_AvatarGroup` | 头像组合展示 | - |
|
|
93
|
+
|
|
94
|
+
### 内容 & 编辑组件
|
|
95
|
+
|
|
96
|
+
| 组件 | 说明 | 外部依赖 |
|
|
97
|
+
| ----------------- | -------------------- | -------------------- |
|
|
98
|
+
| `C_Editor` | 富文本编辑器 | `@wangeditor/editor` |
|
|
99
|
+
| `C_Markdown` | Markdown 编辑器/预览 | `@kangc/v-md-editor` |
|
|
100
|
+
| `C_FormulaEditor` | 公式编辑器 | `expr-eval` |
|
|
101
|
+
| `C_Signature` | 电子签名 | - |
|
|
102
|
+
| `C_QRCode` | 二维码生成器 | `qrcode` |
|
|
103
|
+
| `C_ImageCropper` | 图片裁剪器 | `vue-cropper` |
|
|
104
|
+
|
|
105
|
+
### 数据展示组件
|
|
106
|
+
|
|
107
|
+
| 组件 | 说明 | 外部依赖 |
|
|
108
|
+
| ---------------- | ----------------------------------------- | ------------------------------------ |
|
|
109
|
+
| `C_Table` | 高级数据表格(CRUD/行列编辑/动态行/打印) | `print-js`、`html2canvas` |
|
|
110
|
+
| `C_Map` | 地图组件(OSM/高德) | `leaflet` |
|
|
111
|
+
| `C_VtableGantt` | 甘特图 | `@visactor/vtable-gantt` |
|
|
112
|
+
| `C_AntV` | 图编辑器(ER/BPMN/UML) | `@antv/x6`、`html2canvas` |
|
|
113
|
+
| `C_WaterFall` | 瀑布流布局 | - |
|
|
114
|
+
| `C_FullCalendar` | 日历事件 | `@fullcalendar/*` |
|
|
115
|
+
| `C_VideoPlayer` | 视频播放器(HLS/字幕/书签/章节) | `xgplayer`、`xgplayer-hls` |
|
|
116
|
+
| `C_AudioPlayer` | 音频播放器(波形/进度/播放列表) | - |
|
|
117
|
+
| `C_FilePreview` | 文件预览(PDF/Word/Excel) | `xlsx`、`mammoth`、`@tato30/vue-pdf` |
|
|
118
|
+
| `C_Timeline` | 时间线(垂直/水平/可折叠) | - |
|
|
119
|
+
|
|
120
|
+
### 表单 & 布局组件
|
|
121
|
+
|
|
122
|
+
| 组件 | 说明 | 外部依赖 |
|
|
123
|
+
| ----------------- | ------------------------------------------------- | ---------------------------- |
|
|
124
|
+
| `C_Form` | 动态表单引擎(Grid/Tabs/Steps/Card/Dynamic 布局) | `@robot-admin/form-validate` |
|
|
125
|
+
| `C_FormSearch` | 搜索表单 | - |
|
|
126
|
+
| `C_CollapsePanel` | 折叠面板 | - |
|
|
127
|
+
| `C_SplitPane` | 分割面板 | - |
|
|
128
|
+
| `C_Draggable` | 拖拽排序 | `vue-draggable-plus` |
|
|
129
|
+
| `C_Tree` | 高级树形控件 | - |
|
|
130
|
+
| `C_Time` | 时间选择器增强 | - |
|
|
131
|
+
| `C_Cron` | Cron 表达式编辑器 | - |
|
|
132
|
+
| `C_Transfer` | 穿梭框(搜索/全选/批量操作) | - |
|
|
133
|
+
|
|
134
|
+
### 交互 & 业务组件
|
|
135
|
+
|
|
136
|
+
| 组件 | 说明 | 外部依赖 |
|
|
137
|
+
| --------------- | -------------------------------------- | -------- |
|
|
138
|
+
| `C_Chat` | 聊天组件(联系人/消息气泡/输入框) | - |
|
|
139
|
+
| `C_ContextMenu` | 右键菜单(嵌套子菜单/快捷键/危险操作) | - |
|
|
140
|
+
| `C_Login` | 登录组件(5种模式/验证码/记住密码) | - |
|
|
141
|
+
|
|
142
|
+
### 流程 & 通知组件
|
|
143
|
+
|
|
144
|
+
| 组件 | 说明 | 外部依赖 |
|
|
145
|
+
| ---------------------- | ------------------------------------ | ---------------- |
|
|
146
|
+
| `C_WorkFlow` | 工作流编辑器(审批/抄送/条件节点) | `@vue-flow/core` |
|
|
147
|
+
| `C_NotificationCenter` | 通知中心(WebSocket/轮询) | - |
|
|
148
|
+
| `C_Upload` | 大文件上传(分片/断点续传/哈希校验) | `spark-md5` |
|
|
149
|
+
|
|
150
|
+
## 🔌 可选依赖
|
|
151
|
+
|
|
152
|
+
包含外部依赖的组件以 `optionalDependencies` 声明。**按需安装**:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# 视频播放器
|
|
156
|
+
bun add xgplayer xgplayer-hls
|
|
157
|
+
|
|
158
|
+
# 图编辑器
|
|
159
|
+
bun add @antv/x6
|
|
160
|
+
|
|
161
|
+
# 工作流
|
|
162
|
+
bun add @vue-flow/core
|
|
163
|
+
|
|
164
|
+
# 文件预览
|
|
165
|
+
bun add xlsx mammoth @tato30/vue-pdf
|
|
166
|
+
|
|
167
|
+
# 表格打印
|
|
168
|
+
bun add print-js html2canvas
|
|
169
|
+
|
|
170
|
+
# 公式编辑器
|
|
171
|
+
bun add expr-eval
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## 🏗️ 构建架构
|
|
175
|
+
|
|
176
|
+
### 四阶段构建流水线
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
bun run build
|
|
180
|
+
├── 1. tsdown → 多入口打包(49 组件 ESM/CJS/DTS)
|
|
181
|
+
├── 2. sass CLI → 编译 global.scss → global-scss.css
|
|
182
|
+
├── 3. merge-css.js → 合并 SFC CSS + global SCSS → style.css
|
|
183
|
+
└── 4. gen-exports.js → 自动生成 package.json exports 映射
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### 技术要点
|
|
187
|
+
|
|
188
|
+
- **构建引擎**:[tsdown](https://github.com/rolldown/tsdown)(基于 Rolldown),49 个独立入口并行编译
|
|
189
|
+
- **SCSS 处理**:自定义 `scssTransformPlugin` 在 Rolldown 管线内编译 SFC SCSS,独立 Sass CLI 编译全局样式
|
|
190
|
+
- **CSS 合并**:构建后将分散的 per-chunk CSS 与 `global-scss.css` 合并为单一 `style.css`
|
|
191
|
+
- **类型导出**:统一 `export *` barrel 模式,自动生成完整 `.d.ts`
|
|
192
|
+
- **子路径导出**:`gen-exports.js` 自动扫描 `dist/` 并写入 `package.json` 的 `exports` 字段
|
|
193
|
+
- **导出冲突检测**:`check-export-conflicts.js` 确保组件间无命名冲突
|
|
194
|
+
|
|
195
|
+
### 输出产物
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
dist/
|
|
199
|
+
├── index.js / index.cjs / index.d.ts # 主入口
|
|
200
|
+
├── C_Form.js / C_Form.cjs / C_Form.d.ts # 子路径入口(49 组件)
|
|
201
|
+
├── style.css # 合并后的全量样式
|
|
202
|
+
└── [chunk].js # 共享代码块
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## 🔧 开发
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
bun install # 安装依赖
|
|
209
|
+
bun run dev # 开发模式(SCSS watch + tsdown watch)
|
|
210
|
+
bun run build # 完整构建
|
|
211
|
+
bun run build:scss # 仅编译全局 SCSS
|
|
212
|
+
bun run build:css # 仅合并 CSS
|
|
213
|
+
bun run build:exports # 仅生成 exports 映射
|
|
214
|
+
bun run check:exports # 检测导出命名冲突
|
|
215
|
+
bun run type-check # TypeScript 类型检查
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### 项目结构
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
naive-ui-components/
|
|
222
|
+
├── src/
|
|
223
|
+
│ ├── index.ts # 库入口(全量注册 + export * barrel)
|
|
224
|
+
│ ├── styles/
|
|
225
|
+
│ │ ├── variables.scss # CSS 变量 (--c-*)
|
|
226
|
+
│ │ └── global.scss # 自动生成的全局样式聚合(@forward barrel)
|
|
227
|
+
│ ├── components/
|
|
228
|
+
│ │ └── C_[Name]/
|
|
229
|
+
│ │ ├── index.vue # 组件主文件
|
|
230
|
+
│ │ ├── index.ts # Barrel 导出
|
|
231
|
+
│ │ ├── index.scss # 组件样式
|
|
232
|
+
│ │ ├── types.ts # 类型定义
|
|
233
|
+
│ │ ├── constants.ts # 常量
|
|
234
|
+
│ │ ├── data.ts # 静态数据
|
|
235
|
+
│ │ ├── composables/ # 组合式函数
|
|
236
|
+
│ │ ├── components/ # 子组件
|
|
237
|
+
│ │ └── layouts/ # 布局变体(C_Form/C_AntV)
|
|
238
|
+
│ ├── plugins/ # highlight.js 等插件
|
|
239
|
+
│ └── utils/ # 工具函数
|
|
240
|
+
├── scripts/
|
|
241
|
+
│ ├── gen-global-scss.js # 生成 global.scss(@forward barrel)
|
|
242
|
+
│ ├── watch-global-scss.js # 开发模式 SCSS 监听
|
|
243
|
+
│ ├── merge-css.js # 合并 CSS 产物
|
|
244
|
+
│ ├── gen-exports.js # 自动生成 package.json exports
|
|
245
|
+
│ └── check-export-conflicts.js # 导出命名冲突检测
|
|
246
|
+
├── types/
|
|
247
|
+
│ └── env.d.ts # .vue / .scss 模块声明
|
|
248
|
+
├── tsdown.config.ts # 构建配置(多入口 + SCSS 插件 + Vue 插件)
|
|
249
|
+
└── tsconfig.json
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### 添加新组件
|
|
253
|
+
|
|
254
|
+
1. 创建 `src/components/C_NewComponent/` 目录
|
|
255
|
+
2. 编写 `index.vue`、`index.ts`(barrel)、`types.ts`
|
|
256
|
+
3. 在 `src/index.ts` 中添加 `export * from './components/C_NewComponent'`
|
|
257
|
+
4. 运行 `bun run build`—构建脚本会自动生成子路径入口和 exports 映射
|
|
258
|
+
|
|
259
|
+
### 发布
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
bun run release:patch # 0.3.0 → 0.3.1
|
|
263
|
+
bun run release:minor # 0.3.0 → 0.4.0
|
|
264
|
+
bun run release:major # 0.3.0 → 1.0.0
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## 📄 许可证
|
|
268
|
+
|
|
269
|
+
MIT License
|
|
270
|
+
|
|
271
|
+
## 🔗 相关链接
|
|
272
|
+
|
|
273
|
+
- [组件在线文档(含交互演示)](https://www.tzagileteam.com/robot/components/preface)
|
|
274
|
+
- [Robot Admin 主项目](https://github.com/ChenyCHENYU/robot_admin)
|
|
275
|
+
- [Robot Admin 在线体验](https://www.robotadmin.cn)
|
|
276
|
+
- [GitHub](https://github.com/ChenyCHENYU/naive-ui-components)
|
|
277
|
+
- [NPM](https://www.npmjs.com/package/@agile-team/naive-ui-components)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"C_AudioPlayer-DKRIGhi7.css","names":[],"sources":["../src/components/C_AudioPlayer/index.vue?vue&type=style&index=0&scoped=3cb14639&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//**\n * C_AudioPlayer — 音频播放器样式\n */\n.c-audio-player[data-v-3cb14639] {\n --ap-bg: var(--card-color);\n --ap-border: var(--border-color);\n --ap-accent: var(--primary-color);\n --ap-text: var(--text-color-1);\n --ap-text-sub: var(--text-color-3);\n --ap-progress-bg: color-mix(in srgb, var(--primary-color) 15%, var(--border-color));\n --ap-progress-fill: var(--primary-color);\n display: flex;\n flex-direction: column;\n border-radius: 12px;\n border: 1px solid var(--ap-border);\n background: var(--ap-bg);\n overflow: hidden;\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);\n /* ======================== Now Playing ======================== */\n /* ======================== Progress ======================== */\n /* ======================== Controls ======================== */\n /* ======================== Volume ======================== */\n /* ======================== Playlist ======================== */\n /* ======================== Minimal Theme ======================== */\n}\n.c-audio-player__now-playing[data-v-3cb14639] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n}\n.c-audio-player__cover[data-v-3cb14639] {\n flex-shrink: 0;\n width: 72px;\n height: 72px;\n border-radius: 10px;\n overflow: hidden;\n background: color-mix(in srgb, var(--ap-accent) 10%, var(--ap-bg));\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n.c-audio-player__cover img[data-v-3cb14639] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.c-audio-player__cover-placeholder[data-v-3cb14639] {\n font-size: 32px;\n color: var(--ap-accent);\n opacity: 0.5;\n}\n.c-audio-player__info[data-v-3cb14639] {\n flex: 1;\n min-width: 0;\n}\n.c-audio-player__title[data-v-3cb14639] {\n font-size: 15px;\n font-weight: 600;\n color: var(--ap-text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.c-audio-player__artist[data-v-3cb14639] {\n font-size: 12px;\n color: var(--ap-text-sub);\n margin-top: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.c-audio-player__progress[data-v-3cb14639] {\n padding: 0 20px;\n}\n.c-audio-player__progress-bar[data-v-3cb14639] {\n position: relative;\n width: 100%;\n height: 6px;\n border-radius: 3px;\n background: var(--ap-progress-bg);\n cursor: pointer;\n transition: height 0.15s;\n}\n.c-audio-player__progress-bar[data-v-3cb14639]:hover {\n height: 8px;\n}\n.c-audio-player__progress-fill[data-v-3cb14639] {\n height: 100%;\n border-radius: 3px;\n background: var(--ap-progress-fill);\n position: relative;\n transition: width 0.1s linear;\n}\n.c-audio-player__progress-fill[data-v-3cb14639]::after {\n content: \"\";\n position: absolute;\n right: -5px;\n top: 50%;\n transform: translateY(-50%);\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--ap-accent);\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);\n opacity: 0;\n transition: opacity 0.15s;\n}\n.c-audio-player__progress-bar:hover .c-audio-player__progress-fill[data-v-3cb14639]::after {\n opacity: 1;\n}\n.c-audio-player__time[data-v-3cb14639] {\n display: flex;\n justify-content: space-between;\n font-size: 11px;\n color: var(--ap-text-sub);\n margin-top: 4px;\n padding-bottom: 4px;\n}\n.c-audio-player__controls[data-v-3cb14639] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px 20px;\n}\n.c-audio-player__ctrl-btn[data-v-3cb14639] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: var(--ap-text);\n cursor: pointer;\n border-radius: 50%;\n transition: background 0.2s, color 0.2s, transform 0.15s;\n}\n.c-audio-player__ctrl-btn[data-v-3cb14639]:hover {\n color: var(--ap-accent);\n background: color-mix(in srgb, var(--ap-accent) 10%, transparent);\n}\n.c-audio-player__ctrl-btn[data-v-3cb14639]:active {\n transform: scale(0.92);\n}\n.c-audio-player__ctrl-btn.is-mode[data-v-3cb14639] {\n font-size: 18px;\n width: 34px;\n height: 34px;\n}\n.c-audio-player__ctrl-btn.is-skip[data-v-3cb14639] {\n font-size: 22px;\n width: 38px;\n height: 38px;\n}\n.c-audio-player__ctrl-btn.is-play[data-v-3cb14639] {\n font-size: 28px;\n width: 48px;\n height: 48px;\n background: var(--ap-accent);\n color: #fff;\n}\n.c-audio-player__ctrl-btn.is-play[data-v-3cb14639]:hover {\n background: color-mix(in srgb, var(--ap-accent) 85%, #000);\n color: #fff;\n box-shadow: 0 2px 10px color-mix(in srgb, var(--ap-accent) 35%, transparent);\n}\n.c-audio-player__volume[data-v-3cb14639] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 20px 12px;\n justify-content: flex-end;\n}\n.c-audio-player__volume-icon[data-v-3cb14639] {\n font-size: 18px;\n color: var(--ap-text-sub);\n cursor: pointer;\n}\n.c-audio-player__volume-icon[data-v-3cb14639]:hover {\n color: var(--ap-accent);\n}\n.c-audio-player__volume-slider[data-v-3cb14639] {\n width: 100px;\n}\n.c-audio-player__playlist[data-v-3cb14639] {\n border-top: 1px solid var(--ap-border);\n max-height: 260px;\n overflow-y: auto;\n}\n.c-audio-player__playlist-header[data-v-3cb14639] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 20px;\n font-size: 12px;\n font-weight: 600;\n color: var(--ap-text-sub);\n background: color-mix(in srgb, var(--ap-accent) 4%, var(--ap-bg));\n border-bottom: 1px solid var(--ap-border);\n position: sticky;\n top: 0;\n z-index: 1;\n}\n.c-audio-player__track[data-v-3cb14639] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 20px;\n cursor: pointer;\n transition: background 0.15s;\n}\n.c-audio-player__track[data-v-3cb14639]:hover {\n background: color-mix(in srgb, var(--ap-accent) 6%, var(--ap-bg));\n}\n.c-audio-player__track.is-active[data-v-3cb14639] {\n background: color-mix(in srgb, var(--ap-accent) 10%, var(--ap-bg));\n}\n.c-audio-player__track.is-active .c-audio-player__track-title[data-v-3cb14639] {\n color: var(--ap-accent);\n font-weight: 600;\n}\n.c-audio-player__track-index[data-v-3cb14639] {\n font-size: 12px;\n width: 20px;\n text-align: center;\n color: var(--ap-text-sub);\n flex-shrink: 0;\n}\n.c-audio-player__track-info[data-v-3cb14639] {\n flex: 1;\n min-width: 0;\n}\n.c-audio-player__track-title[data-v-3cb14639] {\n font-size: 13px;\n color: var(--ap-text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.c-audio-player__track-artist[data-v-3cb14639] {\n font-size: 11px;\n color: var(--ap-text-sub);\n margin-top: 1px;\n}\n.c-audio-player__track-duration[data-v-3cb14639] {\n font-size: 11px;\n color: var(--ap-text-sub);\n flex-shrink: 0;\n}\n.c-audio-player.is-minimal[data-v-3cb14639] {\n border-radius: 99px;\n padding: 6px 16px;\n flex-direction: row;\n align-items: center;\n gap: 10px;\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);\n}\n.c-audio-player.is-minimal .c-audio-player__now-playing[data-v-3cb14639] {\n padding: 0;\n gap: 10px;\n}\n.c-audio-player.is-minimal .c-audio-player__cover[data-v-3cb14639] {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n}\n.c-audio-player.is-minimal .c-audio-player__progress[data-v-3cb14639],\n.c-audio-player.is-minimal .c-audio-player__playlist[data-v-3cb14639],\n.c-audio-player.is-minimal .c-audio-player__volume[data-v-3cb14639] {\n display: none;\n}\n.c-audio-player.is-minimal .c-audio-player__controls[data-v-3cb14639] {\n padding: 4px 0;\n gap: 2px;\n}\n.c-audio-player.is-minimal .c-audio-player__ctrl-btn.is-play[data-v-3cb14639] {\n width: 34px;\n height: 34px;\n font-size: 20px;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"C_AudioPlayer-DlB6eNsa.css","names":[],"sources":["../src/components/C_AudioPlayer/index.vue?vue&type=style&index=0&scoped=3cb14639&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//**\n * C_AudioPlayer — 音频播放器样式\n */\n.c-audio-player[data-v-3cb14639] {\n --ap-bg: var(--card-color);\n --ap-border: var(--border-color);\n --ap-accent: var(--primary-color);\n --ap-text: var(--text-color-1);\n --ap-text-sub: var(--text-color-3);\n --ap-progress-bg: color-mix(in srgb, var(--primary-color) 15%, var(--border-color));\n --ap-progress-fill: var(--primary-color);\n display: flex;\n flex-direction: column;\n border-radius: 12px;\n border: 1px solid var(--ap-border);\n background: var(--ap-bg);\n overflow: hidden;\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);\n /* ======================== Now Playing ======================== */\n /* ======================== Progress ======================== */\n /* ======================== Controls ======================== */\n /* ======================== Volume ======================== */\n /* ======================== Playlist ======================== */\n /* ======================== Minimal Theme ======================== */\n}\n.c-audio-player__now-playing[data-v-3cb14639] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n}\n.c-audio-player__cover[data-v-3cb14639] {\n flex-shrink: 0;\n width: 72px;\n height: 72px;\n border-radius: 10px;\n overflow: hidden;\n background: color-mix(in srgb, var(--ap-accent) 10%, var(--ap-bg));\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n.c-audio-player__cover img[data-v-3cb14639] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.c-audio-player__cover-placeholder[data-v-3cb14639] {\n font-size: 32px;\n color: var(--ap-accent);\n opacity: 0.5;\n}\n.c-audio-player__info[data-v-3cb14639] {\n flex: 1;\n min-width: 0;\n}\n.c-audio-player__title[data-v-3cb14639] {\n font-size: 15px;\n font-weight: 600;\n color: var(--ap-text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.c-audio-player__artist[data-v-3cb14639] {\n font-size: 12px;\n color: var(--ap-text-sub);\n margin-top: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.c-audio-player__progress[data-v-3cb14639] {\n padding: 0 20px;\n}\n.c-audio-player__progress-bar[data-v-3cb14639] {\n position: relative;\n width: 100%;\n height: 6px;\n border-radius: 3px;\n background: var(--ap-progress-bg);\n cursor: pointer;\n transition: height 0.15s;\n}\n.c-audio-player__progress-bar[data-v-3cb14639]:hover {\n height: 8px;\n}\n.c-audio-player__progress-fill[data-v-3cb14639] {\n height: 100%;\n border-radius: 3px;\n background: var(--ap-progress-fill);\n position: relative;\n transition: width 0.1s linear;\n}\n.c-audio-player__progress-fill[data-v-3cb14639]::after {\n content: \"\";\n position: absolute;\n right: -5px;\n top: 50%;\n transform: translateY(-50%);\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--ap-accent);\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);\n opacity: 0;\n transition: opacity 0.15s;\n}\n.c-audio-player__progress-bar:hover .c-audio-player__progress-fill[data-v-3cb14639]::after {\n opacity: 1;\n}\n.c-audio-player__time[data-v-3cb14639] {\n display: flex;\n justify-content: space-between;\n font-size: 11px;\n color: var(--ap-text-sub);\n margin-top: 4px;\n padding-bottom: 4px;\n}\n.c-audio-player__controls[data-v-3cb14639] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px 20px;\n}\n.c-audio-player__ctrl-btn[data-v-3cb14639] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: var(--ap-text);\n cursor: pointer;\n border-radius: 50%;\n transition: background 0.2s, color 0.2s, transform 0.15s;\n}\n.c-audio-player__ctrl-btn[data-v-3cb14639]:hover {\n color: var(--ap-accent);\n background: color-mix(in srgb, var(--ap-accent) 10%, transparent);\n}\n.c-audio-player__ctrl-btn[data-v-3cb14639]:active {\n transform: scale(0.92);\n}\n.c-audio-player__ctrl-btn.is-mode[data-v-3cb14639] {\n font-size: 18px;\n width: 34px;\n height: 34px;\n}\n.c-audio-player__ctrl-btn.is-skip[data-v-3cb14639] {\n font-size: 22px;\n width: 38px;\n height: 38px;\n}\n.c-audio-player__ctrl-btn.is-play[data-v-3cb14639] {\n font-size: 28px;\n width: 48px;\n height: 48px;\n background: var(--ap-accent);\n color: #fff;\n}\n.c-audio-player__ctrl-btn.is-play[data-v-3cb14639]:hover {\n background: color-mix(in srgb, var(--ap-accent) 85%, #000);\n color: #fff;\n box-shadow: 0 2px 10px color-mix(in srgb, var(--ap-accent) 35%, transparent);\n}\n.c-audio-player__volume[data-v-3cb14639] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 20px 12px;\n justify-content: flex-end;\n}\n.c-audio-player__volume-icon[data-v-3cb14639] {\n font-size: 18px;\n color: var(--ap-text-sub);\n cursor: pointer;\n}\n.c-audio-player__volume-icon[data-v-3cb14639]:hover {\n color: var(--ap-accent);\n}\n.c-audio-player__volume-slider[data-v-3cb14639] {\n width: 100px;\n}\n.c-audio-player__playlist[data-v-3cb14639] {\n border-top: 1px solid var(--ap-border);\n max-height: 260px;\n overflow-y: auto;\n}\n.c-audio-player__playlist-header[data-v-3cb14639] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 20px;\n font-size: 12px;\n font-weight: 600;\n color: var(--ap-text-sub);\n background: color-mix(in srgb, var(--ap-accent) 4%, var(--ap-bg));\n border-bottom: 1px solid var(--ap-border);\n position: sticky;\n top: 0;\n z-index: 1;\n}\n.c-audio-player__track[data-v-3cb14639] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 20px;\n cursor: pointer;\n transition: background 0.15s;\n}\n.c-audio-player__track[data-v-3cb14639]:hover {\n background: color-mix(in srgb, var(--ap-accent) 6%, var(--ap-bg));\n}\n.c-audio-player__track.is-active[data-v-3cb14639] {\n background: color-mix(in srgb, var(--ap-accent) 10%, var(--ap-bg));\n}\n.c-audio-player__track.is-active .c-audio-player__track-title[data-v-3cb14639] {\n color: var(--ap-accent);\n font-weight: 600;\n}\n.c-audio-player__track-index[data-v-3cb14639] {\n font-size: 12px;\n width: 20px;\n text-align: center;\n color: var(--ap-text-sub);\n flex-shrink: 0;\n}\n.c-audio-player__track-info[data-v-3cb14639] {\n flex: 1;\n min-width: 0;\n}\n.c-audio-player__track-title[data-v-3cb14639] {\n font-size: 13px;\n color: var(--ap-text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.c-audio-player__track-artist[data-v-3cb14639] {\n font-size: 11px;\n color: var(--ap-text-sub);\n margin-top: 1px;\n}\n.c-audio-player__track-duration[data-v-3cb14639] {\n font-size: 11px;\n color: var(--ap-text-sub);\n flex-shrink: 0;\n}\n.c-audio-player.is-minimal[data-v-3cb14639] {\n border-radius: 99px;\n padding: 6px 16px;\n flex-direction: row;\n align-items: center;\n gap: 10px;\n box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);\n}\n.c-audio-player.is-minimal .c-audio-player__now-playing[data-v-3cb14639] {\n padding: 0;\n gap: 10px;\n}\n.c-audio-player.is-minimal .c-audio-player__cover[data-v-3cb14639] {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n}\n.c-audio-player.is-minimal .c-audio-player__progress[data-v-3cb14639],\n.c-audio-player.is-minimal .c-audio-player__playlist[data-v-3cb14639],\n.c-audio-player.is-minimal .c-audio-player__volume[data-v-3cb14639] {\n display: none;\n}\n.c-audio-player.is-minimal .c-audio-player__controls[data-v-3cb14639] {\n padding: 4px 0;\n gap: 2px;\n}\n.c-audio-player.is-minimal .c-audio-player__ctrl-btn.is-play[data-v-3cb14639] {\n width: 34px;\n height: 34px;\n font-size: 20px;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./C_Icon.js`);const e=require(`./C_AudioPlayer.js`);exports.C_AudioPlayer=e.t,exports.DEFAULT_AUDIO_PLAYER_PROPS=e.n,exports.MODE_ICON_MAP=e.r,exports.formatTime=e.i;
|