@gx-design-vue/pro-layout 0.1.0-beta.147 → 0.1.0-beta.149

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/Context.d.ts CHANGED
@@ -11,7 +11,6 @@ export interface ProLayoutContextProps {
11
11
  tabsComRef: Ref<TabsComExpose | undefined>;
12
12
  breadcrumb: ComputedRef<BreadcrumbListReturn>;
13
13
  layoutStyle: Ref<BasicLayoutProps['layoutStyle']>;
14
- dark: Ref<boolean>;
15
14
  collapsed: Ref<boolean>;
16
15
  collapsedWidth: Ref<number>;
17
16
  openKeys: Ref<ProLayoutMenuFunProps['openKeys']>;
@@ -29,7 +28,6 @@ export interface ProLayoutContextProps {
29
28
  pageHeaderRender: ComputedRef<PageContainerPropsType['pageHeaderRender']>;
30
29
  menuProps: ComputedRef<MenuPropsContext>;
31
30
  layoutProps: ComputedRef<LayoutContext>;
32
- onDarkChange: BasicLayoutProps['onDarkChange'];
33
31
  }
34
32
  declare const provideProLayoutContext: (value: ProLayoutContextProps) => void, useProLayoutContext: (injectDefaultValue?: ProLayoutContextProps | undefined) => ProLayoutContextProps;
35
33
  export { provideProLayoutContext, useProLayoutContext };
@@ -1,5 +1,6 @@
1
1
  import type { CustomRender } from '@gx-design-vue/pro-utils';
2
2
  import type { CSSProperties, SlotsType } from 'vue';
3
+ import type { ThemeValue } from './components/ThemeContext';
3
4
  import type { BreadcrumbProps, ProRoute } from './types/Breadcrumb';
4
5
  import type { AppRouteModule } from './types/RouteTypings';
5
6
  import type { LogoRenderProps } from './types/SlotsTypings';
@@ -197,12 +198,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
197
198
  type: import("vue").PropType<import("./types/SlotsTypings").MenuHeaderRender>;
198
199
  default: () => undefined;
199
200
  };
200
- dark: {
201
- type: import("vue").PropType<boolean | "system">;
202
- default: undefined;
201
+ theme: {
202
+ type: import("vue").PropType<ThemeValue>;
203
203
  };
204
- onDarkChange: import("vue").PropType<(value?: boolean | "system") => void>;
205
- 'onUpdate:dark': import("vue").PropType<(value?: boolean | "system") => void>;
204
+ onThemeChange: import("vue").PropType<(value?: ThemeValue) => void>;
205
+ 'onUpdate:theme': import("vue").PropType<(value?: ThemeValue) => void>;
206
206
  id: import("vue").PropType<string>;
207
207
  class: import("vue").PropType<string>;
208
208
  style: {
@@ -220,8 +220,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
220
220
  logoClick: () => true;
221
221
  tabsChange: (tabs: AppRouteModule[]) => boolean;
222
222
  'update:tabs': (tabs: AppRouteModule[]) => boolean;
223
- darkChange: (_value: BasicLayoutProps["dark"]) => true;
224
- 'update:dark': (_value: BasicLayoutProps["dark"]) => true;
223
+ themeChange: (_value: BasicLayoutProps["theme"]) => true;
224
+ 'update:theme': (_value: BasicLayoutProps["theme"]) => true;
225
225
  contentFullScreenChange: (_value: boolean) => true;
226
226
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
227
227
  settings: {
@@ -416,12 +416,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
416
416
  type: import("vue").PropType<import("./types/SlotsTypings").MenuHeaderRender>;
417
417
  default: () => undefined;
418
418
  };
419
- dark: {
420
- type: import("vue").PropType<boolean | "system">;
421
- default: undefined;
419
+ theme: {
420
+ type: import("vue").PropType<ThemeValue>;
422
421
  };
423
- onDarkChange: import("vue").PropType<(value?: boolean | "system") => void>;
424
- 'onUpdate:dark': import("vue").PropType<(value?: boolean | "system") => void>;
422
+ onThemeChange: import("vue").PropType<(value?: ThemeValue) => void>;
423
+ 'onUpdate:theme': import("vue").PropType<(value?: ThemeValue) => void>;
425
424
  id: import("vue").PropType<string>;
426
425
  class: import("vue").PropType<string>;
427
426
  style: {
@@ -439,11 +438,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
439
438
  onLogoClick?: (() => any) | undefined;
440
439
  onTabsChange?: ((tabs: AppRouteModule[]) => any) | undefined;
441
440
  "onUpdate:tabs"?: ((tabs: AppRouteModule[]) => any) | undefined;
442
- onDarkChange?: ((_value: boolean | "system" | undefined) => any) | undefined;
443
- "onUpdate:dark"?: ((_value: boolean | "system" | undefined) => any) | undefined;
441
+ onThemeChange?: ((_value: ThemeValue | undefined) => any) | undefined;
442
+ "onUpdate:theme"?: ((_value: ThemeValue | undefined) => any) | undefined;
444
443
  onContentFullScreenChange?: ((_value: boolean) => any) | undefined;
445
444
  }>, {
446
- dark: boolean | "system";
447
445
  logo: CustomRender;
448
446
  logoStyle: CSSProperties | undefined;
449
447
  logoRender: import("./types/SlotsTypings").LogoRender | undefined;
@@ -44,8 +44,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
44
44
  type: import("vue").PropType<import("../../types/MenuTypings").ProLayoutMenuFunProps["selectedKeys"]>;
45
45
  default: () => never[];
46
46
  };
47
- theme: {
48
- type: import("vue").PropType<import("../../config").ProLayoutConfig["theme"]>;
47
+ menuTheme: {
48
+ type: import("vue").PropType<import("../../config").ProLayoutConfig["menuTheme"]>;
49
49
  default: import("../../config").BaseMenuTheme;
50
50
  };
51
51
  iconfontUrl: {
@@ -88,8 +88,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
88
88
  type: import("vue").PropType<import("../../types/MenuTypings").ProLayoutMenuFunProps["selectedKeys"]>;
89
89
  default: () => never[];
90
90
  };
91
- theme: {
92
- type: import("vue").PropType<import("../../config").ProLayoutConfig["theme"]>;
91
+ menuTheme: {
92
+ type: import("vue").PropType<import("../../config").ProLayoutConfig["menuTheme"]>;
93
93
  default: import("../../config").BaseMenuTheme;
94
94
  };
95
95
  iconfontUrl: {
@@ -97,7 +97,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
97
97
  default: string | undefined;
98
98
  };
99
99
  }>> & Readonly<{}>, {
100
- theme: import("../../config").BaseMenuTheme;
100
+ menuTheme: import("../../config").BaseMenuTheme;
101
101
  iconfontUrl: string | undefined;
102
102
  openKeys: string[];
103
103
  selectedKeys: string[];
@@ -63,8 +63,8 @@ export declare const baseMenuProps: {
63
63
  type: PropType<ProLayoutMenuFunProps["selectedKeys"]>;
64
64
  default: () => never[];
65
65
  };
66
- theme: {
67
- type: PropType<import("../..").ProLayoutConfig["theme"]>;
66
+ menuTheme: {
67
+ type: PropType<import("../..").ProLayoutConfig["menuTheme"]>;
68
68
  default: import("../..").BaseMenuTheme;
69
69
  };
70
70
  iconfontUrl: {
@@ -0,0 +1,47 @@
1
+ import type { ComputedRef, PropType, Ref, SlotsType } from 'vue';
2
+ export type BaseTheme = 'light' | 'dark';
3
+ export type ThemeValue = 'light' | 'dark' | 'system';
4
+ export interface ThemeProviderContext {
5
+ theme: Ref<ThemeValue>;
6
+ resolvedTheme: Ref<BaseTheme>;
7
+ dark: ComputedRef<boolean>;
8
+ setTheme: (theme: ThemeValue) => void;
9
+ }
10
+ export declare const createThemeContext: (value: ThemeProviderContext) => void, useThemeContext: (injectDefaultValue?: ThemeProviderContext | undefined) => ThemeProviderContext;
11
+ declare const ThemeProvider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
12
+ theme: {
13
+ type: PropType<ThemeValue>;
14
+ };
15
+ defaultTheme: {
16
+ type: PropType<ThemeValue>;
17
+ default: string;
18
+ };
19
+ onChange: {
20
+ type: PropType<(theme: ThemeValue) => void>;
21
+ };
22
+ onChangeBase: {
23
+ type: PropType<(theme: BaseTheme) => void>;
24
+ };
25
+ }>, () => void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "changeBase")[], "change" | "changeBase", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
26
+ theme: {
27
+ type: PropType<ThemeValue>;
28
+ };
29
+ defaultTheme: {
30
+ type: PropType<ThemeValue>;
31
+ default: string;
32
+ };
33
+ onChange: {
34
+ type: PropType<(theme: ThemeValue) => void>;
35
+ };
36
+ onChangeBase: {
37
+ type: PropType<(theme: BaseTheme) => void>;
38
+ };
39
+ }>> & Readonly<{
40
+ onChange?: ((...args: any[]) => any) | undefined;
41
+ onChangeBase?: ((...args: any[]) => any) | undefined;
42
+ }>, {
43
+ defaultTheme: ThemeValue;
44
+ }, SlotsType<{
45
+ default(): void;
46
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
47
+ export default ThemeProvider;
@@ -0,0 +1,2 @@
1
+ import type { ThemeValue } from './index';
2
+ export declare function toggleAnimateTheme(event: MouseEvent | null, dark: boolean, value: ThemeValue, toggle: (theme: ThemeValue) => void): void;
@@ -5,7 +5,7 @@ export type ProLayoutTheme = BaseMenuTheme | 'systemDark';
5
5
  export interface ProLayoutConfig {
6
6
  primaryColor: string;
7
7
  title: string;
8
- theme: BaseMenuTheme;
8
+ menuTheme: BaseMenuTheme;
9
9
  layout: ProLayoutType;
10
10
  splitMenus: boolean;
11
11
  fixedHeader: boolean;
package/dist/index.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import type { MenuMode } from './_utils';
2
2
  import type { PageContainerProps } from './components/PageContainer';
3
+ import type { BaseTheme, ThemeValue } from './components/ThemeContext';
3
4
  import { LazyIcon } from './components/BaseMenu';
4
5
  import PageContainer from './components/PageContainer';
5
6
  import SiderMenuWrapper from './components/SiderMenu';
7
+ import ThemeContext, { createThemeContext, useThemeContext } from './components/ThemeContext';
8
+ import { toggleAnimateTheme } from './components/ThemeContext/utils';
6
9
  import { useProLayoutMenuContext } from './hooks/menu/context';
7
- import useDarkTheme, { hasDarkValue, toggleLayoutTheme } from './hooks/theme';
8
10
  import GProLayout from './ProLayout';
9
- import { darkThemeProps } from './props/darkTheme';
10
11
  export * from './Context';
11
12
  export { default as GBaseMenu } from './components/BaseMenu';
12
13
  export { default as GProAppPage } from './components/AppPage';
@@ -20,9 +21,9 @@ export * from './config';
20
21
  export * from './config/animate';
21
22
  export * from './types/typings';
22
23
  export * from './types/RouteTypings';
23
- export { darkThemeProps, GProLayout, hasDarkValue, LazyIcon, PageContainer, SiderMenuWrapper, toggleLayoutTheme, useDarkTheme, useProLayoutMenuContext };
24
+ export { createThemeContext, GProLayout, LazyIcon, PageContainer, SiderMenuWrapper, ThemeContext, toggleAnimateTheme, useProLayoutMenuContext, useThemeContext };
24
25
  export type { ProSettingsProps } from './props/defaultSettings';
25
26
  export type { GlobalFooterProps } from './components/GlobalFooter';
26
27
  export type { TabsRouteProps } from './components/TabsRoute';
27
28
  export type { OpenEventHandler, SelectInfo } from './components/SiderMenu/typings';
28
- export type { MenuMode, PageContainerProps };
29
+ export type { BaseTheme, MenuMode, PageContainerProps, ThemeValue };