@windrun-huaiin/lib 31.0.0 → 31.0.1
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.
|
@@ -17,12 +17,14 @@ declare const ALL_LOCALE_LABELS: {
|
|
|
17
17
|
readonly vi: "Tiếng Việt";
|
|
18
18
|
};
|
|
19
19
|
export type SupportedLocale = keyof typeof ALL_LOCALE_LABELS;
|
|
20
|
+
export type AppThemeMode = 'light-dark-system' | 'light-only' | 'dark-only';
|
|
20
21
|
export declare function createCommonAppConfig(options?: {
|
|
21
22
|
locales?: string[];
|
|
22
23
|
defaultLocale?: string;
|
|
23
24
|
}): {
|
|
24
25
|
shortcuts: {
|
|
25
26
|
iconColor: string;
|
|
27
|
+
themeMode: AppThemeMode;
|
|
26
28
|
watermark: {
|
|
27
29
|
enabled: boolean;
|
|
28
30
|
text: string;
|
|
@@ -63,6 +65,9 @@ export declare function createCommonAppConfig(options?: {
|
|
|
63
65
|
icon: {
|
|
64
66
|
uniformColor: string;
|
|
65
67
|
};
|
|
68
|
+
theme: {
|
|
69
|
+
mode: AppThemeMode;
|
|
70
|
+
};
|
|
66
71
|
showBanner: boolean;
|
|
67
72
|
clerkAuthInModal: boolean;
|
|
68
73
|
clerkPageBanner: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-app-config.d.ts","sourceRoot":"","sources":["../src/common-app-config.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAiBb,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"common-app-config.d.ts","sourceRoot":"","sources":["../src/common-app-config.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAiBb,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAC7D,MAAM,MAAM,YAAY,GACpB,mBAAmB,GACnB,YAAY,GACZ,WAAW,CAAC;AAiChB,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE;IAE9C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqByB,SAAS,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqE1C;AAGD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC;gCACzD,MAAM,KAAG,MAAM,IAAI,CAAA,OAAO,UAAU,CAAC,OAAO,EAAC,MAAM,CAAC;6BAIvD,MAAM,KAAG,CAAA,OAAO,UAAU,CAAC,OAAO,EAAC,MAAM,CAAC;;;;;EAc3E;AAGD,eAAO,MAAM,cAAc;;iBAEK,MAAM,EAAE;uBAAyB,MAAM;;;iBAGnC,MAAM,EAAE;uBAAyB,MAAM;;;iBAG5B,MAAM,EAAE;uBAAyB,MAAM;;;iBAG/B,MAAM,EAAE;uBAAyB,MAAM;;;iBAGT,MAAM,EAAE;uBAAyB,MAAM;;;iBAGnG,MAAM,EAAE;uBAAyB,MAAM;;CAC/D,CAAC"}
|
|
@@ -19,6 +19,20 @@ const ALL_LOCALE_LABELS = {
|
|
|
19
19
|
th: "ไทย",
|
|
20
20
|
vi: "Tiếng Việt",
|
|
21
21
|
};
|
|
22
|
+
const APP_THEME_MODES = [
|
|
23
|
+
'light-dark-system',
|
|
24
|
+
'light-only',
|
|
25
|
+
'dark-only',
|
|
26
|
+
];
|
|
27
|
+
function getAppThemeMode(value) {
|
|
28
|
+
if (APP_THEME_MODES.includes(value)) {
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
if (value) {
|
|
32
|
+
console.warn(`[CommonAppConfig] Invalid NEXT_PUBLIC_STYLE_THEME_MODE: ${value}. Fallback to light-dark-system.`);
|
|
33
|
+
}
|
|
34
|
+
return 'light-dark-system';
|
|
35
|
+
}
|
|
22
36
|
// Helper function to get language configuration from environment variables
|
|
23
37
|
function getLocaleLabels(locales) {
|
|
24
38
|
return Object.fromEntries(locales.map(locale => [
|
|
@@ -56,17 +70,20 @@ function createCommonAppConfig(options) {
|
|
|
56
70
|
// Style configuration
|
|
57
71
|
style: {
|
|
58
72
|
icon: {
|
|
59
|
-
uniformColor: process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "
|
|
73
|
+
uniformColor: process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "purple"
|
|
74
|
+
},
|
|
75
|
+
theme: {
|
|
76
|
+
mode: getAppThemeMode(process.env.NEXT_PUBLIC_STYLE_THEME_MODE),
|
|
60
77
|
},
|
|
61
78
|
showBanner: process.env.NEXT_PUBLIC_STYLE_SHOW_BANNER === 'true',
|
|
62
79
|
clerkAuthInModal: process.env.NEXT_PUBLIC_STYLE_CLERK_AUTH_IN_MODAL === 'true',
|
|
63
80
|
clerkPageBanner: process.env.NEXT_PUBLIC_STYLE_CLERK_PAGE_BANNER === 'true',
|
|
64
81
|
watermark: {
|
|
65
82
|
enabled: process.env.NEXT_PUBLIC_STYLE_WATERMARK_ENABLED === 'true',
|
|
66
|
-
text: process.env.NEXT_PUBLIC_STYLE_WATERMARK_TEXT || "
|
|
83
|
+
text: process.env.NEXT_PUBLIC_STYLE_WATERMARK_TEXT || "WindRun・Huaiin"
|
|
67
84
|
},
|
|
68
|
-
cdnBaseUrl: process.env.NEXT_PUBLIC_STYLE_CDN_BASE_URL || "
|
|
69
|
-
cdnProxyUrl: process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL || "
|
|
85
|
+
cdnBaseUrl: process.env.NEXT_PUBLIC_STYLE_CDN_BASE_URL || "",
|
|
86
|
+
cdnProxyUrl: process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL || "",
|
|
70
87
|
placeHolder: {
|
|
71
88
|
image: process.env.NEXT_PUBLIC_STYLE_PLACEHOLDER_IMAGE || "/default.webp"
|
|
72
89
|
}
|
|
@@ -90,6 +107,7 @@ function createCommonAppConfig(options) {
|
|
|
90
107
|
// Convenient constants - avoid deep nested access
|
|
91
108
|
const shortcuts = {
|
|
92
109
|
iconColor: config.style.icon.uniformColor,
|
|
110
|
+
themeMode: config.style.theme.mode,
|
|
93
111
|
watermark: config.style.watermark,
|
|
94
112
|
showBanner: config.style.showBanner,
|
|
95
113
|
clerkPageBanner: config.style.clerkPageBanner,
|
|
@@ -17,6 +17,20 @@ const ALL_LOCALE_LABELS = {
|
|
|
17
17
|
th: "ไทย",
|
|
18
18
|
vi: "Tiếng Việt",
|
|
19
19
|
};
|
|
20
|
+
const APP_THEME_MODES = [
|
|
21
|
+
'light-dark-system',
|
|
22
|
+
'light-only',
|
|
23
|
+
'dark-only',
|
|
24
|
+
];
|
|
25
|
+
function getAppThemeMode(value) {
|
|
26
|
+
if (APP_THEME_MODES.includes(value)) {
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
if (value) {
|
|
30
|
+
console.warn(`[CommonAppConfig] Invalid NEXT_PUBLIC_STYLE_THEME_MODE: ${value}. Fallback to light-dark-system.`);
|
|
31
|
+
}
|
|
32
|
+
return 'light-dark-system';
|
|
33
|
+
}
|
|
20
34
|
// Helper function to get language configuration from environment variables
|
|
21
35
|
function getLocaleLabels(locales) {
|
|
22
36
|
return Object.fromEntries(locales.map(locale => [
|
|
@@ -54,17 +68,20 @@ function createCommonAppConfig(options) {
|
|
|
54
68
|
// Style configuration
|
|
55
69
|
style: {
|
|
56
70
|
icon: {
|
|
57
|
-
uniformColor: process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "
|
|
71
|
+
uniformColor: process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "purple"
|
|
72
|
+
},
|
|
73
|
+
theme: {
|
|
74
|
+
mode: getAppThemeMode(process.env.NEXT_PUBLIC_STYLE_THEME_MODE),
|
|
58
75
|
},
|
|
59
76
|
showBanner: process.env.NEXT_PUBLIC_STYLE_SHOW_BANNER === 'true',
|
|
60
77
|
clerkAuthInModal: process.env.NEXT_PUBLIC_STYLE_CLERK_AUTH_IN_MODAL === 'true',
|
|
61
78
|
clerkPageBanner: process.env.NEXT_PUBLIC_STYLE_CLERK_PAGE_BANNER === 'true',
|
|
62
79
|
watermark: {
|
|
63
80
|
enabled: process.env.NEXT_PUBLIC_STYLE_WATERMARK_ENABLED === 'true',
|
|
64
|
-
text: process.env.NEXT_PUBLIC_STYLE_WATERMARK_TEXT || "
|
|
81
|
+
text: process.env.NEXT_PUBLIC_STYLE_WATERMARK_TEXT || "WindRun・Huaiin"
|
|
65
82
|
},
|
|
66
|
-
cdnBaseUrl: process.env.NEXT_PUBLIC_STYLE_CDN_BASE_URL || "
|
|
67
|
-
cdnProxyUrl: process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL || "
|
|
83
|
+
cdnBaseUrl: process.env.NEXT_PUBLIC_STYLE_CDN_BASE_URL || "",
|
|
84
|
+
cdnProxyUrl: process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL || "",
|
|
68
85
|
placeHolder: {
|
|
69
86
|
image: process.env.NEXT_PUBLIC_STYLE_PLACEHOLDER_IMAGE || "/default.webp"
|
|
70
87
|
}
|
|
@@ -88,6 +105,7 @@ function createCommonAppConfig(options) {
|
|
|
88
105
|
// Convenient constants - avoid deep nested access
|
|
89
106
|
const shortcuts = {
|
|
90
107
|
iconColor: config.style.icon.uniformColor,
|
|
108
|
+
themeMode: config.style.theme.mode,
|
|
91
109
|
watermark: config.style.watermark,
|
|
92
110
|
showBanner: config.style.showBanner,
|
|
93
111
|
clerkPageBanner: config.style.clerkPageBanner,
|
package/package.json
CHANGED
package/src/common-app-config.ts
CHANGED
|
@@ -19,6 +19,30 @@ const ALL_LOCALE_LABELS = {
|
|
|
19
19
|
} as const;
|
|
20
20
|
|
|
21
21
|
export type SupportedLocale = keyof typeof ALL_LOCALE_LABELS;
|
|
22
|
+
export type AppThemeMode =
|
|
23
|
+
| 'light-dark-system'
|
|
24
|
+
| 'light-only'
|
|
25
|
+
| 'dark-only';
|
|
26
|
+
|
|
27
|
+
const APP_THEME_MODES = [
|
|
28
|
+
'light-dark-system',
|
|
29
|
+
'light-only',
|
|
30
|
+
'dark-only',
|
|
31
|
+
] as const satisfies readonly AppThemeMode[];
|
|
32
|
+
|
|
33
|
+
function getAppThemeMode(value: string | undefined): AppThemeMode {
|
|
34
|
+
if (APP_THEME_MODES.includes(value as AppThemeMode)) {
|
|
35
|
+
return value as AppThemeMode;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (value) {
|
|
39
|
+
console.warn(
|
|
40
|
+
`[CommonAppConfig] Invalid NEXT_PUBLIC_STYLE_THEME_MODE: ${value}. Fallback to light-dark-system.`,
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return 'light-dark-system';
|
|
45
|
+
}
|
|
22
46
|
|
|
23
47
|
// Helper function to get language configuration from environment variables
|
|
24
48
|
function getLocaleLabels(locales: string[]) {
|
|
@@ -72,17 +96,20 @@ export function createCommonAppConfig(options?: {
|
|
|
72
96
|
// Style configuration
|
|
73
97
|
style: {
|
|
74
98
|
icon: {
|
|
75
|
-
uniformColor: process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "
|
|
99
|
+
uniformColor: process.env.NEXT_PUBLIC_STYLE_ICON_COLOR || "purple"
|
|
100
|
+
},
|
|
101
|
+
theme: {
|
|
102
|
+
mode: getAppThemeMode(process.env.NEXT_PUBLIC_STYLE_THEME_MODE),
|
|
76
103
|
},
|
|
77
104
|
showBanner: process.env.NEXT_PUBLIC_STYLE_SHOW_BANNER === 'true',
|
|
78
105
|
clerkAuthInModal: process.env.NEXT_PUBLIC_STYLE_CLERK_AUTH_IN_MODAL === 'true',
|
|
79
106
|
clerkPageBanner: process.env.NEXT_PUBLIC_STYLE_CLERK_PAGE_BANNER === 'true',
|
|
80
107
|
watermark: {
|
|
81
108
|
enabled: process.env.NEXT_PUBLIC_STYLE_WATERMARK_ENABLED === 'true',
|
|
82
|
-
text: process.env.NEXT_PUBLIC_STYLE_WATERMARK_TEXT || "
|
|
109
|
+
text: process.env.NEXT_PUBLIC_STYLE_WATERMARK_TEXT || "WindRun・Huaiin"
|
|
83
110
|
},
|
|
84
|
-
cdnBaseUrl: process.env.NEXT_PUBLIC_STYLE_CDN_BASE_URL || "
|
|
85
|
-
cdnProxyUrl: process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL || "
|
|
111
|
+
cdnBaseUrl: process.env.NEXT_PUBLIC_STYLE_CDN_BASE_URL || "",
|
|
112
|
+
cdnProxyUrl: process.env.NEXT_PUBLIC_STYLE_CDN_PROXY_URL || "",
|
|
86
113
|
placeHolder: {
|
|
87
114
|
image: process.env.NEXT_PUBLIC_STYLE_PLACEHOLDER_IMAGE || "/default.webp"
|
|
88
115
|
}
|
|
@@ -109,6 +136,7 @@ export function createCommonAppConfig(options?: {
|
|
|
109
136
|
// Convenient constants - avoid deep nested access
|
|
110
137
|
const shortcuts = {
|
|
111
138
|
iconColor: config.style.icon.uniformColor,
|
|
139
|
+
themeMode: config.style.theme.mode,
|
|
112
140
|
watermark: config.style.watermark,
|
|
113
141
|
showBanner: config.style.showBanner,
|
|
114
142
|
clerkPageBanner: config.style.clerkPageBanner,
|
|
@@ -164,4 +192,4 @@ export const LOCALE_PRESETS = {
|
|
|
164
192
|
|
|
165
193
|
// No internationalization (only default language)
|
|
166
194
|
NONE: { locales: [] as string[], defaultLocale: 'en' as string }
|
|
167
|
-
};
|
|
195
|
+
};
|