@movk/nuxt 1.1.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/.nuxt/movk-ui.css +3 -0
  2. package/README.md +75 -104
  3. package/dist/module.d.mts +59 -1
  4. package/dist/module.json +2 -2
  5. package/dist/module.mjs +136 -56
  6. package/dist/runtime/components/AutoForm.d.vue.ts +10 -31
  7. package/dist/runtime/components/AutoForm.vue +114 -148
  8. package/dist/runtime/components/AutoForm.vue.d.ts +10 -31
  9. package/dist/runtime/components/ColorChooser.d.vue.ts +20 -17
  10. package/dist/runtime/components/ColorChooser.vue +305 -31
  11. package/dist/runtime/components/ColorChooser.vue.d.ts +20 -17
  12. package/dist/runtime/components/DataTable.d.vue.ts +57 -0
  13. package/dist/runtime/components/DataTable.vue +584 -0
  14. package/dist/runtime/components/DataTable.vue.d.ts +57 -0
  15. package/dist/runtime/components/DatePicker.d.vue.ts +15 -22
  16. package/dist/runtime/components/DatePicker.vue +173 -65
  17. package/dist/runtime/components/DatePicker.vue.d.ts +15 -22
  18. package/dist/runtime/components/MessageBox.d.vue.ts +36 -0
  19. package/dist/runtime/components/MessageBox.vue +113 -0
  20. package/dist/runtime/components/MessageBox.vue.d.ts +36 -0
  21. package/dist/runtime/components/PillGroup.d.vue.ts +33 -0
  22. package/dist/runtime/components/PillGroup.vue +291 -0
  23. package/dist/runtime/components/PillGroup.vue.d.ts +33 -0
  24. package/dist/runtime/components/Popconfirm.d.vue.ts +30 -0
  25. package/dist/runtime/components/Popconfirm.vue +143 -0
  26. package/dist/runtime/components/Popconfirm.vue.d.ts +30 -0
  27. package/dist/runtime/components/SearchForm.d.vue.ts +43 -0
  28. package/dist/runtime/components/SearchForm.vue +274 -0
  29. package/dist/runtime/components/SearchForm.vue.d.ts +43 -0
  30. package/dist/runtime/components/SlideVerify.d.vue.ts +13 -79
  31. package/dist/runtime/components/SlideVerify.vue +117 -90
  32. package/dist/runtime/components/SlideVerify.vue.d.ts +13 -79
  33. package/dist/runtime/components/StarRating.d.vue.ts +25 -82
  34. package/dist/runtime/components/StarRating.vue +128 -99
  35. package/dist/runtime/components/StarRating.vue.d.ts +25 -82
  36. package/dist/runtime/components/input/AsPhoneNumberInput.d.vue.ts +32 -0
  37. package/dist/runtime/components/input/AsPhoneNumberInput.vue +48 -0
  38. package/dist/runtime/components/input/AsPhoneNumberInput.vue.d.ts +32 -0
  39. package/dist/runtime/components/input/WithCharacterLimit.d.vue.ts +13 -7
  40. package/dist/runtime/components/input/WithCharacterLimit.vue +27 -15
  41. package/dist/runtime/components/input/WithCharacterLimit.vue.d.ts +13 -7
  42. package/dist/runtime/components/input/WithClear.d.vue.ts +11 -5
  43. package/dist/runtime/components/input/WithClear.vue +29 -10
  44. package/dist/runtime/components/input/WithClear.vue.d.ts +11 -5
  45. package/dist/runtime/components/input/WithCopy.d.vue.ts +13 -7
  46. package/dist/runtime/components/input/WithCopy.vue +28 -11
  47. package/dist/runtime/components/input/WithCopy.vue.d.ts +13 -7
  48. package/dist/runtime/components/input/WithFloatingLabel.d.vue.ts +33 -0
  49. package/dist/runtime/components/input/WithFloatingLabel.vue +75 -0
  50. package/dist/runtime/components/input/WithFloatingLabel.vue.d.ts +33 -0
  51. package/dist/runtime/components/input/WithPasswordToggle.d.vue.ts +13 -7
  52. package/dist/runtime/components/input/WithPasswordToggle.vue +27 -10
  53. package/dist/runtime/components/input/WithPasswordToggle.vue.d.ts +13 -7
  54. package/dist/runtime/components/theme-picker/ThemePicker.d.vue.ts +8 -1
  55. package/dist/runtime/components/theme-picker/ThemePicker.vue +37 -28
  56. package/dist/runtime/components/theme-picker/ThemePicker.vue.d.ts +8 -1
  57. package/dist/runtime/components/theme-picker/ThemePickerButton.d.vue.ts +5 -6
  58. package/dist/runtime/components/theme-picker/ThemePickerButton.vue +4 -0
  59. package/dist/runtime/components/theme-picker/ThemePickerButton.vue.d.ts +5 -6
  60. package/dist/runtime/composables/index.d.ts +9 -8
  61. package/dist/runtime/composables/index.js +2 -1
  62. package/dist/runtime/composables/useApiFetch.d.ts +23 -15
  63. package/dist/runtime/composables/useApiFetch.js +21 -28
  64. package/dist/runtime/composables/useAutoForm.d.ts +14 -98
  65. package/dist/runtime/composables/useAutoForm.js +55 -161
  66. package/dist/runtime/composables/useClientApiFetch.d.ts +7 -7
  67. package/dist/runtime/composables/useDateFormatter.d.ts +16 -3
  68. package/dist/runtime/composables/useDateFormatter.js +89 -30
  69. package/dist/runtime/composables/useDownloadWithProgress.d.ts +26 -27
  70. package/dist/runtime/composables/useDownloadWithProgress.js +143 -42
  71. package/dist/runtime/composables/useLazyApiFetch.d.ts +19 -0
  72. package/dist/runtime/composables/useLazyApiFetch.js +4 -0
  73. package/dist/runtime/composables/useMessageBox.d.ts +6 -0
  74. package/dist/runtime/composables/useMessageBox.js +16 -0
  75. package/dist/runtime/composables/useTheme.d.ts +21 -8
  76. package/dist/runtime/composables/useTheme.js +109 -86
  77. package/dist/runtime/composables/useUploadWithProgress.d.ts +22 -28
  78. package/dist/runtime/composables/useUploadWithProgress.js +79 -68
  79. package/dist/runtime/domains/api/auth.d.ts +2 -0
  80. package/dist/runtime/domains/api/auth.js +31 -0
  81. package/dist/runtime/domains/api/endpoint-config.d.ts +11 -0
  82. package/dist/runtime/domains/api/endpoint-config.js +17 -0
  83. package/dist/runtime/domains/api/errors.d.ts +2 -0
  84. package/dist/runtime/domains/api/errors.js +10 -0
  85. package/dist/runtime/domains/api/fetch-key.d.ts +20 -0
  86. package/dist/runtime/domains/api/fetch-key.js +23 -0
  87. package/dist/runtime/domains/api/interceptors/error.d.ts +13 -0
  88. package/dist/runtime/domains/api/interceptors/error.js +49 -0
  89. package/dist/runtime/domains/api/interceptors/request.d.ts +12 -0
  90. package/dist/runtime/domains/api/interceptors/request.js +46 -0
  91. package/dist/runtime/domains/api/interceptors/response.d.ts +17 -0
  92. package/dist/runtime/domains/api/interceptors/response.js +27 -0
  93. package/dist/runtime/domains/api/response.d.ts +4 -0
  94. package/dist/runtime/domains/api/response.js +14 -0
  95. package/dist/runtime/domains/api/toast.d.ts +15 -0
  96. package/dist/runtime/domains/api/toast.js +46 -0
  97. package/dist/runtime/domains/api/transfer.d.ts +69 -0
  98. package/dist/runtime/domains/api/transfer.js +81 -0
  99. package/dist/runtime/domains/auto-form/actions.d.ts +2 -0
  100. package/dist/runtime/domains/auto-form/actions.js +4 -0
  101. package/dist/runtime/domains/auto-form/components/Array.d.vue.ts +13 -0
  102. package/dist/runtime/{components/auto-form-renderer/AutoFormRendererArray.vue → domains/auto-form/components/Array.vue} +37 -48
  103. package/dist/runtime/domains/auto-form/components/Array.vue.d.ts +13 -0
  104. package/dist/runtime/domains/auto-form/components/Children.d.vue.ts +11 -0
  105. package/dist/runtime/domains/auto-form/components/Children.vue +50 -0
  106. package/dist/runtime/domains/auto-form/components/Children.vue.d.ts +11 -0
  107. package/dist/runtime/domains/auto-form/components/Field.d.vue.ts +11 -0
  108. package/dist/runtime/domains/auto-form/components/Field.vue +56 -0
  109. package/dist/runtime/domains/auto-form/components/Field.vue.d.ts +11 -0
  110. package/dist/runtime/domains/auto-form/components/Layout.d.vue.ts +11 -0
  111. package/dist/runtime/domains/auto-form/components/Layout.vue +89 -0
  112. package/dist/runtime/domains/auto-form/components/Layout.vue.d.ts +11 -0
  113. package/dist/runtime/domains/auto-form/components/Nested.d.vue.ts +11 -0
  114. package/dist/runtime/domains/auto-form/components/Nested.vue +47 -0
  115. package/dist/runtime/domains/auto-form/components/Nested.vue.d.ts +11 -0
  116. package/dist/runtime/{constants/auto-form.d.ts → domains/auto-form/constants.d.ts} +0 -2
  117. package/dist/runtime/{constants/auto-form.js → domains/auto-form/constants.js} +0 -25
  118. package/dist/runtime/domains/auto-form/controls.d.ts +41 -0
  119. package/dist/runtime/domains/auto-form/controls.js +73 -0
  120. package/dist/runtime/{utils/field-utils.d.ts → domains/auto-form/fields.d.ts} +7 -21
  121. package/dist/runtime/{utils/field-utils.js → domains/auto-form/fields.js} +19 -4
  122. package/dist/runtime/domains/auto-form/metadata.d.ts +22 -0
  123. package/dist/runtime/domains/auto-form/metadata.js +53 -0
  124. package/dist/runtime/domains/auto-form/provider.d.ts +62 -0
  125. package/dist/runtime/{internal/useAutoFormProvider.js → domains/auto-form/provider.js} +6 -3
  126. package/dist/runtime/domains/auto-form/reactive.d.ts +12 -0
  127. package/dist/runtime/{utils/reactive-utils.js → domains/auto-form/reactive.js} +1 -1
  128. package/dist/runtime/domains/auto-form/schema.d.ts +7 -0
  129. package/dist/runtime/{utils/schema-introspector.js → domains/auto-form/schema.js} +12 -10
  130. package/dist/runtime/domains/data-table/columns/constants.d.ts +50 -0
  131. package/dist/runtime/domains/data-table/columns/constants.js +19 -0
  132. package/dist/runtime/domains/data-table/columns/resolve-columns.d.ts +4 -0
  133. package/dist/runtime/domains/data-table/columns/resolve-columns.js +59 -0
  134. package/dist/runtime/domains/data-table/columns/resolve-data-column.d.ts +9 -0
  135. package/dist/runtime/domains/data-table/columns/resolve-data-column.js +164 -0
  136. package/dist/runtime/domains/data-table/columns/resolve-group-column.d.ts +4 -0
  137. package/dist/runtime/domains/data-table/columns/resolve-group-column.js +19 -0
  138. package/dist/runtime/domains/data-table/columns/resolve-special-columns.d.ts +8 -0
  139. package/dist/runtime/domains/data-table/columns/resolve-special-columns.js +232 -0
  140. package/dist/runtime/domains/data-table/columns/style.d.ts +11 -0
  141. package/dist/runtime/domains/data-table/columns/style.js +67 -0
  142. package/dist/runtime/domains/data-table/columns/utils.d.ts +6 -0
  143. package/dist/runtime/domains/data-table/columns/utils.js +16 -0
  144. package/dist/runtime/domains/data-table/components/ActionConfirm.d.vue.ts +10 -0
  145. package/dist/runtime/domains/data-table/components/ActionConfirm.vue +39 -0
  146. package/dist/runtime/domains/data-table/components/ActionConfirm.vue.d.ts +10 -0
  147. package/dist/runtime/domains/data-table/components/ActionsCell.d.vue.ts +11 -0
  148. package/dist/runtime/domains/data-table/components/ActionsCell.vue +91 -0
  149. package/dist/runtime/domains/data-table/components/ActionsCell.vue.d.ts +11 -0
  150. package/dist/runtime/domains/data-table/components/CellTooltip.d.vue.ts +9 -0
  151. package/dist/runtime/domains/data-table/components/CellTooltip.vue +40 -0
  152. package/dist/runtime/domains/data-table/components/CellTooltip.vue.d.ts +9 -0
  153. package/dist/runtime/domains/data-table/components/Pagination.d.vue.ts +26 -0
  154. package/dist/runtime/domains/data-table/components/Pagination.vue +132 -0
  155. package/dist/runtime/domains/data-table/components/Pagination.vue.d.ts +26 -0
  156. package/dist/runtime/domains/data-table/indent.d.ts +8 -0
  157. package/dist/runtime/domains/data-table/indent.js +19 -0
  158. package/dist/runtime/domains/data-table/tree-selection.d.ts +9 -0
  159. package/dist/runtime/domains/data-table/tree-selection.js +76 -0
  160. package/dist/runtime/{utils/theme.d.ts → domains/theme/theme-icons.d.ts} +0 -1
  161. package/dist/runtime/index.css +1 -0
  162. package/dist/runtime/plugins/api.factory.js +28 -171
  163. package/dist/runtime/plugins/theme.js +72 -70
  164. package/dist/runtime/types/api/config.d.ts +127 -0
  165. package/dist/runtime/types/api/fetch.d.ts +50 -0
  166. package/dist/runtime/types/api/index.d.ts +5 -0
  167. package/dist/runtime/types/api/module.d.ts +94 -0
  168. package/dist/runtime/types/api/response.d.ts +62 -0
  169. package/dist/runtime/types/api/transfer.d.ts +32 -0
  170. package/dist/runtime/types/api/transfer.js +0 -0
  171. package/dist/runtime/types/app.config.d.ts +6 -0
  172. package/dist/runtime/types/auto-form/base.d.ts +26 -0
  173. package/dist/runtime/types/auto-form/base.js +0 -0
  174. package/dist/runtime/types/auto-form/component.d.ts +28 -0
  175. package/dist/runtime/types/auto-form/component.js +0 -0
  176. package/dist/runtime/types/auto-form/controls.d.ts +45 -0
  177. package/dist/runtime/types/auto-form/controls.js +0 -0
  178. package/dist/runtime/types/auto-form/fields.d.ts +68 -0
  179. package/dist/runtime/types/auto-form/fields.js +0 -0
  180. package/dist/runtime/types/auto-form/index.d.ts +7 -0
  181. package/dist/runtime/types/auto-form/index.js +0 -0
  182. package/dist/runtime/types/auto-form/search-form.d.ts +84 -0
  183. package/dist/runtime/types/auto-form/search-form.js +0 -0
  184. package/dist/runtime/types/auto-form/slots.d.ts +85 -0
  185. package/dist/runtime/types/auto-form/slots.js +0 -0
  186. package/dist/runtime/types/auto-form/zod-factory.d.ts +127 -0
  187. package/dist/runtime/types/auto-form/zod-factory.js +0 -0
  188. package/dist/runtime/types/components/color-chooser.d.ts +109 -0
  189. package/dist/runtime/types/components/color-chooser.js +0 -0
  190. package/dist/runtime/types/components/date-picker.d.ts +41 -0
  191. package/dist/runtime/types/components/date-picker.js +0 -0
  192. package/dist/runtime/types/components/index.d.ts +8 -0
  193. package/dist/runtime/types/components/index.js +0 -0
  194. package/dist/runtime/types/components/input/as-phone-number-input.d.ts +17 -0
  195. package/dist/runtime/types/components/input/as-phone-number-input.js +0 -0
  196. package/dist/runtime/types/components/input/index.d.ts +6 -0
  197. package/dist/runtime/types/components/input/index.js +0 -0
  198. package/dist/runtime/types/components/input/with-character-limit.d.ts +11 -0
  199. package/dist/runtime/types/components/input/with-character-limit.js +0 -0
  200. package/dist/runtime/types/components/input/with-clear.d.ts +10 -0
  201. package/dist/runtime/types/components/input/with-clear.js +0 -0
  202. package/dist/runtime/types/components/input/with-copy.d.ts +11 -0
  203. package/dist/runtime/types/components/input/with-copy.js +0 -0
  204. package/dist/runtime/types/components/input/with-floating-label.d.ts +12 -0
  205. package/dist/runtime/types/components/input/with-floating-label.js +0 -0
  206. package/dist/runtime/types/components/input/with-password-toggle.d.ts +7 -0
  207. package/dist/runtime/types/components/input/with-password-toggle.js +0 -0
  208. package/dist/runtime/types/components/message-box.d.ts +69 -0
  209. package/dist/runtime/types/components/message-box.js +0 -0
  210. package/dist/runtime/types/components/pill-group.d.ts +103 -0
  211. package/dist/runtime/types/components/pill-group.js +0 -0
  212. package/dist/runtime/types/components/popconfirm.d.ts +74 -0
  213. package/dist/runtime/types/components/popconfirm.js +0 -0
  214. package/dist/runtime/types/components/slide-verify.d.ts +54 -0
  215. package/dist/runtime/types/components/slide-verify.js +0 -0
  216. package/dist/runtime/types/components/star-rating.d.ts +55 -0
  217. package/dist/runtime/types/components/star-rating.js +0 -0
  218. package/dist/runtime/types/data-table/columns.d.ts +236 -0
  219. package/dist/runtime/types/data-table/columns.js +6 -0
  220. package/dist/runtime/types/data-table/component.d.ts +190 -0
  221. package/dist/runtime/types/data-table/component.js +0 -0
  222. package/dist/runtime/types/data-table/contexts.d.ts +44 -0
  223. package/dist/runtime/types/data-table/contexts.js +0 -0
  224. package/dist/runtime/types/data-table/index.d.ts +6 -0
  225. package/dist/runtime/types/data-table/index.js +1 -0
  226. package/dist/runtime/types/data-table/pagination.d.ts +87 -0
  227. package/dist/runtime/types/data-table/pagination.js +0 -0
  228. package/dist/runtime/types/index.d.ts +6 -5
  229. package/dist/runtime/types/index.js +5 -5
  230. package/dist/runtime/types/shared.d.ts +5 -0
  231. package/dist/runtime/types/shared.js +0 -0
  232. package/dist/runtime/types/zod.d.ts +19 -17
  233. package/dist/runtime/utils/extend-theme.d.ts +19 -0
  234. package/dist/runtime/utils/extend-theme.js +44 -0
  235. package/dist/runtime/utils/form-control.d.ts +33 -0
  236. package/dist/runtime/utils/form-control.js +54 -0
  237. package/dist/runtime/utils/meta.d.ts +4 -0
  238. package/dist/runtime/utils/meta.js +14 -0
  239. package/dist/runtime/utils/theme-defaults.d.ts +27 -0
  240. package/dist/runtime/utils/theme-defaults.js +28 -0
  241. package/dist/runtime/utils/tv.d.ts +1 -0
  242. package/dist/runtime/utils/tv.js +4 -0
  243. package/dist/runtime/vue/composables/useSiteConfig.d.ts +13 -0
  244. package/dist/runtime/vue/composables/useSiteConfig.js +11 -0
  245. package/dist/runtime/vue/plugins/theme.d.ts +6 -0
  246. package/dist/runtime/vue/plugins/theme.js +14 -0
  247. package/dist/runtime/vue/stubs/base.d.ts +2 -0
  248. package/dist/runtime/vue/stubs/base.js +2 -0
  249. package/dist/runtime/vue/stubs/inertia.d.ts +2 -0
  250. package/dist/runtime/vue/stubs/inertia.js +2 -0
  251. package/dist/runtime/vue/stubs/movk-extra.d.ts +2 -0
  252. package/dist/runtime/vue/stubs/movk-extra.js +2 -0
  253. package/dist/runtime/vue/stubs/none.d.ts +2 -0
  254. package/dist/runtime/vue/stubs/none.js +2 -0
  255. package/dist/runtime/vue/stubs/vue-router.d.ts +2 -0
  256. package/dist/runtime/vue/stubs/vue-router.js +2 -0
  257. package/dist/shared/nuxt.DfBEyjld.mjs +667 -0
  258. package/dist/types.d.mts +2 -6
  259. package/dist/unplugin.d.mts +28 -0
  260. package/dist/unplugin.mjs +292 -0
  261. package/dist/vite.d.mts +12 -0
  262. package/dist/vite.mjs +20 -0
  263. package/package.json +82 -42
  264. package/vue-plugin.d.ts +5 -0
  265. package/dist/runtime/components/auto-form-renderer/AutoFormRendererArray.d.vue.ts +0 -20
  266. package/dist/runtime/components/auto-form-renderer/AutoFormRendererArray.vue.d.ts +0 -20
  267. package/dist/runtime/components/auto-form-renderer/AutoFormRendererField.d.vue.ts +0 -20
  268. package/dist/runtime/components/auto-form-renderer/AutoFormRendererField.vue +0 -55
  269. package/dist/runtime/components/auto-form-renderer/AutoFormRendererField.vue.d.ts +0 -20
  270. package/dist/runtime/components/auto-form-renderer/AutoFormRendererLayout.d.vue.ts +0 -20
  271. package/dist/runtime/components/auto-form-renderer/AutoFormRendererLayout.vue +0 -125
  272. package/dist/runtime/components/auto-form-renderer/AutoFormRendererLayout.vue.d.ts +0 -20
  273. package/dist/runtime/components/auto-form-renderer/AutoFormRendererNested.d.vue.ts +0 -20
  274. package/dist/runtime/components/auto-form-renderer/AutoFormRendererNested.vue +0 -105
  275. package/dist/runtime/components/auto-form-renderer/AutoFormRendererNested.vue.d.ts +0 -20
  276. package/dist/runtime/composables/useApiAuth.d.ts +0 -47
  277. package/dist/runtime/composables/useApiAuth.js +0 -66
  278. package/dist/runtime/internal/useAutoFormProvider.d.ts +0 -50
  279. package/dist/runtime/schemas/api.d.ts +0 -590
  280. package/dist/runtime/schemas/api.js +0 -228
  281. package/dist/runtime/server/api/_movk/session.post.d.ts +0 -10
  282. package/dist/runtime/server/api/_movk/session.post.js +0 -18
  283. package/dist/runtime/style.css +0 -1
  284. package/dist/runtime/types/api.d.ts +0 -218
  285. package/dist/runtime/types/auth.d.ts +0 -34
  286. package/dist/runtime/types/auto-form-renderer.d.ts +0 -22
  287. package/dist/runtime/types/auto-form.d.ts +0 -548
  288. package/dist/runtime/types/components.d.ts +0 -43
  289. package/dist/runtime/types/module.d.ts +0 -39
  290. package/dist/runtime/utils/api-utils.d.ts +0 -79
  291. package/dist/runtime/utils/api-utils.js +0 -127
  292. package/dist/runtime/utils/auto-form.d.ts +0 -3
  293. package/dist/runtime/utils/auto-form.js +0 -18
  294. package/dist/runtime/utils/reactive-utils.d.ts +0 -30
  295. package/dist/runtime/utils/schema-introspector.d.ts +0 -13
  296. /package/dist/runtime/{utils/theme.js → domains/theme/theme-icons.js} +0 -0
  297. /package/dist/runtime/types/{api.js → api/config.js} +0 -0
  298. /package/dist/runtime/types/{auto-form-renderer.js → api/fetch.js} +0 -0
  299. /package/dist/runtime/types/{auto-form.js → api/index.js} +0 -0
  300. /package/dist/runtime/types/{module.js → api/module.js} +0 -0
  301. /package/dist/runtime/types/{components.js → api/response.js} +0 -0
@@ -0,0 +1,109 @@
1
+ import type { VNode } from 'vue';
2
+ import type { ButtonProps, ColorPickerProps, IconProps, PopoverProps } from '@nuxt/ui';
3
+ import type { OmitByKey } from '@movk/core';
4
+ import type { ClassNameValue } from '../shared';
5
+ type PopoverMode = 'click' | 'hover';
6
+ export type ColorFormat = NonNullable<ColorPickerProps['format']>;
7
+ export type ColorChooserTrigger = 'button' | 'chip' | 'input';
8
+ export interface ColorChooserProps<M extends PopoverMode = PopoverMode> extends /** @vue-ignore */ OmitByKey<PopoverProps<M>, 'open' | 'defaultOpen' | 'ui'> {
9
+ id?: string;
10
+ name?: string;
11
+ /**
12
+ * 当前激活的颜色格式。
13
+ * @defaultValue 'hex'
14
+ */
15
+ format?: ColorFormat;
16
+ /**
17
+ * 启用的颜色格式 tab 列表,长度 >= 2 时在 popover 顶部渲染切换器。
18
+ * 仅一项时不渲染 tab,等价于 `format`。
19
+ * @defaultValue ['hex']
20
+ */
21
+ formats?: ColorFormat[];
22
+ /**
23
+ * 预设色板。
24
+ * 一维数组渲染为单行,二维数组渲染为多行分组。
25
+ */
26
+ swatches?: string[] | string[][];
27
+ /**
28
+ * 点击预设色后是否自动关闭弹层。
29
+ * @defaultValue true
30
+ */
31
+ closeOnSwatch?: boolean;
32
+ /** 是否在底部 actions 区显示清除按钮。 */
33
+ clearable?: boolean;
34
+ /** actions 区显示复制按钮(基于 navigator.clipboard)。 */
35
+ copyable?: boolean;
36
+ /**
37
+ * 触发器形态。
38
+ * - `button`:色点 + 色值 / label 的常规按钮(默认)
39
+ * - `chip`:仅一个圆形色点
40
+ * - `input`:色点 leading + 可输入色值文本框
41
+ * @defaultValue 'button'
42
+ */
43
+ trigger?: ColorChooserTrigger;
44
+ /** `trigger='button'` 时按钮上的文本,未传则显示当前色值。 */
45
+ label?: string;
46
+ /**
47
+ * 未选中颜色时的占位文案。
48
+ * @defaultValue '选择颜色'
49
+ */
50
+ placeholder?: string;
51
+ /**
52
+ * 触发器尺寸,同时驱动主题 size variant。
53
+ * @defaultValue 'md'
54
+ */
55
+ size?: ButtonProps['size'];
56
+ /** 触发按钮的颜色(trigger=button|chip 生效)。 */
57
+ color?: ButtonProps['color'];
58
+ /**
59
+ * 触发按钮的视觉变体(trigger=button|chip 生效)。
60
+ * @defaultValue 'subtle'
61
+ */
62
+ variant?: ButtonProps['variant'];
63
+ /** 是否禁用。禁用时弹层不会打开、所有交互失效。 */
64
+ disabled?: boolean;
65
+ /** Highlight the ring color like a focus state. */
66
+ highlight?: boolean;
67
+ /**
68
+ * 未选中颜色时占位的图标。
69
+ * @IconifyIcon
70
+ * @defaultValue 'i-lucide-palette'
71
+ */
72
+ icon?: IconProps['name'];
73
+ /**
74
+ * 透传给 `UColorPicker` 的属性。
75
+ * `modelValue`、`format`、`disabled` 由组件内部托管。
76
+ */
77
+ colorPickerProps?: Omit<ColorPickerProps, 'modelValue' | 'format' | 'disabled'>;
78
+ ui?: Record<string, ClassNameValue>;
79
+ }
80
+ export interface ColorChooserEmits {
81
+ 'update:modelValue': [value: string | undefined];
82
+ 'update:open': [open: boolean];
83
+ 'change': [value: string | undefined];
84
+ 'clear': [];
85
+ 'copy': [value: string];
86
+ 'format-change': [format: ColorFormat];
87
+ }
88
+ export interface ColorChooserSlots {
89
+ default?(props: {
90
+ open: boolean;
91
+ value: string | undefined;
92
+ }): VNode[];
93
+ leading?(props: {
94
+ value: string | undefined;
95
+ }): VNode[];
96
+ trailing?(props: {
97
+ value: string | undefined;
98
+ }): VNode[];
99
+ swatches?(props: {
100
+ swatches: string[][];
101
+ select: (color: string) => void;
102
+ }): VNode[];
103
+ actions?(props: {
104
+ value: string | undefined;
105
+ copy: () => void;
106
+ clear: () => void;
107
+ }): VNode[];
108
+ }
109
+ export {};
File without changes
@@ -0,0 +1,41 @@
1
+ import type { ButtonProps, ButtonSlots, CalendarEmits, CalendarProps, CalendarSlots, PopoverEmits, PopoverProps, PopoverSlots } from '@nuxt/ui';
2
+ import type { OmitByKey } from '@movk/core';
3
+ import type { DateValue } from '@internationalized/date';
4
+ import type { DateFormatter, DateFormatterOptions, ValueFormat } from '../../composables/useDateFormatter';
5
+ import type { ClassNameValue } from '../shared';
6
+ export type { ValueFormat } from '../../composables/useDateFormatter';
7
+ export type LabelFormat = 'iso' | 'formatted' | 'date' | 'timestamp' | 'unix';
8
+ export type DatePickerLabelFormatter<R extends boolean, M extends boolean> = (formatter: DateFormatter, modelValue: CalendarProps<R, M>['modelValue']) => string;
9
+ type PopoverMode = 'click' | 'hover';
10
+ type FormattedSingle<V extends ValueFormat> = V extends 'date-value' ? DateValue : V extends 'iso' ? string : V extends 'timestamp' ? number : V extends 'unix' ? number : V extends 'date' ? Date : never;
11
+ export type FormattedValue<R extends boolean, M extends boolean, V extends ValueFormat> = M extends true ? FormattedSingle<V>[] : R extends true ? {
12
+ start: FormattedSingle<V> | undefined;
13
+ end: FormattedSingle<V> | undefined;
14
+ } | undefined : FormattedSingle<V> | undefined;
15
+ export interface DatePickerPreset<R extends boolean, M extends boolean> {
16
+ label: string;
17
+ value: CalendarProps<R, M>['modelValue'] | ((formatter: DateFormatter) => CalendarProps<R, M>['modelValue']);
18
+ }
19
+ export interface DatePickerProps<R extends boolean, M extends boolean, P extends PopoverMode = PopoverMode, V extends ValueFormat = 'date-value'> extends DateFormatterOptions,
20
+ /** @vue-ignore */ OmitByKey<CalendarProps<R, M>, 'modelValue' | 'placeholder' | 'ui'> {
21
+ id?: string;
22
+ name?: string;
23
+ /** @defaultValue '选择日期' */
24
+ placeholder?: string;
25
+ buttonProps?: ButtonProps;
26
+ popoverProps?: PopoverProps<P>;
27
+ labelFormat?: LabelFormat | DatePickerLabelFormatter<R, M>;
28
+ /**
29
+ * v-model 投影输出格式
30
+ * @defaultValue 'date-value'
31
+ */
32
+ valueFormat?: V;
33
+ clearable?: boolean;
34
+ /** 快捷预设 */
35
+ presets?: DatePickerPreset<R, M>[] | 'default';
36
+ ui?: Record<string, ClassNameValue>;
37
+ }
38
+ export type DatePickerEmits<R extends boolean, M extends boolean, V extends ValueFormat = 'date-value'> = PopoverEmits & Omit<CalendarEmits<R, M>, 'update:modelValue'> & {
39
+ 'update:modelValue': [value: FormattedValue<R, M, V>];
40
+ };
41
+ export type DatePickerSlots<P extends PopoverMode = PopoverMode> = OmitByKey<PopoverSlots<P>, 'anchor'> & CalendarSlots & OmitByKey<ButtonSlots, 'default'>;
File without changes
@@ -0,0 +1,8 @@
1
+ export type { ColorChooserEmits, ColorChooserProps, ColorChooserSlots, ColorChooserTrigger, ColorFormat } from './color-chooser';
2
+ export type { DatePickerEmits, DatePickerLabelFormatter, DatePickerPreset, DatePickerProps, FormattedValue, LabelFormat, ValueFormat } from './date-picker';
3
+ export type { MessageBoxEmits, MessageBoxProps, MessageBoxSlots } from './message-box';
4
+ export type { PopconfirmEmits, PopconfirmProps, PopconfirmSlots } from './popconfirm';
5
+ export type { SlideVerifyEmits, SlideVerifyProps, SlideVerifySlots } from './slide-verify';
6
+ export type { StarRatingEmits, StarRatingProps } from './star-rating';
7
+ export type { PillGroupEmits, PillGroupProps, PillGroupSlots, PillItem, PillGroupValue, PillSelectPayload } from './pill-group';
8
+ export type { AsPhoneNumberInputProps, WithCharacterLimitProps, WithClearEmits, WithClearProps, WithCopyEmits, WithCopyProps, WithFloatingLabelEmits, WithFloatingLabelProps, WithPasswordToggleProps } from './input';
File without changes
@@ -0,0 +1,17 @@
1
+ import type { InputProps, InputValue } from '@nuxt/ui';
2
+ import type { OmitByKey } from '@movk/core';
3
+ import type { ClassNameValue } from '../../shared';
4
+ export interface AsPhoneNumberInputProps<T extends InputValue = InputValue> extends /** @vue-ignore */ OmitByKey<InputProps<T>, 'type' | 'modelValue' | 'ui'> {
5
+ /**
6
+ * 输入掩码格式,`#` 表示一个数字位。
7
+ * @defaultValue '(###) ###-####'
8
+ */
9
+ mask?: string;
10
+ /**
11
+ * 区号前缀
12
+ * @defaultValue '+86'
13
+ * @example '+1'、'+44'
14
+ */
15
+ dialCode?: string;
16
+ ui?: Record<string, ClassNameValue>;
17
+ }
@@ -0,0 +1,6 @@
1
+ export type { AsPhoneNumberInputProps } from './as-phone-number-input';
2
+ export type { WithCharacterLimitProps } from './with-character-limit';
3
+ export type { WithClearEmits, WithClearProps } from './with-clear';
4
+ export type { WithCopyEmits, WithCopyProps } from './with-copy';
5
+ export type { WithFloatingLabelEmits, WithFloatingLabelProps } from './with-floating-label';
6
+ export type { WithPasswordToggleProps } from './with-password-toggle';
File without changes
@@ -0,0 +1,11 @@
1
+ import type { InputProps, InputValue } from '@nuxt/ui';
2
+ import type { OmitByKey } from '@movk/core';
3
+ import type { ClassNameValue } from '../../shared';
4
+ export interface WithCharacterLimitProps<T extends InputValue = InputValue> extends /** @vue-ignore */ OmitByKey<InputProps<T>, 'modelValue' | 'ui'> {
5
+ /**
6
+ * 最大允许输入的字符数
7
+ * @defaultValue 50
8
+ */
9
+ maxLength?: number;
10
+ ui?: Record<string, ClassNameValue>;
11
+ }
@@ -0,0 +1,10 @@
1
+ import type { ButtonProps, InputEmits, InputProps, InputValue } from '@nuxt/ui';
2
+ import type { OmitByKey } from '@movk/core';
3
+ import type { ClassNameValue } from '../../shared';
4
+ export interface WithClearProps<T extends InputValue = InputValue> extends /** @vue-ignore */ OmitByKey<InputProps<T>, 'modelValue' | 'ui'> {
5
+ buttonProps?: ButtonProps;
6
+ ui?: Record<string, ClassNameValue>;
7
+ }
8
+ export type WithClearEmits<T extends InputValue = InputValue> = InputEmits<T> & {
9
+ clear: [];
10
+ };
@@ -0,0 +1,11 @@
1
+ import type { ButtonProps, InputEmits, InputProps, InputValue, TooltipProps } from '@nuxt/ui';
2
+ import type { OmitByKey } from '@movk/core';
3
+ import type { ClassNameValue } from '../../shared';
4
+ export interface WithCopyProps<T extends InputValue = InputValue> extends /** @vue-ignore */ OmitByKey<InputProps<T>, 'modelValue' | 'ui'> {
5
+ buttonProps?: ButtonProps;
6
+ tooltipProps?: TooltipProps;
7
+ ui?: Record<string, ClassNameValue>;
8
+ }
9
+ export type WithCopyEmits<T extends InputValue = InputValue> = InputEmits<T> & {
10
+ copy: [value: string];
11
+ };
@@ -0,0 +1,12 @@
1
+ import type { ButtonProps, InputEmits, InputProps, InputValue } from '@nuxt/ui';
2
+ import type { OmitByKey } from '@movk/core';
3
+ import type { ClassNameValue } from '../../shared';
4
+ export interface WithFloatingLabelProps<T extends InputValue = InputValue> extends /** @vue-ignore */ OmitByKey<InputProps<T>, 'modelValue' | 'size' | 'ui'> {
5
+ label?: string;
6
+ size?: InputProps<T>['size'];
7
+ clearButtonProps?: ButtonProps;
8
+ ui?: Record<string, ClassNameValue>;
9
+ }
10
+ export type WithFloatingLabelEmits<T extends InputValue = InputValue> = InputEmits<T> & {
11
+ clear: [];
12
+ };
@@ -0,0 +1,7 @@
1
+ import type { ButtonProps, InputProps, InputValue } from '@nuxt/ui';
2
+ import type { OmitByKey } from '@movk/core';
3
+ import type { ClassNameValue } from '../../shared';
4
+ export interface WithPasswordToggleProps<T extends InputValue = InputValue> extends /** @vue-ignore */ OmitByKey<InputProps<T>, 'type' | 'modelValue' | 'ui'> {
5
+ buttonProps?: ButtonProps;
6
+ ui?: Record<string, ClassNameValue>;
7
+ }
@@ -0,0 +1,69 @@
1
+ import type { ButtonProps, IconProps, ModalProps, ModalSlots } from '@nuxt/ui';
2
+ import type { OmitByKey } from '@movk/core';
3
+ import type { ClassNameValue, SemanticColor } from '../shared';
4
+ export interface MessageBoxProps extends /** @vue-ignore */ OmitByKey<ModalProps, 'title' | 'open' | 'defaultOpen' | 'dismissible' | 'ui'> {
5
+ /**
6
+ * 模态框标题文本。
7
+ * @defaultValue '提示'
8
+ */
9
+ title?: string;
10
+ /**
11
+ * 控制消息框的语义类型。
12
+ * 会影响默认图标与确认按钮颜色。
13
+ * @defaultValue 'primary'
14
+ */
15
+ type?: SemanticColor;
16
+ /**
17
+ * 标题前展示的图标名称。
18
+ * @IconifyIcon
19
+ * @defaultValue 'i-lucide-circle-question-mark'
20
+ */
21
+ icon?: IconProps['name'];
22
+ /**
23
+ * 控制消息框的操作模式。
24
+ * `alert` 仅显示确认按钮,`confirm` 显示取消与确认按钮。
25
+ * @defaultValue 'alert'
26
+ */
27
+ mode?: 'alert' | 'confirm';
28
+ /**
29
+ * 当 `false` 时,点击遮罩层或按下 `Esc` 键将不会关闭模态框。
30
+ * @defaultValue false
31
+ */
32
+ dismissible?: boolean;
33
+ /**
34
+ * alert 模式下的确认按钮文本。
35
+ * @defaultValue '知道了'
36
+ */
37
+ alertConfirmLabel?: string;
38
+ /**
39
+ * 确认按钮文本。
40
+ * @defaultValue '确认'
41
+ */
42
+ confirmLabel?: string;
43
+ /**
44
+ * 取消按钮文本。
45
+ * @defaultValue '取消'
46
+ */
47
+ cancelLabel?: string;
48
+ /**
49
+ * 透传给确认按钮的属性。
50
+ * 未显式指定 `color` 时会默认继承当前 `type`。
51
+ */
52
+ confirmButton?: ButtonProps;
53
+ /**
54
+ * 透传给取消按钮的属性。
55
+ * 仅在 `mode='confirm'` 时渲染。
56
+ */
57
+ cancelButton?: ButtonProps;
58
+ ui?: Record<string, ClassNameValue>;
59
+ }
60
+ export interface MessageBoxEmits {
61
+ /**
62
+ * 模态框关闭时触发。
63
+ * - `true`:用户点击了确认
64
+ * - `false`:用户点击了取消或通过其他方式关闭
65
+ */
66
+ close: [confirmed: boolean];
67
+ }
68
+ export interface MessageBoxSlots extends ModalSlots {
69
+ }
File without changes
@@ -0,0 +1,103 @@
1
+ import type { VNode } from 'vue';
2
+ import type { AcceptableValue, AvatarProps, ButtonProps, GetItemKeys, GetModelValue } from '@nuxt/ui';
3
+ import type { ClassNameValue } from '../shared';
4
+ export type PillGroupValue = AcceptableValue;
5
+ type PillItemUI = 'item' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'leading' | 'trailing';
6
+ export type PillItem = PillGroupValue | {
7
+ value?: PillGroupValue;
8
+ label?: string;
9
+ description?: string;
10
+ disabled?: boolean;
11
+ icon?: string;
12
+ avatar?: AvatarProps;
13
+ variant?: ButtonProps['variant'];
14
+ color?: ButtonProps['color'];
15
+ onSelect?: (e: Event) => void;
16
+ class?: ClassNameValue;
17
+ ui?: Partial<Record<PillItemUI, ClassNameValue>>;
18
+ [key: string]: any;
19
+ };
20
+ export interface PillGroupProps<T extends PillItem = PillItem, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> {
21
+ items?: T[];
22
+ valueKey?: VK;
23
+ /** @defaultValue 'label' */
24
+ labelKey?: GetItemKeys<T>;
25
+ /** @defaultValue 'description' */
26
+ descriptionKey?: GetItemKeys<T>;
27
+ /**
28
+ * 对象模式下判定 selected 的比较依据。string 走 `getPath` 比较(multiple=true 时启用 Map O(1));
29
+ * function 自定义比较;不传则按 [valueKey, 'value', labelKey] 启发式回退。
30
+ */
31
+ by?: string | ((a: T, b: T) => boolean);
32
+ /**
33
+ * 排列方向
34
+ * @defaultValue 'horizontal'
35
+ */
36
+ orientation?: 'horizontal' | 'vertical';
37
+ /**
38
+ * 按钮尺寸
39
+ * @defaultValue 'md'
40
+ */
41
+ size?: ButtonProps['size'];
42
+ /**
43
+ * 按钮颜色
44
+ * @defaultValue 'primary'
45
+ */
46
+ color?: ButtonProps['color'];
47
+ /**
48
+ * 选中态单项视觉变体
49
+ * @defaultValue 'solid'
50
+ */
51
+ activeVariant?: ButtonProps['variant'];
52
+ /**
53
+ * 未选中态单项视觉变体
54
+ * @defaultValue 'soft'
55
+ */
56
+ inactiveVariant?: ButtonProps['variant'];
57
+ disabled?: boolean;
58
+ /** 是否可以多选 */
59
+ multiple?: M & boolean;
60
+ /** 单选:再次点击当前选中项清空(多选模式下被忽略) */
61
+ deselectable?: boolean;
62
+ /** 多选:最多可选数量 */
63
+ max?: number;
64
+ /** 多选:最少需保留数量 */
65
+ min?: number;
66
+ defaultValue?: GetModelValue<T, VK, M>;
67
+ modelValue?: GetModelValue<T, VK, M>;
68
+ class?: ClassNameValue;
69
+ ui?: Record<string, ClassNameValue>;
70
+ }
71
+ type ItemSlotProps<T extends PillItem> = (props: {
72
+ item: T;
73
+ index: number;
74
+ selected: boolean;
75
+ }) => VNode[];
76
+ type GroupSlotProps<T extends PillItem, VK extends GetItemKeys<T> | undefined, M extends boolean> = (props: {
77
+ modelValue: GetModelValue<T, VK, M> | undefined;
78
+ items: T[];
79
+ }) => VNode[];
80
+ export interface PillGroupSlots<T extends PillItem = PillItem, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> {
81
+ 'leading'?: GroupSlotProps<T, VK, M>;
82
+ 'default'?: GroupSlotProps<T, VK, M>;
83
+ 'trailing'?: GroupSlotProps<T, VK, M>;
84
+ 'item'?: ItemSlotProps<T>;
85
+ 'item-leading'?: ItemSlotProps<T>;
86
+ 'item-label'?: ItemSlotProps<T>;
87
+ 'item-description'?: ItemSlotProps<T>;
88
+ 'item-trailing'?: ItemSlotProps<T>;
89
+ }
90
+ export interface PillSelectPayload<T extends PillItem> {
91
+ item: T;
92
+ value: PillGroupValue | T;
93
+ selected: boolean;
94
+ index: number;
95
+ }
96
+ export interface PillGroupEmits<T extends PillItem, VK extends GetItemKeys<T> | undefined, M extends boolean> {
97
+ 'blur': [event: FocusEvent];
98
+ 'focus': [event: FocusEvent];
99
+ 'change': [value: GetModelValue<T, VK, M>];
100
+ 'update:modelValue': [value: GetModelValue<T, VK, M>];
101
+ 'select': [payload: PillSelectPayload<T>];
102
+ }
103
+ export {};
File without changes
@@ -0,0 +1,74 @@
1
+ import type { VNode } from 'vue';
2
+ import type { ButtonProps, IconProps, LinkPropsKeys, PopoverProps, PopoverSlots } from '@nuxt/ui';
3
+ import type { OmitByKey, VoidCallback } from '@movk/core';
4
+ import type { ClassNameValue, SemanticColor } from '../shared';
5
+ type PopoverMode = 'click' | 'hover';
6
+ export interface PopconfirmProps<M extends PopoverMode = PopoverMode> extends /** @vue-ignore */ OmitByKey<PopoverProps<M>, 'open' | 'defaultOpen' | 'dismissible' | 'arrow' | 'ui'> {
7
+ /**
8
+ * 确认气泡的标题文本。
9
+ * @defaultValue '确认操作'
10
+ */
11
+ title?: string;
12
+ /**
13
+ * 标题下方的补充说明。
14
+ * 传入空字符串时可隐藏描述区。
15
+ * @defaultValue '请确认是否执行此操作?'
16
+ */
17
+ description?: string;
18
+ /**
19
+ * 预设的语义化颜色主题,会影响图标。
20
+ * @defaultValue 'neutral'
21
+ */
22
+ type?: SemanticColor;
23
+ /**
24
+ * 标题前展示的图标名称。
25
+ * @IconifyIcon
26
+ * @defaultValue 'i-lucide-circle-question-mark'
27
+ */
28
+ icon?: IconProps['name'];
29
+ /**
30
+ * 气泡内容与触发器之间的箭头指示。
31
+ * @defaultValue true
32
+ */
33
+ arrow?: boolean;
34
+ /**
35
+ * 透传给确认按钮的属性。
36
+ * `loading` 状态由组件内部托管。
37
+ */
38
+ confirmButton?: OmitByKey<ButtonProps, 'loading' | LinkPropsKeys>;
39
+ /**
40
+ * 透传给取消按钮的属性。
41
+ * 传入 `false` 可完全隐藏取消按钮。
42
+ * @defaultValue true
43
+ */
44
+ cancelButton?: ButtonProps | boolean;
45
+ /**
46
+ * 当 `false` 时,点击遮罩层或按下 `Esc` 键将不会关闭弹层。
47
+ * @defaultValue false
48
+ */
49
+ dismissible?: boolean;
50
+ /**
51
+ * 点击确认按钮时执行的回调。
52
+ * 支持返回 `Promise`,期间确认按钮自动进入 loading 状态。
53
+ * 回调成功完成后弹层自动关闭并触发 `confirm` 事件;抛错时保持弹层打开。
54
+ */
55
+ onConfirm?: VoidCallback;
56
+ ui?: Record<string, ClassNameValue>;
57
+ }
58
+ export interface PopconfirmEmits {
59
+ confirm: [];
60
+ cancel: [];
61
+ error: [error: unknown];
62
+ }
63
+ export interface PopconfirmSlots<M extends PopoverMode = PopoverMode> {
64
+ default?(props: {
65
+ open: boolean;
66
+ }): VNode[];
67
+ header?: PopoverSlots<M>['content'];
68
+ title?: PopoverSlots<M>['content'];
69
+ description?: PopoverSlots<M>['content'];
70
+ actions?: PopoverSlots<M>['content'];
71
+ body?: PopoverSlots<M>['content'];
72
+ footer?: PopoverSlots<M>['content'];
73
+ }
74
+ export {};
File without changes
@@ -0,0 +1,54 @@
1
+ import type { VNode } from 'vue';
2
+ import type { ClassNameValue } from '../shared';
3
+ import type { IconProps } from '@nuxt/ui';
4
+ export interface SlideVerifyProps {
5
+ id?: string;
6
+ name?: string;
7
+ /**
8
+ * 尺寸大小
9
+ * @defaultValue 'md'
10
+ */
11
+ size?: string;
12
+ /** 是否禁用 */
13
+ disabled?: boolean;
14
+ /**
15
+ * 待滑动时的提示文本
16
+ * @defaultValue '请向右滑动验证'
17
+ */
18
+ text?: string;
19
+ /**
20
+ * 验证成功时的提示文本
21
+ * @defaultValue '验证成功'
22
+ */
23
+ successText?: string;
24
+ /**
25
+ * 滑块图标
26
+ * @IconifyIcon
27
+ * @defaultValue 'i-lucide-chevrons-right'
28
+ */
29
+ icon?: IconProps['name'];
30
+ /**
31
+ * 验证成功时的图标
32
+ * @IconifyIcon
33
+ * @defaultValue 'i-lucide-check'
34
+ */
35
+ successIcon?: IconProps['name'];
36
+ /**
37
+ * 完成验证所需的阈值百分比(0-1)
38
+ * @defaultValue 0.9
39
+ */
40
+ threshold?: number;
41
+ class?: ClassNameValue;
42
+ ui?: Record<string, ClassNameValue>;
43
+ }
44
+ export interface SlideVerifyEmits {
45
+ success: [];
46
+ dragStart: [];
47
+ dragEnd: [success: boolean];
48
+ }
49
+ export interface SlideVerifySlots {
50
+ slider?(props: {
51
+ verified?: boolean;
52
+ progress: number;
53
+ }): VNode[];
54
+ }
File without changes
@@ -0,0 +1,55 @@
1
+ import type { ButtonProps, IconProps } from '@nuxt/ui';
2
+ import type { ClassNameValue } from '../shared';
3
+ export interface StarRatingProps {
4
+ id?: string;
5
+ name?: string;
6
+ /**
7
+ * 最大星级数
8
+ * @defaultValue 5
9
+ */
10
+ max?: number;
11
+ /** 是否禁用 */
12
+ disabled?: boolean;
13
+ /** Highlight the ring color like a focus state. */
14
+ highlight?: boolean;
15
+ /** 是否只读 */
16
+ readonly?: boolean;
17
+ /**
18
+ * 是否显示评分徽章
19
+ * @defaultValue true
20
+ */
21
+ showBadge?: boolean;
22
+ buttonProps?: ButtonProps;
23
+ /**
24
+ * 未选中星星的图标
25
+ * @IconifyIcon
26
+ * @defaultValue 'i-lucide-star'
27
+ */
28
+ emptyIcon?: IconProps['name'];
29
+ /**
30
+ * 选中星星的图标
31
+ * @IconifyIcon
32
+ * @defaultValue 'i-lucide-star'
33
+ */
34
+ filledIcon?: IconProps['name'];
35
+ /**
36
+ * 半星图标
37
+ * @IconifyIcon
38
+ * @defaultValue 'i-lucide-star-half'
39
+ */
40
+ halfIcon?: IconProps['name'];
41
+ /** 选中星星的颜色 */
42
+ color?: ButtonProps['color'];
43
+ /** 星星大小 @defaultValue 'md' */
44
+ size?: ButtonProps['size'];
45
+ /** 是否允许半星 */
46
+ allowHalf?: boolean;
47
+ /** 是否允许清除评分 */
48
+ clearable?: boolean;
49
+ class?: ClassNameValue;
50
+ ui?: Record<string, ClassNameValue>;
51
+ }
52
+ export interface StarRatingEmits {
53
+ change: [value: number];
54
+ hover: [value: number | null];
55
+ }
File without changes