@adminui-dev/layout 1.0.5 → 1.0.6
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/components/LayoutAside.d.ts +5 -0
- package/dist/components/LayoutBackground.d.ts +12 -1
- package/dist/components/LayoutContent.d.ts +5 -0
- package/dist/components/LayoutContext.d.ts +3 -3
- package/dist/components/LayoutHeader.d.ts +5 -0
- package/dist/components/index.d.ts +2 -2
- package/dist/components/layout.d.ts +2 -0
- package/dist/components/typings.d.ts +12 -7
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +43 -13
- package/dist/index.esm.js +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { LAYOUT_ASIDE_KEY } from "./LayoutContext";
|
|
2
|
+
/**
|
|
3
|
+
* Aside for layout
|
|
4
|
+
* @param props
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
2
7
|
declare function LayoutAside(props: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
3
8
|
declare namespace LayoutAside {
|
|
4
9
|
var displayName: string;
|
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { LAYOUT_BACKGROUND_KEY } from "./LayoutContext";
|
|
2
|
+
/**
|
|
3
|
+
* Background for layout
|
|
4
|
+
* @param props
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
declare function LayoutBackground(props: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare namespace LayoutBackground {
|
|
9
|
+
var displayName: string;
|
|
10
|
+
var role: typeof LAYOUT_BACKGROUND_KEY;
|
|
11
|
+
}
|
|
12
|
+
export default LayoutBackground;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { LAYOUT_CONTENT_KEY } from './LayoutContext';
|
|
2
|
+
/**
|
|
3
|
+
* Content for layout
|
|
4
|
+
* @param props
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
2
7
|
declare function LayoutContent(props: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
3
8
|
declare namespace LayoutContent {
|
|
4
9
|
var displayName: string;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { LayoutConfig,
|
|
1
|
+
import type { LayoutConfig, ConfigActionDispatcher, ConfigStateDispatcher } from "./typings";
|
|
2
2
|
export declare function defineConfig(config: LayoutConfig): LayoutConfig;
|
|
3
3
|
export declare const LAYOUT_ASIDE_KEY: unique symbol;
|
|
4
4
|
export declare const LAYOUT_CONTENT_KEY: unique symbol;
|
|
5
5
|
export declare const LAYOUT_HEADER_KEY: unique symbol;
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const LAYOUT_BACKGROUND_KEY: unique symbol;
|
|
7
7
|
export declare const defaultConfig: LayoutConfig;
|
|
8
8
|
export declare const createConfigActionContext: () => import("react").Context<ConfigActionDispatcher>;
|
|
9
9
|
export declare const createConfigStateContext: () => import("react").Context<ConfigStateDispatcher>;
|
|
10
10
|
export declare const useConfigState: () => ConfigStateDispatcher;
|
|
11
11
|
export declare const useConfigAction: () => ConfigActionDispatcher;
|
|
12
|
-
export declare const useTheme: () => import("./typings").Theme;
|
|
12
|
+
export declare const useTheme: () => import("./typings").Theme | undefined;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { LAYOUT_HEADER_KEY } from "./LayoutContext";
|
|
2
|
+
/**
|
|
3
|
+
* Header for layout
|
|
4
|
+
* @param props
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
2
7
|
declare function LayoutHeader(props: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
3
8
|
declare namespace LayoutHeader {
|
|
4
9
|
var displayName: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseLayout } from "./Layout";
|
|
2
2
|
import FullScreenButton from "./FullScreenButton";
|
|
3
3
|
import LayoutBackground from "./LayoutBackground";
|
|
4
|
-
import { createConfigActionContext, createConfigStateContext, useConfigState, useConfigAction, useTheme, defaultConfig, defineConfig
|
|
4
|
+
import { createConfigActionContext, createConfigStateContext, useConfigState, useConfigAction, useTheme, defaultConfig, defineConfig } from "./LayoutContext";
|
|
5
5
|
import { getAvatarInitials, hexToRgb, hexToRgbaString, getLayoutTheme } from "./common";
|
|
6
|
-
export { BaseLayout, LayoutBackground, FullScreenButton, createConfigActionContext, createConfigStateContext, useConfigState, useConfigAction, useTheme, getAvatarInitials, hexToRgb, hexToRgbaString, defaultConfig,
|
|
6
|
+
export { BaseLayout, LayoutBackground, FullScreenButton, createConfigActionContext, createConfigStateContext, useConfigState, useConfigAction, useTheme, getAvatarInitials, hexToRgb, hexToRgbaString, defaultConfig, getLayoutTheme, defineConfig };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import LayoutBackground from './LayoutBackground';
|
|
1
2
|
import type { BaseLayoutProps } from './typings';
|
|
2
3
|
/**
|
|
3
4
|
* Base layout
|
|
@@ -9,5 +10,6 @@ declare namespace BaseLayout {
|
|
|
9
10
|
var Aside: typeof import("./LayoutAside").default;
|
|
10
11
|
var Content: typeof import("./LayoutContent").default;
|
|
11
12
|
var Header: typeof import("./LayoutHeader").default;
|
|
13
|
+
var Background: typeof LayoutBackground;
|
|
12
14
|
}
|
|
13
15
|
export { BaseLayout };
|
|
@@ -9,13 +9,12 @@ type AvatarPosition = "rightTop" | "leftBottom" | "none";
|
|
|
9
9
|
type ConfigStateDispatcher = {
|
|
10
10
|
layoutConfig: LayoutConfig;
|
|
11
11
|
locale: string;
|
|
12
|
-
|
|
13
|
-
themeSkin: ThemeSkin;
|
|
12
|
+
themeSkin?: ThemeSkin;
|
|
14
13
|
themeSkinMap: Record<SkinType, ThemeSkin[]>;
|
|
15
14
|
languages: Language[];
|
|
15
|
+
menuDataMap?: Record<string, MenuData[]>;
|
|
16
16
|
};
|
|
17
17
|
type ConfigActionDispatcher = {
|
|
18
|
-
setTheme: (theme: Theme) => void;
|
|
19
18
|
setLocale: (locale: string) => void;
|
|
20
19
|
setLayoutConfig: (config: LayoutConfig) => void;
|
|
21
20
|
};
|
|
@@ -48,6 +47,9 @@ interface LayoutConfig {
|
|
|
48
47
|
asideTransparent?: boolean;
|
|
49
48
|
headerTransparent?: boolean;
|
|
50
49
|
containerTransparent?: boolean;
|
|
50
|
+
asideBlur?: boolean;
|
|
51
|
+
headerBlur?: boolean;
|
|
52
|
+
containerBlur?: boolean;
|
|
51
53
|
collapsedPosition?: Position;
|
|
52
54
|
avatarPosition?: AvatarPosition;
|
|
53
55
|
userInfo?: UserInfo;
|
|
@@ -55,13 +57,16 @@ interface LayoutConfig {
|
|
|
55
57
|
}
|
|
56
58
|
interface ThemeSkin {
|
|
57
59
|
name: string;
|
|
58
|
-
icon
|
|
60
|
+
icon?: string;
|
|
59
61
|
label?: string;
|
|
60
62
|
theme: LayoutTheme[];
|
|
61
|
-
|
|
63
|
+
skinType: SkinType;
|
|
64
|
+
backgroundContent?: React.ReactNode;
|
|
62
65
|
asideWidth?: number;
|
|
63
66
|
primaryColor?: string;
|
|
64
|
-
|
|
67
|
+
asideBlur?: boolean;
|
|
68
|
+
headerBlur?: boolean;
|
|
69
|
+
containerBlur?: boolean;
|
|
65
70
|
layoutBorderColor?: string;
|
|
66
71
|
headerStyle?: React.CSSProperties;
|
|
67
72
|
asideStyle?: React.CSSProperties;
|
|
@@ -108,7 +113,7 @@ interface BaseLayoutProps extends LayoutProps {
|
|
|
108
113
|
}
|
|
109
114
|
interface RootLayoutProps<T> extends LayoutProps {
|
|
110
115
|
layoutConfig?: LayoutConfig;
|
|
111
|
-
menuData?: MenuData
|
|
116
|
+
menuData?: MenuData;
|
|
112
117
|
theme?: Theme;
|
|
113
118
|
locale?: string;
|
|
114
119
|
localeMessages?: Record<string, T>;
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),n=require("react");function
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),n=require("react");function r(e,n){void 0===n&&(n={});var r=n.insertAt;if(e&&"undefined"!=typeof document){var t=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===r&&t.firstChild?t.insertBefore(o,t.firstChild):t.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var t="Layout-module_rootBackground__j3UVG";r("@layer base {\r\n html, body {\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n width: 100%; \r\n height: 100%;\r\n }\r\n #Layout-module_root__3x-pW { \r\n text-align: initial;\r\n width: 100%;\r\n height:100%\r\n } \r\n}\r\n*, *:before, *:after {\r\n box-sizing: border-box;\r\n}\r\n.Layout-module_rootBox__3JHjy {\r\n text-rendering: optimizeLegibility;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n width: 100%;\r\n min-height: 100%;\r\n}\r\n.Layout-module_rootBackground__j3UVG {\r\n box-sizing: border-box; \r\n pointer-events: none;\r\n inset-block-start:0;\r\n inset-inline-start:0; \r\n width: 100%; \r\n min-width: 100vw;\r\n height:100%;\r\n min-height: 100vh;\r\n overflow: hidden;\r\n position: fixed;\r\n z-index: 0;\r\n}\r\n.Layout-module_rootBackground__j3UVG>div{\r\n width:100%;\r\n height: 100%;\r\n overflow: hidden;\r\n}\r\n.Layout-module_rootLayout__jVEEF {\r\n position: relative;\r\n z-index: 1;\r\n box-sizing: border-box; \r\n width: 100%;\r\n min-height: 100%;\r\n display: flex; \r\n flex-flow: row;\r\n background-color: transparent;\r\n container-type: inline-size;\r\n}\r\n\r\n.Layout-module_mainLayout__6W9W9 {\r\n box-sizing: border-box; \r\n display: flex;\r\n flex-flow: column; \r\n width: 100%;\r\n}\r\n");const o=Symbol("LayoutAside"),i=Symbol("LayoutContent"),a=Symbol("LayoutHeader"),l=Symbol("LayoutBackground"),s=n.createContext({setLayoutConfig:()=>{},setLocale:()=>{}}),d=n.createContext({locale:"en-US",languages:[],layoutConfig:{},themeSkinMap:{tidy:[],rich:[]}}),u=()=>n.useContext(d);function c(n){return e.jsx("div",{className:t,children:e.jsx(e.Fragment,{children:n.children})})}function h(n){return e.jsx(e.Fragment,{children:n.children})}function m(n){return e.jsx(e.Fragment,{children:n.children})}function g(n){return e.jsx(e.Fragment,{children:n.children})}c.displayName="LayoutBackground",c.role=l,h.displayName="LayoutContent",h.role=i,m.displayName="LayoutAside",m.role=o,g.displayName="LayoutHeader",g.role=a;var x="layout-module_rootBox__Y8bEx",y="layout-module_rootLayout__TePvr",f="layout-module_mainLayout__a8Tb9";function b(r){let t=null,s=null,d=null,u=null;return n.Children.forEach(r.children,e=>{const n=e.type.role;n===a?t=e:n===i?s=e:n===o?d=e:n===l&&(u=e)}),e.jsx(e.Fragment,{children:e.jsxs("div",{ref:r.ref,className:x,style:{...r.style},children:[u,e.jsxs("div",{className:y,children:[d,e.jsxs("div",{className:f,children:[t,s]})]})]})})}r("@layer base {\r\n html, body {\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n width: 100%; \r\n height: 100%;\r\n }\r\n #layout-module_root__0efzq { \r\n text-align: initial;\r\n width: 100%;\r\n height:100%\r\n } \r\n}\r\n*, *:before, *:after {\r\n box-sizing: border-box;\r\n}\r\n.layout-module_rootBox__Y8bEx {\r\n text-rendering: optimizeLegibility;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n width: 100%;\r\n min-height: 100%;\r\n}\r\n.layout-module_rootBackground__vEs6e {\r\n box-sizing: border-box; \r\n pointer-events: none;\r\n inset-block-start:0;\r\n inset-inline-start:0; \r\n width: 100%; \r\n min-width: 100vw;\r\n height:100%;\r\n min-height: 100vh;\r\n overflow: hidden;\r\n position: fixed;\r\n z-index: 0;\r\n}\r\n.layout-module_rootBackground__vEs6e>div{\r\n width:100%;\r\n height: 100%;\r\n overflow: hidden;\r\n}\r\n.layout-module_rootLayout__TePvr {\r\n position: relative;\r\n z-index: 1;\r\n box-sizing: border-box; \r\n width: 100%;\r\n min-height: 100%;\r\n display: flex; \r\n flex-flow: row;\r\n background-color: transparent;\r\n container-type: inline-size;\r\n}\r\n\r\n.layout-module_mainLayout__a8Tb9 {\r\n box-sizing: border-box; \r\n display: flex;\r\n flex-flow: column; \r\n width: 100%;\r\n}\r\n"),b.Aside=m,b.Content=h,b.Header=g,b.Background=c;const p=e=>({r:parseInt(e.slice(1,3),16),g:parseInt(e.slice(3,5),16),b:parseInt(e.slice(5,7),16),a:9===e.length?(parseInt(e.slice(7,9),16)/255).toFixed(2):1});exports.BaseLayout=b,exports.FullScreenButton=function(r){const t=!!document.fullscreenElement,[o,i]=n.useState(t),a=()=>{i(!!document.fullscreenElement)},l=e=>{"F11"===e.code&&(e.preventDefault(),s())};n.useEffect(()=>(document.addEventListener("fullscreenchange",a),document.addEventListener("keydown",l,!0),()=>{document.removeEventListener("fullscreenchange",a),document.removeEventListener("keydown",l)}),[]);const s=()=>{o?document.exitFullscreen():document.documentElement.requestFullscreen()};if(!r.buttons||r.buttons.length<2)return e.jsx(e.Fragment,{});const[d,u]=r.buttons,c=o?d:u;return n.cloneElement(c,{onClick:e=>{console.log(e),s()}})},exports.LayoutBackground=c,exports.createConfigActionContext=()=>s,exports.createConfigStateContext=()=>d,exports.defaultConfig={headerHeight:50,asideWidth:260,layoutType:"leftMenu",collapsedPosition:"bottom",avatarPosition:"rightTop",theme:"system",primaryColor:"#417ffb"},exports.defineConfig=function(e){return e},exports.getAvatarInitials=function(e){if(!e)return"";const n=Array.from(e);if(0===n.length)return"";const r=n[0];return function(e){if(0===e.length)return!1;const n=e.codePointAt(0);return n>=19968&&n<=40959||n>=13312&&n<=19903||n>=12352&&n<=12543||n>=44032&&n<=55215||n>=65280&&n<=65519||n>=126976&&n<=129791||n>=127744&&n<=128511||n>=128640&&n<=128767||n>=129280&&n<=129535||n>=9728&&n<=9983||n>=9984&&n<=10175}(r)?r:n.slice(0,2).join("")},exports.getLayoutTheme=e=>{if("system"==e){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return e},exports.hexToRgb=e=>{const{r:n,g:r,b:t}=p(e);return{r:n,g:r,b:t}},exports.hexToRgbaString=(e,n)=>{const{r:r,g:t,b:o,a:i}=p(e);return`rgba(${r}, ${t}, ${o}, ${n??i})`},exports.useConfigAction=()=>n.useContext(s),exports.useConfigState=u,exports.useTheme=()=>u().layoutConfig.theme;
|
package/dist/index.d.ts
CHANGED
|
@@ -13,13 +13,12 @@ type AvatarPosition = "rightTop" | "leftBottom" | "none";
|
|
|
13
13
|
type ConfigStateDispatcher = {
|
|
14
14
|
layoutConfig: LayoutConfig;
|
|
15
15
|
locale: string;
|
|
16
|
-
|
|
17
|
-
themeSkin: ThemeSkin;
|
|
16
|
+
themeSkin?: ThemeSkin;
|
|
18
17
|
themeSkinMap: Record<SkinType, ThemeSkin[]>;
|
|
19
18
|
languages: Language[];
|
|
19
|
+
menuDataMap?: Record<string, MenuData[]>;
|
|
20
20
|
};
|
|
21
21
|
type ConfigActionDispatcher = {
|
|
22
|
-
setTheme: (theme: Theme) => void;
|
|
23
22
|
setLocale: (locale: string) => void;
|
|
24
23
|
setLayoutConfig: (config: LayoutConfig) => void;
|
|
25
24
|
};
|
|
@@ -52,6 +51,9 @@ interface LayoutConfig {
|
|
|
52
51
|
asideTransparent?: boolean;
|
|
53
52
|
headerTransparent?: boolean;
|
|
54
53
|
containerTransparent?: boolean;
|
|
54
|
+
asideBlur?: boolean;
|
|
55
|
+
headerBlur?: boolean;
|
|
56
|
+
containerBlur?: boolean;
|
|
55
57
|
collapsedPosition?: Position;
|
|
56
58
|
avatarPosition?: AvatarPosition;
|
|
57
59
|
userInfo?: UserInfo;
|
|
@@ -59,13 +61,16 @@ interface LayoutConfig {
|
|
|
59
61
|
}
|
|
60
62
|
interface ThemeSkin {
|
|
61
63
|
name: string;
|
|
62
|
-
icon
|
|
64
|
+
icon?: string;
|
|
63
65
|
label?: string;
|
|
64
66
|
theme: LayoutTheme[];
|
|
65
|
-
|
|
67
|
+
skinType: SkinType;
|
|
68
|
+
backgroundContent?: React.ReactNode;
|
|
66
69
|
asideWidth?: number;
|
|
67
70
|
primaryColor?: string;
|
|
68
|
-
|
|
71
|
+
asideBlur?: boolean;
|
|
72
|
+
headerBlur?: boolean;
|
|
73
|
+
containerBlur?: boolean;
|
|
69
74
|
layoutBorderColor?: string;
|
|
70
75
|
headerStyle?: React.CSSProperties;
|
|
71
76
|
asideStyle?: React.CSSProperties;
|
|
@@ -112,7 +117,7 @@ interface BaseLayoutProps extends LayoutProps {
|
|
|
112
117
|
}
|
|
113
118
|
interface RootLayoutProps<T> extends LayoutProps {
|
|
114
119
|
layoutConfig?: LayoutConfig;
|
|
115
|
-
menuData?: MenuData
|
|
120
|
+
menuData?: MenuData;
|
|
116
121
|
theme?: Theme;
|
|
117
122
|
locale?: string;
|
|
118
123
|
localeMessages?: Record<string, T>;
|
|
@@ -133,32 +138,58 @@ declare function defineConfig(config: LayoutConfig): LayoutConfig;
|
|
|
133
138
|
declare const LAYOUT_ASIDE_KEY: unique symbol;
|
|
134
139
|
declare const LAYOUT_CONTENT_KEY: unique symbol;
|
|
135
140
|
declare const LAYOUT_HEADER_KEY: unique symbol;
|
|
136
|
-
declare const
|
|
141
|
+
declare const LAYOUT_BACKGROUND_KEY: unique symbol;
|
|
137
142
|
declare const defaultConfig: LayoutConfig;
|
|
138
143
|
declare const createConfigActionContext: () => react.Context<ConfigActionDispatcher>;
|
|
139
144
|
declare const createConfigStateContext: () => react.Context<ConfigStateDispatcher>;
|
|
140
145
|
declare const useConfigState: () => ConfigStateDispatcher;
|
|
141
146
|
declare const useConfigAction: () => ConfigActionDispatcher;
|
|
142
|
-
declare const useTheme: () => Theme;
|
|
147
|
+
declare const useTheme: () => Theme | undefined;
|
|
143
148
|
|
|
149
|
+
/**
|
|
150
|
+
* Header for layout
|
|
151
|
+
* @param props
|
|
152
|
+
* @returns
|
|
153
|
+
*/
|
|
144
154
|
declare function LayoutHeader(props: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
145
155
|
declare namespace LayoutHeader {
|
|
146
156
|
var displayName: string;
|
|
147
157
|
var role: typeof LAYOUT_HEADER_KEY;
|
|
148
158
|
}
|
|
149
159
|
|
|
160
|
+
/**
|
|
161
|
+
* Content for layout
|
|
162
|
+
* @param props
|
|
163
|
+
* @returns
|
|
164
|
+
*/
|
|
150
165
|
declare function LayoutContent(props: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
151
166
|
declare namespace LayoutContent {
|
|
152
167
|
var displayName: string;
|
|
153
168
|
var role: typeof LAYOUT_CONTENT_KEY;
|
|
154
169
|
}
|
|
155
170
|
|
|
171
|
+
/**
|
|
172
|
+
* Aside for layout
|
|
173
|
+
* @param props
|
|
174
|
+
* @returns
|
|
175
|
+
*/
|
|
156
176
|
declare function LayoutAside(props: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
157
177
|
declare namespace LayoutAside {
|
|
158
178
|
var displayName: string;
|
|
159
179
|
var role: typeof LAYOUT_ASIDE_KEY;
|
|
160
180
|
}
|
|
161
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Background for layout
|
|
184
|
+
* @param props
|
|
185
|
+
* @returns
|
|
186
|
+
*/
|
|
187
|
+
declare function LayoutBackground(props: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
188
|
+
declare namespace LayoutBackground {
|
|
189
|
+
var displayName: string;
|
|
190
|
+
var role: typeof LAYOUT_BACKGROUND_KEY;
|
|
191
|
+
}
|
|
192
|
+
|
|
162
193
|
/**
|
|
163
194
|
* Base layout
|
|
164
195
|
* @param props layout properites
|
|
@@ -169,6 +200,7 @@ declare namespace BaseLayout {
|
|
|
169
200
|
var Aside: typeof LayoutAside;
|
|
170
201
|
var Content: typeof LayoutContent;
|
|
171
202
|
var Header: typeof LayoutHeader;
|
|
203
|
+
var Background: typeof LayoutBackground;
|
|
172
204
|
}
|
|
173
205
|
|
|
174
206
|
/**
|
|
@@ -176,12 +208,10 @@ declare namespace BaseLayout {
|
|
|
176
208
|
* @param props max and min button icon
|
|
177
209
|
* @returns
|
|
178
210
|
*/
|
|
179
|
-
declare function export_default
|
|
211
|
+
declare function export_default(props: {
|
|
180
212
|
buttons: react__default.ReactElement[];
|
|
181
213
|
}): react_jsx_runtime.JSX.Element;
|
|
182
214
|
|
|
183
|
-
declare function export_default(): react_jsx_runtime.JSX.Element;
|
|
184
|
-
|
|
185
215
|
declare function getAvatarInitials(name: string): string;
|
|
186
216
|
declare const hexToRgb: (color: string) => {
|
|
187
217
|
r: number;
|
|
@@ -191,5 +221,5 @@ declare const hexToRgb: (color: string) => {
|
|
|
191
221
|
declare const hexToRgbaString: (color: string, alpha?: number) => string;
|
|
192
222
|
declare const getLayoutTheme: (theme: Theme) => LayoutTheme;
|
|
193
223
|
|
|
194
|
-
export { BaseLayout, export_default
|
|
224
|
+
export { BaseLayout, export_default as FullScreenButton, LayoutBackground, createConfigActionContext, createConfigStateContext, defaultConfig, defineConfig, getAvatarInitials, getLayoutTheme, hexToRgb, hexToRgbaString, useConfigAction, useConfigState, useTheme };
|
|
195
225
|
export type { AvatarPosition, BaseLayoutProps, BrandInfo, ConfigActionDispatcher, ConfigStateDispatcher, ContainerMode, ContainerProps, ContainerStretch, Language, LayoutConfig, LayoutProps, LayoutTheme, LayoutType, LocaleMessageData, MenuData, OutletContainer, Position, RootLayoutProps, SkinType, Theme, ThemeSkin, UserInfo };
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as n,Fragment as e,jsxs as r}from"react/jsx-runtime";import t,{createContext as o,useContext as i,useState as l,useEffect as
|
|
1
|
+
import{jsx as n,Fragment as e,jsxs as r}from"react/jsx-runtime";import t,{createContext as o,useContext as i,useState as l,useEffect as d}from"react";function a(n,e){void 0===e&&(e={});var r=e.insertAt;if(n&&"undefined"!=typeof document){var t=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===r&&t.firstChild?t.insertBefore(o,t.firstChild):t.appendChild(o),o.styleSheet?o.styleSheet.cssText=n:o.appendChild(document.createTextNode(n))}}var s="Layout-module_rootBackground__j3UVG";function u(n){return n}a("@layer base {\r\n html, body {\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n width: 100%; \r\n height: 100%;\r\n }\r\n #Layout-module_root__3x-pW { \r\n text-align: initial;\r\n width: 100%;\r\n height:100%\r\n } \r\n}\r\n*, *:before, *:after {\r\n box-sizing: border-box;\r\n}\r\n.Layout-module_rootBox__3JHjy {\r\n text-rendering: optimizeLegibility;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n width: 100%;\r\n min-height: 100%;\r\n}\r\n.Layout-module_rootBackground__j3UVG {\r\n box-sizing: border-box; \r\n pointer-events: none;\r\n inset-block-start:0;\r\n inset-inline-start:0; \r\n width: 100%; \r\n min-width: 100vw;\r\n height:100%;\r\n min-height: 100vh;\r\n overflow: hidden;\r\n position: fixed;\r\n z-index: 0;\r\n}\r\n.Layout-module_rootBackground__j3UVG>div{\r\n width:100%;\r\n height: 100%;\r\n overflow: hidden;\r\n}\r\n.Layout-module_rootLayout__jVEEF {\r\n position: relative;\r\n z-index: 1;\r\n box-sizing: border-box; \r\n width: 100%;\r\n min-height: 100%;\r\n display: flex; \r\n flex-flow: row;\r\n background-color: transparent;\r\n container-type: inline-size;\r\n}\r\n\r\n.Layout-module_mainLayout__6W9W9 {\r\n box-sizing: border-box; \r\n display: flex;\r\n flex-flow: column; \r\n width: 100%;\r\n}\r\n");const c=Symbol("LayoutAside"),h=Symbol("LayoutContent"),m=Symbol("LayoutHeader"),y=Symbol("LayoutBackground"),g={headerHeight:50,asideWidth:260,layoutType:"leftMenu",collapsedPosition:"bottom",avatarPosition:"rightTop",theme:"system",primaryColor:"#417ffb"},f=o({setLayoutConfig:()=>{},setLocale:()=>{}}),b=o({locale:"en-US",languages:[],layoutConfig:{},themeSkinMap:{tidy:[],rich:[]}}),x=()=>f,_=()=>b,p=()=>i(b),v=()=>i(f),w=()=>p().layoutConfig.theme;function L(r){return n("div",{className:s,children:n(e,{children:r.children})})}function k(r){return n(e,{children:r.children})}function z(r){return n(e,{children:r.children})}function E(r){return n(e,{children:r.children})}L.displayName="LayoutBackground",L.role=y,k.displayName="LayoutContent",k.role=h,z.displayName="LayoutAside",z.role=c,E.displayName="LayoutHeader",E.role=m;var B="layout-module_rootBox__Y8bEx",C="layout-module_rootLayout__TePvr",N="layout-module_mainLayout__a8Tb9";function T(o){let i=null,l=null,d=null,a=null;return t.Children.forEach(o.children,n=>{const e=n.type.role;e===m?i=n:e===h?l=n:e===c?d=n:e===y&&(a=n)}),n(e,{children:r("div",{ref:o.ref,className:B,style:{...o.style},children:[a,r("div",{className:C,children:[d,r("div",{className:N,children:[i,l]})]})]})})}function S(r){const o=!!document.fullscreenElement,[i,a]=l(o),s=()=>{a(!!document.fullscreenElement)},u=n=>{"F11"===n.code&&(n.preventDefault(),c())};d(()=>(document.addEventListener("fullscreenchange",s),document.addEventListener("keydown",u,!0),()=>{document.removeEventListener("fullscreenchange",s),document.removeEventListener("keydown",u)}),[]);const c=()=>{i?document.exitFullscreen():document.documentElement.requestFullscreen()};if(!r.buttons||r.buttons.length<2)return n(e,{});const[h,m]=r.buttons,y=i?h:m;return t.cloneElement(y,{onClick:n=>{console.log(n),c()}})}function j(n){if(!n)return"";const e=Array.from(n);if(0===e.length)return"";const r=e[0];return function(n){if(0===n.length)return!1;const e=n.codePointAt(0);return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=12352&&e<=12543||e>=44032&&e<=55215||e>=65280&&e<=65519||e>=126976&&e<=129791||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=129280&&e<=129535||e>=9728&&e<=9983||e>=9984&&e<=10175}(r)?r:e.slice(0,2).join("")}a("@layer base {\r\n html, body {\r\n padding: 0;\r\n margin: 0;\r\n border: 0;\r\n width: 100%; \r\n height: 100%;\r\n }\r\n #layout-module_root__0efzq { \r\n text-align: initial;\r\n width: 100%;\r\n height:100%\r\n } \r\n}\r\n*, *:before, *:after {\r\n box-sizing: border-box;\r\n}\r\n.layout-module_rootBox__Y8bEx {\r\n text-rendering: optimizeLegibility;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n width: 100%;\r\n min-height: 100%;\r\n}\r\n.layout-module_rootBackground__vEs6e {\r\n box-sizing: border-box; \r\n pointer-events: none;\r\n inset-block-start:0;\r\n inset-inline-start:0; \r\n width: 100%; \r\n min-width: 100vw;\r\n height:100%;\r\n min-height: 100vh;\r\n overflow: hidden;\r\n position: fixed;\r\n z-index: 0;\r\n}\r\n.layout-module_rootBackground__vEs6e>div{\r\n width:100%;\r\n height: 100%;\r\n overflow: hidden;\r\n}\r\n.layout-module_rootLayout__TePvr {\r\n position: relative;\r\n z-index: 1;\r\n box-sizing: border-box; \r\n width: 100%;\r\n min-height: 100%;\r\n display: flex; \r\n flex-flow: row;\r\n background-color: transparent;\r\n container-type: inline-size;\r\n}\r\n\r\n.layout-module_mainLayout__a8Tb9 {\r\n box-sizing: border-box; \r\n display: flex;\r\n flex-flow: column; \r\n width: 100%;\r\n}\r\n"),T.Aside=z,T.Content=k,T.Header=E,T.Background=L;const A=n=>({r:parseInt(n.slice(1,3),16),g:parseInt(n.slice(3,5),16),b:parseInt(n.slice(5,7),16),a:9===n.length?(parseInt(n.slice(7,9),16)/255).toFixed(2):1}),F=n=>{const{r:e,g:r,b:t}=A(n);return{r:e,g:r,b:t}},H=(n,e)=>{const{r:r,g:t,b:o,a:i}=A(n);return`rgba(${r}, ${t}, ${o}, ${e??i})`},P=n=>{if("system"==n){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}return n};export{T as BaseLayout,S as FullScreenButton,L as LayoutBackground,x as createConfigActionContext,_ as createConfigStateContext,g as defaultConfig,u as defineConfig,j as getAvatarInitials,P as getLayoutTheme,F as hexToRgb,H as hexToRgbaString,v as useConfigAction,p as useConfigState,w as useTheme};
|