@elevasis/ui 1.3.2 → 1.3.3
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/dist/provider/index.d.ts +1 -1
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +3 -12
- package/dist/provider/types.d.ts +0 -47
- package/dist/provider/types.d.ts.map +1 -1
- package/dist/provider/types.js +1 -0
- package/dist/theme/cssVariables.d.ts +2 -2
- package/dist/theme/cssVariables.d.ts.map +1 -1
- package/dist/theme/cssVariables.js +93 -0
- package/dist/theme/index.d.ts +2 -2
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +1 -0
- package/dist/theme/presets/cyber-flux.js +66 -0
- package/dist/theme/presets/cyber-strike.js +62 -0
- package/dist/theme/presets/cyber-void.js +62 -0
- package/dist/theme/presets/cyber-volt.js +66 -0
- package/dist/theme/presets/index.d.ts +1 -1
- package/dist/theme/presets/index.d.ts.map +1 -1
- package/dist/theme/presets/index.js +39 -0
- package/dist/theme/presets/regal.js +63 -0
- package/dist/theme/presets/rose-gold.js +63 -0
- package/dist/theme/presets/tactical.js +57 -0
- package/package.json +28 -92
package/dist/provider/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ export { ElevasisCoreProvider } from './ElevasisCoreProvider';
|
|
|
2
2
|
export { ElevasisServiceProvider, useElevasisServices } from './ElevasisServiceContext';
|
|
3
3
|
export { NotificationProvider, useNotificationAdapter } from './NotificationContext';
|
|
4
4
|
export type { NotificationAdapter } from './NotificationContext';
|
|
5
|
-
export type { AuthConfig, AuthKitConfig, ApiKeyConfig,
|
|
5
|
+
export type { AuthConfig, AuthKitConfig, ApiKeyConfig, ElevasisCoreProviderProps, ElevasisCoreThemeConfig, ElevasisTokenOverrides, WithSchemes, ElevasisServiceContextValue, ElevasisServiceProviderProps } from './types';
|
|
6
6
|
export type { PresetName } from '../theme/presets';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACvF,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACpF,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,YAAY,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACvF,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACpF,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,YAAY,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/provider/index.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
3
|
-
export { NotificationProvider, useNotificationAdapter } from '
|
|
4
|
-
import '../chunk-SFF5MJEI.js';
|
|
5
|
-
import '../chunk-XLV6LYN2.js';
|
|
6
|
-
import '../chunk-LFYO3MDC.js';
|
|
7
|
-
import '../chunk-4VGWQ5AN.js';
|
|
8
|
-
import '../chunk-NEK6JKPW.js';
|
|
9
|
-
import '../chunk-L2CM2CUA.js';
|
|
10
|
-
export { ElevasisServiceProvider, useElevasisServices } from '../chunk-KA7LO7U5.js';
|
|
11
|
-
import '../chunk-DD3CCMCZ.js';
|
|
12
|
-
import '../chunk-7PLEQFHO.js';
|
|
1
|
+
export { ElevasisCoreProvider } from './ElevasisCoreProvider';
|
|
2
|
+
export { ElevasisServiceProvider, useElevasisServices } from './ElevasisServiceContext';
|
|
3
|
+
export { NotificationProvider, useNotificationAdapter } from './NotificationContext';
|
package/dist/provider/types.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { MantineThemeOverride } from '@mantine/core';
|
|
2
1
|
import type { PresetName } from '../theme/presets';
|
|
3
2
|
import type { QueryClient } from '@tanstack/react-query';
|
|
4
3
|
import type { ReactNode } from 'react';
|
|
@@ -50,18 +49,6 @@ export interface ElevasisCoreThemeConfig {
|
|
|
50
49
|
*/
|
|
51
50
|
tokens?: WithSchemes<ElevasisTokenOverrides>;
|
|
52
51
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Theme config passed to ElevasisProvider's `theme` prop.
|
|
55
|
-
*
|
|
56
|
-
* Three levels of customization:
|
|
57
|
-
* 1. `tokens.primary` — most consumers only need this
|
|
58
|
-
* 2. `tokens.*` — override any semantic token, with optional per-scheme values
|
|
59
|
-
* 3. `mantine` — full Mantine theme escape hatch (fonts, spacing, component styles)
|
|
60
|
-
*/
|
|
61
|
-
export interface ElevasisThemeConfig extends ElevasisCoreThemeConfig {
|
|
62
|
-
/** Full Mantine theme override — merged on top of Elevasis defaults. */
|
|
63
|
-
mantine?: MantineThemeOverride;
|
|
64
|
-
}
|
|
65
52
|
/**
|
|
66
53
|
* Auth configuration union.
|
|
67
54
|
* 'authkit' (WorkOS AuthKit) is the supported mode.
|
|
@@ -135,40 +122,6 @@ export interface ElevasisCoreProviderProps {
|
|
|
135
122
|
injectStyles?: boolean;
|
|
136
123
|
children: ReactNode;
|
|
137
124
|
}
|
|
138
|
-
export interface ElevasisProviderProps {
|
|
139
|
-
/** Auth configuration. Supports 'authkit' mode. */
|
|
140
|
-
auth: AuthConfig;
|
|
141
|
-
/**
|
|
142
|
-
* Elevasis theme configuration.
|
|
143
|
-
* Set `colorScheme` ('light', 'dark', 'auto') and override `tokens` (design tokens).
|
|
144
|
-
* Defaults: colorScheme='auto', Elevasis design system tokens.
|
|
145
|
-
*/
|
|
146
|
-
theme?: ElevasisThemeConfig;
|
|
147
|
-
/**
|
|
148
|
-
* @deprecated Organization ID is now resolved automatically via OrganizationProvider.
|
|
149
|
-
* Accepted for backwards compatibility during migration but no longer used internally.
|
|
150
|
-
*/
|
|
151
|
-
organizationId?: string | null;
|
|
152
|
-
/** Custom QueryClient. If omitted, a default is created internally. */
|
|
153
|
-
queryClient?: QueryClient;
|
|
154
|
-
/**
|
|
155
|
-
* API base URL (e.g., 'https://api.elevasis.com' or 'http://localhost:5170').
|
|
156
|
-
* When provided, ElevasisUIProvider composes the full provider stack via ElevasisCoreProvider.
|
|
157
|
-
* When omitted, no service context is provided (theme-only mode).
|
|
158
|
-
*/
|
|
159
|
-
apiUrl?: string;
|
|
160
|
-
/**
|
|
161
|
-
* Error callback for API responses with status >= 500.
|
|
162
|
-
* Only used when apiUrl is provided.
|
|
163
|
-
*/
|
|
164
|
-
onError?: (endpoint: string, error: Error, details?: ApiErrorDetails) => void;
|
|
165
|
-
/**
|
|
166
|
-
* @deprecated Organization readiness is now managed internally by OrganizationProvider.
|
|
167
|
-
* Accepted for backwards compatibility but ignored when apiUrl is provided.
|
|
168
|
-
*/
|
|
169
|
-
isOrganizationReady?: boolean;
|
|
170
|
-
children: ReactNode;
|
|
171
|
-
}
|
|
172
125
|
/**
|
|
173
126
|
* Service context value exposed by ElevasisServiceProvider.
|
|
174
127
|
* Provides a ready-to-use apiRequest function and organization state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CSSVariablesResolver } from '@mantine/core';
|
|
2
|
-
import type { ElevasisTokenOverrides,
|
|
2
|
+
import type { ElevasisTokenOverrides, ElevasisCoreThemeConfig } from '../provider/types';
|
|
3
3
|
import type { PresetName } from './presets';
|
|
4
4
|
/** Token key → CSS variable name. Single source of truth for the mapping. */
|
|
5
5
|
export declare const TOKEN_VAR_MAP: Record<keyof ElevasisTokenOverrides, string>;
|
|
@@ -8,5 +8,5 @@ export declare const TOKEN_VAR_MAP: Record<keyof ElevasisTokenOverrides, string>
|
|
|
8
8
|
*
|
|
9
9
|
* Merge order per scheme: PRESET_DEFAULTS → flat overrides → scheme-specific overrides
|
|
10
10
|
*/
|
|
11
|
-
export declare function createCssVariablesResolver(tokens?:
|
|
11
|
+
export declare function createCssVariablesResolver(tokens?: ElevasisCoreThemeConfig['tokens'], preset?: PresetName): CSSVariablesResolver;
|
|
12
12
|
//# sourceMappingURL=cssVariables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cssVariables.d.ts","sourceRoot":"","sources":["../../src/theme/cssVariables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"cssVariables.d.ts","sourceRoot":"","sources":["../../src/theme/cssVariables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAExF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,6EAA6E;AAC7E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,sBAAsB,EAAE,MAAM,CAoBtE,CAAA;AAiDD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,CAAC,EAAE,uBAAuB,CAAC,QAAQ,CAAC,EAC1C,MAAM,CAAC,EAAE,UAAU,GAClB,oBAAoB,CAoBtB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { getPreset, generateShades } from './presets';
|
|
2
|
+
/** Token key → CSS variable name. Single source of truth for the mapping. */
|
|
3
|
+
export const TOKEN_VAR_MAP = {
|
|
4
|
+
primary: '--color-primary',
|
|
5
|
+
primaryContrast: '--color-primary-contrast',
|
|
6
|
+
background: '--color-background',
|
|
7
|
+
surface: '--color-surface',
|
|
8
|
+
surfaceHover: '--color-surface-hover',
|
|
9
|
+
text: '--color-text',
|
|
10
|
+
textDimmed: '--color-text-dimmed',
|
|
11
|
+
textSubtle: '--color-text-subtle',
|
|
12
|
+
border: '--color-border',
|
|
13
|
+
error: '--color-error',
|
|
14
|
+
warning: '--color-warning',
|
|
15
|
+
success: '--color-success',
|
|
16
|
+
glassBackground: '--glass-background',
|
|
17
|
+
glassBlur: '--glass-blur',
|
|
18
|
+
shadow: '--standard-box-shadow',
|
|
19
|
+
cardShadow: '--card-shadow',
|
|
20
|
+
durationFast: '--duration-fast',
|
|
21
|
+
durationNormal: '--duration-normal',
|
|
22
|
+
easing: '--easing'
|
|
23
|
+
};
|
|
24
|
+
/** Framework bridge — Mantine internals reference our semantic tokens via var() indirection. */
|
|
25
|
+
const FRAMEWORK_BRIDGE = {
|
|
26
|
+
'--mantine-color-text': 'var(--color-text)',
|
|
27
|
+
'--mantine-color-body': 'var(--color-background)',
|
|
28
|
+
'--mantine-color-dimmed': 'var(--color-text-dimmed)',
|
|
29
|
+
// Primary color functional variants — used by Tabs, SegmentedControl, Badge, Button, etc.
|
|
30
|
+
'--mantine-primary-color-filled': 'var(--color-primary)',
|
|
31
|
+
'--mantine-primary-color-filled-hover': 'color-mix(in srgb, var(--color-primary) 90%, black)',
|
|
32
|
+
'--mantine-primary-color-light': 'color-mix(in srgb, var(--color-primary) 15%, transparent)',
|
|
33
|
+
'--mantine-primary-color-light-hover': 'color-mix(in srgb, var(--color-primary) 20%, transparent)',
|
|
34
|
+
'--mantine-primary-color-light-color': 'var(--color-primary)',
|
|
35
|
+
'--mantine-primary-color-contrast': 'var(--color-primary-contrast)',
|
|
36
|
+
// Active/selected state — used by selectable cards, active filters, plan tiers, etc.
|
|
37
|
+
'--active-border': '1px solid color-mix(in srgb, var(--color-primary) 40%, var(--color-border))',
|
|
38
|
+
'--active-background': 'color-mix(in srgb, var(--color-primary) 8%, var(--color-surface))'
|
|
39
|
+
};
|
|
40
|
+
/** Convert a shade palette (10-tuple) to `--mantine-color-primary-{0..9}` CSS variable records. */
|
|
41
|
+
function shadesToVars(shades) {
|
|
42
|
+
const vars = {};
|
|
43
|
+
for (let i = 0; i < shades.length; i++) {
|
|
44
|
+
vars[`--mantine-color-primary-${i}`] = shades[i];
|
|
45
|
+
}
|
|
46
|
+
return vars;
|
|
47
|
+
}
|
|
48
|
+
/** Convert a preset's Required<ElevasisTokenOverrides> to CSS var records. */
|
|
49
|
+
function presetToVars(tokens) {
|
|
50
|
+
const result = {};
|
|
51
|
+
for (const [key, varName] of Object.entries(TOKEN_VAR_MAP)) {
|
|
52
|
+
const value = tokens[key];
|
|
53
|
+
if (value)
|
|
54
|
+
result[varName] = value;
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
/** Map token overrides to CSS variables via TOKEN_VAR_MAP, skipping undefined values. */
|
|
59
|
+
function mapTokens(tokens) {
|
|
60
|
+
if (!tokens)
|
|
61
|
+
return {};
|
|
62
|
+
const result = {};
|
|
63
|
+
for (const [key, varName] of Object.entries(TOKEN_VAR_MAP)) {
|
|
64
|
+
const value = tokens[key];
|
|
65
|
+
if (value)
|
|
66
|
+
result[varName] = value;
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Creates a CSS variables resolver from theme config.
|
|
72
|
+
*
|
|
73
|
+
* Merge order per scheme: PRESET_DEFAULTS → flat overrides → scheme-specific overrides
|
|
74
|
+
*/
|
|
75
|
+
export function createCssVariablesResolver(tokens, preset) {
|
|
76
|
+
const resolved = getPreset(preset ?? 'default');
|
|
77
|
+
const lightDefaults = presetToVars(resolved.light);
|
|
78
|
+
const darkDefaults = presetToVars(resolved.dark);
|
|
79
|
+
const flat = mapTokens(tokens);
|
|
80
|
+
const light = mapTokens(tokens?.light);
|
|
81
|
+
const dark = mapTokens(tokens?.dark);
|
|
82
|
+
// Generate scheme-specific Mantine shade palettes so components like
|
|
83
|
+
// Badge, Tabs, SegmentedControl use the correct primary per color scheme.
|
|
84
|
+
const lightPrimary = tokens?.light?.primary ?? tokens?.primary ?? resolved.light.primary;
|
|
85
|
+
const darkPrimary = tokens?.dark?.primary ?? tokens?.primary ?? resolved.dark.primary;
|
|
86
|
+
const lightShades = shadesToVars(generateShades(lightPrimary));
|
|
87
|
+
const darkShades = shadesToVars(generateShades(darkPrimary));
|
|
88
|
+
return () => ({
|
|
89
|
+
variables: { ...FRAMEWORK_BRIDGE },
|
|
90
|
+
light: { ...lightShades, ...lightDefaults, ...flat, ...light },
|
|
91
|
+
dark: { ...darkShades, ...darkDefaults, ...flat, ...dark }
|
|
92
|
+
});
|
|
93
|
+
}
|
package/dist/theme/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { createCssVariablesResolver } from './cssVariables';
|
|
2
1
|
export { getPreset, generateShades } from './presets';
|
|
3
|
-
export type { ThemePreset, PresetName } from './presets';
|
|
2
|
+
export type { ThemePreset, PresetName, FrameworkThemeOverrides } from './presets';
|
|
3
|
+
export type { ColorShadesTuple } from './presets/utils';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AACrD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACjF,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getPreset, generateShades } from './presets';
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cyber-Flux preset — electric, hazard-lit, industrial neon.
|
|
3
|
+
* Design: deep black base, neon yellow accent, caution-stripe energy.
|
|
4
|
+
* Evokes: construction zones, warning systems, high-tech factories.
|
|
5
|
+
*/
|
|
6
|
+
export const cyberFluxPreset = {
|
|
7
|
+
light: {
|
|
8
|
+
primary: '#C49000',
|
|
9
|
+
primaryContrast: '#ffffff',
|
|
10
|
+
background: '#EBE8DF',
|
|
11
|
+
surface: '#F3EFEA',
|
|
12
|
+
surfaceHover: '#E4E0D5',
|
|
13
|
+
text: '#14120A',
|
|
14
|
+
textDimmed: '#4D462E',
|
|
15
|
+
textSubtle: '#807555',
|
|
16
|
+
border: '#CCC5B0',
|
|
17
|
+
error: '#FF1744',
|
|
18
|
+
warning: '#FF9100',
|
|
19
|
+
success: '#00E676',
|
|
20
|
+
glassBackground: 'rgba(242, 240, 233, 0.6)',
|
|
21
|
+
glassBlur: 'blur(14px)',
|
|
22
|
+
shadow: '0px 2px 4px -2px rgba(196, 144, 0, 0.08)',
|
|
23
|
+
cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 8px rgba(0, 0, 0, 0.04)',
|
|
24
|
+
durationFast: '80ms',
|
|
25
|
+
durationNormal: '160ms',
|
|
26
|
+
easing: 'cubic-bezier(0.16, 1, 0.3, 1)'
|
|
27
|
+
},
|
|
28
|
+
dark: {
|
|
29
|
+
primary: '#C8A600',
|
|
30
|
+
primaryContrast: '#141200',
|
|
31
|
+
background: '#050503',
|
|
32
|
+
surface: '#17140C',
|
|
33
|
+
surfaceHover: '#282318',
|
|
34
|
+
text: '#FAF5E0',
|
|
35
|
+
textDimmed: '#EAD580',
|
|
36
|
+
textSubtle: '#AC9E4D',
|
|
37
|
+
border: '#232105',
|
|
38
|
+
error: '#FF1744',
|
|
39
|
+
warning: '#FF9100',
|
|
40
|
+
success: '#00E676',
|
|
41
|
+
glassBackground: 'rgba(21, 19, 12, 0.57)',
|
|
42
|
+
glassBlur: 'blur(18px)',
|
|
43
|
+
shadow: '0px 2px 8px -2px rgba(255, 214, 0, 0.15)',
|
|
44
|
+
cardShadow: 'inset 0 1px 0 rgba(255, 214, 0, 0.05), 0 2px 4px rgba(0, 0, 0, 0.3), 0 4px 12px rgba(255, 214, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.25)',
|
|
45
|
+
durationFast: '80ms',
|
|
46
|
+
durationNormal: '160ms',
|
|
47
|
+
easing: 'cubic-bezier(0.16, 1, 0.3, 1)'
|
|
48
|
+
},
|
|
49
|
+
subtitleFontFamily: '"Exo 2", sans-serif',
|
|
50
|
+
framework: {
|
|
51
|
+
fontFamily: '"JetBrains Mono", monospace',
|
|
52
|
+
headings: {
|
|
53
|
+
fontFamily: '"Audiowide", sans-serif'
|
|
54
|
+
},
|
|
55
|
+
components: {
|
|
56
|
+
Title: {
|
|
57
|
+
styles: { root: { letterSpacing: '-0.05em' } }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
fontImports: [
|
|
62
|
+
'https://fonts.googleapis.com/css2?family=Audiowide&display=swap',
|
|
63
|
+
'https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap',
|
|
64
|
+
'https://fonts.googleapis.com/css2?family=Exo+2:wght@400;500;600;700&display=swap'
|
|
65
|
+
]
|
|
66
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cyber-Strike preset — aggressive, high-voltage, dystopian.
|
|
3
|
+
* Design: deep black base, neon red accent, danger-zone glow.
|
|
4
|
+
* Heading font: Chakra Petch — angular cuts, razor-sharp geometry.
|
|
5
|
+
* Evokes: combat HUDs, cybernetic implants, dystopian cityscapes.
|
|
6
|
+
*/
|
|
7
|
+
export const cyberStrikePreset = {
|
|
8
|
+
light: {
|
|
9
|
+
primary: '#FF1744',
|
|
10
|
+
primaryContrast: '#ffffff',
|
|
11
|
+
background: '#EBE0E3',
|
|
12
|
+
surface: '#F3EAEB',
|
|
13
|
+
surfaceHover: '#E4D6DB',
|
|
14
|
+
text: '#140A0C',
|
|
15
|
+
textDimmed: '#4D2E35',
|
|
16
|
+
textSubtle: '#805560',
|
|
17
|
+
border: '#CCB0B8',
|
|
18
|
+
error: '#FF1744',
|
|
19
|
+
warning: '#FF9100',
|
|
20
|
+
success: '#00E676',
|
|
21
|
+
glassBackground: 'rgba(242, 234, 236, 0.6)',
|
|
22
|
+
glassBlur: 'blur(14px)',
|
|
23
|
+
shadow: '0px 2px 4px -2px rgba(255, 23, 68, 0.08)',
|
|
24
|
+
cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 8px rgba(0, 0, 0, 0.04)',
|
|
25
|
+
durationFast: '80ms',
|
|
26
|
+
durationNormal: '160ms',
|
|
27
|
+
easing: 'cubic-bezier(0.16, 1, 0.3, 1)'
|
|
28
|
+
},
|
|
29
|
+
dark: {
|
|
30
|
+
primary: '#FF1744',
|
|
31
|
+
primaryContrast: '#ffffff',
|
|
32
|
+
background: '#060404',
|
|
33
|
+
surface: '#180C10',
|
|
34
|
+
surfaceHover: '#26181E',
|
|
35
|
+
text: '#FAE0E4',
|
|
36
|
+
textDimmed: '#F0A0B0',
|
|
37
|
+
textSubtle: '#D08090',
|
|
38
|
+
border: '#33161D',
|
|
39
|
+
error: '#FF1744',
|
|
40
|
+
warning: '#FF9100',
|
|
41
|
+
success: '#00E676',
|
|
42
|
+
glassBackground: 'rgba(23, 17, 21, 0.57)',
|
|
43
|
+
glassBlur: 'blur(18px)',
|
|
44
|
+
shadow: '0px 2px 8px -2px rgba(255, 23, 68, 0.15)',
|
|
45
|
+
cardShadow: 'inset 0 1px 0 rgba(255, 23, 68, 0.05), 0 2px 4px rgba(0, 0, 0, 0.3), 0 4px 12px rgba(255, 23, 68, 0.06), 0 8px 24px rgba(0, 0, 0, 0.25)',
|
|
46
|
+
durationFast: '80ms',
|
|
47
|
+
durationNormal: '160ms',
|
|
48
|
+
easing: 'cubic-bezier(0.16, 1, 0.3, 1)'
|
|
49
|
+
},
|
|
50
|
+
subtitleFontFamily: '"Exo 2", sans-serif',
|
|
51
|
+
framework: {
|
|
52
|
+
fontFamily: '"JetBrains Mono", monospace',
|
|
53
|
+
headings: {
|
|
54
|
+
fontFamily: '"Chakra Petch", sans-serif'
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
fontImports: [
|
|
58
|
+
'https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;600;700&display=swap',
|
|
59
|
+
'https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap',
|
|
60
|
+
'https://fonts.googleapis.com/css2?family=Exo+2:wght@400;500;600;700&display=swap'
|
|
61
|
+
]
|
|
62
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cyber-Void preset — cold, synthetic, digital depths.
|
|
3
|
+
* Design: deep black base, electric blue accent, holographic shimmer.
|
|
4
|
+
* Evokes: digital rain, neural networks, virtual reality grids.
|
|
5
|
+
*/
|
|
6
|
+
export const cyberVoidPreset = {
|
|
7
|
+
light: {
|
|
8
|
+
primary: '#2979FF',
|
|
9
|
+
primaryContrast: '#ffffff',
|
|
10
|
+
background: '#E0E5EE',
|
|
11
|
+
surface: '#EAEDF3',
|
|
12
|
+
surfaceHover: '#D6DBE5',
|
|
13
|
+
text: '#0A0D14',
|
|
14
|
+
textDimmed: '#2E374D',
|
|
15
|
+
textSubtle: '#556080',
|
|
16
|
+
border: '#B0B8CE',
|
|
17
|
+
error: '#FF1744',
|
|
18
|
+
warning: '#FF9100',
|
|
19
|
+
success: '#00E676',
|
|
20
|
+
glassBackground: 'rgba(238, 241, 248, 0.6)',
|
|
21
|
+
glassBlur: 'blur(14px)',
|
|
22
|
+
shadow: '0px 2px 4px -2px rgba(41, 121, 255, 0.08)',
|
|
23
|
+
cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 8px rgba(0, 0, 0, 0.04)',
|
|
24
|
+
durationFast: '80ms',
|
|
25
|
+
durationNormal: '160ms',
|
|
26
|
+
easing: 'cubic-bezier(0.16, 1, 0.3, 1)'
|
|
27
|
+
},
|
|
28
|
+
dark: {
|
|
29
|
+
primary: '#2979FF',
|
|
30
|
+
primaryContrast: '#ffffff',
|
|
31
|
+
background: '#030507',
|
|
32
|
+
surface: '#0E131E',
|
|
33
|
+
surfaceHover: '#161E2C',
|
|
34
|
+
text: '#E0EAFA',
|
|
35
|
+
textDimmed: '#99BBEE',
|
|
36
|
+
textSubtle: '#80A0D0',
|
|
37
|
+
border: '#192033',
|
|
38
|
+
error: '#FF1744',
|
|
39
|
+
warning: '#FF9100',
|
|
40
|
+
success: '#00E676',
|
|
41
|
+
glassBackground: 'rgba(14, 19, 30, 0.57)',
|
|
42
|
+
glassBlur: 'blur(18px)',
|
|
43
|
+
shadow: '0px 2px 8px -2px rgba(41, 121, 255, 0.15)',
|
|
44
|
+
cardShadow: 'inset 0 1px 0 rgba(41, 121, 255, 0.05), 0 2px 4px rgba(0, 0, 0, 0.3), 0 4px 12px rgba(41, 121, 255, 0.06), 0 8px 24px rgba(0, 0, 0, 0.25)',
|
|
45
|
+
durationFast: '80ms',
|
|
46
|
+
durationNormal: '160ms',
|
|
47
|
+
easing: 'cubic-bezier(0.16, 1, 0.3, 1)'
|
|
48
|
+
},
|
|
49
|
+
subtitleFontFamily: '"Exo 2", sans-serif',
|
|
50
|
+
framework: {
|
|
51
|
+
fontFamily: '"JetBrains Mono", monospace',
|
|
52
|
+
headings: {
|
|
53
|
+
fontFamily: '"Share Tech Mono", monospace',
|
|
54
|
+
fontWeight: '400'
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
fontImports: [
|
|
58
|
+
'https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap',
|
|
59
|
+
'https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap',
|
|
60
|
+
'https://fonts.googleapis.com/css2?family=Exo+2:wght@400;500;600;700&display=swap'
|
|
61
|
+
]
|
|
62
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cyber-Volt preset — electric, neon-soaked, futuristic.
|
|
3
|
+
* Design: deep black base, electric cyan accent, neon micro-glow effects.
|
|
4
|
+
* Evokes: sci-fi interfaces, hacker terminals, retro-futurism.
|
|
5
|
+
*/
|
|
6
|
+
export const cyberVoltPreset = {
|
|
7
|
+
light: {
|
|
8
|
+
primary: '#0097A7',
|
|
9
|
+
primaryContrast: '#ffffff',
|
|
10
|
+
background: '#E0E6EE',
|
|
11
|
+
surface: '#EAEDF3',
|
|
12
|
+
surfaceHover: '#D6DCE6',
|
|
13
|
+
text: '#0A0E14',
|
|
14
|
+
textDimmed: '#2E3A4D',
|
|
15
|
+
textSubtle: '#556680',
|
|
16
|
+
border: '#B0BCD0',
|
|
17
|
+
error: '#FF1744',
|
|
18
|
+
warning: '#FF9100',
|
|
19
|
+
success: '#00E676',
|
|
20
|
+
glassBackground: 'rgba(234, 238, 244, 0.6)',
|
|
21
|
+
glassBlur: 'blur(14px)',
|
|
22
|
+
shadow: '0px 2px 4px -2px rgba(0, 151, 167, 0.08)',
|
|
23
|
+
cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 8px rgba(0, 0, 0, 0.04)',
|
|
24
|
+
durationFast: '80ms',
|
|
25
|
+
durationNormal: '160ms',
|
|
26
|
+
easing: 'cubic-bezier(0.16, 1, 0.3, 1)'
|
|
27
|
+
},
|
|
28
|
+
dark: {
|
|
29
|
+
primary: '#00ACC1',
|
|
30
|
+
primaryContrast: '#ffffff',
|
|
31
|
+
background: '#030506',
|
|
32
|
+
surface: '#0E1520',
|
|
33
|
+
surfaceHover: '#16202E',
|
|
34
|
+
text: '#E0F7FA',
|
|
35
|
+
textDimmed: '#80DEEA',
|
|
36
|
+
textSubtle: '#68C8BE',
|
|
37
|
+
border: '#192232',
|
|
38
|
+
error: '#FF1744',
|
|
39
|
+
warning: '#FF9100',
|
|
40
|
+
success: '#00E676',
|
|
41
|
+
glassBackground: 'rgba(12, 20, 30, 0.57)',
|
|
42
|
+
glassBlur: 'blur(18px)',
|
|
43
|
+
shadow: '0px 2px 8px -2px rgba(0, 229, 255, 0.15)',
|
|
44
|
+
cardShadow: 'inset 0 1px 0 rgba(0, 229, 255, 0.05), 0 2px 4px rgba(0, 0, 0, 0.3), 0 4px 12px rgba(0, 229, 255, 0.06), 0 8px 24px rgba(0, 0, 0, 0.25)',
|
|
45
|
+
durationFast: '80ms',
|
|
46
|
+
durationNormal: '160ms',
|
|
47
|
+
easing: 'cubic-bezier(0.16, 1, 0.3, 1)'
|
|
48
|
+
},
|
|
49
|
+
subtitleFontFamily: '"Exo 2", sans-serif',
|
|
50
|
+
framework: {
|
|
51
|
+
fontFamily: '"JetBrains Mono", monospace',
|
|
52
|
+
headings: {
|
|
53
|
+
fontFamily: '"Orbitron", sans-serif'
|
|
54
|
+
},
|
|
55
|
+
components: {
|
|
56
|
+
Title: {
|
|
57
|
+
styles: { root: { letterSpacing: '-0.05em' } }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
fontImports: [
|
|
62
|
+
'https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700&display=swap',
|
|
63
|
+
'https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap',
|
|
64
|
+
'https://fonts.googleapis.com/css2?family=Exo+2:wght@400;500;600;700&display=swap'
|
|
65
|
+
]
|
|
66
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { ThemePreset, PresetName } from './types';
|
|
1
|
+
export type { ThemePreset, PresetName, FrameworkThemeOverrides } from './types';
|
|
2
2
|
export { generateShades } from './utils';
|
|
3
3
|
import type { PresetName, ThemePreset } from './types';
|
|
4
4
|
/** Look up a preset by name. Falls back to default preset for unknown names. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/presets/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/presets/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAqCtD,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,WAAW,CAEvE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export { generateShades } from './utils';
|
|
2
|
+
import { defaultPreset } from './default';
|
|
3
|
+
import { tacticalPreset } from './tactical';
|
|
4
|
+
import { regalPreset } from './regal';
|
|
5
|
+
import { cyberVoltPreset } from './cyber-volt';
|
|
6
|
+
import { auroraPreset } from './aurora';
|
|
7
|
+
import { roseGoldPreset } from './rose-gold';
|
|
8
|
+
import { midnightPreset } from './midnight';
|
|
9
|
+
import { emberPreset } from './ember';
|
|
10
|
+
import { obsidianPreset } from './obsidian';
|
|
11
|
+
import { honeyPreset } from './honey';
|
|
12
|
+
import { abyssPreset } from './abyss';
|
|
13
|
+
import { canopyPreset } from './canopy';
|
|
14
|
+
import { slatePreset } from './slate';
|
|
15
|
+
import { cyberStrikePreset } from './cyber-strike';
|
|
16
|
+
import { cyberFluxPreset } from './cyber-flux';
|
|
17
|
+
import { cyberVoidPreset } from './cyber-void';
|
|
18
|
+
const PRESETS = {
|
|
19
|
+
default: defaultPreset,
|
|
20
|
+
tactical: tacticalPreset,
|
|
21
|
+
regal: regalPreset,
|
|
22
|
+
'cyber-volt': cyberVoltPreset,
|
|
23
|
+
aurora: auroraPreset,
|
|
24
|
+
'rose-gold': roseGoldPreset,
|
|
25
|
+
midnight: midnightPreset,
|
|
26
|
+
ember: emberPreset,
|
|
27
|
+
obsidian: obsidianPreset,
|
|
28
|
+
honey: honeyPreset,
|
|
29
|
+
abyss: abyssPreset,
|
|
30
|
+
canopy: canopyPreset,
|
|
31
|
+
slate: slatePreset,
|
|
32
|
+
'cyber-strike': cyberStrikePreset,
|
|
33
|
+
'cyber-flux': cyberFluxPreset,
|
|
34
|
+
'cyber-void': cyberVoidPreset
|
|
35
|
+
};
|
|
36
|
+
/** Look up a preset by name. Falls back to default preset for unknown names. */
|
|
37
|
+
export function getPreset(name) {
|
|
38
|
+
return PRESETS[name] ?? PRESETS.default;
|
|
39
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regal preset — luxurious, commanding, distinguished.
|
|
3
|
+
* Design: deep black base, rich gold accent, elegant serif headings.
|
|
4
|
+
* Evokes: royal courts, gilt architecture, fine craftsmanship.
|
|
5
|
+
*/
|
|
6
|
+
export const regalPreset = {
|
|
7
|
+
light: {
|
|
8
|
+
primary: '#B8922F',
|
|
9
|
+
primaryContrast: '#ffffff',
|
|
10
|
+
background: '#F0F0F2',
|
|
11
|
+
surface: '#F7F7F8',
|
|
12
|
+
surfaceHover: '#E9E9EB',
|
|
13
|
+
text: '#2E2E30',
|
|
14
|
+
textDimmed: '#50505A',
|
|
15
|
+
textSubtle: '#8E8E96',
|
|
16
|
+
border: '#CCCCD2',
|
|
17
|
+
error: '#A83232',
|
|
18
|
+
warning: '#B87A1A',
|
|
19
|
+
success: '#3A7A3A',
|
|
20
|
+
glassBackground: 'rgba(247, 247, 248, 0.6)',
|
|
21
|
+
glassBlur: 'blur(12px)',
|
|
22
|
+
shadow: '0px 2px 6px -2px rgba(20, 20, 20, 0.12)',
|
|
23
|
+
cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 2px 4px rgba(20, 20, 20, 0.06), 0 4px 8px rgba(20, 20, 20, 0.04)',
|
|
24
|
+
durationFast: '180ms',
|
|
25
|
+
durationNormal: '320ms',
|
|
26
|
+
easing: 'cubic-bezier(0.25, 0.1, 0.25, 1)'
|
|
27
|
+
},
|
|
28
|
+
dark: {
|
|
29
|
+
primary: '#D4A843',
|
|
30
|
+
primaryContrast: '#1A1400',
|
|
31
|
+
background: '#000000',
|
|
32
|
+
surface: '#0E0E0E',
|
|
33
|
+
surfaceHover: '#181818',
|
|
34
|
+
text: '#F5EEE0',
|
|
35
|
+
textDimmed: '#C8BA98',
|
|
36
|
+
textSubtle: '#A89880',
|
|
37
|
+
border: '#1D1D1D',
|
|
38
|
+
error: '#E05252',
|
|
39
|
+
warning: '#D4943C',
|
|
40
|
+
success: '#4AA84A',
|
|
41
|
+
glassBackground: 'rgba(14, 14, 14, 0.6)',
|
|
42
|
+
glassBlur: 'blur(14px)',
|
|
43
|
+
shadow: '0px 3px 8px -2px rgba(0, 0, 0, 0.95)',
|
|
44
|
+
cardShadow: 'inset 0 1px 0 rgba(212, 168, 67, 0.04), 0 2px 4px rgba(0, 0, 0, 0.2), 0 4px 10px rgba(0, 0, 0, 0.3), 0 8px 20px rgba(0, 0, 0, 0.2)',
|
|
45
|
+
durationFast: '180ms',
|
|
46
|
+
durationNormal: '320ms',
|
|
47
|
+
easing: 'cubic-bezier(0.25, 0.1, 0.25, 1)'
|
|
48
|
+
},
|
|
49
|
+
subtitleFontFamily: '"Raleway", sans-serif',
|
|
50
|
+
framework: {
|
|
51
|
+
defaultRadius: 'xs',
|
|
52
|
+
fontFamily: '"Inter", sans-serif',
|
|
53
|
+
headings: {
|
|
54
|
+
fontFamily: '"Cinzel", serif',
|
|
55
|
+
fontWeight: '600'
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
fontImports: [
|
|
59
|
+
'https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&display=swap',
|
|
60
|
+
'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap',
|
|
61
|
+
'https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&display=swap'
|
|
62
|
+
]
|
|
63
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rose Gold preset — warm luxury, muted elegance, refined.
|
|
3
|
+
* Design: blush-pink base, copper-rose accent, soft warm neutrals.
|
|
4
|
+
* Evokes: boutique brands, editorial design, premium consumer products.
|
|
5
|
+
*/
|
|
6
|
+
export const roseGoldPreset = {
|
|
7
|
+
light: {
|
|
8
|
+
primary: '#A8695E',
|
|
9
|
+
primaryContrast: '#ffffff',
|
|
10
|
+
background: '#F4F0EE',
|
|
11
|
+
surface: '#FAF6F5',
|
|
12
|
+
surfaceHover: '#EDE6E4',
|
|
13
|
+
text: '#2D2325',
|
|
14
|
+
textDimmed: '#5A4448',
|
|
15
|
+
textSubtle: '#9A848A',
|
|
16
|
+
border: '#DDD0CC',
|
|
17
|
+
error: '#C62828',
|
|
18
|
+
warning: '#E65100',
|
|
19
|
+
success: '#2E7D32',
|
|
20
|
+
glassBackground: 'rgba(250, 246, 245, 0.6)',
|
|
21
|
+
glassBlur: 'blur(12px)',
|
|
22
|
+
shadow: '0px 2px 6px -2px rgba(192, 122, 110, 0.1)',
|
|
23
|
+
cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 2px 4px rgba(45, 35, 37, 0.05), 0 4px 8px rgba(45, 35, 37, 0.04)',
|
|
24
|
+
durationFast: '160ms',
|
|
25
|
+
durationNormal: '300ms',
|
|
26
|
+
easing: 'cubic-bezier(0.25, 0.1, 0.25, 1)'
|
|
27
|
+
},
|
|
28
|
+
dark: {
|
|
29
|
+
primary: '#C8897C',
|
|
30
|
+
primaryContrast: '#2D1A16',
|
|
31
|
+
background: '#070405',
|
|
32
|
+
surface: '#161011',
|
|
33
|
+
surfaceHover: '#221A1C',
|
|
34
|
+
text: '#F5E8E6',
|
|
35
|
+
textDimmed: '#D8B8B2',
|
|
36
|
+
textSubtle: '#B89A94',
|
|
37
|
+
border: '#2A1E20',
|
|
38
|
+
error: '#EF5350',
|
|
39
|
+
warning: '#FF8A65',
|
|
40
|
+
success: '#66BB6A',
|
|
41
|
+
glassBackground: 'rgba(22, 16, 17, 0.65)',
|
|
42
|
+
glassBlur: 'blur(14px)',
|
|
43
|
+
shadow: '0px 3px 8px -2px rgba(0, 0, 0, 0.95)',
|
|
44
|
+
cardShadow: 'inset 0 1px 0 rgba(232, 165, 152, 0.04), 0 2px 4px rgba(0, 0, 0, 0.2), 0 4px 10px rgba(0, 0, 0, 0.3), 0 8px 20px rgba(0, 0, 0, 0.2)',
|
|
45
|
+
durationFast: '160ms',
|
|
46
|
+
durationNormal: '300ms',
|
|
47
|
+
easing: 'cubic-bezier(0.25, 0.1, 0.25, 1)'
|
|
48
|
+
},
|
|
49
|
+
subtitleFontFamily: '"Lora", serif',
|
|
50
|
+
framework: {
|
|
51
|
+
defaultRadius: 'sm',
|
|
52
|
+
fontFamily: '"DM Sans", sans-serif',
|
|
53
|
+
headings: {
|
|
54
|
+
fontFamily: '"Playfair Display", serif',
|
|
55
|
+
fontWeight: '600'
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
fontImports: [
|
|
59
|
+
'https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&display=swap',
|
|
60
|
+
'https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap',
|
|
61
|
+
'https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&display=swap'
|
|
62
|
+
]
|
|
63
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tactical preset — tactical, modern, sleek.
|
|
3
|
+
* Design: dark navy-charcoal base, cool blue accent, gunmetal tones.
|
|
4
|
+
* Evokes: command centers, heads-up displays, defense tech interfaces.
|
|
5
|
+
*/
|
|
6
|
+
export const tacticalPreset = {
|
|
7
|
+
light: {
|
|
8
|
+
primary: '#0099ff',
|
|
9
|
+
primaryContrast: '#ffffff',
|
|
10
|
+
background: '#EAEBEE',
|
|
11
|
+
surface: '#F3F3F6',
|
|
12
|
+
surfaceHover: '#DFDFE4',
|
|
13
|
+
text: '#0F1319',
|
|
14
|
+
textDimmed: '#3B4559',
|
|
15
|
+
textSubtle: '#5D677B',
|
|
16
|
+
border: '#C5CCD6',
|
|
17
|
+
error: '#D32F2F',
|
|
18
|
+
warning: '#ED6C02',
|
|
19
|
+
success: '#2E7D32',
|
|
20
|
+
glassBackground: 'rgba(243, 243, 246, 0.6)',
|
|
21
|
+
glassBlur: 'blur(14px)',
|
|
22
|
+
shadow: '0px 2px 4px -2px rgba(15, 19, 25, 0.12)',
|
|
23
|
+
cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 1px 3px rgba(15, 19, 25, 0.06), 0 4px 8px rgba(15, 19, 25, 0.04)',
|
|
24
|
+
durationFast: '100ms',
|
|
25
|
+
durationNormal: '180ms',
|
|
26
|
+
easing: 'cubic-bezier(0.22, 0, 0.1, 1)'
|
|
27
|
+
},
|
|
28
|
+
dark: {
|
|
29
|
+
primary: '#0099ff',
|
|
30
|
+
primaryContrast: '#ffffff',
|
|
31
|
+
background: '#020305',
|
|
32
|
+
surface: '#0E0F14',
|
|
33
|
+
surfaceHover: '#16171D',
|
|
34
|
+
text: '#EFF2F7',
|
|
35
|
+
textDimmed: '#B0BCD2',
|
|
36
|
+
textSubtle: '#8898AE',
|
|
37
|
+
border: '#181C2D',
|
|
38
|
+
error: '#FF4757',
|
|
39
|
+
warning: '#FFA502',
|
|
40
|
+
success: '#2ED573',
|
|
41
|
+
glassBackground: 'rgba(13, 14, 18, 0.58)',
|
|
42
|
+
glassBlur: 'blur(16px)',
|
|
43
|
+
shadow: '0px 2px 6px -2px rgba(0, 0, 0, 0.9)',
|
|
44
|
+
cardShadow: 'inset 0 1px 0 rgba(255, 255, 255, 0.03), 0 1px 3px rgba(0, 0, 0, 0.2), 0 4px 8px rgba(0, 0, 0, 0.28), 0 8px 16px rgba(0, 0, 0, 0.18)',
|
|
45
|
+
durationFast: '100ms',
|
|
46
|
+
durationNormal: '180ms',
|
|
47
|
+
easing: 'cubic-bezier(0.22, 0, 0.1, 1)'
|
|
48
|
+
},
|
|
49
|
+
subtitleFontFamily: '"Chakra Petch", sans-serif',
|
|
50
|
+
framework: {
|
|
51
|
+
fontFamily: '"Chakra Petch", sans-serif',
|
|
52
|
+
headings: {
|
|
53
|
+
fontFamily: '"Chakra Petch", sans-serif'
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
fontImports: ['https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&display=swap']
|
|
57
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elevasis/ui",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.3",
|
|
4
4
|
"description": "UI components and platform-aware hooks for building custom frontends on the Elevasis platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -11,104 +11,40 @@
|
|
|
11
11
|
"dist"
|
|
12
12
|
],
|
|
13
13
|
"exports": {
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"./
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"./
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"./
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"./organization": "./src/organization/index.ts",
|
|
30
|
-
"./api": "./src/api/index.ts",
|
|
31
|
-
"./initialization": "./src/initialization/index.ts",
|
|
32
|
-
"./sse": "./src/sse/index.ts",
|
|
33
|
-
"./hooks": "./src/hooks/index.ts",
|
|
34
|
-
"./components/navigation": "./src/components/navigation/index.ts"
|
|
35
|
-
},
|
|
36
|
-
"publishConfig": {
|
|
37
|
-
"name": "@elevasis/ui",
|
|
38
|
-
"peerDependencies": {
|
|
39
|
-
"react": "^19.2.0",
|
|
40
|
-
"react-dom": "^19.2.0",
|
|
41
|
-
"@tanstack/react-query": "^5.76.2",
|
|
42
|
-
"@tanstack/react-router": "^1.131.28"
|
|
14
|
+
"./provider": {
|
|
15
|
+
"types": "./dist/provider/published.d.ts",
|
|
16
|
+
"import": "./dist/provider/published.js"
|
|
17
|
+
},
|
|
18
|
+
"./auth": {
|
|
19
|
+
"types": "./dist/auth/index.d.ts",
|
|
20
|
+
"import": "./dist/auth/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./hooks": {
|
|
23
|
+
"types": "./dist/hooks/published.d.ts",
|
|
24
|
+
"import": "./dist/hooks/published.js"
|
|
25
|
+
},
|
|
26
|
+
"./sse": {
|
|
27
|
+
"types": "./dist/sse/index.d.ts",
|
|
28
|
+
"import": "./dist/sse/index.js"
|
|
43
29
|
},
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
"import": "./dist/hooks/published.js"
|
|
56
|
-
},
|
|
57
|
-
"./sse": {
|
|
58
|
-
"types": "./dist/sse/index.d.ts",
|
|
59
|
-
"import": "./dist/sse/index.js"
|
|
60
|
-
},
|
|
61
|
-
"./initialization": {
|
|
62
|
-
"types": "./dist/initialization/index.d.ts",
|
|
63
|
-
"import": "./dist/initialization/index.js"
|
|
64
|
-
},
|
|
65
|
-
"./profile": {
|
|
66
|
-
"types": "./dist/profile/index.d.ts",
|
|
67
|
-
"import": "./dist/profile/index.js"
|
|
68
|
-
},
|
|
69
|
-
"./organization": {
|
|
70
|
-
"types": "./dist/organization/index.d.ts",
|
|
71
|
-
"import": "./dist/organization/index.js"
|
|
72
|
-
}
|
|
30
|
+
"./initialization": {
|
|
31
|
+
"types": "./dist/initialization/index.d.ts",
|
|
32
|
+
"import": "./dist/initialization/index.js"
|
|
33
|
+
},
|
|
34
|
+
"./profile": {
|
|
35
|
+
"types": "./dist/profile/index.d.ts",
|
|
36
|
+
"import": "./dist/profile/index.js"
|
|
37
|
+
},
|
|
38
|
+
"./organization": {
|
|
39
|
+
"types": "./dist/organization/index.d.ts",
|
|
40
|
+
"import": "./dist/organization/index.js"
|
|
73
41
|
}
|
|
74
42
|
},
|
|
75
|
-
"scripts": {
|
|
76
|
-
"build": "tsc",
|
|
77
|
-
"build:publish": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.core-dts.json && tsc -p tsconfig.build.json && tsup && rollup -c rollup.dts.config.mjs && node -e \"require('fs').rmSync('dist/types',{recursive:true,force:true})\"",
|
|
78
|
-
"dev": "tsc --watch",
|
|
79
|
-
"lint": "eslint src --max-warnings 0",
|
|
80
|
-
"check-types": "tsc --noEmit",
|
|
81
|
-
"test": "vitest run --passWithNoTests",
|
|
82
|
-
"test:watch": "vitest watch"
|
|
83
|
-
},
|
|
84
43
|
"peerDependencies": {
|
|
85
44
|
"react": "^19.2.0",
|
|
86
45
|
"react-dom": "^19.2.0",
|
|
87
|
-
"@xyflow/react": "^12.8.5",
|
|
88
|
-
"@mantine/core": "8.2.7",
|
|
89
|
-
"@mantine/hooks": "8.2.7",
|
|
90
|
-
"@tabler/icons-react": "^3.27.0",
|
|
91
|
-
"@tanstack/react-router": "^1.131.28",
|
|
92
|
-
"@supabase/supabase-js": "^2.49.4",
|
|
93
|
-
"@workos-inc/authkit-react": "^0.11.0",
|
|
94
46
|
"@tanstack/react-query": "^5.76.2",
|
|
95
|
-
"
|
|
96
|
-
"immer": "^10.1.1",
|
|
97
|
-
"date-fns": "^4.1.0",
|
|
98
|
-
"zod": "^4.1.0"
|
|
99
|
-
},
|
|
100
|
-
"devDependencies": {
|
|
101
|
-
"@repo/core": "workspace:*",
|
|
102
|
-
"@repo/eslint-config": "workspace:*",
|
|
103
|
-
"@repo/typescript-config": "workspace:*",
|
|
104
|
-
"@types/react": "^19.2.2",
|
|
105
|
-
"@types/react-dom": "^19.1.9",
|
|
106
|
-
"globals": "^16.3.0",
|
|
107
|
-
"rollup": "^4.59.0",
|
|
108
|
-
"rollup-plugin-dts": "^6.3.0",
|
|
109
|
-
"tsup": "^8.0.0",
|
|
110
|
-
"typescript": "5.9.2",
|
|
111
|
-
"vite": "^7.0.0"
|
|
47
|
+
"@tanstack/react-router": "^1.131.28"
|
|
112
48
|
},
|
|
113
49
|
"dependencies": {
|
|
114
50
|
"@dagrejs/dagre": "^1.1.4",
|