@windrun-huaiin/base-ui 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.
- package/README.md +4 -1
- package/dist/lib/theme-util.d.ts +44 -59
- package/dist/lib/theme-util.js +60 -0
- package/dist/lib/theme-util.mjs +60 -0
- package/package.json +2 -2
- package/src/lib/theme-util.ts +66 -6
- package/src/styles/base-ui.css +6 -1
package/README.md
CHANGED
|
@@ -19,6 +19,9 @@ Supported theme palettes:
|
|
|
19
19
|
- `indigo`: `#6366F1`
|
|
20
20
|
- `emerald`: `#48C892`
|
|
21
21
|
- `rose`: `#F43F5E`
|
|
22
|
+
- `clue`: `#1D9BF0`
|
|
23
|
+
- `hose`: `#F91980`
|
|
24
|
+
- `pika`: `#FFD400`
|
|
22
25
|
|
|
23
26
|
Core module:
|
|
24
27
|
|
|
@@ -54,4 +57,4 @@ Supported providers:
|
|
|
54
57
|
These components provide a consistent way to add analytics scripts to applications while keeping script setup centralized in the shared UI package.
|
|
55
58
|
|
|
56
59
|
## License
|
|
57
|
-
MIT License
|
|
60
|
+
MIT License
|
package/dist/lib/theme-util.d.ts
CHANGED
|
@@ -6,65 +6,21 @@
|
|
|
6
6
|
* 2. Single config: NEXT_PUBLIC_STYLE_ICON_COLOR (simple theme name only)
|
|
7
7
|
* 3. Premium/elegant color system (uppercase hex values)
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
readonly ringColor: "ring-purple-500/20";
|
|
16
|
-
readonly borderColor: "border-purple-500";
|
|
17
|
-
readonly hex: "#AC62FD";
|
|
18
|
-
};
|
|
19
|
-
readonly orange: {
|
|
20
|
-
readonly label: "轻奢橙·暖";
|
|
21
|
-
readonly textColor: "text-orange-500";
|
|
22
|
-
readonly bgColor: "bg-orange-500/20";
|
|
23
|
-
readonly viaColor: "via-orange-500/20";
|
|
24
|
-
readonly ringColor: "ring-orange-500/20";
|
|
25
|
-
readonly borderColor: "border-orange-500";
|
|
26
|
-
readonly hex: "#F97316";
|
|
27
|
-
};
|
|
28
|
-
readonly indigo: {
|
|
29
|
-
readonly label: "沉稳蓝·冷";
|
|
30
|
-
readonly textColor: "text-indigo-500";
|
|
31
|
-
readonly bgColor: "bg-indigo-500/20";
|
|
32
|
-
readonly viaColor: "via-indigo-500/20";
|
|
33
|
-
readonly ringColor: "ring-indigo-500/20";
|
|
34
|
-
readonly borderColor: "border-indigo-500";
|
|
35
|
-
readonly hex: "#6366F1";
|
|
36
|
-
};
|
|
37
|
-
readonly emerald: {
|
|
38
|
-
readonly label: "温润绿·愈";
|
|
39
|
-
readonly textColor: "text-emerald-500";
|
|
40
|
-
readonly bgColor: "bg-emerald-500/20";
|
|
41
|
-
readonly viaColor: "via-emerald-500/20";
|
|
42
|
-
readonly ringColor: "ring-emerald-500/20";
|
|
43
|
-
readonly borderColor: "border-emerald-500";
|
|
44
|
-
readonly hex: "#10B981";
|
|
45
|
-
};
|
|
46
|
-
readonly rose: {
|
|
47
|
-
readonly label: "玫瑰红·柔";
|
|
48
|
-
readonly textColor: "text-rose-500";
|
|
49
|
-
readonly bgColor: "bg-rose-500/20";
|
|
50
|
-
readonly viaColor: "via-rose-500/20";
|
|
51
|
-
readonly ringColor: "ring-rose-500/20";
|
|
52
|
-
readonly borderColor: "border-rose-500";
|
|
53
|
-
readonly hex: "#F43F5E";
|
|
54
|
-
};
|
|
55
|
-
}>;
|
|
56
|
-
export type SupportedThemeName = keyof typeof THEME_COLOR_META_MAP;
|
|
57
|
-
export type SupportedThemeColor = (typeof THEME_COLOR_META_MAP)[SupportedThemeName]["textColor"];
|
|
58
|
-
export type SupportedThemeBgColor = (typeof THEME_COLOR_META_MAP)[SupportedThemeName]["bgColor"];
|
|
59
|
-
export type SupportedThemeViaColor = (typeof THEME_COLOR_META_MAP)[SupportedThemeName]["viaColor"];
|
|
60
|
-
export type SupportedThemeRingColor = (typeof THEME_COLOR_META_MAP)[SupportedThemeName]["ringColor"];
|
|
61
|
-
export type SupportedThemeBorderColor = (typeof THEME_COLOR_META_MAP)[SupportedThemeName]["borderColor"];
|
|
9
|
+
export type SupportedThemeName = keyof typeof THEME_COLOR_NAME_TO_CLASS_MAP;
|
|
10
|
+
export type SupportedThemeColor = (typeof THEME_COLOR_NAME_TO_CLASS_MAP)[SupportedThemeName];
|
|
11
|
+
export type SupportedThemeBgColor = (typeof THEME_COLOR_NAME_TO_BG_CLASS_MAP)[SupportedThemeName];
|
|
12
|
+
export type SupportedThemeViaColor = (typeof THEME_COLOR_NAME_TO_VIA_CLASS_MAP)[SupportedThemeName];
|
|
13
|
+
export type SupportedThemeRingColor = (typeof THEME_COLOR_NAME_TO_RING_CLASS_MAP)[SupportedThemeName];
|
|
14
|
+
export type SupportedThemeBorderColor = (typeof THEME_COLOR_NAME_TO_BORDER_CLASS_MAP)[SupportedThemeName];
|
|
62
15
|
export declare const __SUPPORTED_THEME_COLORS: Readonly<{
|
|
63
16
|
readonly "text-purple-500": "典雅紫·清";
|
|
64
17
|
readonly "text-orange-500": "轻奢橙·暖";
|
|
65
18
|
readonly "text-indigo-500": "沉稳蓝·冷";
|
|
66
19
|
readonly "text-emerald-500": "温润绿·愈";
|
|
67
20
|
readonly "text-rose-500": "玫瑰红·柔";
|
|
21
|
+
readonly "text-clue-500": "天空蓝·X";
|
|
22
|
+
readonly "text-hose-500": "睡莲红·X";
|
|
23
|
+
readonly "text-pika-500": "皮卡黄·X";
|
|
68
24
|
}>;
|
|
69
25
|
export declare const THEME_COLOR_HEX_MAP: Readonly<{
|
|
70
26
|
readonly "text-purple-500": "#AC62FD";
|
|
@@ -72,6 +28,9 @@ export declare const THEME_COLOR_HEX_MAP: Readonly<{
|
|
|
72
28
|
readonly "text-indigo-500": "#6366F1";
|
|
73
29
|
readonly "text-emerald-500": "#10B981";
|
|
74
30
|
readonly "text-rose-500": "#F43F5E";
|
|
31
|
+
readonly "text-clue-500": "#1D9BF0";
|
|
32
|
+
readonly "text-hose-500": "#F91980";
|
|
33
|
+
readonly "text-pika-500": "#FFD400";
|
|
75
34
|
}>;
|
|
76
35
|
export declare const THEME_COLOR_NAME_TO_CLASS_MAP: Readonly<{
|
|
77
36
|
readonly purple: "text-purple-500";
|
|
@@ -79,6 +38,9 @@ export declare const THEME_COLOR_NAME_TO_CLASS_MAP: Readonly<{
|
|
|
79
38
|
readonly indigo: "text-indigo-500";
|
|
80
39
|
readonly emerald: "text-emerald-500";
|
|
81
40
|
readonly rose: "text-rose-500";
|
|
41
|
+
readonly clue: "text-clue-500";
|
|
42
|
+
readonly hose: "text-hose-500";
|
|
43
|
+
readonly pika: "text-pika-500";
|
|
82
44
|
}>;
|
|
83
45
|
export declare const THEME_COLOR_NAME_TO_BG_CLASS_MAP: Readonly<{
|
|
84
46
|
readonly purple: "bg-purple-500/20";
|
|
@@ -86,6 +48,9 @@ export declare const THEME_COLOR_NAME_TO_BG_CLASS_MAP: Readonly<{
|
|
|
86
48
|
readonly indigo: "bg-indigo-500/20";
|
|
87
49
|
readonly emerald: "bg-emerald-500/20";
|
|
88
50
|
readonly rose: "bg-rose-500/20";
|
|
51
|
+
readonly clue: "bg-clue-500/20";
|
|
52
|
+
readonly hose: "bg-hose-500/20";
|
|
53
|
+
readonly pika: "bg-pika-500/20";
|
|
89
54
|
}>;
|
|
90
55
|
export declare const THEME_COLOR_NAME_TO_VIA_CLASS_MAP: Readonly<{
|
|
91
56
|
readonly purple: "via-purple-500/20";
|
|
@@ -93,6 +58,9 @@ export declare const THEME_COLOR_NAME_TO_VIA_CLASS_MAP: Readonly<{
|
|
|
93
58
|
readonly indigo: "via-indigo-500/20";
|
|
94
59
|
readonly emerald: "via-emerald-500/20";
|
|
95
60
|
readonly rose: "via-rose-500/20";
|
|
61
|
+
readonly clue: "via-clue-500/20";
|
|
62
|
+
readonly hose: "via-hose-500/20";
|
|
63
|
+
readonly pika: "via-pika-500/20";
|
|
96
64
|
}>;
|
|
97
65
|
export declare const THEME_COLOR_NAME_TO_RING_CLASS_MAP: Readonly<{
|
|
98
66
|
readonly purple: "ring-purple-500/20";
|
|
@@ -100,6 +68,9 @@ export declare const THEME_COLOR_NAME_TO_RING_CLASS_MAP: Readonly<{
|
|
|
100
68
|
readonly indigo: "ring-indigo-500/20";
|
|
101
69
|
readonly emerald: "ring-emerald-500/20";
|
|
102
70
|
readonly rose: "ring-rose-500/20";
|
|
71
|
+
readonly clue: "ring-clue-500/20";
|
|
72
|
+
readonly hose: "ring-hose-500/20";
|
|
73
|
+
readonly pika: "ring-pika-500/20";
|
|
103
74
|
}>;
|
|
104
75
|
export declare const THEME_COLOR_NAME_TO_BORDER_CLASS_MAP: Readonly<{
|
|
105
76
|
readonly purple: "border-purple-500";
|
|
@@ -107,6 +78,9 @@ export declare const THEME_COLOR_NAME_TO_BORDER_CLASS_MAP: Readonly<{
|
|
|
107
78
|
readonly indigo: "border-indigo-500";
|
|
108
79
|
readonly emerald: "border-emerald-500";
|
|
109
80
|
readonly rose: "border-rose-500";
|
|
81
|
+
readonly clue: "border-clue-500";
|
|
82
|
+
readonly hose: "border-hose-500";
|
|
83
|
+
readonly pika: "border-pika-500";
|
|
110
84
|
}>;
|
|
111
85
|
export declare const validateThemeColor: (colorClass: string) => colorClass is SupportedThemeColor;
|
|
112
86
|
export declare const validateThemeName: (colorName: string) => colorName is SupportedThemeName;
|
|
@@ -117,7 +91,7 @@ export declare const themeViaColor: SupportedThemeViaColor;
|
|
|
117
91
|
export declare const themeRingColor: SupportedThemeRingColor;
|
|
118
92
|
export declare const themeBorderColor: SupportedThemeBorderColor;
|
|
119
93
|
export declare const themeMainBgColor = "bg-neutral-100 dark:bg-neutral-900";
|
|
120
|
-
export declare const themeSvgIconColor: "#AC62FD" | "#F97316" | "#6366F1" | "#10B981" | "#F43F5E";
|
|
94
|
+
export declare const themeSvgIconColor: "#AC62FD" | "#F97316" | "#6366F1" | "#10B981" | "#F43F5E" | "#1D9BF0" | "#F91980" | "#FFD400";
|
|
121
95
|
export declare const themeSvgIconSize: string | number;
|
|
122
96
|
export declare const THEME_BUTTON_GRADIENT_CLASS_MAP: Readonly<{
|
|
123
97
|
readonly "text-purple-500": "bg-linear-to-r from-purple-400 to-pink-500 dark:from-purple-500 dark:to-pink-600";
|
|
@@ -125,6 +99,9 @@ export declare const THEME_BUTTON_GRADIENT_CLASS_MAP: Readonly<{
|
|
|
125
99
|
readonly "text-indigo-500": "bg-linear-to-r from-indigo-400 to-blue-500 dark:from-indigo-500 dark:to-blue-600";
|
|
126
100
|
readonly "text-emerald-500": "bg-linear-to-r from-emerald-400 to-teal-500 dark:from-emerald-500 dark:to-teal-600";
|
|
127
101
|
readonly "text-rose-500": "bg-linear-to-r from-rose-400 to-pink-500 dark:from-rose-500 dark:to-pink-600";
|
|
102
|
+
readonly "text-clue-500": "bg-linear-to-r from-sky-400 to-clue-500 dark:from-clue-500 dark:to-cyan-500";
|
|
103
|
+
readonly "text-hose-500": "bg-linear-to-r from-hose-500 to-pink-500 dark:from-hose-500 dark:to-pink-600";
|
|
104
|
+
readonly "text-pika-500": "bg-linear-to-r from-pika-500 to-amber-500 dark:from-pika-500 dark:to-amber-500";
|
|
128
105
|
}>;
|
|
129
106
|
export declare const THEME_BUTTON_GRADIENT_HOVER_CLASS_MAP: Readonly<{
|
|
130
107
|
readonly "text-purple-500": "hover:from-purple-500 hover:to-pink-600 dark:hover:from-purple-600 dark:hover:to-pink-700";
|
|
@@ -132,23 +109,31 @@ export declare const THEME_BUTTON_GRADIENT_HOVER_CLASS_MAP: Readonly<{
|
|
|
132
109
|
readonly "text-indigo-500": "hover:from-indigo-500 hover:to-blue-600 dark:hover:from-indigo-600 dark:hover:to-blue-700";
|
|
133
110
|
readonly "text-emerald-500": "hover:from-emerald-500 hover:to-teal-600 dark:hover:from-emerald-600 dark:hover:to-teal-700";
|
|
134
111
|
readonly "text-rose-500": "hover:from-rose-500 hover:to-pink-600 dark:hover:from-rose-600 dark:hover:to-pink-700";
|
|
112
|
+
readonly "text-clue-500": "hover:from-clue-500 hover:to-cyan-600 dark:hover:from-clue-500 dark:hover:to-cyan-600";
|
|
113
|
+
readonly "text-hose-500": "hover:from-hose-500 hover:to-pink-600 dark:hover:from-hose-500 dark:hover:to-pink-700";
|
|
114
|
+
readonly "text-pika-500": "hover:from-pika-500 hover:to-amber-600 dark:hover:from-pika-500 dark:hover:to-amber-600";
|
|
135
115
|
}>;
|
|
136
|
-
export declare const themeButtonGradientClass: "bg-linear-to-r from-purple-400 to-pink-500 dark:from-purple-500 dark:to-pink-600" | "bg-linear-to-r from-orange-500 to-orange-600 dark:from-orange-500 dark:to-orange-700" | "bg-linear-to-r from-indigo-400 to-blue-500 dark:from-indigo-500 dark:to-blue-600" | "bg-linear-to-r from-emerald-400 to-teal-500 dark:from-emerald-500 dark:to-teal-600" | "bg-linear-to-r from-rose-400 to-pink-500 dark:from-rose-500 dark:to-pink-600";
|
|
137
|
-
export declare const themeButtonGradientHoverClass: "hover:from-purple-500 hover:to-pink-600 dark:hover:from-purple-600 dark:hover:to-pink-700" | "hover:from-orange-500 hover:to-amber-600 dark:hover:from-orange-600 dark:hover:to-amber-700" | "hover:from-indigo-500 hover:to-blue-600 dark:hover:from-indigo-600 dark:hover:to-blue-700" | "hover:from-emerald-500 hover:to-teal-600 dark:hover:from-emerald-600 dark:hover:to-teal-700" | "hover:from-rose-500 hover:to-pink-600 dark:hover:from-rose-600 dark:hover:to-pink-700";
|
|
116
|
+
export declare const themeButtonGradientClass: "bg-linear-to-r from-purple-400 to-pink-500 dark:from-purple-500 dark:to-pink-600" | "bg-linear-to-r from-orange-500 to-orange-600 dark:from-orange-500 dark:to-orange-700" | "bg-linear-to-r from-indigo-400 to-blue-500 dark:from-indigo-500 dark:to-blue-600" | "bg-linear-to-r from-emerald-400 to-teal-500 dark:from-emerald-500 dark:to-teal-600" | "bg-linear-to-r from-rose-400 to-pink-500 dark:from-rose-500 dark:to-pink-600" | "bg-linear-to-r from-sky-400 to-clue-500 dark:from-clue-500 dark:to-cyan-500" | "bg-linear-to-r from-hose-500 to-pink-500 dark:from-hose-500 dark:to-pink-600" | "bg-linear-to-r from-pika-500 to-amber-500 dark:from-pika-500 dark:to-amber-500";
|
|
117
|
+
export declare const themeButtonGradientHoverClass: "hover:from-purple-500 hover:to-pink-600 dark:hover:from-purple-600 dark:hover:to-pink-700" | "hover:from-orange-500 hover:to-amber-600 dark:hover:from-orange-600 dark:hover:to-amber-700" | "hover:from-indigo-500 hover:to-blue-600 dark:hover:from-indigo-600 dark:hover:to-blue-700" | "hover:from-emerald-500 hover:to-teal-600 dark:hover:from-emerald-600 dark:hover:to-teal-700" | "hover:from-rose-500 hover:to-pink-600 dark:hover:from-rose-600 dark:hover:to-pink-700" | "hover:from-clue-500 hover:to-cyan-600 dark:hover:from-clue-500 dark:hover:to-cyan-600" | "hover:from-hose-500 hover:to-pink-600 dark:hover:from-hose-500 dark:hover:to-pink-700" | "hover:from-pika-500 hover:to-amber-600 dark:hover:from-pika-500 dark:hover:to-amber-600";
|
|
138
118
|
export declare const THEME_HERO_EYES_ON_CLASS_MAP: Readonly<{
|
|
139
119
|
readonly "text-purple-500": "bg-linear-to-r from-purple-400 to-pink-600";
|
|
140
120
|
readonly "text-orange-500": "bg-linear-to-r from-orange-500 to-red-500";
|
|
141
121
|
readonly "text-indigo-500": "bg-linear-to-r from-indigo-400 to-blue-600";
|
|
142
122
|
readonly "text-emerald-500": "bg-linear-to-r from-emerald-400 to-teal-600";
|
|
143
123
|
readonly "text-rose-500": "bg-linear-to-r from-rose-400 to-pink-600";
|
|
124
|
+
readonly "text-clue-500": "bg-linear-to-r from-sky-400 to-clue-500";
|
|
125
|
+
readonly "text-hose-500": "bg-linear-to-r from-hose-500 to-pink-600";
|
|
126
|
+
readonly "text-pika-500": "bg-linear-to-r from-pika-500 to-amber-600";
|
|
144
127
|
}>;
|
|
145
|
-
export declare const themeHeroEyesOnClass: "bg-linear-to-r from-purple-400 to-pink-600" | "bg-linear-to-r from-orange-500 to-red-500" | "bg-linear-to-r from-indigo-400 to-blue-600" | "bg-linear-to-r from-emerald-400 to-teal-600" | "bg-linear-to-r from-rose-400 to-pink-600";
|
|
128
|
+
export declare const themeHeroEyesOnClass: "bg-linear-to-r from-purple-400 to-pink-600" | "bg-linear-to-r from-orange-500 to-red-500" | "bg-linear-to-r from-indigo-400 to-blue-600" | "bg-linear-to-r from-emerald-400 to-teal-600" | "bg-linear-to-r from-rose-400 to-pink-600" | "bg-linear-to-r from-sky-400 to-clue-500" | "bg-linear-to-r from-hose-500 to-pink-600" | "bg-linear-to-r from-pika-500 to-amber-600";
|
|
146
129
|
export declare const THEME_RICH_TEXT_MARK_CLASS_MAP: Readonly<{
|
|
147
130
|
readonly "text-purple-500": "bg-purple-300 dark:bg-purple-600";
|
|
148
131
|
readonly "text-orange-500": "bg-orange-300 dark:bg-orange-600";
|
|
149
132
|
readonly "text-indigo-500": "bg-indigo-300 dark:bg-indigo-600";
|
|
150
133
|
readonly "text-emerald-500": "bg-emerald-300 dark:bg-emerald-600";
|
|
151
134
|
readonly "text-rose-500": "bg-rose-300 dark:bg-rose-600";
|
|
135
|
+
readonly "text-clue-500": "bg-clue-500/30 dark:bg-clue-500/60";
|
|
136
|
+
readonly "text-hose-500": "bg-hose-500/30 dark:bg-hose-500/60";
|
|
137
|
+
readonly "text-pika-500": "bg-pika-500/40 dark:bg-pika-500/70";
|
|
152
138
|
}>;
|
|
153
|
-
export declare const themeRichTextMarkClass: "bg-purple-300 dark:bg-purple-600" | "bg-orange-300 dark:bg-orange-600" | "bg-indigo-300 dark:bg-indigo-600" | "bg-emerald-300 dark:bg-emerald-600" | "bg-rose-300 dark:bg-rose-600";
|
|
154
|
-
export {};
|
|
139
|
+
export declare const themeRichTextMarkClass: "bg-purple-300 dark:bg-purple-600" | "bg-orange-300 dark:bg-orange-600" | "bg-indigo-300 dark:bg-indigo-600" | "bg-emerald-300 dark:bg-emerald-600" | "bg-rose-300 dark:bg-rose-600" | "bg-clue-500/30 dark:bg-clue-500/60" | "bg-hose-500/30 dark:bg-hose-500/60" | "bg-pika-500/40 dark:bg-pika-500/70";
|
package/dist/lib/theme-util.js
CHANGED
|
@@ -54,6 +54,33 @@ const THEME_COLOR_META_MAP = Object.freeze({
|
|
|
54
54
|
borderColor: "border-rose-500",
|
|
55
55
|
hex: "#F43F5E",
|
|
56
56
|
},
|
|
57
|
+
clue: {
|
|
58
|
+
label: "天空蓝·X",
|
|
59
|
+
textColor: "text-clue-500",
|
|
60
|
+
bgColor: "bg-clue-500/20",
|
|
61
|
+
viaColor: "via-clue-500/20",
|
|
62
|
+
ringColor: "ring-clue-500/20",
|
|
63
|
+
borderColor: "border-clue-500",
|
|
64
|
+
hex: "#1D9BF0",
|
|
65
|
+
},
|
|
66
|
+
hose: {
|
|
67
|
+
label: "睡莲红·X",
|
|
68
|
+
textColor: "text-hose-500",
|
|
69
|
+
bgColor: "bg-hose-500/20",
|
|
70
|
+
viaColor: "via-hose-500/20",
|
|
71
|
+
ringColor: "ring-hose-500/20",
|
|
72
|
+
borderColor: "border-hose-500",
|
|
73
|
+
hex: "#F91980",
|
|
74
|
+
},
|
|
75
|
+
pika: {
|
|
76
|
+
label: "皮卡黄·X",
|
|
77
|
+
textColor: "text-pika-500",
|
|
78
|
+
bgColor: "bg-pika-500/20",
|
|
79
|
+
viaColor: "via-pika-500/20",
|
|
80
|
+
ringColor: "ring-pika-500/20",
|
|
81
|
+
borderColor: "border-pika-500",
|
|
82
|
+
hex: "#FFD400",
|
|
83
|
+
},
|
|
57
84
|
});
|
|
58
85
|
// Supported theme color classes (static for Tailwind scan)
|
|
59
86
|
const __SUPPORTED_THEME_COLORS = Object.freeze({
|
|
@@ -62,6 +89,9 @@ const __SUPPORTED_THEME_COLORS = Object.freeze({
|
|
|
62
89
|
"text-indigo-500": THEME_COLOR_META_MAP.indigo.label,
|
|
63
90
|
"text-emerald-500": THEME_COLOR_META_MAP.emerald.label,
|
|
64
91
|
"text-rose-500": THEME_COLOR_META_MAP.rose.label,
|
|
92
|
+
"text-clue-500": THEME_COLOR_META_MAP.clue.label,
|
|
93
|
+
"text-hose-500": THEME_COLOR_META_MAP.hose.label,
|
|
94
|
+
"text-pika-500": THEME_COLOR_META_MAP.pika.label,
|
|
65
95
|
});
|
|
66
96
|
// Hex color map (uppercase, match Tailwind classes)
|
|
67
97
|
const THEME_COLOR_HEX_MAP = Object.freeze({
|
|
@@ -70,6 +100,9 @@ const THEME_COLOR_HEX_MAP = Object.freeze({
|
|
|
70
100
|
"text-indigo-500": THEME_COLOR_META_MAP.indigo.hex,
|
|
71
101
|
"text-emerald-500": THEME_COLOR_META_MAP.emerald.hex,
|
|
72
102
|
"text-rose-500": THEME_COLOR_META_MAP.rose.hex,
|
|
103
|
+
"text-clue-500": THEME_COLOR_META_MAP.clue.hex,
|
|
104
|
+
"text-hose-500": THEME_COLOR_META_MAP.hose.hex,
|
|
105
|
+
"text-pika-500": THEME_COLOR_META_MAP.pika.hex,
|
|
73
106
|
});
|
|
74
107
|
// Short theme names for env configuration
|
|
75
108
|
const THEME_COLOR_NAME_TO_CLASS_MAP = Object.freeze({
|
|
@@ -78,6 +111,9 @@ const THEME_COLOR_NAME_TO_CLASS_MAP = Object.freeze({
|
|
|
78
111
|
indigo: THEME_COLOR_META_MAP.indigo.textColor,
|
|
79
112
|
emerald: THEME_COLOR_META_MAP.emerald.textColor,
|
|
80
113
|
rose: THEME_COLOR_META_MAP.rose.textColor,
|
|
114
|
+
clue: THEME_COLOR_META_MAP.clue.textColor,
|
|
115
|
+
hose: THEME_COLOR_META_MAP.hose.textColor,
|
|
116
|
+
pika: THEME_COLOR_META_MAP.pika.textColor,
|
|
81
117
|
});
|
|
82
118
|
const THEME_COLOR_NAME_TO_BG_CLASS_MAP = Object.freeze({
|
|
83
119
|
purple: THEME_COLOR_META_MAP.purple.bgColor,
|
|
@@ -85,6 +121,9 @@ const THEME_COLOR_NAME_TO_BG_CLASS_MAP = Object.freeze({
|
|
|
85
121
|
indigo: THEME_COLOR_META_MAP.indigo.bgColor,
|
|
86
122
|
emerald: THEME_COLOR_META_MAP.emerald.bgColor,
|
|
87
123
|
rose: THEME_COLOR_META_MAP.rose.bgColor,
|
|
124
|
+
clue: THEME_COLOR_META_MAP.clue.bgColor,
|
|
125
|
+
hose: THEME_COLOR_META_MAP.hose.bgColor,
|
|
126
|
+
pika: THEME_COLOR_META_MAP.pika.bgColor,
|
|
88
127
|
});
|
|
89
128
|
const THEME_COLOR_NAME_TO_VIA_CLASS_MAP = Object.freeze({
|
|
90
129
|
purple: THEME_COLOR_META_MAP.purple.viaColor,
|
|
@@ -92,6 +131,9 @@ const THEME_COLOR_NAME_TO_VIA_CLASS_MAP = Object.freeze({
|
|
|
92
131
|
indigo: THEME_COLOR_META_MAP.indigo.viaColor,
|
|
93
132
|
emerald: THEME_COLOR_META_MAP.emerald.viaColor,
|
|
94
133
|
rose: THEME_COLOR_META_MAP.rose.viaColor,
|
|
134
|
+
clue: THEME_COLOR_META_MAP.clue.viaColor,
|
|
135
|
+
hose: THEME_COLOR_META_MAP.hose.viaColor,
|
|
136
|
+
pika: THEME_COLOR_META_MAP.pika.viaColor,
|
|
95
137
|
});
|
|
96
138
|
const THEME_COLOR_NAME_TO_RING_CLASS_MAP = Object.freeze({
|
|
97
139
|
purple: THEME_COLOR_META_MAP.purple.ringColor,
|
|
@@ -99,6 +141,9 @@ const THEME_COLOR_NAME_TO_RING_CLASS_MAP = Object.freeze({
|
|
|
99
141
|
indigo: THEME_COLOR_META_MAP.indigo.ringColor,
|
|
100
142
|
emerald: THEME_COLOR_META_MAP.emerald.ringColor,
|
|
101
143
|
rose: THEME_COLOR_META_MAP.rose.ringColor,
|
|
144
|
+
clue: THEME_COLOR_META_MAP.clue.ringColor,
|
|
145
|
+
hose: THEME_COLOR_META_MAP.hose.ringColor,
|
|
146
|
+
pika: THEME_COLOR_META_MAP.pika.ringColor,
|
|
102
147
|
});
|
|
103
148
|
const THEME_COLOR_NAME_TO_BORDER_CLASS_MAP = Object.freeze({
|
|
104
149
|
purple: THEME_COLOR_META_MAP.purple.borderColor,
|
|
@@ -106,6 +151,9 @@ const THEME_COLOR_NAME_TO_BORDER_CLASS_MAP = Object.freeze({
|
|
|
106
151
|
indigo: THEME_COLOR_META_MAP.indigo.borderColor,
|
|
107
152
|
emerald: THEME_COLOR_META_MAP.emerald.borderColor,
|
|
108
153
|
rose: THEME_COLOR_META_MAP.rose.borderColor,
|
|
154
|
+
clue: THEME_COLOR_META_MAP.clue.borderColor,
|
|
155
|
+
hose: THEME_COLOR_META_MAP.hose.borderColor,
|
|
156
|
+
pika: THEME_COLOR_META_MAP.pika.borderColor,
|
|
109
157
|
});
|
|
110
158
|
// Validate theme color class (type guard)
|
|
111
159
|
const validateThemeColor = (colorClass) => {
|
|
@@ -145,6 +193,9 @@ const THEME_BUTTON_GRADIENT_CLASS_MAP = Object.freeze({
|
|
|
145
193
|
"text-indigo-500": "bg-linear-to-r from-indigo-400 to-blue-500 dark:from-indigo-500 dark:to-blue-600",
|
|
146
194
|
"text-emerald-500": "bg-linear-to-r from-emerald-400 to-teal-500 dark:from-emerald-500 dark:to-teal-600",
|
|
147
195
|
"text-rose-500": "bg-linear-to-r from-rose-400 to-pink-500 dark:from-rose-500 dark:to-pink-600",
|
|
196
|
+
"text-clue-500": "bg-linear-to-r from-sky-400 to-clue-500 dark:from-clue-500 dark:to-cyan-500",
|
|
197
|
+
"text-hose-500": "bg-linear-to-r from-hose-500 to-pink-500 dark:from-hose-500 dark:to-pink-600",
|
|
198
|
+
"text-pika-500": "bg-linear-to-r from-pika-500 to-amber-500 dark:from-pika-500 dark:to-amber-500",
|
|
148
199
|
});
|
|
149
200
|
// Theme button hover gradient classes (static for Tailwind scan)
|
|
150
201
|
const THEME_BUTTON_GRADIENT_HOVER_CLASS_MAP = Object.freeze({
|
|
@@ -153,6 +204,9 @@ const THEME_BUTTON_GRADIENT_HOVER_CLASS_MAP = Object.freeze({
|
|
|
153
204
|
"text-indigo-500": "hover:from-indigo-500 hover:to-blue-600 dark:hover:from-indigo-600 dark:hover:to-blue-700",
|
|
154
205
|
"text-emerald-500": "hover:from-emerald-500 hover:to-teal-600 dark:hover:from-emerald-600 dark:hover:to-teal-700",
|
|
155
206
|
"text-rose-500": "hover:from-rose-500 hover:to-pink-600 dark:hover:from-rose-600 dark:hover:to-pink-700",
|
|
207
|
+
"text-clue-500": "hover:from-clue-500 hover:to-cyan-600 dark:hover:from-clue-500 dark:hover:to-cyan-600",
|
|
208
|
+
"text-hose-500": "hover:from-hose-500 hover:to-pink-600 dark:hover:from-hose-500 dark:hover:to-pink-700",
|
|
209
|
+
"text-pika-500": "hover:from-pika-500 hover:to-amber-600 dark:hover:from-pika-500 dark:hover:to-amber-600",
|
|
156
210
|
});
|
|
157
211
|
// Global button gradient classes (type-safe, follows themeIconColor)
|
|
158
212
|
const themeButtonGradientClass = THEME_BUTTON_GRADIENT_CLASS_MAP[themeIconColor];
|
|
@@ -164,6 +218,9 @@ const THEME_HERO_EYES_ON_CLASS_MAP = Object.freeze({
|
|
|
164
218
|
"text-indigo-500": "bg-linear-to-r from-indigo-400 to-blue-600",
|
|
165
219
|
"text-emerald-500": "bg-linear-to-r from-emerald-400 to-teal-600",
|
|
166
220
|
"text-rose-500": "bg-linear-to-r from-rose-400 to-pink-600",
|
|
221
|
+
"text-clue-500": "bg-linear-to-r from-sky-400 to-clue-500",
|
|
222
|
+
"text-hose-500": "bg-linear-to-r from-hose-500 to-pink-600",
|
|
223
|
+
"text-pika-500": "bg-linear-to-r from-pika-500 to-amber-600",
|
|
167
224
|
});
|
|
168
225
|
const themeHeroEyesOnClass = THEME_HERO_EYES_ON_CLASS_MAP[themeIconColor];
|
|
169
226
|
// Theme rich-text <mark> highlight background classes (darker emphasis, readable)
|
|
@@ -173,6 +230,9 @@ const THEME_RICH_TEXT_MARK_CLASS_MAP = Object.freeze({
|
|
|
173
230
|
"text-indigo-500": "bg-indigo-300 dark:bg-indigo-600",
|
|
174
231
|
"text-emerald-500": "bg-emerald-300 dark:bg-emerald-600",
|
|
175
232
|
"text-rose-500": "bg-rose-300 dark:bg-rose-600",
|
|
233
|
+
"text-clue-500": "bg-clue-500/30 dark:bg-clue-500/60",
|
|
234
|
+
"text-hose-500": "bg-hose-500/30 dark:bg-hose-500/60",
|
|
235
|
+
"text-pika-500": "bg-pika-500/40 dark:bg-pika-500/70",
|
|
176
236
|
});
|
|
177
237
|
const themeRichTextMarkClass = THEME_RICH_TEXT_MARK_CLASS_MAP[themeIconColor];
|
|
178
238
|
|
package/dist/lib/theme-util.mjs
CHANGED
|
@@ -52,6 +52,33 @@ const THEME_COLOR_META_MAP = Object.freeze({
|
|
|
52
52
|
borderColor: "border-rose-500",
|
|
53
53
|
hex: "#F43F5E",
|
|
54
54
|
},
|
|
55
|
+
clue: {
|
|
56
|
+
label: "天空蓝·X",
|
|
57
|
+
textColor: "text-clue-500",
|
|
58
|
+
bgColor: "bg-clue-500/20",
|
|
59
|
+
viaColor: "via-clue-500/20",
|
|
60
|
+
ringColor: "ring-clue-500/20",
|
|
61
|
+
borderColor: "border-clue-500",
|
|
62
|
+
hex: "#1D9BF0",
|
|
63
|
+
},
|
|
64
|
+
hose: {
|
|
65
|
+
label: "睡莲红·X",
|
|
66
|
+
textColor: "text-hose-500",
|
|
67
|
+
bgColor: "bg-hose-500/20",
|
|
68
|
+
viaColor: "via-hose-500/20",
|
|
69
|
+
ringColor: "ring-hose-500/20",
|
|
70
|
+
borderColor: "border-hose-500",
|
|
71
|
+
hex: "#F91980",
|
|
72
|
+
},
|
|
73
|
+
pika: {
|
|
74
|
+
label: "皮卡黄·X",
|
|
75
|
+
textColor: "text-pika-500",
|
|
76
|
+
bgColor: "bg-pika-500/20",
|
|
77
|
+
viaColor: "via-pika-500/20",
|
|
78
|
+
ringColor: "ring-pika-500/20",
|
|
79
|
+
borderColor: "border-pika-500",
|
|
80
|
+
hex: "#FFD400",
|
|
81
|
+
},
|
|
55
82
|
});
|
|
56
83
|
// Supported theme color classes (static for Tailwind scan)
|
|
57
84
|
const __SUPPORTED_THEME_COLORS = Object.freeze({
|
|
@@ -60,6 +87,9 @@ const __SUPPORTED_THEME_COLORS = Object.freeze({
|
|
|
60
87
|
"text-indigo-500": THEME_COLOR_META_MAP.indigo.label,
|
|
61
88
|
"text-emerald-500": THEME_COLOR_META_MAP.emerald.label,
|
|
62
89
|
"text-rose-500": THEME_COLOR_META_MAP.rose.label,
|
|
90
|
+
"text-clue-500": THEME_COLOR_META_MAP.clue.label,
|
|
91
|
+
"text-hose-500": THEME_COLOR_META_MAP.hose.label,
|
|
92
|
+
"text-pika-500": THEME_COLOR_META_MAP.pika.label,
|
|
63
93
|
});
|
|
64
94
|
// Hex color map (uppercase, match Tailwind classes)
|
|
65
95
|
const THEME_COLOR_HEX_MAP = Object.freeze({
|
|
@@ -68,6 +98,9 @@ const THEME_COLOR_HEX_MAP = Object.freeze({
|
|
|
68
98
|
"text-indigo-500": THEME_COLOR_META_MAP.indigo.hex,
|
|
69
99
|
"text-emerald-500": THEME_COLOR_META_MAP.emerald.hex,
|
|
70
100
|
"text-rose-500": THEME_COLOR_META_MAP.rose.hex,
|
|
101
|
+
"text-clue-500": THEME_COLOR_META_MAP.clue.hex,
|
|
102
|
+
"text-hose-500": THEME_COLOR_META_MAP.hose.hex,
|
|
103
|
+
"text-pika-500": THEME_COLOR_META_MAP.pika.hex,
|
|
71
104
|
});
|
|
72
105
|
// Short theme names for env configuration
|
|
73
106
|
const THEME_COLOR_NAME_TO_CLASS_MAP = Object.freeze({
|
|
@@ -76,6 +109,9 @@ const THEME_COLOR_NAME_TO_CLASS_MAP = Object.freeze({
|
|
|
76
109
|
indigo: THEME_COLOR_META_MAP.indigo.textColor,
|
|
77
110
|
emerald: THEME_COLOR_META_MAP.emerald.textColor,
|
|
78
111
|
rose: THEME_COLOR_META_MAP.rose.textColor,
|
|
112
|
+
clue: THEME_COLOR_META_MAP.clue.textColor,
|
|
113
|
+
hose: THEME_COLOR_META_MAP.hose.textColor,
|
|
114
|
+
pika: THEME_COLOR_META_MAP.pika.textColor,
|
|
79
115
|
});
|
|
80
116
|
const THEME_COLOR_NAME_TO_BG_CLASS_MAP = Object.freeze({
|
|
81
117
|
purple: THEME_COLOR_META_MAP.purple.bgColor,
|
|
@@ -83,6 +119,9 @@ const THEME_COLOR_NAME_TO_BG_CLASS_MAP = Object.freeze({
|
|
|
83
119
|
indigo: THEME_COLOR_META_MAP.indigo.bgColor,
|
|
84
120
|
emerald: THEME_COLOR_META_MAP.emerald.bgColor,
|
|
85
121
|
rose: THEME_COLOR_META_MAP.rose.bgColor,
|
|
122
|
+
clue: THEME_COLOR_META_MAP.clue.bgColor,
|
|
123
|
+
hose: THEME_COLOR_META_MAP.hose.bgColor,
|
|
124
|
+
pika: THEME_COLOR_META_MAP.pika.bgColor,
|
|
86
125
|
});
|
|
87
126
|
const THEME_COLOR_NAME_TO_VIA_CLASS_MAP = Object.freeze({
|
|
88
127
|
purple: THEME_COLOR_META_MAP.purple.viaColor,
|
|
@@ -90,6 +129,9 @@ const THEME_COLOR_NAME_TO_VIA_CLASS_MAP = Object.freeze({
|
|
|
90
129
|
indigo: THEME_COLOR_META_MAP.indigo.viaColor,
|
|
91
130
|
emerald: THEME_COLOR_META_MAP.emerald.viaColor,
|
|
92
131
|
rose: THEME_COLOR_META_MAP.rose.viaColor,
|
|
132
|
+
clue: THEME_COLOR_META_MAP.clue.viaColor,
|
|
133
|
+
hose: THEME_COLOR_META_MAP.hose.viaColor,
|
|
134
|
+
pika: THEME_COLOR_META_MAP.pika.viaColor,
|
|
93
135
|
});
|
|
94
136
|
const THEME_COLOR_NAME_TO_RING_CLASS_MAP = Object.freeze({
|
|
95
137
|
purple: THEME_COLOR_META_MAP.purple.ringColor,
|
|
@@ -97,6 +139,9 @@ const THEME_COLOR_NAME_TO_RING_CLASS_MAP = Object.freeze({
|
|
|
97
139
|
indigo: THEME_COLOR_META_MAP.indigo.ringColor,
|
|
98
140
|
emerald: THEME_COLOR_META_MAP.emerald.ringColor,
|
|
99
141
|
rose: THEME_COLOR_META_MAP.rose.ringColor,
|
|
142
|
+
clue: THEME_COLOR_META_MAP.clue.ringColor,
|
|
143
|
+
hose: THEME_COLOR_META_MAP.hose.ringColor,
|
|
144
|
+
pika: THEME_COLOR_META_MAP.pika.ringColor,
|
|
100
145
|
});
|
|
101
146
|
const THEME_COLOR_NAME_TO_BORDER_CLASS_MAP = Object.freeze({
|
|
102
147
|
purple: THEME_COLOR_META_MAP.purple.borderColor,
|
|
@@ -104,6 +149,9 @@ const THEME_COLOR_NAME_TO_BORDER_CLASS_MAP = Object.freeze({
|
|
|
104
149
|
indigo: THEME_COLOR_META_MAP.indigo.borderColor,
|
|
105
150
|
emerald: THEME_COLOR_META_MAP.emerald.borderColor,
|
|
106
151
|
rose: THEME_COLOR_META_MAP.rose.borderColor,
|
|
152
|
+
clue: THEME_COLOR_META_MAP.clue.borderColor,
|
|
153
|
+
hose: THEME_COLOR_META_MAP.hose.borderColor,
|
|
154
|
+
pika: THEME_COLOR_META_MAP.pika.borderColor,
|
|
107
155
|
});
|
|
108
156
|
// Validate theme color class (type guard)
|
|
109
157
|
const validateThemeColor = (colorClass) => {
|
|
@@ -143,6 +191,9 @@ const THEME_BUTTON_GRADIENT_CLASS_MAP = Object.freeze({
|
|
|
143
191
|
"text-indigo-500": "bg-linear-to-r from-indigo-400 to-blue-500 dark:from-indigo-500 dark:to-blue-600",
|
|
144
192
|
"text-emerald-500": "bg-linear-to-r from-emerald-400 to-teal-500 dark:from-emerald-500 dark:to-teal-600",
|
|
145
193
|
"text-rose-500": "bg-linear-to-r from-rose-400 to-pink-500 dark:from-rose-500 dark:to-pink-600",
|
|
194
|
+
"text-clue-500": "bg-linear-to-r from-sky-400 to-clue-500 dark:from-clue-500 dark:to-cyan-500",
|
|
195
|
+
"text-hose-500": "bg-linear-to-r from-hose-500 to-pink-500 dark:from-hose-500 dark:to-pink-600",
|
|
196
|
+
"text-pika-500": "bg-linear-to-r from-pika-500 to-amber-500 dark:from-pika-500 dark:to-amber-500",
|
|
146
197
|
});
|
|
147
198
|
// Theme button hover gradient classes (static for Tailwind scan)
|
|
148
199
|
const THEME_BUTTON_GRADIENT_HOVER_CLASS_MAP = Object.freeze({
|
|
@@ -151,6 +202,9 @@ const THEME_BUTTON_GRADIENT_HOVER_CLASS_MAP = Object.freeze({
|
|
|
151
202
|
"text-indigo-500": "hover:from-indigo-500 hover:to-blue-600 dark:hover:from-indigo-600 dark:hover:to-blue-700",
|
|
152
203
|
"text-emerald-500": "hover:from-emerald-500 hover:to-teal-600 dark:hover:from-emerald-600 dark:hover:to-teal-700",
|
|
153
204
|
"text-rose-500": "hover:from-rose-500 hover:to-pink-600 dark:hover:from-rose-600 dark:hover:to-pink-700",
|
|
205
|
+
"text-clue-500": "hover:from-clue-500 hover:to-cyan-600 dark:hover:from-clue-500 dark:hover:to-cyan-600",
|
|
206
|
+
"text-hose-500": "hover:from-hose-500 hover:to-pink-600 dark:hover:from-hose-500 dark:hover:to-pink-700",
|
|
207
|
+
"text-pika-500": "hover:from-pika-500 hover:to-amber-600 dark:hover:from-pika-500 dark:hover:to-amber-600",
|
|
154
208
|
});
|
|
155
209
|
// Global button gradient classes (type-safe, follows themeIconColor)
|
|
156
210
|
const themeButtonGradientClass = THEME_BUTTON_GRADIENT_CLASS_MAP[themeIconColor];
|
|
@@ -162,6 +216,9 @@ const THEME_HERO_EYES_ON_CLASS_MAP = Object.freeze({
|
|
|
162
216
|
"text-indigo-500": "bg-linear-to-r from-indigo-400 to-blue-600",
|
|
163
217
|
"text-emerald-500": "bg-linear-to-r from-emerald-400 to-teal-600",
|
|
164
218
|
"text-rose-500": "bg-linear-to-r from-rose-400 to-pink-600",
|
|
219
|
+
"text-clue-500": "bg-linear-to-r from-sky-400 to-clue-500",
|
|
220
|
+
"text-hose-500": "bg-linear-to-r from-hose-500 to-pink-600",
|
|
221
|
+
"text-pika-500": "bg-linear-to-r from-pika-500 to-amber-600",
|
|
165
222
|
});
|
|
166
223
|
const themeHeroEyesOnClass = THEME_HERO_EYES_ON_CLASS_MAP[themeIconColor];
|
|
167
224
|
// Theme rich-text <mark> highlight background classes (darker emphasis, readable)
|
|
@@ -171,6 +228,9 @@ const THEME_RICH_TEXT_MARK_CLASS_MAP = Object.freeze({
|
|
|
171
228
|
"text-indigo-500": "bg-indigo-300 dark:bg-indigo-600",
|
|
172
229
|
"text-emerald-500": "bg-emerald-300 dark:bg-emerald-600",
|
|
173
230
|
"text-rose-500": "bg-rose-300 dark:bg-rose-600",
|
|
231
|
+
"text-clue-500": "bg-clue-500/30 dark:bg-clue-500/60",
|
|
232
|
+
"text-hose-500": "bg-hose-500/30 dark:bg-hose-500/60",
|
|
233
|
+
"text-pika-500": "bg-pika-500/40 dark:bg-pika-500/70",
|
|
174
234
|
});
|
|
175
235
|
const themeRichTextMarkClass = THEME_RICH_TEXT_MARK_CLASS_MAP[themeIconColor];
|
|
176
236
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@windrun-huaiin/base-ui",
|
|
3
|
-
"version": "31.0.
|
|
3
|
+
"version": "31.0.1",
|
|
4
4
|
"description": "Base UI components for windrun-huaiin projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"class-variance-authority": "^0.7.1",
|
|
60
60
|
"lucide-react": "^0.577.0",
|
|
61
61
|
"tslib": "^2.8.1",
|
|
62
|
-
"@windrun-huaiin/lib": "^31.0.
|
|
62
|
+
"@windrun-huaiin/lib": "^31.0.3"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
65
|
"clsx": "^2.1.1",
|
package/src/lib/theme-util.ts
CHANGED
|
@@ -53,14 +53,41 @@ const THEME_COLOR_META_MAP = Object.freeze({
|
|
|
53
53
|
borderColor: "border-rose-500",
|
|
54
54
|
hex: "#F43F5E",
|
|
55
55
|
},
|
|
56
|
+
clue: {
|
|
57
|
+
label: "天空蓝·X",
|
|
58
|
+
textColor: "text-clue-500",
|
|
59
|
+
bgColor: "bg-clue-500/20",
|
|
60
|
+
viaColor: "via-clue-500/20",
|
|
61
|
+
ringColor: "ring-clue-500/20",
|
|
62
|
+
borderColor: "border-clue-500",
|
|
63
|
+
hex: "#1D9BF0",
|
|
64
|
+
},
|
|
65
|
+
hose: {
|
|
66
|
+
label: "睡莲红·X",
|
|
67
|
+
textColor: "text-hose-500",
|
|
68
|
+
bgColor: "bg-hose-500/20",
|
|
69
|
+
viaColor: "via-hose-500/20",
|
|
70
|
+
ringColor: "ring-hose-500/20",
|
|
71
|
+
borderColor: "border-hose-500",
|
|
72
|
+
hex: "#F91980",
|
|
73
|
+
},
|
|
74
|
+
pika: {
|
|
75
|
+
label: "皮卡黄·X",
|
|
76
|
+
textColor: "text-pika-500",
|
|
77
|
+
bgColor: "bg-pika-500/20",
|
|
78
|
+
viaColor: "via-pika-500/20",
|
|
79
|
+
ringColor: "ring-pika-500/20",
|
|
80
|
+
borderColor: "border-pika-500",
|
|
81
|
+
hex: "#FFD400",
|
|
82
|
+
},
|
|
56
83
|
} as const);
|
|
57
84
|
|
|
58
|
-
export type SupportedThemeName = keyof typeof
|
|
59
|
-
export type SupportedThemeColor = (typeof
|
|
60
|
-
export type SupportedThemeBgColor = (typeof
|
|
61
|
-
export type SupportedThemeViaColor = (typeof
|
|
62
|
-
export type SupportedThemeRingColor = (typeof
|
|
63
|
-
export type SupportedThemeBorderColor = (typeof
|
|
85
|
+
export type SupportedThemeName = keyof typeof THEME_COLOR_NAME_TO_CLASS_MAP;
|
|
86
|
+
export type SupportedThemeColor = (typeof THEME_COLOR_NAME_TO_CLASS_MAP)[SupportedThemeName];
|
|
87
|
+
export type SupportedThemeBgColor = (typeof THEME_COLOR_NAME_TO_BG_CLASS_MAP)[SupportedThemeName];
|
|
88
|
+
export type SupportedThemeViaColor = (typeof THEME_COLOR_NAME_TO_VIA_CLASS_MAP)[SupportedThemeName];
|
|
89
|
+
export type SupportedThemeRingColor = (typeof THEME_COLOR_NAME_TO_RING_CLASS_MAP)[SupportedThemeName];
|
|
90
|
+
export type SupportedThemeBorderColor = (typeof THEME_COLOR_NAME_TO_BORDER_CLASS_MAP)[SupportedThemeName];
|
|
64
91
|
|
|
65
92
|
// Supported theme color classes (static for Tailwind scan)
|
|
66
93
|
export const __SUPPORTED_THEME_COLORS = Object.freeze({
|
|
@@ -69,6 +96,9 @@ export const __SUPPORTED_THEME_COLORS = Object.freeze({
|
|
|
69
96
|
"text-indigo-500": THEME_COLOR_META_MAP.indigo.label,
|
|
70
97
|
"text-emerald-500": THEME_COLOR_META_MAP.emerald.label,
|
|
71
98
|
"text-rose-500": THEME_COLOR_META_MAP.rose.label,
|
|
99
|
+
"text-clue-500": THEME_COLOR_META_MAP.clue.label,
|
|
100
|
+
"text-hose-500": THEME_COLOR_META_MAP.hose.label,
|
|
101
|
+
"text-pika-500": THEME_COLOR_META_MAP.pika.label,
|
|
72
102
|
} as const);
|
|
73
103
|
|
|
74
104
|
// Hex color map (uppercase, match Tailwind classes)
|
|
@@ -78,6 +108,9 @@ export const THEME_COLOR_HEX_MAP = Object.freeze({
|
|
|
78
108
|
"text-indigo-500": THEME_COLOR_META_MAP.indigo.hex,
|
|
79
109
|
"text-emerald-500": THEME_COLOR_META_MAP.emerald.hex,
|
|
80
110
|
"text-rose-500": THEME_COLOR_META_MAP.rose.hex,
|
|
111
|
+
"text-clue-500": THEME_COLOR_META_MAP.clue.hex,
|
|
112
|
+
"text-hose-500": THEME_COLOR_META_MAP.hose.hex,
|
|
113
|
+
"text-pika-500": THEME_COLOR_META_MAP.pika.hex,
|
|
81
114
|
} as const);
|
|
82
115
|
|
|
83
116
|
// Short theme names for env configuration
|
|
@@ -87,6 +120,9 @@ export const THEME_COLOR_NAME_TO_CLASS_MAP = Object.freeze({
|
|
|
87
120
|
indigo: THEME_COLOR_META_MAP.indigo.textColor,
|
|
88
121
|
emerald: THEME_COLOR_META_MAP.emerald.textColor,
|
|
89
122
|
rose: THEME_COLOR_META_MAP.rose.textColor,
|
|
123
|
+
clue: THEME_COLOR_META_MAP.clue.textColor,
|
|
124
|
+
hose: THEME_COLOR_META_MAP.hose.textColor,
|
|
125
|
+
pika: THEME_COLOR_META_MAP.pika.textColor,
|
|
90
126
|
} as const);
|
|
91
127
|
|
|
92
128
|
export const THEME_COLOR_NAME_TO_BG_CLASS_MAP = Object.freeze({
|
|
@@ -95,6 +131,9 @@ export const THEME_COLOR_NAME_TO_BG_CLASS_MAP = Object.freeze({
|
|
|
95
131
|
indigo: THEME_COLOR_META_MAP.indigo.bgColor,
|
|
96
132
|
emerald: THEME_COLOR_META_MAP.emerald.bgColor,
|
|
97
133
|
rose: THEME_COLOR_META_MAP.rose.bgColor,
|
|
134
|
+
clue: THEME_COLOR_META_MAP.clue.bgColor,
|
|
135
|
+
hose: THEME_COLOR_META_MAP.hose.bgColor,
|
|
136
|
+
pika: THEME_COLOR_META_MAP.pika.bgColor,
|
|
98
137
|
} as const);
|
|
99
138
|
|
|
100
139
|
export const THEME_COLOR_NAME_TO_VIA_CLASS_MAP = Object.freeze({
|
|
@@ -103,6 +142,9 @@ export const THEME_COLOR_NAME_TO_VIA_CLASS_MAP = Object.freeze({
|
|
|
103
142
|
indigo: THEME_COLOR_META_MAP.indigo.viaColor,
|
|
104
143
|
emerald: THEME_COLOR_META_MAP.emerald.viaColor,
|
|
105
144
|
rose: THEME_COLOR_META_MAP.rose.viaColor,
|
|
145
|
+
clue: THEME_COLOR_META_MAP.clue.viaColor,
|
|
146
|
+
hose: THEME_COLOR_META_MAP.hose.viaColor,
|
|
147
|
+
pika: THEME_COLOR_META_MAP.pika.viaColor,
|
|
106
148
|
} as const);
|
|
107
149
|
|
|
108
150
|
export const THEME_COLOR_NAME_TO_RING_CLASS_MAP = Object.freeze({
|
|
@@ -111,6 +153,9 @@ export const THEME_COLOR_NAME_TO_RING_CLASS_MAP = Object.freeze({
|
|
|
111
153
|
indigo: THEME_COLOR_META_MAP.indigo.ringColor,
|
|
112
154
|
emerald: THEME_COLOR_META_MAP.emerald.ringColor,
|
|
113
155
|
rose: THEME_COLOR_META_MAP.rose.ringColor,
|
|
156
|
+
clue: THEME_COLOR_META_MAP.clue.ringColor,
|
|
157
|
+
hose: THEME_COLOR_META_MAP.hose.ringColor,
|
|
158
|
+
pika: THEME_COLOR_META_MAP.pika.ringColor,
|
|
114
159
|
} as const);
|
|
115
160
|
|
|
116
161
|
export const THEME_COLOR_NAME_TO_BORDER_CLASS_MAP = Object.freeze({
|
|
@@ -119,6 +164,9 @@ export const THEME_COLOR_NAME_TO_BORDER_CLASS_MAP = Object.freeze({
|
|
|
119
164
|
indigo: THEME_COLOR_META_MAP.indigo.borderColor,
|
|
120
165
|
emerald: THEME_COLOR_META_MAP.emerald.borderColor,
|
|
121
166
|
rose: THEME_COLOR_META_MAP.rose.borderColor,
|
|
167
|
+
clue: THEME_COLOR_META_MAP.clue.borderColor,
|
|
168
|
+
hose: THEME_COLOR_META_MAP.hose.borderColor,
|
|
169
|
+
pika: THEME_COLOR_META_MAP.pika.borderColor,
|
|
122
170
|
} as const);
|
|
123
171
|
|
|
124
172
|
// Validate theme color class (type guard)
|
|
@@ -169,6 +217,9 @@ export const THEME_BUTTON_GRADIENT_CLASS_MAP = Object.freeze({
|
|
|
169
217
|
"text-indigo-500": "bg-linear-to-r from-indigo-400 to-blue-500 dark:from-indigo-500 dark:to-blue-600",
|
|
170
218
|
"text-emerald-500": "bg-linear-to-r from-emerald-400 to-teal-500 dark:from-emerald-500 dark:to-teal-600",
|
|
171
219
|
"text-rose-500": "bg-linear-to-r from-rose-400 to-pink-500 dark:from-rose-500 dark:to-pink-600",
|
|
220
|
+
"text-clue-500": "bg-linear-to-r from-sky-400 to-clue-500 dark:from-clue-500 dark:to-cyan-500",
|
|
221
|
+
"text-hose-500": "bg-linear-to-r from-hose-500 to-pink-500 dark:from-hose-500 dark:to-pink-600",
|
|
222
|
+
"text-pika-500": "bg-linear-to-r from-pika-500 to-amber-500 dark:from-pika-500 dark:to-amber-500",
|
|
172
223
|
} as const);
|
|
173
224
|
|
|
174
225
|
// Theme button hover gradient classes (static for Tailwind scan)
|
|
@@ -178,6 +229,9 @@ export const THEME_BUTTON_GRADIENT_HOVER_CLASS_MAP = Object.freeze({
|
|
|
178
229
|
"text-indigo-500": "hover:from-indigo-500 hover:to-blue-600 dark:hover:from-indigo-600 dark:hover:to-blue-700",
|
|
179
230
|
"text-emerald-500": "hover:from-emerald-500 hover:to-teal-600 dark:hover:from-emerald-600 dark:hover:to-teal-700",
|
|
180
231
|
"text-rose-500": "hover:from-rose-500 hover:to-pink-600 dark:hover:from-rose-600 dark:hover:to-pink-700",
|
|
232
|
+
"text-clue-500": "hover:from-clue-500 hover:to-cyan-600 dark:hover:from-clue-500 dark:hover:to-cyan-600",
|
|
233
|
+
"text-hose-500": "hover:from-hose-500 hover:to-pink-600 dark:hover:from-hose-500 dark:hover:to-pink-700",
|
|
234
|
+
"text-pika-500": "hover:from-pika-500 hover:to-amber-600 dark:hover:from-pika-500 dark:hover:to-amber-600",
|
|
181
235
|
} as const);
|
|
182
236
|
|
|
183
237
|
// Global button gradient classes (type-safe, follows themeIconColor)
|
|
@@ -191,6 +245,9 @@ export const THEME_HERO_EYES_ON_CLASS_MAP = Object.freeze({
|
|
|
191
245
|
"text-indigo-500": "bg-linear-to-r from-indigo-400 to-blue-600",
|
|
192
246
|
"text-emerald-500": "bg-linear-to-r from-emerald-400 to-teal-600",
|
|
193
247
|
"text-rose-500": "bg-linear-to-r from-rose-400 to-pink-600",
|
|
248
|
+
"text-clue-500": "bg-linear-to-r from-sky-400 to-clue-500",
|
|
249
|
+
"text-hose-500": "bg-linear-to-r from-hose-500 to-pink-600",
|
|
250
|
+
"text-pika-500": "bg-linear-to-r from-pika-500 to-amber-600",
|
|
194
251
|
} as const);
|
|
195
252
|
|
|
196
253
|
export const themeHeroEyesOnClass = THEME_HERO_EYES_ON_CLASS_MAP[themeIconColor];
|
|
@@ -202,6 +259,9 @@ export const THEME_RICH_TEXT_MARK_CLASS_MAP = Object.freeze({
|
|
|
202
259
|
"text-indigo-500": "bg-indigo-300 dark:bg-indigo-600",
|
|
203
260
|
"text-emerald-500": "bg-emerald-300 dark:bg-emerald-600",
|
|
204
261
|
"text-rose-500": "bg-rose-300 dark:bg-rose-600",
|
|
262
|
+
"text-clue-500": "bg-clue-500/30 dark:bg-clue-500/60",
|
|
263
|
+
"text-hose-500": "bg-hose-500/30 dark:bg-hose-500/60",
|
|
264
|
+
"text-pika-500": "bg-pika-500/40 dark:bg-pika-500/70",
|
|
205
265
|
} as const);
|
|
206
266
|
|
|
207
267
|
export const themeRichTextMarkClass = THEME_RICH_TEXT_MARK_CLASS_MAP[themeIconColor];
|