@robot-admin/naive-ui-components 0.11.7 → 0.12.1

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 (185) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +146 -29
  3. package/README_EN.md +146 -29
  4. package/SECURITY.md +1 -0
  5. package/dist/C_ActionBar.cjs +1 -1
  6. package/dist/C_ActionBar.css +53 -53
  7. package/dist/C_ActionBar.d.cts +2 -2
  8. package/dist/C_ActionBar.d.ts +2 -2
  9. package/dist/C_ActionBar.js +1 -1
  10. package/dist/C_ActionBar2.cjs +1 -1
  11. package/dist/C_ActionBar2.js +1 -1
  12. package/dist/C_AntV.css +67 -67
  13. package/dist/C_AntV2.cjs +3 -3
  14. package/dist/C_AntV2.js +3 -3
  15. package/dist/C_AudioPlayer.d.cts +1 -1
  16. package/dist/C_AudioPlayer.d.ts +1 -1
  17. package/dist/C_AvatarGroup.d.cts +1 -1
  18. package/dist/C_AvatarGroup.d.ts +1 -1
  19. package/dist/C_Barcode.d.cts +1 -1
  20. package/dist/C_Barcode.d.ts +1 -1
  21. package/dist/C_Breadcrumb.d.cts +1 -1
  22. package/dist/C_Breadcrumb.d.ts +1 -1
  23. package/dist/C_Captcha.cjs +1 -1
  24. package/dist/C_Captcha.css +193 -51
  25. package/dist/C_Captcha.d.cts +2 -3
  26. package/dist/C_Captcha.d.ts +2 -3
  27. package/dist/C_Captcha.js +1 -1
  28. package/dist/C_Captcha2.cjs +1 -1
  29. package/dist/C_Captcha2.js +1 -1
  30. package/dist/C_Cascade.d.cts +1 -1
  31. package/dist/C_Cascade.d.ts +1 -1
  32. package/dist/C_Chat.d.cts +1 -1
  33. package/dist/C_Chat.d.ts +1 -1
  34. package/dist/C_City.d.cts +1 -1
  35. package/dist/C_City.d.ts +1 -1
  36. package/dist/C_Code.d.cts +1 -1
  37. package/dist/C_Code.d.ts +1 -1
  38. package/dist/C_ContextMenu.d.cts +1 -1
  39. package/dist/C_ContextMenu.d.ts +1 -1
  40. package/dist/C_Date.d.cts +1 -1
  41. package/dist/C_Date.d.ts +1 -1
  42. package/dist/C_Editor.d.cts +1 -1
  43. package/dist/C_Editor.d.ts +1 -1
  44. package/dist/C_FormModal.cjs +1 -0
  45. package/dist/C_FormModal.css +41 -0
  46. package/dist/C_FormModal.d.cts +2 -0
  47. package/dist/C_FormModal.d.ts +3 -0
  48. package/dist/C_FormModal.js +1 -0
  49. package/dist/C_FormModal2.cjs +1 -0
  50. package/dist/C_FormModal2.js +1 -0
  51. package/dist/C_Login.css +210 -127
  52. package/dist/C_Login2.cjs +1 -1
  53. package/dist/C_Login2.js +1 -1
  54. package/dist/C_Map.css +3 -3
  55. package/dist/C_Map2.cjs +1 -1
  56. package/dist/C_Map2.js +1 -1
  57. package/dist/C_Menu.d.cts +1 -1
  58. package/dist/C_Table.base.css +86 -86
  59. package/dist/C_Table.cjs +1 -1
  60. package/dist/C_Table.css +86 -86
  61. package/dist/C_Table.d.ts +4 -3
  62. package/dist/C_Table.js +1 -1
  63. package/dist/C_Tabs.cjs +1 -0
  64. package/dist/C_Tabs.css +1 -0
  65. package/dist/C_Tabs.d.cts +2 -0
  66. package/dist/C_Tabs.d.ts +2 -0
  67. package/dist/C_Tabs.js +1 -0
  68. package/dist/C_TagsView.css +38 -38
  69. package/dist/C_TagsView2.cjs +1 -1
  70. package/dist/C_TagsView2.js +1 -1
  71. package/dist/C_VtableGantt.css +19 -19
  72. package/dist/C_VtableGantt2.cjs +1 -1
  73. package/dist/C_VtableGantt2.js +1 -1
  74. package/dist/constants.d.cts +2 -2
  75. package/dist/constants.d.ts +2 -2
  76. package/dist/constants2.d.cts +2 -2
  77. package/dist/constants2.d.ts +2 -2
  78. package/dist/constants3.d.cts +2 -2
  79. package/dist/constants3.d.ts +2 -2
  80. package/dist/constants4.d.cts +4 -4
  81. package/dist/constants4.d.ts +4 -4
  82. package/dist/constants5.d.cts +2 -2
  83. package/dist/constants5.d.ts +2 -2
  84. package/dist/data.d.cts +108 -0
  85. package/dist/data.d.ts +108 -0
  86. package/dist/data2.cjs +1 -0
  87. package/dist/data2.js +1 -0
  88. package/dist/index.cjs +1 -1
  89. package/dist/index.d.cts +49 -48
  90. package/dist/index.d.ts +51 -49
  91. package/dist/index.js +1 -1
  92. package/dist/index.vue.d.cts +72 -69
  93. package/dist/index.vue.d.ts +72 -69
  94. package/dist/index10.vue.d.cts +80 -39
  95. package/dist/index10.vue.d.ts +68 -77
  96. package/dist/index11.vue.d.cts +68 -77
  97. package/dist/index11.vue.d.ts +53 -68
  98. package/dist/index12.vue.d.cts +53 -68
  99. package/dist/index12.vue.d.ts +52 -58
  100. package/dist/index13.vue.d.cts +52 -58
  101. package/dist/index13.vue.d.ts +3 -3
  102. package/dist/index14.vue.d.cts +3 -3
  103. package/dist/index14.vue.d.ts +5 -5
  104. package/dist/index15.vue.d.cts +5 -5
  105. package/dist/index15.vue.d.ts +2 -2
  106. package/dist/index16.vue.d.cts +2 -2
  107. package/dist/index16.vue.d.ts +14 -11
  108. package/dist/index17.vue.d.cts +14 -11
  109. package/dist/index17.vue.d.ts +4 -4
  110. package/dist/index18.vue.d.cts +4 -4
  111. package/dist/index18.vue.d.ts +3 -3
  112. package/dist/index19.vue.d.cts +2 -2
  113. package/dist/index19.vue.d.ts +2 -2
  114. package/dist/index2.vue.d.cts +70 -65
  115. package/dist/index2.vue.d.ts +70 -65
  116. package/dist/index20.vue.d.cts +1 -1
  117. package/dist/index20.vue.d.ts +1 -1
  118. package/dist/index21.vue.d.cts +2 -2
  119. package/dist/index21.vue.d.ts +2 -2
  120. package/dist/index22.vue.d.cts +1 -1
  121. package/dist/index22.vue.d.ts +1 -1
  122. package/dist/index24.vue.d.cts +2 -2
  123. package/dist/index24.vue.d.ts +2 -2
  124. package/dist/index25.vue.d.cts +1 -1
  125. package/dist/index25.vue.d.ts +1 -1
  126. package/dist/index27.vue.d.cts +2 -2
  127. package/dist/index27.vue.d.ts +2 -2
  128. package/dist/index3.vue.d.cts +30 -80
  129. package/dist/index3.vue.d.ts +30 -80
  130. package/dist/index4.vue.d.cts +130 -30
  131. package/dist/index4.vue.d.ts +22 -30
  132. package/dist/index5.vue.d.cts +18 -126
  133. package/dist/index5.vue.d.ts +22 -19
  134. package/dist/index6.vue.d.cts +22 -19
  135. package/dist/index6.vue.d.ts +117 -22
  136. package/dist/index7.vue.d.cts +117 -22
  137. package/dist/index7.vue.d.ts +17 -110
  138. package/dist/index8.vue.d.cts +17 -110
  139. package/dist/index8.vue.d.ts +37 -24
  140. package/dist/index9.vue.d.cts +37 -24
  141. package/dist/index9.vue.d.ts +80 -39
  142. package/dist/mapUtils.d.cts +4 -4
  143. package/dist/mapUtils.d.ts +4 -4
  144. package/dist/presets.d.cts +96 -0
  145. package/dist/presets.d.ts +96 -0
  146. package/dist/resolver.cjs +1 -1
  147. package/dist/resolver.d.cts +1 -1
  148. package/dist/resolver.d.ts +1 -1
  149. package/dist/resolver.js +1 -1
  150. package/dist/style.css +520 -393
  151. package/dist/useCalendarEvents.d.cts +1 -1
  152. package/dist/useCalendarEvents.d.ts +1 -1
  153. package/dist/useCollapsePanel.d.cts +8 -8
  154. package/dist/useCollapsePanel.d.ts +8 -8
  155. package/dist/useCropperCore.d.cts +9 -9
  156. package/dist/useCropperCore.d.ts +9 -9
  157. package/dist/useDraggableLayout.d.cts +2 -2
  158. package/dist/useDraggableLayout.d.ts +2 -2
  159. package/dist/useEdgeInteraction.d.cts +3 -2
  160. package/dist/useEdgeInteraction.d.ts +3 -2
  161. package/dist/useInfiniteScroll.d.cts +1 -1
  162. package/dist/useInfiniteScroll.d.ts +1 -1
  163. package/dist/useQRCode.d.cts +4 -4
  164. package/dist/useQRCode.d.ts +4 -4
  165. package/dist/useSearchState.d.cts +6 -6
  166. package/dist/useSearchState.d.ts +6 -6
  167. package/dist/useSignatureHistory.d.cts +4 -4
  168. package/dist/useSignatureHistory.d.ts +4 -4
  169. package/dist/useSplitResize.d.cts +6 -6
  170. package/dist/useSplitResize.d.ts +6 -6
  171. package/dist/useTableQuery.cjs +3 -3
  172. package/dist/useTableQuery.d.cts +10 -0
  173. package/dist/useTableQuery.d.ts +10 -0
  174. package/dist/useTableQuery.js +3 -3
  175. package/dist/useTimeSelection.d.cts +5 -5
  176. package/dist/useTimeSelection.d.ts +5 -5
  177. package/dist/useTreeOperations.d.cts +8 -8
  178. package/dist/useTreeOperations.d.ts +8 -8
  179. package/dist/useWorkflowValidation.d.cts +4 -4
  180. package/dist/useWorkflowValidation.d.ts +4 -4
  181. package/dist/verification.d.cts +70 -5
  182. package/dist/verification.d.ts +70 -5
  183. package/package.json +2 -1
  184. package/dist/types.d.ts +0 -58
  185. package/dist/types2.d.cts +0 -58
@@ -41,8 +41,8 @@ declare const __VLS_export: vue.DefineComponent<Props, {
41
41
  insertText: (text: string) => void;
42
42
  wordCount: vue.ComputedRef<number>;
43
43
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
44
- "update:modelValue": (value: string) => any;
45
44
  change: (text: string, html: string) => any;
45
+ "update:modelValue": (value: string) => any;
46
46
  save: (text: string, html: string) => any;
47
47
  "upload-image": (event: Event, insertImage: InsertImageFunction, files: FileList) => any;
48
48
  "fullscreen-change": (isFullscreen: boolean) => any;
@@ -51,8 +51,8 @@ declare const __VLS_export: vue.DefineComponent<Props, {
51
51
  "auto-save": (text: string) => any;
52
52
  "max-length-exceeded": (currentLength: number, maxLength: number) => any;
53
53
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
54
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
55
54
  onChange?: ((text: string, html: string) => any) | undefined;
55
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
56
56
  onSave?: ((text: string, html: string) => any) | undefined;
57
57
  "onUpload-image"?: ((event: Event, insertImage: InsertImageFunction, files: FileList) => any) | undefined;
58
58
  "onFullscreen-change"?: ((isFullscreen: boolean) => any) | undefined;
@@ -62,11 +62,10 @@ declare const __VLS_export: vue.DefineComponent<Props, {
62
62
  "onMax-length-exceeded"?: ((currentLength: number, maxLength: number) => any) | undefined;
63
63
  }>, {
64
64
  height: string | number;
65
- modelValue: string;
66
65
  mode: "edit" | "editable" | "preview";
66
+ modelValue: string;
67
67
  placeholder: string;
68
68
  disabled: boolean;
69
- isDark: boolean;
70
69
  tocNavPosition: "left" | "right";
71
70
  defaultFullscreen: boolean;
72
71
  autofocus: boolean;
@@ -77,6 +76,7 @@ declare const __VLS_export: vue.DefineComponent<Props, {
77
76
  showWordCount: boolean;
78
77
  autoSave: boolean;
79
78
  autoSaveInterval: number;
79
+ isDark: boolean;
80
80
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
81
81
  declare const _default: typeof __VLS_export;
82
82
  //#endregion
@@ -41,8 +41,8 @@ declare const __VLS_export: vue.DefineComponent<Props, {
41
41
  insertText: (text: string) => void;
42
42
  wordCount: vue.ComputedRef<number>;
43
43
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
44
- "update:modelValue": (value: string) => any;
45
44
  change: (text: string, html: string) => any;
45
+ "update:modelValue": (value: string) => any;
46
46
  save: (text: string, html: string) => any;
47
47
  "upload-image": (event: Event, insertImage: InsertImageFunction, files: FileList) => any;
48
48
  "fullscreen-change": (isFullscreen: boolean) => any;
@@ -51,8 +51,8 @@ declare const __VLS_export: vue.DefineComponent<Props, {
51
51
  "auto-save": (text: string) => any;
52
52
  "max-length-exceeded": (currentLength: number, maxLength: number) => any;
53
53
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
54
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
55
54
  onChange?: ((text: string, html: string) => any) | undefined;
55
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
56
56
  onSave?: ((text: string, html: string) => any) | undefined;
57
57
  "onUpload-image"?: ((event: Event, insertImage: InsertImageFunction, files: FileList) => any) | undefined;
58
58
  "onFullscreen-change"?: ((isFullscreen: boolean) => any) | undefined;
@@ -62,11 +62,10 @@ declare const __VLS_export: vue.DefineComponent<Props, {
62
62
  "onMax-length-exceeded"?: ((currentLength: number, maxLength: number) => any) | undefined;
63
63
  }>, {
64
64
  height: string | number;
65
- modelValue: string;
66
65
  mode: "edit" | "editable" | "preview";
66
+ modelValue: string;
67
67
  placeholder: string;
68
68
  disabled: boolean;
69
- isDark: boolean;
70
69
  tocNavPosition: "left" | "right";
71
70
  defaultFullscreen: boolean;
72
71
  autofocus: boolean;
@@ -77,6 +76,7 @@ declare const __VLS_export: vue.DefineComponent<Props, {
77
76
  showWordCount: boolean;
78
77
  autoSave: boolean;
79
78
  autoSaveInterval: number;
79
+ isDark: boolean;
80
80
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
81
81
  declare const _default: typeof __VLS_export;
82
82
  //#endregion
@@ -52,25 +52,25 @@ declare const __VLS_export: vue.DefineComponent<MenuProps, {
52
52
  deriveResponsiveState: () => void;
53
53
  } | null>;
54
54
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
55
- "update:modelValue": (key: MenuValue) => any;
56
55
  select: (key: string) => any;
56
+ "update:modelValue": (key: MenuValue) => any;
57
57
  intent: (key: string) => any;
58
58
  "update:value": (key: MenuValue) => any;
59
59
  "update:expandedKeys": (keys: string[]) => any;
60
60
  }, string, vue.PublicProps, Readonly<MenuProps> & Readonly<{
61
- "onUpdate:modelValue"?: ((key: MenuValue) => any) | undefined;
62
61
  onSelect?: ((key: string) => any) | undefined;
62
+ "onUpdate:modelValue"?: ((key: MenuValue) => any) | undefined;
63
63
  onIntent?: ((key: string) => any) | undefined;
64
64
  "onUpdate:value"?: ((key: MenuValue) => any) | undefined;
65
65
  "onUpdate:expandedKeys"?: ((keys: string[]) => any) | undefined;
66
66
  }>, {
67
67
  mode: "vertical" | "horizontal";
68
- indent: number;
69
68
  defaultExpandedKeys: string[];
70
69
  collapsed: boolean;
71
70
  collapsedWidth: number;
72
71
  collapsedIconSize: number;
73
72
  inverted: boolean;
73
+ indent: number;
74
74
  rootIndent: number;
75
75
  dropdownProps: naive_ui0.DropdownProps;
76
76
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -77,9 +77,8 @@ declare const __VLS_base: vue.DefineComponent<OrgChartProps, {
77
77
  "onNode-expand"?: ((node: OrgChartNode) => any) | undefined;
78
78
  "onNode-collapse"?: ((node: OrgChartNode) => any) | undefined;
79
79
  }>, {
80
- direction: OrgChartDirection;
81
- collapsible: boolean;
82
80
  lineColor: string;
81
+ direction: OrgChartDirection;
83
82
  lineStyle: OrgChartLineStyle;
84
83
  lineWidth: number;
85
84
  nodeSpacing: number;
@@ -89,6 +88,7 @@ declare const __VLS_base: vue.DefineComponent<OrgChartProps, {
89
88
  initialZoom: number;
90
89
  minZoom: number;
91
90
  maxZoom: number;
91
+ collapsible: boolean;
92
92
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
93
93
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
94
94
  declare const _default: typeof __VLS_export;
@@ -77,9 +77,8 @@ declare const __VLS_base: vue.DefineComponent<OrgChartProps, {
77
77
  "onNode-expand"?: ((node: OrgChartNode) => any) | undefined;
78
78
  "onNode-collapse"?: ((node: OrgChartNode) => any) | undefined;
79
79
  }>, {
80
- direction: OrgChartDirection;
81
- collapsible: boolean;
82
80
  lineColor: string;
81
+ direction: OrgChartDirection;
83
82
  lineStyle: OrgChartLineStyle;
84
83
  lineWidth: number;
85
84
  nodeSpacing: number;
@@ -89,6 +88,7 @@ declare const __VLS_base: vue.DefineComponent<OrgChartProps, {
89
88
  initialZoom: number;
90
89
  minZoom: number;
91
90
  maxZoom: number;
91
+ collapsible: boolean;
92
92
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
93
93
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
94
94
  declare const _default: typeof __VLS_export;
@@ -1,82 +1,87 @@
1
1
  import * as vue from "vue";
2
2
 
3
- //#region src/components/C_AudioPlayer/types.d.ts
3
+ //#region src/components/C_AvatarGroup/types.d.ts
4
4
  /**
5
- * @Description: Audio player component type definitions
6
- * Copyright (c) 2026 by CHENY, All Rights Reserved.
5
+ * @Description: 头像组组件类型定义
6
+ * Copyright (c) 2026 by CHENY, All Rights Reserved 😎.
7
7
  */
8
- /** Single audio track */
9
- interface AudioTrack {
10
- /** Unique identifier */
8
+ /** 单个头像数据 */
9
+ interface AvatarItem {
10
+ /** 唯一标识 */
11
11
  id: string | number;
12
- /** Track title */
13
- title: string;
14
- /** Artist / author */
15
- artist?: string;
16
- /** Audio source URL */
17
- src: string;
18
- /** Cover image URL */
19
- cover?: string;
20
- /** Duration in seconds (optional, for static display) */
21
- duration?: number;
22
- /** Extra data */
12
+ /** 头像图片 URL */
13
+ src?: string;
14
+ /** 姓名(用于首字母 fallback 和 tooltip) */
15
+ name: string;
16
+ /** 悬浮提示(默认取 name) */
17
+ tooltip?: string;
18
+ /** 在线状态 */
19
+ status?: 'online' | 'offline' | 'busy' | 'away';
20
+ /** 额外数据 */
23
21
  extra?: Record<string, unknown>;
24
22
  }
25
- /** Component props */
26
- interface AudioPlayerProps {
27
- /** Playlist */
28
- tracks: AudioTrack[];
29
- /** Initial active index */
30
- initialIndex?: number;
31
- /** Whether to show the playlist panel */
32
- showPlaylist?: boolean;
33
- /** Whether to show the cover art */
34
- showCover?: boolean;
35
- /** Whether to auto-play on mount */
36
- autoplay?: boolean;
37
- /** Playback mode */
38
- mode?: 'list' | 'loop' | 'single' | 'shuffle';
39
- /** Theme appearance */
40
- theme?: 'default' | 'minimal';
23
+ /** 组件 Props */
24
+ interface AvatarGroupProps {
25
+ /** 头像数据列表 */
26
+ items: AvatarItem[];
27
+ /** 最多显示数量(超出 +N) */
28
+ max?: number;
29
+ /** 头像尺寸 (px) */
30
+ size?: number;
31
+ /** 头像间重叠偏移量 (px),负值表示堆叠 */
32
+ overlap?: number;
33
+ /** 形状 */
34
+ shape?: 'circle' | 'square';
35
+ /** 是否显示状态指示点 */
36
+ showStatus?: boolean;
37
+ /** 是否显示悬浮提示 */
38
+ showTooltip?: boolean;
39
+ /** 是否可点击 */
40
+ clickable?: boolean;
41
+ /** +N 溢出按钮是否可点击 */
42
+ overflowClickable?: boolean;
43
+ /** 堆叠方向 */
44
+ direction?: 'ltr' | 'rtl';
41
45
  }
42
- /** Default props */
43
- declare const DEFAULT_AUDIO_PLAYER_PROPS: Partial<AudioPlayerProps>;
44
- /** Playback mode icon map */
45
- declare const MODE_ICON_MAP: Record<string, {
46
- icon: string;
47
- label: string;
48
- }>;
49
- /** Format seconds to mm:ss */
50
- declare function formatTime(seconds: number): string;
46
+ /** 默认 Props */
47
+ declare const DEFAULT_AVATAR_GROUP_PROPS: Partial<AvatarGroupProps>;
48
+ /** 状态颜色映射 */
49
+ declare const STATUS_COLOR_MAP: Record<string, string>;
50
+ /** 从名字中提取首字母 */
51
+ declare function getInitials(name: string): string;
52
+ /** 根据名字生成稳定的背景色 */
53
+ declare function nameToColor(name: string): string;
51
54
  //#endregion
52
- //#region src/components/C_AudioPlayer/index.vue.d.ts
55
+ //#region src/components/C_AvatarGroup/index.vue.d.ts
53
56
  type __VLS_Props = {
54
- tracks: AudioPlayerProps['tracks'];
55
- initialIndex?: number;
56
- showPlaylist?: boolean;
57
- showCover?: boolean;
58
- autoplay?: boolean;
59
- mode?: AudioPlayerProps['mode'];
60
- theme?: AudioPlayerProps['theme'];
57
+ items: AvatarGroupProps['items'];
58
+ max?: number;
59
+ size?: number;
60
+ overlap?: number;
61
+ shape?: AvatarGroupProps['shape'];
62
+ showStatus?: boolean;
63
+ showTooltip?: boolean;
64
+ clickable?: boolean;
65
+ overflowClickable?: boolean;
66
+ direction?: AvatarGroupProps['direction'];
61
67
  };
62
68
  declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
63
- ended: (index: number) => any;
64
- pause: () => any;
65
- play: (index: number) => any;
66
- modeChange: (mode: string) => any;
69
+ itemClick: (item: AvatarItem) => any;
70
+ overflowClick: (hiddenItems: AvatarItem[]) => any;
67
71
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
68
- onEnded?: ((index: number) => any) | undefined;
69
- onPause?: (() => any) | undefined;
70
- onPlay?: ((index: number) => any) | undefined;
71
- onModeChange?: ((mode: string) => any) | undefined;
72
+ onItemClick?: ((item: AvatarItem) => any) | undefined;
73
+ onOverflowClick?: ((hiddenItems: AvatarItem[]) => any) | undefined;
72
74
  }>, {
73
- mode: "single" | "list" | "loop" | "shuffle";
74
- theme: "default" | "minimal";
75
- initialIndex: number;
76
- showPlaylist: boolean;
77
- showCover: boolean;
78
- autoplay: boolean;
75
+ direction: "ltr" | "rtl";
76
+ size: number;
77
+ overlap: number;
78
+ max: number;
79
+ shape: "circle" | "square";
80
+ showStatus: boolean;
81
+ showTooltip: boolean;
82
+ clickable: boolean;
83
+ overflowClickable: boolean;
79
84
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
80
85
  declare const _default: typeof __VLS_export;
81
86
  //#endregion
82
- export { MODE_ICON_MAP as a, DEFAULT_AUDIO_PLAYER_PROPS as i, AudioPlayerProps as n, formatTime as o, AudioTrack as r, _default as t };
87
+ export { STATUS_COLOR_MAP as a, DEFAULT_AVATAR_GROUP_PROPS as i, AvatarGroupProps as n, getInitials as o, AvatarItem as r, nameToColor as s, _default as t };
@@ -1,82 +1,87 @@
1
1
  import * as vue from "vue";
2
2
 
3
- //#region src/components/C_AudioPlayer/types.d.ts
3
+ //#region src/components/C_AvatarGroup/types.d.ts
4
4
  /**
5
- * @Description: Audio player component type definitions
6
- * Copyright (c) 2026 by CHENY, All Rights Reserved.
5
+ * @Description: 头像组组件类型定义
6
+ * Copyright (c) 2026 by CHENY, All Rights Reserved 😎.
7
7
  */
8
- /** Single audio track */
9
- interface AudioTrack {
10
- /** Unique identifier */
8
+ /** 单个头像数据 */
9
+ interface AvatarItem {
10
+ /** 唯一标识 */
11
11
  id: string | number;
12
- /** Track title */
13
- title: string;
14
- /** Artist / author */
15
- artist?: string;
16
- /** Audio source URL */
17
- src: string;
18
- /** Cover image URL */
19
- cover?: string;
20
- /** Duration in seconds (optional, for static display) */
21
- duration?: number;
22
- /** Extra data */
12
+ /** 头像图片 URL */
13
+ src?: string;
14
+ /** 姓名(用于首字母 fallback 和 tooltip) */
15
+ name: string;
16
+ /** 悬浮提示(默认取 name) */
17
+ tooltip?: string;
18
+ /** 在线状态 */
19
+ status?: 'online' | 'offline' | 'busy' | 'away';
20
+ /** 额外数据 */
23
21
  extra?: Record<string, unknown>;
24
22
  }
25
- /** Component props */
26
- interface AudioPlayerProps {
27
- /** Playlist */
28
- tracks: AudioTrack[];
29
- /** Initial active index */
30
- initialIndex?: number;
31
- /** Whether to show the playlist panel */
32
- showPlaylist?: boolean;
33
- /** Whether to show the cover art */
34
- showCover?: boolean;
35
- /** Whether to auto-play on mount */
36
- autoplay?: boolean;
37
- /** Playback mode */
38
- mode?: 'list' | 'loop' | 'single' | 'shuffle';
39
- /** Theme appearance */
40
- theme?: 'default' | 'minimal';
23
+ /** 组件 Props */
24
+ interface AvatarGroupProps {
25
+ /** 头像数据列表 */
26
+ items: AvatarItem[];
27
+ /** 最多显示数量(超出 +N) */
28
+ max?: number;
29
+ /** 头像尺寸 (px) */
30
+ size?: number;
31
+ /** 头像间重叠偏移量 (px),负值表示堆叠 */
32
+ overlap?: number;
33
+ /** 形状 */
34
+ shape?: 'circle' | 'square';
35
+ /** 是否显示状态指示点 */
36
+ showStatus?: boolean;
37
+ /** 是否显示悬浮提示 */
38
+ showTooltip?: boolean;
39
+ /** 是否可点击 */
40
+ clickable?: boolean;
41
+ /** +N 溢出按钮是否可点击 */
42
+ overflowClickable?: boolean;
43
+ /** 堆叠方向 */
44
+ direction?: 'ltr' | 'rtl';
41
45
  }
42
- /** Default props */
43
- declare const DEFAULT_AUDIO_PLAYER_PROPS: Partial<AudioPlayerProps>;
44
- /** Playback mode icon map */
45
- declare const MODE_ICON_MAP: Record<string, {
46
- icon: string;
47
- label: string;
48
- }>;
49
- /** Format seconds to mm:ss */
50
- declare function formatTime(seconds: number): string;
46
+ /** 默认 Props */
47
+ declare const DEFAULT_AVATAR_GROUP_PROPS: Partial<AvatarGroupProps>;
48
+ /** 状态颜色映射 */
49
+ declare const STATUS_COLOR_MAP: Record<string, string>;
50
+ /** 从名字中提取首字母 */
51
+ declare function getInitials(name: string): string;
52
+ /** 根据名字生成稳定的背景色 */
53
+ declare function nameToColor(name: string): string;
51
54
  //#endregion
52
- //#region src/components/C_AudioPlayer/index.vue.d.ts
55
+ //#region src/components/C_AvatarGroup/index.vue.d.ts
53
56
  type __VLS_Props = {
54
- tracks: AudioPlayerProps['tracks'];
55
- initialIndex?: number;
56
- showPlaylist?: boolean;
57
- showCover?: boolean;
58
- autoplay?: boolean;
59
- mode?: AudioPlayerProps['mode'];
60
- theme?: AudioPlayerProps['theme'];
57
+ items: AvatarGroupProps['items'];
58
+ max?: number;
59
+ size?: number;
60
+ overlap?: number;
61
+ shape?: AvatarGroupProps['shape'];
62
+ showStatus?: boolean;
63
+ showTooltip?: boolean;
64
+ clickable?: boolean;
65
+ overflowClickable?: boolean;
66
+ direction?: AvatarGroupProps['direction'];
61
67
  };
62
68
  declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
63
- ended: (index: number) => any;
64
- pause: () => any;
65
- play: (index: number) => any;
66
- modeChange: (mode: string) => any;
69
+ itemClick: (item: AvatarItem) => any;
70
+ overflowClick: (hiddenItems: AvatarItem[]) => any;
67
71
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
68
- onEnded?: ((index: number) => any) | undefined;
69
- onPause?: (() => any) | undefined;
70
- onPlay?: ((index: number) => any) | undefined;
71
- onModeChange?: ((mode: string) => any) | undefined;
72
+ onItemClick?: ((item: AvatarItem) => any) | undefined;
73
+ onOverflowClick?: ((hiddenItems: AvatarItem[]) => any) | undefined;
72
74
  }>, {
73
- mode: "single" | "list" | "loop" | "shuffle";
74
- theme: "default" | "minimal";
75
- initialIndex: number;
76
- showPlaylist: boolean;
77
- showCover: boolean;
78
- autoplay: boolean;
75
+ direction: "ltr" | "rtl";
76
+ size: number;
77
+ overlap: number;
78
+ max: number;
79
+ shape: "circle" | "square";
80
+ showStatus: boolean;
81
+ showTooltip: boolean;
82
+ clickable: boolean;
83
+ overflowClickable: boolean;
79
84
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
80
85
  declare const _default: typeof __VLS_export;
81
86
  //#endregion
82
- export { MODE_ICON_MAP as a, DEFAULT_AUDIO_PLAYER_PROPS as i, AudioPlayerProps as n, formatTime as o, AudioTrack as r, _default as t };
87
+ export { STATUS_COLOR_MAP as a, DEFAULT_AVATAR_GROUP_PROPS as i, AvatarGroupProps as n, getInitials as o, AvatarItem as r, nameToColor as s, _default as t };
@@ -35,12 +35,12 @@ type __VLS_Slots = {} & {
35
35
  };
36
36
  declare const __VLS_base: vue.DefineComponent<Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<Props> & Readonly<{}>, {
37
37
  status: "default" | "success" | "error" | "warning" | "info";
38
+ strokeWidth: number;
38
39
  percentage: number | number[];
39
40
  isAnimation: boolean;
40
41
  time: number;
41
42
  indicatorPlacement: "inside" | "outside";
42
43
  showIndicator: boolean;
43
- strokeWidth: number;
44
44
  unit: string;
45
45
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
46
46
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -35,12 +35,12 @@ type __VLS_Slots = {} & {
35
35
  };
36
36
  declare const __VLS_base: vue.DefineComponent<Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<Props> & Readonly<{}>, {
37
37
  status: "default" | "success" | "error" | "warning" | "info";
38
+ strokeWidth: number;
38
39
  percentage: number | number[];
39
40
  isAnimation: boolean;
40
41
  time: number;
41
42
  indicatorPlacement: "inside" | "outside";
42
43
  showIndicator: boolean;
43
- strokeWidth: number;
44
44
  unit: string;
45
45
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
46
46
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -86,10 +86,10 @@ type __VLS_Slots = {} & {
86
86
  default?: (props: typeof __VLS_1) => any;
87
87
  };
88
88
  declare const __VLS_base: vue.DefineComponent<SkeletonProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<SkeletonProps> & Readonly<{}>, {
89
- preset: SkeletonPreset;
90
- repeat: number;
91
89
  loading: boolean;
90
+ repeat: number;
92
91
  borderRadius: string;
92
+ preset: SkeletonPreset;
93
93
  animation: SkeletonAnimation;
94
94
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
95
95
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -86,10 +86,10 @@ type __VLS_Slots = {} & {
86
86
  default?: (props: typeof __VLS_1) => any;
87
87
  };
88
88
  declare const __VLS_base: vue.DefineComponent<SkeletonProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<SkeletonProps> & Readonly<{}>, {
89
- preset: SkeletonPreset;
90
- repeat: number;
91
89
  loading: boolean;
90
+ repeat: number;
92
91
  borderRadius: string;
92
+ preset: SkeletonPreset;
93
93
  animation: SkeletonAnimation;
94
94
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
95
95
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -35,9 +35,9 @@ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue
35
35
  onChange?: ((args_0: number) => any) | undefined;
36
36
  "onUpdate:current"?: ((args_0: number) => any) | undefined;
37
37
  }>, {
38
- current: number;
39
38
  direction: "horizontal" | "vertical";
40
39
  clickable: boolean;
40
+ current: number;
41
41
  connected: boolean;
42
42
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
43
43
  declare const _default: typeof __VLS_export;
@@ -35,9 +35,9 @@ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue
35
35
  onChange?: ((args_0: number) => any) | undefined;
36
36
  "onUpdate:current"?: ((args_0: number) => any) | undefined;
37
37
  }>, {
38
- current: number;
39
38
  direction: "horizontal" | "vertical";
40
39
  clickable: boolean;
40
+ current: number;
41
41
  connected: boolean;
42
42
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
43
43
  declare const _default: typeof __VLS_export;
@@ -631,7 +631,7 @@ interface Props {
631
631
  title?: string;
632
632
  showToolbar?: boolean;
633
633
  showFullscreenButton?: boolean;
634
- theme?: "light" | "dark";
634
+ theme?: 'light' | 'dark';
635
635
  }
636
636
  declare const __VLS_export: vue.DefineComponent<Props, {
637
637
  ganttInstance: vue.Ref<any, any>;
@@ -648,13 +648,13 @@ declare const __VLS_export: vue.DefineComponent<Props, {
648
648
  onTaskChange?: ((task: GanttTask, changes: any) => any) | undefined;
649
649
  }>, {
650
650
  height: string | number;
651
+ theme: "light" | "dark";
651
652
  title: string;
652
653
  data: GanttTask[];
653
654
  options: GanttOptions;
654
655
  preset: GanttPreset;
655
656
  showToolbar: boolean;
656
657
  showFullscreenButton: boolean;
657
- theme: "light" | "dark";
658
658
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
659
659
  declare const _default: typeof __VLS_export;
660
660
  //#endregion
@@ -631,7 +631,7 @@ interface Props {
631
631
  title?: string;
632
632
  showToolbar?: boolean;
633
633
  showFullscreenButton?: boolean;
634
- theme?: "light" | "dark";
634
+ theme?: 'light' | 'dark';
635
635
  }
636
636
  declare const __VLS_export: vue.DefineComponent<Props, {
637
637
  ganttInstance: vue.Ref<any, any>;
@@ -648,13 +648,13 @@ declare const __VLS_export: vue.DefineComponent<Props, {
648
648
  onTaskChange?: ((task: GanttTask, changes: any) => any) | undefined;
649
649
  }>, {
650
650
  height: string | number;
651
+ theme: "light" | "dark";
651
652
  title: string;
652
653
  data: GanttTask[];
653
654
  options: GanttOptions;
654
655
  preset: GanttPreset;
655
656
  showToolbar: boolean;
656
657
  showFullscreenButton: boolean;
657
- theme: "light" | "dark";
658
658
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
659
659
  declare const _default: typeof __VLS_export;
660
660
  //#endregion
@@ -85,10 +85,10 @@ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {
85
85
  onClose?: ((fallbackPath: string) => any) | undefined;
86
86
  onCloseAll?: (() => any) | undefined;
87
87
  }>, {
88
+ persistKey: string;
88
89
  homePath: string;
89
90
  homeTitle: string;
90
91
  homeIcon: string;
91
- persistKey: string;
92
92
  contextMenuLabels: LegacyContextMenuLabels;
93
93
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
94
94
  declare const _default: typeof __VLS_export;
@@ -85,10 +85,10 @@ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {
85
85
  onClose?: ((fallbackPath: string) => any) | undefined;
86
86
  onCloseAll?: (() => any) | undefined;
87
87
  }>, {
88
+ persistKey: string;
88
89
  homePath: string;
89
90
  homeTitle: string;
90
91
  homeIcon: string;
91
- persistKey: string;
92
92
  contextMenuLabels: LegacyContextMenuLabels;
93
93
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
94
94
  declare const _default: typeof __VLS_export;
@@ -61,11 +61,11 @@ type __VLS_Props = {
61
61
  size?: TransferProps['size'];
62
62
  };
63
63
  declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
64
- "update:modelValue": (value: (string | number)[]) => any;
65
64
  change: (targetKeys: (string | number)[], direction: "left" | "right", moveKeys: (string | number)[]) => any;
65
+ "update:modelValue": (value: (string | number)[]) => any;
66
66
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
67
- "onUpdate:modelValue"?: ((value: (string | number)[]) => any) | undefined;
68
67
  onChange?: ((targetKeys: (string | number)[], direction: "left" | "right", moveKeys: (string | number)[]) => any) | undefined;
68
+ "onUpdate:modelValue"?: ((value: (string | number)[]) => any) | undefined;
69
69
  }>, {
70
70
  size: "small" | "medium" | "large";
71
71
  filterable: boolean;
@@ -61,11 +61,11 @@ type __VLS_Props = {
61
61
  size?: TransferProps['size'];
62
62
  };
63
63
  declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
64
- "update:modelValue": (value: (string | number)[]) => any;
65
64
  change: (targetKeys: (string | number)[], direction: "left" | "right", moveKeys: (string | number)[]) => any;
65
+ "update:modelValue": (value: (string | number)[]) => any;
66
66
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
67
- "onUpdate:modelValue"?: ((value: (string | number)[]) => any) | undefined;
68
67
  onChange?: ((targetKeys: (string | number)[], direction: "left" | "right", moveKeys: (string | number)[]) => any) | undefined;
68
+ "onUpdate:modelValue"?: ((value: (string | number)[]) => any) | undefined;
69
69
  }>, {
70
70
  size: "small" | "medium" | "large";
71
71
  filterable: boolean;