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,504 @@
1
+ {
2
+ "id": "tag",
3
+ "name": "Tag",
4
+ "displayName": "标签",
5
+ "category": "data",
6
+ "description": "标签组件,用于标记和分类信息。支持多种类型、可关闭、可拖拽排序等功能。配合 Tags 组件可管理标签组。",
7
+ "importStatement": "import { Tag, Tags } from '@king-design/vue';",
8
+ "props": [
9
+ {
10
+ "name": "type",
11
+ "description": "组件类型,决定标签的视觉样式",
12
+ "type": {
13
+ "raw": "\"default\" | \"primary\" | \"success\" | \"warning\" | \"danger\"",
14
+ "kind": "union",
15
+ "unionTypes": [
16
+ "default",
17
+ "primary",
18
+ "success",
19
+ "warning",
20
+ "danger"
21
+ ]
22
+ },
23
+ "required": false,
24
+ "default": "\"default\"",
25
+ "allowedValues": [
26
+ {
27
+ "value": "default",
28
+ "label": "默认灰色标签",
29
+ "isDefault": true
30
+ },
31
+ {
32
+ "value": "primary",
33
+ "label": "主题蓝色标签"
34
+ },
35
+ {
36
+ "value": "success",
37
+ "label": "成功绿色标签"
38
+ },
39
+ {
40
+ "value": "warning",
41
+ "label": "警告橙色标签"
42
+ },
43
+ {
44
+ "value": "danger",
45
+ "label": "危险红色标签"
46
+ }
47
+ ],
48
+ "usageExample": "<Tag type=\"primary\">主要标签</Tag>"
49
+ },
50
+ {
51
+ "name": "closable",
52
+ "description": "是否可关闭,显示关闭按钮",
53
+ "type": {
54
+ "raw": "boolean",
55
+ "kind": "boolean"
56
+ },
57
+ "required": false,
58
+ "default": "false",
59
+ "usageExample": "<Tag closable @close=\"handleClose\">可关闭标签</Tag>"
60
+ },
61
+ {
62
+ "name": "closed",
63
+ "description": "是否已关闭(受控模式)",
64
+ "type": {
65
+ "raw": "boolean",
66
+ "kind": "boolean"
67
+ },
68
+ "required": false,
69
+ "default": "false",
70
+ "usageExample": "<Tag closable :closed=\"isClosed\" @close=\"handleClose\">标签</Tag>"
71
+ },
72
+ {
73
+ "name": "disabled",
74
+ "description": "是否展示禁用状态",
75
+ "type": {
76
+ "raw": "boolean",
77
+ "kind": "boolean"
78
+ },
79
+ "required": false,
80
+ "default": "false",
81
+ "usageExample": "<Tag disabled>禁用标签</Tag>"
82
+ },
83
+ {
84
+ "name": "size",
85
+ "description": "组件尺寸",
86
+ "type": {
87
+ "raw": "\"large\" | \"default\" | \"small\" | \"mini\"",
88
+ "kind": "union",
89
+ "unionTypes": [
90
+ "large",
91
+ "default",
92
+ "small",
93
+ "mini"
94
+ ]
95
+ },
96
+ "required": false,
97
+ "default": "\"default\"",
98
+ "allowedValues": [
99
+ {
100
+ "value": "large",
101
+ "label": "大尺寸"
102
+ },
103
+ {
104
+ "value": "default",
105
+ "label": "默认尺寸",
106
+ "isDefault": true
107
+ },
108
+ {
109
+ "value": "small",
110
+ "label": "小尺寸"
111
+ },
112
+ {
113
+ "value": "mini",
114
+ "label": "迷你尺寸"
115
+ }
116
+ ],
117
+ "usageExample": "<Tag size=\"small\">小标签</Tag>"
118
+ },
119
+ {
120
+ "name": "border",
121
+ "description": "定义边框样式",
122
+ "type": {
123
+ "raw": "\"solid\" | \"dashed\" | \"none\"",
124
+ "kind": "union",
125
+ "unionTypes": [
126
+ "solid",
127
+ "dashed",
128
+ "none"
129
+ ]
130
+ },
131
+ "required": false,
132
+ "default": "\"none\"",
133
+ "allowedValues": [
134
+ {
135
+ "value": "none",
136
+ "label": "无边框",
137
+ "isDefault": true
138
+ },
139
+ {
140
+ "value": "solid",
141
+ "label": "实线边框"
142
+ },
143
+ {
144
+ "value": "dashed",
145
+ "label": "虚线边框"
146
+ }
147
+ ],
148
+ "usageExample": "<Tag border=\"solid\">带边框标签</Tag>"
149
+ }
150
+ ],
151
+ "events": [
152
+ {
153
+ "name": "close",
154
+ "vueEventName": "@close",
155
+ "description": "标签关闭事件,点击关闭按钮时触发",
156
+ "payload": [
157
+ {
158
+ "name": "e",
159
+ "type": "MouseEvent",
160
+ "description": "原生鼠标事件对象"
161
+ }
162
+ ],
163
+ "usageExample": "<Tag closable @close=\"handleClose\">可关闭</Tag>",
164
+ "handlerExample": "const handleClose = (e: MouseEvent) => {\n console.log('标签已关闭');\n};"
165
+ }
166
+ ],
167
+ "methods": [],
168
+ "subComponents": [
169
+ {
170
+ "name": "Tags",
171
+ "description": "标签组容器,用于管理多个标签,支持单行展示和拖拽排序",
172
+ "props": [
173
+ {
174
+ "name": "size",
175
+ "description": "定义\"更多\"标签尺寸",
176
+ "type": {
177
+ "raw": "\"large\" | \"default\" | \"small\" | \"mini\"",
178
+ "kind": "union",
179
+ "unionTypes": [
180
+ "large",
181
+ "default",
182
+ "small",
183
+ "mini"
184
+ ]
185
+ },
186
+ "required": false,
187
+ "default": "\"default\"",
188
+ "usageExample": "<Tags size=\"small\">"
189
+ },
190
+ {
191
+ "name": "border",
192
+ "description": "定义\"更多\"标签边框样式",
193
+ "type": {
194
+ "raw": "\"solid\" | \"dashed\" | \"none\"",
195
+ "kind": "union",
196
+ "unionTypes": [
197
+ "solid",
198
+ "dashed",
199
+ "none"
200
+ ]
201
+ },
202
+ "required": false,
203
+ "default": "\"none\"",
204
+ "usageExample": "<Tags border=\"solid\">"
205
+ },
206
+ {
207
+ "name": "nowrap",
208
+ "description": "是否单行展示标签组,超出的部分会隐藏,仅展示隐藏数量",
209
+ "type": {
210
+ "raw": "boolean",
211
+ "kind": "boolean"
212
+ },
213
+ "required": false,
214
+ "default": "false",
215
+ "usageExample": "<Tags nowrap>"
216
+ },
217
+ {
218
+ "name": "draggable",
219
+ "description": "标签是否支持拖动排序",
220
+ "type": {
221
+ "raw": "boolean",
222
+ "kind": "boolean"
223
+ },
224
+ "required": false,
225
+ "default": "false",
226
+ "usageExample": "<Tags draggable>"
227
+ }
228
+ ],
229
+ "events": [
230
+ {
231
+ "name": "dragstart",
232
+ "vueEventName": "@dragstart",
233
+ "description": "拖动开始时触发",
234
+ "payload": [
235
+ {
236
+ "name": "key",
237
+ "type": "string | number",
238
+ "description": "被拖拽标签的 key"
239
+ },
240
+ {
241
+ "name": "from",
242
+ "type": "number",
243
+ "description": "起始位置索引"
244
+ }
245
+ ],
246
+ "usageExample": "<Tags draggable @dragstart=\"handleDragStart\">",
247
+ "handlerExample": "const handleDragStart = ({key, from}) => {\n console.log('开始拖拽', key, from);\n};"
248
+ },
249
+ {
250
+ "name": "dragend",
251
+ "vueEventName": "@dragend",
252
+ "description": "拖动结束时触发",
253
+ "payload": [
254
+ {
255
+ "name": "key",
256
+ "type": "string | number",
257
+ "description": "被拖拽标签的 key"
258
+ },
259
+ {
260
+ "name": "from",
261
+ "type": "number",
262
+ "description": "起始位置索引"
263
+ },
264
+ {
265
+ "name": "to",
266
+ "type": "number",
267
+ "description": "目标位置索引"
268
+ }
269
+ ],
270
+ "usageExample": "<Tags draggable @dragend=\"handleDragEnd\">",
271
+ "handlerExample": "const handleDragEnd = ({key, from, to}) => {\n console.log('拖拽结束', key, 'from', from, 'to', to);\n};"
272
+ }
273
+ ],
274
+ "slots": [
275
+ {
276
+ "name": "append",
277
+ "description": "追加到后面的元素,不参与到Tags对Tag的管理中"
278
+ }
279
+ ]
280
+ }
281
+ ],
282
+ "typeDefinitions": [
283
+ {
284
+ "name": "Key",
285
+ "definition": "type Key = string | number",
286
+ "description": "标签的唯一标识类型"
287
+ },
288
+ {
289
+ "name": "TagsDragStartParam",
290
+ "definition": "type TagsDragStartParam = {\n key: Key\n from: number\n}",
291
+ "description": "拖拽开始事件参数"
292
+ },
293
+ {
294
+ "name": "TagsDragEndParam",
295
+ "definition": "type TagsDragEndParam = TagsDragStartParam & {\n to: number\n}",
296
+ "description": "拖拽结束事件参数"
297
+ }
298
+ ],
299
+ "examples": [
300
+ {
301
+ "id": "tag_basic",
302
+ "title": "基础用法",
303
+ "description": "不同类型的标签",
304
+ "difficulty": "easy",
305
+ "code": "<script setup lang=\"ts\">\nimport { Tag } from '@king-design/vue';\n</script>\n<template>\n <Tag>默认标签</Tag>\n <Tag type=\"primary\">主要标签</Tag>\n <Tag type=\"success\">成功标签</Tag>\n <Tag type=\"warning\">警告标签</Tag>\n <Tag type=\"danger\">危险标签</Tag>\n</template>",
306
+ "tags": [
307
+ "basic",
308
+ "type"
309
+ ],
310
+ "usedProps": [
311
+ "type"
312
+ ],
313
+ "usedEvents": [],
314
+ "usedMethods": [],
315
+ "scenario": "展示不同类型的标签"
316
+ },
317
+ {
318
+ "id": "tag_closable",
319
+ "title": "可关闭标签",
320
+ "description": "带有关闭按钮的标签",
321
+ "difficulty": "easy",
322
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Tag } from '@king-design/vue';\n\nconst closed = ref(false);\n\nconst handleClose = () => {\n closed.value = true;\n};\n</script>\n<template>\n <Tag closable :closed=\"closed\" @close=\"handleClose\">可关闭标签</Tag>\n</template>",
323
+ "tags": [
324
+ "closable",
325
+ "close"
326
+ ],
327
+ "usedProps": [
328
+ "closable",
329
+ "closed"
330
+ ],
331
+ "usedEvents": [
332
+ "close"
333
+ ],
334
+ "usedMethods": [],
335
+ "scenario": "创建可以关闭的标签"
336
+ },
337
+ {
338
+ "id": "tag_border",
339
+ "title": "带边框标签",
340
+ "description": "使用不同边框样式的标签",
341
+ "difficulty": "easy",
342
+ "code": "<script setup lang=\"ts\">\nimport { Tag } from '@king-design/vue';\n</script>\n<template>\n <Tag border=\"solid\">实线边框</Tag>\n <Tag border=\"dashed\">虚线边框</Tag>\n <Tag border=\"solid\" type=\"primary\">主要边框</Tag>\n</template>",
343
+ "tags": [
344
+ "border",
345
+ "solid",
346
+ "dashed"
347
+ ],
348
+ "usedProps": [
349
+ "border",
350
+ "type"
351
+ ],
352
+ "usedEvents": [],
353
+ "usedMethods": [],
354
+ "scenario": "创建带有边框的标签"
355
+ },
356
+ {
357
+ "id": "tag_sizes",
358
+ "title": "不同尺寸",
359
+ "description": "展示不同尺寸的标签",
360
+ "difficulty": "easy",
361
+ "code": "<script setup lang=\"ts\">\nimport { Tag } from '@king-design/vue';\n</script>\n<template>\n <Tag size=\"large\">大标签</Tag>\n <Tag size=\"default\">默认标签</Tag>\n <Tag size=\"small\">小标签</Tag>\n <Tag size=\"mini\">迷你标签</Tag>\n</template>",
362
+ "tags": [
363
+ "size",
364
+ "large",
365
+ "small",
366
+ "mini"
367
+ ],
368
+ "usedProps": [
369
+ "size"
370
+ ],
371
+ "usedEvents": [],
372
+ "usedMethods": [],
373
+ "scenario": "使用不同尺寸的标签"
374
+ },
375
+ {
376
+ "id": "tag_group",
377
+ "title": "标签组",
378
+ "description": "使用 Tags 组件管理标签组",
379
+ "difficulty": "easy",
380
+ "code": "<script setup lang=\"ts\">\nimport { Tags, Tag } from '@king-design/vue';\n</script>\n<template>\n <Tags>\n <Tag>标签1</Tag>\n <Tag>标签2</Tag>\n <Tag>标签3</Tag>\n <Tag>标签4</Tag>\n <Tag>标签5</Tag>\n </Tags>\n</template>",
381
+ "tags": [
382
+ "Tags",
383
+ "group"
384
+ ],
385
+ "usedProps": [],
386
+ "usedEvents": [],
387
+ "usedMethods": [],
388
+ "scenario": "使用标签组管理多个标签"
389
+ },
390
+ {
391
+ "id": "tag_nowrap",
392
+ "title": "单行标签组",
393
+ "description": "超出隐藏并显示隐藏数量",
394
+ "difficulty": "easy",
395
+ "code": "<script setup lang=\"ts\">\nimport { Tags, Tag } from '@king-design/vue';\n</script>\n<template>\n <div style=\"width: 300px;\">\n <Tags nowrap>\n <Tag>标签1</Tag>\n <Tag>标签2</Tag>\n <Tag>标签3</Tag>\n <Tag>标签4</Tag>\n <Tag>标签5</Tag>\n <Tag>标签6</Tag>\n </Tags>\n </div>\n</template>",
396
+ "tags": [
397
+ "nowrap",
398
+ "overflow"
399
+ ],
400
+ "usedProps": [
401
+ "nowrap"
402
+ ],
403
+ "usedEvents": [],
404
+ "usedMethods": [],
405
+ "scenario": "在有限空间内展示标签,超出部分显示数量"
406
+ },
407
+ {
408
+ "id": "tag_draggable",
409
+ "title": "可拖拽排序",
410
+ "description": "支持拖拽排序的标签组",
411
+ "difficulty": "medium",
412
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Tags, Tag, Message } from '@king-design/vue';\n\nconst tags = ref(['标签1', '标签2', '标签3', '标签4']);\n\nconst handleDragEnd = ({from, to}: {from: number; to: number}) => {\n const tag = tags.value.splice(from, 1)[0];\n tags.value.splice(to, 0, tag);\n Message.success(`从 ${from} 移动到 ${to}`);\n};\n</script>\n<template>\n <Tags draggable @dragend=\"handleDragEnd\">\n <Tag v-for=\"tag in tags\" :key=\"tag\">{{ tag }}</Tag>\n </Tags>\n</template>",
413
+ "tags": [
414
+ "draggable",
415
+ "drag",
416
+ "sort"
417
+ ],
418
+ "usedProps": [
419
+ "draggable"
420
+ ],
421
+ "usedEvents": [
422
+ "dragend"
423
+ ],
424
+ "usedMethods": [],
425
+ "scenario": "创建支持拖拽排序的标签组"
426
+ },
427
+ {
428
+ "id": "tag_dynamic",
429
+ "title": "动态编辑标签",
430
+ "description": "动态添加和删除标签",
431
+ "difficulty": "medium",
432
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Tags, Tag, Button, Input } from '@king-design/vue';\n\nconst tags = ref(['标签1', '标签2']);\nconst inputValue = ref('');\n\nconst handleClose = (index: number) => {\n tags.value.splice(index, 1);\n};\n\nconst handleAdd = () => {\n if (inputValue.value) {\n tags.value.push(inputValue.value);\n inputValue.value = '';\n }\n};\n</script>\n<template>\n <Tags>\n <Tag v-for=\"(tag, index) in tags\" :key=\"tag\" \n closable @close=\"handleClose(index)\">{{ tag }}</Tag>\n <template #append>\n <Input v-model=\"inputValue\" :width=\"100\" size=\"mini\" \n placeholder=\"新标签\" @keydown.enter=\"handleAdd\" />\n </template>\n </Tags>\n</template>",
433
+ "tags": [
434
+ "dynamic",
435
+ "add",
436
+ "delete"
437
+ ],
438
+ "usedProps": [
439
+ "closable"
440
+ ],
441
+ "usedEvents": [
442
+ "close"
443
+ ],
444
+ "usedMethods": [],
445
+ "scenario": "动态添加和删除标签的完整示例"
446
+ }
447
+ ],
448
+ "commonMistakes": [
449
+ {
450
+ "id": "tag_closable_controlled",
451
+ "description": "可关闭标签未使用受控模式",
452
+ "wrongCode": "<Tag closable>标签</Tag>",
453
+ "correctCode": "<Tag closable :closed=\"isClosed\" @close=\"handleClose\">标签</Tag>",
454
+ "explanation": "closable 只显示关闭按钮,需要配合 closed 属性和 @close 事件来控制关闭行为",
455
+ "relatedProps": [
456
+ "closable",
457
+ "closed"
458
+ ]
459
+ },
460
+ {
461
+ "id": "tag_type_typo",
462
+ "description": "使用不存在的 type 值",
463
+ "wrongCode": "<Tag type=\"info\">信息标签</Tag>",
464
+ "correctCode": "<Tag type=\"primary\">主要标签</Tag>",
465
+ "explanation": "Tag 的 type 只支持 default, primary, success, warning, danger,不存在 info 值",
466
+ "relatedProps": [
467
+ "type"
468
+ ]
469
+ },
470
+ {
471
+ "id": "tag_draggable_missing_key",
472
+ "description": "拖拽标签组未设置 key",
473
+ "wrongCode": "<Tags draggable>\n <Tag v-for=\"tag in tags\">{{ tag }}</Tag>\n</Tags>",
474
+ "correctCode": "<Tags draggable>\n <Tag v-for=\"tag in tags\" :key=\"tag\">{{ tag }}</Tag>\n</Tags>",
475
+ "explanation": "使用拖拽功能时,每个 Tag 必须有唯一的 key",
476
+ "relatedProps": [
477
+ "draggable"
478
+ ]
479
+ }
480
+ ],
481
+ "searchKeywords": [
482
+ "标签",
483
+ "tag",
484
+ "tags",
485
+ "分类",
486
+ "标记",
487
+ "关闭",
488
+ "closable",
489
+ "拖拽",
490
+ "draggable"
491
+ ],
492
+ "useCases": [
493
+ "文章标签分类",
494
+ "商品标签",
495
+ "用户标签",
496
+ "动态添加删除标签",
497
+ "标签筛选器",
498
+ "可排序的标签列表"
499
+ ],
500
+ "relatedComponents": [
501
+ "Tags",
502
+ "Badge"
503
+ ]
504
+ }