@arcblock/ux 2.13.54 → 2.13.55
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/lib/Theme/theme-provider.js +2 -2
- package/lib/Theme/theme.d.ts +0 -6
- package/lib/Theme/theme.js +1 -39
- package/package.json +6 -6
- package/src/Theme/theme-provider.tsx +2 -11
- package/src/Theme/theme.ts +1 -41
@@ -6,9 +6,9 @@ import { ThemeProvider as MuiThemeProvider, useTheme } from '@mui/material/style
|
|
6
6
|
import StyledEngineProvider from '@mui/material/StyledEngineProvider';
|
7
7
|
import CssBaseline from '@mui/material/CssBaseline';
|
8
8
|
import set from 'lodash/set';
|
9
|
-
import { BLOCKLET_THEME_PREFER_KEY } from '@blocklet/theme';
|
9
|
+
import { BLOCKLET_THEME_PREFER_KEY, getDefaultThemePrefer, isValidThemeMode } from '@blocklet/theme';
|
10
10
|
import useLocationState from '../hooks/use-location-state';
|
11
|
-
import { createTheme,
|
11
|
+
import { createTheme, isTheme, isUxTheme, lazyCreateDefaultTheme } from './theme';
|
12
12
|
const defaultTheme = createTheme();
|
13
13
|
|
14
14
|
/** 颜色模式上下文类型 */
|
package/lib/Theme/theme.d.ts
CHANGED
@@ -15,12 +15,6 @@ export declare function collectFontFamilies(obj?: {
|
|
15
15
|
fontFamily?: string;
|
16
16
|
}, fontSet?: Set<string>): Set<string>;
|
17
17
|
export declare function loadFonts(fonts: string[]): Promise<boolean>;
|
18
|
-
export declare function isValidThemeMode(mode: any): mode is PaletteMode;
|
19
|
-
export declare function getDefaultThemePrefer(meta?: {
|
20
|
-
theme: {
|
21
|
-
prefer: 'light' | 'dark' | 'system';
|
22
|
-
};
|
23
|
-
}): PaletteMode;
|
24
18
|
export declare function createDefaultThemeOptions(mode?: PaletteMode): ThemeOptions;
|
25
19
|
export interface UxThemeOptions extends ThemeOptions {
|
26
20
|
disableBlockletTheme?: boolean;
|
package/lib/Theme/theme.js
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
import { createTheme as _createTheme, responsiveFontSizes } from '@mui/material/styles';
|
5
5
|
import { deepmerge } from '@mui/utils';
|
6
6
|
import webfontloader from 'webfontloader';
|
7
|
-
import { BLOCKLET_THEME_LIGHT, BLOCKLET_THEME_DARK, DEFAULT_FONTS,
|
7
|
+
import { BLOCKLET_THEME_LIGHT, BLOCKLET_THEME_DARK, DEFAULT_FONTS, getDefaultThemePrefer } from '@blocklet/theme';
|
8
8
|
import { cleanedObj, deepmergeAll } from '../Util';
|
9
9
|
|
10
10
|
// 默认只加载最基本的 roboto latin 字体
|
@@ -71,44 +71,6 @@ export function loadFonts(fonts) {
|
|
71
71
|
});
|
72
72
|
}
|
73
73
|
|
74
|
-
// 获取默认主题偏好
|
75
|
-
export function isValidThemeMode(mode) {
|
76
|
-
return mode === 'light' || mode === 'dark';
|
77
|
-
}
|
78
|
-
export function getDefaultThemePrefer(meta) {
|
79
|
-
// 跟随 url theme 参数
|
80
|
-
const urlParams = new URLSearchParams(window.location.search);
|
81
|
-
const urlPrefer = urlParams.get('theme');
|
82
|
-
if (isValidThemeMode(urlPrefer)) {
|
83
|
-
return urlPrefer;
|
84
|
-
}
|
85
|
-
|
86
|
-
// 跟随 session theme
|
87
|
-
const sessionPrefer = sessionStorage.getItem(BLOCKLET_THEME_PREFER_KEY);
|
88
|
-
if (isValidThemeMode(sessionPrefer)) {
|
89
|
-
return sessionPrefer;
|
90
|
-
}
|
91
|
-
|
92
|
-
// 跟随 blocklet theme mode
|
93
|
-
const prefer = Object.assign({}, window.blocklet, meta).theme?.prefer;
|
94
|
-
if (prefer === 'light' || prefer === 'dark') {
|
95
|
-
return prefer;
|
96
|
-
}
|
97
|
-
if (prefer === 'system') {
|
98
|
-
// 跟随本地缓存
|
99
|
-
const localPrefer = localStorage.getItem(BLOCKLET_THEME_PREFER_KEY);
|
100
|
-
if (isValidThemeMode(localPrefer)) {
|
101
|
-
return localPrefer;
|
102
|
-
}
|
103
|
-
|
104
|
-
// 跟随系统
|
105
|
-
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
106
|
-
}
|
107
|
-
|
108
|
-
// fallback
|
109
|
-
return 'light';
|
110
|
-
}
|
111
|
-
|
112
74
|
// 创建默认主题配置
|
113
75
|
export function createDefaultThemeOptions(mode = 'light') {
|
114
76
|
if (mode === 'dark') {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@arcblock/ux",
|
3
|
-
"version": "2.13.
|
3
|
+
"version": "2.13.55",
|
4
4
|
"description": "Common used react components for arcblock products",
|
5
5
|
"keywords": [
|
6
6
|
"react",
|
@@ -71,14 +71,14 @@
|
|
71
71
|
"react": ">=18.2.0",
|
72
72
|
"react-router-dom": ">=6.22.3"
|
73
73
|
},
|
74
|
-
"gitHead": "
|
74
|
+
"gitHead": "fd8de005ce497660cbf1ea7378cf0d725b45fe87",
|
75
75
|
"dependencies": {
|
76
76
|
"@arcblock/did-motif": "^1.1.13",
|
77
|
-
"@arcblock/icons": "^2.13.
|
78
|
-
"@arcblock/nft-display": "^2.13.
|
79
|
-
"@arcblock/react-hooks": "^2.13.
|
77
|
+
"@arcblock/icons": "^2.13.55",
|
78
|
+
"@arcblock/nft-display": "^2.13.55",
|
79
|
+
"@arcblock/react-hooks": "^2.13.55",
|
80
80
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
81
|
-
"@blocklet/theme": "^2.13.
|
81
|
+
"@blocklet/theme": "^2.13.55",
|
82
82
|
"@fontsource/roboto": "~5.1.1",
|
83
83
|
"@fontsource/ubuntu-mono": "^5.0.18",
|
84
84
|
"@iconify-icons/logos": "^1.2.36",
|
@@ -5,19 +5,10 @@ import { ThemeProvider as MuiThemeProvider, Theme, ThemeOptions, useTheme } from
|
|
5
5
|
import StyledEngineProvider from '@mui/material/StyledEngineProvider';
|
6
6
|
import CssBaseline from '@mui/material/CssBaseline';
|
7
7
|
import set from 'lodash/set';
|
8
|
-
import { BLOCKLET_THEME_PREFER_KEY } from '@blocklet/theme';
|
8
|
+
import { BLOCKLET_THEME_PREFER_KEY, getDefaultThemePrefer, isValidThemeMode } from '@blocklet/theme';
|
9
9
|
|
10
10
|
import useLocationState from '../hooks/use-location-state';
|
11
|
-
|
12
|
-
import {
|
13
|
-
createTheme,
|
14
|
-
getDefaultThemePrefer,
|
15
|
-
isTheme,
|
16
|
-
isUxTheme,
|
17
|
-
isValidThemeMode,
|
18
|
-
lazyCreateDefaultTheme,
|
19
|
-
type UxThemeOptions,
|
20
|
-
} from './theme';
|
11
|
+
import { createTheme, isTheme, isUxTheme, lazyCreateDefaultTheme, type UxThemeOptions } from './theme';
|
21
12
|
|
22
13
|
const defaultTheme = createTheme();
|
23
14
|
|
package/src/Theme/theme.ts
CHANGED
@@ -4,7 +4,7 @@ import type { PaletteMode, Theme } from '@mui/material';
|
|
4
4
|
import { createTheme as _createTheme, responsiveFontSizes, type ThemeOptions } from '@mui/material/styles';
|
5
5
|
import { deepmerge } from '@mui/utils';
|
6
6
|
import webfontloader from 'webfontloader';
|
7
|
-
import { BLOCKLET_THEME_LIGHT, BLOCKLET_THEME_DARK, DEFAULT_FONTS,
|
7
|
+
import { BLOCKLET_THEME_LIGHT, BLOCKLET_THEME_DARK, DEFAULT_FONTS, getDefaultThemePrefer } from '@blocklet/theme';
|
8
8
|
import { cleanedObj, deepmergeAll } from '../Util';
|
9
9
|
|
10
10
|
// 默认只加载最基本的 roboto latin 字体
|
@@ -80,46 +80,6 @@ export function loadFonts(fonts: string[]) {
|
|
80
80
|
});
|
81
81
|
}
|
82
82
|
|
83
|
-
// 获取默认主题偏好
|
84
|
-
export function isValidThemeMode(mode: any): mode is PaletteMode {
|
85
|
-
return mode === 'light' || mode === 'dark';
|
86
|
-
}
|
87
|
-
|
88
|
-
export function getDefaultThemePrefer(meta?: { theme: { prefer: 'light' | 'dark' | 'system' } }): PaletteMode {
|
89
|
-
// 跟随 url theme 参数
|
90
|
-
const urlParams = new URLSearchParams(window.location.search);
|
91
|
-
const urlPrefer = urlParams.get('theme');
|
92
|
-
if (isValidThemeMode(urlPrefer)) {
|
93
|
-
return urlPrefer;
|
94
|
-
}
|
95
|
-
|
96
|
-
// 跟随 session theme
|
97
|
-
const sessionPrefer = sessionStorage.getItem(BLOCKLET_THEME_PREFER_KEY);
|
98
|
-
if (isValidThemeMode(sessionPrefer)) {
|
99
|
-
return sessionPrefer;
|
100
|
-
}
|
101
|
-
|
102
|
-
// 跟随 blocklet theme mode
|
103
|
-
const prefer = Object.assign({}, window.blocklet, meta).theme?.prefer;
|
104
|
-
if (prefer === 'light' || prefer === 'dark') {
|
105
|
-
return prefer;
|
106
|
-
}
|
107
|
-
|
108
|
-
if (prefer === 'system') {
|
109
|
-
// 跟随本地缓存
|
110
|
-
const localPrefer = localStorage.getItem(BLOCKLET_THEME_PREFER_KEY);
|
111
|
-
if (isValidThemeMode(localPrefer)) {
|
112
|
-
return localPrefer;
|
113
|
-
}
|
114
|
-
|
115
|
-
// 跟随系统
|
116
|
-
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
117
|
-
}
|
118
|
-
|
119
|
-
// fallback
|
120
|
-
return 'light';
|
121
|
-
}
|
122
|
-
|
123
83
|
// 创建默认主题配置
|
124
84
|
export function createDefaultThemeOptions(mode: PaletteMode = 'light') {
|
125
85
|
if (mode === 'dark') {
|