@stellar-ui-kit/shared 1.0.0
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 +193 -0
- package/dist/index-Cjy0YM3M.d.ts +14 -0
- package/dist/index-D3vJcNjg.d.mts +14 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +134 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +124 -0
- package/dist/index.mjs.map +1 -0
- package/dist/tailwind-preset/index.d.mts +5 -0
- package/dist/tailwind-preset/index.d.ts +5 -0
- package/dist/tailwind-preset/index.js +60 -0
- package/dist/tailwind-preset/index.js.map +1 -0
- package/dist/tailwind-preset/index.mjs +58 -0
- package/dist/tailwind-preset/index.mjs.map +1 -0
- package/dist/tokens/index.d.mts +40 -0
- package/dist/tokens/index.d.ts +40 -0
- package/dist/tokens/index.js +48 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/index.mjs +43 -0
- package/dist/tokens/index.mjs.map +1 -0
- package/dist/utils/index.d.mts +3 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +76 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +71 -0
- package/dist/utils/index.mjs.map +1 -0
- package/package.json +76 -0
package/README.md
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# @stellar-ui-kit/shared
|
|
2
|
+
|
|
3
|
+
Shared design tokens, types, and utilities for Stellar UI - Platform agnostic.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@stellar-ui-kit/shared)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- 🎨 **Design Tokens** - Colors, themes, and design constants
|
|
11
|
+
- 🛠️ **Utilities** - Platform-agnostic helper functions
|
|
12
|
+
- 🎭 **Theme System** - Light, dark, and custom theme support
|
|
13
|
+
- 📦 **Tailwind Preset** - Pre-configured Tailwind CSS setup
|
|
14
|
+
- 🎯 **TypeScript** - Full type definitions
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install @stellar-ui-kit/shared
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Exports
|
|
23
|
+
|
|
24
|
+
### Main Export
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
import { cn, colors, themes } from '@stellar-ui-kit/shared';
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Tokens
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
import { colors, themes } from '@stellar-ui-kit/shared/tokens';
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Utils
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
import { cn, tokenize, getTheme } from '@stellar-ui-kit/shared/utils';
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Tailwind Preset
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
import stellarPreset from '@stellar-ui-kit/shared/tailwind-preset';
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Usage
|
|
49
|
+
|
|
50
|
+
### Using the `cn` Utility
|
|
51
|
+
|
|
52
|
+
Merge Tailwind CSS classes with proper precedence:
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
import { cn } from '@stellar-ui-kit/shared';
|
|
56
|
+
|
|
57
|
+
const className = cn(
|
|
58
|
+
'px-4 py-2',
|
|
59
|
+
'bg-primary text-white',
|
|
60
|
+
isActive && 'bg-primary-dark',
|
|
61
|
+
customClass
|
|
62
|
+
);
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Design Tokens
|
|
66
|
+
|
|
67
|
+
Access design tokens programmatically:
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
import { colors } from '@stellar-ui-kit/shared/tokens';
|
|
71
|
+
|
|
72
|
+
console.log(colors.light.primary); // Primary color for light theme
|
|
73
|
+
console.log(colors.dark.background); // Background color for dark theme
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Tailwind Preset
|
|
77
|
+
|
|
78
|
+
Add to your `tailwind.config.ts`:
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
import type { Config } from 'tailwindcss';
|
|
82
|
+
import stellarPreset from '@stellar-ui-kit/shared/tailwind-preset';
|
|
83
|
+
|
|
84
|
+
const config: Config = {
|
|
85
|
+
darkMode: ['class'],
|
|
86
|
+
content: ['./src/**/*.{js,ts,jsx,tsx}'],
|
|
87
|
+
presets: [stellarPreset],
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export default config;
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The preset includes:
|
|
94
|
+
|
|
95
|
+
- Design tokens as Tailwind CSS variables
|
|
96
|
+
- Extended color palette (primary, secondary, success, warning, error, etc.)
|
|
97
|
+
- Typography scale
|
|
98
|
+
- Spacing scale
|
|
99
|
+
- Border radius tokens
|
|
100
|
+
- Shadow tokens
|
|
101
|
+
|
|
102
|
+
### Theme System
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
import { themes } from '@stellar-ui-kit/shared/tokens';
|
|
106
|
+
|
|
107
|
+
// Available themes
|
|
108
|
+
const lightTheme = themes.light;
|
|
109
|
+
const darkTheme = themes.dark;
|
|
110
|
+
const oceanTheme = themes.ocean;
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### TypeScript Types
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
import type { ColorScheme, ThemeVariant } from '@stellar-ui-kit/shared';
|
|
117
|
+
|
|
118
|
+
const scheme: ColorScheme = 'light' | 'dark';
|
|
119
|
+
const variant: ThemeVariant = 'light' | 'dark' | 'ocean';
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Available Tokens
|
|
123
|
+
|
|
124
|
+
### Colors
|
|
125
|
+
|
|
126
|
+
- **Semantic Colors**: primary, secondary, success, warning, error
|
|
127
|
+
- **Neutral Colors**: foreground, background, surface, border, muted
|
|
128
|
+
- **Syntax Highlighting**: For code blocks and editors
|
|
129
|
+
|
|
130
|
+
### Themes
|
|
131
|
+
|
|
132
|
+
- `light` - Default light theme
|
|
133
|
+
- `dark` - Default dark theme
|
|
134
|
+
- `ocean` - Ocean blue theme (custom)
|
|
135
|
+
|
|
136
|
+
## Utilities
|
|
137
|
+
|
|
138
|
+
### `cn(...classes)`
|
|
139
|
+
|
|
140
|
+
Merge and deduplicate Tailwind CSS classes using `clsx` and `tailwind-merge`.
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
cn('px-4', 'px-2'); // => 'px-2' (latter wins)
|
|
144
|
+
cn('text-red-500', 'text-blue-500'); // => 'text-blue-500'
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### `tokenize(value, fallback?)`
|
|
148
|
+
|
|
149
|
+
Convert design token references to CSS variables:
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
tokenize('primary'); // => 'var(--primary)'
|
|
153
|
+
tokenize('primary', '#000'); // => 'var(--primary, #000)'
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### `getTheme(variant)`
|
|
157
|
+
|
|
158
|
+
Get theme object by variant name:
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
const theme = getTheme('dark');
|
|
162
|
+
console.log(theme.primary); // Dark theme primary color
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Using with React
|
|
166
|
+
|
|
167
|
+
```tsx
|
|
168
|
+
import { cn } from '@stellar-ui-kit/shared';
|
|
169
|
+
|
|
170
|
+
function Button({ className, variant }) {
|
|
171
|
+
return (
|
|
172
|
+
<button
|
|
173
|
+
className={cn(
|
|
174
|
+
'px-4 py-2 rounded',
|
|
175
|
+
variant === 'primary' && 'bg-primary text-white',
|
|
176
|
+
className
|
|
177
|
+
)}
|
|
178
|
+
/>
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Peer Dependencies
|
|
184
|
+
|
|
185
|
+
- React ^18.0.0 (for React-specific utilities)
|
|
186
|
+
|
|
187
|
+
## License
|
|
188
|
+
|
|
189
|
+
MIT © Stellar UI
|
|
190
|
+
|
|
191
|
+
## Related Packages
|
|
192
|
+
|
|
193
|
+
- [@stellar-ui-kit/web](https://www.npmjs.com/package/@stellar-ui-kit/web) - React web components
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import { LIGHT_THEME } from './tokens/index.js';
|
|
3
|
+
|
|
4
|
+
declare function cn(...inputs: ClassValue[]): string;
|
|
5
|
+
|
|
6
|
+
type ThemeTokens = Record<string, string>;
|
|
7
|
+
type ThemeVariant = 'light' | 'dark' | 'ocean';
|
|
8
|
+
type ColorTokenKey = keyof typeof LIGHT_THEME;
|
|
9
|
+
|
|
10
|
+
declare function getTheme(variant: ThemeVariant): ThemeTokens;
|
|
11
|
+
declare function mergeTheme(base: ThemeTokens, override: Partial<ThemeTokens>): ThemeTokens;
|
|
12
|
+
declare function createCustomTheme(variant: ThemeVariant, customTokens: Partial<ThemeTokens>): ThemeTokens;
|
|
13
|
+
|
|
14
|
+
export { type ColorTokenKey as C, type ThemeTokens as T, createCustomTheme as a, type ThemeVariant as b, cn as c, getTheme as g, mergeTheme as m };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import { LIGHT_THEME } from './tokens/index.mjs';
|
|
3
|
+
|
|
4
|
+
declare function cn(...inputs: ClassValue[]): string;
|
|
5
|
+
|
|
6
|
+
type ThemeTokens = Record<string, string>;
|
|
7
|
+
type ThemeVariant = 'light' | 'dark' | 'ocean';
|
|
8
|
+
type ColorTokenKey = keyof typeof LIGHT_THEME;
|
|
9
|
+
|
|
10
|
+
declare function getTheme(variant: ThemeVariant): ThemeTokens;
|
|
11
|
+
declare function mergeTheme(base: ThemeTokens, override: Partial<ThemeTokens>): ThemeTokens;
|
|
12
|
+
declare function createCustomTheme(variant: ThemeVariant, customTokens: Partial<ThemeTokens>): ThemeTokens;
|
|
13
|
+
|
|
14
|
+
export { type ColorTokenKey as C, type ThemeTokens as T, createCustomTheme as a, type ThemeVariant as b, cn as c, getTheme as g, mergeTheme as m };
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { COMMON_THEME, DARK_THEME, LIGHT_THEME, OCEAN_THEME } from './tokens/index.mjs';
|
|
2
|
+
export { C as ColorTokenKey, T as ThemeTokens, b as ThemeVariant, c as cn, a as createCustomTheme, g as getTheme, m as mergeTheme } from './index-D3vJcNjg.mjs';
|
|
3
|
+
export { default as tailwindPreset } from './tailwind-preset/index.mjs';
|
|
4
|
+
import 'clsx';
|
|
5
|
+
import 'tailwindcss';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { COMMON_THEME, DARK_THEME, LIGHT_THEME, OCEAN_THEME } from './tokens/index.js';
|
|
2
|
+
export { C as ColorTokenKey, T as ThemeTokens, b as ThemeVariant, c as cn, a as createCustomTheme, g as getTheme, m as mergeTheme } from './index-Cjy0YM3M.js';
|
|
3
|
+
export { default as tailwindPreset } from './tailwind-preset/index.js';
|
|
4
|
+
import 'clsx';
|
|
5
|
+
import 'tailwindcss';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var clsx = require('clsx');
|
|
4
|
+
var tailwindMerge = require('tailwind-merge');
|
|
5
|
+
|
|
6
|
+
// src/tokens/colors.ts
|
|
7
|
+
var COMMON_THEME = {
|
|
8
|
+
primary: "#3648ce",
|
|
9
|
+
"primary-soft": "#dbf1ff",
|
|
10
|
+
"primary-text": "#0e415d",
|
|
11
|
+
secondary: "#7f32a9",
|
|
12
|
+
"secondary-soft": "#cec7e6",
|
|
13
|
+
"secondary-text": "#521287",
|
|
14
|
+
success: "#136600",
|
|
15
|
+
"success-soft": "#dcfce7",
|
|
16
|
+
"success-text": "#14572e",
|
|
17
|
+
warning: "#705200",
|
|
18
|
+
"warning-soft": "#fef9c3",
|
|
19
|
+
"warning-text": "#73480c",
|
|
20
|
+
error: "#a80000",
|
|
21
|
+
"error-soft": "#fee2e2",
|
|
22
|
+
"error-text": "#8b0d0d"
|
|
23
|
+
};
|
|
24
|
+
var LIGHT_THEME = {
|
|
25
|
+
background: "#fafafa",
|
|
26
|
+
surface: "#ffffff",
|
|
27
|
+
border: "#CCCCCC",
|
|
28
|
+
foreground: "#000000",
|
|
29
|
+
muted: "#555555"
|
|
30
|
+
};
|
|
31
|
+
var DARK_THEME = {
|
|
32
|
+
background: "#171717",
|
|
33
|
+
surface: "#1f1f1f",
|
|
34
|
+
border: "#3f3f46",
|
|
35
|
+
foreground: "#f1f5f9",
|
|
36
|
+
muted: "#aaaab3"
|
|
37
|
+
};
|
|
38
|
+
var OCEAN_THEME = {
|
|
39
|
+
background: "#0f172a",
|
|
40
|
+
surface: "#1e293b",
|
|
41
|
+
border: "#334155",
|
|
42
|
+
foreground: "#f1f5f9",
|
|
43
|
+
muted: "#cbd5e1"
|
|
44
|
+
};
|
|
45
|
+
function cn(...inputs) {
|
|
46
|
+
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// src/utils/theme.ts
|
|
50
|
+
function getTheme(variant) {
|
|
51
|
+
let theme = LIGHT_THEME;
|
|
52
|
+
if (variant === "dark") theme = DARK_THEME;
|
|
53
|
+
if (variant === "ocean") theme = OCEAN_THEME;
|
|
54
|
+
return { ...COMMON_THEME, ...theme };
|
|
55
|
+
}
|
|
56
|
+
function mergeTheme(base, override) {
|
|
57
|
+
const merged = { ...base };
|
|
58
|
+
for (const key of Object.keys(override)) {
|
|
59
|
+
const v = override[key];
|
|
60
|
+
if (v !== void 0) merged[key] = v;
|
|
61
|
+
}
|
|
62
|
+
return merged;
|
|
63
|
+
}
|
|
64
|
+
function createCustomTheme(variant, customTokens) {
|
|
65
|
+
const baseTheme = getTheme(variant);
|
|
66
|
+
return mergeTheme(baseTheme, customTokens);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// src/tailwind-preset/index.ts
|
|
70
|
+
var stellarPreset = {
|
|
71
|
+
theme: {
|
|
72
|
+
extend: {
|
|
73
|
+
colors: {
|
|
74
|
+
background: "var(--color-background)",
|
|
75
|
+
surface: "var(--color-surface)",
|
|
76
|
+
border: "var(--color-border)",
|
|
77
|
+
foreground: "var(--color-foreground)",
|
|
78
|
+
muted: "var(--color-muted)",
|
|
79
|
+
primary: "var(--color-primary)",
|
|
80
|
+
"primary-soft": "var(--color-primary-soft)",
|
|
81
|
+
"primary-text": "var(--color-primary-text)",
|
|
82
|
+
secondary: "var(--color-secondary)",
|
|
83
|
+
"secondary-soft": "var(--color-secondary-soft)",
|
|
84
|
+
"secondary-text": "var(--color-secondary-text)",
|
|
85
|
+
success: "var(--color-success)",
|
|
86
|
+
"success-soft": "var(--color-success-soft)",
|
|
87
|
+
"success-text": "var(--color-success-text)",
|
|
88
|
+
warning: "var(--color-warning)",
|
|
89
|
+
"warning-soft": "var(--color-warning-soft)",
|
|
90
|
+
"warning-text": "var(--color-warning-text)",
|
|
91
|
+
error: "var(--color-error)",
|
|
92
|
+
"error-soft": "var(--color-error-soft)",
|
|
93
|
+
"error-text": "var(--color-error-text)"
|
|
94
|
+
},
|
|
95
|
+
keyframes: {
|
|
96
|
+
"accordion-down": {
|
|
97
|
+
from: { height: "0" },
|
|
98
|
+
to: { height: "var(--radix-accordion-content-height)" }
|
|
99
|
+
},
|
|
100
|
+
"accordion-up": {
|
|
101
|
+
from: { height: "var(--radix-accordion-content-height)" },
|
|
102
|
+
to: { height: "0" }
|
|
103
|
+
},
|
|
104
|
+
"collapsible-down": {
|
|
105
|
+
from: { height: "0" },
|
|
106
|
+
to: { height: "var(--radix-collapsible-content-height)" }
|
|
107
|
+
},
|
|
108
|
+
"collapsible-up": {
|
|
109
|
+
from: { height: "var(--radix-collapsible-content-height)" },
|
|
110
|
+
to: { height: "0" }
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
animation: {
|
|
114
|
+
"accordion-down": "accordion-down 0.2s ease-out",
|
|
115
|
+
"accordion-up": "accordion-up 0.2s ease-out",
|
|
116
|
+
"collapsible-down": "collapsible-down 0.2s ease-out",
|
|
117
|
+
"collapsible-up": "collapsible-up 0.2s ease-out"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
var tailwind_preset_default = stellarPreset;
|
|
123
|
+
|
|
124
|
+
exports.COMMON_THEME = COMMON_THEME;
|
|
125
|
+
exports.DARK_THEME = DARK_THEME;
|
|
126
|
+
exports.LIGHT_THEME = LIGHT_THEME;
|
|
127
|
+
exports.OCEAN_THEME = OCEAN_THEME;
|
|
128
|
+
exports.cn = cn;
|
|
129
|
+
exports.createCustomTheme = createCustomTheme;
|
|
130
|
+
exports.getTheme = getTheme;
|
|
131
|
+
exports.mergeTheme = mergeTheme;
|
|
132
|
+
exports.tailwindPreset = tailwind_preset_default;
|
|
133
|
+
//# sourceMappingURL=index.js.map
|
|
134
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tokens/colors.ts","../src/utils/cn.ts","../src/utils/theme.ts","../src/tailwind-preset/index.ts"],"names":["twMerge","clsx"],"mappings":"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","file":"index.js","sourcesContent":["export const COMMON_THEME = {\n primary: '#3648ce',\n 'primary-soft': '#dbf1ff',\n 'primary-text': '#0e415d',\n\n secondary: '#7f32a9',\n 'secondary-soft': '#cec7e6',\n 'secondary-text': '#521287',\n\n success: '#136600',\n 'success-soft': '#dcfce7',\n 'success-text': '#14572e',\n\n warning: '#705200',\n 'warning-soft': '#fef9c3',\n 'warning-text': '#73480c',\n\n error: '#a80000',\n 'error-soft': '#fee2e2',\n 'error-text': '#8b0d0d',\n} as const;\n\nexport const LIGHT_THEME = {\n background: '#fafafa',\n surface: '#ffffff',\n border: '#CCCCCC',\n foreground: '#000000',\n muted: '#555555',\n} as const;\n\nexport const DARK_THEME = {\n background: '#171717',\n surface: '#1f1f1f',\n border: '#3f3f46',\n foreground: '#f1f5f9',\n muted: '#aaaab3',\n} as const;\n\nexport const OCEAN_THEME = {\n background: '#0f172a',\n surface: '#1e293b',\n border: '#334155',\n foreground: '#f1f5f9',\n muted: '#cbd5e1',\n} as const;\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import {\n COMMON_THEME,\n LIGHT_THEME,\n DARK_THEME,\n OCEAN_THEME,\n} from '../tokens/colors';\n\nimport { ThemeVariant, ThemeTokens } from '../types';\n\nexport function getTheme(variant: ThemeVariant): ThemeTokens {\n let theme: ThemeTokens = LIGHT_THEME;\n\n if (variant === 'dark') theme = DARK_THEME;\n if (variant === 'ocean') theme = OCEAN_THEME;\n\n return { ...COMMON_THEME, ...theme };\n}\n\nexport function mergeTheme(\n base: ThemeTokens,\n override: Partial<ThemeTokens>\n): ThemeTokens {\n const merged = { ...base };\n\n for (const key of Object.keys(override) as (keyof ThemeTokens)[]) {\n const v = override[key];\n if (v !== undefined) merged[key] = v;\n }\n\n return merged;\n}\n\nexport function createCustomTheme(\n variant: ThemeVariant,\n customTokens: Partial<ThemeTokens>\n): ThemeTokens {\n const baseTheme = getTheme(variant);\n return mergeTheme(baseTheme, customTokens);\n}\n","import type { Config } from 'tailwindcss';\n\nconst stellarPreset: Partial<Config> = {\n theme: {\n extend: {\n colors: {\n background: 'var(--color-background)',\n surface: 'var(--color-surface)',\n border: 'var(--color-border)',\n foreground: 'var(--color-foreground)',\n muted: 'var(--color-muted)',\n\n primary: 'var(--color-primary)',\n 'primary-soft': 'var(--color-primary-soft)',\n 'primary-text': 'var(--color-primary-text)',\n\n secondary: 'var(--color-secondary)',\n 'secondary-soft': 'var(--color-secondary-soft)',\n 'secondary-text': 'var(--color-secondary-text)',\n\n success: 'var(--color-success)',\n 'success-soft': 'var(--color-success-soft)',\n 'success-text': 'var(--color-success-text)',\n\n warning: 'var(--color-warning)',\n 'warning-soft': 'var(--color-warning-soft)',\n 'warning-text': 'var(--color-warning-text)',\n\n error: 'var(--color-error)',\n 'error-soft': 'var(--color-error-soft)',\n 'error-text': 'var(--color-error-text)',\n },\n keyframes: {\n 'accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n 'collapsible-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-collapsible-content-height)' },\n },\n 'collapsible-up': {\n from: { height: 'var(--radix-collapsible-content-height)' },\n to: { height: '0' },\n },\n },\n animation: {\n 'accordion-down': 'accordion-down 0.2s ease-out',\n 'accordion-up': 'accordion-up 0.2s ease-out',\n 'collapsible-down': 'collapsible-down 0.2s ease-out',\n 'collapsible-up': 'collapsible-up 0.2s ease-out',\n },\n },\n },\n};\n\nexport default stellarPreset;\n"]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { clsx } from 'clsx';
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
|
|
4
|
+
// src/tokens/colors.ts
|
|
5
|
+
var COMMON_THEME = {
|
|
6
|
+
primary: "#3648ce",
|
|
7
|
+
"primary-soft": "#dbf1ff",
|
|
8
|
+
"primary-text": "#0e415d",
|
|
9
|
+
secondary: "#7f32a9",
|
|
10
|
+
"secondary-soft": "#cec7e6",
|
|
11
|
+
"secondary-text": "#521287",
|
|
12
|
+
success: "#136600",
|
|
13
|
+
"success-soft": "#dcfce7",
|
|
14
|
+
"success-text": "#14572e",
|
|
15
|
+
warning: "#705200",
|
|
16
|
+
"warning-soft": "#fef9c3",
|
|
17
|
+
"warning-text": "#73480c",
|
|
18
|
+
error: "#a80000",
|
|
19
|
+
"error-soft": "#fee2e2",
|
|
20
|
+
"error-text": "#8b0d0d"
|
|
21
|
+
};
|
|
22
|
+
var LIGHT_THEME = {
|
|
23
|
+
background: "#fafafa",
|
|
24
|
+
surface: "#ffffff",
|
|
25
|
+
border: "#CCCCCC",
|
|
26
|
+
foreground: "#000000",
|
|
27
|
+
muted: "#555555"
|
|
28
|
+
};
|
|
29
|
+
var DARK_THEME = {
|
|
30
|
+
background: "#171717",
|
|
31
|
+
surface: "#1f1f1f",
|
|
32
|
+
border: "#3f3f46",
|
|
33
|
+
foreground: "#f1f5f9",
|
|
34
|
+
muted: "#aaaab3"
|
|
35
|
+
};
|
|
36
|
+
var OCEAN_THEME = {
|
|
37
|
+
background: "#0f172a",
|
|
38
|
+
surface: "#1e293b",
|
|
39
|
+
border: "#334155",
|
|
40
|
+
foreground: "#f1f5f9",
|
|
41
|
+
muted: "#cbd5e1"
|
|
42
|
+
};
|
|
43
|
+
function cn(...inputs) {
|
|
44
|
+
return twMerge(clsx(inputs));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// src/utils/theme.ts
|
|
48
|
+
function getTheme(variant) {
|
|
49
|
+
let theme = LIGHT_THEME;
|
|
50
|
+
if (variant === "dark") theme = DARK_THEME;
|
|
51
|
+
if (variant === "ocean") theme = OCEAN_THEME;
|
|
52
|
+
return { ...COMMON_THEME, ...theme };
|
|
53
|
+
}
|
|
54
|
+
function mergeTheme(base, override) {
|
|
55
|
+
const merged = { ...base };
|
|
56
|
+
for (const key of Object.keys(override)) {
|
|
57
|
+
const v = override[key];
|
|
58
|
+
if (v !== void 0) merged[key] = v;
|
|
59
|
+
}
|
|
60
|
+
return merged;
|
|
61
|
+
}
|
|
62
|
+
function createCustomTheme(variant, customTokens) {
|
|
63
|
+
const baseTheme = getTheme(variant);
|
|
64
|
+
return mergeTheme(baseTheme, customTokens);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// src/tailwind-preset/index.ts
|
|
68
|
+
var stellarPreset = {
|
|
69
|
+
theme: {
|
|
70
|
+
extend: {
|
|
71
|
+
colors: {
|
|
72
|
+
background: "var(--color-background)",
|
|
73
|
+
surface: "var(--color-surface)",
|
|
74
|
+
border: "var(--color-border)",
|
|
75
|
+
foreground: "var(--color-foreground)",
|
|
76
|
+
muted: "var(--color-muted)",
|
|
77
|
+
primary: "var(--color-primary)",
|
|
78
|
+
"primary-soft": "var(--color-primary-soft)",
|
|
79
|
+
"primary-text": "var(--color-primary-text)",
|
|
80
|
+
secondary: "var(--color-secondary)",
|
|
81
|
+
"secondary-soft": "var(--color-secondary-soft)",
|
|
82
|
+
"secondary-text": "var(--color-secondary-text)",
|
|
83
|
+
success: "var(--color-success)",
|
|
84
|
+
"success-soft": "var(--color-success-soft)",
|
|
85
|
+
"success-text": "var(--color-success-text)",
|
|
86
|
+
warning: "var(--color-warning)",
|
|
87
|
+
"warning-soft": "var(--color-warning-soft)",
|
|
88
|
+
"warning-text": "var(--color-warning-text)",
|
|
89
|
+
error: "var(--color-error)",
|
|
90
|
+
"error-soft": "var(--color-error-soft)",
|
|
91
|
+
"error-text": "var(--color-error-text)"
|
|
92
|
+
},
|
|
93
|
+
keyframes: {
|
|
94
|
+
"accordion-down": {
|
|
95
|
+
from: { height: "0" },
|
|
96
|
+
to: { height: "var(--radix-accordion-content-height)" }
|
|
97
|
+
},
|
|
98
|
+
"accordion-up": {
|
|
99
|
+
from: { height: "var(--radix-accordion-content-height)" },
|
|
100
|
+
to: { height: "0" }
|
|
101
|
+
},
|
|
102
|
+
"collapsible-down": {
|
|
103
|
+
from: { height: "0" },
|
|
104
|
+
to: { height: "var(--radix-collapsible-content-height)" }
|
|
105
|
+
},
|
|
106
|
+
"collapsible-up": {
|
|
107
|
+
from: { height: "var(--radix-collapsible-content-height)" },
|
|
108
|
+
to: { height: "0" }
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
animation: {
|
|
112
|
+
"accordion-down": "accordion-down 0.2s ease-out",
|
|
113
|
+
"accordion-up": "accordion-up 0.2s ease-out",
|
|
114
|
+
"collapsible-down": "collapsible-down 0.2s ease-out",
|
|
115
|
+
"collapsible-up": "collapsible-up 0.2s ease-out"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
var tailwind_preset_default = stellarPreset;
|
|
121
|
+
|
|
122
|
+
export { COMMON_THEME, DARK_THEME, LIGHT_THEME, OCEAN_THEME, cn, createCustomTheme, getTheme, mergeTheme, tailwind_preset_default as tailwindPreset };
|
|
123
|
+
//# sourceMappingURL=index.mjs.map
|
|
124
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tokens/colors.ts","../src/utils/cn.ts","../src/utils/theme.ts","../src/tailwind-preset/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["export const COMMON_THEME = {\n primary: '#3648ce',\n 'primary-soft': '#dbf1ff',\n 'primary-text': '#0e415d',\n\n secondary: '#7f32a9',\n 'secondary-soft': '#cec7e6',\n 'secondary-text': '#521287',\n\n success: '#136600',\n 'success-soft': '#dcfce7',\n 'success-text': '#14572e',\n\n warning: '#705200',\n 'warning-soft': '#fef9c3',\n 'warning-text': '#73480c',\n\n error: '#a80000',\n 'error-soft': '#fee2e2',\n 'error-text': '#8b0d0d',\n} as const;\n\nexport const LIGHT_THEME = {\n background: '#fafafa',\n surface: '#ffffff',\n border: '#CCCCCC',\n foreground: '#000000',\n muted: '#555555',\n} as const;\n\nexport const DARK_THEME = {\n background: '#171717',\n surface: '#1f1f1f',\n border: '#3f3f46',\n foreground: '#f1f5f9',\n muted: '#aaaab3',\n} as const;\n\nexport const OCEAN_THEME = {\n background: '#0f172a',\n surface: '#1e293b',\n border: '#334155',\n foreground: '#f1f5f9',\n muted: '#cbd5e1',\n} as const;\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import {\n COMMON_THEME,\n LIGHT_THEME,\n DARK_THEME,\n OCEAN_THEME,\n} from '../tokens/colors';\n\nimport { ThemeVariant, ThemeTokens } from '../types';\n\nexport function getTheme(variant: ThemeVariant): ThemeTokens {\n let theme: ThemeTokens = LIGHT_THEME;\n\n if (variant === 'dark') theme = DARK_THEME;\n if (variant === 'ocean') theme = OCEAN_THEME;\n\n return { ...COMMON_THEME, ...theme };\n}\n\nexport function mergeTheme(\n base: ThemeTokens,\n override: Partial<ThemeTokens>\n): ThemeTokens {\n const merged = { ...base };\n\n for (const key of Object.keys(override) as (keyof ThemeTokens)[]) {\n const v = override[key];\n if (v !== undefined) merged[key] = v;\n }\n\n return merged;\n}\n\nexport function createCustomTheme(\n variant: ThemeVariant,\n customTokens: Partial<ThemeTokens>\n): ThemeTokens {\n const baseTheme = getTheme(variant);\n return mergeTheme(baseTheme, customTokens);\n}\n","import type { Config } from 'tailwindcss';\n\nconst stellarPreset: Partial<Config> = {\n theme: {\n extend: {\n colors: {\n background: 'var(--color-background)',\n surface: 'var(--color-surface)',\n border: 'var(--color-border)',\n foreground: 'var(--color-foreground)',\n muted: 'var(--color-muted)',\n\n primary: 'var(--color-primary)',\n 'primary-soft': 'var(--color-primary-soft)',\n 'primary-text': 'var(--color-primary-text)',\n\n secondary: 'var(--color-secondary)',\n 'secondary-soft': 'var(--color-secondary-soft)',\n 'secondary-text': 'var(--color-secondary-text)',\n\n success: 'var(--color-success)',\n 'success-soft': 'var(--color-success-soft)',\n 'success-text': 'var(--color-success-text)',\n\n warning: 'var(--color-warning)',\n 'warning-soft': 'var(--color-warning-soft)',\n 'warning-text': 'var(--color-warning-text)',\n\n error: 'var(--color-error)',\n 'error-soft': 'var(--color-error-soft)',\n 'error-text': 'var(--color-error-text)',\n },\n keyframes: {\n 'accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n 'collapsible-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-collapsible-content-height)' },\n },\n 'collapsible-up': {\n from: { height: 'var(--radix-collapsible-content-height)' },\n to: { height: '0' },\n },\n },\n animation: {\n 'accordion-down': 'accordion-down 0.2s ease-out',\n 'accordion-up': 'accordion-up 0.2s ease-out',\n 'collapsible-down': 'collapsible-down 0.2s ease-out',\n 'collapsible-up': 'collapsible-up 0.2s ease-out',\n },\n },\n },\n};\n\nexport default stellarPreset;\n"]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/tailwind-preset/index.ts
|
|
4
|
+
var stellarPreset = {
|
|
5
|
+
theme: {
|
|
6
|
+
extend: {
|
|
7
|
+
colors: {
|
|
8
|
+
background: "var(--color-background)",
|
|
9
|
+
surface: "var(--color-surface)",
|
|
10
|
+
border: "var(--color-border)",
|
|
11
|
+
foreground: "var(--color-foreground)",
|
|
12
|
+
muted: "var(--color-muted)",
|
|
13
|
+
primary: "var(--color-primary)",
|
|
14
|
+
"primary-soft": "var(--color-primary-soft)",
|
|
15
|
+
"primary-text": "var(--color-primary-text)",
|
|
16
|
+
secondary: "var(--color-secondary)",
|
|
17
|
+
"secondary-soft": "var(--color-secondary-soft)",
|
|
18
|
+
"secondary-text": "var(--color-secondary-text)",
|
|
19
|
+
success: "var(--color-success)",
|
|
20
|
+
"success-soft": "var(--color-success-soft)",
|
|
21
|
+
"success-text": "var(--color-success-text)",
|
|
22
|
+
warning: "var(--color-warning)",
|
|
23
|
+
"warning-soft": "var(--color-warning-soft)",
|
|
24
|
+
"warning-text": "var(--color-warning-text)",
|
|
25
|
+
error: "var(--color-error)",
|
|
26
|
+
"error-soft": "var(--color-error-soft)",
|
|
27
|
+
"error-text": "var(--color-error-text)"
|
|
28
|
+
},
|
|
29
|
+
keyframes: {
|
|
30
|
+
"accordion-down": {
|
|
31
|
+
from: { height: "0" },
|
|
32
|
+
to: { height: "var(--radix-accordion-content-height)" }
|
|
33
|
+
},
|
|
34
|
+
"accordion-up": {
|
|
35
|
+
from: { height: "var(--radix-accordion-content-height)" },
|
|
36
|
+
to: { height: "0" }
|
|
37
|
+
},
|
|
38
|
+
"collapsible-down": {
|
|
39
|
+
from: { height: "0" },
|
|
40
|
+
to: { height: "var(--radix-collapsible-content-height)" }
|
|
41
|
+
},
|
|
42
|
+
"collapsible-up": {
|
|
43
|
+
from: { height: "var(--radix-collapsible-content-height)" },
|
|
44
|
+
to: { height: "0" }
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
animation: {
|
|
48
|
+
"accordion-down": "accordion-down 0.2s ease-out",
|
|
49
|
+
"accordion-up": "accordion-up 0.2s ease-out",
|
|
50
|
+
"collapsible-down": "collapsible-down 0.2s ease-out",
|
|
51
|
+
"collapsible-up": "collapsible-up 0.2s ease-out"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
var tailwind_preset_default = stellarPreset;
|
|
57
|
+
|
|
58
|
+
module.exports = tailwind_preset_default;
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tailwind-preset/index.ts"],"names":[],"mappings":";;;AAEA,IAAM,aAAA,GAAiC;AAAA,EACrC,KAAA,EAAO;AAAA,IACL,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,UAAA,EAAY,yBAAA;AAAA,QACZ,OAAA,EAAS,sBAAA;AAAA,QACT,MAAA,EAAQ,qBAAA;AAAA,QACR,UAAA,EAAY,yBAAA;AAAA,QACZ,KAAA,EAAO,oBAAA;AAAA,QAEP,OAAA,EAAS,sBAAA;AAAA,QACT,cAAA,EAAgB,2BAAA;AAAA,QAChB,cAAA,EAAgB,2BAAA;AAAA,QAEhB,SAAA,EAAW,wBAAA;AAAA,QACX,gBAAA,EAAkB,6BAAA;AAAA,QAClB,gBAAA,EAAkB,6BAAA;AAAA,QAElB,OAAA,EAAS,sBAAA;AAAA,QACT,cAAA,EAAgB,2BAAA;AAAA,QAChB,cAAA,EAAgB,2BAAA;AAAA,QAEhB,OAAA,EAAS,sBAAA;AAAA,QACT,cAAA,EAAgB,2BAAA;AAAA,QAChB,cAAA,EAAgB,2BAAA;AAAA,QAEhB,KAAA,EAAO,oBAAA;AAAA,QACP,YAAA,EAAc,yBAAA;AAAA,QACd,YAAA,EAAc;AAAA,OAChB;AAAA,MACA,SAAA,EAAW;AAAA,QACT,gBAAA,EAAkB;AAAA,UAChB,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAA,EAAI;AAAA,UACpB,EAAA,EAAI,EAAE,MAAA,EAAQ,uCAAA;AAAwC,SACxD;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,IAAA,EAAM,EAAE,MAAA,EAAQ,uCAAA,EAAwC;AAAA,UACxD,EAAA,EAAI,EAAE,MAAA,EAAQ,GAAA;AAAI,SACpB;AAAA,QACA,kBAAA,EAAoB;AAAA,UAClB,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAA,EAAI;AAAA,UACpB,EAAA,EAAI,EAAE,MAAA,EAAQ,yCAAA;AAA0C,SAC1D;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,IAAA,EAAM,EAAE,MAAA,EAAQ,yCAAA,EAA0C;AAAA,UAC1D,EAAA,EAAI,EAAE,MAAA,EAAQ,GAAA;AAAI;AACpB,OACF;AAAA,MACA,SAAA,EAAW;AAAA,QACT,gBAAA,EAAkB,8BAAA;AAAA,QAClB,cAAA,EAAgB,4BAAA;AAAA,QAChB,kBAAA,EAAoB,gCAAA;AAAA,QACpB,gBAAA,EAAkB;AAAA;AACpB;AACF;AAEJ,CAAA;AAEA,IAAO,uBAAA,GAAQ","file":"index.js","sourcesContent":["import type { Config } from 'tailwindcss';\n\nconst stellarPreset: Partial<Config> = {\n theme: {\n extend: {\n colors: {\n background: 'var(--color-background)',\n surface: 'var(--color-surface)',\n border: 'var(--color-border)',\n foreground: 'var(--color-foreground)',\n muted: 'var(--color-muted)',\n\n primary: 'var(--color-primary)',\n 'primary-soft': 'var(--color-primary-soft)',\n 'primary-text': 'var(--color-primary-text)',\n\n secondary: 'var(--color-secondary)',\n 'secondary-soft': 'var(--color-secondary-soft)',\n 'secondary-text': 'var(--color-secondary-text)',\n\n success: 'var(--color-success)',\n 'success-soft': 'var(--color-success-soft)',\n 'success-text': 'var(--color-success-text)',\n\n warning: 'var(--color-warning)',\n 'warning-soft': 'var(--color-warning-soft)',\n 'warning-text': 'var(--color-warning-text)',\n\n error: 'var(--color-error)',\n 'error-soft': 'var(--color-error-soft)',\n 'error-text': 'var(--color-error-text)',\n },\n keyframes: {\n 'accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n 'collapsible-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-collapsible-content-height)' },\n },\n 'collapsible-up': {\n from: { height: 'var(--radix-collapsible-content-height)' },\n to: { height: '0' },\n },\n },\n animation: {\n 'accordion-down': 'accordion-down 0.2s ease-out',\n 'accordion-up': 'accordion-up 0.2s ease-out',\n 'collapsible-down': 'collapsible-down 0.2s ease-out',\n 'collapsible-up': 'collapsible-up 0.2s ease-out',\n },\n },\n },\n};\n\nexport default stellarPreset;\n"]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// src/tailwind-preset/index.ts
|
|
2
|
+
var stellarPreset = {
|
|
3
|
+
theme: {
|
|
4
|
+
extend: {
|
|
5
|
+
colors: {
|
|
6
|
+
background: "var(--color-background)",
|
|
7
|
+
surface: "var(--color-surface)",
|
|
8
|
+
border: "var(--color-border)",
|
|
9
|
+
foreground: "var(--color-foreground)",
|
|
10
|
+
muted: "var(--color-muted)",
|
|
11
|
+
primary: "var(--color-primary)",
|
|
12
|
+
"primary-soft": "var(--color-primary-soft)",
|
|
13
|
+
"primary-text": "var(--color-primary-text)",
|
|
14
|
+
secondary: "var(--color-secondary)",
|
|
15
|
+
"secondary-soft": "var(--color-secondary-soft)",
|
|
16
|
+
"secondary-text": "var(--color-secondary-text)",
|
|
17
|
+
success: "var(--color-success)",
|
|
18
|
+
"success-soft": "var(--color-success-soft)",
|
|
19
|
+
"success-text": "var(--color-success-text)",
|
|
20
|
+
warning: "var(--color-warning)",
|
|
21
|
+
"warning-soft": "var(--color-warning-soft)",
|
|
22
|
+
"warning-text": "var(--color-warning-text)",
|
|
23
|
+
error: "var(--color-error)",
|
|
24
|
+
"error-soft": "var(--color-error-soft)",
|
|
25
|
+
"error-text": "var(--color-error-text)"
|
|
26
|
+
},
|
|
27
|
+
keyframes: {
|
|
28
|
+
"accordion-down": {
|
|
29
|
+
from: { height: "0" },
|
|
30
|
+
to: { height: "var(--radix-accordion-content-height)" }
|
|
31
|
+
},
|
|
32
|
+
"accordion-up": {
|
|
33
|
+
from: { height: "var(--radix-accordion-content-height)" },
|
|
34
|
+
to: { height: "0" }
|
|
35
|
+
},
|
|
36
|
+
"collapsible-down": {
|
|
37
|
+
from: { height: "0" },
|
|
38
|
+
to: { height: "var(--radix-collapsible-content-height)" }
|
|
39
|
+
},
|
|
40
|
+
"collapsible-up": {
|
|
41
|
+
from: { height: "var(--radix-collapsible-content-height)" },
|
|
42
|
+
to: { height: "0" }
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
animation: {
|
|
46
|
+
"accordion-down": "accordion-down 0.2s ease-out",
|
|
47
|
+
"accordion-up": "accordion-up 0.2s ease-out",
|
|
48
|
+
"collapsible-down": "collapsible-down 0.2s ease-out",
|
|
49
|
+
"collapsible-up": "collapsible-up 0.2s ease-out"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
var tailwind_preset_default = stellarPreset;
|
|
55
|
+
|
|
56
|
+
export { tailwind_preset_default as default };
|
|
57
|
+
//# sourceMappingURL=index.mjs.map
|
|
58
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tailwind-preset/index.ts"],"names":[],"mappings":";AAEA,IAAM,aAAA,GAAiC;AAAA,EACrC,KAAA,EAAO;AAAA,IACL,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,UAAA,EAAY,yBAAA;AAAA,QACZ,OAAA,EAAS,sBAAA;AAAA,QACT,MAAA,EAAQ,qBAAA;AAAA,QACR,UAAA,EAAY,yBAAA;AAAA,QACZ,KAAA,EAAO,oBAAA;AAAA,QAEP,OAAA,EAAS,sBAAA;AAAA,QACT,cAAA,EAAgB,2BAAA;AAAA,QAChB,cAAA,EAAgB,2BAAA;AAAA,QAEhB,SAAA,EAAW,wBAAA;AAAA,QACX,gBAAA,EAAkB,6BAAA;AAAA,QAClB,gBAAA,EAAkB,6BAAA;AAAA,QAElB,OAAA,EAAS,sBAAA;AAAA,QACT,cAAA,EAAgB,2BAAA;AAAA,QAChB,cAAA,EAAgB,2BAAA;AAAA,QAEhB,OAAA,EAAS,sBAAA;AAAA,QACT,cAAA,EAAgB,2BAAA;AAAA,QAChB,cAAA,EAAgB,2BAAA;AAAA,QAEhB,KAAA,EAAO,oBAAA;AAAA,QACP,YAAA,EAAc,yBAAA;AAAA,QACd,YAAA,EAAc;AAAA,OAChB;AAAA,MACA,SAAA,EAAW;AAAA,QACT,gBAAA,EAAkB;AAAA,UAChB,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAA,EAAI;AAAA,UACpB,EAAA,EAAI,EAAE,MAAA,EAAQ,uCAAA;AAAwC,SACxD;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,IAAA,EAAM,EAAE,MAAA,EAAQ,uCAAA,EAAwC;AAAA,UACxD,EAAA,EAAI,EAAE,MAAA,EAAQ,GAAA;AAAI,SACpB;AAAA,QACA,kBAAA,EAAoB;AAAA,UAClB,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAA,EAAI;AAAA,UACpB,EAAA,EAAI,EAAE,MAAA,EAAQ,yCAAA;AAA0C,SAC1D;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,IAAA,EAAM,EAAE,MAAA,EAAQ,yCAAA,EAA0C;AAAA,UAC1D,EAAA,EAAI,EAAE,MAAA,EAAQ,GAAA;AAAI;AACpB,OACF;AAAA,MACA,SAAA,EAAW;AAAA,QACT,gBAAA,EAAkB,8BAAA;AAAA,QAClB,cAAA,EAAgB,4BAAA;AAAA,QAChB,kBAAA,EAAoB,gCAAA;AAAA,QACpB,gBAAA,EAAkB;AAAA;AACpB;AACF;AAEJ,CAAA;AAEA,IAAO,uBAAA,GAAQ","file":"index.mjs","sourcesContent":["import type { Config } from 'tailwindcss';\n\nconst stellarPreset: Partial<Config> = {\n theme: {\n extend: {\n colors: {\n background: 'var(--color-background)',\n surface: 'var(--color-surface)',\n border: 'var(--color-border)',\n foreground: 'var(--color-foreground)',\n muted: 'var(--color-muted)',\n\n primary: 'var(--color-primary)',\n 'primary-soft': 'var(--color-primary-soft)',\n 'primary-text': 'var(--color-primary-text)',\n\n secondary: 'var(--color-secondary)',\n 'secondary-soft': 'var(--color-secondary-soft)',\n 'secondary-text': 'var(--color-secondary-text)',\n\n success: 'var(--color-success)',\n 'success-soft': 'var(--color-success-soft)',\n 'success-text': 'var(--color-success-text)',\n\n warning: 'var(--color-warning)',\n 'warning-soft': 'var(--color-warning-soft)',\n 'warning-text': 'var(--color-warning-text)',\n\n error: 'var(--color-error)',\n 'error-soft': 'var(--color-error-soft)',\n 'error-text': 'var(--color-error-text)',\n },\n keyframes: {\n 'accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n 'collapsible-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-collapsible-content-height)' },\n },\n 'collapsible-up': {\n from: { height: 'var(--radix-collapsible-content-height)' },\n to: { height: '0' },\n },\n },\n animation: {\n 'accordion-down': 'accordion-down 0.2s ease-out',\n 'accordion-up': 'accordion-up 0.2s ease-out',\n 'collapsible-down': 'collapsible-down 0.2s ease-out',\n 'collapsible-up': 'collapsible-up 0.2s ease-out',\n },\n },\n },\n};\n\nexport default stellarPreset;\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
declare const COMMON_THEME: {
|
|
2
|
+
readonly primary: "#3648ce";
|
|
3
|
+
readonly 'primary-soft': "#dbf1ff";
|
|
4
|
+
readonly 'primary-text': "#0e415d";
|
|
5
|
+
readonly secondary: "#7f32a9";
|
|
6
|
+
readonly 'secondary-soft': "#cec7e6";
|
|
7
|
+
readonly 'secondary-text': "#521287";
|
|
8
|
+
readonly success: "#136600";
|
|
9
|
+
readonly 'success-soft': "#dcfce7";
|
|
10
|
+
readonly 'success-text': "#14572e";
|
|
11
|
+
readonly warning: "#705200";
|
|
12
|
+
readonly 'warning-soft': "#fef9c3";
|
|
13
|
+
readonly 'warning-text': "#73480c";
|
|
14
|
+
readonly error: "#a80000";
|
|
15
|
+
readonly 'error-soft': "#fee2e2";
|
|
16
|
+
readonly 'error-text': "#8b0d0d";
|
|
17
|
+
};
|
|
18
|
+
declare const LIGHT_THEME: {
|
|
19
|
+
readonly background: "#fafafa";
|
|
20
|
+
readonly surface: "#ffffff";
|
|
21
|
+
readonly border: "#CCCCCC";
|
|
22
|
+
readonly foreground: "#000000";
|
|
23
|
+
readonly muted: "#555555";
|
|
24
|
+
};
|
|
25
|
+
declare const DARK_THEME: {
|
|
26
|
+
readonly background: "#171717";
|
|
27
|
+
readonly surface: "#1f1f1f";
|
|
28
|
+
readonly border: "#3f3f46";
|
|
29
|
+
readonly foreground: "#f1f5f9";
|
|
30
|
+
readonly muted: "#aaaab3";
|
|
31
|
+
};
|
|
32
|
+
declare const OCEAN_THEME: {
|
|
33
|
+
readonly background: "#0f172a";
|
|
34
|
+
readonly surface: "#1e293b";
|
|
35
|
+
readonly border: "#334155";
|
|
36
|
+
readonly foreground: "#f1f5f9";
|
|
37
|
+
readonly muted: "#cbd5e1";
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export { COMMON_THEME, DARK_THEME, LIGHT_THEME, OCEAN_THEME };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
declare const COMMON_THEME: {
|
|
2
|
+
readonly primary: "#3648ce";
|
|
3
|
+
readonly 'primary-soft': "#dbf1ff";
|
|
4
|
+
readonly 'primary-text': "#0e415d";
|
|
5
|
+
readonly secondary: "#7f32a9";
|
|
6
|
+
readonly 'secondary-soft': "#cec7e6";
|
|
7
|
+
readonly 'secondary-text': "#521287";
|
|
8
|
+
readonly success: "#136600";
|
|
9
|
+
readonly 'success-soft': "#dcfce7";
|
|
10
|
+
readonly 'success-text': "#14572e";
|
|
11
|
+
readonly warning: "#705200";
|
|
12
|
+
readonly 'warning-soft': "#fef9c3";
|
|
13
|
+
readonly 'warning-text': "#73480c";
|
|
14
|
+
readonly error: "#a80000";
|
|
15
|
+
readonly 'error-soft': "#fee2e2";
|
|
16
|
+
readonly 'error-text': "#8b0d0d";
|
|
17
|
+
};
|
|
18
|
+
declare const LIGHT_THEME: {
|
|
19
|
+
readonly background: "#fafafa";
|
|
20
|
+
readonly surface: "#ffffff";
|
|
21
|
+
readonly border: "#CCCCCC";
|
|
22
|
+
readonly foreground: "#000000";
|
|
23
|
+
readonly muted: "#555555";
|
|
24
|
+
};
|
|
25
|
+
declare const DARK_THEME: {
|
|
26
|
+
readonly background: "#171717";
|
|
27
|
+
readonly surface: "#1f1f1f";
|
|
28
|
+
readonly border: "#3f3f46";
|
|
29
|
+
readonly foreground: "#f1f5f9";
|
|
30
|
+
readonly muted: "#aaaab3";
|
|
31
|
+
};
|
|
32
|
+
declare const OCEAN_THEME: {
|
|
33
|
+
readonly background: "#0f172a";
|
|
34
|
+
readonly surface: "#1e293b";
|
|
35
|
+
readonly border: "#334155";
|
|
36
|
+
readonly foreground: "#f1f5f9";
|
|
37
|
+
readonly muted: "#cbd5e1";
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export { COMMON_THEME, DARK_THEME, LIGHT_THEME, OCEAN_THEME };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/tokens/colors.ts
|
|
4
|
+
var COMMON_THEME = {
|
|
5
|
+
primary: "#3648ce",
|
|
6
|
+
"primary-soft": "#dbf1ff",
|
|
7
|
+
"primary-text": "#0e415d",
|
|
8
|
+
secondary: "#7f32a9",
|
|
9
|
+
"secondary-soft": "#cec7e6",
|
|
10
|
+
"secondary-text": "#521287",
|
|
11
|
+
success: "#136600",
|
|
12
|
+
"success-soft": "#dcfce7",
|
|
13
|
+
"success-text": "#14572e",
|
|
14
|
+
warning: "#705200",
|
|
15
|
+
"warning-soft": "#fef9c3",
|
|
16
|
+
"warning-text": "#73480c",
|
|
17
|
+
error: "#a80000",
|
|
18
|
+
"error-soft": "#fee2e2",
|
|
19
|
+
"error-text": "#8b0d0d"
|
|
20
|
+
};
|
|
21
|
+
var LIGHT_THEME = {
|
|
22
|
+
background: "#fafafa",
|
|
23
|
+
surface: "#ffffff",
|
|
24
|
+
border: "#CCCCCC",
|
|
25
|
+
foreground: "#000000",
|
|
26
|
+
muted: "#555555"
|
|
27
|
+
};
|
|
28
|
+
var DARK_THEME = {
|
|
29
|
+
background: "#171717",
|
|
30
|
+
surface: "#1f1f1f",
|
|
31
|
+
border: "#3f3f46",
|
|
32
|
+
foreground: "#f1f5f9",
|
|
33
|
+
muted: "#aaaab3"
|
|
34
|
+
};
|
|
35
|
+
var OCEAN_THEME = {
|
|
36
|
+
background: "#0f172a",
|
|
37
|
+
surface: "#1e293b",
|
|
38
|
+
border: "#334155",
|
|
39
|
+
foreground: "#f1f5f9",
|
|
40
|
+
muted: "#cbd5e1"
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.COMMON_THEME = COMMON_THEME;
|
|
44
|
+
exports.DARK_THEME = DARK_THEME;
|
|
45
|
+
exports.LIGHT_THEME = LIGHT_THEME;
|
|
46
|
+
exports.OCEAN_THEME = OCEAN_THEME;
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tokens/colors.ts"],"names":[],"mappings":";;;AAAO,IAAM,YAAA,GAAe;AAAA,EAC1B,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,SAAA,EAAW,SAAA;AAAA,EACX,gBAAA,EAAkB,SAAA;AAAA,EAClB,gBAAA,EAAkB,SAAA;AAAA,EAElB,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,KAAA,EAAO,SAAA;AAAA,EACP,YAAA,EAAc,SAAA;AAAA,EACd,YAAA,EAAc;AAChB;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT","file":"index.js","sourcesContent":["export const COMMON_THEME = {\n primary: '#3648ce',\n 'primary-soft': '#dbf1ff',\n 'primary-text': '#0e415d',\n\n secondary: '#7f32a9',\n 'secondary-soft': '#cec7e6',\n 'secondary-text': '#521287',\n\n success: '#136600',\n 'success-soft': '#dcfce7',\n 'success-text': '#14572e',\n\n warning: '#705200',\n 'warning-soft': '#fef9c3',\n 'warning-text': '#73480c',\n\n error: '#a80000',\n 'error-soft': '#fee2e2',\n 'error-text': '#8b0d0d',\n} as const;\n\nexport const LIGHT_THEME = {\n background: '#fafafa',\n surface: '#ffffff',\n border: '#CCCCCC',\n foreground: '#000000',\n muted: '#555555',\n} as const;\n\nexport const DARK_THEME = {\n background: '#171717',\n surface: '#1f1f1f',\n border: '#3f3f46',\n foreground: '#f1f5f9',\n muted: '#aaaab3',\n} as const;\n\nexport const OCEAN_THEME = {\n background: '#0f172a',\n surface: '#1e293b',\n border: '#334155',\n foreground: '#f1f5f9',\n muted: '#cbd5e1',\n} as const;\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// src/tokens/colors.ts
|
|
2
|
+
var COMMON_THEME = {
|
|
3
|
+
primary: "#3648ce",
|
|
4
|
+
"primary-soft": "#dbf1ff",
|
|
5
|
+
"primary-text": "#0e415d",
|
|
6
|
+
secondary: "#7f32a9",
|
|
7
|
+
"secondary-soft": "#cec7e6",
|
|
8
|
+
"secondary-text": "#521287",
|
|
9
|
+
success: "#136600",
|
|
10
|
+
"success-soft": "#dcfce7",
|
|
11
|
+
"success-text": "#14572e",
|
|
12
|
+
warning: "#705200",
|
|
13
|
+
"warning-soft": "#fef9c3",
|
|
14
|
+
"warning-text": "#73480c",
|
|
15
|
+
error: "#a80000",
|
|
16
|
+
"error-soft": "#fee2e2",
|
|
17
|
+
"error-text": "#8b0d0d"
|
|
18
|
+
};
|
|
19
|
+
var LIGHT_THEME = {
|
|
20
|
+
background: "#fafafa",
|
|
21
|
+
surface: "#ffffff",
|
|
22
|
+
border: "#CCCCCC",
|
|
23
|
+
foreground: "#000000",
|
|
24
|
+
muted: "#555555"
|
|
25
|
+
};
|
|
26
|
+
var DARK_THEME = {
|
|
27
|
+
background: "#171717",
|
|
28
|
+
surface: "#1f1f1f",
|
|
29
|
+
border: "#3f3f46",
|
|
30
|
+
foreground: "#f1f5f9",
|
|
31
|
+
muted: "#aaaab3"
|
|
32
|
+
};
|
|
33
|
+
var OCEAN_THEME = {
|
|
34
|
+
background: "#0f172a",
|
|
35
|
+
surface: "#1e293b",
|
|
36
|
+
border: "#334155",
|
|
37
|
+
foreground: "#f1f5f9",
|
|
38
|
+
muted: "#cbd5e1"
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { COMMON_THEME, DARK_THEME, LIGHT_THEME, OCEAN_THEME };
|
|
42
|
+
//# sourceMappingURL=index.mjs.map
|
|
43
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tokens/colors.ts"],"names":[],"mappings":";AAAO,IAAM,YAAA,GAAe;AAAA,EAC1B,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,SAAA,EAAW,SAAA;AAAA,EACX,gBAAA,EAAkB,SAAA;AAAA,EAClB,gBAAA,EAAkB,SAAA;AAAA,EAElB,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,KAAA,EAAO,SAAA;AAAA,EACP,YAAA,EAAc,SAAA;AAAA,EACd,YAAA,EAAc;AAChB;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT","file":"index.mjs","sourcesContent":["export const COMMON_THEME = {\n primary: '#3648ce',\n 'primary-soft': '#dbf1ff',\n 'primary-text': '#0e415d',\n\n secondary: '#7f32a9',\n 'secondary-soft': '#cec7e6',\n 'secondary-text': '#521287',\n\n success: '#136600',\n 'success-soft': '#dcfce7',\n 'success-text': '#14572e',\n\n warning: '#705200',\n 'warning-soft': '#fef9c3',\n 'warning-text': '#73480c',\n\n error: '#a80000',\n 'error-soft': '#fee2e2',\n 'error-text': '#8b0d0d',\n} as const;\n\nexport const LIGHT_THEME = {\n background: '#fafafa',\n surface: '#ffffff',\n border: '#CCCCCC',\n foreground: '#000000',\n muted: '#555555',\n} as const;\n\nexport const DARK_THEME = {\n background: '#171717',\n surface: '#1f1f1f',\n border: '#3f3f46',\n foreground: '#f1f5f9',\n muted: '#aaaab3',\n} as const;\n\nexport const OCEAN_THEME = {\n background: '#0f172a',\n surface: '#1e293b',\n border: '#334155',\n foreground: '#f1f5f9',\n muted: '#cbd5e1',\n} as const;\n"]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var clsx = require('clsx');
|
|
4
|
+
var tailwindMerge = require('tailwind-merge');
|
|
5
|
+
|
|
6
|
+
// src/utils/cn.ts
|
|
7
|
+
function cn(...inputs) {
|
|
8
|
+
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// src/tokens/colors.ts
|
|
12
|
+
var COMMON_THEME = {
|
|
13
|
+
primary: "#3648ce",
|
|
14
|
+
"primary-soft": "#dbf1ff",
|
|
15
|
+
"primary-text": "#0e415d",
|
|
16
|
+
secondary: "#7f32a9",
|
|
17
|
+
"secondary-soft": "#cec7e6",
|
|
18
|
+
"secondary-text": "#521287",
|
|
19
|
+
success: "#136600",
|
|
20
|
+
"success-soft": "#dcfce7",
|
|
21
|
+
"success-text": "#14572e",
|
|
22
|
+
warning: "#705200",
|
|
23
|
+
"warning-soft": "#fef9c3",
|
|
24
|
+
"warning-text": "#73480c",
|
|
25
|
+
error: "#a80000",
|
|
26
|
+
"error-soft": "#fee2e2",
|
|
27
|
+
"error-text": "#8b0d0d"
|
|
28
|
+
};
|
|
29
|
+
var LIGHT_THEME = {
|
|
30
|
+
background: "#fafafa",
|
|
31
|
+
surface: "#ffffff",
|
|
32
|
+
border: "#CCCCCC",
|
|
33
|
+
foreground: "#000000",
|
|
34
|
+
muted: "#555555"
|
|
35
|
+
};
|
|
36
|
+
var DARK_THEME = {
|
|
37
|
+
background: "#171717",
|
|
38
|
+
surface: "#1f1f1f",
|
|
39
|
+
border: "#3f3f46",
|
|
40
|
+
foreground: "#f1f5f9",
|
|
41
|
+
muted: "#aaaab3"
|
|
42
|
+
};
|
|
43
|
+
var OCEAN_THEME = {
|
|
44
|
+
background: "#0f172a",
|
|
45
|
+
surface: "#1e293b",
|
|
46
|
+
border: "#334155",
|
|
47
|
+
foreground: "#f1f5f9",
|
|
48
|
+
muted: "#cbd5e1"
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// src/utils/theme.ts
|
|
52
|
+
function getTheme(variant) {
|
|
53
|
+
let theme = LIGHT_THEME;
|
|
54
|
+
if (variant === "dark") theme = DARK_THEME;
|
|
55
|
+
if (variant === "ocean") theme = OCEAN_THEME;
|
|
56
|
+
return { ...COMMON_THEME, ...theme };
|
|
57
|
+
}
|
|
58
|
+
function mergeTheme(base, override) {
|
|
59
|
+
const merged = { ...base };
|
|
60
|
+
for (const key of Object.keys(override)) {
|
|
61
|
+
const v = override[key];
|
|
62
|
+
if (v !== void 0) merged[key] = v;
|
|
63
|
+
}
|
|
64
|
+
return merged;
|
|
65
|
+
}
|
|
66
|
+
function createCustomTheme(variant, customTokens) {
|
|
67
|
+
const baseTheme = getTheme(variant);
|
|
68
|
+
return mergeTheme(baseTheme, customTokens);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
exports.cn = cn;
|
|
72
|
+
exports.createCustomTheme = createCustomTheme;
|
|
73
|
+
exports.getTheme = getTheme;
|
|
74
|
+
exports.mergeTheme = mergeTheme;
|
|
75
|
+
//# sourceMappingURL=index.js.map
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/cn.ts","../../src/tokens/colors.ts","../../src/utils/theme.ts"],"names":["twMerge","clsx"],"mappings":";;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAOA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;;;ACLO,IAAM,YAAA,GAAe;AAAA,EAC1B,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,SAAA,EAAW,SAAA;AAAA,EACX,gBAAA,EAAkB,SAAA;AAAA,EAClB,gBAAA,EAAkB,SAAA;AAAA,EAElB,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,KAAA,EAAO,SAAA;AAAA,EACP,YAAA,EAAc,SAAA;AAAA,EACd,YAAA,EAAc;AAChB,CAAA;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT,CAAA;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT,CAAA;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT,CAAA;;;ACnCO,SAAS,SAAS,OAAA,EAAoC;AAC3D,EAAA,IAAI,KAAA,GAAqB,WAAA;AAEzB,EAAA,IAAI,OAAA,KAAY,QAAQ,KAAA,GAAQ,UAAA;AAChC,EAAA,IAAI,OAAA,KAAY,SAAS,KAAA,GAAQ,WAAA;AAEjC,EAAA,OAAO,EAAE,GAAG,YAAA,EAAc,GAAG,KAAA,EAAM;AACrC;AAEO,SAAS,UAAA,CACd,MACA,QAAA,EACa;AACb,EAAA,MAAM,MAAA,GAAS,EAAE,GAAG,IAAA,EAAK;AAEzB,EAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,EAA4B;AAChE,IAAA,MAAM,CAAA,GAAI,SAAS,GAAG,CAAA;AACtB,IAAA,IAAI,CAAA,KAAM,MAAA,EAAW,MAAA,CAAO,GAAG,CAAA,GAAI,CAAA;AAAA,EACrC;AAEA,EAAA,OAAO,MAAA;AACT;AAEO,SAAS,iBAAA,CACd,SACA,YAAA,EACa;AACb,EAAA,MAAM,SAAA,GAAY,SAAS,OAAO,CAAA;AAClC,EAAA,OAAO,UAAA,CAAW,WAAW,YAAY,CAAA;AAC3C","file":"index.js","sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export const COMMON_THEME = {\n primary: '#3648ce',\n 'primary-soft': '#dbf1ff',\n 'primary-text': '#0e415d',\n\n secondary: '#7f32a9',\n 'secondary-soft': '#cec7e6',\n 'secondary-text': '#521287',\n\n success: '#136600',\n 'success-soft': '#dcfce7',\n 'success-text': '#14572e',\n\n warning: '#705200',\n 'warning-soft': '#fef9c3',\n 'warning-text': '#73480c',\n\n error: '#a80000',\n 'error-soft': '#fee2e2',\n 'error-text': '#8b0d0d',\n} as const;\n\nexport const LIGHT_THEME = {\n background: '#fafafa',\n surface: '#ffffff',\n border: '#CCCCCC',\n foreground: '#000000',\n muted: '#555555',\n} as const;\n\nexport const DARK_THEME = {\n background: '#171717',\n surface: '#1f1f1f',\n border: '#3f3f46',\n foreground: '#f1f5f9',\n muted: '#aaaab3',\n} as const;\n\nexport const OCEAN_THEME = {\n background: '#0f172a',\n surface: '#1e293b',\n border: '#334155',\n foreground: '#f1f5f9',\n muted: '#cbd5e1',\n} as const;\n","import {\n COMMON_THEME,\n LIGHT_THEME,\n DARK_THEME,\n OCEAN_THEME,\n} from '../tokens/colors';\n\nimport { ThemeVariant, ThemeTokens } from '../types';\n\nexport function getTheme(variant: ThemeVariant): ThemeTokens {\n let theme: ThemeTokens = LIGHT_THEME;\n\n if (variant === 'dark') theme = DARK_THEME;\n if (variant === 'ocean') theme = OCEAN_THEME;\n\n return { ...COMMON_THEME, ...theme };\n}\n\nexport function mergeTheme(\n base: ThemeTokens,\n override: Partial<ThemeTokens>\n): ThemeTokens {\n const merged = { ...base };\n\n for (const key of Object.keys(override) as (keyof ThemeTokens)[]) {\n const v = override[key];\n if (v !== undefined) merged[key] = v;\n }\n\n return merged;\n}\n\nexport function createCustomTheme(\n variant: ThemeVariant,\n customTokens: Partial<ThemeTokens>\n): ThemeTokens {\n const baseTheme = getTheme(variant);\n return mergeTheme(baseTheme, customTokens);\n}\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { clsx } from 'clsx';
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
|
|
4
|
+
// src/utils/cn.ts
|
|
5
|
+
function cn(...inputs) {
|
|
6
|
+
return twMerge(clsx(inputs));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// src/tokens/colors.ts
|
|
10
|
+
var COMMON_THEME = {
|
|
11
|
+
primary: "#3648ce",
|
|
12
|
+
"primary-soft": "#dbf1ff",
|
|
13
|
+
"primary-text": "#0e415d",
|
|
14
|
+
secondary: "#7f32a9",
|
|
15
|
+
"secondary-soft": "#cec7e6",
|
|
16
|
+
"secondary-text": "#521287",
|
|
17
|
+
success: "#136600",
|
|
18
|
+
"success-soft": "#dcfce7",
|
|
19
|
+
"success-text": "#14572e",
|
|
20
|
+
warning: "#705200",
|
|
21
|
+
"warning-soft": "#fef9c3",
|
|
22
|
+
"warning-text": "#73480c",
|
|
23
|
+
error: "#a80000",
|
|
24
|
+
"error-soft": "#fee2e2",
|
|
25
|
+
"error-text": "#8b0d0d"
|
|
26
|
+
};
|
|
27
|
+
var LIGHT_THEME = {
|
|
28
|
+
background: "#fafafa",
|
|
29
|
+
surface: "#ffffff",
|
|
30
|
+
border: "#CCCCCC",
|
|
31
|
+
foreground: "#000000",
|
|
32
|
+
muted: "#555555"
|
|
33
|
+
};
|
|
34
|
+
var DARK_THEME = {
|
|
35
|
+
background: "#171717",
|
|
36
|
+
surface: "#1f1f1f",
|
|
37
|
+
border: "#3f3f46",
|
|
38
|
+
foreground: "#f1f5f9",
|
|
39
|
+
muted: "#aaaab3"
|
|
40
|
+
};
|
|
41
|
+
var OCEAN_THEME = {
|
|
42
|
+
background: "#0f172a",
|
|
43
|
+
surface: "#1e293b",
|
|
44
|
+
border: "#334155",
|
|
45
|
+
foreground: "#f1f5f9",
|
|
46
|
+
muted: "#cbd5e1"
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// src/utils/theme.ts
|
|
50
|
+
function getTheme(variant) {
|
|
51
|
+
let theme = LIGHT_THEME;
|
|
52
|
+
if (variant === "dark") theme = DARK_THEME;
|
|
53
|
+
if (variant === "ocean") theme = OCEAN_THEME;
|
|
54
|
+
return { ...COMMON_THEME, ...theme };
|
|
55
|
+
}
|
|
56
|
+
function mergeTheme(base, override) {
|
|
57
|
+
const merged = { ...base };
|
|
58
|
+
for (const key of Object.keys(override)) {
|
|
59
|
+
const v = override[key];
|
|
60
|
+
if (v !== void 0) merged[key] = v;
|
|
61
|
+
}
|
|
62
|
+
return merged;
|
|
63
|
+
}
|
|
64
|
+
function createCustomTheme(variant, customTokens) {
|
|
65
|
+
const baseTheme = getTheme(variant);
|
|
66
|
+
return mergeTheme(baseTheme, customTokens);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { cn, createCustomTheme, getTheme, mergeTheme };
|
|
70
|
+
//# sourceMappingURL=index.mjs.map
|
|
71
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/cn.ts","../../src/tokens/colors.ts","../../src/utils/theme.ts"],"names":[],"mappings":";;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;;;ACLO,IAAM,YAAA,GAAe;AAAA,EAC1B,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,SAAA,EAAW,SAAA;AAAA,EACX,gBAAA,EAAkB,SAAA;AAAA,EAClB,gBAAA,EAAkB,SAAA;AAAA,EAElB,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,cAAA,EAAgB,SAAA;AAAA,EAEhB,KAAA,EAAO,SAAA;AAAA,EACP,YAAA,EAAc,SAAA;AAAA,EACd,YAAA,EAAc;AAChB,CAAA;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT,CAAA;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT,CAAA;AAEO,IAAM,WAAA,GAAc;AAAA,EACzB,UAAA,EAAY,SAAA;AAAA,EACZ,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,SAAA;AAAA,EACR,UAAA,EAAY,SAAA;AAAA,EACZ,KAAA,EAAO;AACT,CAAA;;;ACnCO,SAAS,SAAS,OAAA,EAAoC;AAC3D,EAAA,IAAI,KAAA,GAAqB,WAAA;AAEzB,EAAA,IAAI,OAAA,KAAY,QAAQ,KAAA,GAAQ,UAAA;AAChC,EAAA,IAAI,OAAA,KAAY,SAAS,KAAA,GAAQ,WAAA;AAEjC,EAAA,OAAO,EAAE,GAAG,YAAA,EAAc,GAAG,KAAA,EAAM;AACrC;AAEO,SAAS,UAAA,CACd,MACA,QAAA,EACa;AACb,EAAA,MAAM,MAAA,GAAS,EAAE,GAAG,IAAA,EAAK;AAEzB,EAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,EAA4B;AAChE,IAAA,MAAM,CAAA,GAAI,SAAS,GAAG,CAAA;AACtB,IAAA,IAAI,CAAA,KAAM,MAAA,EAAW,MAAA,CAAO,GAAG,CAAA,GAAI,CAAA;AAAA,EACrC;AAEA,EAAA,OAAO,MAAA;AACT;AAEO,SAAS,iBAAA,CACd,SACA,YAAA,EACa;AACb,EAAA,MAAM,SAAA,GAAY,SAAS,OAAO,CAAA;AAClC,EAAA,OAAO,UAAA,CAAW,WAAW,YAAY,CAAA;AAC3C","file":"index.mjs","sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export const COMMON_THEME = {\n primary: '#3648ce',\n 'primary-soft': '#dbf1ff',\n 'primary-text': '#0e415d',\n\n secondary: '#7f32a9',\n 'secondary-soft': '#cec7e6',\n 'secondary-text': '#521287',\n\n success: '#136600',\n 'success-soft': '#dcfce7',\n 'success-text': '#14572e',\n\n warning: '#705200',\n 'warning-soft': '#fef9c3',\n 'warning-text': '#73480c',\n\n error: '#a80000',\n 'error-soft': '#fee2e2',\n 'error-text': '#8b0d0d',\n} as const;\n\nexport const LIGHT_THEME = {\n background: '#fafafa',\n surface: '#ffffff',\n border: '#CCCCCC',\n foreground: '#000000',\n muted: '#555555',\n} as const;\n\nexport const DARK_THEME = {\n background: '#171717',\n surface: '#1f1f1f',\n border: '#3f3f46',\n foreground: '#f1f5f9',\n muted: '#aaaab3',\n} as const;\n\nexport const OCEAN_THEME = {\n background: '#0f172a',\n surface: '#1e293b',\n border: '#334155',\n foreground: '#f1f5f9',\n muted: '#cbd5e1',\n} as const;\n","import {\n COMMON_THEME,\n LIGHT_THEME,\n DARK_THEME,\n OCEAN_THEME,\n} from '../tokens/colors';\n\nimport { ThemeVariant, ThemeTokens } from '../types';\n\nexport function getTheme(variant: ThemeVariant): ThemeTokens {\n let theme: ThemeTokens = LIGHT_THEME;\n\n if (variant === 'dark') theme = DARK_THEME;\n if (variant === 'ocean') theme = OCEAN_THEME;\n\n return { ...COMMON_THEME, ...theme };\n}\n\nexport function mergeTheme(\n base: ThemeTokens,\n override: Partial<ThemeTokens>\n): ThemeTokens {\n const merged = { ...base };\n\n for (const key of Object.keys(override) as (keyof ThemeTokens)[]) {\n const v = override[key];\n if (v !== undefined) merged[key] = v;\n }\n\n return merged;\n}\n\nexport function createCustomTheme(\n variant: ThemeVariant,\n customTokens: Partial<ThemeTokens>\n): ThemeTokens {\n const baseTheme = getTheme(variant);\n return mergeTheme(baseTheme, customTokens);\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@stellar-ui-kit/shared",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Shared design tokens, types, and utilities (platform agnostic)",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./tokens": {
|
|
15
|
+
"types": "./dist/tokens/index.d.ts",
|
|
16
|
+
"import": "./dist/tokens/index.mjs",
|
|
17
|
+
"require": "./dist/tokens/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./utils": {
|
|
20
|
+
"types": "./dist/utils/index.d.ts",
|
|
21
|
+
"import": "./dist/utils/index.mjs",
|
|
22
|
+
"require": "./dist/utils/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./tailwind-preset": {
|
|
25
|
+
"types": "./dist/tailwind-preset/index.d.ts",
|
|
26
|
+
"import": "./dist/tailwind-preset/index.mjs",
|
|
27
|
+
"require": "./dist/tailwind-preset/index.js"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist"
|
|
32
|
+
],
|
|
33
|
+
"sideEffects": false,
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build": "tsup",
|
|
36
|
+
"dev": "tsup --watch",
|
|
37
|
+
"clean": "node -e \"require('fs').rmSync('dist', {recursive: true, force: true})\"",
|
|
38
|
+
"type-check": "tsc --noEmit",
|
|
39
|
+
"lint": "eslint src --ext .ts,.tsx"
|
|
40
|
+
},
|
|
41
|
+
"keywords": [
|
|
42
|
+
"design-system",
|
|
43
|
+
"tokens",
|
|
44
|
+
"types",
|
|
45
|
+
"shared"
|
|
46
|
+
],
|
|
47
|
+
"author": "Stellar UI",
|
|
48
|
+
"license": "MIT",
|
|
49
|
+
"repository": {
|
|
50
|
+
"type": "git",
|
|
51
|
+
"url": "https://github.com/vs-front-end/stellar-ui.git",
|
|
52
|
+
"directory": "packages/shared"
|
|
53
|
+
},
|
|
54
|
+
"homepage": "https://stellar-ui-one.vercel.app",
|
|
55
|
+
"bugs": {
|
|
56
|
+
"url": "https://github.com/vs-front-end/stellar-ui/issues"
|
|
57
|
+
},
|
|
58
|
+
"publishConfig": {
|
|
59
|
+
"access": "public"
|
|
60
|
+
},
|
|
61
|
+
"dependencies": {
|
|
62
|
+
"clsx": "^2.1.1",
|
|
63
|
+
"tailwind-merge": "^2.5.4"
|
|
64
|
+
},
|
|
65
|
+
"devDependencies": {
|
|
66
|
+
"@typescript-eslint/eslint-plugin": "^8.15.0",
|
|
67
|
+
"@typescript-eslint/parser": "^8.15.0",
|
|
68
|
+
"eslint": "^9.15.0",
|
|
69
|
+
"tailwindcss": "^3.4.17",
|
|
70
|
+
"tsup": "^8.3.0",
|
|
71
|
+
"typescript": "^5.7.2"
|
|
72
|
+
},
|
|
73
|
+
"peerDependencies": {
|
|
74
|
+
"react": ">=18.0.0"
|
|
75
|
+
}
|
|
76
|
+
}
|