fantasia-ui 0.2.39 → 0.2.44

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 +3323 -524
  5. package/dist/fantasia-ui.umd.js +3301 -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.en.md CHANGED
@@ -1,358 +1,10 @@
1
1
  # Fantasia UI
2
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
- A modern UI component library based on Vue 3 + TypeScript
12
- </p>
13
-
14
- <p align="center">
15
- English | <a href="./README.md">简体中文</a>
16
- </p>
17
-
18
- ## ✨ Features
19
-
20
- - 🎨 **Modern Design** - Clean and elegant design style
21
- - 🔧 **TypeScript** - Full TypeScript support with type definitions
22
- - 📦 **Tree Shaking** - Support on-demand loading to reduce bundle size
23
- - ⚡ **Vue 3** - Built with Vue 3 Composition API
24
- - 🎯 **Out of the Box** - Rich components for daily development needs
25
- - 📱 **Responsive** - Mobile-friendly interaction experience
26
-
27
- ## 📦 Installation
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
- ### Optional Dependencies
41
-
42
- If you need to use icon components, install additionally:
43
-
44
- ```bash
45
- # Install icon library (optional)
46
- npm install @vicons/ionicons5
47
-
48
- # If using VueUse features (optional)
49
- npm install @vueuse/core
50
- ```
51
-
52
- ## 🔨 Quick Start
53
-
54
- ### Global Registration
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
- ### Import on Demand
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">Button</FButton>
78
- <FInput v-model="value" placeholder="Please input" />
79
- </template>
80
- ```
81
-
82
- ## 📚 Component List
83
-
84
- ### Basic Components
85
- - **FButton** - Button
86
- - **FIcon** - Icon
87
- - **FText** - Text
88
- - **FLink** - Link
89
- - **FTypography** - Typography
90
-
91
- ### Layout Components
92
- - **FContainer** - Container
93
- - **FRow** - Row
94
- - **FCol** - Column
95
- - **FSpace** - Space
96
- - **FDivider** - Divider
97
-
98
- ### Data Display
99
- - **FCard** - Card
100
- - **FImage** - Image
101
- - **FAvatar** - Avatar
102
- - **FBadge** - Badge
103
- - **FTag** - Tag
104
- - **FProgress** - Progress
105
- - **FRate** - Rate
106
- - **FBreadcrumb** - Breadcrumb
107
-
108
- ### Form Components
109
- - **FInput** - Input
110
- - **FSelect** - Select
111
- - **FUpload** - Upload
112
-
113
- ### Data Components
114
- - **FPagination** - Pagination
115
- - **FTabs** - Tabs
116
-
117
- ### Feedback Components
118
- - **FLoading** - Loading
119
- - **FTooltip** - Tooltip
120
- - **FSliderCaptcha** - Slider Captcha
121
-
122
- ### Others
123
- - **FDropdown** - Dropdown
124
- - **FAffix** - Affix
125
-
126
- ## 📝 Usage Examples
127
-
128
- ### Button Component
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
- Primary Button
142
- </FButton>
143
- <FButton type="success">Success Button</FButton>
144
- <FButton type="warning">Warning Button</FButton>
145
- <FButton type="danger">Danger Button</FButton>
146
- </template>
147
- ```
148
-
149
- ### Upload Component
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
- // Upload logic
158
- console.log('Upload file:', 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
- ### Pagination Component
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('Current page:', 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
- ### Layout Components
203
-
204
- ```vue
205
- <script setup lang="ts">
206
- import { FRow, FCol, FSpace } from 'fantasia-ui'
207
- </script>
208
-
209
- <template>
210
- <!-- Grid Layout -->
211
- <FRow :gutter="20">
212
- <FCol :span="12">Column 1</FCol>
213
- <FCol :span="12">Column 2</FCol>
214
- </FRow>
215
-
216
- <!-- Space Layout -->
217
- <FSpace direction="horizontal" :size="16">
218
- <FButton>Button 1</FButton>
219
- <FButton>Button 2</FButton>
220
- <FButton>Button 3</FButton>
221
- </FSpace>
222
- </template>
223
- ```
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
-
267
- ## 🎨 Theme Customization
268
-
269
- The component library supports theme customization via CSS variables:
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 Support
282
-
283
- Fantasia UI provides complete TypeScript type definitions:
284
-
285
- ```vue
286
- <script setup lang="ts">
287
- import { FButton } from 'fantasia-ui'
288
-
289
- // TypeScript will automatically infer props types
290
- // No need to manually import FButtonProps
291
- </script>
292
-
293
- <template>
294
- <FButton variant="primary" size="large">
295
- Button
296
- </FButton>
297
- </template>
298
- ```
299
-
300
- ### If you need component Props types
301
-
302
- You can use TypeScript utility types to infer from components:
303
-
304
- ```typescript
305
- import { FButton } from 'fantasia-ui'
306
- import type { ComponentProps } from 'vue'
307
-
308
- // Infer props type from component
309
- type FButtonProps = ComponentProps<typeof FButton>
310
-
311
- const buttonProps: FButtonProps = {
312
- variant: 'primary',
313
- size: 'large'
314
- }
315
- ```
316
-
317
- ### Volar / IDE Type Hints
318
-
319
- If your editor cannot suggest component props, please refer to [Type Support Documentation](./TYPE_SUPPORT.md) for configuration.
320
-
321
- **Quick Setup (Global Registration):**
322
-
323
- Add to `tsconfig.json`:
324
-
325
- ```json
326
- {
327
- "compilerOptions": {
328
- "types": ["fantasia-ui/global"]
329
- }
330
- }
331
- ```
332
-
333
- Or add to `src/env.d.ts`:
334
-
335
- ```typescript
336
- /// <reference types="fantasia-ui/global" />
337
- ```
338
-
339
- ## 🔗 Links
340
-
341
- - [Changelog (中文)](./CHANGELOG.zh-CN.md)
342
- - [Changelog (English)](./CHANGELOG.md)
343
- - [Type Support Documentation](./TYPE_SUPPORT.md)
344
- - [Optimization Report](./OPTIMIZATION.md)
345
- - [Build Issue Solutions](./BUILD_FIX.md)
346
- - [Contributing Guide](./CONTRIBUTING.md)
347
- - [Publish Guide](./.github/PUBLISH_GUIDE.md)
348
- - [Issues](https://github.com/ShusterLi/fantasia-ui/issues)
349
-
350
- ## 📄 License
351
-
352
- [MIT](./LICENSE) License © 2026 Shuster
353
-
354
- ## 🤝 Contributing
355
-
356
- Issues and Pull Requests are welcome!
357
-
358
- If this project helps you, please give it a ⭐️ Star!
3
+ The project documentation has been organized under [docs/README.en.md](docs/README.en.md).
4
+
5
+ - Chinese docs: [docs/README.md](docs/README.md)
6
+ - English docs: [docs/README.en.md](docs/README.en.md)
7
+ - Changelog: [docs/CHANGELOG.md](docs/CHANGELOG.md)
8
+ - Build fix notes: [docs/BUILD_FIX.md](docs/BUILD_FIX.md)
9
+ - Contribution guide: [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md)
10
+ - Type support: [docs/TYPE_SUPPORT.md](docs/TYPE_SUPPORT.md)