@morya-ui/mcp 0.2.9 → 0.3.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.
@@ -1,6 +1,6 @@
1
1
  {
2
- "generatedAt": "2026-09-21T09:57:51.741Z",
3
- "catalogGeneratedAt": "2026-09-21T09:57:47.817Z",
2
+ "generatedAt": "2026-09-22T12:50:04.888Z",
3
+ "catalogGeneratedAt": "2026-09-22T12:49:59.311Z",
4
4
  "components": [
5
5
  {
6
6
  "id": "Accordion",
@@ -37,13 +37,15 @@
37
37
  "exportName": "MAutoComplete",
38
38
  "examples": 8,
39
39
  "props": {
40
- "total": 17,
40
+ "total": 19,
41
41
  "covered": 6,
42
42
  "missing": [
43
43
  "loading",
44
44
  "disabled",
45
45
  "teleport",
46
46
  "appendTo",
47
+ "transition",
48
+ "virtual",
47
49
  "emptyMessage",
48
50
  "errorMessage",
49
51
  "helpText",
@@ -138,9 +140,10 @@
138
140
  "exportName": "MBlockUI",
139
141
  "examples": 4,
140
142
  "props": {
141
- "total": 2,
143
+ "total": 3,
142
144
  "covered": 1,
143
145
  "missing": [
146
+ "transition",
144
147
  "pt"
145
148
  ]
146
149
  },
@@ -291,7 +294,7 @@
291
294
  "exportName": "MCascadeSelect",
292
295
  "examples": 10,
293
296
  "props": {
294
- "total": 16,
297
+ "total": 17,
295
298
  "covered": 4,
296
299
  "missing": [
297
300
  "label",
@@ -305,6 +308,7 @@
305
308
  "clearable",
306
309
  "teleport",
307
310
  "appendTo",
311
+ "transition",
308
312
  "pt"
309
313
  ]
310
314
  },
@@ -401,11 +405,12 @@
401
405
  "exportName": "MCommandMenu",
402
406
  "examples": 6,
403
407
  "props": {
404
- "total": 6,
408
+ "total": 7,
405
409
  "covered": 3,
406
410
  "missing": [
407
411
  "teleport",
408
412
  "appendTo",
413
+ "transition",
409
414
  "pt"
410
415
  ]
411
416
  },
@@ -432,12 +437,13 @@
432
437
  "exportName": "MConfigProvider",
433
438
  "examples": 14,
434
439
  "props": {
435
- "total": 11,
436
- "covered": 6,
440
+ "total": 13,
441
+ "covered": 7,
437
442
  "missing": [
438
443
  "zIndex",
439
444
  "theme",
440
445
  "locale",
446
+ "respectReducedMotion",
441
447
  "globalDensity",
442
448
  "pt"
443
449
  ]
@@ -463,7 +469,7 @@
463
469
  "exportName": "MConfirmDialog",
464
470
  "examples": 4,
465
471
  "props": {
466
- "total": 16,
472
+ "total": 17,
467
473
  "covered": 6,
468
474
  "missing": [
469
475
  "type",
@@ -472,6 +478,7 @@
472
478
  "beforeReject",
473
479
  "teleport",
474
480
  "appendTo",
481
+ "transition",
475
482
  "blockScroll",
476
483
  "closeOnEsc",
477
484
  "closeOnOutsideClick",
@@ -507,7 +514,7 @@
507
514
  "exportName": "MConfirmPopup",
508
515
  "examples": 6,
509
516
  "props": {
510
- "total": 13,
517
+ "total": 14,
511
518
  "covered": 6,
512
519
  "missing": [
513
520
  "acceptLabel",
@@ -515,6 +522,7 @@
515
522
  "position",
516
523
  "teleport",
517
524
  "appendTo",
525
+ "transition",
518
526
  "acceptSeverity",
519
527
  "pt"
520
528
  ]
@@ -546,11 +554,12 @@
546
554
  "exportName": "MContextMenu",
547
555
  "examples": 8,
548
556
  "props": {
549
- "total": 6,
557
+ "total": 7,
550
558
  "covered": 3,
551
559
  "missing": [
552
560
  "teleport",
553
561
  "appendTo",
562
+ "transition",
554
563
  "pt"
555
564
  ]
556
565
  },
@@ -614,12 +623,13 @@
614
623
  "exportName": "MDatePicker",
615
624
  "examples": 22,
616
625
  "props": {
617
- "total": 19,
626
+ "total": 20,
618
627
  "covered": 12,
619
628
  "missing": [
620
629
  "format",
621
630
  "clearable",
622
631
  "teleport",
632
+ "transition",
623
633
  "errorMessage",
624
634
  "helpText",
625
635
  "id",
@@ -655,7 +665,7 @@
655
665
  "exportName": "MDialog",
656
666
  "examples": 14,
657
667
  "props": {
658
- "total": 23,
668
+ "total": 24,
659
669
  "covered": 11,
660
670
  "missing": [
661
671
  "title",
@@ -669,6 +679,7 @@
669
679
  "positiveSeverity",
670
680
  "onNegativeClick",
671
681
  "ariaLabel",
682
+ "transition",
672
683
  "pt"
673
684
  ]
674
685
  },
@@ -765,7 +776,7 @@
765
776
  "exportName": "MDrawer",
766
777
  "examples": 6,
767
778
  "props": {
768
- "total": 15,
779
+ "total": 16,
769
780
  "covered": 3,
770
781
  "missing": [
771
782
  "modal",
@@ -776,6 +787,7 @@
776
787
  "blockScroll",
777
788
  "teleport",
778
789
  "appendTo",
790
+ "transition",
779
791
  "beforeClose",
780
792
  "closeOnEsc",
781
793
  "closeOnOutsideClick",
@@ -811,13 +823,14 @@
811
823
  "exportName": "MDropdown",
812
824
  "examples": 8,
813
825
  "props": {
814
- "total": 10,
826
+ "total": 11,
815
827
  "covered": 5,
816
828
  "missing": [
817
829
  "placement",
818
830
  "closeOnSelect",
819
831
  "teleport",
820
832
  "appendTo",
833
+ "transition",
821
834
  "pt"
822
835
  ]
823
836
  },
@@ -1573,10 +1586,11 @@
1573
1586
  "exportName": "MListbox",
1574
1587
  "examples": 4,
1575
1588
  "props": {
1576
- "total": 10,
1589
+ "total": 11,
1577
1590
  "covered": 4,
1578
1591
  "missing": [
1579
1592
  "multiple",
1593
+ "virtual",
1580
1594
  "disabled",
1581
1595
  "emptyMessage",
1582
1596
  "invalid",
@@ -1609,7 +1623,7 @@
1609
1623
  "exportName": "MLoading",
1610
1624
  "examples": 14,
1611
1625
  "props": {
1612
- "total": 11,
1626
+ "total": 12,
1613
1627
  "covered": 4,
1614
1628
  "missing": [
1615
1629
  "ariaLabel",
@@ -1618,6 +1632,7 @@
1618
1632
  "fullscreen",
1619
1633
  "lock",
1620
1634
  "delay",
1635
+ "transition",
1621
1636
  "pt"
1622
1637
  ]
1623
1638
  },
@@ -1644,11 +1659,12 @@
1644
1659
  "exportName": "MMegaMenu",
1645
1660
  "examples": 8,
1646
1661
  "props": {
1647
- "total": 5,
1662
+ "total": 6,
1648
1663
  "covered": 1,
1649
1664
  "missing": [
1650
1665
  "teleport",
1651
1666
  "appendTo",
1667
+ "transition",
1652
1668
  "selectedKey",
1653
1669
  "pt"
1654
1670
  ]
@@ -1677,7 +1693,7 @@
1677
1693
  "exportName": "MMenu",
1678
1694
  "examples": 20,
1679
1695
  "props": {
1680
- "total": 19,
1696
+ "total": 20,
1681
1697
  "covered": 10,
1682
1698
  "missing": [
1683
1699
  "placement",
@@ -1688,6 +1704,7 @@
1688
1704
  "defaultExpandAll",
1689
1705
  "teleport",
1690
1706
  "appendTo",
1707
+ "transition",
1691
1708
  "pt"
1692
1709
  ]
1693
1710
  },
@@ -1715,11 +1732,12 @@
1715
1732
  "exportName": "MMenubar",
1716
1733
  "examples": 6,
1717
1734
  "props": {
1718
- "total": 5,
1735
+ "total": 6,
1719
1736
  "covered": 2,
1720
1737
  "missing": [
1721
1738
  "teleport",
1722
1739
  "appendTo",
1740
+ "transition",
1723
1741
  "pt"
1724
1742
  ]
1725
1743
  },
@@ -1958,11 +1976,12 @@
1958
1976
  "exportName": "MPopover",
1959
1977
  "examples": 8,
1960
1978
  "props": {
1961
- "total": 9,
1979
+ "total": 10,
1962
1980
  "covered": 5,
1963
1981
  "missing": [
1964
1982
  "teleport",
1965
1983
  "appendTo",
1984
+ "transition",
1966
1985
  "disabled",
1967
1986
  "pt"
1968
1987
  ]
@@ -2216,17 +2235,19 @@
2216
2235
  "exportName": "MSelect",
2217
2236
  "examples": 26,
2218
2237
  "props": {
2219
- "total": 26,
2238
+ "total": 28,
2220
2239
  "covered": 18,
2221
2240
  "missing": [
2222
2241
  "required",
2223
2242
  "clearable",
2224
2243
  "teleport",
2225
2244
  "placement",
2245
+ "transition",
2226
2246
  "id",
2227
2247
  "errorMessage",
2228
2248
  "name",
2229
- "pt"
2249
+ "pt",
2250
+ "virtual"
2230
2251
  ]
2231
2252
  },
2232
2253
  "events": {
@@ -2422,13 +2443,14 @@
2422
2443
  "exportName": "MSpeedDial",
2423
2444
  "examples": 6,
2424
2445
  "props": {
2425
- "total": 8,
2446
+ "total": 9,
2426
2447
  "covered": 3,
2427
2448
  "missing": [
2428
2449
  "disabled",
2429
2450
  "ariaLabel",
2430
2451
  "teleport",
2431
2452
  "appendTo",
2453
+ "transition",
2432
2454
  "pt"
2433
2455
  ]
2434
2456
  },
@@ -2460,7 +2482,7 @@
2460
2482
  "exportName": "MSplitButton",
2461
2483
  "examples": 4,
2462
2484
  "props": {
2463
- "total": 10,
2485
+ "total": 11,
2464
2486
  "covered": 2,
2465
2487
  "missing": [
2466
2488
  "icon",
@@ -2470,6 +2492,7 @@
2470
2492
  "disabled",
2471
2493
  "teleport",
2472
2494
  "appendTo",
2495
+ "transition",
2473
2496
  "pt"
2474
2497
  ]
2475
2498
  },
@@ -2496,14 +2519,13 @@
2496
2519
  {
2497
2520
  "id": "Splitter",
2498
2521
  "exportName": "MSplitter",
2499
- "examples": 10,
2522
+ "examples": 12,
2500
2523
  "props": {
2501
- "total": 13,
2502
- "covered": 5,
2524
+ "total": 15,
2525
+ "covered": 8,
2503
2526
  "missing": [
2504
2527
  "layout",
2505
2528
  "defaultSize",
2506
- "resizeTriggerSize",
2507
2529
  "pane1Class",
2508
2530
  "pane1Style",
2509
2531
  "pane2Class",
@@ -2522,10 +2544,10 @@
2522
2544
  ]
2523
2545
  },
2524
2546
  "slots": {
2525
- "total": 4,
2526
- "covered": 3,
2547
+ "total": 5,
2548
+ "covered": 4,
2527
2549
  "missing": [
2528
- "resize-trigger"
2550
+ "gutter"
2529
2551
  ]
2530
2552
  },
2531
2553
  "methods": {
@@ -2888,11 +2910,12 @@
2888
2910
  "exportName": "MTieredMenu",
2889
2911
  "examples": 8,
2890
2912
  "props": {
2891
- "total": 7,
2913
+ "total": 8,
2892
2914
  "covered": 3,
2893
2915
  "missing": [
2894
2916
  "teleport",
2895
2917
  "appendTo",
2918
+ "transition",
2896
2919
  "placement",
2897
2920
  "pt"
2898
2921
  ]
@@ -2947,13 +2970,14 @@
2947
2970
  "exportName": "MToast",
2948
2971
  "examples": 10,
2949
2972
  "props": {
2950
- "total": 13,
2973
+ "total": 14,
2951
2974
  "covered": 3,
2952
2975
  "missing": [
2953
2976
  "max",
2954
2977
  "teleport",
2955
2978
  "appendTo",
2956
2979
  "auto",
2980
+ "transition",
2957
2981
  "id",
2958
2982
  "summary",
2959
2983
  "detail",
@@ -3045,12 +3069,13 @@
3045
3069
  "exportName": "MTooltip",
3046
3070
  "examples": 4,
3047
3071
  "props": {
3048
- "total": 9,
3072
+ "total": 10,
3049
3073
  "covered": 5,
3050
3074
  "missing": [
3051
3075
  "disabled",
3052
3076
  "teleport",
3053
3077
  "appendTo",
3078
+ "transition",
3054
3079
  "pt"
3055
3080
  ]
3056
3081
  },
@@ -3122,7 +3147,7 @@
3122
3147
  "exportName": "MTreeSelect",
3123
3148
  "examples": 10,
3124
3149
  "props": {
3125
- "total": 23,
3150
+ "total": 24,
3126
3151
  "covered": 9,
3127
3152
  "missing": [
3128
3153
  "disabled",
@@ -3133,6 +3158,7 @@
3133
3158
  "selectionMode",
3134
3159
  "teleport",
3135
3160
  "appendTo",
3161
+ "transition",
3136
3162
  "errorMessage",
3137
3163
  "helpText",
3138
3164
  "id",
@@ -3222,15 +3248,17 @@
3222
3248
  "missing": []
3223
3249
  },
3224
3250
  "methods": {
3225
- "total": 0,
3251
+ "total": 1,
3226
3252
  "covered": 0,
3227
- "missing": []
3253
+ "missing": [
3254
+ "scrollToIndex"
3255
+ ]
3228
3256
  }
3229
3257
  }
3230
3258
  ],
3231
3259
  "summary": {
3232
3260
  "components": 93,
3233
3261
  "componentsWithMissingCoverage": 88,
3234
- "totalExamples": 803
3262
+ "totalExamples": 805
3235
3263
  }
3236
3264
  }
@@ -0,0 +1,178 @@
1
+ <script setup lang="ts">
2
+ /**
3
+ * 黄金样例:详情页
4
+ * @see DESIGN.md · morya-ui-pages references/page-layouts.md · visual-craft § Ops polish
5
+ */
6
+ import {
7
+ MBreadcrumb,
8
+ MButton,
9
+ MCard,
10
+ MConfigProvider,
11
+ MDivider,
12
+ MLayout,
13
+ MLayoutContent,
14
+ MLayoutHeader,
15
+ MPageContent,
16
+ MPageHeader,
17
+ MPageSection,
18
+ MSpace,
19
+ MStatus,
20
+ MTable,
21
+ MTag,
22
+ zhCN,
23
+ } from 'morya-ui'
24
+
25
+ const profile = {
26
+ name: '林晓',
27
+ email: 'linxiao@example.com',
28
+ role: '成员',
29
+ dept: '产品设计',
30
+ joinedAt: '2025-03-12',
31
+ status: 'active' as const,
32
+ }
33
+
34
+ const activityColumns = [
35
+ { key: 'time', label: '时间', width: 160 },
36
+ { key: 'action', label: '动作' },
37
+ { key: 'channel', label: '来源', width: 100 },
38
+ ]
39
+
40
+ const activityRows = [
41
+ { id: '1', time: '2026-09-20 14:22', action: '更新了个人资料', channel: 'Web' },
42
+ { id: '2', time: '2026-09-18 09:05', action: '重置了登录密码', channel: 'Web' },
43
+ { id: '3', time: '2026-09-12 18:41', action: '加入「产品设计」部门', channel: 'Admin' },
44
+ ]
45
+ </script>
46
+
47
+ <template>
48
+ <MConfigProvider :locale="zhCN">
49
+ <MLayout fill-viewport>
50
+ <MLayoutHeader padding="var(--m-space-4) var(--m-space-6)">
51
+ <MBreadcrumb
52
+ :model="[
53
+ { label: '首页', to: '/' },
54
+ { label: '用户管理', to: '/users' },
55
+ { label: profile.name },
56
+ ]"
57
+ />
58
+ </MLayoutHeader>
59
+
60
+ <MLayoutContent>
61
+ <MPageContent>
62
+ <MPageHeader
63
+ :title="profile.name"
64
+ description="查看账号摘要、属性与近期活动。编辑走同页弹窗或独立表单页,勿做成营销落地。"
65
+ >
66
+ <template #actions>
67
+ <MSpace>
68
+ <MStatus
69
+ :label="profile.status === 'active' ? '启用' : '停用'"
70
+ :severity="profile.status === 'active' ? 'success' : 'secondary'"
71
+ />
72
+ <MButton severity="primary">
73
+ 编辑
74
+ </MButton>
75
+ <MButton severity="secondary">
76
+ 返回
77
+ </MButton>
78
+ <MButton severity="danger" text>
79
+ 删除
80
+ </MButton>
81
+ </MSpace>
82
+ </template>
83
+ </MPageHeader>
84
+
85
+ <MPageSection title="摘要">
86
+ <MSpace wrap style="gap: var(--m-space-2)">
87
+ <MTag :value="profile.role" />
88
+ <MTag :value="profile.dept" severity="info" />
89
+ </MSpace>
90
+ <p class="detail-lead">
91
+ 工作邮箱 {{ profile.email }} · 入职 {{ profile.joinedAt }}
92
+ </p>
93
+ </MPageSection>
94
+
95
+ <MCard title="基本信息">
96
+ <dl class="detail-props">
97
+ <div>
98
+ <dt>姓名</dt>
99
+ <dd>{{ profile.name }}</dd>
100
+ </div>
101
+ <div>
102
+ <dt>邮箱</dt>
103
+ <dd>{{ profile.email }}</dd>
104
+ </div>
105
+ <div>
106
+ <dt>角色</dt>
107
+ <dd>{{ profile.role }}</dd>
108
+ </div>
109
+ <div>
110
+ <dt>部门</dt>
111
+ <dd>{{ profile.dept }}</dd>
112
+ </div>
113
+ <div>
114
+ <dt>入职日期</dt>
115
+ <dd>{{ profile.joinedAt }}</dd>
116
+ </div>
117
+ <div>
118
+ <dt>状态</dt>
119
+ <dd>
120
+ <MStatus
121
+ :label="profile.status === 'active' ? '启用' : '停用'"
122
+ :severity="profile.status === 'active' ? 'success' : 'secondary'"
123
+ />
124
+ </dd>
125
+ </div>
126
+ </dl>
127
+ </MCard>
128
+
129
+ <MDivider />
130
+
131
+ <MCard title="近期活动">
132
+ <MTable
133
+ :columns="activityColumns"
134
+ :rows="activityRows"
135
+ row-key="id"
136
+ striped
137
+ bordered
138
+ aria-label="近期活动"
139
+ />
140
+ </MCard>
141
+ </MPageContent>
142
+ </MLayoutContent>
143
+ </MLayout>
144
+ </MConfigProvider>
145
+ </template>
146
+
147
+ <style scoped>
148
+ .detail-lead {
149
+ margin: var(--m-space-3) 0 0;
150
+ color: var(--m-color-text-muted);
151
+ font-size: var(--m-font-size-sm);
152
+ }
153
+
154
+ .detail-props {
155
+ display: grid;
156
+ grid-template-columns: repeat(2, minmax(0, 1fr));
157
+ gap: var(--m-space-4) var(--m-space-6);
158
+ margin: 0;
159
+ }
160
+
161
+ .detail-props dt {
162
+ margin: 0 0 var(--m-space-1);
163
+ color: var(--m-color-text-muted);
164
+ font-size: var(--m-font-size-xs);
165
+ }
166
+
167
+ .detail-props dd {
168
+ margin: 0;
169
+ color: var(--m-color-text);
170
+ font-size: var(--m-font-size-md);
171
+ }
172
+
173
+ @media (max-width: 640px) {
174
+ .detail-props {
175
+ grid-template-columns: 1fr;
176
+ }
177
+ }
178
+ </style>