@me-framework/me-ui-antdv-next 0.0.24 → 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 +2 -2
  34. package/dist/me-ui-antdv-next.umd.cjs +2 -2
  35. package/dist/menu/index.js +465 -0
  36. package/dist/menu.css +1 -0
  37. package/dist/message/index.js +2 -0
  38. package/dist/message.css +1 -0
  39. package/dist/modal/index.js +2 -0
  40. package/dist/modal.css +1 -0
  41. package/dist/nav/index.js +560 -0
  42. package/dist/nav.css +1 -0
  43. package/dist/resolver/index.d.ts +7 -0
  44. package/dist/resolver/index.js +36 -0
  45. package/dist/resolver/resolver-map.d.ts +6 -0
  46. package/dist/resolver/resolver-type.d.ts +19 -0
  47. package/dist/resolver.d.ts +2 -0
  48. package/dist/shims-vue.d.ts +3 -0
  49. package/dist/skeleton/index.js +141 -0
  50. package/dist/skeleton.css +1 -0
  51. package/dist/{me-ui-antdv-next.css → style.css} +1 -1
  52. package/dist/styles/base.d.ts +0 -0
  53. package/dist/tree-menu/index.js +890 -0
  54. package/dist/tree-menu.css +1 -0
  55. package/package.json +15 -6
  56. package/dist/{components/body → body}/index.d.ts +0 -0
  57. package/dist/{components/body → body}/types.d.ts +0 -0
  58. package/dist/{components/box → box}/index.d.ts +0 -0
  59. package/dist/{components/box → box}/index.vue.d.ts +2 -2
  60. package/dist/{components/box → box}/types.d.ts +0 -0
  61. package/dist/{components/breadcrumb → breadcrumb}/index.d.ts +0 -0
  62. package/dist/{components/breadcrumb → breadcrumb}/index.vue.d.ts +0 -0
  63. package/dist/{components/breadcrumb → breadcrumb}/types.d.ts +0 -0
  64. package/dist/{components/card → card}/index.d.ts +0 -0
  65. package/dist/{components/card → card}/index.vue.d.ts +4 -4
  66. package/dist/{components/card → card}/types.d.ts +0 -0
  67. package/dist/{components/icon → icon}/index.d.ts +0 -0
  68. package/dist/{components/icon → icon}/index.vue.d.ts +2 -2
  69. package/dist/{components/icon → icon}/types.d.ts +0 -0
  70. package/dist/{components/input-gps → input-gps}/index.d.ts +0 -0
  71. package/dist/{components/input-gps → input-gps}/index.vue.d.ts +0 -0
  72. package/dist/{components/input-gps → input-gps}/map.vue.d.ts +0 -0
  73. package/dist/{components/input-gps → input-gps}/types.d.ts +0 -0
  74. package/dist/{components/input-icon-selector → input-icon-selector}/index.d.ts +0 -0
  75. package/dist/{components/input-icon-selector → input-icon-selector}/index.vue.d.ts +5 -5
  76. package/dist/{components/input-icon-selector → input-icon-selector}/types.d.ts +0 -0
  77. package/dist/{components/input-radio → input-radio}/index.d.ts +0 -0
  78. package/dist/{components/input-radio → input-radio}/types.d.ts +0 -0
  79. package/dist/{components/load-json → load-json}/index.d.ts +0 -0
  80. package/dist/{components/load-json → load-json}/index.vue.d.ts +1 -1
  81. package/dist/{components/load-json → load-json}/types.d.ts +0 -0
  82. package/dist/{components/login-page → login-page}/index.d.ts +0 -0
  83. package/dist/{components/login-page → login-page}/index.vue.d.ts +0 -0
  84. package/dist/{components/login-page → login-page}/types.d.ts +0 -0
  85. package/dist/{components/menu → menu}/MenuTreeItem.vue.d.ts +0 -0
  86. package/dist/{components/menu → menu}/index.d.ts +0 -0
  87. package/dist/{components/menu → menu}/index.vue.d.ts +2 -2
  88. package/dist/{components/menu → menu}/types.d.ts +0 -0
  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
@@ -0,0 +1,465 @@
1
+ import e from "../icon/index.js";
2
+ import { Fragment as t, Transition as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, inject as u, normalizeClass as d, normalizeStyle as f, onMounted as p, onUnmounted as m, openBlock as h, provide as g, reactive as _, ref as v, renderList as y, renderSlot as b, resolveComponent as ee, toDisplayString as x, unref as S, vShow as C, watch as w, withCtx as T, withDirectives as E } from "vue";
3
+ import { ChevronDown as D, ChevronLeft as te, ChevronRight as O } from "@lucide/vue";
4
+ //#region src/components/menu/MenuTreeItem.vue?vue&type=script&setup=true&lang.ts
5
+ var ne = { class: "me-menu__tree-text" }, re = { class: "me-menu__tree-children" }, k = { class: "me-menu__tree-text" }, A = /* @__PURE__ */ l({
6
+ name: "MenuTreeItem",
7
+ __name: "MenuTreeItem",
8
+ props: {
9
+ item: {},
10
+ level: {}
11
+ },
12
+ emits: ["click", "toggle"],
13
+ setup(l, { emit: p }) {
14
+ let m = u("meMenuCtx"), g = l, _ = p, v = (e) => e[m.keyField] ?? e.id, b = (e) => !(!m.showHidden && e.hideFlag || e.meta?.hideMenu || m.hideDisabled && !e.enableFlag), w = r(() => !g.item.children || g.item.meta?.hideChildrenMenu ? [] : g.item.children.filter((e) => b(e)).sort((e, t) => e.sort - t.sort)), te = r(() => w.value.length > 0), O = r(() => m.selectedId === v(g.item)), A = r(() => m.expandedSections.has(v(g.item))), ie = () => {
15
+ g.item.enableFlag && _("toggle", v(g.item));
16
+ }, ae = () => {
17
+ g.item.enableFlag && _("click", g.item);
18
+ }, j = (e) => {
19
+ if (e) return {
20
+ danger: "error",
21
+ info: "default",
22
+ primary: "blue",
23
+ success: "success",
24
+ warning: "warning"
25
+ }[e] || e;
26
+ };
27
+ return (r, u) => {
28
+ let p = ee("a-badge"), m = ee("MenuTreeItem", !0);
29
+ return te.value ? (h(), o(t, { key: 0 }, [s("div", {
30
+ class: d(["me-menu__tree-item me-menu__tree-item--expandable", {
31
+ "is-active": O.value,
32
+ "is-disabled": !l.item.enableFlag,
33
+ "is-expanded": A.value
34
+ }]),
35
+ style: f({ paddingLeft: `${l.level * 16 + 16}px` }),
36
+ onClick: ie
37
+ }, [
38
+ u[2] ||= s("span", { class: "me-menu__tree-indent" }, null, -1),
39
+ l.item.icon ? (h(), i(S(e), {
40
+ key: 0,
41
+ name: l.item.icon,
42
+ size: 16,
43
+ class: "me-menu__tree-icon"
44
+ }, null, 8, ["name"])) : a("", !0),
45
+ s("span", ne, x(l.item.title), 1),
46
+ l.item.meta?.badge || l.item.meta?.dot ? (h(), i(p, {
47
+ key: 1,
48
+ count: l.item.meta?.dot ? void 0 : l.item.meta?.badge,
49
+ dot: !!l.item.meta?.dot,
50
+ color: j(l.item.meta?.badgeColor),
51
+ class: "me-menu__tree-badge"
52
+ }, null, 8, [
53
+ "count",
54
+ "dot",
55
+ "color"
56
+ ])) : a("", !0),
57
+ c(S(D), {
58
+ class: "me-menu__tree-arrow",
59
+ size: 12
60
+ })
61
+ ], 6), c(n, { name: "me-menu-tree" }, {
62
+ default: T(() => [E(s("div", re, [(h(!0), o(t, null, y(w.value, (e) => (h(), i(m, {
63
+ key: v(e),
64
+ item: e,
65
+ level: l.level + 1,
66
+ onClick: u[0] ||= (e) => _("click", e),
67
+ onToggle: u[1] ||= (e) => _("toggle", e)
68
+ }, null, 8, ["item", "level"]))), 128))], 512), [[C, A.value]])]),
69
+ _: 1
70
+ })], 64)) : (h(), o("div", {
71
+ key: 1,
72
+ class: d(["me-menu__tree-item", {
73
+ "is-active": O.value,
74
+ "is-disabled": !l.item.enableFlag
75
+ }]),
76
+ style: f({ paddingLeft: `${l.level * 16 + 16}px` }),
77
+ onClick: ae
78
+ }, [
79
+ u[3] ||= s("span", { class: "me-menu__tree-indent" }, null, -1),
80
+ l.item.icon ? (h(), i(S(e), {
81
+ key: 0,
82
+ name: l.item.icon,
83
+ size: 16,
84
+ class: "me-menu__tree-icon"
85
+ }, null, 8, ["name"])) : a("", !0),
86
+ s("span", k, x(l.item.title), 1),
87
+ l.item.meta?.badge || l.item.meta?.dot ? (h(), i(p, {
88
+ key: 1,
89
+ count: l.item.meta?.dot ? void 0 : l.item.meta?.badge,
90
+ dot: !!l.item.meta?.dot,
91
+ color: j(l.item.meta?.badgeColor),
92
+ class: "me-menu__tree-badge"
93
+ }, null, 8, [
94
+ "count",
95
+ "dot",
96
+ "color"
97
+ ])) : a("", !0)
98
+ ], 6));
99
+ };
100
+ }
101
+ }), ie = { class: "me-menu__logo" }, ae = { class: "me-menu__left-list" }, j = {
102
+ key: 0,
103
+ class: "me-menu__divider"
104
+ }, oe = ["onClick"], se = { class: "me-menu__left-title" }, ce = { class: "me-menu__footer" }, le = { class: "me-menu__right-inner" }, ue = { class: "me-menu__section" }, de = ["onClick"], fe = { class: "me-menu__section-title" }, pe = { class: "me-menu__section-body" }, me = { class: "me-menu__section" }, he = ["onClick"], ge = { class: "me-menu__section-title" }, _e = { class: "me-menu__section-body" }, ve = ["onClick"], ye = { class: "me-menu__item-text" }, M = /* @__PURE__ */ l({
105
+ name: "MeMenu",
106
+ __name: "index",
107
+ props: {
108
+ data: { default: () => [] },
109
+ activeId: { default: "" },
110
+ defaultActiveId: { default: "" },
111
+ selectedId: { default: "" },
112
+ defaultSelectedId: { default: "" },
113
+ router: {
114
+ type: Boolean,
115
+ default: !1
116
+ },
117
+ leftWidth: { default: 100 },
118
+ rightWidth: { default: 220 },
119
+ hideDisabled: {
120
+ type: Boolean,
121
+ default: !0
122
+ },
123
+ showHidden: {
124
+ type: Boolean,
125
+ default: !1
126
+ },
127
+ height: { default: "100%" },
128
+ background: { default: "" },
129
+ keyField: { default: "id" },
130
+ rightCollapsed: { type: Boolean },
131
+ showRightToggle: {
132
+ type: Boolean,
133
+ default: !0
134
+ },
135
+ collapseDuration: {},
136
+ collapseAnimation: {}
137
+ },
138
+ emits: [
139
+ "update:activeId",
140
+ "update:selectedId",
141
+ "select",
142
+ "change",
143
+ "update:rightCollapsed"
144
+ ],
145
+ setup(l, { expose: ne, emit: re }) {
146
+ let k = l, M = re, N = u("router", null);
147
+ g("meMenuCtx", _({
148
+ get keyField() {
149
+ return k.keyField;
150
+ },
151
+ get hideDisabled() {
152
+ return k.hideDisabled;
153
+ },
154
+ get showHidden() {
155
+ return k.showHidden;
156
+ },
157
+ get selectedId() {
158
+ return q.value;
159
+ },
160
+ get expandedSections() {
161
+ return I.value;
162
+ }
163
+ }));
164
+ let P = v(k.defaultActiveId || k.activeId), F = v(k.defaultSelectedId || k.selectedId), I = v(/* @__PURE__ */ new Set()), L = v(k.rightCollapsed);
165
+ w(() => k.activeId, (e) => {
166
+ e && (P.value = e);
167
+ }), w(() => k.selectedId, (e) => {
168
+ e && (F.value = e);
169
+ }), w(() => k.rightCollapsed, (e) => {
170
+ L.value = e;
171
+ });
172
+ let be = v(!1), xe = () => {
173
+ typeof document < "u" && (be.value = document.documentElement.classList.contains("dark"));
174
+ }, R = null;
175
+ p(() => {
176
+ xe(), typeof document < "u" && (R = new MutationObserver(() => {
177
+ xe();
178
+ }), R.observe(document.documentElement, {
179
+ attributes: !0,
180
+ attributeFilter: ["class"]
181
+ }));
182
+ }), m(() => {
183
+ R?.disconnect(), R = null;
184
+ });
185
+ let Se = r(() => typeof k.height == "number" ? `${k.height}px` : k.height), Ce = r(() => {
186
+ if (!k.background) return {};
187
+ let e = k.background.trim();
188
+ return e.startsWith("http://") || e.startsWith("https://") || e.startsWith("data:") ? {
189
+ backgroundImage: be.value ? `linear-gradient(rgb(0 0 0 / 70%), rgb(0 0 0 / 80%)), url(${e})` : `url(${e})`,
190
+ backgroundSize: "cover"
191
+ } : { background: e };
192
+ }), z = r(() => L.value), B = r(() => K.value.length > 0), we = r(() => typeof k.leftWidth == "number" ? `${k.leftWidth}px` : k.leftWidth), Te = r(() => typeof k.rightWidth == "number" ? `${k.rightWidth}px` : k.rightWidth), Ee = r(() => {
193
+ let e = {};
194
+ if (k.collapseDuration !== void 0) {
195
+ let t = k.collapseDuration;
196
+ e["--me-menu-transition-duration"] = typeof t == "number" || /^\d+(\.\d+)?$/.test(t) ? `${t}ms` : t;
197
+ }
198
+ return k.collapseAnimation !== void 0 && (e["--me-menu-transition-timing"] = k.collapseAnimation), e;
199
+ }), De = v(0), Oe = r(() => {
200
+ let e = Number.parseFloat(String(k.leftWidth)) || 0, t = Number.parseFloat(String(k.rightWidth)) || 0;
201
+ return {
202
+ left: `${(B.value && !L.value ? e + t : e) - 8}px`,
203
+ top: `${De.value}px`
204
+ };
205
+ }), V = v(!1), ke = (e) => {
206
+ if (!k.showRightToggle || !B.value) return;
207
+ let t = e.currentTarget, n = t.querySelector(".me-menu__right"), r = n && n.offsetParent !== null ? n : t.querySelector(".me-menu__left");
208
+ if (!r) return;
209
+ let i = r.getBoundingClientRect(), a = Math.abs(e.clientX - i.right) <= 16;
210
+ if (a && !V.value) {
211
+ let n = t.getBoundingClientRect();
212
+ De.value = Math.max(36, Math.min(e.clientY - n.top, n.height - 8 - 28));
213
+ }
214
+ V.value = a;
215
+ }, Ae = () => {
216
+ V.value = !1;
217
+ }, H = (e) => e[k.keyField] ?? e.id, U = (e) => !(!k.showHidden && e.hideFlag || e.meta?.hideMenu || k.hideDisabled && !e.enableFlag), W = r(() => k.data.filter((e) => e.parentId === "0" && U(e)).sort((e, t) => e.sort - t.sort)), G = r(() => P.value ? P.value : k.activeId ? k.activeId : k.defaultActiveId ? k.defaultActiveId : W.value[0] ? H(W.value[0]) : ""), je = r(() => G.value && W.value.find((e) => H(e) === G.value) || null), K = r(() => je.value?.children ? je.value.children.filter((e) => U(e)).sort((e, t) => e.sort - t.sort) : []), q = r(() => F.value ? F.value : k.selectedId ? k.selectedId : k.defaultSelectedId ? k.defaultSelectedId : ""), Me = r(() => q.value ? J(k.data, q.value) : null);
218
+ w(() => q.value, (e) => {
219
+ if (!e) return;
220
+ Fe(e);
221
+ let t = Ie(e);
222
+ if (t && !Re(t)) {
223
+ let e = ze(t);
224
+ if (e) {
225
+ let t = H(e);
226
+ F.value = t, M("update:selectedId", t), M("select", e), Q(e);
227
+ }
228
+ }
229
+ });
230
+ let Ne = (e) => {
231
+ if (e) return {
232
+ danger: "error",
233
+ info: "default",
234
+ primary: "blue",
235
+ success: "success",
236
+ warning: "warning"
237
+ }[e] || e;
238
+ }, J = (e, t) => {
239
+ for (let n of e) {
240
+ if (H(n) === t) return n;
241
+ if (n.children && n.children.length > 0) {
242
+ let e = J(n.children, t);
243
+ if (e) return e;
244
+ }
245
+ }
246
+ return null;
247
+ }, Y = (e) => !e.children || e.meta?.hideChildrenMenu ? [] : e.children.filter((e) => U(e)).sort((e, t) => e.sort - t.sort), X = (e) => {
248
+ I.value.has(e) ? I.value.delete(e) : I.value.add(e);
249
+ }, Z = (e) => I.value.has(e), Pe = (e, t = K.value) => {
250
+ for (let n of t) {
251
+ let t = Y(n);
252
+ if (t.some((t) => H(t) === e)) return [H(n)];
253
+ if (t.length > 0) {
254
+ let r = Pe(e, t);
255
+ if (r.length > 0) return [H(n), ...r];
256
+ }
257
+ }
258
+ return [];
259
+ }, Fe = (e) => {
260
+ Pe(e).forEach((e) => {
261
+ I.value.add(e);
262
+ });
263
+ }, Ie = (e) => {
264
+ if (!e || !K.value) return null;
265
+ for (let t of K.value) {
266
+ if (H(t) === e) return t;
267
+ let n = Y(t);
268
+ if (n.length > 0) {
269
+ let t = J(n, e);
270
+ if (t) return t;
271
+ }
272
+ }
273
+ return null;
274
+ }, Le = (e) => {
275
+ if (e.length === 0) return null;
276
+ let t = e[0], n = Y(t);
277
+ return n.length > 0 ? (I.value.add(H(t)), Le(n)) : t;
278
+ }, Q = (e) => {
279
+ if (!k.router || !N) return;
280
+ let t = e.meta?.path;
281
+ t && N.push(t);
282
+ }, Re = (e) => e.meta?.type !== "group" && Y(e).length === 0, ze = (e) => {
283
+ if (Re(e)) return e;
284
+ let t = Y(e);
285
+ return t.length === 0 ? null : Le(t);
286
+ };
287
+ w(() => G.value, () => {
288
+ let e = k.selectedId || F.value || k.defaultSelectedId, t = Ie(e);
289
+ if (t && K.value.length > 0) {
290
+ if (Fe(e), Re(t)) {
291
+ F.value !== e && (F.value = e);
292
+ return;
293
+ }
294
+ let n = ze(t);
295
+ if (n) {
296
+ let e = H(n);
297
+ F.value = e, M("update:selectedId", e), M("select", n), Q(n);
298
+ return;
299
+ }
300
+ }
301
+ let n = Le(K.value);
302
+ if (n) {
303
+ let e = H(n);
304
+ F.value = e, M("update:selectedId", e), M("select", n), Q(n);
305
+ } else F.value = "", M("update:selectedId", "");
306
+ }, { immediate: !0 });
307
+ let Be = () => {
308
+ L.value = !L.value, M("update:rightCollapsed", L.value);
309
+ }, Ve = (e) => {
310
+ if (!e.enableFlag) return;
311
+ let t = H(e);
312
+ if (P.value === t) {
313
+ Be();
314
+ return;
315
+ }
316
+ P.value = t, F.value = "", L.value = !1, M("update:rightCollapsed", !1), M("update:activeId", t), M("change", e);
317
+ }, $ = (e) => {
318
+ if (!e.enableFlag) return;
319
+ let t = H(e);
320
+ F.value = t, M("update:selectedId", t), M("select", e), Q(e);
321
+ };
322
+ return ne({
323
+ setBadge: (e, t, n) => {
324
+ let r = J(k.data, e);
325
+ r && (r.meta ||= {}, t === !0 ? (r.meta.dot = !0, r.meta.badge = "") : (r.meta.badge = String(t), r.meta.dot = !1), n && (r.meta.badgeColor = n));
326
+ },
327
+ removeBadge: (e) => {
328
+ let t = J(k.data, e);
329
+ !t || !t.meta || (t.meta.badge = "", t.meta.dot = !1);
330
+ },
331
+ selectedItem: Me,
332
+ toggleRightCollapse: Be,
333
+ rightCollapsed: z
334
+ }), (r, u) => {
335
+ let p = ee("a-badge");
336
+ return h(), o("div", {
337
+ class: "me-menu",
338
+ style: f({
339
+ height: Se.value,
340
+ ...Ee.value
341
+ }),
342
+ onMousemove: ke,
343
+ onMouseleave: Ae
344
+ }, [
345
+ s("div", {
346
+ class: "me-menu__left",
347
+ style: f({
348
+ width: we.value,
349
+ ...Ce.value
350
+ })
351
+ }, [
352
+ s("div", ie, [b(r.$slots, "logo", {}, () => [u[0] ||= s("span", { class: "me-menu__logo-text" }, "MeMenu", -1)])]),
353
+ s("div", ae, [(h(!0), o(t, null, y(W.value, (n) => (h(), o(t, { key: H(n) }, [n.meta?.divider ? (h(), o("div", j)) : a("", !0), s("div", {
354
+ class: d(["me-menu__left-item", {
355
+ "is-active": G.value === H(n),
356
+ "is-disabled": !n.enableFlag
357
+ }]),
358
+ onClick: (e) => Ve(n)
359
+ }, [
360
+ n.icon ? (h(), i(S(e), {
361
+ key: 0,
362
+ name: n.icon,
363
+ size: 16,
364
+ class: "me-menu__left-icon"
365
+ }, null, 8, ["name"])) : a("", !0),
366
+ s("span", se, x(n.title), 1),
367
+ n.meta?.badge || n.meta?.dot ? (h(), i(p, {
368
+ key: 1,
369
+ count: n.meta?.dot ? void 0 : n.meta?.badge,
370
+ dot: !!n.meta?.dot,
371
+ color: Ne(n.meta?.badgeColor),
372
+ class: "me-menu__left-badge"
373
+ }, null, 8, [
374
+ "count",
375
+ "dot",
376
+ "color"
377
+ ])) : a("", !0)
378
+ ], 10, oe)], 64))), 128))]),
379
+ s("div", ce, [b(r.$slots, "footer")]),
380
+ u[1] ||= s("div", { class: "me-menu__decoration" }, null, -1)
381
+ ], 4),
382
+ E(s("div", {
383
+ class: d(["me-menu__right", { "is-collapsed": L.value }]),
384
+ style: f({ "--me-menu-right-width": Te.value })
385
+ }, [s("div", le, [(h(!0), o(t, null, y(K.value, (r) => (h(), o(t, { key: H(r) }, [r.meta?.type === "group" ? (h(), o(t, { key: 0 }, [s("div", ue, [s("div", {
386
+ class: "me-menu__section-header",
387
+ onClick: (e) => X(H(r))
388
+ }, [c(S(D), {
389
+ class: d(["me-menu__section-arrow", { "is-expanded": Z(H(r)) }]),
390
+ size: 12
391
+ }, null, 8, ["class"]), s("span", fe, x(r.title), 1)], 8, de), c(n, { name: "me-menu-section" }, {
392
+ default: T(() => [E(s("div", pe, [(h(!0), o(t, null, y(Y(r), (e) => (h(), i(A, {
393
+ key: H(e),
394
+ item: e,
395
+ level: 0,
396
+ onClick: $,
397
+ onToggle: X
398
+ }, null, 8, ["item"]))), 128))], 512), [[C, Z(H(r))]])]),
399
+ _: 2
400
+ }, 1024)]), u[2] ||= s("div", { class: "me-menu__section-divider" }, null, -1)], 64)) : Y(r).length > 0 ? (h(), o(t, { key: 1 }, [s("div", me, [s("div", {
401
+ class: "me-menu__section-header",
402
+ onClick: (e) => X(H(r))
403
+ }, [c(S(D), {
404
+ class: d(["me-menu__section-arrow", { "is-expanded": Z(H(r)) }]),
405
+ size: 12
406
+ }, null, 8, ["class"]), s("span", ge, x(r.title), 1)], 8, he), c(n, { name: "me-menu-section" }, {
407
+ default: T(() => [E(s("div", _e, [(h(!0), o(t, null, y(Y(r), (e) => (h(), i(A, {
408
+ key: H(e),
409
+ item: e,
410
+ level: 0,
411
+ onClick: $,
412
+ onToggle: X
413
+ }, null, 8, ["item"]))), 128))], 512), [[C, Z(H(r))]])]),
414
+ _: 2
415
+ }, 1024)]), u[3] ||= s("div", { class: "me-menu__section-divider" }, null, -1)], 64)) : (h(), o("div", {
416
+ key: 2,
417
+ class: d(["me-menu__item me-menu__item--standalone", {
418
+ "is-active": q.value === H(r),
419
+ "is-disabled": !r.enableFlag
420
+ }]),
421
+ onClick: (e) => $(r)
422
+ }, [
423
+ r.icon ? (h(), i(S(e), {
424
+ key: 0,
425
+ name: r.icon,
426
+ size: 16,
427
+ class: "me-menu__item-icon"
428
+ }, null, 8, ["name"])) : a("", !0),
429
+ s("span", ye, x(r.title), 1),
430
+ r.meta?.badge || r.meta?.dot ? (h(), i(p, {
431
+ key: 1,
432
+ count: r.meta?.dot ? void 0 : r.meta?.badge,
433
+ dot: !!r.meta?.dot,
434
+ color: Ne(r.meta?.badgeColor),
435
+ class: "me-menu__item-badge"
436
+ }, null, 8, [
437
+ "count",
438
+ "dot",
439
+ "color"
440
+ ])) : a("", !0)
441
+ ], 10, ve))], 64))), 128))])], 6), [[C, B.value]]),
442
+ l.showRightToggle ? (h(), o("div", {
443
+ key: 0,
444
+ class: d(["me-menu__right-toggle", { "is-visible": V.value }]),
445
+ style: f(Oe.value),
446
+ onClick: Be
447
+ }, [b(r.$slots, "right-toggle", { collapsed: z.value }, () => [z.value ? (h(), i(S(O), {
448
+ key: 0,
449
+ size: 14
450
+ })) : (h(), i(S(te), {
451
+ key: 1,
452
+ size: 14
453
+ }))])], 6)) : a("", !0)
454
+ ], 36);
455
+ };
456
+ }
457
+ });
458
+ //#endregion
459
+ //#region src/components/menu/index.ts
460
+ M.install = (e) => {
461
+ e.component("MeMenu", M);
462
+ };
463
+ var N = M;
464
+ //#endregion
465
+ export { M as MeMenu, N as default };
package/dist/menu.css ADDED
@@ -0,0 +1 @@
1
+ .me-menu{--me-menu-sidebar-text:var(--me-color-primary-text);--me-menu-sidebar-text-secondary:#ffffffe6;--me-menu-sidebar-hover-bg:#ffffff1a;--me-menu-sidebar-active-bg:#00000040;--me-menu-sidebar-divider:#ffffff26;--me-menu-sidebar-scrollbar:#ffffff80;--me-menu-sidebar-scrollbar-hover:#ffffffb3;--me-menu-right-bg:var(--me-bg-color);--me-menu-item-text:var(--me-text-regular);--me-menu-item-hover-bg:var(--me-fill-color-light);--me-menu-item-hover-text:var(--me-text-primary);--me-menu-item-active-bg:var(--me-color-primary-light-9);--me-menu-item-active-text:var(--me-color-primary);--me-menu-item-icon:var(--me-text-secondary);--me-menu-section-text:var(--me-text-primary);--me-menu-right-border-color:#efeff1;--me-menu-right-toggle-bg:var(--me-menu-item-hover-bg);--me-menu-right-toggle-color:var(--me-menu-item-icon);--me-menu-right-toggle-hover-bg:var(--me-menu-item-active-bg);--me-menu-right-toggle-hover-color:var(--me-menu-item-active-text);--me-menu-transition-duration:.2s;--me-menu-transition-timing:cubic-bezier(.645, .045, .355, 1);height:100%;display:flex;position:relative}.me-menu__left{background:linear-gradient(180deg, var(--me-color-primary-dark-2) 0%, var(--me-color-primary) 50%, var(--me-color-primary-dark-2) 100%);height:100%;color:var(--me-menu-sidebar-text);z-index:1;flex-direction:column;flex-shrink:0;transition:width .2s cubic-bezier(.645,.045,.355,1);display:flex;position:relative;overflow:hidden}.me-menu__logo{height:64px;font-size:var(--me-font-size-extra-large);color:var(--me-menu-sidebar-text);letter-spacing:1px;flex-shrink:0;justify-content:center;align-items:center;padding:0 20px;font-weight:700;display:flex}.me-menu__logo-text{font-size:var(--me-font-size-extra-large);font-weight:700}.me-menu__left-list{flex:1;min-height:0;overflow:hidden auto}.me-menu__left-list::-webkit-scrollbar{background:0 0;width:4px}.me-menu__left-list::-webkit-scrollbar-track{background:0 0}.me-menu__left-list::-webkit-scrollbar-thumb{background-color:var(--me-menu-sidebar-scrollbar);border-radius:2px}.me-menu__left-list::-webkit-scrollbar-thumb:hover{background-color:var(--me-menu-sidebar-scrollbar-hover)}.me-menu__left-item{cursor:pointer;font-size:var(--me-font-size-base);color:var(--me-menu-sidebar-text-secondary);align-items:center;gap:4px;padding:12px 20px;transition:all .2s cubic-bezier(.645,.045,.355,1);display:flex;position:relative}.me-menu__left-item:hover{background-color:var(--me-menu-sidebar-hover-bg);color:var(--me-menu-sidebar-text)}.me-menu__left-item.is-active{background-color:var(--me-menu-sidebar-active-bg);color:var(--me-menu-sidebar-text);font-weight:500}.me-menu__left-item.is-active:after{content:"";border-top:8px solid #0000;border-bottom:8px solid #0000;border-right:8px solid var(--me-bg-color);width:0;height:0;position:absolute;top:50%;right:0;transform:translateY(-50%)}.me-menu__left-item.is-disabled{cursor:not-allowed;opacity:.5}.me-menu__left-item.is-disabled:hover{color:var(--me-menu-sidebar-text-secondary);background-color:#0000}.me-menu__left-icon{flex-shrink:0;width:16px;height:16px}.me-menu__left-title{font-size:var(--me-font-size-base);white-space:nowrap;text-overflow:ellipsis;flex:1;line-height:1.4;overflow:hidden}.me-menu__left-badge{flex-shrink:0;margin-left:auto}.me-menu__divider{background-color:var(--me-menu-sidebar-divider);height:1px;margin:8px 16px}.me-menu__footer{z-index:2;flex-shrink:0;padding:16px 20px;position:relative}.me-menu__decoration{pointer-events:none;z-index:0;background:linear-gradient(135deg,#0000 50%,#ffffff0a 50%) 0 100%/100% 120px no-repeat,linear-gradient(-135deg,#0000 50%,#ffffff08 50%) 100% 100%/100% 100px no-repeat,radial-gradient(circle at 20% 30%,#ffffff26 3px,#0000 3px),radial-gradient(circle at 80%,#ffffff1a 2px,#0000 2px),radial-gradient(circle at 50% 70%,#ffffff14 2px,#0000 2px);height:200px;position:absolute;bottom:0;left:0;right:0}.me-menu__right{border-right:solid 1px var(--me-menu-right-border-color);height:100%;width:var(--me-menu-right-width,220px);background-color:var(--me-menu-right-bg);transition:width var(--me-menu-transition-duration) var(--me-menu-transition-timing);flex-shrink:0;overflow:hidden auto}.me-menu__right.is-collapsed{border-right:none;width:0}.me-menu__right::-webkit-scrollbar{width:6px}.me-menu__right::-webkit-scrollbar-thumb{background:var(--me-border-color);border-radius:3px}.me-menu__right-inner{width:var(--me-menu-right-width,220px);padding:10px}.me-menu__right-toggle{z-index:1000;border-radius:var(--me-border-radius-base);background-color:var(--me-menu-right-toggle-bg);width:16px;height:56px;color:var(--me-menu-right-toggle-color);cursor:pointer;opacity:0;visibility:hidden;transition:opacity var(--me-menu-transition-duration) var(--me-menu-transition-timing), visibility var(--me-menu-transition-duration) var(--me-menu-transition-timing), transform var(--me-menu-transition-duration) var(--me-menu-transition-timing), left var(--me-menu-transition-duration) var(--me-menu-transition-timing), color var(--me-menu-transition-duration) var(--me-menu-transition-timing), background-color var(--me-menu-transition-duration) var(--me-menu-transition-timing);justify-content:center;align-items:center;display:flex;position:absolute;transform:translateY(-50%)scale(.7);box-shadow:0 0 6px #0000001f}.me-menu__right-toggle.is-visible{opacity:1;visibility:visible;transform:translateY(-50%)scale(1)}.me-menu__right-toggle:hover{color:var(--me-menu-right-toggle-hover-color);background-color:var(--me-menu-right-toggle-hover-bg)}.me-menu__section{margin-bottom:4px}.me-menu__section-header{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--me-font-size-base);color:var(--me-menu-section-text);align-items:center;gap:6px;padding:8px 4px;font-weight:600;transition:color .2s cubic-bezier(.645,.045,.355,1);display:flex}.me-menu__section-header:hover{color:var(--me-color-primary)}.me-menu__section-arrow{color:var(--me-menu-section-text);flex-shrink:0;transition:transform .2s cubic-bezier(.645,.045,.355,1);display:inline-block}.me-menu__section-arrow:not(.is-expanded){transform:rotate(-90deg)}.me-menu__section-title{font-size:var(--me-font-size-base);font-weight:600}.me-menu__section-body{overflow:hidden}.me-menu .me-menu-section-enter-active,.me-menu .me-menu-section-leave-active{transition:all .25s cubic-bezier(.645,.045,.355,1);overflow:hidden}.me-menu .me-menu-section-enter-from,.me-menu .me-menu-section-leave-to{opacity:0;max-height:0}.me-menu .me-menu-section-enter-to,.me-menu .me-menu-section-leave-from{opacity:1;max-height:2000px}.me-menu__section-divider{background-color:var(--me-border-color-light);height:1px;margin:8px 0}.me-menu__item{border-radius:var(--me-border-radius-base);cursor:pointer;font-size:var(--me-font-size-base);color:var(--me-menu-item-text);align-items:center;gap:6px;margin:4px 0;padding:10px 16px;transition:all .2s cubic-bezier(.645,.045,.355,1);display:flex}.me-menu__item:hover{background-color:var(--me-menu-item-hover-bg);color:var(--me-menu-item-hover-text)}.me-menu__item.is-active{background-color:var(--me-menu-item-active-bg);color:var(--me-menu-item-active-text);font-weight:500}.me-menu__item.is-active .me-menu__item-icon{color:var(--me-menu-item-active-text)}.me-menu__item.is-disabled{cursor:not-allowed;opacity:.5}.me-menu__item.is-disabled:hover{color:var(--me-menu-item-text);background-color:#0000}.me-menu__item--standalone:first-child{margin-top:0}.me-menu__item-icon{width:16px;height:16px;color:var(--me-menu-item-icon);flex-shrink:0;transition:color .2s cubic-bezier(.645,.045,.355,1)}.me-menu__item-text{font-size:var(--me-font-size-base);white-space:nowrap;text-overflow:ellipsis;flex:1;line-height:1.4;overflow:hidden}.me-menu__item-badge{flex-shrink:0;margin-left:auto}.me-menu__tree-item{border-radius:var(--me-border-radius-base);cursor:pointer;font-size:var(--me-font-size-base);color:var(--me-menu-item-text);align-items:center;gap:6px;margin:2px 0;padding:8px 12px;transition:all .2s cubic-bezier(.645,.045,.355,1);display:flex}.me-menu__tree-item:hover{background-color:var(--me-menu-item-hover-bg);color:var(--me-menu-item-hover-text)}.me-menu__tree-item.is-active{background-color:var(--me-menu-item-active-bg);color:var(--me-menu-item-active-text);font-weight:500}.me-menu__tree-item.is-active .me-menu__tree-icon{color:var(--me-menu-item-active-text)}.me-menu__tree-item.is-disabled{cursor:not-allowed;opacity:.5}.me-menu__tree-item.is-disabled:hover{color:var(--me-menu-item-text);background-color:#0000}.me-menu__tree-item--expandable{font-weight:500}.me-menu__tree-item--expandable.is-expanded .me-menu__tree-arrow{transform:rotate(180deg)}.me-menu__tree-arrow{color:var(--me-menu-item-icon);flex-shrink:0;width:12px;height:12px;margin-left:4px;transition:transform .2s cubic-bezier(.645,.045,.355,1);transform:rotate(0)}.me-menu__tree-indent{flex-shrink:0;width:12px;height:12px}.me-menu__tree-icon{width:14px;height:14px;color:var(--me-menu-item-icon);flex-shrink:0;transition:color .2s cubic-bezier(.645,.045,.355,1)}.me-menu__tree-text{font-size:var(--me-font-size-base);white-space:nowrap;text-overflow:ellipsis;flex:1;line-height:1.4;overflow:hidden}.me-menu__tree-badge{flex-shrink:0;margin-left:auto}.me-menu__tree-children{overflow:hidden}.me-menu .me-menu-tree-enter-active,.me-menu .me-menu-tree-leave-active{transition:all .2s cubic-bezier(.645,.045,.355,1);overflow:hidden}.me-menu .me-menu-tree-enter-from,.me-menu .me-menu-tree-leave-to{opacity:0;max-height:0}.me-menu .me-menu-tree-enter-to,.me-menu .me-menu-tree-leave-from{opacity:1;max-height:1000px}.me-menu__empty{text-align:center;color:var(--me-menu-item-icon);font-size:var(--me-font-size-base);padding:60px 20px}html.dark .me-menu{--me-menu-right-bg:#171717;--me-menu-item-text:#b2b2b2;--me-menu-item-hover-bg:#323335;--me-menu-item-hover-text:#fff;--me-menu-item-active-bg:#232935;--me-menu-item-active-text:var(--me-color-primary);--me-menu-item-icon:#ffffff73;--me-menu-section-text:#ffffffe0;--me-menu-right-border-color:#323335}
@@ -0,0 +1,2 @@
1
+ import { n as e, t } from "../chunks/message-CPHX2tAR.js";
2
+ export { t as MeMessage, t as default, e as MeMessageComponent };
@@ -0,0 +1 @@
1
+ .me-message-modal .ant-modal-container,.me-message-modal .ant-modal{padding:0}.me-message-modal .ant-modal-content{border-radius:12px;padding:0;overflow:hidden}.me-message-modal .ant-modal-body{padding:0}.me-message-modal .ant-modal-footer{margin:0;background:0 0!important;border-top:none!important;padding:0!important}.me-message-modal .ant-modal-header{display:none}.me-message__header{color:var(--me-text-primary);padding:16px 24px;font-size:18px;font-weight:700;line-height:1.4}.me-message__body{color:var(--me-text-regular);padding:0 24px 24px;font-size:14px;line-height:24px}.me-message__footer{border-top:1px solid var(--me-border-color-light);background:var(--me-fill-color-light);box-sizing:border-box;border-radius:0 0 12px 12px;justify-content:space-between;align-items:center;width:100%;padding:10px 16px;display:flex}.me-message__actions{align-items:center;gap:8px;display:flex}.me-message__cancel,.me-message__confirm{height:38px;padding:0 18px;font-weight:700}.me-message__cancel.ant-btn-link,.me-message__cancel.ant-btn-link:active{color:var(--me-text-secondary)!important}.me-message__cancel.ant-btn-link:hover,.me-message__cancel.ant-btn-link:active:hover{color:var(--me-text-regular)!important}.me-message__confirm--success.ant-btn-primary{background:var(--me-color-success);border-color:var(--me-color-success)}.me-message__confirm--success.ant-btn-primary:hover{background:var(--me-color-success);opacity:.85}.me-message__confirm--warning.ant-btn-primary{background:var(--me-color-warning);border-color:var(--me-color-warning)}.me-message__confirm--warning.ant-btn-primary:hover{background:var(--me-color-warning);opacity:.85}.me-message__confirm--info.ant-btn-primary{background:var(--me-color-info);border-color:var(--me-color-info)}.me-message__confirm--info.ant-btn-primary:hover{background:var(--me-color-info);opacity:.85}
@@ -0,0 +1,2 @@
1
+ import { n as e, t } from "../chunks/modal-Dke8ng3P.js";
2
+ export { e as MeModal, t as default };
package/dist/modal.css ADDED
@@ -0,0 +1 @@
1
+ .me-modal-wrap--fullscreen .ant-modal-container{height:100vh;max-height:100vh;display:block;padding:0!important}.me-modal-wrap--fullscreen .ant-modal{max-width:100%!important;height:100vh!important;max-height:100vh!important;margin:0!important;padding-bottom:0!important;top:0!important}.me-modal-wrap--fullscreen .ant-modal-content{border-radius:0!important;grid-template-rows:auto 1fr auto!important;grid-template-columns:1fr!important;height:100vh!important;max-height:100vh!important;display:grid!important;overflow:hidden!important}.me-modal-wrap--fullscreen .ant-modal-header{border-radius:0!important;grid-area:1/1!important;width:auto!important;margin-bottom:0!important}.me-modal-wrap--fullscreen .ant-modal-body{padding-top:16px;padding-bottom:16px;grid-area:2/1!important;width:auto!important;min-height:0!important;overflow:auto!important}.me-modal-wrap--fullscreen .ant-modal-footer{border-radius:0!important;grid-area:3/1!important;width:auto!important;margin-top:0!important}.me-modal__title-row{width:100%}.me-modal__title-text{color:var(--me-text-primary);font-size:16px;font-weight:600;line-height:1.4}.ant-modal-header{position:relative}.ant-modal-header .me-modal__fullscreen-btn{cursor:pointer;color:#00000073;z-index:1;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;line-height:22px;transition:all .2s cubic-bezier(.645,.045,.355,1);display:inline-flex;position:absolute;top:50%;right:40px;transform:translateY(-50%)}.ant-modal-header .me-modal__fullscreen-btn:hover{color:#000000e0;background-color:#0000000f}html.dark .ant-modal-header .me-modal__fullscreen-btn{color:#ffffffa6}html.dark .ant-modal-header .me-modal__fullscreen-btn:hover{color:#fffffff2;background-color:#ffffff14}