king-design-analyzer 1.0.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 (92) hide show
  1. package/README.md +151 -0
  2. package/components/affix.json +178 -0
  3. package/components/az.json +86 -0
  4. package/components/badge.json +162 -0
  5. package/components/billtypes.json +90 -0
  6. package/components/breadcrumb.json +220 -0
  7. package/components/button.json +511 -0
  8. package/components/card.json +334 -0
  9. package/components/cardcontent.json +144 -0
  10. package/components/carousel.json +207 -0
  11. package/components/cascader.json +373 -0
  12. package/components/checkbox.json +298 -0
  13. package/components/code.json +318 -0
  14. package/components/collapse.json +358 -0
  15. package/components/copy.json +220 -0
  16. package/components/datepicker.json +529 -0
  17. package/components/descriptions.json +309 -0
  18. package/components/dialog.json +460 -0
  19. package/components/divider.json +287 -0
  20. package/components/drawer.json +563 -0
  21. package/components/dropdown.json +407 -0
  22. package/components/editable.json +331 -0
  23. package/components/ellipsis.json +218 -0
  24. package/components/form.json +638 -0
  25. package/components/grid.json +377 -0
  26. package/components/icon.json +442 -0
  27. package/components/input.json +821 -0
  28. package/components/layoutcontent.json +210 -0
  29. package/components/menu.json +482 -0
  30. package/components/message.json +345 -0
  31. package/components/pagination.json +444 -0
  32. package/components/paginationplus.json +74 -0
  33. package/components/popover.json +456 -0
  34. package/components/progress.json +354 -0
  35. package/components/protable.json +132 -0
  36. package/components/radio.json +246 -0
  37. package/components/region.json +115 -0
  38. package/components/select.json +676 -0
  39. package/components/slider.json +422 -0
  40. package/components/spin.json +232 -0
  41. package/components/spinner.json +441 -0
  42. package/components/status.json +75 -0
  43. package/components/steps.json +292 -0
  44. package/components/switch.json +357 -0
  45. package/components/table.json +1057 -0
  46. package/components/tablecolumnid.json +217 -0
  47. package/components/tabs.json +363 -0
  48. package/components/tag.json +504 -0
  49. package/components/timepicker.json +447 -0
  50. package/components/tip.json +322 -0
  51. package/components/tooltip.json +416 -0
  52. package/components/tour.json +395 -0
  53. package/components/transfer.json +414 -0
  54. package/components/tree.json +480 -0
  55. package/components/treeselect.json +478 -0
  56. package/components/upload.json +499 -0
  57. package/components/virtuallist.json +178 -0
  58. package/dist/ast/index.d.mts +71 -0
  59. package/dist/ast/index.d.ts +71 -0
  60. package/dist/ast/index.js +15 -0
  61. package/dist/ast/index.mjs +2 -0
  62. package/dist/chunk-4BUGNH4F.mjs +62 -0
  63. package/dist/chunk-5H7N2A5X.mjs +1 -0
  64. package/dist/chunk-5IF32MBB.js +603 -0
  65. package/dist/chunk-ARWRNWDW.js +219 -0
  66. package/dist/chunk-C3L4IXJC.mjs +577 -0
  67. package/dist/chunk-GNVCC37B.js +102 -0
  68. package/dist/chunk-N4UIA6DN.js +68 -0
  69. package/dist/chunk-RAMIBZAU.mjs +216 -0
  70. package/dist/chunk-RNQHI7YG.js +64 -0
  71. package/dist/chunk-TB6BF5TJ.mjs +99 -0
  72. package/dist/chunk-UX7KGX45.mjs +66 -0
  73. package/dist/chunk-YTEYDSDW.js +2 -0
  74. package/dist/full/index.d.mts +29 -0
  75. package/dist/full/index.d.ts +29 -0
  76. package/dist/full/index.js +16 -0
  77. package/dist/full/index.mjs +3 -0
  78. package/dist/index.d.mts +5 -0
  79. package/dist/index.d.ts +5 -0
  80. package/dist/index.js +43 -0
  81. package/dist/index.mjs +6 -0
  82. package/dist/runtime/index.d.mts +14 -0
  83. package/dist/runtime/index.d.ts +14 -0
  84. package/dist/runtime/index.js +15 -0
  85. package/dist/runtime/index.mjs +2 -0
  86. package/dist/sfcCompiler-m51JOfWs.d.mts +22 -0
  87. package/dist/sfcCompiler-m51JOfWs.d.ts +22 -0
  88. package/dist/static/index.d.mts +14 -0
  89. package/dist/static/index.d.ts +14 -0
  90. package/dist/static/index.js +19 -0
  91. package/dist/static/index.mjs +2 -0
  92. package/package.json +88 -0
@@ -0,0 +1,407 @@
1
+ {
2
+ "id": "dropdown",
3
+ "name": "Dropdown",
4
+ "displayName": "下拉菜单",
5
+ "category": "navigation",
6
+ "description": "下拉菜单组件,用于展示可操作的下拉菜单列表。支持多种触发方式、嵌套菜单、右键菜单等功能。配合 DropdownMenu 和 DropdownItem 子组件使用。",
7
+ "importStatement": "import { Dropdown, DropdownMenu, DropdownItem } from '@king-design/vue';",
8
+ "props": [
9
+ {
10
+ "name": "trigger",
11
+ "description": "触发方式",
12
+ "type": {
13
+ "raw": "\"hover\" | \"click\" | \"contextmenu\" | \"focus\"",
14
+ "kind": "union",
15
+ "unionTypes": [
16
+ "hover",
17
+ "click",
18
+ "contextmenu",
19
+ "focus"
20
+ ]
21
+ },
22
+ "required": false,
23
+ "default": "\"hover\"",
24
+ "allowedValues": [
25
+ {
26
+ "value": "hover",
27
+ "label": "悬停触发",
28
+ "isDefault": true
29
+ },
30
+ {
31
+ "value": "click",
32
+ "label": "点击触发"
33
+ },
34
+ {
35
+ "value": "contextmenu",
36
+ "label": "右键触发"
37
+ },
38
+ {
39
+ "value": "focus",
40
+ "label": "聚焦触发"
41
+ }
42
+ ],
43
+ "usageExample": "<Dropdown trigger=\"click\">"
44
+ },
45
+ {
46
+ "name": "value",
47
+ "description": "是否展示菜单,可用 v-model 双向绑定",
48
+ "type": {
49
+ "raw": "boolean",
50
+ "kind": "boolean"
51
+ },
52
+ "required": false,
53
+ "default": "false",
54
+ "usageExample": "<Dropdown v-model=\"visible\">"
55
+ },
56
+ {
57
+ "name": "disabled",
58
+ "description": "是否禁用整个菜单",
59
+ "type": {
60
+ "raw": "boolean",
61
+ "kind": "boolean"
62
+ },
63
+ "required": false,
64
+ "default": "false",
65
+ "usageExample": "<Dropdown disabled>"
66
+ },
67
+ {
68
+ "name": "position",
69
+ "description": "菜单弹出的位置",
70
+ "type": {
71
+ "raw": "Position | \"left\" | \"bottom\" | \"right\" | \"top\"",
72
+ "kind": "union",
73
+ "unionTypes": [
74
+ "left",
75
+ "bottom",
76
+ "right",
77
+ "top"
78
+ ]
79
+ },
80
+ "required": false,
81
+ "default": "{my: 'left top+8', at: 'left bottom'}",
82
+ "usageExample": "<Dropdown position=\"right\">"
83
+ },
84
+ {
85
+ "name": "of",
86
+ "description": "弹出菜单的位置是相对当前触发元素还是触发元素所在的菜单元素",
87
+ "type": {
88
+ "raw": "\"self\" | \"parent\" | Event",
89
+ "kind": "union",
90
+ "unionTypes": [
91
+ "self",
92
+ "parent"
93
+ ]
94
+ },
95
+ "required": false,
96
+ "default": "\"self\"",
97
+ "allowedValues": [
98
+ {
99
+ "value": "self",
100
+ "label": "相对当前触发元素",
101
+ "isDefault": true
102
+ },
103
+ {
104
+ "value": "parent",
105
+ "label": "相对父菜单元素"
106
+ }
107
+ ],
108
+ "usageExample": "<Dropdown of=\"parent\">"
109
+ },
110
+ {
111
+ "name": "container",
112
+ "description": "指定弹出菜单追加的位置,默认追加到 body",
113
+ "type": {
114
+ "raw": "string | ((parentDom: Element, anchor: Node | null) => Element)",
115
+ "kind": "union"
116
+ },
117
+ "required": false,
118
+ "default": "undefined",
119
+ "usageExample": "<Dropdown :container=\"() => document.body\">"
120
+ },
121
+ {
122
+ "name": "alwaysShowOnClick",
123
+ "description": "不管什么触发方式,重复点击触发器都不隐藏弹层",
124
+ "type": {
125
+ "raw": "boolean",
126
+ "kind": "boolean"
127
+ },
128
+ "required": false,
129
+ "default": "false",
130
+ "usageExample": "<Dropdown alwaysShowOnClick>"
131
+ }
132
+ ],
133
+ "events": [
134
+ {
135
+ "name": "show",
136
+ "vueEventName": "@show",
137
+ "description": "菜单展示时触发",
138
+ "payload": [],
139
+ "usageExample": "<Dropdown @show=\"handleShow\">",
140
+ "handlerExample": "const handleShow = () => {\n console.log('菜单已展示');\n};"
141
+ },
142
+ {
143
+ "name": "hide",
144
+ "vueEventName": "@hide",
145
+ "description": "菜单隐藏时触发",
146
+ "payload": [],
147
+ "usageExample": "<Dropdown @hide=\"handleHide\">",
148
+ "handlerExample": "const handleHide = () => {\n console.log('菜单已隐藏');\n};"
149
+ }
150
+ ],
151
+ "methods": [],
152
+ "subComponents": [
153
+ {
154
+ "name": "DropdownMenu",
155
+ "description": "下拉菜单容器,用于包裹菜单项",
156
+ "props": []
157
+ },
158
+ {
159
+ "name": "DropdownItem",
160
+ "description": "下拉菜单项组件",
161
+ "props": [
162
+ {
163
+ "name": "disabled",
164
+ "description": "是否禁用该菜单项",
165
+ "type": {
166
+ "raw": "boolean",
167
+ "kind": "boolean"
168
+ },
169
+ "required": false,
170
+ "default": "false",
171
+ "usageExample": "<DropdownItem disabled>禁用项</DropdownItem>"
172
+ },
173
+ {
174
+ "name": "hideOnSelect",
175
+ "description": "选中该菜单后是否隐藏整个菜单",
176
+ "type": {
177
+ "raw": "boolean",
178
+ "kind": "boolean"
179
+ },
180
+ "required": false,
181
+ "default": "true",
182
+ "usageExample": "<DropdownItem :hideOnSelect=\"false\">选中不关闭</DropdownItem>"
183
+ }
184
+ ],
185
+ "events": [
186
+ {
187
+ "name": "select",
188
+ "vueEventName": "@select",
189
+ "description": "菜单项被选中时触发(点击或键盘操作)",
190
+ "payload": [
191
+ {
192
+ "name": "item",
193
+ "type": "DropdownItem",
194
+ "description": "被选中的菜单项实例"
195
+ }
196
+ ],
197
+ "usageExample": "<DropdownItem @select=\"handleSelect\">",
198
+ "handlerExample": "const handleSelect = (item) => {\n console.log('选中了:', item);\n};"
199
+ },
200
+ {
201
+ "name": "click",
202
+ "vueEventName": "@click",
203
+ "description": "菜单项被点击时触发",
204
+ "payload": [
205
+ {
206
+ "name": "e",
207
+ "type": "MouseEvent",
208
+ "description": "原生鼠标事件"
209
+ }
210
+ ],
211
+ "usageExample": "<DropdownItem @click=\"handleClick\">",
212
+ "handlerExample": "const handleClick = (e: MouseEvent) => {\n console.log('点击了菜单项');\n};"
213
+ }
214
+ ]
215
+ }
216
+ ],
217
+ "typeDefinitions": [
218
+ {
219
+ "name": "Position",
220
+ "definition": "type Position = {\n my?: string | [string, string]\n at?: string | [string, string]\n collision?: Collision | [Collision, Collision]\n collisionDirection?: ['left'] | ['top'] | ['left', 'top']\n}",
221
+ "description": "菜单弹出位置配置"
222
+ },
223
+ {
224
+ "name": "Collision",
225
+ "definition": "type Collision = 'fit' | 'flip' | 'flipfit' | 'none'",
226
+ "description": "碰撞检测行为"
227
+ },
228
+ {
229
+ "name": "Container",
230
+ "definition": "type Container = string | ((parentDom: Element, anchor: Node | null) => Element)",
231
+ "description": "容器类型"
232
+ }
233
+ ],
234
+ "examples": [
235
+ {
236
+ "id": "dropdown_basic",
237
+ "title": "基础用法",
238
+ "description": "基本的下拉菜单,悬停触发",
239
+ "difficulty": "easy",
240
+ "code": "<script setup lang=\"ts\">\nimport { Dropdown, DropdownMenu, DropdownItem, Button } from '@king-design/vue';\n</script>\n<template>\n <Dropdown>\n <Button>下拉菜单</Button>\n <template #menu>\n <DropdownMenu>\n <DropdownItem>菜单项1</DropdownItem>\n <DropdownItem>菜单项2</DropdownItem>\n <DropdownItem>菜单项3</DropdownItem>\n </DropdownMenu>\n </template>\n </Dropdown>\n</template>",
241
+ "tags": [
242
+ "basic",
243
+ "hover"
244
+ ],
245
+ "usedProps": [],
246
+ "usedEvents": [],
247
+ "usedMethods": [],
248
+ "scenario": "创建一个悬停触发的下拉菜单"
249
+ },
250
+ {
251
+ "id": "dropdown_click",
252
+ "title": "点击触发",
253
+ "description": "点击触发的下拉菜单",
254
+ "difficulty": "easy",
255
+ "code": "<script setup lang=\"ts\">\nimport { Dropdown, DropdownMenu, DropdownItem, Button } from '@king-design/vue';\n</script>\n<template>\n <Dropdown trigger=\"click\">\n <Button>点击展开</Button>\n <template #menu>\n <DropdownMenu>\n <DropdownItem>菜单项1</DropdownItem>\n <DropdownItem>菜单项2</DropdownItem>\n </DropdownMenu>\n </template>\n </Dropdown>\n</template>",
256
+ "tags": [
257
+ "click",
258
+ "trigger"
259
+ ],
260
+ "usedProps": [
261
+ "trigger"
262
+ ],
263
+ "usedEvents": [],
264
+ "usedMethods": [],
265
+ "scenario": "创建点击触发的下拉菜单"
266
+ },
267
+ {
268
+ "id": "dropdown_disabled_item",
269
+ "title": "禁用菜单项",
270
+ "description": "禁用特定的菜单项",
271
+ "difficulty": "easy",
272
+ "code": "<script setup lang=\"ts\">\nimport { Dropdown, DropdownMenu, DropdownItem, Button } from '@king-design/vue';\n</script>\n<template>\n <Dropdown>\n <Button>下拉菜单</Button>\n <template #menu>\n <DropdownMenu>\n <DropdownItem>可用项</DropdownItem>\n <DropdownItem disabled>禁用项</DropdownItem>\n <DropdownItem>可用项</DropdownItem>\n </DropdownMenu>\n </template>\n </Dropdown>\n</template>",
273
+ "tags": [
274
+ "disabled"
275
+ ],
276
+ "usedProps": [
277
+ "disabled"
278
+ ],
279
+ "usedEvents": [],
280
+ "usedMethods": [],
281
+ "scenario": "禁用特定的菜单项"
282
+ },
283
+ {
284
+ "id": "dropdown_contextmenu",
285
+ "title": "右键菜单",
286
+ "description": "右键触发的上下文菜单",
287
+ "difficulty": "medium",
288
+ "code": "<script setup lang=\"ts\">\nimport { Dropdown, DropdownMenu, DropdownItem } from '@king-design/vue';\n</script>\n<template>\n <Dropdown trigger=\"contextmenu\">\n <div style=\"width: 200px; height: 100px; background: #f0f0f0; display: flex; align-items: center; justify-content: center;\">\n 右键点击此区域\n </div>\n <template #menu>\n <DropdownMenu>\n <DropdownItem>复制</DropdownItem>\n <DropdownItem>粘贴</DropdownItem>\n <DropdownItem>删除</DropdownItem>\n </DropdownMenu>\n </template>\n </Dropdown>\n</template>",
289
+ "tags": [
290
+ "contextmenu",
291
+ "right-click"
292
+ ],
293
+ "usedProps": [
294
+ "trigger"
295
+ ],
296
+ "usedEvents": [],
297
+ "usedMethods": [],
298
+ "scenario": "创建右键上下文菜单"
299
+ },
300
+ {
301
+ "id": "dropdown_select_event",
302
+ "title": "监听选择事件",
303
+ "description": "监听菜单项的选择",
304
+ "difficulty": "easy",
305
+ "code": "<script setup lang=\"ts\">\nimport { Dropdown, DropdownMenu, DropdownItem, Button, Message } from '@king-design/vue';\n\nconst handleClick = (action: string) => {\n Message.info(`选择了: ${action}`);\n};\n</script>\n<template>\n <Dropdown>\n <Button>操作</Button>\n <template #menu>\n <DropdownMenu>\n <DropdownItem @click=\"handleClick('编辑')\">编辑</DropdownItem>\n <DropdownItem @click=\"handleClick('复制')\">复制</DropdownItem>\n <DropdownItem @click=\"handleClick('删除')\">删除</DropdownItem>\n </DropdownMenu>\n </template>\n </Dropdown>\n</template>",
306
+ "tags": [
307
+ "select",
308
+ "click",
309
+ "event"
310
+ ],
311
+ "usedProps": [],
312
+ "usedEvents": [
313
+ "click"
314
+ ],
315
+ "usedMethods": [],
316
+ "scenario": "监听菜单项点击并执行操作"
317
+ },
318
+ {
319
+ "id": "dropdown_nested",
320
+ "title": "嵌套菜单",
321
+ "description": "多级嵌套的下拉菜单",
322
+ "difficulty": "medium",
323
+ "code": "<script setup lang=\"ts\">\nimport { Dropdown, DropdownMenu, DropdownItem, Button } from '@king-design/vue';\n</script>\n<template>\n <Dropdown>\n <Button>嵌套菜单</Button>\n <template #menu>\n <DropdownMenu>\n <DropdownItem>菜单项1</DropdownItem>\n <Dropdown position=\"right\">\n <DropdownItem>更多 ></DropdownItem>\n <template #menu>\n <DropdownMenu>\n <DropdownItem>子菜单1</DropdownItem>\n <DropdownItem>子菜单2</DropdownItem>\n </DropdownMenu>\n </template>\n </Dropdown>\n </DropdownMenu>\n </template>\n </Dropdown>\n</template>",
324
+ "tags": [
325
+ "nested",
326
+ "submenu"
327
+ ],
328
+ "usedProps": [
329
+ "position"
330
+ ],
331
+ "usedEvents": [],
332
+ "usedMethods": [],
333
+ "scenario": "创建多级嵌套的下拉菜单"
334
+ },
335
+ {
336
+ "id": "dropdown_table_action",
337
+ "title": "表格操作列",
338
+ "description": "在表格中使用下拉菜单作为操作列",
339
+ "difficulty": "medium",
340
+ "code": "<script setup lang=\"ts\">\nimport { Dropdown, DropdownMenu, DropdownItem, Button, Message } from '@king-design/vue';\n\nconst handleAction = (action: string, id: number) => {\n Message.info(`对 ID=${id} 执行 ${action}`);\n};\n</script>\n<template>\n <!-- 假设在表格的操作列中 -->\n <Dropdown trigger=\"click\">\n <Button type=\"link\" size=\"small\">操作</Button>\n <template #menu>\n <DropdownMenu>\n <DropdownItem @click=\"handleAction('查看', 1)\">查看</DropdownItem>\n <DropdownItem @click=\"handleAction('编辑', 1)\">编辑</DropdownItem>\n <DropdownItem @click=\"handleAction('删除', 1)\">删除</DropdownItem>\n </DropdownMenu>\n </template>\n </Dropdown>\n</template>",
341
+ "tags": [
342
+ "table",
343
+ "action",
344
+ "operation"
345
+ ],
346
+ "usedProps": [
347
+ "trigger"
348
+ ],
349
+ "usedEvents": [
350
+ "click"
351
+ ],
352
+ "usedMethods": [],
353
+ "scenario": "在表格操作列中使用下拉菜单"
354
+ }
355
+ ],
356
+ "commonMistakes": [
357
+ {
358
+ "id": "dropdown_missing_menu_slot",
359
+ "description": "未使用 #menu 插槽",
360
+ "wrongCode": "<Dropdown>\n <Button>菜单</Button>\n <DropdownMenu>\n <DropdownItem>项目</DropdownItem>\n </DropdownMenu>\n</Dropdown>",
361
+ "correctCode": "<Dropdown>\n <Button>菜单</Button>\n <template #menu>\n <DropdownMenu>\n <DropdownItem>项目</DropdownItem>\n </DropdownMenu>\n </template>\n</Dropdown>",
362
+ "explanation": "DropdownMenu 必须放在 #menu 插槽中",
363
+ "relatedProps": []
364
+ },
365
+ {
366
+ "id": "dropdown_trigger_typo",
367
+ "description": "trigger 值拼写错误",
368
+ "wrongCode": "<Dropdown trigger=\"rightclick\">",
369
+ "correctCode": "<Dropdown trigger=\"contextmenu\">",
370
+ "explanation": "右键触发应使用 contextmenu,不是 rightclick",
371
+ "relatedProps": [
372
+ "trigger"
373
+ ]
374
+ },
375
+ {
376
+ "id": "dropdown_missing_dropdownmenu",
377
+ "description": "DropdownItem 未放在 DropdownMenu 中",
378
+ "wrongCode": "<Dropdown>\n <Button>菜单</Button>\n <template #menu>\n <DropdownItem>项目</DropdownItem>\n </template>\n</Dropdown>",
379
+ "correctCode": "<Dropdown>\n <Button>菜单</Button>\n <template #menu>\n <DropdownMenu>\n <DropdownItem>项目</DropdownItem>\n </DropdownMenu>\n </template>\n</Dropdown>",
380
+ "explanation": "DropdownItem 必须包裹在 DropdownMenu 中",
381
+ "relatedProps": []
382
+ }
383
+ ],
384
+ "searchKeywords": [
385
+ "下拉菜单",
386
+ "dropdown",
387
+ "菜单",
388
+ "menu",
389
+ "右键",
390
+ "contextmenu",
391
+ "悬停",
392
+ "hover"
393
+ ],
394
+ "useCases": [
395
+ "导航下拉菜单",
396
+ "表格操作列",
397
+ "右键上下文菜单",
398
+ "更多操作按钮",
399
+ "用户头像下拉菜单"
400
+ ],
401
+ "relatedComponents": [
402
+ "DropdownMenu",
403
+ "DropdownItem",
404
+ "Menu",
405
+ "Select"
406
+ ]
407
+ }