@duxweb/dvha-pro 1.0.46 → 1.0.48

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 (64) hide show
  1. package/dist/cjs/component.cjs +1 -1
  2. package/dist/cjs/components/layout/list.cjs +1 -1
  3. package/dist/cjs/components/layout/table.cjs +1 -1
  4. package/dist/cjs/components/layout/tools.cjs +1 -1
  5. package/dist/cjs/components/list/card.cjs +1 -1
  6. package/dist/cjs/components/list/list.cjs +1 -1
  7. package/dist/cjs/components/table/table.cjs +1 -1
  8. package/dist/cjs/components/table/tablePage.cjs +1 -1
  9. package/dist/cjs/dvha-pro.css +1 -1
  10. package/dist/cjs/hooks/table.cjs +1 -1
  11. package/dist/cjs/index.cjs +1 -1
  12. package/dist/cjs/langs/en-US.json.cjs +1 -1
  13. package/dist/cjs/langs/zh-CN.json.cjs +1 -1
  14. package/dist/cjs/pages/authLayout.cjs +1 -1
  15. package/dist/cjs/pages/layout/page.cjs +1 -1
  16. package/dist/cjs/pages/layout/tab.cjs +1 -1
  17. package/dist/cjs/pages/menu/avatar.cjs +1 -1
  18. package/dist/cjs/pages/menu/button.cjs +1 -1
  19. package/dist/cjs/pages/menu/dark.cjs +1 -0
  20. package/dist/cjs/pages/menu/menuApp.cjs +1 -0
  21. package/dist/cjs/pages/menu/menuMain.cjs +1 -0
  22. package/dist/cjs/pages/menu/mobile.cjs +1 -1
  23. package/dist/cjs/pages/menu/notice.cjs +1 -0
  24. package/dist/cjs/theme/uno.css.cjs +19 -9
  25. package/dist/esm/component.js +1 -1
  26. package/dist/esm/components/layout/list.js +95 -86
  27. package/dist/esm/components/layout/table.js +122 -117
  28. package/dist/esm/components/layout/tools.js +109 -32
  29. package/dist/esm/components/list/card.js +27 -22
  30. package/dist/esm/components/list/list.js +16 -11
  31. package/dist/esm/components/table/table.js +31 -27
  32. package/dist/esm/components/table/tablePage.js +17 -12
  33. package/dist/esm/dvha-pro.css +1 -1
  34. package/dist/esm/hooks/table.js +25 -19
  35. package/dist/esm/index.js +84 -78
  36. package/dist/esm/langs/en-US.json.js +1 -1
  37. package/dist/esm/langs/zh-CN.json.js +2 -2
  38. package/dist/esm/pages/authLayout.js +20 -17
  39. package/dist/esm/pages/layout/page.js +1 -1
  40. package/dist/esm/pages/layout/tab.js +2 -2
  41. package/dist/esm/pages/menu/avatar.js +83 -71
  42. package/dist/esm/pages/menu/button.js +12 -13
  43. package/dist/esm/pages/menu/dark.js +54 -0
  44. package/dist/esm/pages/menu/menuApp.js +207 -0
  45. package/dist/esm/pages/menu/{main.js → menuMain.js} +46 -41
  46. package/dist/esm/pages/menu/mobile.js +16 -13
  47. package/dist/esm/pages/menu/notice.js +205 -0
  48. package/dist/esm/theme/uno.css.js +19 -9
  49. package/dist/types/components/layout/list.d.ts +7 -0
  50. package/dist/types/components/layout/table.d.ts +7 -0
  51. package/dist/types/components/layout/tools.d.ts +28 -2
  52. package/dist/types/components/list/card.d.ts +6 -0
  53. package/dist/types/components/list/list.d.ts +6 -0
  54. package/dist/types/components/table/tablePage.d.ts +6 -0
  55. package/dist/types/main.d.ts +12 -0
  56. package/dist/types/pages/menu/avatar.d.ts +18 -0
  57. package/dist/types/pages/menu/button.d.ts +9 -9
  58. package/dist/types/pages/menu/dark.d.ts +2 -0
  59. package/dist/types/pages/menu/index.d.ts +4 -1
  60. package/dist/types/pages/menu/{main.d.ts → menuApp.d.ts} +1 -1
  61. package/dist/types/pages/menu/menuMain.d.ts +22 -0
  62. package/dist/types/pages/menu/notice.d.ts +14 -0
  63. package/package.json +3 -3
  64. package/dist/cjs/pages/menu/main.cjs +0 -1
@@ -1,9 +1,9 @@
1
- import { defineComponent as A, computed as d, createVNode as e } from "vue";
2
- import { useI18n as v, useManage as L, useLogout as R, useTheme as I, useGetAuth as S } from "@duxweb/dvha-core";
1
+ import { defineComponent as L, computed as b, createVNode as e } from "vue";
2
+ import { useI18n as f, useManage as S, useLogout as A, useTheme as R, useGetAuth as I } from "@duxweb/dvha-core";
3
3
  import { NDropdown as B } from "naive-ui";
4
4
  import { useRouter as N } from "vue-router";
5
5
  import "clsx";
6
- import { DuxAvatar as f } from "../../components/widget/avatar.js";
6
+ import { DuxAvatar as g } from "../../components/widget/avatar.js";
7
7
  import "vue-echarts";
8
8
  import "@overlastic/vue";
9
9
  import "dayjs";
@@ -51,7 +51,7 @@ import "unocss/preset-wind4";
51
51
  import "@vee-validate/i18n/dist/locale/en.json";
52
52
  import "@vee-validate/i18n/dist/locale/zh_CN.json";
53
53
  import "vee-validate";
54
- import G from "./button.js";
54
+ import j from "./button.js";
55
55
  import "vue-command-palette";
56
56
  import "../page404.js";
57
57
  import "short-unique-id";
@@ -62,77 +62,85 @@ import "@vue-flow/background";
62
62
  import "@iconify-json/tabler/icons.json";
63
63
  import "../../components/posterEditor/elements/index.js";
64
64
  import "fabric";
65
- const Ke = /* @__PURE__ */ A({
65
+ const Ke = /* @__PURE__ */ L({
66
66
  name: "DuxMenuAvatar",
67
67
  props: {
68
68
  collapsed: {
69
69
  type: Boolean,
70
70
  default: !1
71
+ },
72
+ btnClass: {
73
+ type: String,
74
+ default: ""
75
+ },
76
+ btnLabelClass: {
77
+ type: String,
78
+ default: ""
71
79
  }
72
80
  },
73
- setup(g) {
81
+ setup(s) {
74
82
  const {
75
- t
76
- } = v(), s = v(), b = N(), {
77
- config: h,
78
- getRoutePath: y
79
- } = L(), {
80
- mutate: k
81
- } = R(), {
82
- mode: m,
83
- primaryColors: x,
83
+ t: o
84
+ } = f(), m = f(), v = N(), {
85
+ config: y,
86
+ getRoutePath: h
87
+ } = S(), {
88
+ mutate: x
89
+ } = A(), {
90
+ mode: p,
91
+ primaryColors: k,
84
92
  neutralColors: C,
85
- colorMapping: u,
86
- setColor: c,
87
- setMode: M
88
- } = I(), l = (o, r) => e("div", {
93
+ colorMapping: c,
94
+ setColor: d,
95
+ setMode: w
96
+ } = R(), l = (t, r) => e("div", {
89
97
  class: "flex gap-2 items-center w-30"
90
98
  }, [e("div", {
91
99
  class: "flex-1 min-w-0"
92
- }, [o]), e("div", null, [r && e("div", {
100
+ }, [t]), e("div", null, [r && e("div", {
93
101
  class: "i-tabler:check"
94
- }, null)])]), a = (o) => e("div", {
95
- class: `${o} size-4`
96
- }, null), w = d(() => {
97
- const o = h.userMenus?.map((r) => ({
98
- label: t(r.label || "", {}, r.label),
102
+ }, null)])]), i = (t) => e("div", {
103
+ class: `${t} size-4`
104
+ }, null), M = b(() => {
105
+ const t = y.userMenus?.map((r) => ({
106
+ label: o(r.label || "", {}, r.label),
99
107
  key: r.key,
100
- icon: () => a(r.icon),
108
+ icon: () => i(r.icon),
101
109
  path: r.path
102
110
  }));
103
- return o?.length > 0 ? [...o, {
111
+ return t?.length > 0 ? [...t, {
104
112
  type: "divider"
105
113
  }] : [];
106
- }), i = S(), z = d(() => [{
114
+ }), a = I(), z = b(() => [{
107
115
  key: "header",
108
116
  type: "render",
109
117
  render: () => e("div", {
110
118
  class: "flex gap-2 px-3 pb-1 pt-1 items-center "
111
- }, [e(f, {
119
+ }, [e(g, {
112
120
  round: !0,
113
121
  size: 28,
114
- src: i.info?.avatar
122
+ src: a.info?.avatar
115
123
  }, null), e("div", {
116
124
  class: "flex flex-col"
117
125
  }, [e("div", {
118
126
  class: "text-sm font-medium"
119
- }, [i.info?.nickname]), e("div", {
127
+ }, [a.info?.nickname]), e("div", {
120
128
  class: "text-xs text-muted"
121
- }, [i.info?.username])])])
129
+ }, [a.info?.username])])])
122
130
  }, {
123
131
  type: "divider"
124
- }, ...w.value, {
125
- label: t("components.menu.language"),
132
+ }, ...M.value, {
133
+ label: o("components.menu.language"),
126
134
  key: "locale",
127
- icon: () => a("i-tabler:language"),
128
- children: [...(s.getLocales() || []).map((o) => ({
129
- label: () => l(t(`locale.${o}`), s.getLocale() === o),
130
- key: `locale.${o}`
135
+ icon: () => i("i-tabler:language"),
136
+ children: [...(m.getLocales() || []).map((t) => ({
137
+ label: () => l(o(`locale.${t}`), m.getLocale() === t),
138
+ key: `locale.${t}`
131
139
  }))]
132
140
  }, {
133
- label: t("components.menu.color"),
141
+ label: o("components.menu.color"),
134
142
  key: "color",
135
- icon: () => a("i-tabler:palette"),
143
+ icon: () => i("i-tabler:palette"),
136
144
  children: [{
137
145
  label: () => e("div", {
138
146
  class: "flex gap-2 items-center w-30"
@@ -141,18 +149,18 @@ const Ke = /* @__PURE__ */ A({
141
149
  style: {
142
150
  backgroundColor: "rgb(var(--ui-color-primary))"
143
151
  }
144
- }, null), e("div", null, [t("components.menu.primaryColor")])]),
152
+ }, null), e("div", null, [o("components.menu.primaryColor")])]),
145
153
  key: "color.primary",
146
- children: x.value?.map((o) => ({
154
+ children: k.value?.map((t) => ({
147
155
  label: () => l(e("div", {
148
156
  class: "flex gap-2 items-center"
149
157
  }, [e("div", {
150
158
  class: "size-2 rounded-full",
151
159
  style: {
152
- backgroundColor: `rgb(var(--base-color-${o}-500))`
160
+ backgroundColor: `rgb(var(--base-color-${t}-500))`
153
161
  }
154
- }, null), e("div", null, [o])]), u.value.primary === o),
155
- key: `color.primary.${o}`
162
+ }, null), e("div", null, [t])]), c.value.primary === t),
163
+ key: `color.primary.${t}`
156
164
  }))
157
165
  }, {
158
166
  label: () => e("div", {
@@ -162,63 +170,63 @@ const Ke = /* @__PURE__ */ A({
162
170
  style: {
163
171
  backgroundColor: "rgb(var(--ui-color-gray-600))"
164
172
  }
165
- }, null), e("div", null, [t("components.menu.neutralColor")])]),
173
+ }, null), e("div", null, [o("components.menu.neutralColor")])]),
166
174
  key: "color.neutral",
167
- children: C.value?.map((o) => ({
175
+ children: C.value?.map((t) => ({
168
176
  label: () => l(e("div", {
169
177
  class: "flex gap-2 items-center"
170
178
  }, [e("div", {
171
179
  class: "size-2 rounded-full",
172
180
  style: {
173
- backgroundColor: `rgb(var(--base-color-${o}-600))`
181
+ backgroundColor: `rgb(var(--base-color-${t}-600))`
174
182
  }
175
- }, null), e("div", null, [o])]), u.value.gray === o),
176
- key: `color.neutral.${o}`
183
+ }, null), e("div", null, [t])]), c.value.gray === t),
184
+ key: `color.neutral.${t}`
177
185
  }))
178
186
  }]
179
187
  }, {
180
- label: t("components.menu.theme"),
188
+ label: o("components.menu.theme"),
181
189
  key: "theme",
182
- icon: () => a("i-tabler:brightness-half"),
190
+ icon: () => i("i-tabler:brightness-half"),
183
191
  children: [{
184
- label: () => l(t("components.menu.followSystem"), m.value === "auto"),
192
+ label: () => l(o("components.menu.followSystem"), p.value === "auto"),
185
193
  key: "theme.auto"
186
194
  }, {
187
- label: () => l(t("components.menu.lightMode"), m.value === "light"),
195
+ label: () => l(o("components.menu.lightMode"), p.value === "light"),
188
196
  key: "theme.light"
189
197
  }, {
190
- label: () => l(t("components.menu.darkMode"), m.value === "dark"),
198
+ label: () => l(o("components.menu.darkMode"), p.value === "dark"),
191
199
  key: "theme.dark"
192
200
  }]
193
201
  }, {
194
202
  type: "divider"
195
203
  }, {
196
- label: t("components.menu.logout"),
204
+ label: o("components.menu.logout"),
197
205
  key: "logout",
198
- icon: () => a("i-tabler:logout")
206
+ icon: () => i("i-tabler:logout")
199
207
  }]);
200
- function $(o, r) {
201
- const p = o.lastIndexOf("."), [D, n] = p === -1 ? [o, ""] : [o.substring(0, p), o.substring(p + 1)];
208
+ function $(t, r) {
209
+ const u = t.lastIndexOf("."), [D, n] = u === -1 ? [t, ""] : [t.substring(0, u), t.substring(u + 1)];
202
210
  switch (D) {
203
211
  case "locale":
204
- s.changeLocale(n);
212
+ m.changeLocale(n);
205
213
  break;
206
214
  case "color.primary":
207
- c("primary", n);
215
+ d("primary", n);
208
216
  break;
209
217
  case "color.neutral":
210
- c("gray", n);
218
+ d("gray", n);
211
219
  break;
212
220
  case "theme":
213
- M(n);
221
+ w(n);
214
222
  break;
215
223
  case "logout":
216
- k();
224
+ x();
217
225
  break;
218
226
  default:
219
227
  if (!r?.path)
220
228
  return;
221
- b.push(y(r.path));
229
+ v.push(h(r.path));
222
230
  }
223
231
  }
224
232
  return () => e(B, {
@@ -228,22 +236,26 @@ const Ke = /* @__PURE__ */ A({
228
236
  onSelect: $,
229
237
  width: 200
230
238
  }, {
231
- default: () => [e(G, {
232
- collapsed: g.collapsed
239
+ default: () => [e(j, {
240
+ class: s.btnClass,
241
+ labelClass: s.btnLabelClass,
242
+ collapsed: s.collapsed
233
243
  }, {
234
- icon: () => e(f, {
244
+ icon: () => e(g, {
235
245
  class: "group-hover:shadow-lg",
236
246
  round: !0,
237
247
  size: 28,
238
- src: i.info?.avatar
248
+ src: a.info?.avatar
239
249
  }, null),
240
250
  default: () => e("div", {
251
+ class: "flex justify-between"
252
+ }, [e("div", {
241
253
  class: "flex flex-col"
242
254
  }, [e("div", {
243
255
  class: "text-sm font-medium"
244
- }, [i.info?.nickname]), e("div", {
256
+ }, [a.info?.nickname]), e("div", {
245
257
  class: "text-xs text-muted"
246
- }, [i.info?.username])])
258
+ }, [a.info?.username])])])
247
259
  })]
248
260
  });
249
261
  }
@@ -1,4 +1,4 @@
1
- import { defineComponent as e, createVNode as p } from "vue";
1
+ import { defineComponent as p, createVNode as i } from "vue";
2
2
  import "@duxweb/dvha-core";
3
3
  import "naive-ui";
4
4
  import "vue-router";
@@ -60,13 +60,17 @@ import "fabric";
60
60
  import "dayjs";
61
61
  import "@tanstack/vue-query";
62
62
  import { useUI as m } from "../../hooks/ui.js";
63
- const vt = /* @__PURE__ */ e({
63
+ const dt = /* @__PURE__ */ p({
64
64
  name: "DuxMenuButton",
65
65
  props: {
66
66
  class: {
67
67
  type: String,
68
68
  default: ""
69
69
  },
70
+ labelClass: {
71
+ type: String,
72
+ default: ""
73
+ },
70
74
  onClick: {
71
75
  type: Function,
72
76
  default: () => {
@@ -75,29 +79,24 @@ const vt = /* @__PURE__ */ e({
75
79
  collapsed: {
76
80
  type: Boolean,
77
81
  default: !0
78
- },
79
- inverted: {
80
- type: Boolean,
81
- default: !1
82
82
  }
83
83
  },
84
84
  setup(t, {
85
85
  slots: o
86
86
  }) {
87
87
  const {
88
- menuCollapsed: r,
89
- menuMobileCollapsed: i
88
+ menuCollapsed: r
90
89
  } = m();
91
- return () => p("div", {
90
+ return () => i("div", {
92
91
  onClick: () => {
93
92
  t.onClick?.();
94
93
  },
95
- class: ["flex items-center gap-1 justify-center py-1 px-2 cursor-pointer gap-2", t.class, r.value && !i.value ? "group" : "hover:shadow-xs hover:bg-default flex-1 w-full", t.inverted ? "transition-all duration-300 bg-inverted/5 rounded-full hover:bg-default hover:shadow-xs" : " rounded-md"]
96
- }, [o.icon?.(), t.collapsed === !1 && !r.value && !i.value && p("div", {
97
- class: ["overflow-hidden ease-in-out whitespace-nowrap text-left min-w-0 flex-1", t.inverted ? "text-default" : ""]
94
+ class: ["flex items-center gap-1 justify-center py-1 px-2 cursor-pointer gap-2 flex-1 w-full", t.class]
95
+ }, [o.icon?.(), t.collapsed === !1 && !r.value && i("div", {
96
+ class: ["overflow-hidden ease-in-out whitespace-nowrap text-left min-w-0 flex-1", t.labelClass]
98
97
  }, [o.default?.()])]);
99
98
  }
100
99
  });
101
100
  export {
102
- vt as default
101
+ dt as default
103
102
  };
@@ -0,0 +1,54 @@
1
+ import { defineComponent as i, computed as u, createVNode as e } from "vue";
2
+ import { useI18n as s, useTheme as m } from "@duxweb/dvha-core";
3
+ import { NTooltip as c, NButton as d } from "naive-ui";
4
+ const f = /* @__PURE__ */ i({
5
+ name: "DuxMenuDark",
6
+ setup() {
7
+ const {
8
+ t
9
+ } = s(), {
10
+ mode: l,
11
+ setMode: a
12
+ } = m(), o = u(() => {
13
+ const n = {
14
+ auto: {
15
+ icon: "i-tabler:device-desktop",
16
+ label: t("components.menu.followSystem", "Follow System"),
17
+ nextMode: "light"
18
+ },
19
+ light: {
20
+ icon: "i-tabler:sun",
21
+ label: t("components.menu.lightMode", "Light"),
22
+ nextMode: "dark"
23
+ },
24
+ dark: {
25
+ icon: "i-tabler:moon",
26
+ label: t("components.menu.darkMode", "Dark"),
27
+ nextMode: "auto"
28
+ }
29
+ };
30
+ return n[l.value] || n.auto;
31
+ }), r = () => {
32
+ a(o.value.nextMode);
33
+ };
34
+ return () => e(c, {
35
+ trigger: "hover",
36
+ placement: "right"
37
+ }, {
38
+ default: () => o.value.label,
39
+ trigger: () => e(d, {
40
+ quaternary: !0,
41
+ onClick: r
42
+ }, {
43
+ icon: () => e("div", {
44
+ class: "transition-all text-muted p-2 hover:text-white"
45
+ }, [e("div", {
46
+ class: `${o.value.icon} size-5`
47
+ }, null)])
48
+ })
49
+ });
50
+ }
51
+ });
52
+ export {
53
+ f as default
54
+ };
@@ -0,0 +1,207 @@
1
+ import { defineComponent as z, onMounted as A, computed as n, createVNode as e, Transition as N, createTextVNode as s, h as m } from "vue";
2
+ import { useManage as w, useI18n as k, useMenu as I, DuxLogoIcon as T } from "@duxweb/dvha-core";
3
+ import { cloneDeep as u } from "lodash-es";
4
+ import { NScrollbar as d, NMenu as c, NTag as f } from "naive-ui";
5
+ import { RouterLink as V } from "vue-router";
6
+ import L from "./avatar.js";
7
+ import S from "./button.js";
8
+ import "@vueuse/core";
9
+ import "vue-command-palette";
10
+ import "@overlastic/vue";
11
+ import { DuxCard as v } from "../../components/card/card.js";
12
+ import "clsx";
13
+ import "vue-echarts";
14
+ import "vue3-ace-editor";
15
+ import "ace-builds/src-noconflict/mode-vue";
16
+ import "ace-builds/src-noconflict/mode-javascript";
17
+ import "ace-builds/src-noconflict/mode-html";
18
+ import "ace-builds/src-noconflict/mode-json";
19
+ import "ace-builds/src-noconflict/mode-json5";
20
+ import "ace-builds/src-noconflict/theme-tomorrow_night";
21
+ import "ace-builds/src-noconflict/theme-tomorrow";
22
+ import "ace-builds/src-noconflict/ext-searchbox";
23
+ import "ace-builds/src-noconflict/ext-language_tools";
24
+ import "ace-builds/src-noconflict/mode-snippets";
25
+ import "vue-cropper";
26
+ import "jinrishici";
27
+ import "vue-draggable-plus";
28
+ import "@vee-validate/i18n";
29
+ import "colorizr";
30
+ import "echarts";
31
+ import "highlight.js/lib/core";
32
+ import "highlight.js/lib/languages/bash";
33
+ import "highlight.js/lib/languages/css";
34
+ import "highlight.js/lib/languages/go";
35
+ import "highlight.js/lib/languages/java";
36
+ import "highlight.js/lib/languages/javascript";
37
+ import "highlight.js/lib/languages/json";
38
+ import "highlight.js/lib/languages/markdown";
39
+ import "highlight.js/lib/languages/php";
40
+ import "highlight.js/lib/languages/python";
41
+ import "highlight.js/lib/languages/shell";
42
+ import "highlight.js/lib/languages/sql";
43
+ import "highlight.js/lib/languages/typescript";
44
+ import "highlight.js/lib/languages/xml";
45
+ import "@ant-design/colors";
46
+ import "@unocss/preset-icons/browser";
47
+ import "@unocss/preset-typography";
48
+ import "unocss/preset-wind4";
49
+ import "@vee-validate/i18n/dist/locale/en.json";
50
+ import "@vee-validate/i18n/dist/locale/zh_CN.json";
51
+ import "vee-validate";
52
+ import "@duxweb/dvha-naiveui";
53
+ import "../page404.js";
54
+ import "short-unique-id";
55
+ import "aieditor";
56
+ import "@vue-flow/core";
57
+ import "@vue-flow/background";
58
+ /* empty css */
59
+ import "mime";
60
+ import "@iconify-json/tabler/icons.json";
61
+ import "../../components/posterEditor/elements/index.js";
62
+ import "fabric";
63
+ import "dayjs";
64
+ import "@tanstack/vue-query";
65
+ import { useUI as U } from "../../hooks/ui.js";
66
+ import B from "./dark.js";
67
+ import F from "./notice.js";
68
+ const Ye = /* @__PURE__ */ z({
69
+ name: "DuxMenuApp",
70
+ props: {
71
+ collapsed: {
72
+ type: Boolean,
73
+ default: !1
74
+ }
75
+ },
76
+ setup() {
77
+ const {
78
+ setCmdVisible: x,
79
+ setMenuCollapsed: h
80
+ } = U(), {
81
+ config: l
82
+ } = w(), {
83
+ t: g
84
+ } = k(), {
85
+ mainMenu: b,
86
+ subMenu: y,
87
+ appActive: a,
88
+ subActive: p,
89
+ isSubMenu: M
90
+ } = I({
91
+ doubleMenu: !0
92
+ });
93
+ A(() => {
94
+ h(!1);
95
+ });
96
+ const i = (o) => o.map((t) => {
97
+ const r = {
98
+ ...t,
99
+ key: t.name,
100
+ icon: t?.icon ? () => m("div", {
101
+ class: `${t.icon} size-5`
102
+ }) : void 0,
103
+ labelName: t.label,
104
+ label: () => t.path ? m(V, {
105
+ to: {
106
+ path: t.path
107
+ }
108
+ }, {
109
+ default: () => t.label
110
+ }) : t.label
111
+ };
112
+ return r.children && r.children.length > 0 && (r.children = i(r.children)), r;
113
+ }), C = n(() => i(u(b.value))), D = n(() => i(u(y.value)));
114
+ return () => e("div", {
115
+ class: "flex h-screen gap-2 p-2"
116
+ }, [e(v, {
117
+ class: "bg-primary-950 w-16 text-inverted z-1"
118
+ }, {
119
+ default: () => [e("div", {
120
+ class: "h-full flex-none flex flex-col"
121
+ }, [e("div", {
122
+ class: "py-4 px-2 hidden lg:flex justify-center items-center"
123
+ }, [e("div", {
124
+ class: "bg-white dark:bg-primary-950 rounded-full p-2 shadow group-hover:shadow-lg"
125
+ }, [l.theme?.appLogo ? e("img", {
126
+ class: "size-4",
127
+ src: l.theme?.appLogo
128
+ }, null) : e(T, {
129
+ highlight: "fill-primary",
130
+ class: "size-4"
131
+ }, null)])]), e("div", {
132
+ class: "flex-1"
133
+ }, [e(d, null, {
134
+ default: () => [e(c, {
135
+ inverted: !0,
136
+ options: C.value,
137
+ value: a.value,
138
+ collapsed: !0,
139
+ collapsedWidth: 64,
140
+ collapsedIconSize: 22,
141
+ onUpdateValue: (o) => a.value = o
142
+ }, null)]
143
+ })]), e("div", {
144
+ class: "flex-none hidden lg:flex flex-col items-center gap-2 p-2"
145
+ }, [l.notice?.status && e(F, {
146
+ collapsed: !0
147
+ }, null), e(B, null, null), e(L, {
148
+ collapsed: !0
149
+ }, null)])])]
150
+ }), e(N, {
151
+ name: "submenu-slide",
152
+ enterActiveClass: "transition-all duration-150 ease-out",
153
+ enterFromClass: "opacity-0 translate-x-[-50%]",
154
+ enterToClass: "opacity-100 translate-x-0",
155
+ leaveActiveClass: "transition-all duration-150 ease-in",
156
+ leaveFromClass: "opacity-100 translate-x-0",
157
+ leaveToClass: "opacity-0 translate-x-[-50%]"
158
+ }, {
159
+ default: () => [M.value && e(v, {
160
+ class: "w-160px overflow-hidden flex flex-col gap-2"
161
+ }, {
162
+ default: () => [e("div", {
163
+ class: "p-2 flex-none"
164
+ }, [e(S, {
165
+ collapsed: !1,
166
+ class: "rounded relative py-1.5 px-3 bg-inverted/5",
167
+ onClick: () => x(!0)
168
+ }, {
169
+ icon: () => e("div", {
170
+ class: "i-tabler:search size-4 icon-gradient"
171
+ }, null),
172
+ default: () => e("div", {
173
+ class: "text-muted text-sm"
174
+ }, [g("common.search"), e("div", {
175
+ class: "flex items-center gap-1 absolute right-2.5 top-1.3"
176
+ }, [e(f, {
177
+ size: "small",
178
+ bordered: !1,
179
+ type: "primary"
180
+ }, {
181
+ default: () => [s("⌘")]
182
+ }), e(f, {
183
+ size: "small",
184
+ bordered: !1,
185
+ type: "primary"
186
+ }, {
187
+ default: () => [s("K")]
188
+ })])])
189
+ })]), e(d, {
190
+ class: "flex-1 min-h-0"
191
+ }, {
192
+ default: () => [e(c, {
193
+ rootIndent: 20,
194
+ indent: 15,
195
+ options: D.value,
196
+ value: p.value,
197
+ collapsed: !1,
198
+ onUpdateValue: (o) => p.value = o
199
+ }, null)]
200
+ })]
201
+ })]
202
+ })]);
203
+ }
204
+ });
205
+ export {
206
+ Ye as DuxMenuApp
207
+ };