@blocklet/theme 2.13.55 → 2.13.56
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/cjs/index.js +54 -6
- package/dist/es/index.js +52 -6
- package/dist/types/index.d.ts +9 -0
- package/package.json +2 -2
package/dist/cjs/index.js
CHANGED
|
@@ -141,6 +141,8 @@ __export(src_exports, {
|
|
|
141
141
|
DEFAULT_FONTS: () => DEFAULT_FONTS,
|
|
142
142
|
DID_CONNECT_THEME_DARK: () => DID_CONNECT_THEME_DARK,
|
|
143
143
|
DID_CONNECT_THEME_LIGHT: () => DID_CONNECT_THEME_LIGHT,
|
|
144
|
+
buildThemeScript: () => buildThemeScript,
|
|
145
|
+
buildThemeStyles: () => buildThemeStyles,
|
|
144
146
|
getDefaultThemePrefer: () => getDefaultThemePrefer,
|
|
145
147
|
isValidThemeMode: () => isValidThemeMode,
|
|
146
148
|
merge: () => merge
|
|
@@ -290,6 +292,50 @@ function getDefaultThemePrefer(meta) {
|
|
|
290
292
|
}
|
|
291
293
|
return "light";
|
|
292
294
|
}
|
|
295
|
+
var buildThemeStyles = (theme) => {
|
|
296
|
+
const { light, dark } = theme;
|
|
297
|
+
return `
|
|
298
|
+
<style id="blocklet-theme-style">
|
|
299
|
+
:root {
|
|
300
|
+
--blocklet-background-default-color: ${light.palette?.background?.default ?? "#ffffff"};
|
|
301
|
+
--blocklet-text-primary-color: ${light.palette?.text?.primary ?? "#18181b"};
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
[data-theme='dark'] {
|
|
305
|
+
--blocklet-background-default-color: ${dark.palette?.background?.default ?? "#121212"};
|
|
306
|
+
--blocklet-text-primary-color: ${dark.palette?.text?.primary ?? "#ffffff"};
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
html, body {
|
|
310
|
+
background-color: var(--blocklet-background-default-color);
|
|
311
|
+
color: var(--blocklet-text-primary-color);
|
|
312
|
+
}
|
|
313
|
+
</style>
|
|
314
|
+
`;
|
|
315
|
+
};
|
|
316
|
+
var buildThemeScript = (theme) => {
|
|
317
|
+
return `
|
|
318
|
+
<script id="blocklet-theme-script">
|
|
319
|
+
(function() {
|
|
320
|
+
try {
|
|
321
|
+
const BLOCKLET_THEME_PREFER_KEY = '${BLOCKLET_THEME_PREFER_KEY}';
|
|
322
|
+
${isValidThemeMode.toString()}
|
|
323
|
+
${getDefaultThemePrefer.toString()}
|
|
324
|
+
|
|
325
|
+
const prefer = getDefaultThemePrefer(${JSON.stringify({ theme: { prefer: theme.prefer } })});
|
|
326
|
+
|
|
327
|
+
if(prefer === 'dark') {
|
|
328
|
+
document.documentElement.setAttribute('data-theme', 'dark');
|
|
329
|
+
} else {
|
|
330
|
+
document.documentElement.removeAttribute('data-theme');
|
|
331
|
+
}
|
|
332
|
+
} catch (e) {
|
|
333
|
+
console.error('Theme init error:', e);
|
|
334
|
+
}
|
|
335
|
+
})();
|
|
336
|
+
</script>
|
|
337
|
+
`;
|
|
338
|
+
};
|
|
293
339
|
|
|
294
340
|
// src/blocklet.ts
|
|
295
341
|
var DEFAULT_FONTS = ["Roboto", "Helvetica", "Arial", "sans-serif"];
|
|
@@ -640,37 +686,37 @@ var BLOCKLET_THEME_DARK = merge(BLOCKLET_THEME_LIGHT, {
|
|
|
640
686
|
},
|
|
641
687
|
primary: {
|
|
642
688
|
main: "#00d5be",
|
|
643
|
-
contrastText: "#
|
|
689
|
+
contrastText: "#121212",
|
|
644
690
|
light: "#4ce3d0",
|
|
645
691
|
dark: "#00a89a"
|
|
646
692
|
},
|
|
647
693
|
secondary: {
|
|
648
694
|
main: "#00d3f3",
|
|
649
|
-
contrastText: "#
|
|
695
|
+
contrastText: "#121212",
|
|
650
696
|
light: "#51e1ff",
|
|
651
697
|
dark: "#00a2c0"
|
|
652
698
|
},
|
|
653
699
|
error: {
|
|
654
700
|
main: "#ff6467",
|
|
655
|
-
contrastText: "#
|
|
701
|
+
contrastText: "#121212",
|
|
656
702
|
light: "#ff9598",
|
|
657
703
|
dark: "#e7000b"
|
|
658
704
|
},
|
|
659
705
|
warning: {
|
|
660
706
|
main: "#ff8904",
|
|
661
|
-
contrastText: "#
|
|
707
|
+
contrastText: "#121212",
|
|
662
708
|
light: "#ffa644",
|
|
663
709
|
dark: "#f54900"
|
|
664
710
|
},
|
|
665
711
|
info: {
|
|
666
712
|
main: "#51a2ff",
|
|
667
|
-
contrastText: "#
|
|
713
|
+
contrastText: "#121212",
|
|
668
714
|
light: "#83c3ff",
|
|
669
715
|
dark: "#1570e5"
|
|
670
716
|
},
|
|
671
717
|
success: {
|
|
672
718
|
main: "#05df72",
|
|
673
|
-
contrastText: "#
|
|
719
|
+
contrastText: "#121212",
|
|
674
720
|
light: "#56e799",
|
|
675
721
|
dark: "#00b24a"
|
|
676
722
|
},
|
|
@@ -851,6 +897,8 @@ var DID_CONNECT_THEME_DARK = merge(BLOCKLET_THEME_DARK, {
|
|
|
851
897
|
DEFAULT_FONTS,
|
|
852
898
|
DID_CONNECT_THEME_DARK,
|
|
853
899
|
DID_CONNECT_THEME_LIGHT,
|
|
900
|
+
buildThemeScript,
|
|
901
|
+
buildThemeStyles,
|
|
854
902
|
getDefaultThemePrefer,
|
|
855
903
|
isValidThemeMode,
|
|
856
904
|
merge
|
package/dist/es/index.js
CHANGED
|
@@ -270,6 +270,50 @@ function getDefaultThemePrefer(meta) {
|
|
|
270
270
|
}
|
|
271
271
|
return "light";
|
|
272
272
|
}
|
|
273
|
+
var buildThemeStyles = (theme) => {
|
|
274
|
+
const { light, dark } = theme;
|
|
275
|
+
return `
|
|
276
|
+
<style id="blocklet-theme-style">
|
|
277
|
+
:root {
|
|
278
|
+
--blocklet-background-default-color: ${light.palette?.background?.default ?? "#ffffff"};
|
|
279
|
+
--blocklet-text-primary-color: ${light.palette?.text?.primary ?? "#18181b"};
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
[data-theme='dark'] {
|
|
283
|
+
--blocklet-background-default-color: ${dark.palette?.background?.default ?? "#121212"};
|
|
284
|
+
--blocklet-text-primary-color: ${dark.palette?.text?.primary ?? "#ffffff"};
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
html, body {
|
|
288
|
+
background-color: var(--blocklet-background-default-color);
|
|
289
|
+
color: var(--blocklet-text-primary-color);
|
|
290
|
+
}
|
|
291
|
+
</style>
|
|
292
|
+
`;
|
|
293
|
+
};
|
|
294
|
+
var buildThemeScript = (theme) => {
|
|
295
|
+
return `
|
|
296
|
+
<script id="blocklet-theme-script">
|
|
297
|
+
(function() {
|
|
298
|
+
try {
|
|
299
|
+
const BLOCKLET_THEME_PREFER_KEY = '${BLOCKLET_THEME_PREFER_KEY}';
|
|
300
|
+
${isValidThemeMode.toString()}
|
|
301
|
+
${getDefaultThemePrefer.toString()}
|
|
302
|
+
|
|
303
|
+
const prefer = getDefaultThemePrefer(${JSON.stringify({ theme: { prefer: theme.prefer } })});
|
|
304
|
+
|
|
305
|
+
if(prefer === 'dark') {
|
|
306
|
+
document.documentElement.setAttribute('data-theme', 'dark');
|
|
307
|
+
} else {
|
|
308
|
+
document.documentElement.removeAttribute('data-theme');
|
|
309
|
+
}
|
|
310
|
+
} catch (e) {
|
|
311
|
+
console.error('Theme init error:', e);
|
|
312
|
+
}
|
|
313
|
+
})();
|
|
314
|
+
</script>
|
|
315
|
+
`;
|
|
316
|
+
};
|
|
273
317
|
|
|
274
318
|
// src/blocklet.ts
|
|
275
319
|
var DEFAULT_FONTS = ["Roboto", "Helvetica", "Arial", "sans-serif"];
|
|
@@ -620,37 +664,37 @@ var BLOCKLET_THEME_DARK = merge(BLOCKLET_THEME_LIGHT, {
|
|
|
620
664
|
},
|
|
621
665
|
primary: {
|
|
622
666
|
main: "#00d5be",
|
|
623
|
-
contrastText: "#
|
|
667
|
+
contrastText: "#121212",
|
|
624
668
|
light: "#4ce3d0",
|
|
625
669
|
dark: "#00a89a"
|
|
626
670
|
},
|
|
627
671
|
secondary: {
|
|
628
672
|
main: "#00d3f3",
|
|
629
|
-
contrastText: "#
|
|
673
|
+
contrastText: "#121212",
|
|
630
674
|
light: "#51e1ff",
|
|
631
675
|
dark: "#00a2c0"
|
|
632
676
|
},
|
|
633
677
|
error: {
|
|
634
678
|
main: "#ff6467",
|
|
635
|
-
contrastText: "#
|
|
679
|
+
contrastText: "#121212",
|
|
636
680
|
light: "#ff9598",
|
|
637
681
|
dark: "#e7000b"
|
|
638
682
|
},
|
|
639
683
|
warning: {
|
|
640
684
|
main: "#ff8904",
|
|
641
|
-
contrastText: "#
|
|
685
|
+
contrastText: "#121212",
|
|
642
686
|
light: "#ffa644",
|
|
643
687
|
dark: "#f54900"
|
|
644
688
|
},
|
|
645
689
|
info: {
|
|
646
690
|
main: "#51a2ff",
|
|
647
|
-
contrastText: "#
|
|
691
|
+
contrastText: "#121212",
|
|
648
692
|
light: "#83c3ff",
|
|
649
693
|
dark: "#1570e5"
|
|
650
694
|
},
|
|
651
695
|
success: {
|
|
652
696
|
main: "#05df72",
|
|
653
|
-
contrastText: "#
|
|
697
|
+
contrastText: "#121212",
|
|
654
698
|
light: "#56e799",
|
|
655
699
|
dark: "#00b24a"
|
|
656
700
|
},
|
|
@@ -830,6 +874,8 @@ export {
|
|
|
830
874
|
DEFAULT_FONTS,
|
|
831
875
|
DID_CONNECT_THEME_DARK,
|
|
832
876
|
DID_CONNECT_THEME_LIGHT,
|
|
877
|
+
buildThemeScript,
|
|
878
|
+
buildThemeStyles,
|
|
833
879
|
getDefaultThemePrefer,
|
|
834
880
|
isValidThemeMode,
|
|
835
881
|
merge
|
package/dist/types/index.d.ts
CHANGED
|
@@ -69,6 +69,15 @@ export declare function getDefaultThemePrefer(meta?: {
|
|
|
69
69
|
prefer: "light" | "dark" | "system";
|
|
70
70
|
};
|
|
71
71
|
}): PaletteMode;
|
|
72
|
+
export type ThemeSettings = {
|
|
73
|
+
prefer: "light" | "dark" | "system";
|
|
74
|
+
light: ThemeOptions;
|
|
75
|
+
dark: ThemeOptions;
|
|
76
|
+
};
|
|
77
|
+
/** 生成用于服务端注入的初始样式,避免首屏加载闪白 */
|
|
78
|
+
export declare const buildThemeStyles: (theme: ThemeSettings) => string;
|
|
79
|
+
/** 生成用于服务端注入的初始脚本,用于选择 theme mode */
|
|
80
|
+
export declare const buildThemeScript: (theme: ThemeSettings) => string;
|
|
72
81
|
|
|
73
82
|
export {
|
|
74
83
|
Theme,
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "2.13.
|
|
6
|
+
"version": "2.13.56",
|
|
7
7
|
"description": "A preset MUI-based theme configuration designed for use with Blocklet.",
|
|
8
8
|
"main": "dist/cjs/index.js",
|
|
9
9
|
"module": "dist/es/index.js",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"ts-jest": "^29.1.2",
|
|
56
56
|
"typescript": "~5.5.4"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "ebf7d863313f1ce95571b81df01182756395197e"
|
|
59
59
|
}
|