@me-framework/me-ui-antdv-next 0.0.23 → 0.0.26

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 (109) hide show
  1. package/README.md +41 -0
  2. package/dist/base/index.js +0 -0
  3. package/dist/base.css +1 -0
  4. package/dist/base.d.ts +1 -0
  5. package/dist/body/index.js +153 -0
  6. package/dist/{components/body → body}/index.vue.d.ts +3 -3
  7. package/dist/body.css +1 -0
  8. package/dist/box/index.js +170 -0
  9. package/dist/box.css +1 -0
  10. package/dist/breadcrumb/index.js +99 -0
  11. package/dist/breadcrumb.css +1 -0
  12. package/dist/card/index.js +154 -0
  13. package/dist/card.css +1 -0
  14. package/dist/chunks/icon-DdoH0MfT.js +156 -0
  15. package/dist/chunks/input-icon-selector-D5c45QL8.js +227 -0
  16. package/dist/chunks/message-CPHX2tAR.js +290 -0
  17. package/dist/chunks/modal-Dke8ng3P.js +178 -0
  18. package/dist/chunks/rolldown-runtime-DtPi1Y-2.js +13 -0
  19. package/dist/icon/index.js +27 -0
  20. package/dist/icon.css +1 -0
  21. package/dist/index.d.ts +34 -34
  22. package/dist/input-gps/index.js +451 -0
  23. package/dist/input-gps.css +1 -0
  24. package/dist/input-icon-selector/index.js +2 -0
  25. package/dist/input-icon-selector.css +1 -0
  26. package/dist/input-radio/index.js +96 -0
  27. package/dist/{components/input-radio → input-radio}/index.vue.d.ts +3 -3
  28. package/dist/input-radio.css +1 -0
  29. package/dist/load-json/index.js +24405 -0
  30. package/dist/load-json.css +1 -0
  31. package/dist/login-page/index.js +272 -0
  32. package/dist/login-page.css +1 -0
  33. package/dist/me-ui-antdv-next.js +150 -138
  34. package/dist/me-ui-antdv-next.umd.cjs +2 -2
  35. package/dist/menu/index.js +465 -0
  36. package/dist/{components/menu → menu}/types.d.ts +11 -0
  37. package/dist/menu.css +1 -0
  38. package/dist/message/index.js +2 -0
  39. package/dist/message.css +1 -0
  40. package/dist/modal/index.js +2 -0
  41. package/dist/modal.css +1 -0
  42. package/dist/nav/index.js +560 -0
  43. package/dist/nav.css +1 -0
  44. package/dist/resolver/index.d.ts +7 -0
  45. package/dist/resolver/index.js +36 -0
  46. package/dist/resolver/resolver-map.d.ts +6 -0
  47. package/dist/resolver/resolver-type.d.ts +19 -0
  48. package/dist/resolver.d.ts +2 -0
  49. package/dist/shims-vue.d.ts +3 -0
  50. package/dist/skeleton/index.js +141 -0
  51. package/dist/skeleton.css +1 -0
  52. package/dist/{me-ui-antdv-next.css → style.css} +1 -1
  53. package/dist/styles/base.d.ts +0 -0
  54. package/dist/tree-menu/index.js +890 -0
  55. package/dist/tree-menu.css +1 -0
  56. package/package.json +15 -6
  57. package/dist/{components/body → body}/index.d.ts +0 -0
  58. package/dist/{components/body → body}/types.d.ts +0 -0
  59. package/dist/{components/box → box}/index.d.ts +0 -0
  60. package/dist/{components/box → box}/index.vue.d.ts +2 -2
  61. package/dist/{components/box → box}/types.d.ts +0 -0
  62. package/dist/{components/breadcrumb → breadcrumb}/index.d.ts +0 -0
  63. package/dist/{components/breadcrumb → breadcrumb}/index.vue.d.ts +0 -0
  64. package/dist/{components/breadcrumb → breadcrumb}/types.d.ts +0 -0
  65. package/dist/{components/card → card}/index.d.ts +0 -0
  66. package/dist/{components/card → card}/index.vue.d.ts +4 -4
  67. package/dist/{components/card → card}/types.d.ts +0 -0
  68. package/dist/{components/icon → icon}/index.d.ts +0 -0
  69. package/dist/{components/icon → icon}/index.vue.d.ts +2 -2
  70. package/dist/{components/icon → icon}/types.d.ts +0 -0
  71. package/dist/{components/input-gps → input-gps}/index.d.ts +0 -0
  72. package/dist/{components/input-gps → input-gps}/index.vue.d.ts +0 -0
  73. package/dist/{components/input-gps → input-gps}/map.vue.d.ts +0 -0
  74. package/dist/{components/input-gps → input-gps}/types.d.ts +0 -0
  75. package/dist/{components/input-icon-selector → input-icon-selector}/index.d.ts +0 -0
  76. package/dist/{components/input-icon-selector → input-icon-selector}/index.vue.d.ts +5 -5
  77. package/dist/{components/input-icon-selector → input-icon-selector}/types.d.ts +0 -0
  78. package/dist/{components/input-radio → input-radio}/index.d.ts +0 -0
  79. package/dist/{components/input-radio → input-radio}/types.d.ts +0 -0
  80. package/dist/{components/load-json → load-json}/index.d.ts +0 -0
  81. package/dist/{components/load-json → load-json}/index.vue.d.ts +1 -1
  82. package/dist/{components/load-json → load-json}/types.d.ts +0 -0
  83. package/dist/{components/login-page → login-page}/index.d.ts +0 -0
  84. package/dist/{components/login-page → login-page}/index.vue.d.ts +0 -0
  85. package/dist/{components/login-page → login-page}/types.d.ts +0 -0
  86. package/dist/{components/menu → menu}/MenuTreeItem.vue.d.ts +0 -0
  87. package/dist/{components/menu → menu}/index.d.ts +0 -0
  88. package/dist/{components/menu → menu}/index.vue.d.ts +2 -2
  89. package/dist/{components/message → message}/index.d.ts +0 -0
  90. package/dist/{components/message → message}/index.vue.d.ts +4 -4
  91. package/dist/{components/message → message}/types.d.ts +0 -0
  92. package/dist/{components/modal → modal}/index.d.ts +0 -0
  93. package/dist/{components/modal → modal}/index.vue.d.ts +5 -5
  94. package/dist/{components/modal → modal}/types.d.ts +0 -0
  95. package/dist/{components/nav → nav}/composables/useNavDrag.d.ts +0 -0
  96. package/dist/{components/nav → nav}/composables/useNavScroll.d.ts +0 -0
  97. package/dist/{components/nav → nav}/index.d.ts +0 -0
  98. package/dist/{components/nav → nav}/index.vue.d.ts +5 -5
  99. package/dist/{components/nav → nav}/types.d.ts +0 -0
  100. package/dist/{components/skeleton → skeleton}/index.d.ts +0 -0
  101. package/dist/{components/skeleton → skeleton}/index.vue.d.ts +0 -0
  102. package/dist/{components/skeleton → skeleton}/types.d.ts +0 -0
  103. package/dist/{components/tree-menu → tree-menu}/TreeMenuActions.vue.d.ts +0 -0
  104. package/dist/{components/tree-menu → tree-menu}/TreeMenuCard.vue.d.ts +1 -1
  105. package/dist/{components/tree-menu → tree-menu}/TreeMenuEdit.vue.d.ts +2 -2
  106. package/dist/{components/tree-menu → tree-menu}/TreeMenuNode.vue.d.ts +0 -0
  107. package/dist/{components/tree-menu → tree-menu}/index.d.ts +0 -0
  108. package/dist/{components/tree-menu → tree-menu}/index.vue.d.ts +3 -3
  109. /package/dist/{components/tree-menu → tree-menu}/types.d.ts +0 -0
package/README.md CHANGED
@@ -70,6 +70,47 @@ app.mount('#app')
70
70
  </template>
71
71
  ```
72
72
 
73
+ ### 按需引入(推荐,减小打包体积)
74
+
75
+ 组件库支持**组件级子路径按需导入**,每个组件可独立引入 JS 与样式,避免全量体积负担。
76
+
77
+ ```ts
78
+ import { createApp } from 'vue'
79
+ import Antd from 'antdv-next'
80
+ import 'antdv-next/dist/reset.css'
81
+ // 1) 先引入基础 token 基线(设计变量::root / html.dark),按需引任意组件都需引一次
82
+ import '@me-framework/me-ui-antdv-next/base.css'
83
+ // 2) 按需引入组件
84
+ import MeMenu from '@me-framework/me-ui-antdv-next/menu'
85
+ import '@me-framework/me-ui-antdv-next/menu/style.css'
86
+
87
+ const app = createApp(App)
88
+ app.use(Antd)
89
+ app.use(MeMenu)
90
+ app.mount('#app')
91
+ ```
92
+
93
+ #### 使用 unplugin-vue-components 自动按需引入
94
+
95
+ 在 Vite 项目中配置:
96
+
97
+ ```ts
98
+ import { defineConfig } from 'vite'
99
+ import Components from 'unplugin-vue-components/vite'
100
+ import { MeUiAntdvResolver } from '@me-framework/me-ui-antdv-next/resolver'
101
+
102
+ export default defineConfig({
103
+ plugins: [
104
+ Components({ resolvers: [MeUiAntdvResolver()] }),
105
+ ],
106
+ })
107
+ ```
108
+
109
+ > **注意**
110
+ > - 按需引入时需**先引一次 `base.css`**,否则 `var(--me-*)` 设计 token 缺失导致样式异常;全量引入(`style.css`)已含 base,无需再引。
111
+ > - 组件内部依赖的兄弟组件(如 `menu` 依赖 `icon`)会随子入口自动引入,无需手动补引。
112
+ > - 需要 TypeScript ≥ 4.7 以支持 `exports` 子路径通配解析。
113
+
73
114
  #### 参与贡献
74
115
 
75
116
  1. Fork 本仓库
File without changes
package/dist/base.css ADDED
@@ -0,0 +1 @@
1
+ :root{--me-color-primary:#1677ff;--me-color-primary-light-3:#4096ff;--me-color-primary-light-5:#69b1ff;--me-color-primary-light-7:#91caff;--me-color-primary-light-8:#bae0ff;--me-color-primary-light-9:#e6f4ff;--me-color-primary-dark-2:#0958d9;--me-color-primary-text:#fff;--me-color-success:#52c41a;--me-color-warning:#faad14;--me-color-danger:#ff4d4f;--me-color-info:#1677ff;--me-text-primary:#000000e0;--me-text-regular:#000000a6;--me-text-secondary:#00000073;--me-text-placeholder:#00000040;--me-text-disabled:#00000040;--me-border-radius-base:6px;--me-border-radius-small:4px;--me-border-radius-round:20px;--me-font-size-base:14px;--me-font-size-large:16px;--me-font-size-small:12px;--me-border-color:#d9d9d9;--me-border-color-light:#e8e8e8;--me-border-color-lighter:#f0f0f0;--me-fill-color:#f5f5f5;--me-fill-color-light:#fafafa;--me-bg-color:#fff;--me-bg-color-overlay:#fff;--me-box-shadow:0 6px 16px 0 #00000014, 0 3px 6px -4px #0000001f, 0 9px 28px 8px #0000000d}html.dark{--me-color-primary:#1677ff;--me-color-primary-light-3:#4096ff;--me-color-primary-light-5:#69b1ff;--me-color-primary-light-7:#91caff;--me-color-primary-light-8:#bae0ff;--me-color-primary-light-9:#e6f4ff;--me-color-primary-dark-2:#0958d9;--me-color-primary-text:#fff;--me-color-success:#52c41a;--me-color-warning:#faad14;--me-color-danger:#ff4d4f;--me-color-info:#1677ff;--me-text-primary:#ffffffe0;--me-text-regular:#ffffffa6;--me-text-secondary:#ffffff73;--me-text-placeholder:#ffffff4d;--me-text-disabled:#ffffff40;--me-border-color:#424242;--me-border-color-light:#303030;--me-border-color-lighter:#ffffff0f;--me-fill-color:#ffffff1f;--me-fill-color-light:#ffffff0a;--me-bg-color:#141414;--me-bg-color-overlay:#1f1f1f;--me-box-shadow:0 6px 16px 0 #00000052, 0 3px 6px -4px #0006, 0 9px 28px 8px #0003}.me-ui-antdv-next{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}
package/dist/base.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,153 @@
1
+ import { computed as e, createBlock as t, createElementBlock as n, createElementVNode as r, createTextVNode as i, createVNode as a, defineComponent as o, mergeProps as s, normalizeStyle as c, openBlock as l, renderSlot as u, resolveComponent as d, resolveDynamicComponent as f, withCtx as p } from "vue";
2
+ //#region src/components/body/index.vue?vue&type=script&setup=true&lang.ts
3
+ var m = {
4
+ key: 0,
5
+ class: "me-body__loading"
6
+ }, h = {
7
+ key: 1,
8
+ class: "me-body__loader"
9
+ }, g = {
10
+ key: 1,
11
+ class: "me-body__error-default"
12
+ }, _ = {
13
+ key: 1,
14
+ class: "me-body__empty-default"
15
+ }, v = {
16
+ key: 3,
17
+ class: "me-body__result"
18
+ }, y = { class: "me-body__result-inner" }, b = {
19
+ key: 4,
20
+ class: "me-body--normal"
21
+ }, x = {
22
+ key: 5,
23
+ class: "me-body--full"
24
+ }, S = { class: "me-body__full-header" }, C = { class: "me-body__full-main me-div-scroller" }, w = { class: "me-body__full-footer" }, T = /* @__PURE__ */ o({
25
+ name: "MeBody",
26
+ __name: "index",
27
+ props: {
28
+ background: {
29
+ type: String,
30
+ default: "#fff"
31
+ },
32
+ space: {
33
+ type: [Number, String],
34
+ default: 0
35
+ },
36
+ mode: {
37
+ type: String,
38
+ default: "normal"
39
+ },
40
+ fullScreen: {
41
+ type: Boolean,
42
+ default: !1
43
+ },
44
+ loading: {
45
+ type: [Boolean, Object],
46
+ default: !1
47
+ },
48
+ error: {
49
+ type: [Boolean, Object],
50
+ default: !1
51
+ },
52
+ empty: {
53
+ type: [Boolean, Object],
54
+ default: !1
55
+ },
56
+ emptyDescription: {
57
+ type: String,
58
+ default: "暂无数据"
59
+ },
60
+ result: {
61
+ type: String,
62
+ default: void 0
63
+ },
64
+ title: {
65
+ type: String,
66
+ default: void 0
67
+ },
68
+ subTitle: {
69
+ type: String,
70
+ default: void 0
71
+ }
72
+ },
73
+ emits: ["retry"],
74
+ setup(o, { emit: T }) {
75
+ let E = o, D = T, O = e(() => E.loading ? "loading" : E.error ? "error" : E.empty ? "empty" : E.result ? "result" : E.mode === "full" ? "full" : "normal"), k = e(() => {
76
+ if (E.fullScreen) return "0";
77
+ let e = E.space;
78
+ return typeof e == "number" ? `${e}px` : e;
79
+ }), A = e(() => ({ height: O.value === "normal" ? "fit-content" : "100%" })), j = e(() => typeof E.loading == "object" && E.loading !== null), M = e(() => typeof E.error == "object" && E.error !== null), N = e(() => typeof E.empty == "object" && E.empty !== null), P = () => {
80
+ D("retry");
81
+ };
82
+ return (e, T) => {
83
+ let D = d("a-button"), F = d("a-result"), I = d("a-empty");
84
+ return l(), n("div", s({
85
+ class: "me-body",
86
+ style: A.value
87
+ }, e.$attrs), [O.value === "loading" ? (l(), n("div", m, [r("div", {
88
+ class: "me-body__loading-inner",
89
+ style: c({
90
+ background: E.background,
91
+ margin: k.value
92
+ })
93
+ }, [u(e.$slots, "me-body-loading", {}, () => [j.value ? (l(), t(f(E.loading), { key: 0 })) : (l(), n("div", h, [...T[0] ||= [r("div", { class: "me-body__loader-text" }, "Loading", -1), r("div", { class: "me-body__loader-mario" }, null, -1)]]))])], 4)])) : O.value === "error" ? (l(), n("div", {
94
+ key: 1,
95
+ class: "me-body__error",
96
+ style: c({ padding: k.value })
97
+ }, [u(e.$slots, "me-body-error", {}, () => [M.value ? (l(), t(f(E.error), { key: 0 })) : (l(), n("div", g, [a(F, {
98
+ status: "error",
99
+ title: "加载失败",
100
+ "sub-title": "请稍后重试"
101
+ }, {
102
+ extra: p(() => [a(D, {
103
+ type: "primary",
104
+ onClick: P
105
+ }, {
106
+ default: p(() => [...T[1] ||= [i("重新加载", -1)]]),
107
+ _: 1
108
+ })]),
109
+ _: 1
110
+ })]))])], 4)) : O.value === "empty" ? (l(), n("div", {
111
+ key: 2,
112
+ class: "me-body__empty",
113
+ style: c({ padding: k.value })
114
+ }, [u(e.$slots, "me-body-empty", {}, () => [N.value ? (l(), t(f(E.empty), { key: 0 })) : (l(), n("div", _, [a(I, { description: o.emptyDescription }, null, 8, ["description"])]))])], 4)) : O.value === "result" ? (l(), n("div", v, [r("div", y, [a(F, {
115
+ status: E.result,
116
+ title: E.title,
117
+ "sub-title": E.subTitle
118
+ }, {
119
+ extra: p(() => [u(e.$slots, "me-body-result", {}, () => [u(e.$slots, "default")])]),
120
+ _: 3
121
+ }, 8, [
122
+ "status",
123
+ "title",
124
+ "sub-title"
125
+ ])])])) : O.value === "normal" ? (l(), n("div", b, [r("div", { style: c({
126
+ background: E.background,
127
+ margin: k.value
128
+ }) }, [
129
+ u(e.$slots, "me-body-header"),
130
+ u(e.$slots, "me-body-main", {}, () => [u(e.$slots, "default")]),
131
+ u(e.$slots, "me-body-footer")
132
+ ], 4)])) : (l(), n("div", x, [r("div", {
133
+ class: "me-body__full-inner",
134
+ style: c({
135
+ background: E.background,
136
+ margin: k.value
137
+ })
138
+ }, [
139
+ r("div", S, [u(e.$slots, "me-body-header")]),
140
+ r("div", C, [u(e.$slots, "me-body-main", {}, () => [u(e.$slots, "default")])]),
141
+ r("div", w, [u(e.$slots, "me-body-footer")])
142
+ ], 4)]))], 16);
143
+ };
144
+ }
145
+ });
146
+ //#endregion
147
+ //#region src/components/body/index.ts
148
+ T.install = (e) => {
149
+ e.component("MeBody", T);
150
+ };
151
+ var E = T;
152
+ //#endregion
153
+ export { T as MeBody, E as default };
@@ -155,15 +155,15 @@ declare const __VLS_base: import('vue').DefineComponent<import('vue').ExtractPro
155
155
  onRetry?: ((...args: any[]) => any) | undefined;
156
156
  }>, {
157
157
  loading: boolean | Component;
158
- title: string;
159
- mode: "normal" | "full";
160
- result: "success" | "warning" | "info" | "error";
161
158
  error: boolean | Component;
162
159
  empty: boolean | Component;
160
+ result: "error" | "success" | "warning" | "info";
163
161
  background: string;
164
162
  space: string | number;
163
+ mode: "normal" | "full";
165
164
  fullScreen: boolean;
166
165
  emptyDescription: string;
166
+ title: string;
167
167
  subTitle: string;
168
168
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
169
169
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
package/dist/body.css ADDED
@@ -0,0 +1 @@
1
+ .me-body{box-sizing:border-box;width:100%;height:100%}.me-body__loading{width:100%;height:100%;display:flex;overflow:hidden}.me-body__loading-inner{background:var(--me-bg-color,#fff);flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.me-body__loader{background:linear-gradient(#000 0 0) 0 0/100% 100% no-repeat content-box padding-box;width:fit-content;padding:30px 2px 50px;font-family:monospace;font-size:17px;font-weight:700;line-height:1.4;animation:2s cubic-bezier(1,175,.5,175) infinite me-body-loader-bg;position:relative;overflow:hidden}.me-body__loader-text{animation:2s infinite me-body-loader-text;display:inline-block}.me-body__loader-mario{width:34px;height:28px;animation:inherit;background-color:#0000;background-image:linear-gradient(90deg,#0000 12px,#f92033 0 22px,#0000 0 26px,#fdc98d 0 32px,#0000),linear-gradient(90deg,#0000 10px,#f92033 0 28px,#fdc98d 0 32px,#0000 0),linear-gradient(90deg,#0000 10px,#643700 0 16px,#fdc98d 0 20px,#000 0 22px,#fdc98d 0 24px,#000 0 26px,#f92033 0 32px,#0000 0),linear-gradient(90deg,#0000 8px,#643700 0 10px,#fdc98d 0 12px,#643700 0 14px,#fdc98d 0 20px,#000 0 22px,#fdc98d 0 28px,#f92033 0 32px,#0000 0),linear-gradient(90deg,#0000 8px,#643700 0 10px,#fdc98d 0 12px,#643700 0 16px,#fdc98d 0 22px,#000 0 24px,#fdc98d 0 30px,#f92033 0 32px,#0000 0),linear-gradient(90deg,#0000 8px,#643700 0 12px,#fdc98d 0 20px,#000 0 28px,#f92033 0 30px,#0000 0),linear-gradient(90deg,#0000 12px,#fdc98d 0 26px,#f92033 0 30px,#0000 0),linear-gradient(90deg,#fdc98d 6px,#f92033 0 14px,#222a87 0 16px,#f92033 0 22px,#222a87 0 24px,#f92033 0 28px,#0000 0 32px,#643700 0),linear-gradient(90deg,#fdc98d 6px,#f92033 0 16px,#222a87 0 18px,#f92033 0 24px,#f92033 0 26px,#0000 0 30px,#643700 0),linear-gradient(90deg,#0000 10px,#f92033 0 16px,#222a87 0 24px,#feee49 0 26px,#222a87 0 30px,#643700 0),linear-gradient(90deg,#0000 12px,#222a87 0 18px,#feee49 0 20px,#222a87 0 30px,#643700 0),linear-gradient(90deg,#0000 8px,#643700 0 12px,#222a87 0 30px,#643700 0),linear-gradient(90deg,#0000 6px,#643700 0 14px,#222a87 0 26px,#0000 0),linear-gradient(90deg,#0000 6px,#643700 0 10px,#0000 0);background-position:left 50% bottom 26px,left 50% bottom 24px,left 50% bottom 22px,left 50% bottom 20px,left 50% bottom 18px,left 50% bottom 16px,left 50% bottom 14px,left 50% bottom 12px,left 50% bottom 10px,left 50% bottom 8px,left 50% bottom 6px,left 50% bottom 4px,left 50% bottom 2px,left 50% bottom 0;background-repeat:no-repeat;background-size:34px 2px;background-attachment:scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box;animation-name:me-body-loader-mario;position:absolute;top:110%;left:calc(50% - 16px)}.me-body__error{box-sizing:border-box;width:100%;height:100%}.me-body__error-default{height:100%}.me-body__error-default .ant-result{background:var(--me-bg-color,#fff);height:100%}.me-body__empty{box-sizing:border-box;width:100%;height:100%}.me-body__empty-default{justify-content:center;align-items:center;height:100%;display:flex}.me-body__result{width:100%;height:100%}.me-body__result-inner{box-sizing:border-box;height:100%;padding:15px}.me-body__result-inner .ant-result{background:var(--me-bg-color,#fff);height:100%}.me-body--normal{width:100%}.me-body--full{width:100%;height:100%;display:flex;overflow:hidden}.me-body__full-inner{flex-direction:column;flex:1;width:100%;display:flex;overflow:hidden}.me-body__full-header{flex-shrink:0}.me-body__full-main{flex:1;height:100%;overflow:auto}.me-body__full-footer{flex-shrink:0}@keyframes me-body-loader-bg{0%,30%{background-position:0 0}50%,to{background-position:0 -.1px}}@keyframes me-body-loader-mario{50%,to{top:109.5%}}@keyframes me-body-loader-text{0%,30%{transform:translateY(0)}80%,to{transform:translateY(-260%)}}html.dark .me-body__loading-inner,html.dark .me-body__error-default .ant-result,html.dark .me-body__result-inner .ant-result{background:var(--me-bg-color,#fff)}
@@ -0,0 +1,170 @@
1
+ import { computed as e, createCommentVNode as t, createElementBlock as n, createElementVNode as r, createTextVNode as i, defineComponent as a, mergeProps as o, normalizeClass as s, normalizeStyle as c, openBlock as l, renderSlot as u, toDisplayString as d, useSlots as f } from "vue";
2
+ //#region src/components/box/index.vue?vue&type=script&setup=true&lang.ts
3
+ var p = {
4
+ key: 1,
5
+ class: "me-box__header-left"
6
+ }, m = {
7
+ key: 2,
8
+ class: "me-box__title"
9
+ }, h = {
10
+ key: 3,
11
+ class: "me-box__header-right"
12
+ }, g = /* @__PURE__ */ a({
13
+ name: "MeBox",
14
+ __name: "index",
15
+ props: {
16
+ type: {
17
+ type: String,
18
+ default: "default"
19
+ },
20
+ title: {
21
+ type: String,
22
+ default: ""
23
+ },
24
+ width: {
25
+ type: String,
26
+ default: ""
27
+ },
28
+ height: {
29
+ type: String,
30
+ default: ""
31
+ },
32
+ showTrafficLights: {
33
+ type: Boolean,
34
+ default: !0
35
+ },
36
+ trafficLightPosition: {
37
+ type: String,
38
+ default: "left"
39
+ },
40
+ bodyStyle: {
41
+ type: Object,
42
+ default: () => ({})
43
+ },
44
+ customStyle: {
45
+ type: Object,
46
+ default: () => ({})
47
+ },
48
+ stripeAnimated: {
49
+ type: Boolean,
50
+ default: !0
51
+ },
52
+ stripeDirection: {
53
+ type: String,
54
+ default: "right"
55
+ },
56
+ stripeSpeed: {
57
+ type: Number,
58
+ default: 30
59
+ },
60
+ stripeSize: {
61
+ type: Number,
62
+ default: 24
63
+ },
64
+ stripeThickness: {
65
+ type: Number,
66
+ default: 2
67
+ },
68
+ stripeColor: {
69
+ type: String,
70
+ default: ""
71
+ },
72
+ stripeBgColor: {
73
+ type: String,
74
+ default: ""
75
+ },
76
+ stripeBorderColor: {
77
+ type: String,
78
+ default: ""
79
+ },
80
+ stripeBorderWidth: {
81
+ type: Number,
82
+ default: 2
83
+ },
84
+ stripeAngle: {
85
+ type: String,
86
+ default: "right"
87
+ }
88
+ },
89
+ emits: [
90
+ "close",
91
+ "minimize",
92
+ "maximize"
93
+ ],
94
+ setup(a, { emit: g }) {
95
+ let _ = a, v = g, y = f(), b = e(() => _.type === "mac" || !!(_.title || y.title || y["header-left"] || y["header-right"])), x = e(() => {
96
+ let e = {
97
+ width: _.width,
98
+ height: _.height,
99
+ ..._.customStyle
100
+ };
101
+ return _.type === "stripe" && (_.stripeBorderColor && (e["--me-box-stripe-border-color"] = _.stripeBorderColor), e["--me-box-stripe-border-width"] = `${_.stripeBorderWidth}px`), e;
102
+ }), S = e(() => {
103
+ if (_.type === "stripe") {
104
+ let e = {
105
+ "--me-box-stripe-speed": `${_.stripeSpeed}px`,
106
+ "--me-box-stripe-size": `${_.stripeSize}px`,
107
+ "--me-box-stripe-thickness": `${_.stripeThickness}px`
108
+ };
109
+ return _.stripeColor && (e["--me-box-stripe-color"] = _.stripeColor), _.stripeBgColor && (e["--me-box-stripe-bg-color"] = _.stripeBgColor), {
110
+ ...e,
111
+ ..._.bodyStyle
112
+ };
113
+ }
114
+ return _.bodyStyle;
115
+ }), C = () => {
116
+ v("close");
117
+ }, w = () => {
118
+ v("minimize");
119
+ }, T = () => {
120
+ v("maximize");
121
+ };
122
+ return (e, a) => (l(), n("div", o({
123
+ class: ["me-box", [`me-box--${_.type}`]],
124
+ style: x.value
125
+ }, e.$attrs), [b.value ? (l(), n("div", {
126
+ key: 0,
127
+ class: s(["me-box__header", [_.trafficLightPosition === "right" ? "me-box__header--right" : "me-box__header--left"]])
128
+ }, [
129
+ _.type === "mac" && _.showTrafficLights ? (l(), n("div", {
130
+ key: 0,
131
+ class: s(["me-box__traffic-lights", [_.trafficLightPosition === "right" ? "me-box__traffic-lights--right" : "me-box__traffic-lights--left"]])
132
+ }, [
133
+ r("div", {
134
+ class: "me-box__traffic-light me-box__traffic-light--red",
135
+ title: "关闭",
136
+ onClick: C
137
+ }),
138
+ r("div", {
139
+ class: "me-box__traffic-light me-box__traffic-light--yellow",
140
+ title: "最小化",
141
+ onClick: w
142
+ }),
143
+ r("div", {
144
+ class: "me-box__traffic-light me-box__traffic-light--green",
145
+ title: "最大化",
146
+ onClick: T
147
+ })
148
+ ], 2)) : t("", !0),
149
+ e.$slots["header-left"] ? (l(), n("div", p, [u(e.$slots, "header-left")])) : t("", !0),
150
+ _.title || e.$slots.title ? (l(), n("div", m, [u(e.$slots, "title", {}, () => [i(d(_.title), 1)])])) : t("", !0),
151
+ e.$slots["header-right"] ? (l(), n("div", h, [u(e.$slots, "header-right")])) : t("", !0)
152
+ ], 2)) : t("", !0), r("div", {
153
+ class: s(["me-box__body", [
154
+ _.type === "stripe" ? "me-box__body--stripe" : "",
155
+ _.type === "stripe" && _.stripeAnimated ? "me-box__body--stripe-animated" : "",
156
+ _.type === "stripe" ? `me-box__body--stripe-dir-${_.stripeDirection}` : "",
157
+ _.type === "stripe" ? `me-box__body--stripe-angle-${_.stripeAngle}` : ""
158
+ ]]),
159
+ style: c(S.value)
160
+ }, [u(e.$slots, "default")], 6)], 16));
161
+ }
162
+ });
163
+ //#endregion
164
+ //#region src/components/box/index.ts
165
+ g.install = (e) => {
166
+ e.component("MeBox", g);
167
+ };
168
+ var _ = g;
169
+ //#endregion
170
+ export { g as MeBox, _ as default };
package/dist/box.css ADDED
@@ -0,0 +1 @@
1
+ .me-box{box-sizing:border-box;background-color:var(--me-bg-color);border:1px solid var(--me-border-color-light);border-radius:var(--me-border-radius-base);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.me-box--mac{--me-box-header-bg:var(--me-fill-color);--me-box-header-height:38px;--me-box-traffic-light-red:#ff5f57;--me-box-traffic-light-yellow:#febc2e;--me-box-traffic-light-green:#28c840;--me-box-shadow:var(--me-box-shadow);box-shadow:var(--me-box-shadow);border-radius:12px}.me-box--mac .me-box__header{height:var(--me-box-header-height);background-color:var(--me-box-header-bg);border-bottom:1px solid var(--me-border-color-light);-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;padding:0 12px;display:flex}.me-box--mac .me-box__header--left{justify-content:flex-start}.me-box--mac .me-box__header--right{justify-content:flex-end}.me-box--mac .me-box__title{color:var(--me-text-primary)}.me-box__traffic-lights{flex-shrink:0;align-items:center;column-gap:8px;display:flex}.me-box__traffic-lights--right{order:2}.me-box__traffic-lights--left{order:0}.me-box__traffic-light{cursor:pointer;border-radius:50%;flex-shrink:0;width:12px;height:12px;transition:filter .15s;display:block;box-shadow:inset 0 0 0 .5px #0003}.me-box__traffic-light:hover{filter:brightness(.9)}.me-box__traffic-light--red{background-color:var(--me-box-traffic-light-red)}.me-box__traffic-light--yellow{background-color:var(--me-box-traffic-light-yellow)}.me-box__traffic-light--green{background-color:var(--me-box-traffic-light-green)}.me-box--stripe{border:var(--me-box-stripe-border-width) dashed var(--me-box-stripe-border-color);--me-box-stripe-border-width:2px;--me-box-stripe-border-color:var(--me-color-primary-light-5);--me-box-stripe-bg-color:var(--me-color-primary-light-9);--me-box-stripe-color:#ffffff8c;--me-box-stripe-size:24px;--me-box-stripe-thickness:2px;--me-box-stripe-speed:30px;border-radius:12px}.me-box--stripe .me-box__body--stripe{isolation:isolate;background-color:var(--me-box-stripe-bg-color);position:relative;overflow:hidden}.me-box--stripe .me-box__body--stripe:before{content:"";pointer-events:none;z-index:-1;width:200%;height:200%;position:absolute;top:-50%;left:-50%}.me-box--stripe .me-box__body--stripe-angle-right:before{background-image:repeating-linear-gradient(-45deg, var(--me-box-stripe-color) 0 var(--me-box-stripe-thickness), transparent var(--me-box-stripe-thickness) var(--me-box-stripe-size));--me-box-stripe-tx:calc(var(--me-box-stripe-size) * .707);--me-box-stripe-ty:calc(var(--me-box-stripe-size) * .707)}.me-box--stripe .me-box__body--stripe-angle-left:before{background-image:repeating-linear-gradient(45deg, var(--me-box-stripe-color) 0 var(--me-box-stripe-thickness), transparent var(--me-box-stripe-thickness) var(--me-box-stripe-size));--me-box-stripe-tx:calc(var(--me-box-stripe-size) * -.707);--me-box-stripe-ty:calc(var(--me-box-stripe-size) * .707)}.me-box--stripe .me-box__body--stripe-animated:before{animation:2s linear infinite me-box-stripe-scroll;animation-duration:calc(var(--me-box-stripe-size) * 1s / var(--me-box-stripe-speed))}.me-box--stripe .me-box__body--stripe-animated.me-box__body--stripe-dir-left:before{animation-direction:reverse}.me-box--default .me-box__header{border-bottom:1px solid var(--me-border-color-light);font-weight:600;font-size:var(--me-font-size-large);padding:12px 16px}.me-box--default .me-box__title{font-size:var(--me-font-size-large);color:var(--me-text-primary);text-align:left;font-weight:600}.me-box__header{flex-shrink:0;align-items:center;display:flex}.me-box__title{text-overflow:ellipsis;white-space:nowrap;flex:1;order:1;overflow:hidden}.me-box__header-right{order:2;align-items:center;display:flex}.me-box__header-left{flex:1;order:1;align-items:center;display:flex}.me-box__body{min-height:0;color:var(--me-text-regular);flex:auto;padding:0;overflow:auto}html.dark .me-box--mac{--me-box-header-bg:var(--me-fill-color);--me-box-shadow:0 4px 20px #0006}html.dark .me-box--stripe{--me-box-stripe-border-color:var(--me-color-primary-dark-2);--me-box-stripe-bg-color:#1677ff1f;--me-box-stripe-color:#ffffff26}@keyframes me-box-stripe-scroll{0%{transform:translate(0)}to{transform:translate(var(--me-box-stripe-tx), var(--me-box-stripe-ty))}}
@@ -0,0 +1,99 @@
1
+ import { Fragment as e, createBlock as t, createElementBlock as n, createElementVNode as r, createTextVNode as i, createVNode as a, defineComponent as o, inject as s, mergeProps as c, normalizeClass as l, normalizeStyle as u, openBlock as d, renderList as f, renderSlot as p, resolveComponent as m, toDisplayString as h, unref as g, withCtx as _, withModifiers as v } from "vue";
2
+ import { ChevronDown as y } from "@lucide/vue";
3
+ Array.isArray, Symbol(process.env.NODE_ENV === "production" ? "" : "navigation failure"), Symbol(process.env.NODE_ENV === "production" ? "" : "router view location matched"), Symbol(process.env.NODE_ENV === "production" ? "" : "router view depth");
4
+ var b = Symbol(process.env.NODE_ENV === "production" ? "" : "router");
5
+ Symbol(process.env.NODE_ENV === "production" ? "" : "route location"), Symbol(process.env.NODE_ENV === "production" ? "" : "router view location");
6
+ function x() {
7
+ return s(b);
8
+ }
9
+ //#endregion
10
+ //#region src/components/breadcrumb/index.vue?vue&type=script&setup=true&lang.ts
11
+ var S = ["onClick"], C = /* @__PURE__ */ o({
12
+ name: "MeBreadcrumb",
13
+ __name: "index",
14
+ props: { items: {
15
+ type: Array,
16
+ default: () => []
17
+ } },
18
+ emits: ["change"],
19
+ setup(o, { emit: s }) {
20
+ let b = s, C = x(), w = null, T = (e, t = "14px -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif") => (w ||= document.createElement("canvas").getContext("2d"), w ? (w.font = t, w.measureText(e).width) : e.length * 14), E = (e) => e.options.map((e) => ({
21
+ value: e.value,
22
+ label: e.label
23
+ })), D = (e) => ({
24
+ selectedKeys: e.activeValue === void 0 ? [] : [String(e.activeValue)],
25
+ items: e.options.map((e) => ({
26
+ key: String(e.value),
27
+ label: e.label
28
+ }))
29
+ }), O = (e) => e.options.find((t) => t.value === e.value)?.label || "", k = (e) => {
30
+ if (e.type !== "select") return "auto";
31
+ let t = O(e), n = T(t), r = Math.ceil(n) + 48;
32
+ return `${Math.max(r, 80)}px`;
33
+ }, A = (e, t, n) => {
34
+ let r = t.options.find((t) => t.value === e);
35
+ r && (t.onChange?.(r), b("change", {
36
+ option: r,
37
+ index: n
38
+ }));
39
+ }, j = (e, t, n) => {
40
+ let r = e.options.find((e) => String(e.value) === n);
41
+ r && (e.onChange?.(r), b("change", {
42
+ option: r,
43
+ index: t
44
+ }));
45
+ }, M = (e) => e.type === "select" ? O(e) : e.label, N = (e) => {
46
+ e.to && C.push(e.to);
47
+ };
48
+ return (s, b) => {
49
+ let x = m("a-select"), C = m("a-dropdown"), w = m("a-breadcrumb-item"), T = m("a-breadcrumb");
50
+ return d(), t(T, c(s.$attrs, { class: "me-breadcrumb" }), {
51
+ separator: _(() => [p(s.$slots, "separator")]),
52
+ default: _(() => [(d(!0), n(e, null, f(o.items, (e, o) => (d(), t(w, { key: `${M(e)}-${o}` }, {
53
+ default: _(() => [e.type === "select" ? (d(), t(x, {
54
+ key: 0,
55
+ value: e.value,
56
+ class: l(["me-breadcrumb__select", { "is-bold": e.bold }]),
57
+ options: E(e),
58
+ variant: "borderless",
59
+ style: u({ width: k(e) }),
60
+ onChange: (t) => A(t, e, o),
61
+ onClick: b[0] ||= v(() => {}, ["stop"])
62
+ }, null, 8, [
63
+ "value",
64
+ "class",
65
+ "options",
66
+ "style",
67
+ "onChange"
68
+ ])) : e.type === "menu" ? (d(), t(C, {
69
+ key: 1,
70
+ menu: D(e),
71
+ trigger: "click",
72
+ onMenuClick: ({ key: t }) => j(e, o, t),
73
+ onClick: b[1] ||= v(() => {}, ["stop"])
74
+ }, {
75
+ default: _(() => [r("span", { class: l(["me-breadcrumb__menu-trigger", { "is-bold": e.bold }]) }, [i(h(e.label) + " ", 1), a(g(y), {
76
+ size: 14,
77
+ "stroke-width": 2
78
+ })], 2)]),
79
+ _: 2
80
+ }, 1032, ["menu", "onMenuClick"])) : (d(), n("span", {
81
+ key: 2,
82
+ class: l([{ "is-bold": e.bold }, { "me-breadcrumb__item-link": !!e.to }]),
83
+ onClick: (t) => N(e)
84
+ }, h(e.label), 11, S))]),
85
+ _: 2
86
+ }, 1024))), 128))]),
87
+ _: 3
88
+ }, 16);
89
+ };
90
+ }
91
+ });
92
+ //#endregion
93
+ //#region src/components/breadcrumb/index.ts
94
+ C.install = (e) => {
95
+ e.component("MeBreadcrumb", C);
96
+ };
97
+ var w = C;
98
+ //#endregion
99
+ export { C as MeBreadcrumb, w as default };
@@ -0,0 +1 @@
1
+ .me-breadcrumb{align-items:center;margin-bottom:0;display:flex}.me-breadcrumb .ant-breadcrumb{align-items:center;display:flex}.me-breadcrumb .ant-breadcrumb-item{align-items:center;height:22px;line-height:22px;display:inline-flex}.me-breadcrumb__select{vertical-align:middle;align-items:center;min-width:80px;height:22px;margin-bottom:0;display:inline-flex}.me-breadcrumb__select .ant-select-selector{padding:0 8px;height:22px!important;min-height:22px!important;line-height:22px!important}.me-breadcrumb__select .ant-select-selection-item{align-items:center;height:22px;line-height:22px;display:inline-flex;padding-inline-end:20px!important}.me-breadcrumb__select .ant-select-arrow{top:50%;transform:translateY(-50%)}.me-breadcrumb__select.is-bold .ant-select-selection-item{font-weight:600}.me-breadcrumb__menu-trigger{cursor:pointer;align-items:center;gap:2px;height:22px;line-height:22px;display:inline-flex}.me-breadcrumb .is-bold{font-weight:600}.me-breadcrumb__item-link{cursor:pointer;color:var(--me-text-primary);transition:color .2s}.me-breadcrumb__item-link:hover{color:var(--me-color-primary)}html.dark .me-breadcrumb__item-link{color:var(--me-text-primary)}html.dark .me-breadcrumb__item-link:hover{color:var(--me-color-primary-light-3)}
@@ -0,0 +1,154 @@
1
+ import { computed as e, createBlock as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createVNode as a, defineComponent as o, mergeProps as s, normalizeClass as c, openBlock as l, ref as u, renderSlot as d, resolveComponent as f, resolveDynamicComponent as p, toDisplayString as m, unref as h, useSlots as g, vShow as _, watch as v, withCtx as y, withDirectives as b } from "vue";
2
+ import { ChevronDown as x, Maximize2 as S, Minimize2 as C } from "@lucide/vue";
3
+ //#region src/components/card/index.vue?vue&type=script&setup=true&lang.ts
4
+ var w = { class: "me-card__title-wrapper" }, T = { class: "me-card__title" }, E = { class: "me-card__actions" }, D = { class: "me-card__content" }, O = { class: "me-card__body" }, k = {
5
+ key: 0,
6
+ class: "me-card__footer"
7
+ }, A = /* @__PURE__ */ o({
8
+ name: "MeCard",
9
+ __name: "index",
10
+ props: {
11
+ title: {
12
+ type: String,
13
+ default: ""
14
+ },
15
+ collapsible: {
16
+ type: Boolean,
17
+ default: !1
18
+ },
19
+ defaultCollapsed: {
20
+ type: Boolean,
21
+ default: !1
22
+ },
23
+ collapsed: {
24
+ type: Boolean,
25
+ default: void 0
26
+ },
27
+ fullscreenable: {
28
+ type: Boolean,
29
+ default: !1
30
+ },
31
+ fullscreen: {
32
+ type: Boolean,
33
+ default: void 0
34
+ },
35
+ defaultFullscreen: {
36
+ type: Boolean,
37
+ default: !1
38
+ },
39
+ height: {
40
+ type: [String, Number],
41
+ default: ""
42
+ },
43
+ loading: {
44
+ type: Boolean,
45
+ default: void 0
46
+ },
47
+ defaultLoading: {
48
+ type: Boolean,
49
+ default: !1
50
+ }
51
+ },
52
+ emits: [
53
+ "update:collapsed",
54
+ "collapse-change",
55
+ "update:fullscreen",
56
+ "fullscreen-change",
57
+ "update:loading",
58
+ "loading-change"
59
+ ],
60
+ setup(o, { emit: A }) {
61
+ let j = o, M = A, N = g(), P = e(() => !!N.footer), F = u(j.defaultLoading), I = e(() => j.loading !== void 0), L = e(() => I.value ? j.loading : F.value);
62
+ v(() => j.loading, (e) => {
63
+ e !== void 0 && (F.value = e);
64
+ });
65
+ let R = e(() => {
66
+ if (!j.height) return 3;
67
+ let e = typeof j.height == "number" ? j.height : parseFloat(j.height);
68
+ if (isNaN(e)) return 3;
69
+ let t = e - 48;
70
+ return Math.max(2, Math.floor(t / 32));
71
+ }), z = e(() => {
72
+ let e = {};
73
+ return j.height && !W.value && (e.height = typeof j.height == "number" ? `${j.height}px` : j.height), e;
74
+ }), B = u(j.defaultCollapsed), V = e(() => j.collapsed !== void 0), H = e(() => V.value ? j.collapsed : B.value);
75
+ v(() => j.collapsed, (e) => {
76
+ e !== void 0 && (B.value = e);
77
+ });
78
+ let U = () => {
79
+ let e = !H.value;
80
+ V.value || (B.value = e), M("update:collapsed", e), M("collapse-change", e);
81
+ }, W = u(j.defaultFullscreen), G = e(() => j.fullscreen !== void 0), K = e(() => G.value ? j.fullscreen : W.value);
82
+ v(() => j.fullscreen, (e) => {
83
+ e !== void 0 && (W.value = e);
84
+ });
85
+ let q = () => {
86
+ let e = !K.value;
87
+ G.value || (W.value = e), M("update:fullscreen", e), M("fullscreen-change", e);
88
+ }, J = e(() => {
89
+ let { title: e, collapsible: t, defaultCollapsed: n, collapsed: r, fullscreenable: i, fullscreen: a, defaultFullscreen: o, height: s, loading: c, defaultLoading: l, ...u } = j;
90
+ return { ...u };
91
+ });
92
+ return (e, o) => {
93
+ let u = f("a-button"), g = f("a-skeleton"), v = f("a-card");
94
+ return l(), t(v, s(J.value, {
95
+ style: z.value,
96
+ class: ["me-card", {
97
+ "me-card--collapsed": B.value,
98
+ "me-card--fullscreen": W.value,
99
+ "me-card--collapsible": j.collapsible,
100
+ "me-card--fullscreenable": j.fullscreenable,
101
+ "me-card--has-height": !!j.height,
102
+ "me-card--has-footer": P.value,
103
+ "me-card--loading": L.value
104
+ }]
105
+ }), {
106
+ title: y(() => [i("div", w, [d(e.$slots, "title", {}, () => [i("span", T, m(j.title), 1)]), i("div", E, [
107
+ d(e.$slots, "actions"),
108
+ d(e.$slots, "extra"),
109
+ j.fullscreenable ? (l(), t(u, {
110
+ key: 0,
111
+ type: "text",
112
+ size: "small",
113
+ class: "me-card__action-btn",
114
+ onClick: q
115
+ }, {
116
+ default: y(() => [(l(), t(p(W.value ? h(C) : h(S)), { size: 16 }))]),
117
+ _: 1
118
+ })) : n("", !0),
119
+ j.collapsible ? (l(), t(u, {
120
+ key: 1,
121
+ type: "text",
122
+ size: "small",
123
+ class: c(["me-card__action-btn", { "me-card__collapse-btn--collapsed": B.value }]),
124
+ onClick: U
125
+ }, {
126
+ default: y(() => [a(h(x), {
127
+ size: 16,
128
+ class: "me-card__collapse-icon"
129
+ })]),
130
+ _: 1
131
+ }, 8, ["class"])) : n("", !0)
132
+ ])])]),
133
+ default: y(() => [b(i("div", D, [i("div", O, [L.value ? (l(), t(g, {
134
+ key: 0,
135
+ active: "",
136
+ rows: R.value,
137
+ title: !1
138
+ }, {
139
+ default: y(() => [d(e.$slots, "default")]),
140
+ _: 3
141
+ }, 8, ["rows"])) : d(e.$slots, "default", {}, void 0, void 0, 1)]), P.value ? (l(), r("div", k, [d(e.$slots, "footer")])) : n("", !0)], 512), [[_, !B.value]])]),
142
+ _: 3
143
+ }, 16, ["style", "class"]);
144
+ };
145
+ }
146
+ });
147
+ //#endregion
148
+ //#region src/components/card/index.ts
149
+ A.install = (e) => {
150
+ e.component("MeCard", A);
151
+ };
152
+ var j = A;
153
+ //#endregion
154
+ export { A as MeCard, j as default };