fantasia-ui 0.2.31 → 0.2.33
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.en.md +49 -3
- package/README.md +48 -2
- package/dist/fantasia-ui.css +258 -44
- package/dist/fantasia-ui.es.js +639 -2098
- package/dist/fantasia-ui.umd.js +643 -2102
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/components/modules/FButtonGroup.vue.d.ts +0 -1
- package/dist/types/components/modules/FMessage.d.ts +3 -0
- package/dist/types/components/modules/FMessage.vue.d.ts +17 -0
- package/dist/types/components/modules/FNotification.d.ts +3 -0
- package/dist/types/components/modules/FNotification.vue.d.ts +20 -0
- package/dist/types/types/components/index.d.ts +2 -0
- package/dist/types/types/components/modules/base.d.ts +9 -2
- package/dist/types/types/components/modules/f-message.d.ts +33 -0
- package/dist/types/types/components/modules/f-notification.d.ts +48 -0
- package/package.json +6 -6
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Shuster
|
|
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.en.md
CHANGED
|
@@ -222,6 +222,48 @@ import { FRow, FCol, FSpace } from 'fantasia-ui'
|
|
|
222
222
|
</template>
|
|
223
223
|
```
|
|
224
224
|
|
|
225
|
+
### Message and Notification
|
|
226
|
+
|
|
227
|
+
```vue
|
|
228
|
+
<script setup lang="ts">
|
|
229
|
+
import { FMessage, FNotification } from 'fantasia-ui'
|
|
230
|
+
|
|
231
|
+
// Message
|
|
232
|
+
const showMessage = () => {
|
|
233
|
+
FMessage.success('Success!')
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// Notification
|
|
237
|
+
const showNotification = () => {
|
|
238
|
+
FNotification({
|
|
239
|
+
title: 'System Notification',
|
|
240
|
+
message: 'You have a new message',
|
|
241
|
+
type: 'info'
|
|
242
|
+
})
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// Use in async operations
|
|
246
|
+
const handleSubmit = async () => {
|
|
247
|
+
try {
|
|
248
|
+
await submitForm()
|
|
249
|
+
FMessage.success('Submitted successfully!')
|
|
250
|
+
} catch (error) {
|
|
251
|
+
FMessage.error('Failed to submit, please try again')
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
</script>
|
|
255
|
+
|
|
256
|
+
<template>
|
|
257
|
+
<div>
|
|
258
|
+
<FButton @click="showMessage">Show Message</FButton>
|
|
259
|
+
<FButton @click="showNotification">Show Notification</FButton>
|
|
260
|
+
<FButton @click="handleSubmit">Submit Form</FButton>
|
|
261
|
+
</div>
|
|
262
|
+
</template>
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
> 💡 View complete FMessage and FNotification API documentation: [Usage Guide](./MESSAGE_USAGE.md)
|
|
266
|
+
|
|
225
267
|
## 🎨 Theme Customization
|
|
226
268
|
|
|
227
269
|
The component library supports theme customization via CSS variables:
|
|
@@ -296,14 +338,18 @@ Or add to `src/env.d.ts`:
|
|
|
296
338
|
|
|
297
339
|
## 🔗 Links
|
|
298
340
|
|
|
299
|
-
- [Changelog](./CHANGELOG.md)
|
|
341
|
+
- [Changelog (中文)](./CHANGELOG.zh-CN.md)
|
|
342
|
+
- [Changelog (English)](./CHANGELOG.md)
|
|
343
|
+
- [Type Support Documentation](./TYPE_SUPPORT.md)
|
|
300
344
|
- [Optimization Report](./OPTIMIZATION.md)
|
|
301
|
-
- [
|
|
345
|
+
- [Build Issue Solutions](./BUILD_FIX.md)
|
|
302
346
|
- [Contributing Guide](./CONTRIBUTING.md)
|
|
347
|
+
- [Publish Guide](./.github/PUBLISH_GUIDE.md)
|
|
348
|
+
- [Issues](https://github.com/ShusterLi/fantasia-ui/issues)
|
|
303
349
|
|
|
304
350
|
## 📄 License
|
|
305
351
|
|
|
306
|
-
[MIT](./LICENSE) License ©
|
|
352
|
+
[MIT](./LICENSE) License © 2026 Shuster
|
|
307
353
|
|
|
308
354
|
## 🤝 Contributing
|
|
309
355
|
|
package/README.md
CHANGED
|
@@ -222,6 +222,48 @@ import { FRow, FCol, FSpace } from 'fantasia-ui'
|
|
|
222
222
|
</template>
|
|
223
223
|
```
|
|
224
224
|
|
|
225
|
+
### 消息提示和通知
|
|
226
|
+
|
|
227
|
+
```vue
|
|
228
|
+
<script setup lang="ts">
|
|
229
|
+
import { FMessage, FNotification } from 'fantasia-ui'
|
|
230
|
+
|
|
231
|
+
// 消息提示
|
|
232
|
+
const showMessage = () => {
|
|
233
|
+
FMessage.success('操作成功!')
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// 通知
|
|
237
|
+
const showNotification = () => {
|
|
238
|
+
FNotification({
|
|
239
|
+
title: '系统通知',
|
|
240
|
+
message: '您有一条新消息',
|
|
241
|
+
type: 'info'
|
|
242
|
+
})
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// 在异步操作中使用
|
|
246
|
+
const handleSubmit = async () => {
|
|
247
|
+
try {
|
|
248
|
+
await submitForm()
|
|
249
|
+
FMessage.success('提交成功!')
|
|
250
|
+
} catch (error) {
|
|
251
|
+
FMessage.error('提交失败,请重试')
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
</script>
|
|
255
|
+
|
|
256
|
+
<template>
|
|
257
|
+
<div>
|
|
258
|
+
<FButton @click="showMessage">显示消息</FButton>
|
|
259
|
+
<FButton @click="showNotification">显示通知</FButton>
|
|
260
|
+
<FButton @click="handleSubmit">提交表单</FButton>
|
|
261
|
+
</div>
|
|
262
|
+
</template>
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
> 💡 查看完整的 FMessage 和 FNotification API 文档:[使用指南](./MESSAGE_USAGE.md)
|
|
266
|
+
|
|
225
267
|
## 🎨 主题定制
|
|
226
268
|
|
|
227
269
|
组件库支持 CSS 变量自定义主题:
|
|
@@ -298,12 +340,16 @@ const buttonProps: FButtonProps = {
|
|
|
298
340
|
|
|
299
341
|
- [更新日志(中文)](./CHANGELOG.zh-CN.md)
|
|
300
342
|
- [更新日志(English)](./CHANGELOG.md)
|
|
343
|
+
- [类型支持文档](./TYPE_SUPPORT.md)
|
|
301
344
|
- [优化报告](./OPTIMIZATION.md)
|
|
302
|
-
- [
|
|
345
|
+
- [构建问题解决方案](./BUILD_FIX.md)
|
|
346
|
+
- [贡献指南](./CONTRIBUTING.md)
|
|
347
|
+
- [发布指南](./.github/PUBLISH_GUIDE.md)
|
|
348
|
+
- [问题反馈](https://github.com/ShusterLi/fantasia-ui/issues)
|
|
303
349
|
|
|
304
350
|
## 📄 开源协议
|
|
305
351
|
|
|
306
|
-
[MIT](./LICENSE) License ©
|
|
352
|
+
[MIT](./LICENSE) License © 2026 Shuster
|
|
307
353
|
|
|
308
354
|
## 🤝 贡献
|
|
309
355
|
|
package/dist/fantasia-ui.css
CHANGED
|
@@ -5990,14 +5990,14 @@ to {
|
|
|
5990
5990
|
.f-editor__textarea[data-v-6d590649]::placeholder {
|
|
5991
5991
|
color: #475569;
|
|
5992
5992
|
opacity: 0.7;
|
|
5993
|
-
}.f-table[data-v-
|
|
5993
|
+
}.f-table[data-v-01724962] {
|
|
5994
5994
|
position: relative;
|
|
5995
5995
|
border: 1px solid #e2e8f0;
|
|
5996
5996
|
border-radius: 6px;
|
|
5997
5997
|
overflow: hidden;
|
|
5998
5998
|
min-height: 14rem;
|
|
5999
5999
|
}
|
|
6000
|
-
.f-table__loading[data-v-
|
|
6000
|
+
.f-table__loading[data-v-01724962] {
|
|
6001
6001
|
position: absolute;
|
|
6002
6002
|
inset: 0;
|
|
6003
6003
|
background: rgba(255, 255, 255, 0.7);
|
|
@@ -6009,12 +6009,13 @@ to {
|
|
|
6009
6009
|
gap: 0.625rem;
|
|
6010
6010
|
z-index: 10;
|
|
6011
6011
|
}
|
|
6012
|
-
.f-table__scroll[data-v-
|
|
6012
|
+
.f-table__scroll[data-v-01724962] {
|
|
6013
|
+
position: relative;
|
|
6013
6014
|
width: 100%;
|
|
6014
6015
|
height: 100%;
|
|
6015
6016
|
overflow: auto;
|
|
6016
6017
|
}
|
|
6017
|
-
.f-table__inner[data-v-
|
|
6018
|
+
.f-table__inner[data-v-01724962] {
|
|
6018
6019
|
width: 100%;
|
|
6019
6020
|
border-collapse: collapse;
|
|
6020
6021
|
font-size: 0.75rem;
|
|
@@ -6022,67 +6023,67 @@ to {
|
|
|
6022
6023
|
table-layout: auto;
|
|
6023
6024
|
min-width: 100%;
|
|
6024
6025
|
}
|
|
6025
|
-
.f-table__inner th[data-v-
|
|
6026
|
-
.f-table__inner td[data-v-
|
|
6026
|
+
.f-table__inner th[data-v-01724962],
|
|
6027
|
+
.f-table__inner td[data-v-01724962] {
|
|
6027
6028
|
padding: 0.625rem;
|
|
6028
6029
|
border-right: 1px solid #e2e8f0;
|
|
6029
6030
|
}
|
|
6030
|
-
.f-table__inner th[data-v-
|
|
6031
|
-
.f-table__inner td[data-v-
|
|
6031
|
+
.f-table__inner th[data-v-01724962]:last-child,
|
|
6032
|
+
.f-table__inner td[data-v-01724962]:last-child {
|
|
6032
6033
|
border-right: none;
|
|
6033
6034
|
}
|
|
6034
|
-
.f-table__col--index[data-v-
|
|
6035
|
+
.f-table__col--index[data-v-01724962] {
|
|
6035
6036
|
width: 3rem;
|
|
6036
6037
|
}
|
|
6037
|
-
.f-table__head[data-v-
|
|
6038
|
+
.f-table__head[data-v-01724962] {
|
|
6038
6039
|
position: sticky;
|
|
6039
6040
|
top: 0;
|
|
6040
6041
|
z-index: 2;
|
|
6041
6042
|
background: #1e293b;
|
|
6042
6043
|
color: #ffffff;
|
|
6043
6044
|
}
|
|
6044
|
-
.f-table__th[data-v-
|
|
6045
|
+
.f-table__th[data-v-01724962] {
|
|
6045
6046
|
font-weight: 700;
|
|
6046
6047
|
text-align: center;
|
|
6047
6048
|
}
|
|
6048
|
-
.f-table__th--index[data-v-
|
|
6049
|
+
.f-table__th--index[data-v-01724962] {
|
|
6049
6050
|
background: #0f172a;
|
|
6050
6051
|
width: 3rem;
|
|
6051
6052
|
}
|
|
6052
|
-
.f-table__th-inner[data-v-
|
|
6053
|
+
.f-table__th-inner[data-v-01724962] {
|
|
6053
6054
|
display: flex;
|
|
6054
6055
|
flex-direction: column;
|
|
6055
6056
|
align-items: center;
|
|
6056
6057
|
gap: 0.25rem;
|
|
6057
6058
|
}
|
|
6058
|
-
.f-table__row[data-v-
|
|
6059
|
+
.f-table__row[data-v-01724962] {
|
|
6059
6060
|
border-bottom: 1px solid #e2e8f0;
|
|
6060
6061
|
}
|
|
6061
|
-
.f-table__row[data-v-
|
|
6062
|
+
.f-table__row[data-v-01724962]:hover {
|
|
6062
6063
|
background: rgba(248, 250, 252, 0.7);
|
|
6063
6064
|
}
|
|
6064
|
-
.f-table__td[data-v-
|
|
6065
|
+
.f-table__td[data-v-01724962] {
|
|
6065
6066
|
text-align: center;
|
|
6066
6067
|
font-size: 0.6875rem;
|
|
6067
6068
|
overflow: hidden;
|
|
6068
6069
|
text-overflow: ellipsis;
|
|
6069
6070
|
white-space: nowrap;
|
|
6070
6071
|
}
|
|
6071
|
-
.f-table__td--muted[data-v-
|
|
6072
|
+
.f-table__td--muted[data-v-01724962] {
|
|
6072
6073
|
color: #94a3b8;
|
|
6073
6074
|
text-decoration: line-through;
|
|
6074
6075
|
opacity: 0.6;
|
|
6075
6076
|
}
|
|
6076
|
-
.f-table__td--index[data-v-
|
|
6077
|
+
.f-table__td--index[data-v-01724962] {
|
|
6077
6078
|
background: rgba(248, 250, 252, 0.5);
|
|
6078
6079
|
font-weight: 800;
|
|
6079
6080
|
color: #64748b;
|
|
6080
6081
|
}
|
|
6081
|
-
.f-table__spacer td[data-v-
|
|
6082
|
+
.f-table__spacer td[data-v-01724962] {
|
|
6082
6083
|
padding: 0;
|
|
6083
6084
|
border: none;
|
|
6084
6085
|
}
|
|
6085
|
-
.f-table__empty[data-v-
|
|
6086
|
+
.f-table__empty[data-v-01724962] {
|
|
6086
6087
|
padding: 3rem 0;
|
|
6087
6088
|
text-align: center;
|
|
6088
6089
|
color: #94a3b8;
|
|
@@ -6178,50 +6179,50 @@ to {
|
|
|
6178
6179
|
overflow: hidden;
|
|
6179
6180
|
text-overflow: ellipsis;
|
|
6180
6181
|
white-space: nowrap;
|
|
6181
|
-
}.f-button-group[data-v-
|
|
6182
|
+
}.f-button-group[data-v-62561657] {
|
|
6182
6183
|
display: inline-flex;
|
|
6183
6184
|
vertical-align: middle;
|
|
6184
6185
|
}
|
|
6185
|
-
.f-button-group[data-v-
|
|
6186
|
+
.f-button-group[data-v-62561657]:last-child {
|
|
6186
6187
|
margin-right: 0;
|
|
6187
6188
|
}
|
|
6188
|
-
.f-button-group[data-v-
|
|
6189
|
+
.f-button-group[data-v-62561657] > * {
|
|
6189
6190
|
position: relative;
|
|
6190
6191
|
display: inline-flex;
|
|
6191
6192
|
}
|
|
6192
|
-
.f-button-group[data-v-
|
|
6193
|
+
.f-button-group[data-v-62561657] > * .f-button {
|
|
6193
6194
|
border-radius: 0;
|
|
6194
6195
|
}
|
|
6195
|
-
.f-button-group[data-v-
|
|
6196
|
+
.f-button-group[data-v-62561657] > *:not(:first-child) {
|
|
6196
6197
|
margin-left: -1px;
|
|
6197
6198
|
}
|
|
6198
|
-
.f-button-group[data-v-
|
|
6199
|
+
.f-button-group[data-v-62561657] > *:first-child .f-button {
|
|
6199
6200
|
border-top-left-radius: 4px;
|
|
6200
6201
|
border-bottom-left-radius: 4px;
|
|
6201
6202
|
}
|
|
6202
|
-
.f-button-group[data-v-
|
|
6203
|
+
.f-button-group[data-v-62561657] > *:last-child .f-button {
|
|
6203
6204
|
border-top-right-radius: 4px;
|
|
6204
6205
|
border-bottom-right-radius: 4px;
|
|
6205
6206
|
}
|
|
6206
|
-
.f-button-group[data-v-
|
|
6207
|
+
.f-button-group[data-v-62561657] > *:hover {
|
|
6207
6208
|
z-index: 1;
|
|
6208
6209
|
}
|
|
6209
|
-
.f-button-group[data-v-
|
|
6210
|
+
.f-button-group[data-v-62561657] > * .is-active {
|
|
6210
6211
|
z-index: 2;
|
|
6211
6212
|
}
|
|
6212
|
-
.f-button-group--vertical[data-v-
|
|
6213
|
+
.f-button-group--vertical[data-v-62561657] {
|
|
6213
6214
|
flex-direction: column;
|
|
6214
6215
|
margin-right: 0;
|
|
6215
6216
|
margin-bottom: 12px;
|
|
6216
6217
|
}
|
|
6217
|
-
.f-button-group--vertical[data-v-
|
|
6218
|
+
.f-button-group--vertical[data-v-62561657] > *:not(:first-child) {
|
|
6218
6219
|
margin-left: 0;
|
|
6219
6220
|
margin-top: -1px;
|
|
6220
6221
|
}
|
|
6221
|
-
.f-button-group--vertical[data-v-
|
|
6222
|
+
.f-button-group--vertical[data-v-62561657] > *:first-child .f-button {
|
|
6222
6223
|
border-radius: 4px 4px 0 0;
|
|
6223
6224
|
}
|
|
6224
|
-
.f-button-group--vertical[data-v-
|
|
6225
|
+
.f-button-group--vertical[data-v-62561657] > *:last-child .f-button {
|
|
6225
6226
|
border-radius: 0 0 4px 4px;
|
|
6226
6227
|
}:root {
|
|
6227
6228
|
--f-collapse-border-color: #333338;
|
|
@@ -6822,7 +6823,7 @@ to {
|
|
|
6822
6823
|
.f-input-number__stack-btn:disabled {
|
|
6823
6824
|
opacity: 0.4;
|
|
6824
6825
|
cursor: not-allowed;
|
|
6825
|
-
}.f-result[data-v-
|
|
6826
|
+
}.f-result[data-v-1667a865] {
|
|
6826
6827
|
display: flex;
|
|
6827
6828
|
flex-direction: column;
|
|
6828
6829
|
align-items: center;
|
|
@@ -6831,50 +6832,263 @@ to {
|
|
|
6831
6832
|
padding: 48px 24px;
|
|
6832
6833
|
--_color: var(--blue);
|
|
6833
6834
|
}
|
|
6834
|
-
.f-result--success[data-v-
|
|
6835
|
+
.f-result--success[data-v-1667a865] {
|
|
6835
6836
|
--_color: var(--green);
|
|
6836
6837
|
}
|
|
6837
|
-
.f-result--error[data-v-
|
|
6838
|
+
.f-result--error[data-v-1667a865] {
|
|
6838
6839
|
--_color: var(--red);
|
|
6839
6840
|
}
|
|
6840
|
-
.f-result--warning[data-v-
|
|
6841
|
+
.f-result--warning[data-v-1667a865] {
|
|
6841
6842
|
--_color: var(--gold);
|
|
6842
6843
|
}
|
|
6843
|
-
.f-result--403[data-v-
|
|
6844
|
+
.f-result--403[data-v-1667a865], .f-result--404[data-v-1667a865], .f-result--500[data-v-1667a865] {
|
|
6844
6845
|
--_color: var(--text-dim);
|
|
6845
6846
|
}
|
|
6846
|
-
.f-result__icon[data-v-
|
|
6847
|
+
.f-result__icon[data-v-1667a865] {
|
|
6847
6848
|
display: flex;
|
|
6848
6849
|
align-items: center;
|
|
6849
6850
|
justify-content: center;
|
|
6850
6851
|
margin-bottom: 24px;
|
|
6851
6852
|
color: var(--_color);
|
|
6852
6853
|
}
|
|
6853
|
-
.f-result__code[data-v-
|
|
6854
|
+
.f-result__code[data-v-1667a865] {
|
|
6854
6855
|
font-size: 56px;
|
|
6855
6856
|
font-weight: 700;
|
|
6856
6857
|
line-height: 1;
|
|
6857
6858
|
letter-spacing: 2px;
|
|
6858
6859
|
}
|
|
6859
|
-
.f-result__title[data-v-
|
|
6860
|
+
.f-result__title[data-v-1667a865] {
|
|
6860
6861
|
font-size: 20px;
|
|
6861
6862
|
font-weight: 600;
|
|
6862
6863
|
line-height: 1.4;
|
|
6863
6864
|
color: var(--text);
|
|
6864
6865
|
}
|
|
6865
|
-
.f-result__subtitle[data-v-
|
|
6866
|
+
.f-result__subtitle[data-v-1667a865] {
|
|
6866
6867
|
margin-top: 8px;
|
|
6867
6868
|
font-size: 14px;
|
|
6868
6869
|
line-height: 1.6;
|
|
6869
6870
|
color: var(--text-muted);
|
|
6870
6871
|
max-width: 480px;
|
|
6871
6872
|
}
|
|
6872
|
-
.f-result__extra[data-v-
|
|
6873
|
+
.f-result__extra[data-v-1667a865] {
|
|
6873
6874
|
display: flex;
|
|
6874
6875
|
gap: 12px;
|
|
6875
6876
|
margin-top: 24px;
|
|
6876
6877
|
}
|
|
6877
|
-
.f-result__content[data-v-
|
|
6878
|
+
.f-result__content[data-v-1667a865] {
|
|
6878
6879
|
margin-top: 24px;
|
|
6879
6880
|
width: 100%;
|
|
6881
|
+
}.f-message[data-v-3aba692f] {
|
|
6882
|
+
--f-bg: #1f1f1f;
|
|
6883
|
+
--f-border: rgba(255, 255, 255, 0.08);
|
|
6884
|
+
--f-text: #e8e4f0;
|
|
6885
|
+
--f-text-muted: #7c7a8a;
|
|
6886
|
+
--f-shadow: rgba(0, 0, 0, 0.35);
|
|
6887
|
+
--f-info: #60a5fa;
|
|
6888
|
+
--f-success: #34d399;
|
|
6889
|
+
--f-warning: #fb923c;
|
|
6890
|
+
--f-error: #f87171;
|
|
6891
|
+
position: fixed;
|
|
6892
|
+
left: 50%;
|
|
6893
|
+
transform: translateX(-50%);
|
|
6894
|
+
display: inline-flex;
|
|
6895
|
+
align-items: center;
|
|
6896
|
+
gap: 8px;
|
|
6897
|
+
max-width: min(480px, 100vw - 32px);
|
|
6898
|
+
padding: 10px 16px;
|
|
6899
|
+
border-radius: 4px;
|
|
6900
|
+
font-size: 14px;
|
|
6901
|
+
line-height: 1.5;
|
|
6902
|
+
color: var(--f-text);
|
|
6903
|
+
background: var(--f-bg);
|
|
6904
|
+
border: 1px solid var(--f-border);
|
|
6905
|
+
box-shadow: 0 2px 6px var(--f-shadow);
|
|
6906
|
+
z-index: 3000;
|
|
6907
|
+
pointer-events: auto;
|
|
6908
|
+
transition: top 0.3s cubic-bezier(0.34, 0.69, 0.1, 1);
|
|
6909
|
+
}
|
|
6910
|
+
.f-message__icon[data-v-3aba692f] {
|
|
6911
|
+
flex-shrink: 0;
|
|
6912
|
+
font-size: 16px;
|
|
6913
|
+
}
|
|
6914
|
+
.f-message__content[data-v-3aba692f] {
|
|
6915
|
+
flex: 1;
|
|
6916
|
+
word-break: break-word;
|
|
6917
|
+
}
|
|
6918
|
+
.f-message__close[data-v-3aba692f] {
|
|
6919
|
+
flex-shrink: 0;
|
|
6920
|
+
display: inline-flex;
|
|
6921
|
+
align-items: center;
|
|
6922
|
+
justify-content: center;
|
|
6923
|
+
padding: 0;
|
|
6924
|
+
border: none;
|
|
6925
|
+
background: transparent;
|
|
6926
|
+
color: var(--f-text-muted);
|
|
6927
|
+
cursor: pointer;
|
|
6928
|
+
transition: color 0.2s ease;
|
|
6929
|
+
}
|
|
6930
|
+
.f-message__close[data-v-3aba692f]:hover {
|
|
6931
|
+
color: var(--f-text);
|
|
6932
|
+
}
|
|
6933
|
+
.f-message--info .f-message__icon[data-v-3aba692f] {
|
|
6934
|
+
color: var(--f-info);
|
|
6935
|
+
}
|
|
6936
|
+
.f-message--success .f-message__icon[data-v-3aba692f] {
|
|
6937
|
+
color: var(--f-success);
|
|
6938
|
+
}
|
|
6939
|
+
.f-message--warning .f-message__icon[data-v-3aba692f] {
|
|
6940
|
+
color: var(--f-warning);
|
|
6941
|
+
}
|
|
6942
|
+
.f-message--error .f-message__icon[data-v-3aba692f] {
|
|
6943
|
+
color: var(--f-error);
|
|
6944
|
+
}
|
|
6945
|
+
:root.light .f-message[data-v-3aba692f] {
|
|
6946
|
+
--f-bg: #ffffff;
|
|
6947
|
+
--f-border: rgba(0, 0, 0, 0.08);
|
|
6948
|
+
--f-text: #1e293b;
|
|
6949
|
+
--f-text-muted: #94a3b8;
|
|
6950
|
+
--f-shadow: rgba(0, 0, 0, 0.12);
|
|
6951
|
+
--f-info: #2563eb;
|
|
6952
|
+
--f-success: #059669;
|
|
6953
|
+
--f-warning: #ea580c;
|
|
6954
|
+
--f-error: #dc2626;
|
|
6955
|
+
}
|
|
6956
|
+
.f-message-fade-enter-active[data-v-3aba692f] {
|
|
6957
|
+
transition: opacity 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
6958
|
+
}
|
|
6959
|
+
.f-message-fade-leave-active[data-v-3aba692f] {
|
|
6960
|
+
transition: opacity 0.2s ease-in, transform 0.2s ease-in;
|
|
6961
|
+
}
|
|
6962
|
+
.f-message-fade-enter-from[data-v-3aba692f],
|
|
6963
|
+
.f-message-fade-leave-to[data-v-3aba692f] {
|
|
6964
|
+
opacity: 0;
|
|
6965
|
+
transform: translate(-50%, -12px);
|
|
6966
|
+
}.f-notification[data-v-7600a501] {
|
|
6967
|
+
--f-bg: #000000;
|
|
6968
|
+
--f-border: rgba(255, 255, 255, 0.08);
|
|
6969
|
+
--f-text: #e8e4f0;
|
|
6970
|
+
--f-text-muted: #7c7a8a;
|
|
6971
|
+
--f-shadow: rgba(0, 0, 0, 0.35);
|
|
6972
|
+
--f-info: #60a5fa;
|
|
6973
|
+
--f-success: #34d399;
|
|
6974
|
+
--f-warning: #fb923c;
|
|
6975
|
+
--f-error: #f87171;
|
|
6976
|
+
position: fixed;
|
|
6977
|
+
display: flex;
|
|
6978
|
+
align-items: flex-start;
|
|
6979
|
+
gap: 12px;
|
|
6980
|
+
width: 340px;
|
|
6981
|
+
max-width: calc(100vw - 32px);
|
|
6982
|
+
padding: 16px;
|
|
6983
|
+
border-radius: 4px;
|
|
6984
|
+
color: var(--f-text);
|
|
6985
|
+
background: var(--f-bg);
|
|
6986
|
+
border: 1px solid var(--f-border);
|
|
6987
|
+
box-shadow: 0 3px 8px var(--f-shadow);
|
|
6988
|
+
z-index: 3000;
|
|
6989
|
+
pointer-events: auto;
|
|
6990
|
+
cursor: default;
|
|
6991
|
+
transition: top 0.3s cubic-bezier(0.34, 0.69, 0.1, 1), bottom 0.3s cubic-bezier(0.34, 0.69, 0.1, 1);
|
|
6992
|
+
}
|
|
6993
|
+
.f-notification__icon[data-v-7600a501] {
|
|
6994
|
+
flex-shrink: 0;
|
|
6995
|
+
margin-top: 1px;
|
|
6996
|
+
font-size: 18px;
|
|
6997
|
+
}
|
|
6998
|
+
.f-notification__body[data-v-7600a501] {
|
|
6999
|
+
flex: 1;
|
|
7000
|
+
min-width: 0;
|
|
7001
|
+
}
|
|
7002
|
+
.f-notification__title[data-v-7600a501] {
|
|
7003
|
+
margin: 0 0 4px;
|
|
7004
|
+
font-size: 14px;
|
|
7005
|
+
font-weight: 600;
|
|
7006
|
+
line-height: 1.4;
|
|
7007
|
+
color: var(--f-text);
|
|
7008
|
+
}
|
|
7009
|
+
.f-notification__content[data-v-7600a501] {
|
|
7010
|
+
margin: 0;
|
|
7011
|
+
font-size: 13px;
|
|
7012
|
+
line-height: 1.5;
|
|
7013
|
+
color: var(--f-text-muted);
|
|
7014
|
+
word-break: break-word;
|
|
7015
|
+
}
|
|
7016
|
+
.f-notification__close[data-v-7600a501] {
|
|
7017
|
+
flex-shrink: 0;
|
|
7018
|
+
display: inline-flex;
|
|
7019
|
+
align-items: center;
|
|
7020
|
+
justify-content: center;
|
|
7021
|
+
margin: -2px -4px 0 0;
|
|
7022
|
+
padding: 2px;
|
|
7023
|
+
border: none;
|
|
7024
|
+
background: transparent;
|
|
7025
|
+
color: var(--f-text-muted);
|
|
7026
|
+
cursor: pointer;
|
|
7027
|
+
transition: color 0.2s ease;
|
|
7028
|
+
}
|
|
7029
|
+
.f-notification__close[data-v-7600a501]:hover {
|
|
7030
|
+
color: var(--f-text);
|
|
7031
|
+
}
|
|
7032
|
+
.f-notification--info .f-notification__icon[data-v-7600a501] {
|
|
7033
|
+
color: var(--f-info);
|
|
7034
|
+
}
|
|
7035
|
+
.f-notification--success .f-notification__icon[data-v-7600a501] {
|
|
7036
|
+
color: var(--f-success);
|
|
7037
|
+
}
|
|
7038
|
+
.f-notification--warning .f-notification__icon[data-v-7600a501] {
|
|
7039
|
+
color: var(--f-warning);
|
|
7040
|
+
}
|
|
7041
|
+
.f-notification--error .f-notification__icon[data-v-7600a501] {
|
|
7042
|
+
color: var(--f-error);
|
|
7043
|
+
}
|
|
7044
|
+
:root.light .f-notification[data-v-7600a501] {
|
|
7045
|
+
--f-bg: #ffffff;
|
|
7046
|
+
--f-border: rgba(0, 0, 0, 0.08);
|
|
7047
|
+
--f-text: #1e293b;
|
|
7048
|
+
--f-text-muted: #64748b;
|
|
7049
|
+
--f-shadow: rgba(0, 0, 0, 0.12);
|
|
7050
|
+
--f-info: #2563eb;
|
|
7051
|
+
--f-success: #059669;
|
|
7052
|
+
--f-warning: #ea580c;
|
|
7053
|
+
--f-error: #dc2626;
|
|
7054
|
+
}
|
|
7055
|
+
.f-notification-top-right-enter-active[data-v-7600a501] {
|
|
7056
|
+
transition: opacity 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
7057
|
+
}
|
|
7058
|
+
.f-notification-top-right-leave-active[data-v-7600a501] {
|
|
7059
|
+
transition: opacity 0.2s ease-in, transform 0.2s ease-in;
|
|
7060
|
+
}
|
|
7061
|
+
.f-notification-top-right-enter-from[data-v-7600a501], .f-notification-top-right-leave-to[data-v-7600a501] {
|
|
7062
|
+
opacity: 0;
|
|
7063
|
+
transform: translateX(24px);
|
|
7064
|
+
}
|
|
7065
|
+
.f-notification-bottom-right-enter-active[data-v-7600a501] {
|
|
7066
|
+
transition: opacity 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
7067
|
+
}
|
|
7068
|
+
.f-notification-bottom-right-leave-active[data-v-7600a501] {
|
|
7069
|
+
transition: opacity 0.2s ease-in, transform 0.2s ease-in;
|
|
7070
|
+
}
|
|
7071
|
+
.f-notification-bottom-right-enter-from[data-v-7600a501], .f-notification-bottom-right-leave-to[data-v-7600a501] {
|
|
7072
|
+
opacity: 0;
|
|
7073
|
+
transform: translateX(24px);
|
|
7074
|
+
}
|
|
7075
|
+
.f-notification-top-left-enter-active[data-v-7600a501] {
|
|
7076
|
+
transition: opacity 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
7077
|
+
}
|
|
7078
|
+
.f-notification-top-left-leave-active[data-v-7600a501] {
|
|
7079
|
+
transition: opacity 0.2s ease-in, transform 0.2s ease-in;
|
|
7080
|
+
}
|
|
7081
|
+
.f-notification-top-left-enter-from[data-v-7600a501], .f-notification-top-left-leave-to[data-v-7600a501] {
|
|
7082
|
+
opacity: 0;
|
|
7083
|
+
transform: translateX(-24px);
|
|
7084
|
+
}
|
|
7085
|
+
.f-notification-bottom-left-enter-active[data-v-7600a501] {
|
|
7086
|
+
transition: opacity 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
7087
|
+
}
|
|
7088
|
+
.f-notification-bottom-left-leave-active[data-v-7600a501] {
|
|
7089
|
+
transition: opacity 0.2s ease-in, transform 0.2s ease-in;
|
|
7090
|
+
}
|
|
7091
|
+
.f-notification-bottom-left-enter-from[data-v-7600a501], .f-notification-bottom-left-leave-to[data-v-7600a501] {
|
|
7092
|
+
opacity: 0;
|
|
7093
|
+
transform: translateX(-24px);
|
|
6880
7094
|
}
|