morghulis 2.0.52 → 2.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1,95 +1,59 @@
1
- import { App, DefineComponent, ComponentOptions } from 'vue';
1
+ // 按钮类型
2
+ export type ButtonType = "default" | "primary" | "success" | "warning" | "danger" | "info" | "text"
2
3
 
3
- // 定义常量类型
4
- export type ButtonType = 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text';
5
- export type ButtonSize = 'large' | 'default' | 'small';
4
+ // 按钮尺寸
5
+ export type ButtonSize = "large" | "default" | "small"
6
6
 
7
- // 定义按钮组件属性接口
8
- export interface MButtonProps {
9
- /**
10
- * 按钮类型
11
- * @values default, primary, success, warning, danger, info, text
12
- * @default default
13
- */
14
- type?: ButtonType;
15
-
16
- /**
17
- * 按钮尺寸
18
- * @values large, default, small
19
- * @default default
20
- */
21
- size?: ButtonSize;
22
-
23
- /**
24
- * 是否为朴素按钮
25
- * @default false
26
- */
27
- plain?: boolean;
28
-
29
- /**
30
- * 是否为圆角按钮
31
- * @default false
32
- */
33
- round?: boolean;
34
-
35
- /**
36
- * 是否为圆形按钮
37
- * @default false
38
- */
39
- circle?: boolean;
40
-
41
- /**
42
- * 是否禁用按钮
43
- * @default false
44
- */
45
- disabled?: boolean;
46
-
47
- /**
48
- * 是否显示加载状态
49
- * @default false
50
- */
51
- loading?: boolean;
52
-
53
- /**
54
- * 按钮图标类名
55
- */
56
- icon?: string;
57
-
58
- /**
59
- * 按钮文本
60
- */
61
- text?: string;
7
+ // 组件定义
8
+ export type MButton = {
9
+ // 属性
10
+ type?: ButtonType
11
+ size?: ButtonSize
12
+ plain?: boolean
13
+ round?: boolean
14
+ circle?: boolean
15
+ disabled?: boolean
16
+ loading?: boolean
17
+ icon?: string
18
+ text?: string
19
+
20
+ // 事件
21
+ onClick?: (event: MouseEvent) => void
62
22
  }
63
23
 
64
- // 导出组件
65
- export const MButton: DefineComponent<MButtonProps, {}, {}, {}, {
66
- click: (event: MouseEvent) => void
67
- }>;
68
-
69
- // 导出插件方法
70
- export function install(app: App): void;
24
+ // 安装方法
25
+ export function install(app: any): void;
71
26
 
72
27
  // 默认导出
73
- declare const _default: {
74
- install: typeof install;
75
- MButton: typeof MButton;
28
+ export default {
29
+ MButton,
30
+ install
76
31
  };
77
- export default _default;
78
32
 
79
- // 扩展 @vue/runtime-core 以支持全局组件类型
33
+ // 全局组件声明
80
34
  declare module '@vue/runtime-core' {
81
35
  export interface GlobalComponents {
82
- MButton: typeof MButton;
36
+ MButton: MButton
37
+ }
38
+ }
39
+
40
+ // 直接声明方式
41
+ declare module 'morghulis' {
42
+ export const MButton: MButton
43
+ }
44
+
45
+ // 直接扩展Vue
46
+ declare module 'vue/types/vue' {
47
+ interface Vue {
48
+ $MButton: typeof MButton
83
49
  }
84
50
  }
85
51
 
86
- // 支持JSX
52
+ // JSX支持
87
53
  declare global {
88
54
  namespace JSX {
89
55
  interface IntrinsicElements {
90
- 'MButton': MButtonProps & {
91
- onClick?: (event: MouseEvent) => void
92
- };
56
+ 'MButton': MButton
93
57
  }
94
58
  }
95
59
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "morghulis",
3
- "version": "2.0.52",
3
+ "version": "2.0.54",
4
4
  "description": "一个Vue 3按钮组件库,支持TypeScript和IDE自动补全",
5
5
  "type": "module",
6
6
  "main": "dist/morghulis.es.js",
@@ -10,9 +10,7 @@
10
10
  ".": {
11
11
  "types": [
12
12
  "./index.d.ts",
13
- "./typings/components.d.ts",
14
- "./typings/volar.d.ts",
15
- "./typings/jetbrains.d.ts"
13
+ "./src/morghulis-types.d.ts"
16
14
  ],
17
15
  "import": "./dist/morghulis.es.js",
18
16
  "require": "./dist/morghulis.es.js"
@@ -22,6 +20,7 @@
22
20
  "files": [
23
21
  "dist",
24
22
  "index.d.ts",
23
+ "src/morghulis-types.d.ts",
25
24
  "typings"
26
25
  ],
27
26
  "scripts": {
@@ -0,0 +1,40 @@
1
+ // MButton组件的类型定义
2
+
3
+ // 按钮类型
4
+ export type MButtonType = "default" | "primary" | "success" | "warning" | "danger" | "info" | "text"
5
+
6
+ // 按钮尺寸
7
+ export type MButtonSize = "large" | "default" | "small"
8
+
9
+ // 按钮属性
10
+ export type MButton = {
11
+ // 属性
12
+ type?: MButtonType
13
+ size?: MButtonSize
14
+ plain?: boolean
15
+ round?: boolean
16
+ circle?: boolean
17
+ disabled?: boolean
18
+ loading?: boolean
19
+ icon?: string
20
+ text?: string
21
+
22
+ // 事件
23
+ onClick?: (event: MouseEvent) => void
24
+ }
25
+
26
+ // 安装方法
27
+ export function install(app: any): void
28
+
29
+ // 默认导出
30
+ export default {
31
+ MButton,
32
+ install
33
+ }
34
+
35
+ // 添加到Vue全局组件
36
+ declare module '@vue/runtime-core' {
37
+ export interface GlobalComponents {
38
+ MButton: MButton
39
+ }
40
+ }
@@ -1,66 +1,8 @@
1
- // 为全局组件提供自动补全
2
- declare module 'vue' {
1
+ // 全局组件类型定义
2
+ import type { MButton as MButtonType } from '../index';
3
+
4
+ declare module '@vue/runtime-core' {
3
5
  export interface GlobalComponents {
4
- MButton: {
5
- /**
6
- * 按钮类型
7
- * @default 'default'
8
- * @values default, primary, success, warning, danger, info, text
9
- */
10
- type?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text'
11
-
12
- /**
13
- * 按钮尺寸
14
- * @default 'default'
15
- * @values large, default, small
16
- */
17
- size?: 'large' | 'default' | 'small'
18
-
19
- /**
20
- * 是否为朴素按钮
21
- * @default false
22
- */
23
- plain?: boolean
24
-
25
- /**
26
- * 是否为圆角按钮
27
- * @default false
28
- */
29
- round?: boolean
30
-
31
- /**
32
- * 是否为圆形按钮
33
- * @default false
34
- */
35
- circle?: boolean
36
-
37
- /**
38
- * 是否禁用按钮
39
- * @default false
40
- */
41
- disabled?: boolean
42
-
43
- /**
44
- * 是否显示加载状态
45
- * @default false
46
- */
47
- loading?: boolean
48
-
49
- /**
50
- * 按钮图标类名
51
- */
52
- icon?: string
53
-
54
- /**
55
- * 按钮文本
56
- */
57
- text?: string
58
-
59
- /**
60
- * 点击事件
61
- * @param event 鼠标事件
62
- */
63
- onClick?: (event: MouseEvent) => void
64
- }
6
+ MButton: MButtonType
65
7
  }
66
8
  }
@@ -0,0 +1,77 @@
1
+ // 直接声明每个组件的类型,不通过模块
2
+
3
+ /**
4
+ * 按钮组件
5
+ *
6
+ * @component MButton
7
+ * @example
8
+ * <MButton type="primary" size="large" plain round>按钮文本</MButton>
9
+ */
10
+ interface MButton {
11
+ /**
12
+ * 按钮类型
13
+ * @default default
14
+ */
15
+ type?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text';
16
+
17
+ /**
18
+ * 按钮尺寸
19
+ * @default default
20
+ */
21
+ size?: 'large' | 'default' | 'small';
22
+
23
+ /**
24
+ * 是否为朴素按钮
25
+ * @default false
26
+ */
27
+ plain?: boolean;
28
+
29
+ /**
30
+ * 是否为圆角按钮
31
+ * @default false
32
+ */
33
+ round?: boolean;
34
+
35
+ /**
36
+ * 是否为圆形按钮
37
+ * @default false
38
+ */
39
+ circle?: boolean;
40
+
41
+ /**
42
+ * 是否禁用按钮
43
+ * @default false
44
+ */
45
+ disabled?: boolean;
46
+
47
+ /**
48
+ * 是否显示加载状态
49
+ * @default false
50
+ */
51
+ loading?: boolean;
52
+
53
+ /**
54
+ * 按钮图标类名
55
+ */
56
+ icon?: string;
57
+
58
+ /**
59
+ * 按钮文本
60
+ */
61
+ text?: string;
62
+
63
+ /**
64
+ * 点击事件
65
+ */
66
+ onClick?: (event: MouseEvent) => void;
67
+ }
68
+
69
+ // 将类型加入全局命名空间
70
+ declare global {
71
+ interface HTMLElementTagNameMap {
72
+ 'MButton': MButton;
73
+ }
74
+ }
75
+
76
+ // 导出类型以便在其他地方使用
77
+ export { MButton };
@@ -1,68 +1,29 @@
1
- // JetBrains IDE (PyCharm/WebStorm)专用类型声明
1
+ // JetBrains IDE提供的类型定义
2
2
 
3
- declare module 'morghulis' {
4
- import { DefineComponent } from 'vue';
5
-
6
- export type ButtonType = 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text';
7
- export type ButtonSize = 'large' | 'default' | 'small';
8
-
9
- export interface MButtonProps {
10
- /**
11
- * 按钮类型
12
- * @values default, primary, success, warning, danger, info, text
13
- * @default default
14
- */
15
- type?: ButtonType;
16
-
17
- /**
18
- * 按钮尺寸
19
- * @values large, default, small
20
- * @default default
21
- */
22
- size?: ButtonSize;
23
-
24
- /**
25
- * 是否为朴素按钮
26
- * @default false
27
- */
28
- plain?: boolean;
29
-
30
- /**
31
- * 是否为圆角按钮
32
- * @default false
33
- */
34
- round?: boolean;
35
-
36
- /**
37
- * 是否为圆形按钮
38
- * @default false
39
- */
40
- circle?: boolean;
41
-
42
- /**
43
- * 是否禁用按钮
44
- * @default false
45
- */
46
- disabled?: boolean;
47
-
48
- /**
49
- * 是否显示加载状态
50
- * @default false
51
- */
52
- loading?: boolean;
53
-
54
- /**
55
- * 按钮图标类名
56
- */
57
- icon?: string;
58
-
59
- /**
60
- * 按钮文本
61
- */
62
- text?: string;
3
+ import type { MButton as MButtonType } from '../index';
4
+
5
+ declare module '@vue/runtime-core' {
6
+ export interface GlobalComponents {
7
+ MButton: MButtonType
63
8
  }
9
+ }
64
10
 
65
- export const MButton: DefineComponent<MButtonProps>;
11
+ // 直接类型声明,可能更符合PyCharm的识别方式
12
+ declare module 'vue' {
13
+ interface GlobalComponents {
14
+ MButton: {
15
+ type?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text',
16
+ size?: 'large' | 'default' | 'small',
17
+ plain?: boolean,
18
+ round?: boolean,
19
+ circle?: boolean,
20
+ disabled?: boolean,
21
+ loading?: boolean,
22
+ icon?: string,
23
+ text?: string,
24
+ onClick?: (event: MouseEvent) => void
25
+ }
26
+ }
66
27
  }
67
28
 
68
29
  /**
@@ -1,12 +1,12 @@
1
1
  // Volar专用类型定义 - 用于TypeScript服务器识别
2
2
 
3
- import type { ButtonType, ButtonSize, MButtonProps } from '../index';
3
+ import type { MButton } from '../index';
4
4
 
5
5
  declare module 'vue' {
6
6
  export interface GlobalComponents {
7
7
  /**
8
8
  * 按钮组件
9
9
  */
10
- MButton: MButtonProps
10
+ MButton: MButton
11
11
  }
12
12
  }