@morya-ui/mcp 0.4.5 → 0.5.1

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.
@@ -1,6 +1,6 @@
1
1
  {
2
- "generatedAt": "2026-10-12T07:47:11.724Z",
3
- "catalogGeneratedAt": "2026-10-12T07:47:04.752Z",
2
+ "generatedAt": "2026-10-14T09:30:52.509Z",
3
+ "catalogGeneratedAt": "2026-10-14T09:30:48.391Z",
4
4
  "components": [
5
5
  {
6
6
  "id": "Accordion",
@@ -566,6 +566,54 @@
566
566
  "missing": []
567
567
  }
568
568
  },
569
+ {
570
+ "id": "ColorPicker",
571
+ "exportName": "MColorPicker",
572
+ "examples": 12,
573
+ "props": {
574
+ "total": 17,
575
+ "covered": 5,
576
+ "missing": [
577
+ "disabled",
578
+ "disabledAlpha",
579
+ "format",
580
+ "size",
581
+ "placement",
582
+ "teleport",
583
+ "appendTo",
584
+ "transition",
585
+ "pt",
586
+ "label",
587
+ "colors",
588
+ "defaultOpen"
589
+ ]
590
+ },
591
+ "events": {
592
+ "total": 5,
593
+ "covered": 0,
594
+ "missing": [
595
+ "update:modelValue",
596
+ "change",
597
+ "clear",
598
+ "show",
599
+ "hide"
600
+ ]
601
+ },
602
+ "slots": {
603
+ "total": 0,
604
+ "covered": 0,
605
+ "missing": []
606
+ },
607
+ "methods": {
608
+ "total": 3,
609
+ "covered": 0,
610
+ "missing": [
611
+ "open",
612
+ "close",
613
+ "toggle"
614
+ ]
615
+ }
616
+ },
569
617
  {
570
618
  "id": "CommandMenu",
571
619
  "exportName": "MCommandMenu",
@@ -1507,13 +1555,12 @@
1507
1555
  "exportName": "MInput",
1508
1556
  "examples": 28,
1509
1557
  "props": {
1510
- "total": 22,
1558
+ "total": 21,
1511
1559
  "covered": 14,
1512
1560
  "missing": [
1513
1561
  "status",
1514
1562
  "id",
1515
1563
  "readonly",
1516
- "allowClear",
1517
1564
  "errorMessage",
1518
1565
  "name",
1519
1566
  "autocomplete",
@@ -1545,42 +1592,6 @@
1545
1592
  ]
1546
1593
  }
1547
1594
  },
1548
- {
1549
- "id": "InputColor",
1550
- "exportName": "MInputColor",
1551
- "examples": 6,
1552
- "props": {
1553
- "total": 8,
1554
- "covered": 2,
1555
- "missing": [
1556
- "disabled",
1557
- "id",
1558
- "invalid",
1559
- "label",
1560
- "size",
1561
- "pt"
1562
- ]
1563
- },
1564
- "events": {
1565
- "total": 1,
1566
- "covered": 0,
1567
- "missing": [
1568
- "update:modelValue"
1569
- ]
1570
- },
1571
- "slots": {
1572
- "total": 1,
1573
- "covered": 0,
1574
- "missing": [
1575
- "trigger"
1576
- ]
1577
- },
1578
- "methods": {
1579
- "total": 0,
1580
- "covered": 0,
1581
- "missing": []
1582
- }
1583
- },
1584
1595
  {
1585
1596
  "id": "InputGroup",
1586
1597
  "exportName": "MInputGroup",
@@ -1692,7 +1703,7 @@
1692
1703
  "exportName": "MInputPassword",
1693
1704
  "examples": 12,
1694
1705
  "props": {
1695
- "total": 20,
1706
+ "total": 19,
1696
1707
  "covered": 10,
1697
1708
  "missing": [
1698
1709
  "toggleMask",
@@ -1702,7 +1713,6 @@
1702
1713
  "status",
1703
1714
  "disabled",
1704
1715
  "readonly",
1705
- "allowClear",
1706
1716
  "id",
1707
1717
  "pt"
1708
1718
  ]
@@ -2038,7 +2048,7 @@
2038
2048
  "exportName": "MMentions",
2039
2049
  "examples": 6,
2040
2050
  "props": {
2041
- "total": 21,
2051
+ "total": 20,
2042
2052
  "covered": 4,
2043
2053
  "missing": [
2044
2054
  "split",
@@ -2054,7 +2064,6 @@
2054
2064
  "fluid",
2055
2065
  "emptyMessage",
2056
2066
  "clearable",
2057
- "allowClear",
2058
2067
  "loading",
2059
2068
  "id",
2060
2069
  "pt"
@@ -2577,7 +2586,7 @@
2577
2586
  "covered": 4,
2578
2587
  "missing": [
2579
2588
  "stars",
2580
- "allowClear",
2589
+ "clearable",
2581
2590
  "disabled",
2582
2591
  "ariaLabel",
2583
2592
  "errorMessage",
@@ -3471,7 +3480,7 @@
3471
3480
  "exportName": "MTextarea",
3472
3481
  "examples": 10,
3473
3482
  "props": {
3474
- "total": 24,
3483
+ "total": 23,
3475
3484
  "covered": 13,
3476
3485
  "missing": [
3477
3486
  "status",
@@ -3480,7 +3489,6 @@
3480
3489
  "resize",
3481
3490
  "disabled",
3482
3491
  "readonly",
3483
- "allowClear",
3484
3492
  "name",
3485
3493
  "autocomplete",
3486
3494
  "autofocus",
@@ -3997,6 +4005,6 @@
3997
4005
  "summary": {
3998
4006
  "components": 107,
3999
4007
  "componentsWithMissingCoverage": 106,
4000
- "totalExamples": 1007
4008
+ "totalExamples": 1013
4001
4009
  }
4002
4010
  }
@@ -1,6 +1,8 @@
1
1
  <script setup lang="ts">
2
2
  /**
3
- * 黄金样例:仪表盘页
3
+ * 黄金样例:仪表盘页(结构母版)
4
+ * 结构骨架:面包屑 → 页头 → 可选告警 → KPI 网格 → 主区两栏。
5
+ * 视觉(密度/阴影/插画/文案)跟 styleDirection / 参考走,本样例仅镜像块顺序,不是唯一正确答案。
4
6
  * @see DESIGN.md · morya-ui-pages references/page-layouts.md · visual-craft § Ops polish
5
7
  */
6
8
  import {
@@ -77,16 +79,19 @@ function statusType(s: string) {
77
79
  </MLayoutHeader>
78
80
 
79
81
  <MLayoutContent>
80
- <MPageContent density="spacious">
82
+ <!-- density 跟 styleDirection;仪表盘常用 spacious,但不强制 -->
83
+ <MPageContent>
84
+ <!-- 标题/描述用领域真实文案替换 -->
81
85
  <MPageHeader
82
- title="运营概览"
83
- description="关注今日活跃与待处理工单,异常优先下钻。"
86
+ title="{{页面标题}}"
87
+ description="{{页面说明}}"
84
88
  />
85
89
 
90
+ <!-- 可选告警:有实时性/延迟等提示时用 -->
86
91
  <MAlert
87
92
  type="info"
88
- title="报表管道延迟约 15 分钟"
89
- description="实时告警仍可用;看板数字以管道落库为准。"
93
+ title="{{可选告警标题}}"
94
+ description="{{可选告警说明}}"
90
95
  closable
91
96
  />
92
97
 
@@ -106,28 +111,29 @@ function statusType(s: string) {
106
111
 
107
112
  <MGrid :cols="2" :x-gap="16" :y-gap="16" responsive="screen">
108
113
  <MGridItem :span="1">
109
- <MCard title="趋势概览" shadow="always">
114
+ <!-- shadow / 是否用 MCard 包图表区跟 styleDirection -->
115
+ <MCard title="{{主图表区标题}}">
110
116
  <MEmpty
111
- title="还没有趋势数据"
112
- description="接入图表后将展示近 7 日活跃与转化。"
117
+ title="{{图表空态标题}}"
118
+ description="{{图表空态说明}}"
113
119
  illustration="activity-low"
114
120
  />
115
121
  </MCard>
116
122
  </MGridItem>
117
123
  <MGridItem :span="1">
118
- <MCard title="最近工单" shadow="always">
124
+ <MCard title="{{最近列表区标题}}">
119
125
  <div class="dashboard-plain-stats">
120
- <MStatistic title="本周新建" :value="128" />
121
- <MStatistic title="平均处理时长" :value="2.4" suffix="h" :precision="1" />
126
+ <MStatistic title="{{统计1}}" :value="128" />
127
+ <MStatistic title="{{统计2}}" :value="2.4" suffix="h" :precision="1" />
122
128
  </div>
129
+ <!-- 嵌入式次要表格:不用 fill/paginator;bordered/size 跟密度 -->
123
130
  <MTable
124
131
  :columns="recentColumns"
125
132
  :rows="recentRows"
126
133
  size="small"
127
134
  :paginator="false"
128
- bordered
129
135
  row-key="id"
130
- aria-label="最近工单"
136
+ aria-label="{{最近列表}}"
131
137
  >
132
138
  <template #cell-priority="{ value }">
133
139
  <MTag
@@ -59,7 +59,7 @@ const activityRows = [
59
59
  <MPageContent>
60
60
  <MPageHeader
61
61
  :title="profile.name"
62
- description="查看账号摘要、属性与近期活动。编辑走同页弹窗或独立表单页,勿做成营销落地。"
62
+ description="{{详情页说明}}"
63
63
  >
64
64
  <template #actions>
65
65
  <MSpace>
@@ -90,7 +90,8 @@ const activityRows = [
90
90
  </p>
91
91
  </MPageSection>
92
92
 
93
- <MDescriptions title="基本信息" bordered :column="2">
93
+ <!-- bordered 跟密度,非默认 -->
94
+ <MDescriptions title="{{信息分组标题}}" :column="2">
94
95
  <MDescriptionsItem label="姓名">
95
96
  {{ profile.name }}
96
97
  </MDescriptionsItem>
@@ -27,25 +27,26 @@ import {
27
27
 
28
28
  <MLayoutContent>
29
29
  <MPageContent>
30
- <MPageHeader title="课程" description="管理目录与可见性。">
30
+ <MPageHeader title="{{页面标题}}" description="{{页面说明}}">
31
31
  <template #actions>
32
32
  <MButton type="primary">
33
- 新建课程
33
+ {{主操作}}
34
34
  </MButton>
35
35
  </template>
36
36
  </MPageHeader>
37
37
 
38
+ <!-- 空态说明"接下来做什么";illustration 跟 styleDirection -->
38
39
  <MEmpty
39
- title="还没有课程"
40
- description="创建第一门课程后,学员就能在目录里看到它。也可以稍后从模板导入。"
40
+ title="{{空态标题}}"
41
+ description="{{空态说明}}"
41
42
  illustration="no-content"
42
43
  >
43
44
  <template #extra>
44
45
  <MButton type="primary">
45
- 创建第一门课程
46
+ {{空态主操作}}
46
47
  </MButton>
47
48
  <MButton type="text">
48
- 从模板导入
49
+ {{空态次操作}}
49
50
  </MButton>
50
51
  </template>
51
52
  </MEmpty>
@@ -101,21 +101,20 @@ async function onSave() {
101
101
 
102
102
  <MLayoutContent>
103
103
  <MPageContent>
104
- <MPageHeader title="用户管理" description="短表单留在列表内弹窗;字段多时再走独立表单页。">
104
+ <MPageHeader title="{{页面标题}}" description="{{页面说明}}">
105
105
  <template #actions>
106
106
  <MButton @click="openCreate" type="primary">
107
- 新建用户
107
+ {{新建操作}}
108
108
  </MButton>
109
109
  </template>
110
110
  </MPageHeader>
111
111
 
112
+ <!-- 列表内弹窗演示:striped/bordered 跟密度,非默认 -->
112
113
  <MTable
113
114
  :columns="columns"
114
115
  :rows="rows"
115
116
  row-key="id"
116
- striped
117
- bordered
118
- aria-label="用户列表"
117
+ aria-label="{{列表}}"
119
118
  >
120
119
  <template #cell-status="{ value }">
121
120
  <MStatus
@@ -60,7 +60,7 @@ async function onSubmit() {
60
60
 
61
61
  <MLayoutContent>
62
62
  <MPageContent width="narrow">
63
- <MPageHeader title="新建用户" description="填写基本信息并分配角色。" />
63
+ <MPageHeader title="{{表单标题}}" description="{{表单说明}}" />
64
64
 
65
65
  <MPageSection variant="form">
66
66
  <MForm @submit="onSubmit">
@@ -34,13 +34,14 @@ const faqTabs = [
34
34
  <MButton label="免费试用" size="small" />
35
35
  </header>
36
36
 
37
+ <!-- 首屏单一任务;品牌/氛围跟 styleDirection,不默认渐变/发光 -->
37
38
  <section class="landing-hero" aria-labelledby="hero-title">
38
- <p class="landing-hero__brand">流水线 CI</p>
39
+ <p class="landing-hero__brand">{{品牌名}}</p>
39
40
  <MTitle id="hero-title" class="landing-hero__title">
40
- 把每次提交变成可回放的交付
41
+ {{首屏主张}}
41
42
  </MTitle>
42
43
  <MParagraph class="landing-hero__lead" type="secondary">
43
- 为工程团队准备的构建与发布编排。少点配置,多看结果。
44
+ {{首屏导语}}
44
45
  </MParagraph>
45
46
  <div class="landing-hero__cta">
46
47
  <MButton label="开始使用" />
@@ -228,12 +229,8 @@ const faqTabs = [
228
229
  padding: var(--m-space-5);
229
230
  border: 1px solid var(--m-color-border);
230
231
  border-radius: var(--m-radius-md);
231
- background:
232
- linear-gradient(
233
- 135deg,
234
- color-mix(in srgb, var(--m-color-primary) 12%, var(--m-color-surface)),
235
- var(--m-color-surface) 60%
236
- );
232
+ /* hero 氛围跟 styleDirection;默认 token-only 平壳 */
233
+ background: var(--m-color-surface);
237
234
  }
238
235
 
239
236
  .landing-hero__track {
@@ -245,41 +242,11 @@ const faqTabs = [
245
242
  .landing-hero__track span {
246
243
  padding: var(--m-space-3) var(--m-space-4);
247
244
  border-left: 3px solid var(--m-color-primary);
248
- background: color-mix(in srgb, var(--m-color-surface) 80%, transparent);
245
+ background: var(--m-color-surface);
249
246
  font-size: 0.875rem;
250
247
  font-weight: 600;
251
248
  }
252
249
 
253
- @media (prefers-reduced-motion: no-preference) {
254
- .landing-hero__track span {
255
- animation: landing-fade-up 480ms ease both;
256
- }
257
-
258
- .landing-hero__track span:nth-child(2) {
259
- animation-delay: 60ms;
260
- }
261
-
262
- .landing-hero__track span:nth-child(3) {
263
- animation-delay: 120ms;
264
- }
265
-
266
- .landing-hero__track span:nth-child(4) {
267
- animation-delay: 180ms;
268
- }
269
- }
270
-
271
- @keyframes landing-fade-up {
272
- from {
273
- opacity: 0;
274
- transform: translateY(0.4rem);
275
- }
276
-
277
- to {
278
- opacity: 1;
279
- transform: translateY(0);
280
- }
281
- }
282
-
283
250
  .landing-section {
284
251
  padding: clamp(2.5rem, 6vw, 4rem) clamp(1.25rem, 4vw, 3rem);
285
252
  max-width: 72rem;
@@ -287,7 +254,7 @@ const faqTabs = [
287
254
 
288
255
  .landing-section--alt {
289
256
  border-block: 1px solid var(--m-color-border);
290
- background: color-mix(in srgb, var(--m-color-border) 18%, var(--m-color-surface));
257
+ background: var(--m-color-surface);
291
258
  max-width: none;
292
259
  }
293
260
 
@@ -2,7 +2,9 @@
2
2
  /**
3
3
  * 黄金样例:列表页 · dense(高密度工具台)
4
4
  * structure: list · style: dense
5
- * 镜像区块顺序;气质跟 styleDirection / 参考走,不要把本文件当唯一审美。
5
+ * 结构与 list-page.vue 完全相同;差异只在「密度」一处,通过一组联动 craft 表达:
6
+ * MPageContent density="compact" · 控件 size="small" · MTable size="small" · 筛选 variant="plain"。
7
+ * 气质跟 styleDirection / 参考走,不要把本文件当唯一审美。
6
8
  * @see list-page.vue · style-presets.md · page-layouts.md
7
9
  */
8
10
  import {
@@ -59,11 +61,6 @@ const rows = [
59
61
  { id: '1', name: '示例项目 A', status: 'active', updatedAt: '09-01' },
60
62
  { id: '2', name: '示例项目 B', status: 'inactive', updatedAt: '08-28' },
61
63
  { id: '3', name: '示例项目 C', status: 'active', updatedAt: '08-25' },
62
- { id: '4', name: '示例项目 D', status: 'active', updatedAt: '08-20' },
63
- { id: '5', name: '示例项目 E', status: 'inactive', updatedAt: '08-15' },
64
- { id: '6', name: '示例项目 F', status: 'active', updatedAt: '08-12' },
65
- { id: '7', name: '示例项目 G', status: 'inactive', updatedAt: '08-10' },
66
- { id: '8', name: '示例项目 H', status: 'active', updatedAt: '08-08' },
67
64
  ]
68
65
  </script>
69
66
 
@@ -85,15 +82,17 @@ const rows = [
85
82
  </MLayoutHeader>
86
83
 
87
84
  <MLayoutContent>
85
+ <!-- dense 关键:整页 density="compact" -->
88
86
  <MPageContent fill density="compact">
89
- <MPageHeader title="用户管理">
87
+ <MPageHeader title="{{页面标题}}">
90
88
  <template #actions>
91
89
  <MButton size="small" type="primary">
92
- 新建
90
+ {{主操作}}
93
91
  </MButton>
94
92
  </template>
95
93
  </MPageHeader>
96
94
 
95
+ <!-- dense 关键:筛选 variant="plain" + 控件 size="small" -->
97
96
  <MPageFilters aria-label="筛选" variant="plain">
98
97
  <MSpace wrap>
99
98
  <MInput
@@ -122,6 +121,7 @@ const rows = [
122
121
  </template>
123
122
  </MPageFilters>
124
123
 
124
+ <!-- dense 关键:MTable size="small" -->
125
125
  <MTable
126
126
  :columns="columns"
127
127
  :rows="rows"
@@ -129,10 +129,8 @@ const rows = [
129
129
  fill
130
130
  paginator
131
131
  size="small"
132
- striped
133
- bordered
134
132
  row-key="id"
135
- aria-label="用户列表"
133
+ aria-label="{{列表}}"
136
134
  >
137
135
  <template #cell-status="{ value }">
138
136
  <MStatus
@@ -151,10 +149,10 @@ const rows = [
151
149
  </MSpace>
152
150
  </template>
153
151
  <template #empty>
154
- <MEmpty title="暂无数据" description="创建后在此浏览。" icon="user">
152
+ <MEmpty title="{{空态标题}}" description="{{空态说明}}" icon="user">
155
153
  <template #extra>
156
154
  <MButton size="small" type="primary">
157
- 新建
155
+ {{空态主操作}}
158
156
  </MButton>
159
157
  </template>
160
158
  </MEmpty>
@@ -165,4 +163,4 @@ const rows = [
165
163
  </MLayout>
166
164
  </MLayout>
167
165
  </MConfigProvider>
168
- </template>
166
+ </template>