@robot-admin/layout 3.2.2 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -112,6 +112,7 @@ declare function __VLS_template(): {
112
112
  logo?(_: {}): any;
113
113
  menu?(_: {
114
114
  collapsed: boolean;
115
+ collapsedWidth: number;
115
116
  }): any;
116
117
  header?(_: {}): any;
117
118
  header?(_: {}): any;
@@ -196,7 +197,7 @@ declare function __VLS_template_2(): {
196
197
  resetSettings: () => void;
197
198
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
198
199
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
200
201
  defaults: Readonly<{
201
202
  themeMode: ThemeMode;
202
203
  primaryColor: string;
@@ -355,7 +356,7 @@ declare function __VLS_template_2(): {
355
356
  resetSettings: () => void;
356
357
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
357
358
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
359
360
  defaults: Readonly<{
360
361
  themeMode: ThemeMode;
361
362
  primaryColor: string;
@@ -514,7 +515,7 @@ declare function __VLS_template_2(): {
514
515
  resetSettings: () => void;
515
516
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
516
517
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
518
519
  defaults: Readonly<{
519
520
  themeMode: ThemeMode;
520
521
  primaryColor: string;
@@ -673,7 +674,7 @@ declare function __VLS_template_2(): {
673
674
  resetSettings: () => void;
674
675
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
675
676
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
677
678
  defaults: Readonly<{
678
679
  themeMode: ThemeMode;
679
680
  primaryColor: string;
@@ -832,7 +833,7 @@ declare function __VLS_template_2(): {
832
833
  resetSettings: () => void;
833
834
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
834
835
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
836
837
  defaults: Readonly<{
837
838
  themeMode: ThemeMode;
838
839
  primaryColor: string;
@@ -991,7 +992,7 @@ declare function __VLS_template_2(): {
991
992
  resetSettings: () => void;
992
993
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
993
994
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
995
996
  defaults: Readonly<{
996
997
  themeMode: ThemeMode;
997
998
  primaryColor: string;
@@ -1150,7 +1151,7 @@ declare function __VLS_template_2(): {
1150
1151
  resetSettings: () => void;
1151
1152
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
1152
1153
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
1154
1155
  defaults: Readonly<{
1155
1156
  themeMode: ThemeMode;
1156
1157
  primaryColor: string;
@@ -1449,6 +1450,7 @@ collapsed: boolean;
1449
1450
  logo?(_: {}): any;
1450
1451
  menu?(_: {
1451
1452
  collapsed: boolean;
1453
+ collapsedWidth: number;
1452
1454
  }): any;
1453
1455
  header?(_: {}): any;
1454
1456
  footer?(_: {}): any;
@@ -1585,7 +1587,7 @@ applyPreset: (preset: ThemePreset) => Promise<void>;
1585
1587
  resetSettings: () => void;
1586
1588
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
1587
1589
  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<{
1590
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
1589
1591
  /** 当前 Store 实例实际使用的默认值。 */
1590
1592
  defaults: Readonly<{
1591
1593
  themeMode: ThemeMode;
@@ -1872,12 +1874,17 @@ export declare interface LayoutInfo {
1872
1874
  export declare type LayoutMenuItem<TMeta extends MenuMeta = MenuMeta> = Omit<MenuOptions<TMeta>, "children" | "key" | "meta" | "path"> & {
1873
1875
  key: string;
1874
1876
  path: string;
1875
- meta: TMeta & {
1876
- title: string;
1877
- };
1877
+ meta: LayoutMenuMeta<TMeta>;
1878
1878
  children?: LayoutMenuItem<TMeta>[];
1879
1879
  };
1880
1880
 
1881
+ /** 标准化只保证通用元数据与标题;宿主扩展字段可能因缺少 meta 而不存在。 */
1882
+ export declare type LayoutMenuMeta<TMeta extends MenuMeta = MenuMeta> = MenuMeta & {
1883
+ [K in keyof TMeta as K extends "title" | "icon" ? never : K]?: TMeta[K];
1884
+ } & {
1885
+ title: string;
1886
+ };
1887
+
1881
1888
  /** 内置布局模式。 */
1882
1889
  export declare type LayoutMode = "side" | "top" | "mix" | "mix-top" | "reverse-horizontal-mix" | "card-layout";
1883
1890
 
@@ -2082,6 +2089,7 @@ export declare const MixTopLayout: {
2082
2089
  /**
2083
2090
  * 非破坏地统一 path/key、label/meta.title 与字符串图标来源。
2084
2091
  * 缺少稳定路径或 key 的节点不会进入导航,避免意外跳转到根路由。
2092
+ * meta 可缺省,因此不会把宿主扩展字段提升为必填;title/icon 会按通用规则补齐。
2085
2093
  */
2086
2094
  export declare function normalizeLayoutMenus<TMeta extends MenuMeta = MenuMeta>(menus: readonly MenuOptions<TMeta>[]): LayoutMenuItem<TMeta>[];
2087
2095
 
@@ -2287,7 +2295,7 @@ applyPreset: (preset: ThemePreset) => Promise<void>;
2287
2295
  resetSettings: () => void;
2288
2296
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
2289
2297
  toggleCollapse: () => void;
2290
- }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2298
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2291
2299
  defaults: Readonly<{
2292
2300
  themeMode: ThemeMode;
2293
2301
  primaryColor: string;
@@ -2447,6 +2455,7 @@ collapsed: boolean;
2447
2455
  logo?(_: {}): any;
2448
2456
  menu?(_: {
2449
2457
  collapsed: boolean;
2458
+ collapsedWidth: number;
2450
2459
  }): any;
2451
2460
  header?(_: {}): any;
2452
2461
  footer?(_: {}): any;
@@ -2479,9 +2488,12 @@ export declare interface ThemePreset {
2479
2488
  description?: string;
2480
2489
  icon: string;
2481
2490
  primaryColor: string;
2482
- settings?: Partial<Omit<SettingsState, "themeMode" | "layoutMode" | "primaryColor">>;
2491
+ settings?: ThemePresetSettings;
2483
2492
  }
2484
2493
 
2494
+ /** 主题预设实际应用的外观细节;其他布局设置由宿主单独维护。 */
2495
+ export declare type ThemePresetSettings = Partial<Pick<SettingsState, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle">>;
2496
+
2485
2497
  /** @deprecated 请使用 C_TopLayout;计划在 4.0 移除。 */
2486
2498
  export declare const TopLayout: {
2487
2499
  new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
@@ -2808,7 +2820,7 @@ applyPreset: (preset: ThemePreset) => Promise<void>;
2808
2820
  resetSettings: () => void;
2809
2821
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
2810
2822
  toggleCollapse: () => void;
2811
- }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2823
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2812
2824
  /** 当前 Store 实例实际使用的默认值。 */
2813
2825
  defaults: Readonly<{
2814
2826
  themeMode: ThemeMode;
package/dist/index.d.ts CHANGED
@@ -112,6 +112,7 @@ declare function __VLS_template(): {
112
112
  logo?(_: {}): any;
113
113
  menu?(_: {
114
114
  collapsed: boolean;
115
+ collapsedWidth: number;
115
116
  }): any;
116
117
  header?(_: {}): any;
117
118
  header?(_: {}): any;
@@ -196,7 +197,7 @@ declare function __VLS_template_2(): {
196
197
  resetSettings: () => void;
197
198
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
198
199
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
200
201
  defaults: Readonly<{
201
202
  themeMode: ThemeMode;
202
203
  primaryColor: string;
@@ -355,7 +356,7 @@ declare function __VLS_template_2(): {
355
356
  resetSettings: () => void;
356
357
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
357
358
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
359
360
  defaults: Readonly<{
360
361
  themeMode: ThemeMode;
361
362
  primaryColor: string;
@@ -514,7 +515,7 @@ declare function __VLS_template_2(): {
514
515
  resetSettings: () => void;
515
516
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
516
517
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
518
519
  defaults: Readonly<{
519
520
  themeMode: ThemeMode;
520
521
  primaryColor: string;
@@ -673,7 +674,7 @@ declare function __VLS_template_2(): {
673
674
  resetSettings: () => void;
674
675
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
675
676
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
677
678
  defaults: Readonly<{
678
679
  themeMode: ThemeMode;
679
680
  primaryColor: string;
@@ -832,7 +833,7 @@ declare function __VLS_template_2(): {
832
833
  resetSettings: () => void;
833
834
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
834
835
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
836
837
  defaults: Readonly<{
837
838
  themeMode: ThemeMode;
838
839
  primaryColor: string;
@@ -991,7 +992,7 @@ declare function __VLS_template_2(): {
991
992
  resetSettings: () => void;
992
993
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
993
994
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
995
996
  defaults: Readonly<{
996
997
  themeMode: ThemeMode;
997
998
  primaryColor: string;
@@ -1150,7 +1151,7 @@ declare function __VLS_template_2(): {
1150
1151
  resetSettings: () => void;
1151
1152
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
1152
1153
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
1154
1155
  defaults: Readonly<{
1155
1156
  themeMode: ThemeMode;
1156
1157
  primaryColor: string;
@@ -1449,6 +1450,7 @@ collapsed: boolean;
1449
1450
  logo?(_: {}): any;
1450
1451
  menu?(_: {
1451
1452
  collapsed: boolean;
1453
+ collapsedWidth: number;
1452
1454
  }): any;
1453
1455
  header?(_: {}): any;
1454
1456
  footer?(_: {}): any;
@@ -1585,7 +1587,7 @@ applyPreset: (preset: ThemePreset) => Promise<void>;
1585
1587
  resetSettings: () => void;
1586
1588
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
1587
1589
  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<{
1590
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
1589
1591
  /** 当前 Store 实例实际使用的默认值。 */
1590
1592
  defaults: Readonly<{
1591
1593
  themeMode: ThemeMode;
@@ -1872,12 +1874,17 @@ export declare interface LayoutInfo {
1872
1874
  export declare type LayoutMenuItem<TMeta extends MenuMeta = MenuMeta> = Omit<MenuOptions<TMeta>, "children" | "key" | "meta" | "path"> & {
1873
1875
  key: string;
1874
1876
  path: string;
1875
- meta: TMeta & {
1876
- title: string;
1877
- };
1877
+ meta: LayoutMenuMeta<TMeta>;
1878
1878
  children?: LayoutMenuItem<TMeta>[];
1879
1879
  };
1880
1880
 
1881
+ /** 标准化只保证通用元数据与标题;宿主扩展字段可能因缺少 meta 而不存在。 */
1882
+ export declare type LayoutMenuMeta<TMeta extends MenuMeta = MenuMeta> = MenuMeta & {
1883
+ [K in keyof TMeta as K extends "title" | "icon" ? never : K]?: TMeta[K];
1884
+ } & {
1885
+ title: string;
1886
+ };
1887
+
1881
1888
  /** 内置布局模式。 */
1882
1889
  export declare type LayoutMode = "side" | "top" | "mix" | "mix-top" | "reverse-horizontal-mix" | "card-layout";
1883
1890
 
@@ -2082,6 +2089,7 @@ export declare const MixTopLayout: {
2082
2089
  /**
2083
2090
  * 非破坏地统一 path/key、label/meta.title 与字符串图标来源。
2084
2091
  * 缺少稳定路径或 key 的节点不会进入导航,避免意外跳转到根路由。
2092
+ * meta 可缺省,因此不会把宿主扩展字段提升为必填;title/icon 会按通用规则补齐。
2085
2093
  */
2086
2094
  export declare function normalizeLayoutMenus<TMeta extends MenuMeta = MenuMeta>(menus: readonly MenuOptions<TMeta>[]): LayoutMenuItem<TMeta>[];
2087
2095
 
@@ -2287,7 +2295,7 @@ applyPreset: (preset: ThemePreset) => Promise<void>;
2287
2295
  resetSettings: () => void;
2288
2296
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
2289
2297
  toggleCollapse: () => void;
2290
- }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2298
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2291
2299
  defaults: Readonly<{
2292
2300
  themeMode: ThemeMode;
2293
2301
  primaryColor: string;
@@ -2447,6 +2455,7 @@ collapsed: boolean;
2447
2455
  logo?(_: {}): any;
2448
2456
  menu?(_: {
2449
2457
  collapsed: boolean;
2458
+ collapsedWidth: number;
2450
2459
  }): any;
2451
2460
  header?(_: {}): any;
2452
2461
  footer?(_: {}): any;
@@ -2479,9 +2488,12 @@ export declare interface ThemePreset {
2479
2488
  description?: string;
2480
2489
  icon: string;
2481
2490
  primaryColor: string;
2482
- settings?: Partial<Omit<SettingsState, "themeMode" | "layoutMode" | "primaryColor">>;
2491
+ settings?: ThemePresetSettings;
2483
2492
  }
2484
2493
 
2494
+ /** 主题预设实际应用的外观细节;其他布局设置由宿主单独维护。 */
2495
+ export declare type ThemePresetSettings = Partial<Pick<SettingsState, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle">>;
2496
+
2485
2497
  /** @deprecated 请使用 C_TopLayout;计划在 4.0 移除。 */
2486
2498
  export declare const TopLayout: {
2487
2499
  new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
@@ -2808,7 +2820,7 @@ applyPreset: (preset: ThemePreset) => Promise<void>;
2808
2820
  resetSettings: () => void;
2809
2821
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
2810
2822
  toggleCollapse: () => void;
2811
- }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2823
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2812
2824
  /** 当前 Store 实例实际使用的默认值。 */
2813
2825
  defaults: Readonly<{
2814
2826
  themeMode: ThemeMode;
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { A as e, C as t, D as n, E as r, F as i, I as a, L as o, M as s, N as c, O as l, P as u, S as d, T as f, _ as p, a as m, b as h, c as g, d as _, f as v, g as y, h as b, i as x, j as S, k as C, l as w, m as T, n as E, o as D, p as O, r as k, s as A, t as j, u as M, v as N, w as P, x as F, y as I } from "./vue-h8jl2I5K.js";
2
- import { _ as L, a as R, b as z, c as B, d as V, f as H, g as U, h as W, i as G, l as K, m as q, n as J, o as Y, p as X, r as Z, s as Q, t as $, u as ee, v as te, x as ne, y as re } from "./naive-Dqpxs8Vr.js";
1
+ import { A as e, C as t, D as n, E as r, F as i, I as a, L as o, M as s, N as c, O as l, P as u, S as d, T as f, _ as p, a as m, b as h, c as g, d as _, f as v, g as y, h as b, i as x, j as S, k as C, l as w, m as T, n as E, o as D, p as O, r as k, s as A, t as j, u as M, v as N, w as P, x as F, y as I } from "./vue-CtBraK0m.js";
2
+ import { _ as L, a as R, b as z, c as B, d as V, f as H, g as U, h as W, i as G, l as K, m as q, n as J, o as Y, p as X, r as Z, s as Q, t as $, u as ee, v as te, x as ne, y as re } from "./naive-C58sPmz4.js";
3
3
  export { _ as BORDER_RADIUS_MAP, te as BrandLogo, v as COLOR_SWATCHES, $ as C_CardLayout, z as C_LayoutContainer, J as C_MixLayout, Z as C_MixTopLayout, G as C_ReverseHorizontalMixLayout, R as C_SideLayout, Y as C_TopLayout, Q as CardLayout, S as DEFAULT_BRAND_CONFIG, O as DEFAULT_SETTINGS, s as DRAWER_HANDLER_KEY, q as DrawerMenu, U as FloatingMenu, L as IconMenu, c as LAYOUT_CONTEXT_KEY, T as LAYOUT_MODES, u as LAYOUT_SETTINGS_KEY, j as LayoutActionUnavailableError, i as MENU_COLLAPSE_KEY, X as MenuTrigger, B as MixLayout, K as MixTopLayout, b as PRESET_COLORS, ne as ResponsiveMenu, ee as ReverseHorizontalMixLayout, N as SETTINGS_CONFIG_SCHEMA_VERSION, re as SettingsDrawer, V as SideLayout, W as SideMenu, y as THEME_PRESETS, p as TRANSITION_MAP, H as TopLayout, I as adjustColor, h as assertLayoutSettingsRelationships, w as bindLayoutCssVariables, r as calculateVisibleMenuCount, k as createLayoutContext, A as createSettingsStore, n as estimateMenuItemWidth, P as isPathSegmentPrefix, m as normalizeLayoutMenus, x as provideLayout, a as provideLayoutContext, F as sanitizeLayoutSettingsConfig, d as sanitizeSettingsPatch, D as setupLayout, C as shouldCacheRoute, e as useLayoutCache, o as useLayoutContext, M as useLayoutCssVariables, t as useLayoutIcon, f as useMenuSplit, l as useResponsiveMenu, E as useSettingsController, g as useSettingsStore };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../vue-DVWXVFUx.cjs`),t=require(`../naive-BiMxNESA.cjs`);exports.BORDER_RADIUS_MAP=e.d,exports.BrandLogo=t.v,exports.COLOR_SWATCHES=e.f,exports.C_CardLayout=t.t,exports.C_LayoutContainer=t.b,exports.C_MixLayout=t.n,exports.C_MixTopLayout=t.r,exports.C_ReverseHorizontalMixLayout=t.i,exports.C_SideLayout=t.a,exports.C_TopLayout=t.o,exports.CardLayout=t.s,exports.DEFAULT_BRAND_CONFIG=e.j,exports.DEFAULT_SETTINGS=e.p,exports.DRAWER_HANDLER_KEY=e.M,exports.DrawerMenu=t.m,exports.FloatingMenu=t.g,exports.IconMenu=t._,exports.LAYOUT_CONTEXT_KEY=e.N,exports.LAYOUT_MODES=e.m,exports.LAYOUT_SETTINGS_KEY=e.P,exports.LayoutActionUnavailableError=e.t,exports.MENU_COLLAPSE_KEY=e.F,exports.MenuTrigger=t.p,exports.MixLayout=t.c,exports.MixTopLayout=t.l,exports.PRESET_COLORS=e.h,exports.ResponsiveMenu=t.x,exports.ReverseHorizontalMixLayout=t.u,exports.SETTINGS_CONFIG_SCHEMA_VERSION=e.v,exports.SettingsDrawer=t.y,exports.SideLayout=t.d,exports.SideMenu=t.h,exports.THEME_PRESETS=e.g,exports.TRANSITION_MAP=e._,exports.TopLayout=t.f,exports.adjustColor=e.y,exports.assertLayoutSettingsRelationships=e.b,exports.bindLayoutCssVariables=e.l,exports.calculateVisibleMenuCount=e.E,exports.createLayoutContext=e.r,exports.createSettingsStore=e.s,exports.estimateMenuItemWidth=e.D,exports.isPathSegmentPrefix=e.w,exports.normalizeLayoutMenus=e.a,exports.provideLayout=e.i,exports.provideLayoutContext=e.I,exports.sanitizeLayoutSettingsConfig=e.x,exports.sanitizeSettingsPatch=e.S,exports.setupLayout=e.o,exports.shouldCacheRoute=e.k,exports.useLayoutCache=e.A,exports.useLayoutContext=e.L,exports.useLayoutCssVariables=e.u,exports.useLayoutIcon=e.C,exports.useMenuSplit=e.T,exports.useResponsiveMenu=e.O,exports.useSettingsController=e.n,exports.useSettingsStore=e.c;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../vue-CtN1HvrH.cjs`),t=require(`../naive-B-8uP6ew.cjs`);exports.BORDER_RADIUS_MAP=e.d,exports.BrandLogo=t.v,exports.COLOR_SWATCHES=e.f,exports.C_CardLayout=t.t,exports.C_LayoutContainer=t.b,exports.C_MixLayout=t.n,exports.C_MixTopLayout=t.r,exports.C_ReverseHorizontalMixLayout=t.i,exports.C_SideLayout=t.a,exports.C_TopLayout=t.o,exports.CardLayout=t.s,exports.DEFAULT_BRAND_CONFIG=e.j,exports.DEFAULT_SETTINGS=e.p,exports.DRAWER_HANDLER_KEY=e.M,exports.DrawerMenu=t.m,exports.FloatingMenu=t.g,exports.IconMenu=t._,exports.LAYOUT_CONTEXT_KEY=e.N,exports.LAYOUT_MODES=e.m,exports.LAYOUT_SETTINGS_KEY=e.P,exports.LayoutActionUnavailableError=e.t,exports.MENU_COLLAPSE_KEY=e.F,exports.MenuTrigger=t.p,exports.MixLayout=t.c,exports.MixTopLayout=t.l,exports.PRESET_COLORS=e.h,exports.ResponsiveMenu=t.x,exports.ReverseHorizontalMixLayout=t.u,exports.SETTINGS_CONFIG_SCHEMA_VERSION=e.v,exports.SettingsDrawer=t.y,exports.SideLayout=t.d,exports.SideMenu=t.h,exports.THEME_PRESETS=e.g,exports.TRANSITION_MAP=e._,exports.TopLayout=t.f,exports.adjustColor=e.y,exports.assertLayoutSettingsRelationships=e.b,exports.bindLayoutCssVariables=e.l,exports.calculateVisibleMenuCount=e.E,exports.createLayoutContext=e.r,exports.createSettingsStore=e.s,exports.estimateMenuItemWidth=e.D,exports.isPathSegmentPrefix=e.w,exports.normalizeLayoutMenus=e.a,exports.provideLayout=e.i,exports.provideLayoutContext=e.I,exports.sanitizeLayoutSettingsConfig=e.x,exports.sanitizeSettingsPatch=e.S,exports.setupLayout=e.o,exports.shouldCacheRoute=e.k,exports.useLayoutCache=e.A,exports.useLayoutContext=e.L,exports.useLayoutCssVariables=e.u,exports.useLayoutIcon=e.C,exports.useMenuSplit=e.T,exports.useResponsiveMenu=e.O,exports.useSettingsController=e.n,exports.useSettingsStore=e.c;
@@ -112,6 +112,7 @@ declare function __VLS_template(): {
112
112
  logo?(_: {}): any;
113
113
  menu?(_: {
114
114
  collapsed: boolean;
115
+ collapsedWidth: number;
115
116
  }): any;
116
117
  header?(_: {}): any;
117
118
  header?(_: {}): any;
@@ -196,7 +197,7 @@ declare function __VLS_template_2(): {
196
197
  resetSettings: () => void;
197
198
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
198
199
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
200
201
  defaults: Readonly<{
201
202
  themeMode: ThemeMode;
202
203
  primaryColor: string;
@@ -355,7 +356,7 @@ declare function __VLS_template_2(): {
355
356
  resetSettings: () => void;
356
357
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
357
358
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
359
360
  defaults: Readonly<{
360
361
  themeMode: ThemeMode;
361
362
  primaryColor: string;
@@ -514,7 +515,7 @@ declare function __VLS_template_2(): {
514
515
  resetSettings: () => void;
515
516
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
516
517
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
518
519
  defaults: Readonly<{
519
520
  themeMode: ThemeMode;
520
521
  primaryColor: string;
@@ -673,7 +674,7 @@ declare function __VLS_template_2(): {
673
674
  resetSettings: () => void;
674
675
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
675
676
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
677
678
  defaults: Readonly<{
678
679
  themeMode: ThemeMode;
679
680
  primaryColor: string;
@@ -832,7 +833,7 @@ declare function __VLS_template_2(): {
832
833
  resetSettings: () => void;
833
834
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
834
835
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
836
837
  defaults: Readonly<{
837
838
  themeMode: ThemeMode;
838
839
  primaryColor: string;
@@ -991,7 +992,7 @@ declare function __VLS_template_2(): {
991
992
  resetSettings: () => void;
992
993
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
993
994
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
995
996
  defaults: Readonly<{
996
997
  themeMode: ThemeMode;
997
998
  primaryColor: string;
@@ -1150,7 +1151,7 @@ declare function __VLS_template_2(): {
1150
1151
  resetSettings: () => void;
1151
1152
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
1152
1153
  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
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
1154
1155
  defaults: Readonly<{
1155
1156
  themeMode: ThemeMode;
1156
1157
  primaryColor: string;
@@ -1449,6 +1450,7 @@ collapsed: boolean;
1449
1450
  logo?(_: {}): any;
1450
1451
  menu?(_: {
1451
1452
  collapsed: boolean;
1453
+ collapsedWidth: number;
1452
1454
  }): any;
1453
1455
  header?(_: {}): any;
1454
1456
  footer?(_: {}): any;
@@ -1585,7 +1587,7 @@ applyPreset: (preset: ThemePreset) => Promise<void>;
1585
1587
  resetSettings: () => void;
1586
1588
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
1587
1589
  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<{
1590
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
1589
1591
  /** 当前 Store 实例实际使用的默认值。 */
1590
1592
  defaults: Readonly<{
1591
1593
  themeMode: ThemeMode;
@@ -1872,12 +1874,17 @@ export declare interface LayoutInfo {
1872
1874
  export declare type LayoutMenuItem<TMeta extends MenuMeta = MenuMeta> = Omit<MenuOptions<TMeta>, "children" | "key" | "meta" | "path"> & {
1873
1875
  key: string;
1874
1876
  path: string;
1875
- meta: TMeta & {
1876
- title: string;
1877
- };
1877
+ meta: LayoutMenuMeta<TMeta>;
1878
1878
  children?: LayoutMenuItem<TMeta>[];
1879
1879
  };
1880
1880
 
1881
+ /** 标准化只保证通用元数据与标题;宿主扩展字段可能因缺少 meta 而不存在。 */
1882
+ export declare type LayoutMenuMeta<TMeta extends MenuMeta = MenuMeta> = MenuMeta & {
1883
+ [K in keyof TMeta as K extends "title" | "icon" ? never : K]?: TMeta[K];
1884
+ } & {
1885
+ title: string;
1886
+ };
1887
+
1881
1888
  /** 内置布局模式。 */
1882
1889
  export declare type LayoutMode = "side" | "top" | "mix" | "mix-top" | "reverse-horizontal-mix" | "card-layout";
1883
1890
 
@@ -2082,6 +2089,7 @@ export declare const MixTopLayout: {
2082
2089
  /**
2083
2090
  * 非破坏地统一 path/key、label/meta.title 与字符串图标来源。
2084
2091
  * 缺少稳定路径或 key 的节点不会进入导航,避免意外跳转到根路由。
2092
+ * meta 可缺省,因此不会把宿主扩展字段提升为必填;title/icon 会按通用规则补齐。
2085
2093
  */
2086
2094
  export declare function normalizeLayoutMenus<TMeta extends MenuMeta = MenuMeta>(menus: readonly MenuOptions<TMeta>[]): LayoutMenuItem<TMeta>[];
2087
2095
 
@@ -2287,7 +2295,7 @@ applyPreset: (preset: ThemePreset) => Promise<void>;
2287
2295
  resetSettings: () => void;
2288
2296
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
2289
2297
  toggleCollapse: () => void;
2290
- }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2298
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2291
2299
  defaults: Readonly<{
2292
2300
  themeMode: ThemeMode;
2293
2301
  primaryColor: string;
@@ -2447,6 +2455,7 @@ collapsed: boolean;
2447
2455
  logo?(_: {}): any;
2448
2456
  menu?(_: {
2449
2457
  collapsed: boolean;
2458
+ collapsedWidth: number;
2450
2459
  }): any;
2451
2460
  header?(_: {}): any;
2452
2461
  footer?(_: {}): any;
@@ -2479,9 +2488,12 @@ export declare interface ThemePreset {
2479
2488
  description?: string;
2480
2489
  icon: string;
2481
2490
  primaryColor: string;
2482
- settings?: Partial<Omit<SettingsState, "themeMode" | "layoutMode" | "primaryColor">>;
2491
+ settings?: ThemePresetSettings;
2483
2492
  }
2484
2493
 
2494
+ /** 主题预设实际应用的外观细节;其他布局设置由宿主单独维护。 */
2495
+ export declare type ThemePresetSettings = Partial<Pick<SettingsState, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle">>;
2496
+
2485
2497
  /** @deprecated 请使用 C_TopLayout;计划在 4.0 移除。 */
2486
2498
  export declare const TopLayout: {
2487
2499
  new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {}, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, HTMLDivElement, ComponentProvideOptions, {
@@ -2808,7 +2820,7 @@ applyPreset: (preset: ThemePreset) => Promise<void>;
2808
2820
  resetSettings: () => void;
2809
2821
  updateThemeMode: (mode: ThemeMode) => Promise<void>;
2810
2822
  toggleCollapse: () => void;
2811
- }, "themeMode" | "layoutMode" | "primaryColor" | "borderRadius" | "transitionType" | "enableTransition" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumb" | "showBreadcrumbIcon" | "showTagsView" | "tagsViewHeight" | "tagsViewStyle" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2823
+ }, "borderRadius" | "transitionType" | "showBreadcrumb" | "showTagsView" | "tagsViewStyle" | "themeMode" | "primaryColor" | "enableTransition" | "layoutMode" | "menuExpandMode" | "collapsed" | "fixedHeader" | "showBreadcrumbIcon" | "tagsViewHeight" | "showFooter" | "sidebarWidth" | "sidebarCollapsedWidth" | "headerHeight" | "enableHotkeys" | "version" | "defaults">, Pick<{
2812
2824
  /** 当前 Store 实例实际使用的默认值。 */
2813
2825
  defaults: Readonly<{
2814
2826
  themeMode: ThemeMode;