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,441 @@
1
+ {
2
+ "id": "spinner",
3
+ "name": "Spinner",
4
+ "displayName": "数字输入框",
5
+ "category": "form",
6
+ "description": "用于输入数字的组件,支持设置范围、步长、精度,以及格式化展示。可通过加减按钮或直接输入来调整数值。",
7
+ "importStatement": "import { Spinner } from '@king-design/vue';",
8
+ "props": [
9
+ {
10
+ "name": "value",
11
+ "description": "组件的值,可用 v-model 进行双向绑定",
12
+ "type": {
13
+ "raw": "number",
14
+ "kind": "number"
15
+ },
16
+ "required": false,
17
+ "default": "0",
18
+ "usageExample": "<Spinner v-model=\"count\" />"
19
+ },
20
+ {
21
+ "name": "disabled",
22
+ "description": "是否禁用",
23
+ "type": {
24
+ "raw": "boolean",
25
+ "kind": "boolean"
26
+ },
27
+ "required": false,
28
+ "default": "false",
29
+ "usageExample": "<Spinner disabled />"
30
+ },
31
+ {
32
+ "name": "max",
33
+ "description": "最大值",
34
+ "type": {
35
+ "raw": "number",
36
+ "kind": "number"
37
+ },
38
+ "required": false,
39
+ "default": "Number.POSITIVE_INFINITY",
40
+ "usageExample": "<Spinner :max=\"100\" />"
41
+ },
42
+ {
43
+ "name": "min",
44
+ "description": "最小值",
45
+ "type": {
46
+ "raw": "number",
47
+ "kind": "number"
48
+ },
49
+ "required": false,
50
+ "default": "Number.NEGATIVE_INFINITY",
51
+ "usageExample": "<Spinner :min=\"0\" />"
52
+ },
53
+ {
54
+ "name": "step",
55
+ "description": "步长,支持数字、对象或函数形式的动态步长",
56
+ "type": {
57
+ "raw": "number | StepObject | StepFunction",
58
+ "kind": "union"
59
+ },
60
+ "required": false,
61
+ "default": "1",
62
+ "usageExample": "<Spinner :step=\"5\" />"
63
+ },
64
+ {
65
+ "name": "size",
66
+ "description": "尺寸",
67
+ "type": {
68
+ "raw": "\"default\" | \"small\" | \"mini\"",
69
+ "kind": "union",
70
+ "unionTypes": [
71
+ "default",
72
+ "small",
73
+ "mini"
74
+ ]
75
+ },
76
+ "required": false,
77
+ "default": "\"default\"",
78
+ "allowedValues": [
79
+ {
80
+ "value": "default",
81
+ "label": "默认尺寸",
82
+ "isDefault": true
83
+ },
84
+ {
85
+ "value": "small",
86
+ "label": "小尺寸"
87
+ },
88
+ {
89
+ "value": "mini",
90
+ "label": "迷你尺寸"
91
+ }
92
+ ],
93
+ "usageExample": "<Spinner size=\"small\" />"
94
+ },
95
+ {
96
+ "name": "vertical",
97
+ "description": "控制按钮是否竖直排列",
98
+ "type": {
99
+ "raw": "boolean",
100
+ "kind": "boolean"
101
+ },
102
+ "required": false,
103
+ "default": "false",
104
+ "usageExample": "<Spinner vertical />"
105
+ },
106
+ {
107
+ "name": "precision",
108
+ "description": "控制展示精度,该值必须为正整数或 0",
109
+ "type": {
110
+ "raw": "number",
111
+ "kind": "number"
112
+ },
113
+ "required": false,
114
+ "default": "undefined",
115
+ "valueConstraints": [
116
+ {
117
+ "type": "min",
118
+ "value": 0,
119
+ "message": "precision 必须为正整数或 0"
120
+ }
121
+ ],
122
+ "usageExample": "<Spinner :precision=\"2\" :step=\"0.1\" />"
123
+ },
124
+ {
125
+ "name": "formatter",
126
+ "description": "定义格式化展示值的函数",
127
+ "type": {
128
+ "raw": "(value: number) => string",
129
+ "kind": "function",
130
+ "functionSignature": "(value: number) => string"
131
+ },
132
+ "required": false,
133
+ "default": "undefined",
134
+ "usageExample": "<Spinner :formatter=\"(val) => `${val}%`\" :parser=\"(val) => parseFloat(val)\" />"
135
+ },
136
+ {
137
+ "name": "parser",
138
+ "description": "与 formatter 结合使用,定义解析格式化的值的函数",
139
+ "type": {
140
+ "raw": "(value: string) => number",
141
+ "kind": "function",
142
+ "functionSignature": "(value: string) => number"
143
+ },
144
+ "required": false,
145
+ "default": "undefined",
146
+ "usageExample": "<Spinner :formatter=\"(val) => `${val}%`\" :parser=\"(val) => parseFloat(val)\" />"
147
+ },
148
+ {
149
+ "name": "prefix",
150
+ "description": "定义展示的值的前缀,优先级低于 formatter",
151
+ "type": {
152
+ "raw": "string",
153
+ "kind": "string"
154
+ },
155
+ "required": false,
156
+ "default": "undefined",
157
+ "usageExample": "<Spinner prefix=\"¥\" />"
158
+ },
159
+ {
160
+ "name": "suffix",
161
+ "description": "定义展示的值的后缀,优先级低于 formatter",
162
+ "type": {
163
+ "raw": "string",
164
+ "kind": "string"
165
+ },
166
+ "required": false,
167
+ "default": "undefined",
168
+ "usageExample": "<Spinner suffix=\"元\" />"
169
+ },
170
+ {
171
+ "name": "width",
172
+ "description": "指定 Input 输入框的宽度",
173
+ "type": {
174
+ "raw": "string | number",
175
+ "kind": "union"
176
+ },
177
+ "required": false,
178
+ "default": "undefined",
179
+ "usageExample": "<Spinner :width=\"150\" />"
180
+ },
181
+ {
182
+ "name": "forceStep",
183
+ "description": "value 值除了边界值,都必须满足 min + step * n(n 为整数)",
184
+ "type": {
185
+ "raw": "boolean",
186
+ "kind": "boolean"
187
+ },
188
+ "required": false,
189
+ "default": "false",
190
+ "usageExample": "<Spinner :min=\"0\" :step=\"5\" forceStep />"
191
+ }
192
+ ],
193
+ "events": [
194
+ {
195
+ "name": "change",
196
+ "vueEventName": "@change",
197
+ "description": "value 值变化时触发,仅在输入框 change 事件触发或点击加减按钮改变 value 时触发",
198
+ "payload": [
199
+ {
200
+ "name": "value",
201
+ "type": "number",
202
+ "description": "当前的数值"
203
+ }
204
+ ],
205
+ "usageExample": "<Spinner @change=\"handleChange\" />",
206
+ "handlerExample": "const handleChange = (value: number) => {\n console.log('当前值:', value);\n};"
207
+ }
208
+ ],
209
+ "methods": [],
210
+ "typeDefinitions": [
211
+ {
212
+ "name": "StepObject",
213
+ "definition": "type StepObject = {\n [key in number]: number\n} & {\n $?: number\n}",
214
+ "description": "动态步长对象,key 为阈值,value 为该阈值下的步长,$ 为默认步长"
215
+ },
216
+ {
217
+ "name": "StepFunction",
218
+ "definition": "type StepFunction = (value: number) => number",
219
+ "description": "动态步长函数,根据当前值返回步长"
220
+ }
221
+ ],
222
+ "examples": [
223
+ {
224
+ "id": "spinner_basic",
225
+ "title": "基础用法",
226
+ "description": "基本的数字输入框",
227
+ "difficulty": "easy",
228
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Spinner } from '@king-design/vue';\n\nconst value = ref(0);\n</script>\n<template>\n <Spinner v-model=\"value\" />\n</template>",
229
+ "tags": [
230
+ "basic"
231
+ ],
232
+ "usedProps": [
233
+ "value"
234
+ ],
235
+ "usedEvents": [],
236
+ "usedMethods": [],
237
+ "scenario": "创建一个基本的数字输入框"
238
+ },
239
+ {
240
+ "id": "spinner_range",
241
+ "title": "设置范围",
242
+ "description": "限制数值的最小值和最大值",
243
+ "difficulty": "easy",
244
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Spinner } from '@king-design/vue';\n\nconst value = ref(5);\n</script>\n<template>\n <Spinner v-model=\"value\" :min=\"0\" :max=\"10\" />\n</template>",
245
+ "tags": [
246
+ "min",
247
+ "max",
248
+ "range"
249
+ ],
250
+ "usedProps": [
251
+ "value",
252
+ "min",
253
+ "max"
254
+ ],
255
+ "usedEvents": [],
256
+ "usedMethods": [],
257
+ "scenario": "创建有范围限制的数字输入框"
258
+ },
259
+ {
260
+ "id": "spinner_step",
261
+ "title": "设置步长",
262
+ "description": "每次增减的数值大小",
263
+ "difficulty": "easy",
264
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Spinner } from '@king-design/vue';\n\nconst value = ref(0);\n</script>\n<template>\n <Spinner v-model=\"value\" :step=\"5\" />\n</template>",
265
+ "tags": [
266
+ "step"
267
+ ],
268
+ "usedProps": [
269
+ "value",
270
+ "step"
271
+ ],
272
+ "usedEvents": [],
273
+ "usedMethods": [],
274
+ "scenario": "设置每次点击加减按钮增减的步长"
275
+ },
276
+ {
277
+ "id": "spinner_precision",
278
+ "title": "小数精度",
279
+ "description": "控制小数位数",
280
+ "difficulty": "easy",
281
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Spinner } from '@king-design/vue';\n\nconst value = ref(0);\n</script>\n<template>\n <Spinner v-model=\"value\" :precision=\"2\" :step=\"0.1\" />\n</template>",
282
+ "tags": [
283
+ "precision",
284
+ "decimal"
285
+ ],
286
+ "usedProps": [
287
+ "value",
288
+ "precision",
289
+ "step"
290
+ ],
291
+ "usedEvents": [],
292
+ "usedMethods": [],
293
+ "scenario": "创建支持小数输入的数字输入框"
294
+ },
295
+ {
296
+ "id": "spinner_prefix_suffix",
297
+ "title": "前后缀",
298
+ "description": "添加前缀或后缀显示",
299
+ "difficulty": "easy",
300
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Spinner } from '@king-design/vue';\n\nconst price = ref(100);\nconst percent = ref(50);\n</script>\n<template>\n <Spinner v-model=\"price\" prefix=\"¥\" />\n <Spinner v-model=\"percent\" suffix=\"%\" />\n</template>",
301
+ "tags": [
302
+ "prefix",
303
+ "suffix",
304
+ "currency"
305
+ ],
306
+ "usedProps": [
307
+ "value",
308
+ "prefix",
309
+ "suffix"
310
+ ],
311
+ "usedEvents": [],
312
+ "usedMethods": [],
313
+ "scenario": "创建带货币符号或百分比符号的数字输入框"
314
+ },
315
+ {
316
+ "id": "spinner_vertical",
317
+ "title": "竖直排列",
318
+ "description": "加减按钮竖直排列",
319
+ "difficulty": "easy",
320
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Spinner } from '@king-design/vue';\n\nconst value = ref(0);\n</script>\n<template>\n <Spinner v-model=\"value\" vertical />\n</template>",
321
+ "tags": [
322
+ "vertical",
323
+ "layout"
324
+ ],
325
+ "usedProps": [
326
+ "value",
327
+ "vertical"
328
+ ],
329
+ "usedEvents": [],
330
+ "usedMethods": [],
331
+ "scenario": "创建加减按钮竖直排列的数字输入框"
332
+ },
333
+ {
334
+ "id": "spinner_formatter",
335
+ "title": "格式化显示",
336
+ "description": "自定义数值的显示格式",
337
+ "difficulty": "medium",
338
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Spinner } from '@king-design/vue';\n\nconst value = ref(1000);\n\nconst formatter = (val: number) => {\n return val.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n};\n\nconst parser = (val: string) => {\n return Number(val.replace(/,/g, ''));\n};\n</script>\n<template>\n <Spinner v-model=\"value\" :formatter=\"formatter\" :parser=\"parser\" />\n</template>",
339
+ "tags": [
340
+ "formatter",
341
+ "parser",
342
+ "format"
343
+ ],
344
+ "usedProps": [
345
+ "value",
346
+ "formatter",
347
+ "parser"
348
+ ],
349
+ "usedEvents": [],
350
+ "usedMethods": [],
351
+ "scenario": "创建带千分位分隔符格式化的数字输入框"
352
+ },
353
+ {
354
+ "id": "spinner_dynamic_step",
355
+ "title": "动态步长",
356
+ "description": "根据当前值动态调整步长",
357
+ "difficulty": "medium",
358
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { Spinner } from '@king-design/vue';\n\nconst value = ref(0);\n\n// 值 < 10 时步长为 1,>= 10 时步长为 10\nconst dynamicStep = (val: number) => {\n return val < 10 ? 1 : 10;\n};\n</script>\n<template>\n <Spinner v-model=\"value\" :step=\"dynamicStep\" />\n</template>",
359
+ "tags": [
360
+ "step",
361
+ "dynamic",
362
+ "function"
363
+ ],
364
+ "usedProps": [
365
+ "value",
366
+ "step"
367
+ ],
368
+ "usedEvents": [],
369
+ "usedMethods": [],
370
+ "scenario": "创建步长随当前值变化的数字输入框"
371
+ }
372
+ ],
373
+ "commonMistakes": [
374
+ {
375
+ "id": "spinner_precision_negative",
376
+ "description": "precision 设置为负数",
377
+ "wrongCode": "<Spinner :precision=\"-1\" />",
378
+ "correctCode": "<Spinner :precision=\"2\" />",
379
+ "explanation": "precision 必须为正整数或 0,负数无效",
380
+ "relatedProps": [
381
+ "precision"
382
+ ]
383
+ },
384
+ {
385
+ "id": "spinner_size_typo",
386
+ "description": "使用不存在的 size 值 (Spinner)",
387
+ "wrongCode": "<Spinner size=\"large\" />",
388
+ "correctCode": "<Spinner size=\"default\" />",
389
+ "explanation": "Spinner 的 size 只支持 default, small, mini。Spinner 组件目前不支持 large 尺寸。",
390
+ "relatedProps": [
391
+ "size"
392
+ ]
393
+ },
394
+ {
395
+ "id": "spinner_formatter_without_parser",
396
+ "description": "使用 formatter 但未提供 parser",
397
+ "wrongCode": "<Spinner :formatter=\"(val) => `${val}%`\" />",
398
+ "correctCode": "<Spinner :formatter=\"(val) => `${val}%`\" :parser=\"(val) => parseFloat(val)\" />",
399
+ "explanation": "使用 formatter 格式化显示时,必须同时提供 parser 来解析用户输入",
400
+ "relatedProps": [
401
+ "formatter",
402
+ "parser"
403
+ ]
404
+ },
405
+ {
406
+ "id": "spinner_min_greater_than_max",
407
+ "description": "min 大于 max",
408
+ "wrongCode": "<Spinner :min=\"100\" :max=\"0\" />",
409
+ "correctCode": "<Spinner :min=\"0\" :max=\"100\" />",
410
+ "explanation": "min 值必须小于或等于 max 值",
411
+ "relatedProps": [
412
+ "min",
413
+ "max"
414
+ ]
415
+ }
416
+ ],
417
+ "searchKeywords": [
418
+ "数字输入框",
419
+ "spinner",
420
+ "数字",
421
+ "number",
422
+ "步长",
423
+ "step",
424
+ "精度",
425
+ "precision",
426
+ "计数器",
427
+ "counter"
428
+ ],
429
+ "useCases": [
430
+ "数量选择器",
431
+ "价格/金额输入",
432
+ "百分比调节",
433
+ "页码跳转输入",
434
+ "年龄/年份输入",
435
+ "配置参数设置"
436
+ ],
437
+ "relatedComponents": [
438
+ "Input",
439
+ "Slider"
440
+ ]
441
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "id": "status",
3
+ "name": "Status",
4
+ "displayName": "状态指示器",
5
+ "category": "data",
6
+ "description": "显示状态图标和文本,支持旋转动画。",
7
+ "importStatement": "import { Status } from '@ksyun-internal/versatile';",
8
+ "props": [
9
+ {
10
+ "name": "type",
11
+ "description": "状态类型",
12
+ "type": {
13
+ "raw": "StatusType",
14
+ "kind": "union",
15
+ "unionTypes": [
16
+ "success",
17
+ "warning",
18
+ "error",
19
+ "info",
20
+ "loading"
21
+ ]
22
+ },
23
+ "required": false
24
+ },
25
+ {
26
+ "name": "color",
27
+ "description": "自定义颜色",
28
+ "type": {
29
+ "raw": "string",
30
+ "kind": "string"
31
+ },
32
+ "required": false
33
+ },
34
+ {
35
+ "name": "text",
36
+ "description": "状态文本",
37
+ "type": {
38
+ "raw": "string",
39
+ "kind": "string"
40
+ },
41
+ "required": false
42
+ },
43
+ {
44
+ "name": "rotate",
45
+ "description": "是否旋转图标",
46
+ "type": {
47
+ "raw": "boolean",
48
+ "kind": "boolean"
49
+ },
50
+ "required": false
51
+ },
52
+ {
53
+ "name": "refresh",
54
+ "description": "刷新函数,传递此属性时会显示刷新按钮",
55
+ "type": {
56
+ "raw": "() => Promise<void>",
57
+ "kind": "function"
58
+ },
59
+ "required": false
60
+ }
61
+ ],
62
+ "events": [],
63
+ "methods": [],
64
+ "examples": [],
65
+ "searchKeywords": [
66
+ "status",
67
+ "indicator",
68
+ "loading",
69
+ "状态"
70
+ ],
71
+ "useCases": [
72
+ "表格行状态展示",
73
+ "详情页资源状态"
74
+ ]
75
+ }