@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 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
@@ -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
- declare const THEME_COLOR_META_MAP: Readonly<{
10
- readonly purple: {
11
- readonly label: "典雅紫·清";
12
- readonly textColor: "text-purple-500";
13
- readonly bgColor: "bg-purple-500/20";
14
- readonly viaColor: "via-purple-500/20";
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";
@@ -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
 
@@ -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.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.0"
62
+ "@windrun-huaiin/lib": "^31.0.3"
63
63
  },
64
64
  "peerDependencies": {
65
65
  "clsx": "^2.1.1",
@@ -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 THEME_COLOR_META_MAP;
59
- export type SupportedThemeColor = (typeof THEME_COLOR_META_MAP)[SupportedThemeName]["textColor"];
60
- export type SupportedThemeBgColor = (typeof THEME_COLOR_META_MAP)[SupportedThemeName]["bgColor"];
61
- export type SupportedThemeViaColor = (typeof THEME_COLOR_META_MAP)[SupportedThemeName]["viaColor"];
62
- export type SupportedThemeRingColor = (typeof THEME_COLOR_META_MAP)[SupportedThemeName]["ringColor"];
63
- export type SupportedThemeBorderColor = (typeof THEME_COLOR_META_MAP)[SupportedThemeName]["borderColor"];
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];
@@ -1,2 +1,7 @@
1
1
 
2
-
2
+
3
+ @theme {
4
+ --color-clue-500: #1D9BF0;
5
+ --color-hose-500: #F91980;
6
+ --color-pika-500: #FFD400;
7
+ }