kenikool-ui 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 +144 -0
- package/dist/cdn-auto-register.js +188 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types/components/advanced/datepicker.d.ts +86 -0
- package/dist/types/components/advanced/datepicker.d.ts.map +1 -0
- package/dist/types/components/advanced/datepicker.stories.d.ts +48 -0
- package/dist/types/components/advanced/datepicker.stories.d.ts.map +1 -0
- package/dist/types/components/advanced/fileupload.d.ts +75 -0
- package/dist/types/components/advanced/fileupload.d.ts.map +1 -0
- package/dist/types/components/advanced/fileupload.stories.d.ts +46 -0
- package/dist/types/components/advanced/fileupload.stories.d.ts.map +1 -0
- package/dist/types/components/advanced/index.d.ts +4 -0
- package/dist/types/components/advanced/index.d.ts.map +1 -0
- package/dist/types/components/data/avatar.d.ts +94 -0
- package/dist/types/components/data/avatar.d.ts.map +1 -0
- package/dist/types/components/data/avatar.stories.d.ts +51 -0
- package/dist/types/components/data/avatar.stories.d.ts.map +1 -0
- package/dist/types/components/data/badge.d.ts +69 -0
- package/dist/types/components/data/badge.d.ts.map +1 -0
- package/dist/types/components/data/badge.stories.d.ts +48 -0
- package/dist/types/components/data/badge.stories.d.ts.map +1 -0
- package/dist/types/components/data/index.d.ts +5 -0
- package/dist/types/components/data/index.d.ts.map +1 -0
- package/dist/types/components/data/list.d.ts +66 -0
- package/dist/types/components/data/list.d.ts.map +1 -0
- package/dist/types/components/data/list.stories.d.ts +38 -0
- package/dist/types/components/data/list.stories.d.ts.map +1 -0
- package/dist/types/components/data/table.d.ts +70 -0
- package/dist/types/components/data/table.d.ts.map +1 -0
- package/dist/types/components/data/table.stories.d.ts +42 -0
- package/dist/types/components/data/table.stories.d.ts.map +1 -0
- package/dist/types/components/feedback/alert.d.ts +78 -0
- package/dist/types/components/feedback/alert.d.ts.map +1 -0
- package/dist/types/components/feedback/alert.stories.d.ts +35 -0
- package/dist/types/components/feedback/alert.stories.d.ts.map +1 -0
- package/dist/types/components/feedback/index.d.ts +5 -0
- package/dist/types/components/feedback/index.d.ts.map +1 -0
- package/dist/types/components/feedback/loading.d.ts +87 -0
- package/dist/types/components/feedback/loading.d.ts.map +1 -0
- package/dist/types/components/feedback/loading.stories.d.ts +48 -0
- package/dist/types/components/feedback/loading.stories.d.ts.map +1 -0
- package/dist/types/components/feedback/modal.d.ts +93 -0
- package/dist/types/components/feedback/modal.d.ts.map +1 -0
- package/dist/types/components/feedback/modal.stories.d.ts +37 -0
- package/dist/types/components/feedback/modal.stories.d.ts.map +1 -0
- package/dist/types/components/feedback/toast.d.ts +102 -0
- package/dist/types/components/feedback/toast.d.ts.map +1 -0
- package/dist/types/components/feedback/toast.stories.d.ts +51 -0
- package/dist/types/components/feedback/toast.stories.d.ts.map +1 -0
- package/dist/types/components/forms/button.d.ts +64 -0
- package/dist/types/components/forms/button.d.ts.map +1 -0
- package/dist/types/components/forms/button.stories.d.ts +52 -0
- package/dist/types/components/forms/button.stories.d.ts.map +1 -0
- package/dist/types/components/forms/checkbox.d.ts +51 -0
- package/dist/types/components/forms/checkbox.d.ts.map +1 -0
- package/dist/types/components/forms/checkbox.stories.d.ts +31 -0
- package/dist/types/components/forms/checkbox.stories.d.ts.map +1 -0
- package/dist/types/components/forms/index.d.ts +6 -0
- package/dist/types/components/forms/index.d.ts.map +1 -0
- package/dist/types/components/forms/input.d.ts +66 -0
- package/dist/types/components/forms/input.d.ts.map +1 -0
- package/dist/types/components/forms/input.stories.d.ts +49 -0
- package/dist/types/components/forms/input.stories.d.ts.map +1 -0
- package/dist/types/components/forms/radio.d.ts +51 -0
- package/dist/types/components/forms/radio.d.ts.map +1 -0
- package/dist/types/components/forms/radio.stories.d.ts +41 -0
- package/dist/types/components/forms/radio.stories.d.ts.map +1 -0
- package/dist/types/components/forms/select.d.ts +67 -0
- package/dist/types/components/forms/select.d.ts.map +1 -0
- package/dist/types/components/forms/select.stories.d.ts +42 -0
- package/dist/types/components/forms/select.stories.d.ts.map +1 -0
- package/dist/types/components/layout/card.d.ts +66 -0
- package/dist/types/components/layout/card.d.ts.map +1 -0
- package/dist/types/components/layout/card.example.d.ts +5 -0
- package/dist/types/components/layout/card.example.d.ts.map +1 -0
- package/dist/types/components/layout/card.stories.d.ts +40 -0
- package/dist/types/components/layout/card.stories.d.ts.map +1 -0
- package/dist/types/components/layout/container.d.ts +84 -0
- package/dist/types/components/layout/container.d.ts.map +1 -0
- package/dist/types/components/layout/container.stories.d.ts +40 -0
- package/dist/types/components/layout/container.stories.d.ts.map +1 -0
- package/dist/types/components/layout/grid.d.ts +76 -0
- package/dist/types/components/layout/grid.d.ts.map +1 -0
- package/dist/types/components/layout/grid.example.d.ts +11 -0
- package/dist/types/components/layout/grid.example.d.ts.map +1 -0
- package/dist/types/components/layout/grid.stories.d.ts +38 -0
- package/dist/types/components/layout/grid.stories.d.ts.map +1 -0
- package/dist/types/components/layout/index.d.ts +5 -0
- package/dist/types/components/layout/index.d.ts.map +1 -0
- package/dist/types/components/layout/stack.d.ts +82 -0
- package/dist/types/components/layout/stack.d.ts.map +1 -0
- package/dist/types/components/layout/stack.stories.d.ts +44 -0
- package/dist/types/components/layout/stack.stories.d.ts.map +1 -0
- package/dist/types/components/navigation/breadcrumbs.d.ts +62 -0
- package/dist/types/components/navigation/breadcrumbs.d.ts.map +1 -0
- package/dist/types/components/navigation/breadcrumbs.stories.d.ts +32 -0
- package/dist/types/components/navigation/breadcrumbs.stories.d.ts.map +1 -0
- package/dist/types/components/navigation/index.d.ts +4 -0
- package/dist/types/components/navigation/index.d.ts.map +1 -0
- package/dist/types/components/navigation/navbar.d.ts +66 -0
- package/dist/types/components/navigation/navbar.d.ts.map +1 -0
- package/dist/types/components/navigation/navbar.stories.d.ts +37 -0
- package/dist/types/components/navigation/navbar.stories.d.ts.map +1 -0
- package/dist/types/components/navigation/sidebar.d.ts +72 -0
- package/dist/types/components/navigation/sidebar.d.ts.map +1 -0
- package/dist/types/components/navigation/sidebar.stories.d.ts +43 -0
- package/dist/types/components/navigation/sidebar.stories.d.ts.map +1 -0
- package/dist/types/components/typography/index.d.ts +3 -0
- package/dist/types/components/typography/index.d.ts.map +1 -0
- package/dist/types/components/typography/text.d.ts +111 -0
- package/dist/types/components/typography/text.d.ts.map +1 -0
- package/dist/types/components/typography/text.stories.d.ts +48 -0
- package/dist/types/components/typography/text.stories.d.ts.map +1 -0
- package/dist/types/core/base-component.d.ts +178 -0
- package/dist/types/core/base-component.d.ts.map +1 -0
- package/dist/types/core/base-component.example.d.ts +24 -0
- package/dist/types/core/base-component.example.d.ts.map +1 -0
- package/dist/types/core/registry.d.ts +88 -0
- package/dist/types/core/registry.d.ts.map +1 -0
- package/dist/types/core/registry.example.d.ts +42 -0
- package/dist/types/core/registry.example.d.ts.map +1 -0
- package/dist/types/core/smart-defaults.d.ts +45 -0
- package/dist/types/core/smart-defaults.d.ts.map +1 -0
- package/dist/types/core/smart-defaults.example.d.ts +20 -0
- package/dist/types/core/smart-defaults.example.d.ts.map +1 -0
- package/dist/types/core/styles-parser.d.ts +107 -0
- package/dist/types/core/styles-parser.d.ts.map +1 -0
- package/dist/types/core/styles-parser.example.d.ts +10 -0
- package/dist/types/core/styles-parser.example.d.ts.map +1 -0
- package/dist/types/core/theme-system.d.ts +91 -0
- package/dist/types/core/theme-system.d.ts.map +1 -0
- package/dist/types/index.d.ts +24 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/themes/built-in-themes.d.ts +32 -0
- package/dist/types/themes/built-in-themes.d.ts.map +1 -0
- package/dist/types/themes/index.d.ts +5 -0
- package/dist/types/themes/index.d.ts.map +1 -0
- package/dist/types/types/components.d.ts +549 -0
- package/dist/types/types/components.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +379 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/theme-config.d.ts +674 -0
- package/dist/types/types/theme-config.d.ts.map +1 -0
- package/dist/types/types/themes.d.ts +325 -0
- package/dist/types/types/themes.d.ts.map +1 -0
- package/dist/types/types/utils.d.ts +293 -0
- package/dist/types/types/utils.d.ts.map +1 -0
- package/dist/types/types/wrappers.d.ts +335 -0
- package/dist/types/types/wrappers.d.ts.map +1 -0
- package/dist/types/utils/accessibility.d.ts +345 -0
- package/dist/types/utils/accessibility.d.ts.map +1 -0
- package/dist/types/utils/accessibility.example.d.ts +50 -0
- package/dist/types/utils/accessibility.example.d.ts.map +1 -0
- package/dist/types/utils/css-variables.d.ts +278 -0
- package/dist/types/utils/css-variables.d.ts.map +1 -0
- package/dist/types/utils/icon-system.d.ts +79 -0
- package/dist/types/utils/icon-system.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +9 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/performance.d.ts +141 -0
- package/dist/types/utils/performance.d.ts.map +1 -0
- package/dist/types/utils/security.d.ts +109 -0
- package/dist/types/utils/security.d.ts.map +1 -0
- package/dist/types/utils/validation.d.ts +84 -0
- package/dist/types/utils/validation.d.ts.map +1 -0
- package/dist/types/wrappers/angular/components.d.ts +2 -0
- package/dist/types/wrappers/angular/components.d.ts.map +1 -0
- package/dist/types/wrappers/angular/index.d.ts +6 -0
- package/dist/types/wrappers/angular/index.d.ts.map +1 -0
- package/dist/types/wrappers/angular/module.d.ts +2 -0
- package/dist/types/wrappers/angular/module.d.ts.map +1 -0
- package/dist/types/wrappers/angular/services.d.ts +2 -0
- package/dist/types/wrappers/angular/services.d.ts.map +1 -0
- package/dist/types/wrappers/angular/types.d.ts +44 -0
- package/dist/types/wrappers/angular/types.d.ts.map +1 -0
- package/dist/types/wrappers/react/components.d.ts +2 -0
- package/dist/types/wrappers/react/components.d.ts.map +1 -0
- package/dist/types/wrappers/react/hooks.d.ts +2 -0
- package/dist/types/wrappers/react/hooks.d.ts.map +1 -0
- package/dist/types/wrappers/react/index.d.ts +6 -0
- package/dist/types/wrappers/react/index.d.ts.map +1 -0
- package/dist/types/wrappers/react/provider.d.ts +2 -0
- package/dist/types/wrappers/react/provider.d.ts.map +1 -0
- package/dist/types/wrappers/react/types.d.ts +31 -0
- package/dist/types/wrappers/react/types.d.ts.map +1 -0
- package/dist/types/wrappers/vue/components.d.ts +2 -0
- package/dist/types/wrappers/vue/components.d.ts.map +1 -0
- package/dist/types/wrappers/vue/composables.d.ts +2 -0
- package/dist/types/wrappers/vue/composables.d.ts.map +1 -0
- package/dist/types/wrappers/vue/index.d.ts +6 -0
- package/dist/types/wrappers/vue/index.d.ts.map +1 -0
- package/dist/types/wrappers/vue/plugin.d.ts +2 -0
- package/dist/types/wrappers/vue/plugin.d.ts.map +1 -0
- package/dist/types/wrappers/vue/types.d.ts +38 -0
- package/dist/types/wrappers/vue/types.d.ts.map +1 -0
- package/package.json +138 -0
|
@@ -0,0 +1,674 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme Configuration Interfaces for Kenikool UI
|
|
3
|
+
*
|
|
4
|
+
* This module defines the core interfaces and types for theme configuration,
|
|
5
|
+
* CSS variable naming conventions, and theme data models.
|
|
6
|
+
*
|
|
7
|
+
* Requirements: 3.1, 3.3
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Main theme configuration interface that defines the complete structure
|
|
11
|
+
* of a Kenikool UI theme. This is the primary interface used by the
|
|
12
|
+
* ThemeSystem to register and apply themes.
|
|
13
|
+
*/
|
|
14
|
+
export interface ThemeConfiguration {
|
|
15
|
+
/** Theme metadata */
|
|
16
|
+
meta: ThemeMetadata;
|
|
17
|
+
/** Color system configuration */
|
|
18
|
+
colors: ThemeColorConfiguration;
|
|
19
|
+
/** Typography system configuration */
|
|
20
|
+
typography: ThemeTypographyConfiguration;
|
|
21
|
+
/** Spacing system configuration */
|
|
22
|
+
spacing: ThemeSpacingConfiguration;
|
|
23
|
+
/** Border radius system configuration */
|
|
24
|
+
borderRadius: ThemeBorderRadiusConfiguration;
|
|
25
|
+
/** Shadow system configuration */
|
|
26
|
+
shadows: ThemeShadowConfiguration;
|
|
27
|
+
/** Transition system configuration */
|
|
28
|
+
transitions: ThemeTransitionConfiguration;
|
|
29
|
+
/** Responsive breakpoint configuration */
|
|
30
|
+
breakpoints: ThemeBreakpointConfiguration;
|
|
31
|
+
/** Component-specific theme overrides */
|
|
32
|
+
components?: ComponentThemeOverrides;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Theme metadata containing information about the theme
|
|
36
|
+
*/
|
|
37
|
+
export interface ThemeMetadata {
|
|
38
|
+
/** Unique theme identifier (used in data-theme attribute) */
|
|
39
|
+
name: string;
|
|
40
|
+
/** Human-readable display name */
|
|
41
|
+
displayName: string;
|
|
42
|
+
/** Theme version for compatibility tracking */
|
|
43
|
+
version: string;
|
|
44
|
+
/** Description of the theme's visual style */
|
|
45
|
+
description: string;
|
|
46
|
+
/** Theme author information */
|
|
47
|
+
author: string;
|
|
48
|
+
/** Tags for categorizing themes */
|
|
49
|
+
tags: string[];
|
|
50
|
+
/** Optional preview image URL */
|
|
51
|
+
preview?: string;
|
|
52
|
+
/** Whether this is a dark theme (affects smart defaults) */
|
|
53
|
+
isDark: boolean;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Complete color configuration for a theme, including all color palettes
|
|
57
|
+
* and semantic color assignments
|
|
58
|
+
*/
|
|
59
|
+
export interface ThemeColorConfiguration {
|
|
60
|
+
primary: ColorPalette;
|
|
61
|
+
secondary: ColorPalette;
|
|
62
|
+
success: ColorPalette;
|
|
63
|
+
warning: ColorPalette;
|
|
64
|
+
error: ColorPalette;
|
|
65
|
+
info: ColorPalette;
|
|
66
|
+
neutral: ColorPalette;
|
|
67
|
+
surface: SurfaceColorConfiguration;
|
|
68
|
+
text: TextColorConfiguration;
|
|
69
|
+
border: BorderColorConfiguration;
|
|
70
|
+
state: StateColorConfiguration;
|
|
71
|
+
overlay: OverlayColorConfiguration;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Standard color palette with 10 shades from lightest (50) to darkest (900)
|
|
75
|
+
* Following the Material Design color system convention
|
|
76
|
+
*/
|
|
77
|
+
export interface ColorPalette {
|
|
78
|
+
/** Lightest shade */
|
|
79
|
+
50: string;
|
|
80
|
+
100: string;
|
|
81
|
+
200: string;
|
|
82
|
+
300: string;
|
|
83
|
+
400: string;
|
|
84
|
+
/** Base color - primary reference */
|
|
85
|
+
500: string;
|
|
86
|
+
600: string;
|
|
87
|
+
700: string;
|
|
88
|
+
800: string;
|
|
89
|
+
/** Darkest shade */
|
|
90
|
+
900: string;
|
|
91
|
+
/** Optional extra dark shade */
|
|
92
|
+
950?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Surface color configuration for backgrounds and container elements
|
|
96
|
+
*/
|
|
97
|
+
export interface SurfaceColorConfiguration {
|
|
98
|
+
/** Main background color */
|
|
99
|
+
background: string;
|
|
100
|
+
/** Primary surface color (cards, panels) */
|
|
101
|
+
surface: string;
|
|
102
|
+
/** Variant surface color (subtle differentiation) */
|
|
103
|
+
surfaceVariant: string;
|
|
104
|
+
/** Elevated surface color (raised elements) */
|
|
105
|
+
surfaceElevated: string;
|
|
106
|
+
/** Hover state for surfaces */
|
|
107
|
+
surfaceHover: string;
|
|
108
|
+
/** Active state for surfaces */
|
|
109
|
+
surfaceActive: string;
|
|
110
|
+
/** Disabled surface color */
|
|
111
|
+
surfaceDisabled: string;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Text color configuration for different contexts
|
|
115
|
+
*/
|
|
116
|
+
export interface TextColorConfiguration {
|
|
117
|
+
/** Primary text color */
|
|
118
|
+
primary: string;
|
|
119
|
+
/** Secondary text color (less emphasis) */
|
|
120
|
+
secondary: string;
|
|
121
|
+
/** Muted text color (least emphasis) */
|
|
122
|
+
muted: string;
|
|
123
|
+
/** Inverse text color (for dark backgrounds) */
|
|
124
|
+
inverse: string;
|
|
125
|
+
/** Text on primary color backgrounds */
|
|
126
|
+
onPrimary: string;
|
|
127
|
+
/** Text on secondary color backgrounds */
|
|
128
|
+
onSecondary: string;
|
|
129
|
+
/** Text on surface backgrounds */
|
|
130
|
+
onSurface: string;
|
|
131
|
+
/** Text on main background */
|
|
132
|
+
onBackground: string;
|
|
133
|
+
/** Disabled text color */
|
|
134
|
+
disabled: string;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Border color configuration for different states and contexts
|
|
138
|
+
*/
|
|
139
|
+
export interface BorderColorConfiguration {
|
|
140
|
+
/** Default border color */
|
|
141
|
+
default: string;
|
|
142
|
+
/** Subtle border color (less prominent) */
|
|
143
|
+
subtle: string;
|
|
144
|
+
/** Muted border color (least prominent) */
|
|
145
|
+
muted: string;
|
|
146
|
+
/** Hover state border color */
|
|
147
|
+
hover: string;
|
|
148
|
+
/** Focus state border color */
|
|
149
|
+
focus: string;
|
|
150
|
+
/** Active state border color */
|
|
151
|
+
active: string;
|
|
152
|
+
/** Error state border color */
|
|
153
|
+
error: string;
|
|
154
|
+
/** Success state border color */
|
|
155
|
+
success: string;
|
|
156
|
+
/** Warning state border color */
|
|
157
|
+
warning: string;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* State color configuration for interactive elements
|
|
161
|
+
*/
|
|
162
|
+
export interface StateColorConfiguration {
|
|
163
|
+
/** Hover state overlay color */
|
|
164
|
+
hover: string;
|
|
165
|
+
/** Focus state color (focus rings, etc.) */
|
|
166
|
+
focus: string;
|
|
167
|
+
/** Active state overlay color */
|
|
168
|
+
active: string;
|
|
169
|
+
/** Disabled state overlay color */
|
|
170
|
+
disabled: string;
|
|
171
|
+
/** Selected state color */
|
|
172
|
+
selected: string;
|
|
173
|
+
/** Pressed state color */
|
|
174
|
+
pressed: string;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Overlay color configuration for modals, dropdowns, etc.
|
|
178
|
+
*/
|
|
179
|
+
export interface OverlayColorConfiguration {
|
|
180
|
+
/** Modal backdrop color */
|
|
181
|
+
backdrop: string;
|
|
182
|
+
/** Dropdown shadow color */
|
|
183
|
+
dropdown: string;
|
|
184
|
+
/** Tooltip background color */
|
|
185
|
+
tooltip: string;
|
|
186
|
+
/** Popover background color */
|
|
187
|
+
popover: string;
|
|
188
|
+
/** Loading overlay color */
|
|
189
|
+
loading: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Complete typography configuration including fonts, sizes, weights, and spacing
|
|
193
|
+
*/
|
|
194
|
+
export interface ThemeTypographyConfiguration {
|
|
195
|
+
/** Font family stacks */
|
|
196
|
+
fontFamily: FontFamilyConfiguration;
|
|
197
|
+
/** Font size scale */
|
|
198
|
+
fontSize: FontSizeConfiguration;
|
|
199
|
+
/** Font weight scale */
|
|
200
|
+
fontWeight: FontWeightConfiguration;
|
|
201
|
+
/** Line height scale */
|
|
202
|
+
lineHeight: LineHeightConfiguration;
|
|
203
|
+
/** Letter spacing scale */
|
|
204
|
+
letterSpacing: LetterSpacingConfiguration;
|
|
205
|
+
/** Text decoration styles */
|
|
206
|
+
textDecoration: TextDecorationConfiguration;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Font family configuration with fallback stacks
|
|
210
|
+
*/
|
|
211
|
+
export interface FontFamilyConfiguration {
|
|
212
|
+
/** Sans-serif font stack */
|
|
213
|
+
sans: string[];
|
|
214
|
+
/** Serif font stack */
|
|
215
|
+
serif: string[];
|
|
216
|
+
/** Monospace font stack */
|
|
217
|
+
mono: string[];
|
|
218
|
+
/** Display font stack (for headings) */
|
|
219
|
+
display?: string[];
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Font size configuration with semantic naming
|
|
223
|
+
*/
|
|
224
|
+
export interface FontSizeConfiguration {
|
|
225
|
+
/** Extra small text */
|
|
226
|
+
xs: string;
|
|
227
|
+
/** Small text */
|
|
228
|
+
sm: string;
|
|
229
|
+
/** Base text size */
|
|
230
|
+
base: string;
|
|
231
|
+
/** Large text */
|
|
232
|
+
lg: string;
|
|
233
|
+
/** Extra large text */
|
|
234
|
+
xl: string;
|
|
235
|
+
/** 2x large text */
|
|
236
|
+
'2xl': string;
|
|
237
|
+
/** 3x large text */
|
|
238
|
+
'3xl': string;
|
|
239
|
+
/** 4x large text */
|
|
240
|
+
'4xl': string;
|
|
241
|
+
/** 5x large text */
|
|
242
|
+
'5xl': string;
|
|
243
|
+
/** 6x large text */
|
|
244
|
+
'6xl': string;
|
|
245
|
+
/** 7x large text */
|
|
246
|
+
'7xl': string;
|
|
247
|
+
/** 8x large text */
|
|
248
|
+
'8xl': string;
|
|
249
|
+
/** 9x large text */
|
|
250
|
+
'9xl': string;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Font weight configuration
|
|
254
|
+
*/
|
|
255
|
+
export interface FontWeightConfiguration {
|
|
256
|
+
/** Thin weight (100) */
|
|
257
|
+
thin: number;
|
|
258
|
+
/** Extra light weight (200) */
|
|
259
|
+
extralight: number;
|
|
260
|
+
/** Light weight (300) */
|
|
261
|
+
light: number;
|
|
262
|
+
/** Normal weight (400) */
|
|
263
|
+
normal: number;
|
|
264
|
+
/** Medium weight (500) */
|
|
265
|
+
medium: number;
|
|
266
|
+
/** Semi-bold weight (600) */
|
|
267
|
+
semibold: number;
|
|
268
|
+
/** Bold weight (700) */
|
|
269
|
+
bold: number;
|
|
270
|
+
/** Extra bold weight (800) */
|
|
271
|
+
extrabold: number;
|
|
272
|
+
/** Black weight (900) */
|
|
273
|
+
black: number;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Line height configuration for different text densities
|
|
277
|
+
*/
|
|
278
|
+
export interface LineHeightConfiguration {
|
|
279
|
+
/** No line height (1) */
|
|
280
|
+
none: number;
|
|
281
|
+
/** Tight line height */
|
|
282
|
+
tight: number;
|
|
283
|
+
/** Snug line height */
|
|
284
|
+
snug: number;
|
|
285
|
+
/** Normal line height */
|
|
286
|
+
normal: number;
|
|
287
|
+
/** Relaxed line height */
|
|
288
|
+
relaxed: number;
|
|
289
|
+
/** Loose line height */
|
|
290
|
+
loose: number;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Letter spacing configuration
|
|
294
|
+
*/
|
|
295
|
+
export interface LetterSpacingConfiguration {
|
|
296
|
+
/** Tighter letter spacing */
|
|
297
|
+
tighter: string;
|
|
298
|
+
/** Tight letter spacing */
|
|
299
|
+
tight: string;
|
|
300
|
+
/** Normal letter spacing */
|
|
301
|
+
normal: string;
|
|
302
|
+
/** Wide letter spacing */
|
|
303
|
+
wide: string;
|
|
304
|
+
/** Wider letter spacing */
|
|
305
|
+
wider: string;
|
|
306
|
+
/** Widest letter spacing */
|
|
307
|
+
widest: string;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Text decoration configuration
|
|
311
|
+
*/
|
|
312
|
+
export interface TextDecorationConfiguration {
|
|
313
|
+
/** No decoration */
|
|
314
|
+
none: string;
|
|
315
|
+
/** Underline */
|
|
316
|
+
underline: string;
|
|
317
|
+
/** Overline */
|
|
318
|
+
overline: string;
|
|
319
|
+
/** Line through */
|
|
320
|
+
lineThrough: string;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Spacing scale configuration using a consistent mathematical progression
|
|
324
|
+
*/
|
|
325
|
+
export interface ThemeSpacingConfiguration {
|
|
326
|
+
/** No spacing */
|
|
327
|
+
0: string;
|
|
328
|
+
/** 1px spacing */
|
|
329
|
+
px: string;
|
|
330
|
+
/** 0.125rem (2px) */
|
|
331
|
+
0.5: string;
|
|
332
|
+
/** 0.25rem (4px) */
|
|
333
|
+
1: string;
|
|
334
|
+
/** 0.375rem (6px) */
|
|
335
|
+
1.5: string;
|
|
336
|
+
/** 0.5rem (8px) */
|
|
337
|
+
2: string;
|
|
338
|
+
/** 0.625rem (10px) */
|
|
339
|
+
2.5: string;
|
|
340
|
+
/** 0.75rem (12px) */
|
|
341
|
+
3: string;
|
|
342
|
+
/** 0.875rem (14px) */
|
|
343
|
+
3.5: string;
|
|
344
|
+
/** 1rem (16px) */
|
|
345
|
+
4: string;
|
|
346
|
+
/** 1.25rem (20px) */
|
|
347
|
+
5: string;
|
|
348
|
+
/** 1.5rem (24px) */
|
|
349
|
+
6: string;
|
|
350
|
+
/** 1.75rem (28px) */
|
|
351
|
+
7: string;
|
|
352
|
+
/** 2rem (32px) */
|
|
353
|
+
8: string;
|
|
354
|
+
/** 2.25rem (36px) */
|
|
355
|
+
9: string;
|
|
356
|
+
/** 2.5rem (40px) */
|
|
357
|
+
10: string;
|
|
358
|
+
/** 2.75rem (44px) */
|
|
359
|
+
11: string;
|
|
360
|
+
/** 3rem (48px) */
|
|
361
|
+
12: string;
|
|
362
|
+
/** 3.5rem (56px) */
|
|
363
|
+
14: string;
|
|
364
|
+
/** 4rem (64px) */
|
|
365
|
+
16: string;
|
|
366
|
+
/** 5rem (80px) */
|
|
367
|
+
20: string;
|
|
368
|
+
/** 6rem (96px) */
|
|
369
|
+
24: string;
|
|
370
|
+
/** 7rem (112px) */
|
|
371
|
+
28: string;
|
|
372
|
+
/** 8rem (128px) */
|
|
373
|
+
32: string;
|
|
374
|
+
/** 9rem (144px) */
|
|
375
|
+
36: string;
|
|
376
|
+
/** 10rem (160px) */
|
|
377
|
+
40: string;
|
|
378
|
+
/** 11rem (176px) */
|
|
379
|
+
44: string;
|
|
380
|
+
/** 12rem (192px) */
|
|
381
|
+
48: string;
|
|
382
|
+
/** 13rem (208px) */
|
|
383
|
+
52: string;
|
|
384
|
+
/** 14rem (224px) */
|
|
385
|
+
56: string;
|
|
386
|
+
/** 15rem (240px) */
|
|
387
|
+
60: string;
|
|
388
|
+
/** 16rem (256px) */
|
|
389
|
+
64: string;
|
|
390
|
+
/** 18rem (288px) */
|
|
391
|
+
72: string;
|
|
392
|
+
/** 20rem (320px) */
|
|
393
|
+
80: string;
|
|
394
|
+
/** 24rem (384px) */
|
|
395
|
+
96: string;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Border radius configuration for consistent rounded corners
|
|
399
|
+
*/
|
|
400
|
+
export interface ThemeBorderRadiusConfiguration {
|
|
401
|
+
/** No border radius */
|
|
402
|
+
none: string;
|
|
403
|
+
/** Small border radius */
|
|
404
|
+
sm: string;
|
|
405
|
+
/** Base border radius */
|
|
406
|
+
base: string;
|
|
407
|
+
/** Medium border radius */
|
|
408
|
+
md: string;
|
|
409
|
+
/** Large border radius */
|
|
410
|
+
lg: string;
|
|
411
|
+
/** Extra large border radius */
|
|
412
|
+
xl: string;
|
|
413
|
+
/** 2x large border radius */
|
|
414
|
+
'2xl': string;
|
|
415
|
+
/** 3x large border radius */
|
|
416
|
+
'3xl': string;
|
|
417
|
+
/** Full border radius (pill shape) */
|
|
418
|
+
full: string;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Shadow configuration for depth and elevation
|
|
422
|
+
*/
|
|
423
|
+
export interface ThemeShadowConfiguration {
|
|
424
|
+
/** No shadow */
|
|
425
|
+
none: string;
|
|
426
|
+
/** Small shadow */
|
|
427
|
+
sm: string;
|
|
428
|
+
/** Base shadow */
|
|
429
|
+
base: string;
|
|
430
|
+
/** Medium shadow */
|
|
431
|
+
md: string;
|
|
432
|
+
/** Large shadow */
|
|
433
|
+
lg: string;
|
|
434
|
+
/** Extra large shadow */
|
|
435
|
+
xl: string;
|
|
436
|
+
/** 2x large shadow */
|
|
437
|
+
'2xl': string;
|
|
438
|
+
/** Inner shadow */
|
|
439
|
+
inner: string;
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Transition configuration for consistent animations
|
|
443
|
+
*/
|
|
444
|
+
export interface ThemeTransitionConfiguration {
|
|
445
|
+
/** No transition */
|
|
446
|
+
none: string;
|
|
447
|
+
/** Transition all properties */
|
|
448
|
+
all: string;
|
|
449
|
+
/** Fast transition (150ms) */
|
|
450
|
+
fast: string;
|
|
451
|
+
/** Normal transition (300ms) */
|
|
452
|
+
normal: string;
|
|
453
|
+
/** Slow transition (500ms) */
|
|
454
|
+
slow: string;
|
|
455
|
+
/** Color transitions */
|
|
456
|
+
colors: string;
|
|
457
|
+
/** Opacity transitions */
|
|
458
|
+
opacity: string;
|
|
459
|
+
/** Shadow transitions */
|
|
460
|
+
shadow: string;
|
|
461
|
+
/** Transform transitions */
|
|
462
|
+
transform: string;
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Responsive breakpoint configuration
|
|
466
|
+
*/
|
|
467
|
+
export interface ThemeBreakpointConfiguration {
|
|
468
|
+
/** Extra small screens (phones) */
|
|
469
|
+
xs: string;
|
|
470
|
+
/** Small screens (large phones) */
|
|
471
|
+
sm: string;
|
|
472
|
+
/** Medium screens (tablets) */
|
|
473
|
+
md: string;
|
|
474
|
+
/** Large screens (desktops) */
|
|
475
|
+
lg: string;
|
|
476
|
+
/** Extra large screens (large desktops) */
|
|
477
|
+
xl: string;
|
|
478
|
+
/** 2x large screens (ultra-wide) */
|
|
479
|
+
'2xl': string;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Component-specific theme overrides
|
|
483
|
+
*/
|
|
484
|
+
export interface ComponentThemeOverrides {
|
|
485
|
+
[componentName: string]: ComponentThemeConfiguration;
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Theme configuration for a specific component
|
|
489
|
+
*/
|
|
490
|
+
export interface ComponentThemeConfiguration {
|
|
491
|
+
/** Base styles for the component */
|
|
492
|
+
base?: CSSProperties;
|
|
493
|
+
/** Variant-specific styles */
|
|
494
|
+
variants?: {
|
|
495
|
+
[variantName: string]: CSSProperties;
|
|
496
|
+
};
|
|
497
|
+
/** Size-specific styles */
|
|
498
|
+
sizes?: {
|
|
499
|
+
[sizeName: string]: CSSProperties;
|
|
500
|
+
};
|
|
501
|
+
/** State-specific styles */
|
|
502
|
+
states?: {
|
|
503
|
+
[stateName: string]: CSSProperties;
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* CSS variable naming conventions for Kenikool UI themes
|
|
508
|
+
* All CSS variables use the --kn- prefix for namespacing
|
|
509
|
+
*/
|
|
510
|
+
export interface CSSVariableNaming {
|
|
511
|
+
/** Color variables */
|
|
512
|
+
colors: {
|
|
513
|
+
/** Primary color palette: --kn-primary-{shade} */
|
|
514
|
+
primary: `--kn-primary-${keyof ColorPalette}`;
|
|
515
|
+
/** Secondary color palette: --kn-secondary-{shade} */
|
|
516
|
+
secondary: `--kn-secondary-${keyof ColorPalette}`;
|
|
517
|
+
/** Success color palette: --kn-success-{shade} */
|
|
518
|
+
success: `--kn-success-${keyof ColorPalette}`;
|
|
519
|
+
/** Warning color palette: --kn-warning-{shade} */
|
|
520
|
+
warning: `--kn-warning-${keyof ColorPalette}`;
|
|
521
|
+
/** Error color palette: --kn-error-{shade} */
|
|
522
|
+
error: `--kn-error-${keyof ColorPalette}`;
|
|
523
|
+
/** Info color palette: --kn-info-{shade} */
|
|
524
|
+
info: `--kn-info-${keyof ColorPalette}`;
|
|
525
|
+
/** Neutral color palette: --kn-neutral-{shade} */
|
|
526
|
+
neutral: `--kn-neutral-${keyof ColorPalette}`;
|
|
527
|
+
/** Surface colors: --kn-surface-{type} */
|
|
528
|
+
surface: `--kn-surface-${keyof SurfaceColorConfiguration}`;
|
|
529
|
+
/** Text colors: --kn-text-{type} */
|
|
530
|
+
text: `--kn-text-${keyof TextColorConfiguration}`;
|
|
531
|
+
/** Border colors: --kn-border-{type} */
|
|
532
|
+
border: `--kn-border-${keyof BorderColorConfiguration}`;
|
|
533
|
+
/** State colors: --kn-state-{type} */
|
|
534
|
+
state: `--kn-state-${keyof StateColorConfiguration}`;
|
|
535
|
+
/** Overlay colors: --kn-overlay-{type} */
|
|
536
|
+
overlay: `--kn-overlay-${keyof OverlayColorConfiguration}`;
|
|
537
|
+
};
|
|
538
|
+
/** Typography variables */
|
|
539
|
+
typography: {
|
|
540
|
+
/** Font family: --kn-font-{type} */
|
|
541
|
+
fontFamily: `--kn-font-${keyof FontFamilyConfiguration}`;
|
|
542
|
+
/** Font size: --kn-text-{size} */
|
|
543
|
+
fontSize: `--kn-text-${keyof FontSizeConfiguration}`;
|
|
544
|
+
/** Font weight: --kn-font-{weight} */
|
|
545
|
+
fontWeight: `--kn-font-${keyof FontWeightConfiguration}`;
|
|
546
|
+
/** Line height: --kn-leading-{type} */
|
|
547
|
+
lineHeight: `--kn-leading-${keyof LineHeightConfiguration}`;
|
|
548
|
+
/** Letter spacing: --kn-tracking-{type} */
|
|
549
|
+
letterSpacing: `--kn-tracking-${keyof LetterSpacingConfiguration}`;
|
|
550
|
+
};
|
|
551
|
+
/** Spacing variables: --kn-space-{size} */
|
|
552
|
+
spacing: `--kn-space-${keyof ThemeSpacingConfiguration}`;
|
|
553
|
+
/** Border radius variables: --kn-radius-{size} */
|
|
554
|
+
borderRadius: `--kn-radius-${keyof ThemeBorderRadiusConfiguration}`;
|
|
555
|
+
/** Shadow variables: --kn-shadow-{size} */
|
|
556
|
+
shadows: `--kn-shadow-${keyof ThemeShadowConfiguration}`;
|
|
557
|
+
/** Transition variables: --kn-transition-{type} */
|
|
558
|
+
transitions: `--kn-transition-${keyof ThemeTransitionConfiguration}`;
|
|
559
|
+
/** Breakpoint variables: --kn-screen-{size} */
|
|
560
|
+
breakpoints: `--kn-screen-${keyof ThemeBreakpointConfiguration}`;
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* CSS variable generator utility type
|
|
564
|
+
*/
|
|
565
|
+
export type CSSVariableName<T extends string> = `--kn-${T}`;
|
|
566
|
+
/**
|
|
567
|
+
* Helper type for creating CSS variable maps
|
|
568
|
+
*/
|
|
569
|
+
export type CSSVariableMap<T extends Record<string, any>> = {
|
|
570
|
+
[K in keyof T]: CSSVariableName<string>;
|
|
571
|
+
};
|
|
572
|
+
/**
|
|
573
|
+
* Extended CSS properties interface that includes CSS custom properties
|
|
574
|
+
*/
|
|
575
|
+
export interface CSSProperties extends Partial<CSSStyleDeclaration> {
|
|
576
|
+
/** CSS custom properties (CSS variables) */
|
|
577
|
+
[key: `--${string}`]: string | number;
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* Theme data model for runtime theme management
|
|
581
|
+
*/
|
|
582
|
+
export interface ThemeData {
|
|
583
|
+
/** Theme configuration */
|
|
584
|
+
config: ThemeConfiguration;
|
|
585
|
+
/** Generated CSS variables */
|
|
586
|
+
cssVariables: Record<string, string>;
|
|
587
|
+
/** Compiled CSS string */
|
|
588
|
+
css: string;
|
|
589
|
+
/** Theme registration timestamp */
|
|
590
|
+
registeredAt: Date;
|
|
591
|
+
/** Whether theme is currently active */
|
|
592
|
+
isActive: boolean;
|
|
593
|
+
/** Theme usage statistics */
|
|
594
|
+
stats: ThemeUsageStats;
|
|
595
|
+
}
|
|
596
|
+
/**
|
|
597
|
+
* Theme usage statistics
|
|
598
|
+
*/
|
|
599
|
+
export interface ThemeUsageStats {
|
|
600
|
+
/** Number of times theme has been applied */
|
|
601
|
+
applicationCount: number;
|
|
602
|
+
/** Last time theme was applied */
|
|
603
|
+
lastApplied: Date;
|
|
604
|
+
/** Elements currently using this theme */
|
|
605
|
+
activeElements: number;
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* Theme validation result
|
|
609
|
+
*/
|
|
610
|
+
export interface ThemeValidationResult {
|
|
611
|
+
/** Whether theme is valid */
|
|
612
|
+
valid: boolean;
|
|
613
|
+
/** Validation errors */
|
|
614
|
+
errors: ThemeValidationError[];
|
|
615
|
+
/** Validation warnings */
|
|
616
|
+
warnings: ThemeValidationWarning[];
|
|
617
|
+
/** Accessibility validation results */
|
|
618
|
+
accessibility: AccessibilityValidationResult;
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* Theme validation error
|
|
622
|
+
*/
|
|
623
|
+
export interface ThemeValidationError {
|
|
624
|
+
/** Error path in theme configuration */
|
|
625
|
+
path: string;
|
|
626
|
+
/** Error message */
|
|
627
|
+
message: string;
|
|
628
|
+
/** Error code for programmatic handling */
|
|
629
|
+
code: string;
|
|
630
|
+
/** Severity level */
|
|
631
|
+
severity: 'error' | 'warning';
|
|
632
|
+
}
|
|
633
|
+
/**
|
|
634
|
+
* Theme validation warning
|
|
635
|
+
*/
|
|
636
|
+
export interface ThemeValidationWarning {
|
|
637
|
+
/** Warning path in theme configuration */
|
|
638
|
+
path: string;
|
|
639
|
+
/** Warning message */
|
|
640
|
+
message: string;
|
|
641
|
+
/** Warning code for programmatic handling */
|
|
642
|
+
code: string;
|
|
643
|
+
/** Suggested fix */
|
|
644
|
+
suggestion?: string;
|
|
645
|
+
}
|
|
646
|
+
/**
|
|
647
|
+
* Accessibility validation result
|
|
648
|
+
*/
|
|
649
|
+
export interface AccessibilityValidationResult {
|
|
650
|
+
/** Whether theme meets accessibility standards */
|
|
651
|
+
compliant: boolean;
|
|
652
|
+
/** WCAG compliance level (AA, AAA) */
|
|
653
|
+
wcagLevel: 'AA' | 'AAA' | 'none';
|
|
654
|
+
/** Contrast ratio issues */
|
|
655
|
+
contrastIssues: ContrastIssue[];
|
|
656
|
+
/** Color blindness compatibility */
|
|
657
|
+
colorBlindnessCompatible: boolean;
|
|
658
|
+
}
|
|
659
|
+
/**
|
|
660
|
+
* Contrast ratio issue
|
|
661
|
+
*/
|
|
662
|
+
export interface ContrastIssue {
|
|
663
|
+
/** Foreground color */
|
|
664
|
+
foreground: string;
|
|
665
|
+
/** Background color */
|
|
666
|
+
background: string;
|
|
667
|
+
/** Actual contrast ratio */
|
|
668
|
+
ratio: number;
|
|
669
|
+
/** Required contrast ratio */
|
|
670
|
+
required: number;
|
|
671
|
+
/** Context where issue occurs */
|
|
672
|
+
context: string;
|
|
673
|
+
}
|
|
674
|
+
//# sourceMappingURL=theme-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-config.d.ts","sourceRoot":"","sources":["../../../src/types/theme-config.ts"],"names":[],"mappings":"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"}
|