fantasia-ui 0.2.39 → 0.2.43

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.
Files changed (116) hide show
  1. package/README.en.md +8 -356
  2. package/README.md +10 -358
  3. package/dist/fantasia-ui.css +534 -205
  4. package/dist/fantasia-ui.es.js +2945 -524
  5. package/dist/fantasia-ui.umd.js +2923 -502
  6. package/dist/types/{components → packages/components}/index.d.ts +4 -3
  7. package/dist/types/{components → packages/components}/modules/FButton.vue.d.ts +3 -3
  8. package/dist/types/packages/components/modules/FDialog.vue.d.ts +46 -0
  9. package/dist/types/{components → packages/components}/modules/FDropdown.vue.d.ts +5 -0
  10. package/dist/types/packages/components/modules/FInput.vue.d.ts +11 -0
  11. package/dist/types/{components → packages/components}/modules/FInputNumber.vue.d.ts +0 -1
  12. package/dist/types/{components/modules/FDialog.vue.d.ts → packages/components/modules/FMask.vue.d.ts} +2 -2
  13. package/dist/types/{components → packages/components}/modules/FSelect.vue.d.ts +3 -0
  14. package/dist/types/packages/composables/FDialog.d.ts +3 -0
  15. package/dist/types/{types → packages/types}/components/index.d.ts +3 -1
  16. package/dist/types/{types → packages/types}/components/modules/base.d.ts +1 -1
  17. package/dist/types/{types → packages/types}/components/modules/f-button.d.ts +3 -1
  18. package/dist/types/packages/types/components/modules/f-dialog.d.ts +69 -0
  19. package/dist/types/{types → packages/types}/components/modules/f-dropdown.d.ts +1 -0
  20. package/dist/types/{types → packages/types}/components/modules/f-input-number.d.ts +0 -1
  21. package/dist/types/{types → packages/types}/components/modules/f-input.d.ts +3 -5
  22. package/dist/types/{types/components/modules/f-dialog.d.ts → packages/types/components/modules/f-mask.d.ts} +2 -2
  23. package/dist/types/packages/types/components/modules/f-select.d.ts +7 -0
  24. package/package.json +1 -1
  25. package/dist/types/components/modules/FInput.vue.d.ts +0 -27
  26. package/dist/types/{assets → packages/assets}/index.d.ts +0 -0
  27. package/dist/types/{components → packages/components}/modules/FAffix.vue.d.ts +0 -0
  28. package/dist/types/{components → packages/components}/modules/FAlert.vue.d.ts +0 -0
  29. package/dist/types/{components → packages/components}/modules/FAvatar.vue.d.ts +0 -0
  30. package/dist/types/{components → packages/components}/modules/FBadge.vue.d.ts +0 -0
  31. package/dist/types/{components → packages/components}/modules/FBreadcrumb.vue.d.ts +0 -0
  32. package/dist/types/{components → packages/components}/modules/FButtonGroup.vue.d.ts +0 -0
  33. package/dist/types/{components → packages/components}/modules/FCard.vue.d.ts +0 -0
  34. package/dist/types/{components → packages/components}/modules/FCheckbox.vue.d.ts +0 -0
  35. package/dist/types/{components → packages/components}/modules/FCol.vue.d.ts +0 -0
  36. package/dist/types/{components → packages/components}/modules/FCollapse.vue.d.ts +0 -0
  37. package/dist/types/{components → packages/components}/modules/FCollapseItem.vue.d.ts +0 -0
  38. package/dist/types/{components → packages/components}/modules/FColorPicker.vue.d.ts +0 -0
  39. package/dist/types/{components → packages/components}/modules/FContainer.vue.d.ts +0 -0
  40. package/dist/types/{components → packages/components}/modules/FDivider.vue.d.ts +0 -0
  41. package/dist/types/{components → packages/components}/modules/FEditor.vue.d.ts +2 -2
  42. package/dist/types/{components → packages/components}/modules/FEmpty.vue.d.ts +0 -0
  43. package/dist/types/{components → packages/components}/modules/FForm.vue.d.ts +0 -0
  44. package/dist/types/{components → packages/components}/modules/FFormItem.vue.d.ts +0 -0
  45. package/dist/types/{components → packages/components}/modules/FIcon.vue.d.ts +0 -0
  46. package/dist/types/{components → packages/components}/modules/FImage.vue.d.ts +0 -0
  47. package/dist/types/{components → packages/components}/modules/FLink.vue.d.ts +0 -0
  48. package/dist/types/{components → packages/components}/modules/FLoading.vue.d.ts +0 -0
  49. package/dist/types/{components → packages/components}/modules/FMessage.vue.d.ts +0 -0
  50. package/dist/types/{components → packages/components}/modules/FNotification.vue.d.ts +0 -0
  51. package/dist/types/{components → packages/components}/modules/FPagination.vue.d.ts +0 -0
  52. package/dist/types/{components → packages/components}/modules/FProgress.vue.d.ts +0 -0
  53. package/dist/types/{components → packages/components}/modules/FRate.vue.d.ts +2 -2
  54. /package/dist/types/{components → packages/components}/modules/FResult.vue.d.ts +0 -0
  55. /package/dist/types/{components → packages/components}/modules/FRow.vue.d.ts +0 -0
  56. /package/dist/types/{components → packages/components}/modules/FScrollbar.vue.d.ts +0 -0
  57. /package/dist/types/{components → packages/components}/modules/FSlider.vue.d.ts +0 -0
  58. /package/dist/types/{components → packages/components}/modules/FSpace.vue.d.ts +0 -0
  59. /package/dist/types/{components → packages/components}/modules/FTable.vue.d.ts +0 -0
  60. /package/dist/types/{components → packages/components}/modules/FTabs.vue.d.ts +0 -0
  61. /package/dist/types/{components → packages/components}/modules/FTag.vue.d.ts +0 -0
  62. /package/dist/types/{components → packages/components}/modules/FText.vue.d.ts +0 -0
  63. /package/dist/types/{components → packages/components}/modules/FTooltip.vue.d.ts +0 -0
  64. /package/dist/types/{components → packages/components}/modules/FTypography.vue.d.ts +0 -0
  65. /package/dist/types/{components → packages/components}/modules/FUpload.vue.d.ts +0 -0
  66. /package/dist/types/{components/modules → packages/composables}/FMessage.d.ts +0 -0
  67. /package/dist/types/{components/modules → packages/composables}/FNotification.d.ts +0 -0
  68. /package/dist/types/{index.d.ts → packages/index.d.ts} +0 -0
  69. /package/dist/types/{types → packages/types}/components/modules/f-affix.d.ts +0 -0
  70. /package/dist/types/{types → packages/types}/components/modules/f-alert.d.ts +0 -0
  71. /package/dist/types/{types → packages/types}/components/modules/f-avatar.d.ts +0 -0
  72. /package/dist/types/{types → packages/types}/components/modules/f-badge.d.ts +0 -0
  73. /package/dist/types/{types → packages/types}/components/modules/f-breadcrumb.d.ts +0 -0
  74. /package/dist/types/{types → packages/types}/components/modules/f-button-group.d.ts +0 -0
  75. /package/dist/types/{types → packages/types}/components/modules/f-card.d.ts +0 -0
  76. /package/dist/types/{types → packages/types}/components/modules/f-checkbox.d.ts +0 -0
  77. /package/dist/types/{types → packages/types}/components/modules/f-col.d.ts +0 -0
  78. /package/dist/types/{types → packages/types}/components/modules/f-collapse-item.d.ts +0 -0
  79. /package/dist/types/{types → packages/types}/components/modules/f-collapse.d.ts +0 -0
  80. /package/dist/types/{types → packages/types}/components/modules/f-color-picker.d.ts +0 -0
  81. /package/dist/types/{types → packages/types}/components/modules/f-container.d.ts +0 -0
  82. /package/dist/types/{types → packages/types}/components/modules/f-divider.d.ts +0 -0
  83. /package/dist/types/{types → packages/types}/components/modules/f-editor.d.ts +0 -0
  84. /package/dist/types/{types → packages/types}/components/modules/f-empty.d.ts +0 -0
  85. /package/dist/types/{types → packages/types}/components/modules/f-form-item.d.ts +0 -0
  86. /package/dist/types/{types → packages/types}/components/modules/f-form.d.ts +0 -0
  87. /package/dist/types/{types → packages/types}/components/modules/f-icon.d.ts +0 -0
  88. /package/dist/types/{types → packages/types}/components/modules/f-image.d.ts +0 -0
  89. /package/dist/types/{types → packages/types}/components/modules/f-link.d.ts +0 -0
  90. /package/dist/types/{types → packages/types}/components/modules/f-loading.d.ts +0 -0
  91. /package/dist/types/{types → packages/types}/components/modules/f-menu.d.ts +0 -0
  92. /package/dist/types/{types → packages/types}/components/modules/f-message.d.ts +0 -0
  93. /package/dist/types/{types → packages/types}/components/modules/f-notification.d.ts +0 -0
  94. /package/dist/types/{types → packages/types}/components/modules/f-pagination.d.ts +0 -0
  95. /package/dist/types/{types → packages/types}/components/modules/f-progress.d.ts +0 -0
  96. /package/dist/types/{types → packages/types}/components/modules/f-rate.d.ts +0 -0
  97. /package/dist/types/{types → packages/types}/components/modules/f-result.d.ts +0 -0
  98. /package/dist/types/{types → packages/types}/components/modules/f-row.d.ts +0 -0
  99. /package/dist/types/{types → packages/types}/components/modules/f-scrollbar.d.ts +0 -0
  100. /package/dist/types/{types → packages/types}/components/modules/f-slider-captcha.d.ts +0 -0
  101. /package/dist/types/{types → packages/types}/components/modules/f-slider.d.ts +0 -0
  102. /package/dist/types/{types → packages/types}/components/modules/f-space.d.ts +0 -0
  103. /package/dist/types/{types → packages/types}/components/modules/f-table.d.ts +0 -0
  104. /package/dist/types/{types → packages/types}/components/modules/f-tabs.d.ts +0 -0
  105. /package/dist/types/{types → packages/types}/components/modules/f-tag.d.ts +0 -0
  106. /package/dist/types/{types → packages/types}/components/modules/f-tagsview.d.ts +0 -0
  107. /package/dist/types/{types → packages/types}/components/modules/f-text.d.ts +0 -0
  108. /package/dist/types/{types → packages/types}/components/modules/f-toolbar.d.ts +0 -0
  109. /package/dist/types/{types → packages/types}/components/modules/f-tooltip.d.ts +0 -0
  110. /package/dist/types/{types → packages/types}/components/modules/f-typography.d.ts +0 -0
  111. /package/dist/types/{types → packages/types}/components/modules/f-upload.d.ts +0 -0
  112. /package/dist/types/{types → packages/types}/index.d.ts +0 -0
  113. /package/dist/types/{types → packages/types}/models/index.d.ts +0 -0
  114. /package/dist/types/{utils → packages/utils}/general.d.ts +0 -0
  115. /package/dist/types/{utils → packages/utils}/index.d.ts +0 -0
  116. /package/dist/types/{utils → packages/utils}/validator.d.ts +0 -0
package/README.md CHANGED
@@ -1,358 +1,10 @@
1
- # Fantasia UI
2
-
3
- <p align="center">
4
- <img src="https://img.shields.io/npm/v/fantasia-ui" alt="npm version">
5
- <img src="https://img.shields.io/npm/dm/fantasia-ui" alt="npm downloads">
6
- <img src="https://img.shields.io/npm/l/fantasia-ui" alt="license">
7
- <img src="https://img.shields.io/badge/vue-3.x-brightgreen.svg" alt="vue3">
8
- </p>
9
-
10
- <p align="center">
11
- 一个基于 Vue 3 + TypeScript 的现代化 UI 组件库
12
- </p>
13
-
14
- <p align="center">
15
- <a href="./README.en.md">English</a> | 简体中文
16
- </p>
17
-
18
- ## ✨ 特性
19
-
20
- - 🎨 **现代化设计** - 简洁优雅的设计风格
21
- - 🔧 **TypeScript** - 完整的类型定义支持
22
- - 📦 **按需加载** - 支持 Tree Shaking,减小打包体积
23
- - ⚡ **Vue 3** - 基于 Vue 3 Composition API
24
- - 🎯 **开箱即用** - 丰富的组件,满足日常开发需求
25
- - 📱 **响应式** - 移动端友好的交互体验
26
-
27
- ## 📦 安装
28
-
29
- ```bash
30
- # npm
31
- npm install fantasia-ui
32
-
33
- # yarn
34
- yarn add fantasia-ui
35
-
36
- # pnpm
37
- pnpm add fantasia-ui
38
- ```
39
-
40
- ### 可选依赖
41
-
42
- 如果你需要使用图标组件,需要额外安装:
43
-
44
- ```bash
45
- # 安装图标库(可选)
46
- npm install @vicons/ionicons5
47
-
48
- # 如果使用了 VueUse 相关功能(可选)
49
- npm install @vueuse/core
50
- ```
51
-
52
- ## 🔨 快速开始
53
-
54
- ### 全局注册
55
-
56
- ```typescript
57
- // main.ts
58
- import { createApp } from 'vue'
59
- import FantasiaUI, { install } from 'fantasia-ui'
60
- import 'fantasia-ui/index.css'
61
- import App from './App.vue'
62
-
63
- const app = createApp(App)
64
- app.use(install)
65
- app.mount('#app')
66
- ```
67
-
68
- ### 按需引入
69
-
70
- ```vue
71
- <script setup lang="ts">
72
- import { FButton, FInput } from 'fantasia-ui'
73
- import 'fantasia-ui/index.css'
74
- </script>
75
-
76
- <template>
77
- <FButton type="primary">按钮</FButton>
78
- <FInput v-model="value" placeholder="请输入" />
79
- </template>
80
- ```
81
-
82
- ## 📚 组件列表
83
-
84
- ### 基础组件
85
- - **FButton** - 按钮
86
- - **FIcon** - 图标
87
- - **FText** - 文本
88
- - **FLink** - 链接
89
- - **FTypography** - 排版
90
-
91
- ### 布局组件
92
- - **FContainer** - 容器
93
- - **FRow** - 行
94
- - **FCol** - 列
95
- - **FSpace** - 间距
96
- - **FDivider** - 分割线
97
-
98
- ### 数据展示
99
- - **FCard** - 卡片
100
- - **FImage** - 图片
101
- - **FAvatar** - 头像
102
- - **FBadge** - 徽章
103
- - **FTag** - 标签
104
- - **FProgress** - 进度条
105
- - **FRate** - 评分
106
- - **FBreadcrumb** - 面包屑
107
-
108
- ### 表单组件
109
- - **FInput** - 输入框
110
- - **FSelect** - 选择器
111
- - **FUpload** - 上传
112
-
113
- ### 数据组件
114
- - **FPagination** - 分页
115
- - **FTabs** - 标签页
116
-
117
- ### 反馈组件
118
- - **FLoading** - 加载
119
- - **FTooltip** - 提示
120
- - **FSliderCaptcha** - 滑块验证
121
-
122
- ### 其他
123
- - **FDropdown** - 下拉菜单
124
- - **FAffix** - 固钉
125
-
126
- ## 📝 使用示例
127
-
128
- ### 按钮组件
129
-
130
- ```vue
131
- <script setup lang="ts">
132
- import { FButton } from 'fantasia-ui'
133
-
134
- const handleClick = () => {
135
- console.log('clicked!')
136
- }
137
- </script>
138
-
139
- <template>
140
- <FButton type="primary" @click="handleClick">
141
- 主要按钮
142
- </FButton>
143
- <FButton type="success">成功按钮</FButton>
144
- <FButton type="warning">警告按钮</FButton>
145
- <FButton type="danger">危险按钮</FButton>
146
- </template>
147
- ```
148
-
149
- ### 上传组件
150
-
151
- ```vue
152
- <script setup lang="ts">
153
- import { FUpload } from 'fantasia-ui'
154
-
155
- const handleUpload = (file: File, done: () => void, error: (err: any) => void) => {
156
- try {
157
- // 上传逻辑
158
- console.log('上传文件:', file)
159
- done()
160
- } catch (err) {
161
- error(err)
162
- }
163
- }
164
- </script>
165
-
166
- <template>
167
- <FUpload
168
- crop
169
- mosaic
170
- @upload="handleUpload"
171
- />
172
- </template>
173
- ```
174
-
175
- ### 分页组件
176
-
177
- ```vue
178
- <script setup lang="ts">
179
- import { FPagination } from 'fantasia-ui'
180
- import { ref } from 'vue'
181
-
182
- const currentPage = ref(1)
183
- const pageSize = ref(10)
184
- const total = ref(100)
185
-
186
- const handlePageChange = (page: number) => {
187
- currentPage.value = page
188
- console.log('当前页:', page)
189
- }
190
- </script>
191
-
192
- <template>
193
- <FPagination
194
- v-model:current-page="currentPage"
195
- v-model:page-size="pageSize"
196
- :total="total"
197
- @change="handlePageChange"
198
- />
199
- </template>
200
- ```
201
-
202
- ### 布局组件
203
-
204
- ```vue
205
- <script setup lang="ts">
206
- import { FRow, FCol, FSpace } from 'fantasia-ui'
207
- </script>
208
-
209
- <template>
210
- <!-- 栅格布局 -->
211
- <FRow :gutter="20">
212
- <FCol :span="12">列 1</FCol>
213
- <FCol :span="12">列 2</FCol>
214
- </FRow>
215
-
216
- <!-- 间距布局 -->
217
- <FSpace direction="horizontal" :size="16">
218
- <FButton>按钮 1</FButton>
219
- <FButton>按钮 2</FButton>
220
- <FButton>按钮 3</FButton>
221
- </FSpace>
222
- </template>
223
- ```
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
-
267
- ## 🎨 主题定制
268
-
269
- 组件库支持 CSS 变量自定义主题:
270
-
271
- ```css
272
- :root {
273
- --primary-color: #409eff;
274
- --success-color: #67c23a;
275
- --warning-color: #e6a23c;
276
- --danger-color: #f56c6c;
277
- --info-color: #909399;
278
- }
279
- ```
280
-
281
- ## 📝 TypeScript 支持
282
-
283
- Fantasia UI 提供完整的 TypeScript 类型定义:
284
-
285
- ```vue
286
- <script setup lang="ts">
287
- import { FButton } from 'fantasia-ui'
288
-
289
- // TypeScript 会自动推断 props 类型
290
- // 无需手动导入 FButtonProps
291
- </script>
292
-
293
- <template>
294
- <FButton variant="primary" size="large">
295
- 按钮
296
- </FButton>
297
- </template>
298
- ```
299
-
300
- ### 如果需要组件 Props 类型
301
-
302
- 可以使用 TypeScript 工具类型从组件推断:
303
-
304
- ```typescript
305
- import { FButton } from 'fantasia-ui'
306
- import type { ComponentProps } from 'vue'
307
-
308
- // 从组件推断 props 类型
309
- type FButtonProps = ComponentProps<typeof FButton>
310
-
311
- const buttonProps: FButtonProps = {
312
- variant: 'primary',
313
- size: 'large'
314
- }
315
- ```
316
-
317
- ### Volar / IDE 类型提示
318
-
319
- 如果编辑器无法提示组件属性,请参考 [类型支持文档](./TYPE_SUPPORT.md) 进行配置。
320
-
321
- **快速配置(全局注册):**
322
-
323
- 在 `tsconfig.json` 中添加:
324
-
325
- ```json
326
- {
327
- "compilerOptions": {
328
- "types": ["fantasia-ui/global"]
329
- }
330
- }
331
- ```
332
-
333
- 或在 `src/env.d.ts` 中添加:
334
-
335
- ```typescript
336
- /// <reference types="fantasia-ui/global" />
337
- ```
338
-
339
- ## 🔗 相关链接
340
-
341
- - [更新日志(中文)](./CHANGELOG.zh-CN.md)
342
- - [更新日志(English)](./CHANGELOG.md)
343
- - [类型支持文档](./TYPE_SUPPORT.md)
344
- - [优化报告](./OPTIMIZATION.md)
345
- - [构建问题解决方案](./BUILD_FIX.md)
346
- - [贡献指南](./CONTRIBUTING.md)
347
- - [发布指南](./.github/PUBLISH_GUIDE.md)
348
- - [问题反馈](https://github.com/ShusterLi/fantasia-ui/issues)
349
-
350
- ## 📄 开源协议
351
-
352
- [MIT](./LICENSE) License © 2026 Shuster
353
-
354
- ## 🤝 贡献
355
-
356
- 欢迎提交 Issue 和 Pull Request!
357
-
358
- 如果这个项目对你有帮助,请给一个 ⭐️ Star 支持一下!
1
+ # Fantasia UI
2
+
3
+ 项目文档已整理到 [docs/README.md](docs/README.md)。
4
+
5
+ - 中文文档入口: [docs/README.md](docs/README.md)
6
+ - 英文文档入口: [docs/README.en.md](docs/README.en.md)
7
+ - 变更日志: [docs/CHANGELOG.md](docs/CHANGELOG.md)
8
+ - 发布修复: [docs/BUILD_FIX.md](docs/BUILD_FIX.md)
9
+ - 贡献指南: [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md)
10
+ - 类型支持: [docs/TYPE_SUPPORT.md](docs/TYPE_SUPPORT.md)