@robot-admin/layout 3.0.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2927 @@
1
+ import { AllowedComponentProps } from 'vue';
2
+ import { App } from 'vue';
3
+ import { Component } from 'vue';
4
+ import { ComponentCustomProps } from 'vue';
5
+ import { ComponentOptionsBase } from 'vue';
6
+ import { ComponentOptionsMixin } from 'vue';
7
+ import { ComponentProvideOptions } from 'vue';
8
+ import { ComputedRef } from 'vue';
9
+ import { CreateComponentPublicInstanceWithMixins } from 'vue';
10
+ import { DefineComponent } from 'vue';
11
+ import { GlobalComponents } from 'vue';
12
+ import { GlobalDirectives } from 'vue';
13
+ import { InjectionKey } from 'vue';
14
+ import { MaybeRefOrGetter } from 'vue';
15
+ import { PublicProps } from 'vue';
16
+ import { Ref } from 'vue';
17
+ import { RouteLocationNormalizedLoaded } from 'vue-router';
18
+ import { Store } from 'pinia';
19
+ import { StoreDefinition } from 'pinia';
20
+ import { VNode } from 'vue';
21
+ import { VNodeProps } from 'vue';
22
+ import { WritableComputedRef } from 'vue';
23
+
24
+ declare const __VLS_component: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, HTMLDivElement>;
25
+
26
+ declare const __VLS_component_2: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
27
+ "update:show": (value: boolean) => any;
28
+ }, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
29
+ "onUpdate:show"?: ((value: boolean) => any) | undefined;
30
+ }>, {
31
+ width: number;
32
+ maxImportBytes: number;
33
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
34
+
35
+ declare type __VLS_Props = {
36
+ /** 抽屉宽度,默认 380px */
37
+ width?: number;
38
+ /** 显式设置 Store;优先级高于 setupLayout 注入和默认 Store */
39
+ store?: SettingsStoreInstance;
40
+ /** 由宿主实现的缓存清理、页面刷新等高副作用操作 */
41
+ actions?: SettingsDrawerActions;
42
+ /** 导入文件最大字节数,默认 1 MiB */
43
+ maxImportBytes?: number;
44
+ };
45
+
46
+ declare type __VLS_Props_2 = {
47
+ /** 是否显示品牌名称 */
48
+ showName?: boolean;
49
+ /** 是否显示分隔线 */
50
+ showDivider?: boolean;
51
+ /** Logo 尺寸 */
52
+ size?: number;
53
+ /** 是否折叠状态 */
54
+ collapsed?: boolean;
55
+ /** 布局方向 */
56
+ variant?: "vertical" | "horizontal";
57
+ };
58
+
59
+ declare type __VLS_Props_3 = {
60
+ /** 菜单数据 */
61
+ menus: MenuOptions[];
62
+ /** 当前激活的菜单路径 */
63
+ active?: string;
64
+ };
65
+
66
+ declare type __VLS_Props_4 = {
67
+ /** 是否显示 */
68
+ show: boolean;
69
+ /** 当前悬浮的一级菜单项(包含 children) */
70
+ menuItem: MenuOptions | null;
71
+ /** 判断菜单项是否激活 */
72
+ isActive?: (path: string | undefined) => boolean;
73
+ };
74
+
75
+ declare type __VLS_Props_5 = {
76
+ /** 二级菜单列表 */
77
+ menus: MenuOptions[];
78
+ /** 当前一级菜单项(显示标题和图标) */
79
+ activeItem?: MenuOptions;
80
+ /** 判断菜单项是否激活 */
81
+ isActive?: (path: string | undefined) => boolean;
82
+ };
83
+
84
+ declare type __VLS_Props_6 = {
85
+ /** 菜单数据 */
86
+ menus: MenuOptions[];
87
+ /** 是否显示 */
88
+ show: boolean;
89
+ };
90
+
91
+ declare type __VLS_Props_7 = {
92
+ show?: boolean;
93
+ };
94
+
95
+ declare type __VLS_Props_8 = {
96
+ /** 菜单数据 */
97
+ data: MenuOptions[];
98
+ };
99
+
100
+ declare type __VLS_PublicProps = {
101
+ "show"?: boolean;
102
+ } & __VLS_Props;
103
+
104
+ declare function __VLS_template(): {
105
+ attrs: Partial<{}>;
106
+ slots: {
107
+ logo?(_: {}): any;
108
+ logo?(_: {}): any;
109
+ logo?(_: {}): any;
110
+ logo?(_: {}): any;
111
+ logo?(_: {}): any;
112
+ logo?(_: {}): any;
113
+ menu?(_: {
114
+ collapsed: boolean;
115
+ }): any;
116
+ header?(_: {}): any;
117
+ header?(_: {}): any;
118
+ footer?(_: {}): any;
119
+ footer?(_: {}): any;
120
+ footer?(_: {}): any;
121
+ footer?(_: {}): any;
122
+ footer?(_: {}): any;
123
+ footer?(_: {}): any;
124
+ 'top-menu'?(_: {}): any;
125
+ 'top-menu'?(_: {}): any;
126
+ 'top-menu'?(_: {}): any;
127
+ 'header-extra'?(_: {}): any;
128
+ 'header-extra'?(_: {}): any;
129
+ 'header-extra'?(_: {}): any;
130
+ 'header-extra'?(_: {}): any;
131
+ 'tags-view'?(_: {}): any;
132
+ 'tags-view'?(_: {}): any;
133
+ 'tags-view'?(_: {}): any;
134
+ 'tags-view'?(_: {}): any;
135
+ brand?(_: {}): any;
136
+ 'menu-trigger'?(_: {}): any;
137
+ 'drawer-menu'?(_: {}): any;
138
+ };
139
+ refs: {};
140
+ rootEl: HTMLDivElement;
141
+ };
142
+
143
+ declare function __VLS_template_2(): {
144
+ attrs: Partial<{}>;
145
+ slots: {
146
+ 'appearance-prepend'?(_: {
147
+ settings: Store<string, Pick<{
148
+ defaults: Readonly<{
149
+ themeMode: ThemeMode;
150
+ primaryColor: string;
151
+ borderRadius: BorderRadiusSize_2;
152
+ transitionType: TransitionType_2;
153
+ enableTransition: boolean;
154
+ layoutMode: LayoutMode;
155
+ menuExpandMode: MenuExpandMode_2;
156
+ collapsed: boolean;
157
+ fixedHeader: boolean;
158
+ showBreadcrumb: boolean;
159
+ showBreadcrumbIcon: boolean;
160
+ showTagsView: boolean;
161
+ tagsViewHeight: number;
162
+ tagsViewStyle: TagsViewStyle_2;
163
+ showFooter: boolean;
164
+ sidebarWidth: number;
165
+ sidebarCollapsedWidth: number;
166
+ headerHeight: number;
167
+ enableHotkeys: boolean;
168
+ version: string;
169
+ }>;
170
+ themeMode: Ref<ThemeMode, ThemeMode>;
171
+ primaryColor: Ref<string, string>;
172
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
173
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
174
+ enableTransition: Ref<boolean, boolean>;
175
+ layoutMode: Ref<LayoutMode, LayoutMode>;
176
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
177
+ collapsed: Ref<boolean, boolean>;
178
+ fixedHeader: Ref<boolean, boolean>;
179
+ showBreadcrumb: Ref<boolean, boolean>;
180
+ showBreadcrumbIcon: Ref<boolean, boolean>;
181
+ showTagsView: Ref<boolean, boolean>;
182
+ tagsViewHeight: Ref<number, number>;
183
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
184
+ showFooter: Ref<boolean, boolean>;
185
+ sidebarWidth: Ref<number, number>;
186
+ sidebarCollapsedWidth: Ref<number, number>;
187
+ headerHeight: Ref<number, number>;
188
+ enableHotkeys: Ref<boolean, boolean>;
189
+ version: Ref<string, string>;
190
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
191
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
192
+ shouldEnableTransition: ComputedRef<boolean>;
193
+ settingsState: ComputedRef<SettingsState_2>;
194
+ syncCSSVariables: () => void | undefined;
195
+ applyPreset: (preset: ThemePreset) => Promise<void>;
196
+ resetSettings: () => void;
197
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
198
+ toggleCollapse: () => void;
199
+ }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
200
+ defaults: Readonly<{
201
+ themeMode: ThemeMode;
202
+ primaryColor: string;
203
+ borderRadius: BorderRadiusSize_2;
204
+ transitionType: TransitionType_2;
205
+ enableTransition: boolean;
206
+ layoutMode: LayoutMode;
207
+ menuExpandMode: MenuExpandMode_2;
208
+ collapsed: boolean;
209
+ fixedHeader: boolean;
210
+ showBreadcrumb: boolean;
211
+ showBreadcrumbIcon: boolean;
212
+ showTagsView: boolean;
213
+ tagsViewHeight: number;
214
+ tagsViewStyle: TagsViewStyle_2;
215
+ showFooter: boolean;
216
+ sidebarWidth: number;
217
+ sidebarCollapsedWidth: number;
218
+ headerHeight: number;
219
+ enableHotkeys: boolean;
220
+ version: string;
221
+ }>;
222
+ themeMode: Ref<ThemeMode, ThemeMode>;
223
+ primaryColor: Ref<string, string>;
224
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
225
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
226
+ enableTransition: Ref<boolean, boolean>;
227
+ layoutMode: Ref<LayoutMode, LayoutMode>;
228
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
229
+ collapsed: Ref<boolean, boolean>;
230
+ fixedHeader: Ref<boolean, boolean>;
231
+ showBreadcrumb: Ref<boolean, boolean>;
232
+ showBreadcrumbIcon: Ref<boolean, boolean>;
233
+ showTagsView: Ref<boolean, boolean>;
234
+ tagsViewHeight: Ref<number, number>;
235
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
236
+ showFooter: Ref<boolean, boolean>;
237
+ sidebarWidth: Ref<number, number>;
238
+ sidebarCollapsedWidth: Ref<number, number>;
239
+ headerHeight: Ref<number, number>;
240
+ enableHotkeys: Ref<boolean, boolean>;
241
+ version: Ref<string, string>;
242
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
243
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
244
+ shouldEnableTransition: ComputedRef<boolean>;
245
+ settingsState: ComputedRef<SettingsState_2>;
246
+ syncCSSVariables: () => void | undefined;
247
+ applyPreset: (preset: ThemePreset) => Promise<void>;
248
+ resetSettings: () => void;
249
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
250
+ toggleCollapse: () => void;
251
+ }, "borderRadiusValue" | "transitionName" | "shouldEnableTransition" | "settingsState">, Pick<{
252
+ defaults: Readonly<{
253
+ themeMode: ThemeMode;
254
+ primaryColor: string;
255
+ borderRadius: BorderRadiusSize_2;
256
+ transitionType: TransitionType_2;
257
+ enableTransition: boolean;
258
+ layoutMode: LayoutMode;
259
+ menuExpandMode: MenuExpandMode_2;
260
+ collapsed: boolean;
261
+ fixedHeader: boolean;
262
+ showBreadcrumb: boolean;
263
+ showBreadcrumbIcon: boolean;
264
+ showTagsView: boolean;
265
+ tagsViewHeight: number;
266
+ tagsViewStyle: TagsViewStyle_2;
267
+ showFooter: boolean;
268
+ sidebarWidth: number;
269
+ sidebarCollapsedWidth: number;
270
+ headerHeight: number;
271
+ enableHotkeys: boolean;
272
+ version: string;
273
+ }>;
274
+ themeMode: Ref<ThemeMode, ThemeMode>;
275
+ primaryColor: Ref<string, string>;
276
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
277
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
278
+ enableTransition: Ref<boolean, boolean>;
279
+ layoutMode: Ref<LayoutMode, LayoutMode>;
280
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
281
+ collapsed: Ref<boolean, boolean>;
282
+ fixedHeader: Ref<boolean, boolean>;
283
+ showBreadcrumb: Ref<boolean, boolean>;
284
+ showBreadcrumbIcon: Ref<boolean, boolean>;
285
+ showTagsView: Ref<boolean, boolean>;
286
+ tagsViewHeight: Ref<number, number>;
287
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
288
+ showFooter: Ref<boolean, boolean>;
289
+ sidebarWidth: Ref<number, number>;
290
+ sidebarCollapsedWidth: Ref<number, number>;
291
+ headerHeight: Ref<number, number>;
292
+ enableHotkeys: Ref<boolean, boolean>;
293
+ version: Ref<string, string>;
294
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
295
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
296
+ shouldEnableTransition: ComputedRef<boolean>;
297
+ settingsState: ComputedRef<SettingsState_2>;
298
+ syncCSSVariables: () => void | undefined;
299
+ applyPreset: (preset: ThemePreset) => Promise<void>;
300
+ resetSettings: () => void;
301
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
302
+ toggleCollapse: () => void;
303
+ }, "syncCSSVariables" | "applyPreset" | "resetSettings" | "updateThemeMode" | "toggleCollapse">>;
304
+ }): any;
305
+ 'appearance-append'?(_: {
306
+ settings: Store<string, Pick<{
307
+ defaults: Readonly<{
308
+ themeMode: ThemeMode;
309
+ primaryColor: string;
310
+ borderRadius: BorderRadiusSize_2;
311
+ transitionType: TransitionType_2;
312
+ enableTransition: boolean;
313
+ layoutMode: LayoutMode;
314
+ menuExpandMode: MenuExpandMode_2;
315
+ collapsed: boolean;
316
+ fixedHeader: boolean;
317
+ showBreadcrumb: boolean;
318
+ showBreadcrumbIcon: boolean;
319
+ showTagsView: boolean;
320
+ tagsViewHeight: number;
321
+ tagsViewStyle: TagsViewStyle_2;
322
+ showFooter: boolean;
323
+ sidebarWidth: number;
324
+ sidebarCollapsedWidth: number;
325
+ headerHeight: number;
326
+ enableHotkeys: boolean;
327
+ version: string;
328
+ }>;
329
+ themeMode: Ref<ThemeMode, ThemeMode>;
330
+ primaryColor: Ref<string, string>;
331
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
332
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
333
+ enableTransition: Ref<boolean, boolean>;
334
+ layoutMode: Ref<LayoutMode, LayoutMode>;
335
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
336
+ collapsed: Ref<boolean, boolean>;
337
+ fixedHeader: Ref<boolean, boolean>;
338
+ showBreadcrumb: Ref<boolean, boolean>;
339
+ showBreadcrumbIcon: Ref<boolean, boolean>;
340
+ showTagsView: Ref<boolean, boolean>;
341
+ tagsViewHeight: Ref<number, number>;
342
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
343
+ showFooter: Ref<boolean, boolean>;
344
+ sidebarWidth: Ref<number, number>;
345
+ sidebarCollapsedWidth: Ref<number, number>;
346
+ headerHeight: Ref<number, number>;
347
+ enableHotkeys: Ref<boolean, boolean>;
348
+ version: Ref<string, string>;
349
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
350
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
351
+ shouldEnableTransition: ComputedRef<boolean>;
352
+ settingsState: ComputedRef<SettingsState_2>;
353
+ syncCSSVariables: () => void | undefined;
354
+ applyPreset: (preset: ThemePreset) => Promise<void>;
355
+ resetSettings: () => void;
356
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
357
+ toggleCollapse: () => void;
358
+ }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
359
+ defaults: Readonly<{
360
+ themeMode: ThemeMode;
361
+ primaryColor: string;
362
+ borderRadius: BorderRadiusSize_2;
363
+ transitionType: TransitionType_2;
364
+ enableTransition: boolean;
365
+ layoutMode: LayoutMode;
366
+ menuExpandMode: MenuExpandMode_2;
367
+ collapsed: boolean;
368
+ fixedHeader: boolean;
369
+ showBreadcrumb: boolean;
370
+ showBreadcrumbIcon: boolean;
371
+ showTagsView: boolean;
372
+ tagsViewHeight: number;
373
+ tagsViewStyle: TagsViewStyle_2;
374
+ showFooter: boolean;
375
+ sidebarWidth: number;
376
+ sidebarCollapsedWidth: number;
377
+ headerHeight: number;
378
+ enableHotkeys: boolean;
379
+ version: string;
380
+ }>;
381
+ themeMode: Ref<ThemeMode, ThemeMode>;
382
+ primaryColor: Ref<string, string>;
383
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
384
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
385
+ enableTransition: Ref<boolean, boolean>;
386
+ layoutMode: Ref<LayoutMode, LayoutMode>;
387
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
388
+ collapsed: Ref<boolean, boolean>;
389
+ fixedHeader: Ref<boolean, boolean>;
390
+ showBreadcrumb: Ref<boolean, boolean>;
391
+ showBreadcrumbIcon: Ref<boolean, boolean>;
392
+ showTagsView: Ref<boolean, boolean>;
393
+ tagsViewHeight: Ref<number, number>;
394
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
395
+ showFooter: Ref<boolean, boolean>;
396
+ sidebarWidth: Ref<number, number>;
397
+ sidebarCollapsedWidth: Ref<number, number>;
398
+ headerHeight: Ref<number, number>;
399
+ enableHotkeys: Ref<boolean, boolean>;
400
+ version: Ref<string, string>;
401
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
402
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
403
+ shouldEnableTransition: ComputedRef<boolean>;
404
+ settingsState: ComputedRef<SettingsState_2>;
405
+ syncCSSVariables: () => void | undefined;
406
+ applyPreset: (preset: ThemePreset) => Promise<void>;
407
+ resetSettings: () => void;
408
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
409
+ toggleCollapse: () => void;
410
+ }, "borderRadiusValue" | "transitionName" | "shouldEnableTransition" | "settingsState">, Pick<{
411
+ defaults: Readonly<{
412
+ themeMode: ThemeMode;
413
+ primaryColor: string;
414
+ borderRadius: BorderRadiusSize_2;
415
+ transitionType: TransitionType_2;
416
+ enableTransition: boolean;
417
+ layoutMode: LayoutMode;
418
+ menuExpandMode: MenuExpandMode_2;
419
+ collapsed: boolean;
420
+ fixedHeader: boolean;
421
+ showBreadcrumb: boolean;
422
+ showBreadcrumbIcon: boolean;
423
+ showTagsView: boolean;
424
+ tagsViewHeight: number;
425
+ tagsViewStyle: TagsViewStyle_2;
426
+ showFooter: boolean;
427
+ sidebarWidth: number;
428
+ sidebarCollapsedWidth: number;
429
+ headerHeight: number;
430
+ enableHotkeys: boolean;
431
+ version: string;
432
+ }>;
433
+ themeMode: Ref<ThemeMode, ThemeMode>;
434
+ primaryColor: Ref<string, string>;
435
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
436
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
437
+ enableTransition: Ref<boolean, boolean>;
438
+ layoutMode: Ref<LayoutMode, LayoutMode>;
439
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
440
+ collapsed: Ref<boolean, boolean>;
441
+ fixedHeader: Ref<boolean, boolean>;
442
+ showBreadcrumb: Ref<boolean, boolean>;
443
+ showBreadcrumbIcon: Ref<boolean, boolean>;
444
+ showTagsView: Ref<boolean, boolean>;
445
+ tagsViewHeight: Ref<number, number>;
446
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
447
+ showFooter: Ref<boolean, boolean>;
448
+ sidebarWidth: Ref<number, number>;
449
+ sidebarCollapsedWidth: Ref<number, number>;
450
+ headerHeight: Ref<number, number>;
451
+ enableHotkeys: Ref<boolean, boolean>;
452
+ version: Ref<string, string>;
453
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
454
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
455
+ shouldEnableTransition: ComputedRef<boolean>;
456
+ settingsState: ComputedRef<SettingsState_2>;
457
+ syncCSSVariables: () => void | undefined;
458
+ applyPreset: (preset: ThemePreset) => Promise<void>;
459
+ resetSettings: () => void;
460
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
461
+ toggleCollapse: () => void;
462
+ }, "syncCSSVariables" | "applyPreset" | "resetSettings" | "updateThemeMode" | "toggleCollapse">>;
463
+ }): any;
464
+ 'layout-prepend'?(_: {
465
+ settings: Store<string, Pick<{
466
+ defaults: Readonly<{
467
+ themeMode: ThemeMode;
468
+ primaryColor: string;
469
+ borderRadius: BorderRadiusSize_2;
470
+ transitionType: TransitionType_2;
471
+ enableTransition: boolean;
472
+ layoutMode: LayoutMode;
473
+ menuExpandMode: MenuExpandMode_2;
474
+ collapsed: boolean;
475
+ fixedHeader: boolean;
476
+ showBreadcrumb: boolean;
477
+ showBreadcrumbIcon: boolean;
478
+ showTagsView: boolean;
479
+ tagsViewHeight: number;
480
+ tagsViewStyle: TagsViewStyle_2;
481
+ showFooter: boolean;
482
+ sidebarWidth: number;
483
+ sidebarCollapsedWidth: number;
484
+ headerHeight: number;
485
+ enableHotkeys: boolean;
486
+ version: string;
487
+ }>;
488
+ themeMode: Ref<ThemeMode, ThemeMode>;
489
+ primaryColor: Ref<string, string>;
490
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
491
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
492
+ enableTransition: Ref<boolean, boolean>;
493
+ layoutMode: Ref<LayoutMode, LayoutMode>;
494
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
495
+ collapsed: Ref<boolean, boolean>;
496
+ fixedHeader: Ref<boolean, boolean>;
497
+ showBreadcrumb: Ref<boolean, boolean>;
498
+ showBreadcrumbIcon: Ref<boolean, boolean>;
499
+ showTagsView: Ref<boolean, boolean>;
500
+ tagsViewHeight: Ref<number, number>;
501
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
502
+ showFooter: Ref<boolean, boolean>;
503
+ sidebarWidth: Ref<number, number>;
504
+ sidebarCollapsedWidth: Ref<number, number>;
505
+ headerHeight: Ref<number, number>;
506
+ enableHotkeys: Ref<boolean, boolean>;
507
+ version: Ref<string, string>;
508
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
509
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
510
+ shouldEnableTransition: ComputedRef<boolean>;
511
+ settingsState: ComputedRef<SettingsState_2>;
512
+ syncCSSVariables: () => void | undefined;
513
+ applyPreset: (preset: ThemePreset) => Promise<void>;
514
+ resetSettings: () => void;
515
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
516
+ toggleCollapse: () => void;
517
+ }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
518
+ defaults: Readonly<{
519
+ themeMode: ThemeMode;
520
+ primaryColor: string;
521
+ borderRadius: BorderRadiusSize_2;
522
+ transitionType: TransitionType_2;
523
+ enableTransition: boolean;
524
+ layoutMode: LayoutMode;
525
+ menuExpandMode: MenuExpandMode_2;
526
+ collapsed: boolean;
527
+ fixedHeader: boolean;
528
+ showBreadcrumb: boolean;
529
+ showBreadcrumbIcon: boolean;
530
+ showTagsView: boolean;
531
+ tagsViewHeight: number;
532
+ tagsViewStyle: TagsViewStyle_2;
533
+ showFooter: boolean;
534
+ sidebarWidth: number;
535
+ sidebarCollapsedWidth: number;
536
+ headerHeight: number;
537
+ enableHotkeys: boolean;
538
+ version: string;
539
+ }>;
540
+ themeMode: Ref<ThemeMode, ThemeMode>;
541
+ primaryColor: Ref<string, string>;
542
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
543
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
544
+ enableTransition: Ref<boolean, boolean>;
545
+ layoutMode: Ref<LayoutMode, LayoutMode>;
546
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
547
+ collapsed: Ref<boolean, boolean>;
548
+ fixedHeader: Ref<boolean, boolean>;
549
+ showBreadcrumb: Ref<boolean, boolean>;
550
+ showBreadcrumbIcon: Ref<boolean, boolean>;
551
+ showTagsView: Ref<boolean, boolean>;
552
+ tagsViewHeight: Ref<number, number>;
553
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
554
+ showFooter: Ref<boolean, boolean>;
555
+ sidebarWidth: Ref<number, number>;
556
+ sidebarCollapsedWidth: Ref<number, number>;
557
+ headerHeight: Ref<number, number>;
558
+ enableHotkeys: Ref<boolean, boolean>;
559
+ version: Ref<string, string>;
560
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
561
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
562
+ shouldEnableTransition: ComputedRef<boolean>;
563
+ settingsState: ComputedRef<SettingsState_2>;
564
+ syncCSSVariables: () => void | undefined;
565
+ applyPreset: (preset: ThemePreset) => Promise<void>;
566
+ resetSettings: () => void;
567
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
568
+ toggleCollapse: () => void;
569
+ }, "borderRadiusValue" | "transitionName" | "shouldEnableTransition" | "settingsState">, Pick<{
570
+ defaults: Readonly<{
571
+ themeMode: ThemeMode;
572
+ primaryColor: string;
573
+ borderRadius: BorderRadiusSize_2;
574
+ transitionType: TransitionType_2;
575
+ enableTransition: boolean;
576
+ layoutMode: LayoutMode;
577
+ menuExpandMode: MenuExpandMode_2;
578
+ collapsed: boolean;
579
+ fixedHeader: boolean;
580
+ showBreadcrumb: boolean;
581
+ showBreadcrumbIcon: boolean;
582
+ showTagsView: boolean;
583
+ tagsViewHeight: number;
584
+ tagsViewStyle: TagsViewStyle_2;
585
+ showFooter: boolean;
586
+ sidebarWidth: number;
587
+ sidebarCollapsedWidth: number;
588
+ headerHeight: number;
589
+ enableHotkeys: boolean;
590
+ version: string;
591
+ }>;
592
+ themeMode: Ref<ThemeMode, ThemeMode>;
593
+ primaryColor: Ref<string, string>;
594
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
595
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
596
+ enableTransition: Ref<boolean, boolean>;
597
+ layoutMode: Ref<LayoutMode, LayoutMode>;
598
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
599
+ collapsed: Ref<boolean, boolean>;
600
+ fixedHeader: Ref<boolean, boolean>;
601
+ showBreadcrumb: Ref<boolean, boolean>;
602
+ showBreadcrumbIcon: Ref<boolean, boolean>;
603
+ showTagsView: Ref<boolean, boolean>;
604
+ tagsViewHeight: Ref<number, number>;
605
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
606
+ showFooter: Ref<boolean, boolean>;
607
+ sidebarWidth: Ref<number, number>;
608
+ sidebarCollapsedWidth: Ref<number, number>;
609
+ headerHeight: Ref<number, number>;
610
+ enableHotkeys: Ref<boolean, boolean>;
611
+ version: Ref<string, string>;
612
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
613
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
614
+ shouldEnableTransition: ComputedRef<boolean>;
615
+ settingsState: ComputedRef<SettingsState_2>;
616
+ syncCSSVariables: () => void | undefined;
617
+ applyPreset: (preset: ThemePreset) => Promise<void>;
618
+ resetSettings: () => void;
619
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
620
+ toggleCollapse: () => void;
621
+ }, "syncCSSVariables" | "applyPreset" | "resetSettings" | "updateThemeMode" | "toggleCollapse">>;
622
+ }): any;
623
+ 'layout-after-mode'?(_: {
624
+ settings: Store<string, Pick<{
625
+ defaults: Readonly<{
626
+ themeMode: ThemeMode;
627
+ primaryColor: string;
628
+ borderRadius: BorderRadiusSize_2;
629
+ transitionType: TransitionType_2;
630
+ enableTransition: boolean;
631
+ layoutMode: LayoutMode;
632
+ menuExpandMode: MenuExpandMode_2;
633
+ collapsed: boolean;
634
+ fixedHeader: boolean;
635
+ showBreadcrumb: boolean;
636
+ showBreadcrumbIcon: boolean;
637
+ showTagsView: boolean;
638
+ tagsViewHeight: number;
639
+ tagsViewStyle: TagsViewStyle_2;
640
+ showFooter: boolean;
641
+ sidebarWidth: number;
642
+ sidebarCollapsedWidth: number;
643
+ headerHeight: number;
644
+ enableHotkeys: boolean;
645
+ version: string;
646
+ }>;
647
+ themeMode: Ref<ThemeMode, ThemeMode>;
648
+ primaryColor: Ref<string, string>;
649
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
650
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
651
+ enableTransition: Ref<boolean, boolean>;
652
+ layoutMode: Ref<LayoutMode, LayoutMode>;
653
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
654
+ collapsed: Ref<boolean, boolean>;
655
+ fixedHeader: Ref<boolean, boolean>;
656
+ showBreadcrumb: Ref<boolean, boolean>;
657
+ showBreadcrumbIcon: Ref<boolean, boolean>;
658
+ showTagsView: Ref<boolean, boolean>;
659
+ tagsViewHeight: Ref<number, number>;
660
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
661
+ showFooter: Ref<boolean, boolean>;
662
+ sidebarWidth: Ref<number, number>;
663
+ sidebarCollapsedWidth: Ref<number, number>;
664
+ headerHeight: Ref<number, number>;
665
+ enableHotkeys: Ref<boolean, boolean>;
666
+ version: Ref<string, string>;
667
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
668
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
669
+ shouldEnableTransition: ComputedRef<boolean>;
670
+ settingsState: ComputedRef<SettingsState_2>;
671
+ syncCSSVariables: () => void | undefined;
672
+ applyPreset: (preset: ThemePreset) => Promise<void>;
673
+ resetSettings: () => void;
674
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
675
+ toggleCollapse: () => void;
676
+ }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
677
+ defaults: Readonly<{
678
+ themeMode: ThemeMode;
679
+ primaryColor: string;
680
+ borderRadius: BorderRadiusSize_2;
681
+ transitionType: TransitionType_2;
682
+ enableTransition: boolean;
683
+ layoutMode: LayoutMode;
684
+ menuExpandMode: MenuExpandMode_2;
685
+ collapsed: boolean;
686
+ fixedHeader: boolean;
687
+ showBreadcrumb: boolean;
688
+ showBreadcrumbIcon: boolean;
689
+ showTagsView: boolean;
690
+ tagsViewHeight: number;
691
+ tagsViewStyle: TagsViewStyle_2;
692
+ showFooter: boolean;
693
+ sidebarWidth: number;
694
+ sidebarCollapsedWidth: number;
695
+ headerHeight: number;
696
+ enableHotkeys: boolean;
697
+ version: string;
698
+ }>;
699
+ themeMode: Ref<ThemeMode, ThemeMode>;
700
+ primaryColor: Ref<string, string>;
701
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
702
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
703
+ enableTransition: Ref<boolean, boolean>;
704
+ layoutMode: Ref<LayoutMode, LayoutMode>;
705
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
706
+ collapsed: Ref<boolean, boolean>;
707
+ fixedHeader: Ref<boolean, boolean>;
708
+ showBreadcrumb: Ref<boolean, boolean>;
709
+ showBreadcrumbIcon: Ref<boolean, boolean>;
710
+ showTagsView: Ref<boolean, boolean>;
711
+ tagsViewHeight: Ref<number, number>;
712
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
713
+ showFooter: Ref<boolean, boolean>;
714
+ sidebarWidth: Ref<number, number>;
715
+ sidebarCollapsedWidth: Ref<number, number>;
716
+ headerHeight: Ref<number, number>;
717
+ enableHotkeys: Ref<boolean, boolean>;
718
+ version: Ref<string, string>;
719
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
720
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
721
+ shouldEnableTransition: ComputedRef<boolean>;
722
+ settingsState: ComputedRef<SettingsState_2>;
723
+ syncCSSVariables: () => void | undefined;
724
+ applyPreset: (preset: ThemePreset) => Promise<void>;
725
+ resetSettings: () => void;
726
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
727
+ toggleCollapse: () => void;
728
+ }, "borderRadiusValue" | "transitionName" | "shouldEnableTransition" | "settingsState">, Pick<{
729
+ defaults: Readonly<{
730
+ themeMode: ThemeMode;
731
+ primaryColor: string;
732
+ borderRadius: BorderRadiusSize_2;
733
+ transitionType: TransitionType_2;
734
+ enableTransition: boolean;
735
+ layoutMode: LayoutMode;
736
+ menuExpandMode: MenuExpandMode_2;
737
+ collapsed: boolean;
738
+ fixedHeader: boolean;
739
+ showBreadcrumb: boolean;
740
+ showBreadcrumbIcon: boolean;
741
+ showTagsView: boolean;
742
+ tagsViewHeight: number;
743
+ tagsViewStyle: TagsViewStyle_2;
744
+ showFooter: boolean;
745
+ sidebarWidth: number;
746
+ sidebarCollapsedWidth: number;
747
+ headerHeight: number;
748
+ enableHotkeys: boolean;
749
+ version: string;
750
+ }>;
751
+ themeMode: Ref<ThemeMode, ThemeMode>;
752
+ primaryColor: Ref<string, string>;
753
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
754
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
755
+ enableTransition: Ref<boolean, boolean>;
756
+ layoutMode: Ref<LayoutMode, LayoutMode>;
757
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
758
+ collapsed: Ref<boolean, boolean>;
759
+ fixedHeader: Ref<boolean, boolean>;
760
+ showBreadcrumb: Ref<boolean, boolean>;
761
+ showBreadcrumbIcon: Ref<boolean, boolean>;
762
+ showTagsView: Ref<boolean, boolean>;
763
+ tagsViewHeight: Ref<number, number>;
764
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
765
+ showFooter: Ref<boolean, boolean>;
766
+ sidebarWidth: Ref<number, number>;
767
+ sidebarCollapsedWidth: Ref<number, number>;
768
+ headerHeight: Ref<number, number>;
769
+ enableHotkeys: Ref<boolean, boolean>;
770
+ version: Ref<string, string>;
771
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
772
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
773
+ shouldEnableTransition: ComputedRef<boolean>;
774
+ settingsState: ComputedRef<SettingsState_2>;
775
+ syncCSSVariables: () => void | undefined;
776
+ applyPreset: (preset: ThemePreset) => Promise<void>;
777
+ resetSettings: () => void;
778
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
779
+ toggleCollapse: () => void;
780
+ }, "syncCSSVariables" | "applyPreset" | "resetSettings" | "updateThemeMode" | "toggleCollapse">>;
781
+ }): any;
782
+ 'layout-append'?(_: {
783
+ settings: Store<string, Pick<{
784
+ defaults: Readonly<{
785
+ themeMode: ThemeMode;
786
+ primaryColor: string;
787
+ borderRadius: BorderRadiusSize_2;
788
+ transitionType: TransitionType_2;
789
+ enableTransition: boolean;
790
+ layoutMode: LayoutMode;
791
+ menuExpandMode: MenuExpandMode_2;
792
+ collapsed: boolean;
793
+ fixedHeader: boolean;
794
+ showBreadcrumb: boolean;
795
+ showBreadcrumbIcon: boolean;
796
+ showTagsView: boolean;
797
+ tagsViewHeight: number;
798
+ tagsViewStyle: TagsViewStyle_2;
799
+ showFooter: boolean;
800
+ sidebarWidth: number;
801
+ sidebarCollapsedWidth: number;
802
+ headerHeight: number;
803
+ enableHotkeys: boolean;
804
+ version: string;
805
+ }>;
806
+ themeMode: Ref<ThemeMode, ThemeMode>;
807
+ primaryColor: Ref<string, string>;
808
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
809
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
810
+ enableTransition: Ref<boolean, boolean>;
811
+ layoutMode: Ref<LayoutMode, LayoutMode>;
812
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
813
+ collapsed: Ref<boolean, boolean>;
814
+ fixedHeader: Ref<boolean, boolean>;
815
+ showBreadcrumb: Ref<boolean, boolean>;
816
+ showBreadcrumbIcon: Ref<boolean, boolean>;
817
+ showTagsView: Ref<boolean, boolean>;
818
+ tagsViewHeight: Ref<number, number>;
819
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
820
+ showFooter: Ref<boolean, boolean>;
821
+ sidebarWidth: Ref<number, number>;
822
+ sidebarCollapsedWidth: Ref<number, number>;
823
+ headerHeight: Ref<number, number>;
824
+ enableHotkeys: Ref<boolean, boolean>;
825
+ version: Ref<string, string>;
826
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
827
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
828
+ shouldEnableTransition: ComputedRef<boolean>;
829
+ settingsState: ComputedRef<SettingsState_2>;
830
+ syncCSSVariables: () => void | undefined;
831
+ applyPreset: (preset: ThemePreset) => Promise<void>;
832
+ resetSettings: () => void;
833
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
834
+ toggleCollapse: () => void;
835
+ }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
836
+ defaults: Readonly<{
837
+ themeMode: ThemeMode;
838
+ primaryColor: string;
839
+ borderRadius: BorderRadiusSize_2;
840
+ transitionType: TransitionType_2;
841
+ enableTransition: boolean;
842
+ layoutMode: LayoutMode;
843
+ menuExpandMode: MenuExpandMode_2;
844
+ collapsed: boolean;
845
+ fixedHeader: boolean;
846
+ showBreadcrumb: boolean;
847
+ showBreadcrumbIcon: boolean;
848
+ showTagsView: boolean;
849
+ tagsViewHeight: number;
850
+ tagsViewStyle: TagsViewStyle_2;
851
+ showFooter: boolean;
852
+ sidebarWidth: number;
853
+ sidebarCollapsedWidth: number;
854
+ headerHeight: number;
855
+ enableHotkeys: boolean;
856
+ version: string;
857
+ }>;
858
+ themeMode: Ref<ThemeMode, ThemeMode>;
859
+ primaryColor: Ref<string, string>;
860
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
861
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
862
+ enableTransition: Ref<boolean, boolean>;
863
+ layoutMode: Ref<LayoutMode, LayoutMode>;
864
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
865
+ collapsed: Ref<boolean, boolean>;
866
+ fixedHeader: Ref<boolean, boolean>;
867
+ showBreadcrumb: Ref<boolean, boolean>;
868
+ showBreadcrumbIcon: Ref<boolean, boolean>;
869
+ showTagsView: Ref<boolean, boolean>;
870
+ tagsViewHeight: Ref<number, number>;
871
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
872
+ showFooter: Ref<boolean, boolean>;
873
+ sidebarWidth: Ref<number, number>;
874
+ sidebarCollapsedWidth: Ref<number, number>;
875
+ headerHeight: Ref<number, number>;
876
+ enableHotkeys: Ref<boolean, boolean>;
877
+ version: Ref<string, string>;
878
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
879
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
880
+ shouldEnableTransition: ComputedRef<boolean>;
881
+ settingsState: ComputedRef<SettingsState_2>;
882
+ syncCSSVariables: () => void | undefined;
883
+ applyPreset: (preset: ThemePreset) => Promise<void>;
884
+ resetSettings: () => void;
885
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
886
+ toggleCollapse: () => void;
887
+ }, "borderRadiusValue" | "transitionName" | "shouldEnableTransition" | "settingsState">, Pick<{
888
+ defaults: Readonly<{
889
+ themeMode: ThemeMode;
890
+ primaryColor: string;
891
+ borderRadius: BorderRadiusSize_2;
892
+ transitionType: TransitionType_2;
893
+ enableTransition: boolean;
894
+ layoutMode: LayoutMode;
895
+ menuExpandMode: MenuExpandMode_2;
896
+ collapsed: boolean;
897
+ fixedHeader: boolean;
898
+ showBreadcrumb: boolean;
899
+ showBreadcrumbIcon: boolean;
900
+ showTagsView: boolean;
901
+ tagsViewHeight: number;
902
+ tagsViewStyle: TagsViewStyle_2;
903
+ showFooter: boolean;
904
+ sidebarWidth: number;
905
+ sidebarCollapsedWidth: number;
906
+ headerHeight: number;
907
+ enableHotkeys: boolean;
908
+ version: string;
909
+ }>;
910
+ themeMode: Ref<ThemeMode, ThemeMode>;
911
+ primaryColor: Ref<string, string>;
912
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
913
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
914
+ enableTransition: Ref<boolean, boolean>;
915
+ layoutMode: Ref<LayoutMode, LayoutMode>;
916
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
917
+ collapsed: Ref<boolean, boolean>;
918
+ fixedHeader: Ref<boolean, boolean>;
919
+ showBreadcrumb: Ref<boolean, boolean>;
920
+ showBreadcrumbIcon: Ref<boolean, boolean>;
921
+ showTagsView: Ref<boolean, boolean>;
922
+ tagsViewHeight: Ref<number, number>;
923
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
924
+ showFooter: Ref<boolean, boolean>;
925
+ sidebarWidth: Ref<number, number>;
926
+ sidebarCollapsedWidth: Ref<number, number>;
927
+ headerHeight: Ref<number, number>;
928
+ enableHotkeys: Ref<boolean, boolean>;
929
+ version: Ref<string, string>;
930
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
931
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
932
+ shouldEnableTransition: ComputedRef<boolean>;
933
+ settingsState: ComputedRef<SettingsState_2>;
934
+ syncCSSVariables: () => void | undefined;
935
+ applyPreset: (preset: ThemePreset) => Promise<void>;
936
+ resetSettings: () => void;
937
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
938
+ toggleCollapse: () => void;
939
+ }, "syncCSSVariables" | "applyPreset" | "resetSettings" | "updateThemeMode" | "toggleCollapse">>;
940
+ }): any;
941
+ 'features-prepend'?(_: {
942
+ settings: Store<string, Pick<{
943
+ defaults: Readonly<{
944
+ themeMode: ThemeMode;
945
+ primaryColor: string;
946
+ borderRadius: BorderRadiusSize_2;
947
+ transitionType: TransitionType_2;
948
+ enableTransition: boolean;
949
+ layoutMode: LayoutMode;
950
+ menuExpandMode: MenuExpandMode_2;
951
+ collapsed: boolean;
952
+ fixedHeader: boolean;
953
+ showBreadcrumb: boolean;
954
+ showBreadcrumbIcon: boolean;
955
+ showTagsView: boolean;
956
+ tagsViewHeight: number;
957
+ tagsViewStyle: TagsViewStyle_2;
958
+ showFooter: boolean;
959
+ sidebarWidth: number;
960
+ sidebarCollapsedWidth: number;
961
+ headerHeight: number;
962
+ enableHotkeys: boolean;
963
+ version: string;
964
+ }>;
965
+ themeMode: Ref<ThemeMode, ThemeMode>;
966
+ primaryColor: Ref<string, string>;
967
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
968
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
969
+ enableTransition: Ref<boolean, boolean>;
970
+ layoutMode: Ref<LayoutMode, LayoutMode>;
971
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
972
+ collapsed: Ref<boolean, boolean>;
973
+ fixedHeader: Ref<boolean, boolean>;
974
+ showBreadcrumb: Ref<boolean, boolean>;
975
+ showBreadcrumbIcon: Ref<boolean, boolean>;
976
+ showTagsView: Ref<boolean, boolean>;
977
+ tagsViewHeight: Ref<number, number>;
978
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
979
+ showFooter: Ref<boolean, boolean>;
980
+ sidebarWidth: Ref<number, number>;
981
+ sidebarCollapsedWidth: Ref<number, number>;
982
+ headerHeight: Ref<number, number>;
983
+ enableHotkeys: Ref<boolean, boolean>;
984
+ version: Ref<string, string>;
985
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
986
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
987
+ shouldEnableTransition: ComputedRef<boolean>;
988
+ settingsState: ComputedRef<SettingsState_2>;
989
+ syncCSSVariables: () => void | undefined;
990
+ applyPreset: (preset: ThemePreset) => Promise<void>;
991
+ resetSettings: () => void;
992
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
993
+ toggleCollapse: () => void;
994
+ }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
995
+ defaults: Readonly<{
996
+ themeMode: ThemeMode;
997
+ primaryColor: string;
998
+ borderRadius: BorderRadiusSize_2;
999
+ transitionType: TransitionType_2;
1000
+ enableTransition: boolean;
1001
+ layoutMode: LayoutMode;
1002
+ menuExpandMode: MenuExpandMode_2;
1003
+ collapsed: boolean;
1004
+ fixedHeader: boolean;
1005
+ showBreadcrumb: boolean;
1006
+ showBreadcrumbIcon: boolean;
1007
+ showTagsView: boolean;
1008
+ tagsViewHeight: number;
1009
+ tagsViewStyle: TagsViewStyle_2;
1010
+ showFooter: boolean;
1011
+ sidebarWidth: number;
1012
+ sidebarCollapsedWidth: number;
1013
+ headerHeight: number;
1014
+ enableHotkeys: boolean;
1015
+ version: string;
1016
+ }>;
1017
+ themeMode: Ref<ThemeMode, ThemeMode>;
1018
+ primaryColor: Ref<string, string>;
1019
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
1020
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
1021
+ enableTransition: Ref<boolean, boolean>;
1022
+ layoutMode: Ref<LayoutMode, LayoutMode>;
1023
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
1024
+ collapsed: Ref<boolean, boolean>;
1025
+ fixedHeader: Ref<boolean, boolean>;
1026
+ showBreadcrumb: Ref<boolean, boolean>;
1027
+ showBreadcrumbIcon: Ref<boolean, boolean>;
1028
+ showTagsView: Ref<boolean, boolean>;
1029
+ tagsViewHeight: Ref<number, number>;
1030
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
1031
+ showFooter: Ref<boolean, boolean>;
1032
+ sidebarWidth: Ref<number, number>;
1033
+ sidebarCollapsedWidth: Ref<number, number>;
1034
+ headerHeight: Ref<number, number>;
1035
+ enableHotkeys: Ref<boolean, boolean>;
1036
+ version: Ref<string, string>;
1037
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
1038
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
1039
+ shouldEnableTransition: ComputedRef<boolean>;
1040
+ settingsState: ComputedRef<SettingsState_2>;
1041
+ syncCSSVariables: () => void | undefined;
1042
+ applyPreset: (preset: ThemePreset) => Promise<void>;
1043
+ resetSettings: () => void;
1044
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
1045
+ toggleCollapse: () => void;
1046
+ }, "borderRadiusValue" | "transitionName" | "shouldEnableTransition" | "settingsState">, Pick<{
1047
+ defaults: Readonly<{
1048
+ themeMode: ThemeMode;
1049
+ primaryColor: string;
1050
+ borderRadius: BorderRadiusSize_2;
1051
+ transitionType: TransitionType_2;
1052
+ enableTransition: boolean;
1053
+ layoutMode: LayoutMode;
1054
+ menuExpandMode: MenuExpandMode_2;
1055
+ collapsed: boolean;
1056
+ fixedHeader: boolean;
1057
+ showBreadcrumb: boolean;
1058
+ showBreadcrumbIcon: boolean;
1059
+ showTagsView: boolean;
1060
+ tagsViewHeight: number;
1061
+ tagsViewStyle: TagsViewStyle_2;
1062
+ showFooter: boolean;
1063
+ sidebarWidth: number;
1064
+ sidebarCollapsedWidth: number;
1065
+ headerHeight: number;
1066
+ enableHotkeys: boolean;
1067
+ version: string;
1068
+ }>;
1069
+ themeMode: Ref<ThemeMode, ThemeMode>;
1070
+ primaryColor: Ref<string, string>;
1071
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
1072
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
1073
+ enableTransition: Ref<boolean, boolean>;
1074
+ layoutMode: Ref<LayoutMode, LayoutMode>;
1075
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
1076
+ collapsed: Ref<boolean, boolean>;
1077
+ fixedHeader: Ref<boolean, boolean>;
1078
+ showBreadcrumb: Ref<boolean, boolean>;
1079
+ showBreadcrumbIcon: Ref<boolean, boolean>;
1080
+ showTagsView: Ref<boolean, boolean>;
1081
+ tagsViewHeight: Ref<number, number>;
1082
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
1083
+ showFooter: Ref<boolean, boolean>;
1084
+ sidebarWidth: Ref<number, number>;
1085
+ sidebarCollapsedWidth: Ref<number, number>;
1086
+ headerHeight: Ref<number, number>;
1087
+ enableHotkeys: Ref<boolean, boolean>;
1088
+ version: Ref<string, string>;
1089
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
1090
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
1091
+ shouldEnableTransition: ComputedRef<boolean>;
1092
+ settingsState: ComputedRef<SettingsState_2>;
1093
+ syncCSSVariables: () => void | undefined;
1094
+ applyPreset: (preset: ThemePreset) => Promise<void>;
1095
+ resetSettings: () => void;
1096
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
1097
+ toggleCollapse: () => void;
1098
+ }, "syncCSSVariables" | "applyPreset" | "resetSettings" | "updateThemeMode" | "toggleCollapse">>;
1099
+ }): any;
1100
+ 'features-append'?(_: {
1101
+ settings: Store<string, Pick<{
1102
+ defaults: Readonly<{
1103
+ themeMode: ThemeMode;
1104
+ primaryColor: string;
1105
+ borderRadius: BorderRadiusSize_2;
1106
+ transitionType: TransitionType_2;
1107
+ enableTransition: boolean;
1108
+ layoutMode: LayoutMode;
1109
+ menuExpandMode: MenuExpandMode_2;
1110
+ collapsed: boolean;
1111
+ fixedHeader: boolean;
1112
+ showBreadcrumb: boolean;
1113
+ showBreadcrumbIcon: boolean;
1114
+ showTagsView: boolean;
1115
+ tagsViewHeight: number;
1116
+ tagsViewStyle: TagsViewStyle_2;
1117
+ showFooter: boolean;
1118
+ sidebarWidth: number;
1119
+ sidebarCollapsedWidth: number;
1120
+ headerHeight: number;
1121
+ enableHotkeys: boolean;
1122
+ version: string;
1123
+ }>;
1124
+ themeMode: Ref<ThemeMode, ThemeMode>;
1125
+ primaryColor: Ref<string, string>;
1126
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
1127
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
1128
+ enableTransition: Ref<boolean, boolean>;
1129
+ layoutMode: Ref<LayoutMode, LayoutMode>;
1130
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
1131
+ collapsed: Ref<boolean, boolean>;
1132
+ fixedHeader: Ref<boolean, boolean>;
1133
+ showBreadcrumb: Ref<boolean, boolean>;
1134
+ showBreadcrumbIcon: Ref<boolean, boolean>;
1135
+ showTagsView: Ref<boolean, boolean>;
1136
+ tagsViewHeight: Ref<number, number>;
1137
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
1138
+ showFooter: Ref<boolean, boolean>;
1139
+ sidebarWidth: Ref<number, number>;
1140
+ sidebarCollapsedWidth: Ref<number, number>;
1141
+ headerHeight: Ref<number, number>;
1142
+ enableHotkeys: Ref<boolean, boolean>;
1143
+ version: Ref<string, string>;
1144
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
1145
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
1146
+ shouldEnableTransition: ComputedRef<boolean>;
1147
+ settingsState: ComputedRef<SettingsState_2>;
1148
+ syncCSSVariables: () => void | undefined;
1149
+ applyPreset: (preset: ThemePreset) => Promise<void>;
1150
+ resetSettings: () => void;
1151
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
1152
+ toggleCollapse: () => void;
1153
+ }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
1154
+ defaults: Readonly<{
1155
+ themeMode: ThemeMode;
1156
+ primaryColor: string;
1157
+ borderRadius: BorderRadiusSize_2;
1158
+ transitionType: TransitionType_2;
1159
+ enableTransition: boolean;
1160
+ layoutMode: LayoutMode;
1161
+ menuExpandMode: MenuExpandMode_2;
1162
+ collapsed: boolean;
1163
+ fixedHeader: boolean;
1164
+ showBreadcrumb: boolean;
1165
+ showBreadcrumbIcon: boolean;
1166
+ showTagsView: boolean;
1167
+ tagsViewHeight: number;
1168
+ tagsViewStyle: TagsViewStyle_2;
1169
+ showFooter: boolean;
1170
+ sidebarWidth: number;
1171
+ sidebarCollapsedWidth: number;
1172
+ headerHeight: number;
1173
+ enableHotkeys: boolean;
1174
+ version: string;
1175
+ }>;
1176
+ themeMode: Ref<ThemeMode, ThemeMode>;
1177
+ primaryColor: Ref<string, string>;
1178
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
1179
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
1180
+ enableTransition: Ref<boolean, boolean>;
1181
+ layoutMode: Ref<LayoutMode, LayoutMode>;
1182
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
1183
+ collapsed: Ref<boolean, boolean>;
1184
+ fixedHeader: Ref<boolean, boolean>;
1185
+ showBreadcrumb: Ref<boolean, boolean>;
1186
+ showBreadcrumbIcon: Ref<boolean, boolean>;
1187
+ showTagsView: Ref<boolean, boolean>;
1188
+ tagsViewHeight: Ref<number, number>;
1189
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
1190
+ showFooter: Ref<boolean, boolean>;
1191
+ sidebarWidth: Ref<number, number>;
1192
+ sidebarCollapsedWidth: Ref<number, number>;
1193
+ headerHeight: Ref<number, number>;
1194
+ enableHotkeys: Ref<boolean, boolean>;
1195
+ version: Ref<string, string>;
1196
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
1197
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
1198
+ shouldEnableTransition: ComputedRef<boolean>;
1199
+ settingsState: ComputedRef<SettingsState_2>;
1200
+ syncCSSVariables: () => void | undefined;
1201
+ applyPreset: (preset: ThemePreset) => Promise<void>;
1202
+ resetSettings: () => void;
1203
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
1204
+ toggleCollapse: () => void;
1205
+ }, "borderRadiusValue" | "transitionName" | "shouldEnableTransition" | "settingsState">, Pick<{
1206
+ defaults: Readonly<{
1207
+ themeMode: ThemeMode;
1208
+ primaryColor: string;
1209
+ borderRadius: BorderRadiusSize_2;
1210
+ transitionType: TransitionType_2;
1211
+ enableTransition: boolean;
1212
+ layoutMode: LayoutMode;
1213
+ menuExpandMode: MenuExpandMode_2;
1214
+ collapsed: boolean;
1215
+ fixedHeader: boolean;
1216
+ showBreadcrumb: boolean;
1217
+ showBreadcrumbIcon: boolean;
1218
+ showTagsView: boolean;
1219
+ tagsViewHeight: number;
1220
+ tagsViewStyle: TagsViewStyle_2;
1221
+ showFooter: boolean;
1222
+ sidebarWidth: number;
1223
+ sidebarCollapsedWidth: number;
1224
+ headerHeight: number;
1225
+ enableHotkeys: boolean;
1226
+ version: string;
1227
+ }>;
1228
+ themeMode: Ref<ThemeMode, ThemeMode>;
1229
+ primaryColor: Ref<string, string>;
1230
+ borderRadius: Ref<BorderRadiusSize_2, BorderRadiusSize_2>;
1231
+ transitionType: Ref<TransitionType_2, TransitionType_2>;
1232
+ enableTransition: Ref<boolean, boolean>;
1233
+ layoutMode: Ref<LayoutMode, LayoutMode>;
1234
+ menuExpandMode: Ref<MenuExpandMode_2, MenuExpandMode_2>;
1235
+ collapsed: Ref<boolean, boolean>;
1236
+ fixedHeader: Ref<boolean, boolean>;
1237
+ showBreadcrumb: Ref<boolean, boolean>;
1238
+ showBreadcrumbIcon: Ref<boolean, boolean>;
1239
+ showTagsView: Ref<boolean, boolean>;
1240
+ tagsViewHeight: Ref<number, number>;
1241
+ tagsViewStyle: Ref<TagsViewStyle_2, TagsViewStyle_2>;
1242
+ showFooter: Ref<boolean, boolean>;
1243
+ sidebarWidth: Ref<number, number>;
1244
+ sidebarCollapsedWidth: Ref<number, number>;
1245
+ headerHeight: Ref<number, number>;
1246
+ enableHotkeys: Ref<boolean, boolean>;
1247
+ version: Ref<string, string>;
1248
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
1249
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
1250
+ shouldEnableTransition: ComputedRef<boolean>;
1251
+ settingsState: ComputedRef<SettingsState_2>;
1252
+ syncCSSVariables: () => void | undefined;
1253
+ applyPreset: (preset: ThemePreset) => Promise<void>;
1254
+ resetSettings: () => void;
1255
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
1256
+ toggleCollapse: () => void;
1257
+ }, "syncCSSVariables" | "applyPreset" | "resetSettings" | "updateThemeMode" | "toggleCollapse">>;
1258
+ }): any;
1259
+ };
1260
+ refs: {};
1261
+ rootEl: any;
1262
+ };
1263
+
1264
+ declare type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
1265
+
1266
+ declare type __VLS_TemplateResult_2 = ReturnType<typeof __VLS_template_2>;
1267
+
1268
+ declare type __VLS_WithTemplateSlots<T, S> = T & {
1269
+ new (): {
1270
+ $slots: S;
1271
+ };
1272
+ };
1273
+
1274
+ declare type __VLS_WithTemplateSlots_2<T, S> = T & {
1275
+ new (): {
1276
+ $slots: S;
1277
+ };
1278
+ };
1279
+
1280
+ /**
1281
+ * 调整颜色亮度。
1282
+ * @returns 调整后的 #rrggbb;输入非法时原样返回。
1283
+ */
1284
+ export declare function adjustColor(color: string, amount: number): string;
1285
+
1286
+ /** 校验需要跨字段判断的布局尺寸约束。 */
1287
+ export declare function assertLayoutSettingsRelationships(settings: Pick<SettingsState, "sidebarCollapsedWidth" | "sidebarWidth">): void;
1288
+
1289
+ /**
1290
+ * 将响应式设置绑定到指定样式作用域,并在 dispose 时精确恢复原值。
1291
+ */
1292
+ export declare function bindLayoutCssVariables(source: LayoutCssVariableSource, options?: LayoutCssVariableOptions): LayoutCssVariableBinding;
1293
+
1294
+ export declare const BORDER_RADIUS_MAP: {
1295
+ readonly small: "4px";
1296
+ readonly medium: "6px";
1297
+ readonly large: "8px";
1298
+ };
1299
+
1300
+ /** 圆角大小。 */
1301
+ export declare type BorderRadiusSize = "small" | "medium" | "large";
1302
+
1303
+ /** 圆角大小。 */
1304
+ declare type BorderRadiusSize_2 = "small" | "medium" | "large";
1305
+
1306
+ export declare const BrandLogo: DefineComponent<__VLS_Props_2, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_2> & Readonly<{}>, {
1307
+ collapsed: boolean;
1308
+ size: number;
1309
+ showName: boolean;
1310
+ showDivider: boolean;
1311
+ variant: "vertical" | "horizontal";
1312
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
1313
+
1314
+ export declare const C_CardLayout: {
1315
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
1316
+ P: {};
1317
+ B: {};
1318
+ D: {};
1319
+ C: {};
1320
+ M: {};
1321
+ Defaults: {};
1322
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
1323
+ __isFragment?: never;
1324
+ __isTeleport?: never;
1325
+ __isSuspense?: never;
1326
+ } & ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
1327
+ $slots: {
1328
+ 'menu-trigger'?(_: {}): any;
1329
+ logo?(_: {}): any;
1330
+ 'header-extra'?(_: {}): any;
1331
+ 'tags-view'?(_: {}): any;
1332
+ 'drawer-menu'?(_: {}): any;
1333
+ footer?(_: {}): any;
1334
+ };
1335
+ });
1336
+
1337
+ export declare const C_LayoutContainer: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
1338
+
1339
+ export declare const C_MixLayout: {
1340
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
1341
+ P: {};
1342
+ B: {};
1343
+ D: {};
1344
+ C: {};
1345
+ M: {};
1346
+ Defaults: {};
1347
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
1348
+ __isFragment?: never;
1349
+ __isTeleport?: never;
1350
+ __isSuspense?: never;
1351
+ } & ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
1352
+ $slots: {
1353
+ logo?(_: {}): any;
1354
+ header?(_: {}): any;
1355
+ footer?(_: {}): any;
1356
+ };
1357
+ });
1358
+
1359
+ export declare const C_MixTopLayout: {
1360
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
1361
+ P: {};
1362
+ B: {};
1363
+ D: {};
1364
+ C: {};
1365
+ M: {};
1366
+ Defaults: {};
1367
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
1368
+ __isFragment?: never;
1369
+ __isTeleport?: never;
1370
+ __isSuspense?: never;
1371
+ } & ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
1372
+ $slots: {
1373
+ logo?(_: {}): any;
1374
+ brand?(_: {}): any;
1375
+ 'top-menu'?(_: {}): any;
1376
+ 'header-extra'?(_: {}): any;
1377
+ 'tags-view'?(_: {}): any;
1378
+ footer?(_: {}): any;
1379
+ };
1380
+ });
1381
+
1382
+ export declare const C_ReverseHorizontalMixLayout: {
1383
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
1384
+ P: {};
1385
+ B: {};
1386
+ D: {};
1387
+ C: {};
1388
+ M: {};
1389
+ Defaults: {};
1390
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
1391
+ __isFragment?: never;
1392
+ __isTeleport?: never;
1393
+ __isSuspense?: never;
1394
+ } & ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
1395
+ $slots: {
1396
+ logo?(_: {}): any;
1397
+ 'top-menu'?(_: {}): any;
1398
+ 'header-extra'?(_: {}): any;
1399
+ 'tags-view'?(_: {}): any;
1400
+ footer?(_: {}): any;
1401
+ };
1402
+ });
1403
+
1404
+ export declare const C_SideLayout: {
1405
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{
1406
+ collapsed?: boolean;
1407
+ }> & Readonly<{
1408
+ "onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
1409
+ }>, {
1410
+ collapsed: ComputedRef<boolean>;
1411
+ toggleCollapse: () => void;
1412
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1413
+ "update:collapsed": (value: boolean) => any;
1414
+ }, PublicProps, {
1415
+ collapsed: boolean;
1416
+ }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
1417
+ P: {};
1418
+ B: {};
1419
+ D: {};
1420
+ C: {};
1421
+ M: {};
1422
+ Defaults: {};
1423
+ }, Readonly<{
1424
+ collapsed?: boolean;
1425
+ }> & Readonly<{
1426
+ "onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
1427
+ }>, {
1428
+ collapsed: ComputedRef<boolean>;
1429
+ toggleCollapse: () => void;
1430
+ }, {}, {}, {}, {
1431
+ collapsed: boolean;
1432
+ }>;
1433
+ __isFragment?: never;
1434
+ __isTeleport?: never;
1435
+ __isSuspense?: never;
1436
+ } & ComponentOptionsBase<Readonly<{
1437
+ collapsed?: boolean;
1438
+ }> & Readonly<{
1439
+ "onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
1440
+ }>, {
1441
+ collapsed: ComputedRef<boolean>;
1442
+ toggleCollapse: () => void;
1443
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1444
+ "update:collapsed": (value: boolean) => any;
1445
+ }, string, {
1446
+ collapsed: boolean;
1447
+ }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
1448
+ $slots: {
1449
+ logo?(_: {}): any;
1450
+ menu?(_: {
1451
+ collapsed: boolean;
1452
+ }): any;
1453
+ header?(_: {}): any;
1454
+ footer?(_: {}): any;
1455
+ };
1456
+ });
1457
+
1458
+ export declare const C_TopLayout: {
1459
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
1460
+ P: {};
1461
+ B: {};
1462
+ D: {};
1463
+ C: {};
1464
+ M: {};
1465
+ Defaults: {};
1466
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
1467
+ __isFragment?: never;
1468
+ __isTeleport?: never;
1469
+ __isSuspense?: never;
1470
+ } & ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
1471
+ $slots: {
1472
+ logo?(_: {}): any;
1473
+ menu?(_: {}): any;
1474
+ 'header-extra'?(_: {}): any;
1475
+ 'tags-view'?(_: {}): any;
1476
+ footer?(_: {}): any;
1477
+ };
1478
+ });
1479
+
1480
+ /** 计算指定容器内可直接展示的菜单项数量。 */
1481
+ export declare function calculateVisibleMenuCount(items: readonly MenuOptions[], containerWidth: number, overflowReserve?: number): number;
1482
+
1483
+ /** @deprecated 请使用 C_CardLayout;计划在 4.0 移除。 */
1484
+ export declare const CardLayout: {
1485
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
1486
+ P: {};
1487
+ B: {};
1488
+ D: {};
1489
+ C: {};
1490
+ M: {};
1491
+ Defaults: {};
1492
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
1493
+ __isFragment?: never;
1494
+ __isTeleport?: never;
1495
+ __isSuspense?: never;
1496
+ } & ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
1497
+ $slots: {
1498
+ 'menu-trigger'?(_: {}): any;
1499
+ logo?(_: {}): any;
1500
+ 'header-extra'?(_: {}): any;
1501
+ 'tags-view'?(_: {}): any;
1502
+ 'drawer-menu'?(_: {}): any;
1503
+ footer?(_: {}): any;
1504
+ };
1505
+ });
1506
+
1507
+ /** Color swatches for color picker */
1508
+ export declare const COLOR_SWATCHES: string[];
1509
+
1510
+ /**
1511
+ * 将最小宿主输入转换为完整 LayoutContext。
1512
+ *
1513
+ * 保留底层 LayoutContext 作为高级扩展协议,同时避免普通接入重复桥接 Store 字段。
1514
+ */
1515
+ export declare function createLayoutContext(options: CreateLayoutContextOptions): LayoutContext;
1516
+
1517
+ /** 创建标准布局上下文所需的最小宿主适配。 */
1518
+ export declare interface CreateLayoutContextOptions {
1519
+ /** 布局设置 Store,可使用默认 Store 或 createSettingsStore() 创建的实例。 */
1520
+ settings: LayoutSettingsSource;
1521
+ /** 宿主菜单;支持普通值、Ref、ComputedRef 或 getter。 */
1522
+ menus: MaybeRefOrGetter<MenuOptions[]>;
1523
+ /** 宿主暗色状态;支持普通值、Ref、ComputedRef 或 getter。 */
1524
+ isDark: MaybeRefOrGetter<boolean>;
1525
+ /** 品牌信息,未提供的字段使用包内安全默认值。 */
1526
+ brand?: LayoutBrandConfig;
1527
+ /** 布局内部用于渲染菜单图标的宿主组件。 */
1528
+ iconComponent?: Component;
1529
+ }
1530
+
1531
+ /**
1532
+ * 创建设置管理 Store
1533
+ * @param options - 配置选项
1534
+ */
1535
+ export declare function createSettingsStore(options?: SettingsStoreOptions): StoreDefinition<string, Pick<{
1536
+ /** 当前 Store 实例实际使用的默认值。 */
1537
+ defaults: Readonly<{
1538
+ themeMode: ThemeMode;
1539
+ primaryColor: string;
1540
+ borderRadius: BorderRadiusSize;
1541
+ transitionType: TransitionType;
1542
+ enableTransition: boolean;
1543
+ layoutMode: LayoutMode;
1544
+ menuExpandMode: MenuExpandMode;
1545
+ collapsed: boolean;
1546
+ fixedHeader: boolean;
1547
+ showBreadcrumb: boolean;
1548
+ showBreadcrumbIcon: boolean;
1549
+ showTagsView: boolean;
1550
+ tagsViewHeight: number;
1551
+ tagsViewStyle: TagsViewStyle;
1552
+ showFooter: boolean;
1553
+ sidebarWidth: number;
1554
+ sidebarCollapsedWidth: number;
1555
+ headerHeight: number;
1556
+ enableHotkeys: boolean;
1557
+ version: string;
1558
+ }>;
1559
+ themeMode: Ref<ThemeMode, ThemeMode>;
1560
+ primaryColor: Ref<string, string>;
1561
+ borderRadius: Ref<BorderRadiusSize, BorderRadiusSize>;
1562
+ transitionType: Ref<TransitionType, TransitionType>;
1563
+ enableTransition: Ref<boolean, boolean>;
1564
+ layoutMode: Ref<LayoutMode, LayoutMode>;
1565
+ menuExpandMode: Ref<MenuExpandMode, MenuExpandMode>;
1566
+ collapsed: Ref<boolean, boolean>;
1567
+ fixedHeader: Ref<boolean, boolean>;
1568
+ showBreadcrumb: Ref<boolean, boolean>;
1569
+ showBreadcrumbIcon: Ref<boolean, boolean>;
1570
+ showTagsView: Ref<boolean, boolean>;
1571
+ tagsViewHeight: Ref<number, number>;
1572
+ tagsViewStyle: Ref<TagsViewStyle, TagsViewStyle>;
1573
+ showFooter: Ref<boolean, boolean>;
1574
+ sidebarWidth: Ref<number, number>;
1575
+ sidebarCollapsedWidth: Ref<number, number>;
1576
+ headerHeight: Ref<number, number>;
1577
+ enableHotkeys: Ref<boolean, boolean>;
1578
+ version: Ref<string, string>;
1579
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
1580
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
1581
+ shouldEnableTransition: ComputedRef<boolean>;
1582
+ settingsState: ComputedRef<SettingsState>;
1583
+ syncCSSVariables: () => void | undefined;
1584
+ applyPreset: (preset: ThemePreset) => Promise<void>;
1585
+ resetSettings: () => void;
1586
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
1587
+ toggleCollapse: () => void;
1588
+ }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
1589
+ /** 当前 Store 实例实际使用的默认值。 */
1590
+ defaults: Readonly<{
1591
+ themeMode: ThemeMode;
1592
+ primaryColor: string;
1593
+ borderRadius: BorderRadiusSize;
1594
+ transitionType: TransitionType;
1595
+ enableTransition: boolean;
1596
+ layoutMode: LayoutMode;
1597
+ menuExpandMode: MenuExpandMode;
1598
+ collapsed: boolean;
1599
+ fixedHeader: boolean;
1600
+ showBreadcrumb: boolean;
1601
+ showBreadcrumbIcon: boolean;
1602
+ showTagsView: boolean;
1603
+ tagsViewHeight: number;
1604
+ tagsViewStyle: TagsViewStyle;
1605
+ showFooter: boolean;
1606
+ sidebarWidth: number;
1607
+ sidebarCollapsedWidth: number;
1608
+ headerHeight: number;
1609
+ enableHotkeys: boolean;
1610
+ version: string;
1611
+ }>;
1612
+ themeMode: Ref<ThemeMode, ThemeMode>;
1613
+ primaryColor: Ref<string, string>;
1614
+ borderRadius: Ref<BorderRadiusSize, BorderRadiusSize>;
1615
+ transitionType: Ref<TransitionType, TransitionType>;
1616
+ enableTransition: Ref<boolean, boolean>;
1617
+ layoutMode: Ref<LayoutMode, LayoutMode>;
1618
+ menuExpandMode: Ref<MenuExpandMode, MenuExpandMode>;
1619
+ collapsed: Ref<boolean, boolean>;
1620
+ fixedHeader: Ref<boolean, boolean>;
1621
+ showBreadcrumb: Ref<boolean, boolean>;
1622
+ showBreadcrumbIcon: Ref<boolean, boolean>;
1623
+ showTagsView: Ref<boolean, boolean>;
1624
+ tagsViewHeight: Ref<number, number>;
1625
+ tagsViewStyle: Ref<TagsViewStyle, TagsViewStyle>;
1626
+ showFooter: Ref<boolean, boolean>;
1627
+ sidebarWidth: Ref<number, number>;
1628
+ sidebarCollapsedWidth: Ref<number, number>;
1629
+ headerHeight: Ref<number, number>;
1630
+ enableHotkeys: Ref<boolean, boolean>;
1631
+ version: Ref<string, string>;
1632
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
1633
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
1634
+ shouldEnableTransition: ComputedRef<boolean>;
1635
+ settingsState: ComputedRef<SettingsState>;
1636
+ syncCSSVariables: () => void | undefined;
1637
+ applyPreset: (preset: ThemePreset) => Promise<void>;
1638
+ resetSettings: () => void;
1639
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
1640
+ toggleCollapse: () => void;
1641
+ }, "borderRadiusValue" | "transitionName" | "shouldEnableTransition" | "settingsState">, Pick<{
1642
+ /** 当前 Store 实例实际使用的默认值。 */
1643
+ defaults: Readonly<{
1644
+ themeMode: ThemeMode;
1645
+ primaryColor: string;
1646
+ borderRadius: BorderRadiusSize;
1647
+ transitionType: TransitionType;
1648
+ enableTransition: boolean;
1649
+ layoutMode: LayoutMode;
1650
+ menuExpandMode: MenuExpandMode;
1651
+ collapsed: boolean;
1652
+ fixedHeader: boolean;
1653
+ showBreadcrumb: boolean;
1654
+ showBreadcrumbIcon: boolean;
1655
+ showTagsView: boolean;
1656
+ tagsViewHeight: number;
1657
+ tagsViewStyle: TagsViewStyle;
1658
+ showFooter: boolean;
1659
+ sidebarWidth: number;
1660
+ sidebarCollapsedWidth: number;
1661
+ headerHeight: number;
1662
+ enableHotkeys: boolean;
1663
+ version: string;
1664
+ }>;
1665
+ themeMode: Ref<ThemeMode, ThemeMode>;
1666
+ primaryColor: Ref<string, string>;
1667
+ borderRadius: Ref<BorderRadiusSize, BorderRadiusSize>;
1668
+ transitionType: Ref<TransitionType, TransitionType>;
1669
+ enableTransition: Ref<boolean, boolean>;
1670
+ layoutMode: Ref<LayoutMode, LayoutMode>;
1671
+ menuExpandMode: Ref<MenuExpandMode, MenuExpandMode>;
1672
+ collapsed: Ref<boolean, boolean>;
1673
+ fixedHeader: Ref<boolean, boolean>;
1674
+ showBreadcrumb: Ref<boolean, boolean>;
1675
+ showBreadcrumbIcon: Ref<boolean, boolean>;
1676
+ showTagsView: Ref<boolean, boolean>;
1677
+ tagsViewHeight: Ref<number, number>;
1678
+ tagsViewStyle: Ref<TagsViewStyle, TagsViewStyle>;
1679
+ showFooter: Ref<boolean, boolean>;
1680
+ sidebarWidth: Ref<number, number>;
1681
+ sidebarCollapsedWidth: Ref<number, number>;
1682
+ headerHeight: Ref<number, number>;
1683
+ enableHotkeys: Ref<boolean, boolean>;
1684
+ version: Ref<string, string>;
1685
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
1686
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
1687
+ shouldEnableTransition: ComputedRef<boolean>;
1688
+ settingsState: ComputedRef<SettingsState>;
1689
+ syncCSSVariables: () => void | undefined;
1690
+ applyPreset: (preset: ThemePreset) => Promise<void>;
1691
+ resetSettings: () => void;
1692
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
1693
+ toggleCollapse: () => void;
1694
+ }, "syncCSSVariables" | "applyPreset" | "resetSettings" | "updateThemeMode" | "toggleCollapse">>;
1695
+
1696
+ /**
1697
+ * 默认品牌配置
1698
+ */
1699
+ export declare const DEFAULT_BRAND_CONFIG: Required<LayoutBrandConfig>;
1700
+
1701
+ export declare const DEFAULT_SETTINGS: SettingsState;
1702
+
1703
+ /**
1704
+ * 抽屉菜单控制器 Injection Key
1705
+ */
1706
+ export declare const DRAWER_HANDLER_KEY: InjectionKey<DrawerHandlers>;
1707
+
1708
+ /**
1709
+ * 抽屉菜单统一控制器
1710
+ * 解决 MenuTrigger 与 DrawerMenu 各自拥有独立定时器导致的
1711
+ * "鼠标从 trigger 移到 drawer 过程中 drawer 被关闭"问题
1712
+ */
1713
+ export declare interface DrawerHandlers {
1714
+ /** 显示抽屉并取消所有待执行的隐藏操作 */
1715
+ show: () => void;
1716
+ /** 启动延迟隐藏(300ms) */
1717
+ startHide: () => void;
1718
+ /** 立即隐藏抽屉(如导航跳转后) */
1719
+ hide: () => void;
1720
+ }
1721
+
1722
+ export declare const DrawerMenu: DefineComponent<__VLS_Props_6, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_6> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
1723
+
1724
+ /** 按现有菜单字号与间距估算单项宽度。 */
1725
+ export declare function estimateMenuItemWidth(item: MenuOptions): number;
1726
+
1727
+ export declare interface ExportedLayoutSettings extends LayoutSettingsConfig {
1728
+ schemaVersion: typeof SETTINGS_CONFIG_SCHEMA_VERSION;
1729
+ exportTime: string;
1730
+ }
1731
+
1732
+ export declare const FloatingMenu: DefineComponent<__VLS_Props_4, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1733
+ click: (item: MenuOptions<MenuMeta_2>) => any;
1734
+ }, string, PublicProps, Readonly<__VLS_Props_4> & Readonly<{
1735
+ onClick?: ((item: MenuOptions<MenuMeta_2>) => any) | undefined;
1736
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
1737
+
1738
+ export declare const IconMenu: DefineComponent<__VLS_Props_3, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1739
+ click: (item: MenuOptions<MenuMeta_2>) => any;
1740
+ }, string, PublicProps, Readonly<__VLS_Props_3> & Readonly<{
1741
+ onClick?: ((item: MenuOptions<MenuMeta_2>) => any) | undefined;
1742
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
1743
+
1744
+ /** 判断当前路径是否等于菜单路径或位于其子路径下。 */
1745
+ export declare function isPathSegmentPrefix(menuPath: string | undefined, currentPath: string): boolean;
1746
+
1747
+ /**
1748
+ * 布局上下文 Injection Key
1749
+ */
1750
+ export declare const LAYOUT_CONTEXT_KEY: InjectionKey<LayoutContext>;
1751
+
1752
+ export declare const LAYOUT_MODES: LayoutInfo[];
1753
+
1754
+ /** 当前布局使用的设置 Store,支持自定义 Store id 与多实例。 */
1755
+ export declare const LAYOUT_SETTINGS_KEY: InjectionKey<SettingsStoreInstance>;
1756
+
1757
+ /** 宿主没有实现可选高副作用操作。 */
1758
+ export declare class LayoutActionUnavailableError extends Error {
1759
+ constructor(action: keyof SettingsDrawerActions);
1760
+ }
1761
+
1762
+ /**
1763
+ * 品牌配置
1764
+ */
1765
+ export declare interface LayoutBrandConfig {
1766
+ /** 品牌名称,如 'Robot Admin' */
1767
+ name?: string;
1768
+ /** 品牌副标题,如 '机器人管理系统' */
1769
+ subtitle?: string;
1770
+ /** Logo 地址(图片或视频) */
1771
+ logoSrc?: string;
1772
+ /** Logo 类型 */
1773
+ logoType?: "video" | "image";
1774
+ /** Logo 尺寸 */
1775
+ logoSize?: number;
1776
+ /** 首页路径,默认 '/home' */
1777
+ homePath?: string;
1778
+ /** 页脚版权文本 */
1779
+ copyright?: string;
1780
+ }
1781
+
1782
+ /** KeepAlive 缓存选项 */
1783
+ export declare interface LayoutCacheOptions {
1784
+ /** 最大缓存数量,默认 20 */
1785
+ maxCacheCount?: number;
1786
+ /** 是否输出缓存调试日志,默认 false */
1787
+ enableDevLog?: boolean;
1788
+ /** 是否暴露调试方法到 window,默认 false */
1789
+ exposeToWindow?: boolean;
1790
+ }
1791
+
1792
+ /**
1793
+ * 布局上下文数据接口
1794
+ * 骨架组件通过 inject 获取这些数据
1795
+ */
1796
+ export declare interface LayoutContext {
1797
+ /** 菜单列表数据 */
1798
+ menus: ComputedRef<MenuOptions[]>;
1799
+ /** 是否为暗色模式 */
1800
+ isDark: ComputedRef<boolean>;
1801
+ /** 当前布局模式 */
1802
+ layoutMode: ComputedRef<LayoutMode>;
1803
+ /** 侧边栏折叠状态;提供后由容器和宿主头部共享同一数据源 */
1804
+ collapsed?: WritableComputedRef<boolean>;
1805
+ /** 菜单展开方式 */
1806
+ menuExpandMode?: ComputedRef<MenuExpandMode>;
1807
+ /** 侧边栏宽度 (px) */
1808
+ sidebarWidth: ComputedRef<number>;
1809
+ /** 侧边栏折叠后宽度 (px) */
1810
+ sidebarCollapsedWidth: ComputedRef<number>;
1811
+ /** 是否显示页脚 */
1812
+ showFooter: ComputedRef<boolean>;
1813
+ /** 是否显示标签页 */
1814
+ showTagsView: ComputedRef<boolean>;
1815
+ /** 标签页高度 (px) */
1816
+ tagsViewHeight: ComputedRef<number>;
1817
+ /** 头部高度 (px) */
1818
+ headerHeight: ComputedRef<number>;
1819
+ /** 过渡动画名称 */
1820
+ transitionName: ComputedRef<string>;
1821
+ /** 是否显示面包屑 */
1822
+ showBreadcrumb: ComputedRef<boolean>;
1823
+ /** 是否显示面包屑图标 */
1824
+ showBreadcrumbIcon: ComputedRef<boolean>;
1825
+ /** 是否固定头部 */
1826
+ fixedHeader: ComputedRef<boolean>;
1827
+ /** 品牌信息 */
1828
+ brand: LayoutBrandConfig;
1829
+ /**
1830
+ * 自定义图标组件(如 @iconify/vue 的 Icon 组件)
1831
+ * 用于布局内部组件渲染菜单图标
1832
+ * 组件需接受 name (string) 和 size (number) 两个 props
1833
+ * 如果不提供,将使用 CSS class 渲染图标
1834
+ */
1835
+ iconComponent?: Component;
1836
+ }
1837
+
1838
+ export declare interface LayoutCssVariableBinding {
1839
+ dispose: () => void;
1840
+ sync: () => void;
1841
+ }
1842
+
1843
+ export declare interface LayoutCssVariableOptions {
1844
+ /** 变量写入目标;默认 document.documentElement。 */
1845
+ target?: MaybeRefOrGetter<LayoutCssVariableTarget | null | undefined>;
1846
+ /** 同时维护 3.x 无前缀变量,默认 false。 */
1847
+ legacyAliases?: boolean;
1848
+ }
1849
+
1850
+ export declare interface LayoutCssVariableSource {
1851
+ primaryColor: MaybeRefOrGetter<string>;
1852
+ borderRadiusValue: MaybeRefOrGetter<string>;
1853
+ sidebarWidth: MaybeRefOrGetter<number>;
1854
+ sidebarCollapsedWidth: MaybeRefOrGetter<number>;
1855
+ headerHeight: MaybeRefOrGetter<number>;
1856
+ tagsViewHeight: MaybeRefOrGetter<number>;
1857
+ }
1858
+
1859
+ export declare interface LayoutCssVariableTarget {
1860
+ style: LayoutStyleDeclaration;
1861
+ }
1862
+
1863
+ /** 布局模式展示信息。 */
1864
+ export declare interface LayoutInfo {
1865
+ mode: LayoutMode;
1866
+ label: string;
1867
+ description: string;
1868
+ icon: string;
1869
+ }
1870
+
1871
+ /** 布局内置导航可以安全消费的标准菜单项。 */
1872
+ export declare type LayoutMenuItem<TMeta extends MenuMeta = MenuMeta> = Omit<MenuOptions<TMeta>, "children" | "key" | "meta" | "path"> & {
1873
+ key: string;
1874
+ path: string;
1875
+ meta: TMeta & {
1876
+ title: string;
1877
+ };
1878
+ children?: LayoutMenuItem<TMeta>[];
1879
+ };
1880
+
1881
+ /** 内置布局模式。 */
1882
+ export declare type LayoutMode = "side" | "top" | "mix" | "mix-top" | "reverse-horizontal-mix" | "card-layout";
1883
+
1884
+ /** 内置布局模式。 */
1885
+ declare type LayoutMode_2 = "side" | "top" | "mix" | "mix-top" | "reverse-horizontal-mix" | "card-layout";
1886
+
1887
+ /** 经校验后可原子应用的布局配置。 */
1888
+ export declare interface LayoutSettingsConfig extends LayoutVisualEffects {
1889
+ schemaVersion?: number;
1890
+ settings?: Partial<SettingsState>;
1891
+ }
1892
+
1893
+ /**
1894
+ * 布局桥接所需的最小设置协议。
1895
+ *
1896
+ * 默认 Pinia Store 天然满足该协议,宿主也可以传入其他响应式 Store,
1897
+ * 避免上下文助手与具体状态管理实现强绑定。
1898
+ */
1899
+ export declare interface LayoutSettingsSource {
1900
+ layoutMode: LayoutMode;
1901
+ collapsed: boolean;
1902
+ menuExpandMode: MenuExpandMode;
1903
+ sidebarWidth: number;
1904
+ sidebarCollapsedWidth: number;
1905
+ showFooter: boolean;
1906
+ showTagsView: boolean;
1907
+ tagsViewHeight: number;
1908
+ headerHeight: number;
1909
+ transitionName: string;
1910
+ showBreadcrumb: boolean;
1911
+ showBreadcrumbIcon: boolean;
1912
+ fixedHeader: boolean;
1913
+ }
1914
+
1915
+ export declare interface LayoutStyleDeclaration {
1916
+ getPropertyValue(name: string): string;
1917
+ removeProperty(name: string): string;
1918
+ setProperty(name: string, value: string): void;
1919
+ }
1920
+
1921
+ export declare interface LayoutVisualEffects {
1922
+ gray?: boolean;
1923
+ colorWeak?: boolean;
1924
+ watermark?: {
1925
+ enabled: boolean;
1926
+ text: string;
1927
+ };
1928
+ }
1929
+
1930
+ export declare const MENU_COLLAPSE_KEY: InjectionKey<MenuCollapseHandlers>;
1931
+
1932
+ /** 侧边栏折叠控制器。 */
1933
+ export declare interface MenuCollapseHandlers {
1934
+ isCollapsed: ComputedRef<boolean>;
1935
+ handleCollapsedChange: (collapsed: boolean) => void;
1936
+ }
1937
+
1938
+ /** 菜单展开方式。 */
1939
+ export declare type MenuExpandMode = "inline" | "panel";
1940
+
1941
+ /** 菜单展开方式。 */
1942
+ declare type MenuExpandMode_2 = "inline" | "panel";
1943
+
1944
+ /**
1945
+ * 菜单项类型
1946
+ * - `group` 分组
1947
+ * - `divider` 分割线
1948
+ * - `item` 普通菜单项
1949
+ */
1950
+ export declare type MenuItemType = "group" | "divider" | "item";
1951
+
1952
+ /**
1953
+ * 菜单项类型
1954
+ * - `group` 分组
1955
+ * - `divider` 分割线
1956
+ * - `item` 普通菜单项
1957
+ */
1958
+ declare type MenuItemType_2 = "group" | "divider" | "item";
1959
+
1960
+ /** 可由宿主通过交叉类型安全扩展的菜单元数据。 */
1961
+ export declare interface MenuMeta extends Record<string, unknown> {
1962
+ /** 页面标题 */
1963
+ title?: string;
1964
+ /** 菜单项的图标 */
1965
+ icon?: string;
1966
+ /** 是否在菜单中隐藏 */
1967
+ hidden?: boolean;
1968
+ /** 是否固定在标签栏 */
1969
+ affix?: boolean;
1970
+ /** 是否缓存该页面 */
1971
+ keepAlive?: boolean;
1972
+ /** 是否全屏显示 */
1973
+ full?: boolean;
1974
+ /** 外部链接 URL */
1975
+ link?: string;
1976
+ }
1977
+
1978
+ /** 可由宿主通过交叉类型安全扩展的菜单元数据。 */
1979
+ declare interface MenuMeta_2 extends Record<string, unknown> {
1980
+ /** 页面标题 */
1981
+ title?: string;
1982
+ /** 菜单项的图标 */
1983
+ icon?: string;
1984
+ /** 是否在菜单中隐藏 */
1985
+ hidden?: boolean;
1986
+ /** 是否固定在标签栏 */
1987
+ affix?: boolean;
1988
+ /** 是否缓存该页面 */
1989
+ keepAlive?: boolean;
1990
+ /** 是否全屏显示 */
1991
+ full?: boolean;
1992
+ /** 外部链接 URL */
1993
+ link?: string;
1994
+ }
1995
+
1996
+ /**
1997
+ * 菜单选项的详细类型定义
1998
+ */
1999
+ export declare interface MenuOptions<TMeta extends MenuMeta = MenuMeta> {
2000
+ /** 菜单项类型(分组/分割线) */
2001
+ type?: MenuItemType;
2002
+ /** 唯一标识 */
2003
+ key?: string;
2004
+ /** 菜单跳转路径 */
2005
+ path?: string;
2006
+ /** 菜单名称(可对应路由名) */
2007
+ name?: string;
2008
+ /** 菜单项对应的组件名称 */
2009
+ component?: string;
2010
+ /** 重定向路径 */
2011
+ redirect?: string;
2012
+ /** 菜单显示的文本 */
2013
+ label?: string;
2014
+ /** 图标 */
2015
+ icon?: string | (() => VNode) | VNode;
2016
+ /** 是否禁用此菜单项 */
2017
+ disabled?: boolean;
2018
+ /** 元数据 */
2019
+ meta?: TMeta;
2020
+ /** 子菜单 */
2021
+ children?: MenuOptions<TMeta>[];
2022
+ }
2023
+
2024
+ /**
2025
+ * 标签栏项类型定义
2026
+ */
2027
+ export declare interface MenuTag {
2028
+ /** 标签项对应的路由路径 */
2029
+ path: string;
2030
+ /** 标签显示的标题(已翻译) */
2031
+ title: string;
2032
+ /** 原始标题(中文,用于重新翻译) */
2033
+ originalTitle?: string;
2034
+ /** 显示的图标 */
2035
+ icon?: string;
2036
+ /** 标签相关元数据 */
2037
+ meta?: {
2038
+ /** 是否固定在标签栏 */
2039
+ affix?: boolean;
2040
+ };
2041
+ }
2042
+
2043
+ export declare const MenuTrigger: DefineComponent<__VLS_Props_7, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_7> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
2044
+
2045
+ /** @deprecated 请使用 C_MixLayout;计划在 4.0 移除。 */
2046
+ export declare const MixLayout: {
2047
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
2048
+ P: {};
2049
+ B: {};
2050
+ D: {};
2051
+ C: {};
2052
+ M: {};
2053
+ Defaults: {};
2054
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
2055
+ __isFragment?: never;
2056
+ __isTeleport?: never;
2057
+ __isSuspense?: never;
2058
+ } & ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
2059
+ $slots: {
2060
+ logo?(_: {}): any;
2061
+ header?(_: {}): any;
2062
+ footer?(_: {}): any;
2063
+ };
2064
+ });
2065
+
2066
+ /** @deprecated 请使用 C_MixTopLayout;计划在 4.0 移除。 */
2067
+ export declare const MixTopLayout: {
2068
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
2069
+ P: {};
2070
+ B: {};
2071
+ D: {};
2072
+ C: {};
2073
+ M: {};
2074
+ Defaults: {};
2075
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
2076
+ __isFragment?: never;
2077
+ __isTeleport?: never;
2078
+ __isSuspense?: never;
2079
+ } & ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
2080
+ $slots: {
2081
+ logo?(_: {}): any;
2082
+ brand?(_: {}): any;
2083
+ 'top-menu'?(_: {}): any;
2084
+ 'header-extra'?(_: {}): any;
2085
+ 'tags-view'?(_: {}): any;
2086
+ footer?(_: {}): any;
2087
+ };
2088
+ });
2089
+
2090
+ /**
2091
+ * 非破坏地统一 path/key、label/meta.title 与字符串图标来源。
2092
+ * 缺少稳定路径或 key 的节点不会进入导航,避免意外跳转到根路由。
2093
+ */
2094
+ export declare function normalizeLayoutMenus<TMeta extends MenuMeta = MenuMeta>(menus: readonly MenuOptions<TMeta>[]): LayoutMenuItem<TMeta>[];
2095
+
2096
+ export declare const PRESET_COLORS: PresetColor[];
2097
+
2098
+ /** 预设颜色。 */
2099
+ export declare interface PresetColor {
2100
+ name: string;
2101
+ value: string;
2102
+ }
2103
+
2104
+ /** 在组件 setup 中创建并提供标准布局上下文。 */
2105
+ export declare function provideLayout(options: CreateLayoutContextOptions): LayoutContext;
2106
+
2107
+ /** 在组件 setup 中提供布局上下文,避免消费方直接操作 InjectionKey。 */
2108
+ export declare function provideLayoutContext(context: LayoutContext): LayoutContext;
2109
+
2110
+ export declare const ResponsiveMenu: DefineComponent<__VLS_Props_8, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_8> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
2111
+
2112
+ /** @deprecated 请使用 C_ReverseHorizontalMixLayout;计划在 4.0 移除。 */
2113
+ export declare const ReverseHorizontalMixLayout: {
2114
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
2115
+ P: {};
2116
+ B: {};
2117
+ D: {};
2118
+ C: {};
2119
+ M: {};
2120
+ Defaults: {};
2121
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
2122
+ __isFragment?: never;
2123
+ __isTeleport?: never;
2124
+ __isSuspense?: never;
2125
+ } & ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
2126
+ $slots: {
2127
+ logo?(_: {}): any;
2128
+ 'top-menu'?(_: {}): any;
2129
+ 'header-extra'?(_: {}): any;
2130
+ 'tags-view'?(_: {}): any;
2131
+ footer?(_: {}): any;
2132
+ };
2133
+ });
2134
+
2135
+ /**
2136
+ * 一次性校验完整导入文件。此函数不修改任何响应式状态或浏览器 API,
2137
+ * 消费方可以在成功返回后再原子应用结果。
2138
+ */
2139
+ export declare function sanitizeLayoutSettingsConfig(input: unknown): LayoutSettingsConfig;
2140
+
2141
+ /**
2142
+ * 校验来自配置文件等不可信来源的设置。
2143
+ * 未知键为向前兼容而忽略;已知键的非法值会让整次导入失败。
2144
+ */
2145
+ export declare function sanitizeSettingsPatch(input: unknown): Partial<SettingsState>;
2146
+
2147
+ /** 当前导入导出配置格式版本。 */
2148
+ export declare const SETTINGS_CONFIG_SCHEMA_VERSION: 1;
2149
+
2150
+ export declare interface SettingsControllerOptions {
2151
+ store: SettingsStoreInstance;
2152
+ actions?: SettingsDrawerActions;
2153
+ maxImportBytes?: number;
2154
+ /** 灰度/色弱 class 的作用元素;默认 document.documentElement。 */
2155
+ visualRoot?: HTMLElement | null;
2156
+ /** 水印挂载容器;默认 document.body。 */
2157
+ watermarkContainer?: HTMLElement | null;
2158
+ watermarkText?: string;
2159
+ onVisualEffectError?: (message: string) => void;
2160
+ }
2161
+
2162
+ export declare const SettingsDrawer: __VLS_WithTemplateSlots_2<typeof __VLS_component_2, __VLS_TemplateResult_2["slots"]>;
2163
+
2164
+ /** 由宿主应用实现的高副作用操作。 */
2165
+ export declare interface SettingsDrawerActions {
2166
+ clearCache?: () => void | Promise<void>;
2167
+ reloadPage?: () => void;
2168
+ }
2169
+
2170
+ /** UI 无关的布局设置协议。 */
2171
+ export declare interface SettingsState {
2172
+ themeMode: ThemeMode;
2173
+ primaryColor: string;
2174
+ borderRadius: BorderRadiusSize;
2175
+ transitionType: TransitionType;
2176
+ enableTransition: boolean;
2177
+ layoutMode: LayoutMode;
2178
+ menuExpandMode: MenuExpandMode;
2179
+ collapsed: boolean;
2180
+ fixedHeader: boolean;
2181
+ showBreadcrumb: boolean;
2182
+ showBreadcrumbIcon: boolean;
2183
+ showTagsView: boolean;
2184
+ tagsViewHeight: number;
2185
+ tagsViewStyle: TagsViewStyle;
2186
+ showFooter: boolean;
2187
+ sidebarWidth: number;
2188
+ sidebarCollapsedWidth: number;
2189
+ headerHeight: number;
2190
+ enableHotkeys: boolean;
2191
+ /** @deprecated 包版本不应参与配置迁移,请使用 SETTINGS_CONFIG_SCHEMA_VERSION。 */
2192
+ version: string;
2193
+ }
2194
+
2195
+ /** UI 无关的布局设置协议。 */
2196
+ declare interface SettingsState_2 {
2197
+ themeMode: ThemeMode_2;
2198
+ primaryColor: string;
2199
+ borderRadius: BorderRadiusSize_2;
2200
+ transitionType: TransitionType_2;
2201
+ enableTransition: boolean;
2202
+ layoutMode: LayoutMode_2;
2203
+ menuExpandMode: MenuExpandMode_2;
2204
+ collapsed: boolean;
2205
+ fixedHeader: boolean;
2206
+ showBreadcrumb: boolean;
2207
+ showBreadcrumbIcon: boolean;
2208
+ showTagsView: boolean;
2209
+ tagsViewHeight: number;
2210
+ tagsViewStyle: TagsViewStyle_2;
2211
+ showFooter: boolean;
2212
+ sidebarWidth: number;
2213
+ sidebarCollapsedWidth: number;
2214
+ headerHeight: number;
2215
+ enableHotkeys: boolean;
2216
+ /** @deprecated 包版本不应参与配置迁移,请使用 SETTINGS_CONFIG_SCHEMA_VERSION。 */
2217
+ version: string;
2218
+ }
2219
+
2220
+ /** 默认设置 Store 实例类型,供组件注入或显式传入。 */
2221
+ export declare type SettingsStoreInstance = ReturnType<typeof useSettingsStore>;
2222
+
2223
+ /** Settings Store 初始化选项。 */
2224
+ export declare interface SettingsStoreOptions {
2225
+ id?: string;
2226
+ defaults?: Partial<SettingsState>;
2227
+ onThemeModeChange?: (mode: ThemeMode) => void | Promise<void>;
2228
+ /** 是否自动同步 CSS 变量;默认 true,微前端可关闭后自行绑定作用域。 */
2229
+ syncCssVariables?: boolean;
2230
+ }
2231
+
2232
+ /**
2233
+ * 初始化布局系统
2234
+ *
2235
+ * @example
2236
+ * ```ts
2237
+ * import { setupLayout } from '@robot-admin/layout/vue'
2238
+ * setupLayout(app, {
2239
+ * onThemeModeChange: async (mode) => {
2240
+ * const themeStore = useThemeStore()
2241
+ * await themeStore.setMode(mode)
2242
+ * }
2243
+ * })
2244
+ * ```
2245
+ */
2246
+ export declare function setupLayout(app: App, options?: SettingsStoreOptions): StoreDefinition<string, Pick<{
2247
+ defaults: Readonly<{
2248
+ themeMode: ThemeMode;
2249
+ primaryColor: string;
2250
+ borderRadius: BorderRadiusSize;
2251
+ transitionType: TransitionType;
2252
+ enableTransition: boolean;
2253
+ layoutMode: LayoutMode;
2254
+ menuExpandMode: MenuExpandMode;
2255
+ collapsed: boolean;
2256
+ fixedHeader: boolean;
2257
+ showBreadcrumb: boolean;
2258
+ showBreadcrumbIcon: boolean;
2259
+ showTagsView: boolean;
2260
+ tagsViewHeight: number;
2261
+ tagsViewStyle: TagsViewStyle;
2262
+ showFooter: boolean;
2263
+ sidebarWidth: number;
2264
+ sidebarCollapsedWidth: number;
2265
+ headerHeight: number;
2266
+ enableHotkeys: boolean;
2267
+ version: string;
2268
+ }>;
2269
+ themeMode: Ref<ThemeMode, ThemeMode>;
2270
+ primaryColor: Ref<string, string>;
2271
+ borderRadius: Ref<BorderRadiusSize, BorderRadiusSize>;
2272
+ transitionType: Ref<TransitionType, TransitionType>;
2273
+ enableTransition: Ref<boolean, boolean>;
2274
+ layoutMode: Ref<LayoutMode, LayoutMode>;
2275
+ menuExpandMode: Ref<MenuExpandMode, MenuExpandMode>;
2276
+ collapsed: Ref<boolean, boolean>;
2277
+ fixedHeader: Ref<boolean, boolean>;
2278
+ showBreadcrumb: Ref<boolean, boolean>;
2279
+ showBreadcrumbIcon: Ref<boolean, boolean>;
2280
+ showTagsView: Ref<boolean, boolean>;
2281
+ tagsViewHeight: Ref<number, number>;
2282
+ tagsViewStyle: Ref<TagsViewStyle, TagsViewStyle>;
2283
+ showFooter: Ref<boolean, boolean>;
2284
+ sidebarWidth: Ref<number, number>;
2285
+ sidebarCollapsedWidth: Ref<number, number>;
2286
+ headerHeight: Ref<number, number>;
2287
+ enableHotkeys: Ref<boolean, boolean>;
2288
+ version: Ref<string, string>;
2289
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
2290
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
2291
+ shouldEnableTransition: ComputedRef<boolean>;
2292
+ settingsState: ComputedRef<SettingsState>;
2293
+ syncCSSVariables: () => void | undefined;
2294
+ applyPreset: (preset: ThemePreset) => Promise<void>;
2295
+ resetSettings: () => void;
2296
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
2297
+ toggleCollapse: () => void;
2298
+ }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2299
+ defaults: Readonly<{
2300
+ themeMode: ThemeMode;
2301
+ primaryColor: string;
2302
+ borderRadius: BorderRadiusSize;
2303
+ transitionType: TransitionType;
2304
+ enableTransition: boolean;
2305
+ layoutMode: LayoutMode;
2306
+ menuExpandMode: MenuExpandMode;
2307
+ collapsed: boolean;
2308
+ fixedHeader: boolean;
2309
+ showBreadcrumb: boolean;
2310
+ showBreadcrumbIcon: boolean;
2311
+ showTagsView: boolean;
2312
+ tagsViewHeight: number;
2313
+ tagsViewStyle: TagsViewStyle;
2314
+ showFooter: boolean;
2315
+ sidebarWidth: number;
2316
+ sidebarCollapsedWidth: number;
2317
+ headerHeight: number;
2318
+ enableHotkeys: boolean;
2319
+ version: string;
2320
+ }>;
2321
+ themeMode: Ref<ThemeMode, ThemeMode>;
2322
+ primaryColor: Ref<string, string>;
2323
+ borderRadius: Ref<BorderRadiusSize, BorderRadiusSize>;
2324
+ transitionType: Ref<TransitionType, TransitionType>;
2325
+ enableTransition: Ref<boolean, boolean>;
2326
+ layoutMode: Ref<LayoutMode, LayoutMode>;
2327
+ menuExpandMode: Ref<MenuExpandMode, MenuExpandMode>;
2328
+ collapsed: Ref<boolean, boolean>;
2329
+ fixedHeader: Ref<boolean, boolean>;
2330
+ showBreadcrumb: Ref<boolean, boolean>;
2331
+ showBreadcrumbIcon: Ref<boolean, boolean>;
2332
+ showTagsView: Ref<boolean, boolean>;
2333
+ tagsViewHeight: Ref<number, number>;
2334
+ tagsViewStyle: Ref<TagsViewStyle, TagsViewStyle>;
2335
+ showFooter: Ref<boolean, boolean>;
2336
+ sidebarWidth: Ref<number, number>;
2337
+ sidebarCollapsedWidth: Ref<number, number>;
2338
+ headerHeight: Ref<number, number>;
2339
+ enableHotkeys: Ref<boolean, boolean>;
2340
+ version: Ref<string, string>;
2341
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
2342
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
2343
+ shouldEnableTransition: ComputedRef<boolean>;
2344
+ settingsState: ComputedRef<SettingsState>;
2345
+ syncCSSVariables: () => void | undefined;
2346
+ applyPreset: (preset: ThemePreset) => Promise<void>;
2347
+ resetSettings: () => void;
2348
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
2349
+ toggleCollapse: () => void;
2350
+ }, "borderRadiusValue" | "transitionName" | "shouldEnableTransition" | "settingsState">, Pick<{
2351
+ defaults: Readonly<{
2352
+ themeMode: ThemeMode;
2353
+ primaryColor: string;
2354
+ borderRadius: BorderRadiusSize;
2355
+ transitionType: TransitionType;
2356
+ enableTransition: boolean;
2357
+ layoutMode: LayoutMode;
2358
+ menuExpandMode: MenuExpandMode;
2359
+ collapsed: boolean;
2360
+ fixedHeader: boolean;
2361
+ showBreadcrumb: boolean;
2362
+ showBreadcrumbIcon: boolean;
2363
+ showTagsView: boolean;
2364
+ tagsViewHeight: number;
2365
+ tagsViewStyle: TagsViewStyle;
2366
+ showFooter: boolean;
2367
+ sidebarWidth: number;
2368
+ sidebarCollapsedWidth: number;
2369
+ headerHeight: number;
2370
+ enableHotkeys: boolean;
2371
+ version: string;
2372
+ }>;
2373
+ themeMode: Ref<ThemeMode, ThemeMode>;
2374
+ primaryColor: Ref<string, string>;
2375
+ borderRadius: Ref<BorderRadiusSize, BorderRadiusSize>;
2376
+ transitionType: Ref<TransitionType, TransitionType>;
2377
+ enableTransition: Ref<boolean, boolean>;
2378
+ layoutMode: Ref<LayoutMode, LayoutMode>;
2379
+ menuExpandMode: Ref<MenuExpandMode, MenuExpandMode>;
2380
+ collapsed: Ref<boolean, boolean>;
2381
+ fixedHeader: Ref<boolean, boolean>;
2382
+ showBreadcrumb: Ref<boolean, boolean>;
2383
+ showBreadcrumbIcon: Ref<boolean, boolean>;
2384
+ showTagsView: Ref<boolean, boolean>;
2385
+ tagsViewHeight: Ref<number, number>;
2386
+ tagsViewStyle: Ref<TagsViewStyle, TagsViewStyle>;
2387
+ showFooter: Ref<boolean, boolean>;
2388
+ sidebarWidth: Ref<number, number>;
2389
+ sidebarCollapsedWidth: Ref<number, number>;
2390
+ headerHeight: Ref<number, number>;
2391
+ enableHotkeys: Ref<boolean, boolean>;
2392
+ version: Ref<string, string>;
2393
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
2394
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
2395
+ shouldEnableTransition: ComputedRef<boolean>;
2396
+ settingsState: ComputedRef<SettingsState>;
2397
+ syncCSSVariables: () => void | undefined;
2398
+ applyPreset: (preset: ThemePreset) => Promise<void>;
2399
+ resetSettings: () => void;
2400
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
2401
+ toggleCollapse: () => void;
2402
+ }, "syncCSSVariables" | "applyPreset" | "resetSettings" | "updateThemeMode" | "toggleCollapse">>;
2403
+
2404
+ /** KeepAlive 仅接受具名组件,并由路由 meta.keepAlive 明确开启。 */
2405
+ export declare function shouldCacheRoute(route: Pick<RouteLocationNormalizedLoaded, "name" | "meta">): route is Pick<RouteLocationNormalizedLoaded, "name" | "meta"> & {
2406
+ name: string;
2407
+ };
2408
+
2409
+ /** @deprecated 请使用 C_SideLayout;计划在 4.0 移除。 */
2410
+ export declare const SideLayout: {
2411
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{
2412
+ collapsed?: boolean;
2413
+ }> & Readonly<{
2414
+ "onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
2415
+ }>, {
2416
+ collapsed: ComputedRef<boolean>;
2417
+ toggleCollapse: () => void;
2418
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2419
+ "update:collapsed": (value: boolean) => any;
2420
+ }, PublicProps, {
2421
+ collapsed: boolean;
2422
+ }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
2423
+ P: {};
2424
+ B: {};
2425
+ D: {};
2426
+ C: {};
2427
+ M: {};
2428
+ Defaults: {};
2429
+ }, Readonly<{
2430
+ collapsed?: boolean;
2431
+ }> & Readonly<{
2432
+ "onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
2433
+ }>, {
2434
+ collapsed: ComputedRef<boolean>;
2435
+ toggleCollapse: () => void;
2436
+ }, {}, {}, {}, {
2437
+ collapsed: boolean;
2438
+ }>;
2439
+ __isFragment?: never;
2440
+ __isTeleport?: never;
2441
+ __isSuspense?: never;
2442
+ } & ComponentOptionsBase<Readonly<{
2443
+ collapsed?: boolean;
2444
+ }> & Readonly<{
2445
+ "onUpdate:collapsed"?: ((value: boolean) => any) | undefined;
2446
+ }>, {
2447
+ collapsed: ComputedRef<boolean>;
2448
+ toggleCollapse: () => void;
2449
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2450
+ "update:collapsed": (value: boolean) => any;
2451
+ }, string, {
2452
+ collapsed: boolean;
2453
+ }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
2454
+ $slots: {
2455
+ logo?(_: {}): any;
2456
+ menu?(_: {
2457
+ collapsed: boolean;
2458
+ }): any;
2459
+ header?(_: {}): any;
2460
+ footer?(_: {}): any;
2461
+ };
2462
+ });
2463
+
2464
+ export declare const SideMenu: DefineComponent<__VLS_Props_5, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2465
+ click: (item: MenuOptions<MenuMeta_2>) => any;
2466
+ }, string, PublicProps, Readonly<__VLS_Props_5> & Readonly<{
2467
+ onClick?: ((item: MenuOptions<MenuMeta_2>) => any) | undefined;
2468
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
2469
+
2470
+ /** 标签页风格。 */
2471
+ export declare type TagsViewStyle = "default" | "card" | "smart";
2472
+
2473
+ /** 标签页风格。 */
2474
+ declare type TagsViewStyle_2 = "default" | "card" | "smart";
2475
+
2476
+ export declare const THEME_PRESETS: ThemePreset[];
2477
+
2478
+ /** 与具体主题实现无关的标准主题模式。 */
2479
+ export declare type ThemeMode = "light" | "dark" | "system";
2480
+
2481
+ /** 与具体主题实现无关的标准主题模式。 */
2482
+ declare type ThemeMode_2 = "light" | "dark" | "system";
2483
+
2484
+ /** 主题预设方案。 */
2485
+ export declare interface ThemePreset {
2486
+ name: string;
2487
+ description?: string;
2488
+ icon: string;
2489
+ primaryColor: string;
2490
+ settings?: Partial<Omit<SettingsState, "themeMode" | "layoutMode" | "primaryColor">>;
2491
+ }
2492
+
2493
+ /** @deprecated 请使用 C_TopLayout;计划在 4.0 移除。 */
2494
+ export declare const TopLayout: {
2495
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
2496
+ P: {};
2497
+ B: {};
2498
+ D: {};
2499
+ C: {};
2500
+ M: {};
2501
+ Defaults: {};
2502
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
2503
+ __isFragment?: never;
2504
+ __isTeleport?: never;
2505
+ __isSuspense?: never;
2506
+ } & ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
2507
+ $slots: {
2508
+ logo?(_: {}): any;
2509
+ menu?(_: {}): any;
2510
+ 'header-extra'?(_: {}): any;
2511
+ 'tags-view'?(_: {}): any;
2512
+ footer?(_: {}): any;
2513
+ };
2514
+ });
2515
+
2516
+ export declare const TRANSITION_MAP: {
2517
+ readonly fade: "fade-transform";
2518
+ readonly slide: "fade-slide";
2519
+ readonly zoom: "fade-zoom";
2520
+ readonly none: "";
2521
+ };
2522
+
2523
+ /** 页面动画类型。 */
2524
+ export declare type TransitionType = "fade" | "slide" | "zoom" | "none";
2525
+
2526
+ /** 页面动画类型。 */
2527
+ declare type TransitionType_2 = "fade" | "slide" | "zoom" | "none";
2528
+
2529
+ /**
2530
+ * 统一的 KeepAlive 缓存管理 composable
2531
+ *
2532
+ * @param options - 缓存配置选项
2533
+ * @returns 缓存视图列表和管理方法
2534
+ *
2535
+ * @example
2536
+ * ```vue
2537
+ * <script setup>
2538
+ * import { useLayoutCache } from '@robot-admin/layout/vue'
2539
+ *
2540
+ * const { cachedViews, maxCacheCount } = useLayoutCache({ maxCacheCount: 30 })
2541
+ * </script>
2542
+ *
2543
+ * <template>
2544
+ * <KeepAlive :include="cachedViews" :max="maxCacheCount">
2545
+ * <RouterView />
2546
+ * </KeepAlive>
2547
+ * </template>
2548
+ * ```
2549
+ */
2550
+ export declare function useLayoutCache(options?: LayoutCacheOptions): {
2551
+ cachedViews: Ref<string[], string[]>;
2552
+ maxCacheCount: Ref<number, number>;
2553
+ addCache: (name: string) => void;
2554
+ removeCache: (name: string) => void;
2555
+ clearAllCache: () => void;
2556
+ };
2557
+
2558
+ /**
2559
+ * 在骨架组件中获取布局上下文
2560
+ *
2561
+ * @throws 如果没有 provide LayoutContext 会抛出错误
2562
+ *
2563
+ * @example
2564
+ * ```vue
2565
+ * <script setup>
2566
+ * // 在包的骨架组件内部使用
2567
+ * const ctx = useLayoutContext()
2568
+ * const menus = ctx.menus
2569
+ * const isDark = ctx.isDark
2570
+ * </script>
2571
+ * ```
2572
+ */
2573
+ export declare function useLayoutContext(): LayoutContext;
2574
+
2575
+ /** setup 作用域内使用的自动清理版本。 */
2576
+ export declare function useLayoutCssVariables(source: LayoutCssVariableSource, options?: LayoutCssVariableOptions): LayoutCssVariableBinding;
2577
+
2578
+ /** 返回宿主图标组件;未配置时使用零依赖 CSS class 渲染器。 */
2579
+ export declare function useLayoutIcon(): Component;
2580
+
2581
+ /**
2582
+ * 菜单拆分 Composable
2583
+ *
2584
+ * 提供一级/二级菜单拆分状态管理、路由自动匹配、菜单点击处理。
2585
+ * 供 C_MixLayout / C_MixTopLayout / C_ReverseHorizontalMixLayout 共用。
2586
+ *
2587
+ * @example
2588
+ * ```ts
2589
+ * const menuSplit = useMenuSplit({
2590
+ * menus: ctx.menus,
2591
+ * floatingSecondMenu: computed(() => layoutMode.value === 'mix'),
2592
+ * })
2593
+ * ```
2594
+ */
2595
+ export declare function useMenuSplit(options: UseMenuSplitOptions): UseMenuSplitReturn;
2596
+
2597
+ export declare interface UseMenuSplitOptions {
2598
+ /** 菜单数据(响应式) */
2599
+ menus: MaybeRefOrGetter<readonly MenuOptions[]>;
2600
+ /** 是否使用悬浮式二级菜单(C_MixLayout 的 toggle 模式) */
2601
+ floatingSecondMenu?: MaybeRefOrGetter<boolean>;
2602
+ }
2603
+
2604
+ export declare interface UseMenuSplitReturn {
2605
+ /** 当前激活的一级菜单路径 */
2606
+ activeFirstMenu: Ref<string>;
2607
+ /** 当前激活的一级菜单完整数据 */
2608
+ activeFirstMenuItem: ComputedRef<MenuOptions | undefined>;
2609
+ /** 当前一级菜单对应的二级菜单列表 */
2610
+ currentSecondMenus: ComputedRef<MenuOptions[]>;
2611
+ /** 悬浮的菜单项(C_MixLayout 使用) */
2612
+ hoveredMenuItem: Ref<MenuOptions | null>;
2613
+ /** 实际展示的菜单项(hovered 优先,fallback 到 active) */
2614
+ displayMenuItem: ComputedRef<MenuOptions | null>;
2615
+ /** 是否显示悬浮二级菜单(C_MixLayout 使用) */
2616
+ showSecondMenu: Ref<boolean>;
2617
+ /** 处理一级菜单点击 */
2618
+ handleFirstMenuClick: (item: MenuOptions) => void;
2619
+ /** 处理二级菜单点击 */
2620
+ handleSecondMenuClick: (item: MenuOptions) => void;
2621
+ /** 检查路由是否匹配菜单项 */
2622
+ isMenuItemActive: (menuPath: string | undefined) => boolean;
2623
+ }
2624
+
2625
+ /**
2626
+ * UI 框架无关的响应式菜单测量逻辑。
2627
+ * Naive UI 和 Element Plus 适配器只负责把 visible/hidden 数据渲染出来。
2628
+ */
2629
+ export declare function useResponsiveMenu(options: UseResponsiveMenuOptions): {
2630
+ containerRef: Ref<HTMLElement | undefined, HTMLElement | undefined>;
2631
+ hiddenItems: Ref< {
2632
+ type?: MenuItemType_2 | undefined;
2633
+ key?: string | undefined;
2634
+ path?: string | undefined;
2635
+ name?: string | undefined;
2636
+ component?: string | undefined;
2637
+ redirect?: string | undefined;
2638
+ label?: string | undefined;
2639
+ icon?: (string | (() => VNode) | VNode) | undefined;
2640
+ disabled?: boolean | undefined;
2641
+ meta?: {
2642
+ [x: string]: unknown;
2643
+ title?: string | undefined;
2644
+ icon?: string | undefined;
2645
+ hidden?: boolean | undefined;
2646
+ affix?: boolean | undefined;
2647
+ keepAlive?: boolean | undefined;
2648
+ full?: boolean | undefined;
2649
+ link?: string | undefined;
2650
+ } | undefined;
2651
+ children?: /*elided*/ any[] | undefined;
2652
+ }[], MenuOptions<MenuMeta_2>[] | {
2653
+ type?: MenuItemType_2 | undefined;
2654
+ key?: string | undefined;
2655
+ path?: string | undefined;
2656
+ name?: string | undefined;
2657
+ component?: string | undefined;
2658
+ redirect?: string | undefined;
2659
+ label?: string | undefined;
2660
+ icon?: (string | (() => VNode) | VNode) | undefined;
2661
+ disabled?: boolean | undefined;
2662
+ meta?: {
2663
+ [x: string]: unknown;
2664
+ title?: string | undefined;
2665
+ icon?: string | undefined;
2666
+ hidden?: boolean | undefined;
2667
+ affix?: boolean | undefined;
2668
+ keepAlive?: boolean | undefined;
2669
+ full?: boolean | undefined;
2670
+ link?: string | undefined;
2671
+ } | undefined;
2672
+ children?: /*elided*/ any[] | undefined;
2673
+ }[]>;
2674
+ refresh: () => void;
2675
+ visibleItems: Ref< {
2676
+ type?: MenuItemType_2 | undefined;
2677
+ key?: string | undefined;
2678
+ path?: string | undefined;
2679
+ name?: string | undefined;
2680
+ component?: string | undefined;
2681
+ redirect?: string | undefined;
2682
+ label?: string | undefined;
2683
+ icon?: (string | (() => VNode) | VNode) | undefined;
2684
+ disabled?: boolean | undefined;
2685
+ meta?: {
2686
+ [x: string]: unknown;
2687
+ title?: string | undefined;
2688
+ icon?: string | undefined;
2689
+ hidden?: boolean | undefined;
2690
+ affix?: boolean | undefined;
2691
+ keepAlive?: boolean | undefined;
2692
+ full?: boolean | undefined;
2693
+ link?: string | undefined;
2694
+ } | undefined;
2695
+ children?: /*elided*/ any[] | undefined;
2696
+ }[], MenuOptions<MenuMeta_2>[] | {
2697
+ type?: MenuItemType_2 | undefined;
2698
+ key?: string | undefined;
2699
+ path?: string | undefined;
2700
+ name?: string | undefined;
2701
+ component?: string | undefined;
2702
+ redirect?: string | undefined;
2703
+ label?: string | undefined;
2704
+ icon?: (string | (() => VNode) | VNode) | undefined;
2705
+ disabled?: boolean | undefined;
2706
+ meta?: {
2707
+ [x: string]: unknown;
2708
+ title?: string | undefined;
2709
+ icon?: string | undefined;
2710
+ hidden?: boolean | undefined;
2711
+ affix?: boolean | undefined;
2712
+ keepAlive?: boolean | undefined;
2713
+ full?: boolean | undefined;
2714
+ link?: string | undefined;
2715
+ } | undefined;
2716
+ children?: /*elided*/ any[] | undefined;
2717
+ }[]>;
2718
+ };
2719
+
2720
+ /** 响应式菜单测量选项。 */
2721
+ export declare interface UseResponsiveMenuOptions {
2722
+ data: MaybeRefOrGetter<readonly MenuOptions[]>;
2723
+ /** 溢出菜单按钮和安全间距占用的宽度,默认 95px。 */
2724
+ overflowReserve?: number;
2725
+ /** ResizeObserver 触发后的防抖时间,默认 100ms。 */
2726
+ debounceMs?: number;
2727
+ }
2728
+
2729
+ /**
2730
+ * SettingsDrawer 的 UI 框架无关控制器。
2731
+ *
2732
+ * 负责配置事务、导入导出和页面级视觉效果;Naive UI / Element Plus
2733
+ * 适配器只处理组件渲染、消息和确认框。
2734
+ * 在 Vue setup/effect scope 内会自动清理;在作用域外创建时应调用返回值的 dispose()。
2735
+ */
2736
+ export declare function useSettingsController(options: SettingsControllerOptions): {
2737
+ applyImportedConfig: (input: unknown) => Promise<LayoutSettingsConfig>;
2738
+ applyPreset: (preset: ThemePreset) => Promise<void>;
2739
+ clearCache: () => Promise<void>;
2740
+ colorWeakMode: Ref<boolean, boolean>;
2741
+ createExportConfig: () => ExportedLayoutSettings;
2742
+ dispose: () => void;
2743
+ downloadConfig: () => boolean;
2744
+ grayMode: Ref<boolean, boolean>;
2745
+ importFile: (file: Pick<File, "size" | "text">) => Promise<LayoutSettingsConfig>;
2746
+ reloadPage: () => void;
2747
+ resetAll: () => Promise<void>;
2748
+ resetAppearance: () => Promise<void>;
2749
+ resetLayout: () => void;
2750
+ systemInfo: ComputedRef< {
2751
+ browser: string;
2752
+ os: string;
2753
+ resolution: string;
2754
+ pixelRatio: string;
2755
+ language: string;
2756
+ timezone: string;
2757
+ }>;
2758
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
2759
+ watermarkEnabled: Ref<boolean, boolean>;
2760
+ watermarkText: Ref<string, string>;
2761
+ };
2762
+
2763
+ /**
2764
+ * 默认的设置 Store(使用默认配置)
2765
+ */
2766
+ export declare const useSettingsStore: StoreDefinition<string, Pick<{
2767
+ /** 当前 Store 实例实际使用的默认值。 */
2768
+ defaults: Readonly<{
2769
+ themeMode: ThemeMode;
2770
+ primaryColor: string;
2771
+ borderRadius: BorderRadiusSize;
2772
+ transitionType: TransitionType;
2773
+ enableTransition: boolean;
2774
+ layoutMode: LayoutMode;
2775
+ menuExpandMode: MenuExpandMode;
2776
+ collapsed: boolean;
2777
+ fixedHeader: boolean;
2778
+ showBreadcrumb: boolean;
2779
+ showBreadcrumbIcon: boolean;
2780
+ showTagsView: boolean;
2781
+ tagsViewHeight: number;
2782
+ tagsViewStyle: TagsViewStyle;
2783
+ showFooter: boolean;
2784
+ sidebarWidth: number;
2785
+ sidebarCollapsedWidth: number;
2786
+ headerHeight: number;
2787
+ enableHotkeys: boolean;
2788
+ version: string;
2789
+ }>;
2790
+ themeMode: Ref<ThemeMode, ThemeMode>;
2791
+ primaryColor: Ref<string, string>;
2792
+ borderRadius: Ref<BorderRadiusSize, BorderRadiusSize>;
2793
+ transitionType: Ref<TransitionType, TransitionType>;
2794
+ enableTransition: Ref<boolean, boolean>;
2795
+ layoutMode: Ref<LayoutMode, LayoutMode>;
2796
+ menuExpandMode: Ref<MenuExpandMode, MenuExpandMode>;
2797
+ collapsed: Ref<boolean, boolean>;
2798
+ fixedHeader: Ref<boolean, boolean>;
2799
+ showBreadcrumb: Ref<boolean, boolean>;
2800
+ showBreadcrumbIcon: Ref<boolean, boolean>;
2801
+ showTagsView: Ref<boolean, boolean>;
2802
+ tagsViewHeight: Ref<number, number>;
2803
+ tagsViewStyle: Ref<TagsViewStyle, TagsViewStyle>;
2804
+ showFooter: Ref<boolean, boolean>;
2805
+ sidebarWidth: Ref<number, number>;
2806
+ sidebarCollapsedWidth: Ref<number, number>;
2807
+ headerHeight: Ref<number, number>;
2808
+ enableHotkeys: Ref<boolean, boolean>;
2809
+ version: Ref<string, string>;
2810
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
2811
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
2812
+ shouldEnableTransition: ComputedRef<boolean>;
2813
+ settingsState: ComputedRef<SettingsState>;
2814
+ syncCSSVariables: () => void | undefined;
2815
+ applyPreset: (preset: ThemePreset) => Promise<void>;
2816
+ resetSettings: () => void;
2817
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
2818
+ toggleCollapse: () => void;
2819
+ }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2820
+ /** 当前 Store 实例实际使用的默认值。 */
2821
+ defaults: Readonly<{
2822
+ themeMode: ThemeMode;
2823
+ primaryColor: string;
2824
+ borderRadius: BorderRadiusSize;
2825
+ transitionType: TransitionType;
2826
+ enableTransition: boolean;
2827
+ layoutMode: LayoutMode;
2828
+ menuExpandMode: MenuExpandMode;
2829
+ collapsed: boolean;
2830
+ fixedHeader: boolean;
2831
+ showBreadcrumb: boolean;
2832
+ showBreadcrumbIcon: boolean;
2833
+ showTagsView: boolean;
2834
+ tagsViewHeight: number;
2835
+ tagsViewStyle: TagsViewStyle;
2836
+ showFooter: boolean;
2837
+ sidebarWidth: number;
2838
+ sidebarCollapsedWidth: number;
2839
+ headerHeight: number;
2840
+ enableHotkeys: boolean;
2841
+ version: string;
2842
+ }>;
2843
+ themeMode: Ref<ThemeMode, ThemeMode>;
2844
+ primaryColor: Ref<string, string>;
2845
+ borderRadius: Ref<BorderRadiusSize, BorderRadiusSize>;
2846
+ transitionType: Ref<TransitionType, TransitionType>;
2847
+ enableTransition: Ref<boolean, boolean>;
2848
+ layoutMode: Ref<LayoutMode, LayoutMode>;
2849
+ menuExpandMode: Ref<MenuExpandMode, MenuExpandMode>;
2850
+ collapsed: Ref<boolean, boolean>;
2851
+ fixedHeader: Ref<boolean, boolean>;
2852
+ showBreadcrumb: Ref<boolean, boolean>;
2853
+ showBreadcrumbIcon: Ref<boolean, boolean>;
2854
+ showTagsView: Ref<boolean, boolean>;
2855
+ tagsViewHeight: Ref<number, number>;
2856
+ tagsViewStyle: Ref<TagsViewStyle, TagsViewStyle>;
2857
+ showFooter: Ref<boolean, boolean>;
2858
+ sidebarWidth: Ref<number, number>;
2859
+ sidebarCollapsedWidth: Ref<number, number>;
2860
+ headerHeight: Ref<number, number>;
2861
+ enableHotkeys: Ref<boolean, boolean>;
2862
+ version: Ref<string, string>;
2863
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
2864
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
2865
+ shouldEnableTransition: ComputedRef<boolean>;
2866
+ settingsState: ComputedRef<SettingsState>;
2867
+ syncCSSVariables: () => void | undefined;
2868
+ applyPreset: (preset: ThemePreset) => Promise<void>;
2869
+ resetSettings: () => void;
2870
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
2871
+ toggleCollapse: () => void;
2872
+ }, "borderRadiusValue" | "transitionName" | "shouldEnableTransition" | "settingsState">, Pick<{
2873
+ /** 当前 Store 实例实际使用的默认值。 */
2874
+ defaults: Readonly<{
2875
+ themeMode: ThemeMode;
2876
+ primaryColor: string;
2877
+ borderRadius: BorderRadiusSize;
2878
+ transitionType: TransitionType;
2879
+ enableTransition: boolean;
2880
+ layoutMode: LayoutMode;
2881
+ menuExpandMode: MenuExpandMode;
2882
+ collapsed: boolean;
2883
+ fixedHeader: boolean;
2884
+ showBreadcrumb: boolean;
2885
+ showBreadcrumbIcon: boolean;
2886
+ showTagsView: boolean;
2887
+ tagsViewHeight: number;
2888
+ tagsViewStyle: TagsViewStyle;
2889
+ showFooter: boolean;
2890
+ sidebarWidth: number;
2891
+ sidebarCollapsedWidth: number;
2892
+ headerHeight: number;
2893
+ enableHotkeys: boolean;
2894
+ version: string;
2895
+ }>;
2896
+ themeMode: Ref<ThemeMode, ThemeMode>;
2897
+ primaryColor: Ref<string, string>;
2898
+ borderRadius: Ref<BorderRadiusSize, BorderRadiusSize>;
2899
+ transitionType: Ref<TransitionType, TransitionType>;
2900
+ enableTransition: Ref<boolean, boolean>;
2901
+ layoutMode: Ref<LayoutMode, LayoutMode>;
2902
+ menuExpandMode: Ref<MenuExpandMode, MenuExpandMode>;
2903
+ collapsed: Ref<boolean, boolean>;
2904
+ fixedHeader: Ref<boolean, boolean>;
2905
+ showBreadcrumb: Ref<boolean, boolean>;
2906
+ showBreadcrumbIcon: Ref<boolean, boolean>;
2907
+ showTagsView: Ref<boolean, boolean>;
2908
+ tagsViewHeight: Ref<number, number>;
2909
+ tagsViewStyle: Ref<TagsViewStyle, TagsViewStyle>;
2910
+ showFooter: Ref<boolean, boolean>;
2911
+ sidebarWidth: Ref<number, number>;
2912
+ sidebarCollapsedWidth: Ref<number, number>;
2913
+ headerHeight: Ref<number, number>;
2914
+ enableHotkeys: Ref<boolean, boolean>;
2915
+ version: Ref<string, string>;
2916
+ borderRadiusValue: ComputedRef<"4px" | "6px" | "8px">;
2917
+ transitionName: ComputedRef<"" | "fade-transform" | "fade-slide" | "fade-zoom">;
2918
+ shouldEnableTransition: ComputedRef<boolean>;
2919
+ settingsState: ComputedRef<SettingsState>;
2920
+ syncCSSVariables: () => void | undefined;
2921
+ applyPreset: (preset: ThemePreset) => Promise<void>;
2922
+ resetSettings: () => void;
2923
+ updateThemeMode: (mode: ThemeMode) => Promise<void>;
2924
+ toggleCollapse: () => void;
2925
+ }, "syncCSSVariables" | "applyPreset" | "resetSettings" | "updateThemeMode" | "toggleCollapse">>;
2926
+
2927
+ export { }