ep-craft 0.1.42 → 0.2.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 (236) hide show
  1. package/dist-ai/components/affix.json +152 -0
  2. package/dist-ai/components/affix.md +73 -0
  3. package/dist-ai/components/alert.json +186 -0
  4. package/dist-ai/components/alert.md +89 -0
  5. package/dist-ai/components/anchor-link.json +102 -0
  6. package/dist-ai/components/anchor-link.md +67 -0
  7. package/dist-ai/components/anchor.json +179 -0
  8. package/dist-ai/components/anchor.md +87 -0
  9. package/dist-ai/components/aside.json +87 -0
  10. package/dist-ai/components/aside.md +63 -0
  11. package/dist-ai/components/autocomplete.json +613 -0
  12. package/dist-ai/components/autocomplete.md +140 -0
  13. package/dist-ai/components/avatar.json +163 -0
  14. package/dist-ai/components/avatar.md +83 -0
  15. package/dist-ai/components/backtop.json +118 -0
  16. package/dist-ai/components/backtop.md +66 -0
  17. package/dist-ai/components/badge.json +186 -0
  18. package/dist-ai/components/badge.md +85 -0
  19. package/dist-ai/components/breadcrumb-item.json +97 -0
  20. package/dist-ai/components/breadcrumb-item.md +65 -0
  21. package/dist-ai/components/breadcrumb.json +100 -0
  22. package/dist-ai/components/breadcrumb.md +68 -0
  23. package/dist-ai/components/button-group.json +123 -0
  24. package/dist-ai/components/button-group.md +65 -0
  25. package/dist-ai/components/button.json +349 -0
  26. package/dist-ai/components/button.md +124 -0
  27. package/dist-ai/components/calendar.json +148 -0
  28. package/dist-ai/components/calendar.md +74 -0
  29. package/dist-ai/components/card.json +168 -0
  30. package/dist-ai/components/card.md +87 -0
  31. package/dist-ai/components/carousel-item.json +99 -0
  32. package/dist-ai/components/carousel-item.md +68 -0
  33. package/dist-ai/components/carousel.json +245 -0
  34. package/dist-ai/components/carousel.md +97 -0
  35. package/dist-ai/components/cascader-panel.json +242 -0
  36. package/dist-ai/components/cascader-panel.md +108 -0
  37. package/dist-ai/components/cascader.json +531 -0
  38. package/dist-ai/components/cascader.md +146 -0
  39. package/dist-ai/components/check-tag.json +133 -0
  40. package/dist-ai/components/check-tag.md +72 -0
  41. package/dist-ai/components/checkbox-button.json +279 -0
  42. package/dist-ai/components/checkbox-button.md +94 -0
  43. package/dist-ai/components/checkbox-group.json +236 -0
  44. package/dist-ai/components/checkbox-group.md +90 -0
  45. package/dist-ai/components/checkbox.json +278 -0
  46. package/dist-ai/components/checkbox.md +91 -0
  47. package/dist-ai/components/col.json +168 -0
  48. package/dist-ai/components/col.md +72 -0
  49. package/dist-ai/components/collapse-item.json +133 -0
  50. package/dist-ai/components/collapse-item.md +75 -0
  51. package/dist-ai/components/collapse-transition.json +75 -0
  52. package/dist-ai/components/collapse-transition.md +59 -0
  53. package/dist-ai/components/collapse.json +129 -0
  54. package/dist-ai/components/collapse.md +76 -0
  55. package/dist-ai/components/color-picker.json +280 -0
  56. package/dist-ai/components/color-picker.md +85 -0
  57. package/dist-ai/components/config-provider.json +222 -0
  58. package/dist-ai/components/config-provider.md +76 -0
  59. package/dist-ai/components/container.json +95 -0
  60. package/dist-ai/components/container.md +70 -0
  61. package/dist-ai/components/countdown.json +155 -0
  62. package/dist-ai/components/countdown.md +73 -0
  63. package/dist-ai/components/date-picker-panel.json +346 -0
  64. package/dist-ai/components/date-picker-panel.md +91 -0
  65. package/dist-ai/components/date-picker.json +574 -0
  66. package/dist-ai/components/date-picker.md +153 -0
  67. package/dist-ai/components/descriptions-item.json +175 -0
  68. package/dist-ai/components/descriptions-item.md +73 -0
  69. package/dist-ai/components/descriptions.json +171 -0
  70. package/dist-ai/components/descriptions.md +78 -0
  71. package/dist-ai/components/dialog.json +403 -0
  72. package/dist-ai/components/dialog.md +108 -0
  73. package/dist-ai/components/divider.json +102 -0
  74. package/dist-ai/components/divider.md +59 -0
  75. package/dist-ai/components/drawer.json +468 -0
  76. package/dist-ai/components/drawer.md +115 -0
  77. package/dist-ai/components/dropdown-item.json +156 -0
  78. package/dist-ai/components/dropdown-item.md +84 -0
  79. package/dist-ai/components/dropdown-menu.json +92 -0
  80. package/dist-ai/components/dropdown-menu.md +70 -0
  81. package/dist-ai/components/dropdown.json +374 -0
  82. package/dist-ai/components/dropdown.md +108 -0
  83. package/dist-ai/components/empty.json +116 -0
  84. package/dist-ai/components/empty.md +62 -0
  85. package/dist-ai/components/footer.json +86 -0
  86. package/dist-ai/components/footer.md +63 -0
  87. package/dist-ai/components/form-item.json +242 -0
  88. package/dist-ai/components/form-item.md +93 -0
  89. package/dist-ai/components/form.json +277 -0
  90. package/dist-ai/components/form.md +117 -0
  91. package/dist-ai/components/header.json +86 -0
  92. package/dist-ai/components/header.md +63 -0
  93. package/dist-ai/components/icon.json +95 -0
  94. package/dist-ai/components/icon.md +61 -0
  95. package/dist-ai/components/image-viewer.json +235 -0
  96. package/dist-ai/components/image-viewer.md +88 -0
  97. package/dist-ai/components/image.json +299 -0
  98. package/dist-ai/components/image.md +96 -0
  99. package/dist-ai/components/input-number.json +370 -0
  100. package/dist-ai/components/input-number.md +127 -0
  101. package/dist-ai/components/input.json +545 -0
  102. package/dist-ai/components/input.md +166 -0
  103. package/dist-ai/components/link.json +162 -0
  104. package/dist-ai/components/link.md +72 -0
  105. package/dist-ai/components/main.json +77 -0
  106. package/dist-ai/components/main.md +58 -0
  107. package/dist-ai/components/mention.json +598 -0
  108. package/dist-ai/components/mention.md +136 -0
  109. package/dist-ai/components/menu-item-group.json +101 -0
  110. package/dist-ai/components/menu-item-group.md +69 -0
  111. package/dist-ai/components/menu-item.json +131 -0
  112. package/dist-ai/components/menu-item.md +76 -0
  113. package/dist-ai/components/menu.json +314 -0
  114. package/dist-ai/components/menu.md +104 -0
  115. package/dist-ai/components/option-group.json +113 -0
  116. package/dist-ai/components/option-group.md +79 -0
  117. package/dist-ai/components/option.json +122 -0
  118. package/dist-ai/components/option.md +70 -0
  119. package/dist-ai/components/page-header.json +131 -0
  120. package/dist-ai/components/page-header.md +70 -0
  121. package/dist-ai/components/pagination.json +325 -0
  122. package/dist-ai/components/pagination.md +115 -0
  123. package/dist-ai/components/popconfirm.json +240 -0
  124. package/dist-ai/components/popconfirm.md +89 -0
  125. package/dist-ai/components/popover.json +351 -0
  126. package/dist-ai/components/popover.md +99 -0
  127. package/dist-ai/components/popper.json +93 -0
  128. package/dist-ai/components/popper.md +66 -0
  129. package/dist-ai/components/progress.json +219 -0
  130. package/dist-ai/components/progress.md +74 -0
  131. package/dist-ai/components/radio-button.json +142 -0
  132. package/dist-ai/components/radio-button.md +76 -0
  133. package/dist-ai/components/radio-group.json +219 -0
  134. package/dist-ai/components/radio-group.md +88 -0
  135. package/dist-ai/components/radio.json +177 -0
  136. package/dist-ai/components/radio.md +83 -0
  137. package/dist-ai/components/rate.json +286 -0
  138. package/dist-ai/components/rate.md +83 -0
  139. package/dist-ai/components/result.json +118 -0
  140. package/dist-ai/components/result.md +66 -0
  141. package/dist-ai/components/row.json +115 -0
  142. package/dist-ai/components/row.md +68 -0
  143. package/dist-ai/components/scrollbar.json +280 -0
  144. package/dist-ai/components/scrollbar.md +89 -0
  145. package/dist-ai/components/segmented.json +204 -0
  146. package/dist-ai/components/segmented.md +81 -0
  147. package/dist-ai/components/select-v2.json +729 -0
  148. package/dist-ai/components/select-v2.md +193 -0
  149. package/dist-ai/components/select.json +697 -0
  150. package/dist-ai/components/select.md +188 -0
  151. package/dist-ai/components/skeleton-item.json +80 -0
  152. package/dist-ai/components/skeleton-item.md +57 -0
  153. package/dist-ai/components/skeleton.json +134 -0
  154. package/dist-ai/components/skeleton.md +65 -0
  155. package/dist-ai/components/slider.json +326 -0
  156. package/dist-ai/components/slider.md +88 -0
  157. package/dist-ai/components/space.json +178 -0
  158. package/dist-ai/components/space.md +73 -0
  159. package/dist-ai/components/statistic.json +167 -0
  160. package/dist-ai/components/statistic.md +66 -0
  161. package/dist-ai/components/step.json +124 -0
  162. package/dist-ai/components/step.md +69 -0
  163. package/dist-ai/components/steps.json +157 -0
  164. package/dist-ai/components/steps.md +79 -0
  165. package/dist-ai/components/sub-menu.json +211 -0
  166. package/dist-ai/components/sub-menu.md +88 -0
  167. package/dist-ai/components/switch.json +292 -0
  168. package/dist-ai/components/switch.md +88 -0
  169. package/dist-ai/components/tab-pane.json +137 -0
  170. package/dist-ai/components/tab-pane.md +72 -0
  171. package/dist-ai/components/table-column.json +368 -0
  172. package/dist-ai/components/table-column.md +103 -0
  173. package/dist-ai/components/table-v2.json +486 -0
  174. package/dist-ai/components/table-v2.md +123 -0
  175. package/dist-ai/components/table.json +734 -0
  176. package/dist-ai/components/table.md +205 -0
  177. package/dist-ai/components/tabs.json +231 -0
  178. package/dist-ai/components/tabs.md +127 -0
  179. package/dist-ai/components/tag.json +205 -0
  180. package/dist-ai/components/tag.md +105 -0
  181. package/dist-ai/components/text.json +143 -0
  182. package/dist-ai/components/text.md +66 -0
  183. package/dist-ai/components/time-picker.json +555 -0
  184. package/dist-ai/components/time-picker.md +123 -0
  185. package/dist-ai/components/time-select.json +321 -0
  186. package/dist-ai/components/time-select.md +93 -0
  187. package/dist-ai/components/timeline-item.json +186 -0
  188. package/dist-ai/components/timeline-item.md +78 -0
  189. package/dist-ai/components/timeline.json +99 -0
  190. package/dist-ai/components/timeline.md +65 -0
  191. package/dist-ai/components/tooltip.json +599 -0
  192. package/dist-ai/components/tooltip.md +137 -0
  193. package/dist-ai/components/tour-step.json +219 -0
  194. package/dist-ai/components/tour-step.md +88 -0
  195. package/dist-ai/components/tour.json +258 -0
  196. package/dist-ai/components/tour.md +96 -0
  197. package/dist-ai/components/transfer.json +275 -0
  198. package/dist-ai/components/transfer.md +95 -0
  199. package/dist-ai/components/tree-select.json +945 -0
  200. package/dist-ai/components/tree-select.md +181 -0
  201. package/dist-ai/components/tree-v2.json +395 -0
  202. package/dist-ai/components/tree-v2.md +113 -0
  203. package/dist-ai/components/tree.json +485 -0
  204. package/dist-ai/components/tree.md +131 -0
  205. package/dist-ai/components/upload.json +382 -0
  206. package/dist-ai/components/upload.md +130 -0
  207. package/dist-ai/components/watermark.json +157 -0
  208. package/dist-ai/components/watermark.md +66 -0
  209. package/dist-ai/directives/click-outside.json +61 -0
  210. package/dist-ai/directives/click-outside.md +50 -0
  211. package/dist-ai/directives/infinite-scroll.json +83 -0
  212. package/dist-ai/directives/infinite-scroll.md +62 -0
  213. package/dist-ai/directives/loading.json +89 -0
  214. package/dist-ai/directives/loading.md +69 -0
  215. package/dist-ai/directives/mousewheel.json +54 -0
  216. package/dist-ai/directives/mousewheel.md +48 -0
  217. package/dist-ai/directives/repeat-click.json +68 -0
  218. package/dist-ai/directives/repeat-click.md +49 -0
  219. package/dist-ai/directives/trap-focus.json +46 -0
  220. package/dist-ai/directives/trap-focus.md +46 -0
  221. package/dist-ai/icons.json +1 -0
  222. package/dist-ai/index.json +1 -0
  223. package/dist-ai/llms.txt +170 -0
  224. package/dist-ai/manifest.json +26590 -0
  225. package/dist-ai/schema/manifest.schema.json +793 -0
  226. package/dist-ai/services/infinite-scroll.json +80 -0
  227. package/dist-ai/services/infinite-scroll.md +71 -0
  228. package/dist-ai/services/loading.json +108 -0
  229. package/dist-ai/services/loading.md +58 -0
  230. package/dist-ai/services/message-box.json +159 -0
  231. package/dist-ai/services/message-box.md +78 -0
  232. package/dist-ai/services/message.json +137 -0
  233. package/dist-ai/services/message.md +72 -0
  234. package/dist-ai/services/notification.json +136 -0
  235. package/dist-ai/services/notification.md +73 -0
  236. package/package.json +12 -2
@@ -0,0 +1,314 @@
1
+ {
2
+ "entry": {
3
+ "category": "navigation",
4
+ "events": [
5
+ {
6
+ "description": "收起子菜单时触发",
7
+ "name": "close",
8
+ "params": "(index: string, indexPath: string[])"
9
+ },
10
+ {
11
+ "description": "展开子菜单时触发",
12
+ "name": "open",
13
+ "params": "(index: string, indexPath: string[])"
14
+ },
15
+ {
16
+ "description": "选中菜单项时触发",
17
+ "name": "select",
18
+ "params": "(index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<unknown>)"
19
+ }
20
+ ],
21
+ "exampleOmittedReason": null,
22
+ "examples": [
23
+ {
24
+ "code": "<script setup lang=\"ts\">\nimport { EpMenu, EpMenuItem, EpSubMenu } from 'ep-craft'\n</script>\n\n<template>\n <ep-menu default-active=\"home\" mode=\"horizontal\">\n <ep-menu-item index=\"home\">首页</ep-menu-item>\n <ep-sub-menu index=\"components\">\n <template #title>组件</template>\n <ep-menu-item index=\"button\">按钮</ep-menu-item>\n <ep-menu-item index=\"table\">表格</ep-menu-item>\n </ep-sub-menu>\n </ep-menu>\n</template>",
25
+ "id": "menu-1",
26
+ "language": "vue",
27
+ "title": "导航菜单"
28
+ }
29
+ ],
30
+ "exposes": [
31
+ {
32
+ "description": "展开指定子菜单",
33
+ "name": "open",
34
+ "type": "(index: string) => void"
35
+ },
36
+ {
37
+ "description": "收起指定子菜单",
38
+ "name": "close",
39
+ "type": "(index: string) => void"
40
+ },
41
+ {
42
+ "description": "更新激活菜单项",
43
+ "name": "updateActiveIndex",
44
+ "type": "(index: string) => void"
45
+ },
46
+ {
47
+ "description": "处理尺寸变化",
48
+ "name": "handleResize",
49
+ "type": "() => void"
50
+ }
51
+ ],
52
+ "hot": true,
53
+ "id": "component:menu",
54
+ "keywords": {
55
+ "en": [
56
+ "menu",
57
+ "nav",
58
+ "navigation"
59
+ ],
60
+ "zh": [
61
+ "菜单",
62
+ "导航",
63
+ "侧边栏"
64
+ ]
65
+ },
66
+ "kind": "component",
67
+ "name": "EpMenu",
68
+ "nonUseCases": [
69
+ "单步无层级的简单跳转时"
70
+ ],
71
+ "props": [
72
+ {
73
+ "alias": null,
74
+ "defaultText": "vertical",
75
+ "description": "菜单展示模式",
76
+ "hasDefault": true,
77
+ "name": "mode",
78
+ "required": false,
79
+ "type": "'horizontal' | 'vertical'"
80
+ },
81
+ {
82
+ "alias": null,
83
+ "defaultText": "''",
84
+ "description": "页面加载时默认激活的菜单项 index",
85
+ "hasDefault": true,
86
+ "name": "defaultActive",
87
+ "required": false,
88
+ "type": "string"
89
+ },
90
+ {
91
+ "alias": null,
92
+ "defaultText": "[]",
93
+ "description": "默认展开的子菜单 index 数组",
94
+ "hasDefault": true,
95
+ "name": "defaultOpeneds",
96
+ "required": false,
97
+ "type": "string[]"
98
+ },
99
+ {
100
+ "alias": null,
101
+ "defaultText": "false",
102
+ "description": "是否只保持一个子菜单展开",
103
+ "hasDefault": false,
104
+ "name": "uniqueOpened",
105
+ "required": false,
106
+ "type": "boolean"
107
+ },
108
+ {
109
+ "alias": null,
110
+ "defaultText": "false",
111
+ "description": "是否启用 vue-router 模式",
112
+ "hasDefault": false,
113
+ "name": "router",
114
+ "required": false,
115
+ "type": "boolean"
116
+ },
117
+ {
118
+ "alias": null,
119
+ "defaultText": "hover",
120
+ "description": "子菜单触发方式,仅在水平模式下生效",
121
+ "hasDefault": true,
122
+ "name": "menuTrigger",
123
+ "required": false,
124
+ "type": "'hover' | 'click'"
125
+ },
126
+ {
127
+ "alias": null,
128
+ "defaultText": "false",
129
+ "description": "是否水平折叠菜单,仅在垂直模式下生效",
130
+ "hasDefault": false,
131
+ "name": "collapse",
132
+ "required": false,
133
+ "type": "boolean"
134
+ },
135
+ {
136
+ "alias": null,
137
+ "defaultText": null,
138
+ "description": "菜单背景色(十六进制)",
139
+ "hasDefault": false,
140
+ "name": "backgroundColor",
141
+ "required": false,
142
+ "type": "string"
143
+ },
144
+ {
145
+ "alias": null,
146
+ "defaultText": null,
147
+ "description": "菜单文字颜色(十六进制)",
148
+ "hasDefault": false,
149
+ "name": "textColor",
150
+ "required": false,
151
+ "type": "string"
152
+ },
153
+ {
154
+ "alias": null,
155
+ "defaultText": null,
156
+ "description": "激活菜单项的文字颜色(十六进制)",
157
+ "hasDefault": false,
158
+ "name": "activeTextColor",
159
+ "required": false,
160
+ "type": "string"
161
+ },
162
+ {
163
+ "alias": null,
164
+ "defaultText": "false",
165
+ "description": "点击菜单外部时是否收起菜单",
166
+ "hasDefault": false,
167
+ "name": "closeOnClickOutside",
168
+ "required": false,
169
+ "type": "boolean"
170
+ },
171
+ {
172
+ "alias": null,
173
+ "defaultText": "true",
174
+ "description": "是否启用折叠过渡动画",
175
+ "hasDefault": true,
176
+ "name": "collapseTransition",
177
+ "required": false,
178
+ "type": "boolean"
179
+ },
180
+ {
181
+ "alias": null,
182
+ "defaultText": "true",
183
+ "description": "水平模式下是否启用省略,仅在水平模式下生效",
184
+ "hasDefault": true,
185
+ "name": "ellipsis",
186
+ "required": false,
187
+ "type": "boolean"
188
+ },
189
+ {
190
+ "alias": null,
191
+ "defaultText": "6",
192
+ "description": "弹出层的偏移量,对所有子菜单生效",
193
+ "hasDefault": true,
194
+ "name": "popperOffset",
195
+ "required": false,
196
+ "type": "number"
197
+ },
198
+ {
199
+ "alias": null,
200
+ "defaultText": "More",
201
+ "description": "自定义省略图标,仅在水平模式且 ellipsis 为 true 时生效",
202
+ "hasDefault": true,
203
+ "name": "ellipsisIcon",
204
+ "required": false,
205
+ "type": "string | Component"
206
+ },
207
+ {
208
+ "alias": null,
209
+ "defaultText": "dark",
210
+ "description": "菜单折叠时的 Tooltip 主题",
211
+ "hasDefault": true,
212
+ "name": "popperEffect",
213
+ "required": false,
214
+ "type": "'dark' | 'light'"
215
+ },
216
+ {
217
+ "alias": null,
218
+ "defaultText": null,
219
+ "description": "所有弹出菜单的自定义类名",
220
+ "hasDefault": false,
221
+ "name": "popperClass",
222
+ "required": false,
223
+ "type": "string"
224
+ },
225
+ {
226
+ "alias": null,
227
+ "defaultText": null,
228
+ "description": "所有弹出菜单的自定义样式",
229
+ "hasDefault": false,
230
+ "name": "popperStyle",
231
+ "required": false,
232
+ "type": "string | CSSProperties"
233
+ },
234
+ {
235
+ "alias": null,
236
+ "defaultText": "300",
237
+ "description": "所有菜单显示前的延迟,单位 ms",
238
+ "hasDefault": true,
239
+ "name": "showTimeout",
240
+ "required": false,
241
+ "type": "number"
242
+ },
243
+ {
244
+ "alias": null,
245
+ "defaultText": "300",
246
+ "description": "所有菜单隐藏前的延迟,单位 ms",
247
+ "hasDefault": true,
248
+ "name": "hideTimeout",
249
+ "required": false,
250
+ "type": "number"
251
+ },
252
+ {
253
+ "alias": null,
254
+ "defaultText": "true",
255
+ "description": "菜单未激活且该值为 false 时,下拉菜单将被销毁",
256
+ "hasDefault": true,
257
+ "name": "persistent",
258
+ "required": false,
259
+ "type": "boolean"
260
+ }
261
+ ],
262
+ "related": [
263
+ "EpMenuItem",
264
+ "EpSubMenu",
265
+ "EpTabs",
266
+ "EpMenuItemGroup"
267
+ ],
268
+ "relations": {
269
+ "children": [
270
+ "EpMenuItem",
271
+ "EpMenuItemGroup",
272
+ "EpSubMenu"
273
+ ],
274
+ "combos": [
275
+ "EpMenu + EpMenuItem",
276
+ "EpMenu + EpMenuItemGroup",
277
+ "EpMenu + EpSubMenu"
278
+ ],
279
+ "parents": [],
280
+ "requiredChildren": [
281
+ "EpMenuItem"
282
+ ]
283
+ },
284
+ "slots": [
285
+ {
286
+ "description": "菜单内容,通常放置 ep-menu-item / ep-sub-menu",
287
+ "name": "default"
288
+ }
289
+ ],
290
+ "slug": "menu",
291
+ "summary": "导航菜单,支持水平与垂直层级结构",
292
+ "tag": "ep-menu",
293
+ "useCases": [
294
+ "应用主导航与侧边导航",
295
+ "多层级模块入口组织"
296
+ ],
297
+ "variants": [],
298
+ "visual": {
299
+ "cssVars": [
300
+ "--el-color-primary",
301
+ "--el-text-color-regular",
302
+ "--el-bg-color"
303
+ ],
304
+ "density": "中等",
305
+ "shape": "条状或列表",
306
+ "slotContent": [
307
+ "default:菜单内容,通常放置 ep-menu-item / ep-sub-menu"
308
+ ]
309
+ }
310
+ },
311
+ "generatedAt": "2026-11-03T03:09:12.050Z",
312
+ "libraryVersion": "0.2.0",
313
+ "schemaVersion": 1
314
+ }
@@ -0,0 +1,104 @@
1
+ # EpMenu
2
+
3
+ `ep-menu` · navigation(导航) · `component:menu`
4
+
5
+ ## 摘要
6
+
7
+ 导航菜单,支持水平与垂直层级结构
8
+
9
+ ## 适用场景
10
+
11
+ - 适用:应用主导航与侧边导航
12
+ - 适用:多层级模块入口组织
13
+ - 不适用:单步无层级的简单跳转时
14
+
15
+ ## 关键词
16
+
17
+ - 中文:菜单、导航、侧边栏
18
+ - English: menu, nav, navigation
19
+
20
+ ## Props
21
+
22
+ - mode ('horizontal' | 'vertical',默认 vertical):菜单展示模式
23
+ - defaultActive (string,默认 ''):页面加载时默认激活的菜单项 index
24
+ - defaultOpeneds (string[],默认 []):默认展开的子菜单 index 数组
25
+ - uniqueOpened (boolean):是否只保持一个子菜单展开
26
+ - router (boolean):是否启用 vue-router 模式
27
+ - menuTrigger ('hover' | 'click',默认 hover):子菜单触发方式,仅在水平模式下生效
28
+ - collapse (boolean):是否水平折叠菜单,仅在垂直模式下生效
29
+ - backgroundColor (string):菜单背景色(十六进制)
30
+ - textColor (string):菜单文字颜色(十六进制)
31
+ - activeTextColor (string):激活菜单项的文字颜色(十六进制)
32
+ - closeOnClickOutside (boolean):点击菜单外部时是否收起菜单
33
+ - collapseTransition (boolean,默认 true):是否启用折叠过渡动画
34
+ - ellipsis (boolean,默认 true):水平模式下是否启用省略,仅在水平模式下生效
35
+ - popperOffset (number,默认 6):弹出层的偏移量,对所有子菜单生效
36
+ - ellipsisIcon (string | Component,默认 More):自定义省略图标,仅在水平模式且 ellipsis 为 true 时生效
37
+ - popperEffect ('dark' | 'light',默认 dark):菜单折叠时的 Tooltip 主题
38
+ - popperClass (string):所有弹出菜单的自定义类名
39
+ - popperStyle (string | CSSProperties):所有弹出菜单的自定义样式
40
+ - showTimeout (number,默认 300):所有菜单显示前的延迟,单位 ms
41
+ - hideTimeout (number,默认 300):所有菜单隐藏前的延迟,单位 ms
42
+ - persistent (boolean,默认 true):菜单未激活且该值为 false 时,下拉菜单将被销毁
43
+
44
+ ## Events
45
+
46
+ - close((index: string, indexPath: string[])):收起子菜单时触发
47
+ - open((index: string, indexPath: string[])):展开子菜单时触发
48
+ - select((index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<unknown>)):选中菜单项时触发
49
+
50
+ ## Slots
51
+
52
+ - default:菜单内容,通常放置 ep-menu-item / ep-sub-menu
53
+
54
+ ## Exposes
55
+
56
+ - open((index: string) => void):展开指定子菜单
57
+ - close((index: string) => void):收起指定子菜单
58
+ - updateActiveIndex((index: string) => void):更新激活菜单项
59
+ - handleResize(() => void):处理尺寸变化
60
+
61
+ ## 关系
62
+
63
+ - 子级:EpMenuItem、EpMenuItemGroup、EpSubMenu
64
+ - 必需子组件:EpMenuItem
65
+ - 常用组合:EpMenu + EpMenuItem、EpMenu + EpMenuItemGroup、EpMenu + EpSubMenu
66
+
67
+ ## 视觉提示
68
+
69
+ - 形状:条状或列表
70
+ - 密度:中等
71
+ - 插槽内容:default:菜单内容,通常放置 ep-menu-item / ep-sub-menu
72
+ - CSS 变量:--el-color-primary、--el-text-color-regular、--el-bg-color
73
+
74
+ ## 示例
75
+
76
+ ### 导航菜单
77
+
78
+ ```vue
79
+ <script setup lang="ts">
80
+ import { EpMenu, EpMenuItem, EpSubMenu } from 'ep-craft'
81
+ </script>
82
+
83
+ <template>
84
+ <ep-menu default-active="home" mode="horizontal">
85
+ <ep-menu-item index="home">首页</ep-menu-item>
86
+ <ep-sub-menu index="components">
87
+ <template #title>组件</template>
88
+ <ep-menu-item index="button">按钮</ep-menu-item>
89
+ <ep-menu-item index="table">表格</ep-menu-item>
90
+ </ep-sub-menu>
91
+ </ep-menu>
92
+ </template>
93
+ ```
94
+
95
+ ## 相关条目
96
+
97
+ - EpMenuItem
98
+ - EpSubMenu
99
+ - EpTabs
100
+ - EpMenuItemGroup
101
+
102
+ ---
103
+
104
+ ep-craft 0.2.0
@@ -0,0 +1,113 @@
1
+ {
2
+ "entry": {
3
+ "category": "form",
4
+ "events": [],
5
+ "exampleOmittedReason": null,
6
+ "examples": [
7
+ {
8
+ "code": "<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { EpOption, EpOptionGroup, EpSelect } from 'ep-craft'\n\nconst value = ref('')\n</script>\n\n<template>\n <ep-select v-model=\"value\" placeholder=\"请选择城市\">\n <ep-option-group label=\"华东\">\n <ep-option label=\"杭州\" value=\"hangzhou\" />\n <ep-option label=\"上海\" value=\"shanghai\" />\n </ep-option-group>\n <ep-option-group label=\"华南\">\n <ep-option label=\"广州\" value=\"guangzhou\" />\n </ep-option-group>\n </ep-select>\n</template>",
9
+ "id": "option-group-1",
10
+ "language": "vue",
11
+ "title": "选项分组"
12
+ }
13
+ ],
14
+ "exposes": [],
15
+ "hot": false,
16
+ "id": "component:option-group",
17
+ "keywords": {
18
+ "en": [
19
+ "option-group",
20
+ "option",
21
+ "group",
22
+ "form"
23
+ ],
24
+ "zh": [
25
+ "选项组",
26
+ "表单"
27
+ ]
28
+ },
29
+ "kind": "component",
30
+ "name": "EpOptionGroup",
31
+ "nonUseCases": [
32
+ "仅展示静态文本或只读数据时"
33
+ ],
34
+ "props": [
35
+ {
36
+ "alias": null,
37
+ "defaultText": null,
38
+ "description": "分组的组名",
39
+ "hasDefault": false,
40
+ "name": "label",
41
+ "required": false,
42
+ "type": "string"
43
+ },
44
+ {
45
+ "alias": null,
46
+ "defaultText": "false",
47
+ "description": "是否将该分组下所有选项置为禁用",
48
+ "hasDefault": false,
49
+ "name": "disabled",
50
+ "required": false,
51
+ "type": "boolean"
52
+ }
53
+ ],
54
+ "related": [
55
+ "EpSelect",
56
+ "EpSelectV2",
57
+ "EpOption"
58
+ ],
59
+ "relations": {
60
+ "children": [
61
+ "EpOption"
62
+ ],
63
+ "combos": [
64
+ "EpSelect + EpOptionGroup",
65
+ "EpSelectV2 + EpOptionGroup",
66
+ "EpOptionGroup + EpOption"
67
+ ],
68
+ "parents": [
69
+ "EpSelect",
70
+ "EpSelectV2"
71
+ ],
72
+ "requiredChildren": []
73
+ },
74
+ "slots": [
75
+ {
76
+ "description": "自定义默认内容",
77
+ "name": "default"
78
+ }
79
+ ],
80
+ "slug": "option-group",
81
+ "summary": "选项组,表单数据录入控件",
82
+ "tag": "ep-option-group",
83
+ "useCases": [
84
+ "表单中收集或编辑选项组数据",
85
+ "与 EpForm、EpFormItem 组合完成校验"
86
+ ],
87
+ "variants": [
88
+ {
89
+ "dimension": "state",
90
+ "values": [
91
+ "disabled"
92
+ ],
93
+ "when": "通过布尔属性切换禁用、加载或选中状态"
94
+ }
95
+ ],
96
+ "visual": {
97
+ "cssVars": [
98
+ "--el-border-color",
99
+ "--el-border-radius-base",
100
+ "--el-color-primary",
101
+ "--el-font-size-base"
102
+ ],
103
+ "density": "中等",
104
+ "shape": "矩形输入框",
105
+ "slotContent": [
106
+ "default:自定义默认内容"
107
+ ]
108
+ }
109
+ },
110
+ "generatedAt": "2026-11-03T03:09:12.050Z",
111
+ "libraryVersion": "0.2.0",
112
+ "schemaVersion": 1
113
+ }
@@ -0,0 +1,79 @@
1
+ # EpOptionGroup
2
+
3
+ `ep-option-group` · form(表单) · `component:option-group`
4
+
5
+ ## 摘要
6
+
7
+ 选项组,表单数据录入控件
8
+
9
+ ## 适用场景
10
+
11
+ - 适用:表单中收集或编辑选项组数据
12
+ - 适用:与 EpForm、EpFormItem 组合完成校验
13
+ - 不适用:仅展示静态文本或只读数据时
14
+
15
+ ## 关键词
16
+
17
+ - 中文:选项组、表单
18
+ - English: option-group, option, group, form
19
+
20
+ ## 变体
21
+
22
+ - state: disabled(通过布尔属性切换禁用、加载或选中状态)
23
+
24
+ ## Props
25
+
26
+ - label (string):分组的组名
27
+ - disabled (boolean):是否将该分组下所有选项置为禁用
28
+
29
+ ## Slots
30
+
31
+ - default:自定义默认内容
32
+
33
+ ## 关系
34
+
35
+ - 父级:EpSelect、EpSelectV2
36
+ - 子级:EpOption
37
+ - 常用组合:EpSelect + EpOptionGroup、EpSelectV2 + EpOptionGroup、EpOptionGroup + EpOption
38
+
39
+ ## 视觉提示
40
+
41
+ - 形状:矩形输入框
42
+ - 密度:中等
43
+ - 插槽内容:default:自定义默认内容
44
+ - CSS 变量:--el-border-color、--el-border-radius-base、--el-color-primary、--el-font-size-base
45
+
46
+ ## 示例
47
+
48
+ ### 选项分组
49
+
50
+ ```vue
51
+ <script setup lang="ts">
52
+ import { ref } from 'vue'
53
+ import { EpOption, EpOptionGroup, EpSelect } from 'ep-craft'
54
+
55
+ const value = ref('')
56
+ </script>
57
+
58
+ <template>
59
+ <ep-select v-model="value" placeholder="请选择城市">
60
+ <ep-option-group label="华东">
61
+ <ep-option label="杭州" value="hangzhou" />
62
+ <ep-option label="上海" value="shanghai" />
63
+ </ep-option-group>
64
+ <ep-option-group label="华南">
65
+ <ep-option label="广州" value="guangzhou" />
66
+ </ep-option-group>
67
+ </ep-select>
68
+ </template>
69
+ ```
70
+
71
+ ## 相关条目
72
+
73
+ - EpSelect
74
+ - EpSelectV2
75
+ - EpOption
76
+
77
+ ---
78
+
79
+ ep-craft 0.2.0