@windrun-huaiin/base-ui 30.1.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 +33 -171
- 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 +8 -2
- package/src/lib/theme-util.ts +66 -6
- package/src/styles/base-ui.css +6 -1
package/README.md
CHANGED
|
@@ -1,198 +1,60 @@
|
|
|
1
1
|
# Base UI Components
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A shared React UI package built with TypeScript and Tailwind CSS. It provides reusable base components, theme-adaptive utilities, common icons, global icon handling, and analytics script components for Windrun Huaiin applications.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The package focuses on consistent theme adaptation and responsive compatibility across desktop, tablet, and mobile experiences.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- **TypeScript Support**: Full type safety and IntelliSense
|
|
9
|
-
- **Tailwind CSS**: Utility-first CSS framework integration
|
|
10
|
-
- **Radix UI**: Accessible and unstyled UI primitives
|
|
11
|
-
- **Tree Shaking**: Only import what you need
|
|
7
|
+
## Core Features
|
|
12
8
|
|
|
13
|
-
|
|
9
|
+
### Theme Utilities
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
pnpm add @windrun-huaiin/base-ui
|
|
17
|
-
```
|
|
11
|
+
Theme utility classes and helpers for consistent visual styling across applications.
|
|
18
12
|
|
|
19
|
-
|
|
13
|
+
The theme system is designed to let components, icons, accents, and interaction states adapt to the selected palette without duplicating style logic in each application.
|
|
20
14
|
|
|
21
|
-
|
|
15
|
+
Supported theme palettes:
|
|
22
16
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
โ โ โ โโโ src/ # This is third-ui src
|
|
32
|
-
โ โ โโโ base-ui/
|
|
33
|
-
โ โ โโโ src/ # This is base-ui src
|
|
34
|
-
โโโ package.json
|
|
35
|
-
```
|
|
17
|
+
- `purple`: `#AC62FD`
|
|
18
|
+
- `orange`: `#F97316`
|
|
19
|
+
- `indigo`: `#6366F1`
|
|
20
|
+
- `emerald`: `#48C892`
|
|
21
|
+
- `rose`: `#F43F5E`
|
|
22
|
+
- `clue`: `#1D9BF0`
|
|
23
|
+
- `hose`: `#F91980`
|
|
24
|
+
- `pika`: `#FFD400`
|
|
36
25
|
|
|
37
|
-
|
|
26
|
+
Core module:
|
|
38
27
|
|
|
39
|
-
|
|
40
|
-
@import 'tailwindcss';
|
|
28
|
+
- `theme-util`
|
|
41
29
|
|
|
42
|
-
|
|
43
|
-
@source "../node_modules/@windrun-huaiin/base-ui/src/**/*.{js,ts,jsx,tsx}";
|
|
44
|
-
@source "./src/**/*.{js,ts,jsx,tsx}";
|
|
30
|
+
### Common Icons
|
|
45
31
|
|
|
46
|
-
|
|
47
|
-
@import '@windrun-huaiin/third-ui/styles/base-ui.css';
|
|
48
|
-
```
|
|
32
|
+
A unified icon set based on `lucide-icons` and commonly used SVG assets.
|
|
49
33
|
|
|
50
|
-
|
|
34
|
+
The icons are designed to work with the supported theme palettes, making it easier to keep product UI, navigation, actions, and status indicators visually consistent across different themes and screen sizes.
|
|
51
35
|
|
|
52
|
-
|
|
36
|
+
### Responsive Multi-Device Compatibility
|
|
53
37
|
|
|
54
|
-
|
|
38
|
+
Base components are intended for responsive layouts across common application surfaces, including desktop, tablet, and mobile screens.
|
|
55
39
|
|
|
56
|
-
|
|
57
|
-
- GitHub, D8, Clerk, Iterm
|
|
40
|
+
The package helps keep spacing, sizing, icons, and interaction patterns predictable across multiple viewport sizes, so shared UI remains consistent when reused by different applications.
|
|
58
41
|
|
|
59
|
-
|
|
60
|
-
- Markdown, MDX, Html, Json, XML, Yaml, CSV, Txt, Java, SQL, Log
|
|
42
|
+
### Global Site Icon Handler
|
|
61
43
|
|
|
62
|
-
|
|
63
|
-
- MAC, BTC, CSS, Mermaid
|
|
44
|
+
A global handler for site icons, intended to centralize favicon and related icon metadata handling across applications.
|
|
64
45
|
|
|
65
|
-
|
|
66
|
-
- LastUpdated, Snippets, Test, Diff
|
|
46
|
+
This keeps browser tab icons, app icons, and shared site icon behavior consistent without repeating setup in every application.
|
|
67
47
|
|
|
68
|
-
|
|
69
|
-
- DPA, SubP, T3P
|
|
48
|
+
### Analytics Script Components
|
|
70
49
|
|
|
71
|
-
|
|
72
|
-
- Http, Scheme
|
|
50
|
+
Reusable script components for integrating common analytics providers.
|
|
73
51
|
|
|
74
|
-
|
|
52
|
+
Supported providers:
|
|
75
53
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
import { GitHubIcon, BTCIcon, MmdIcon} from '@windrun-huaiin/base-ui';
|
|
54
|
+
- Google
|
|
55
|
+
- Microsoft
|
|
79
56
|
|
|
80
|
-
|
|
81
|
-
<GitHubIcon className="h-6 w-6" />
|
|
82
|
-
<BTCIcon className="h-4 w-4" />
|
|
83
|
-
<MmdIcon className="h-4 w-4" /> // Auto 16x16 size for Mermaid
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### 2. Dynamic Icon Loading
|
|
87
|
-
```tsx
|
|
88
|
-
import { getGlobalIcon } from '@windrun-huaiin/base-ui';
|
|
89
|
-
|
|
90
|
-
// Get icon component
|
|
91
|
-
const GitHubIcon = getGlobalIcon('GitHub');
|
|
92
|
-
<GitHubIcon className="h-6 w-6" />
|
|
93
|
-
|
|
94
|
-
// Get icon element (for fumadocs)
|
|
95
|
-
const iconElement = getGlobalIcon('GitHub', true);
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### 3. Utility Components
|
|
99
|
-
```tsx
|
|
100
|
-
import { SiteIcon, NotFoundIcon } from '@windrun-huaiin/base-ui';
|
|
101
|
-
|
|
102
|
-
// Pre-configured site icon
|
|
103
|
-
<SiteIcon />
|
|
104
|
-
|
|
105
|
-
// Pre-configured 404 icon
|
|
106
|
-
<NotFoundIcon />
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## Benefits
|
|
110
|
-
|
|
111
|
-
- โ
**Zero Configuration**: No need to copy SVG files to your project
|
|
112
|
-
- โ
**Self-contained**: All icons are bundled as React components
|
|
113
|
-
- โ
**Consistent Styling**: Global icon color configuration
|
|
114
|
-
- โ
**Type Safety**: Full TypeScript support with auto-completion
|
|
115
|
-
- โ
**Performance**: No network requests for icon files
|
|
116
|
-
- โ
**Special Sizing**: Mermaid icon has optimized 16x16 default size
|
|
117
|
-
|
|
118
|
-
## Environment Variables
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
# Optional: Set global icon color (defaults to text-purple-500)
|
|
122
|
-
NEXT_PUBLIC_STYLE_ICON_COLOR=text-blue-600
|
|
123
|
-
```
|
|
57
|
+
These components provide a consistent way to add analytics scripts to applications while keeping script setup centralized in the shared UI package.
|
|
124
58
|
|
|
125
59
|
## License
|
|
126
|
-
|
|
127
|
-
MIT
|
|
128
|
-
|
|
129
|
-
## Included Components
|
|
130
|
-
|
|
131
|
-
### UI Components (ui/)
|
|
132
|
-
- Radix UI base components
|
|
133
|
-
- Unified styles and themes
|
|
134
|
-
- Full TypeScript support
|
|
135
|
-
|
|
136
|
-
### Base Components (components/)
|
|
137
|
-
- cta: Call-to-Action component
|
|
138
|
-
- features: Feature showcase component
|
|
139
|
-
- footer: Footer component
|
|
140
|
-
- gallery: Image gallery component
|
|
141
|
-
- global-icon: Global icon management
|
|
142
|
-
- go-to-top: Go to top button
|
|
143
|
-
- LanguageDetector: Language detection component
|
|
144
|
-
- LanguageSwitcher: Language switcher component
|
|
145
|
-
- seo-content: SEO content component
|
|
146
|
-
- tips: Tip component
|
|
147
|
-
|
|
148
|
-
### Script Components (script/)
|
|
149
|
-
- GoogleAnalyticsScript: Google Analytics script
|
|
150
|
-
- MicrosoftClarityScript: Microsoft Clarity script
|
|
151
|
-
|
|
152
|
-
## Usage Example
|
|
153
|
-
|
|
154
|
-
```tsx
|
|
155
|
-
import { Button, LanguageSwitcher } from '@windrun-huaiin/base-ui';
|
|
156
|
-
|
|
157
|
-
// Use UI components
|
|
158
|
-
<Button variant="default" size="lg">
|
|
159
|
-
Click me
|
|
160
|
-
</Button>
|
|
161
|
-
|
|
162
|
-
// Use language switcher component (need to pass in configuration)
|
|
163
|
-
<LanguageSwitcher
|
|
164
|
-
locales={['en', 'zh']}
|
|
165
|
-
localeLabels={{ en: 'English', zh: 'ไธญๆ' }}
|
|
166
|
-
/>
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
## Dependencies
|
|
170
|
-
|
|
171
|
-
- React 18+
|
|
172
|
-
- Next.js 15+
|
|
173
|
-
- TypeScript
|
|
174
|
-
|
|
175
|
-
## Development
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
# Build
|
|
179
|
-
pnpm build
|
|
180
|
-
|
|
181
|
-
# Development mode
|
|
182
|
-
pnpm dev
|
|
183
|
-
|
|
184
|
-
# Type check
|
|
185
|
-
pnpm type-check
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
## Showcase
|
|
190
|
-
|
|
191
|
-
- [Free Trivia Game](https://freetrivia.info/)
|
|
192
|
-
- [Music Poster](https://musicposter.org/en)
|
|
193
|
-
- [Image Narration](https://imagenarration.com/en)
|
|
194
|
-
- [Describe Yourself](https://describeyourself.org/en)
|
|
195
|
-
- [Newspaper Template](https://newspaper-template.org/en)
|
|
196
|
-
- [breathing exercise](https://breathingexercise.net/en)
|
|
197
|
-
- [ai directory list](https://aidirectorylist.com/en)
|
|
198
|
-
- [reve image directory](https://reveimage.directory/en)
|
|
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": "
|
|
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": "^
|
|
62
|
+
"@windrun-huaiin/lib": "^31.0.3"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
65
|
"clsx": "^2.1.1",
|
|
@@ -90,6 +90,12 @@
|
|
|
90
90
|
"publishConfig": {
|
|
91
91
|
"access": "public"
|
|
92
92
|
},
|
|
93
|
+
"homepage": "https://d8ger.com",
|
|
94
|
+
"repository": {
|
|
95
|
+
"type": "git",
|
|
96
|
+
"url": "git+https://github.com/caofanCPU/next-ai-build.git",
|
|
97
|
+
"directory": "packages/base-ui"
|
|
98
|
+
},
|
|
93
99
|
"scripts": {
|
|
94
100
|
"build": "rollup -c rollup.config.mjs",
|
|
95
101
|
"build:prod": "rollup -c rollup.config.mjs",
|
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];
|