@kupola/kupola 1.9.13 → 1.9.14

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kupola/kupola",
3
- "version": "1.9.13",
3
+ "version": "1.9.14",
4
4
  "description": "A lightweight UI toolkit for any web project. No heavy frontend frameworks required.",
5
5
  "main": "dist/kupola.cjs.js",
6
6
  "module": "dist/kupola.esm.js",
@@ -78,10 +78,10 @@ export function kupola(options = {}) {
78
78
  transformIndexHtml(html) {
79
79
  let transformed = html;
80
80
 
81
- // Inject blocking theme-dark.css for CSS variables (before any rendering)
82
- if (autoCSS && !transformed.includes('theme-dark.css')) {
81
+ // Inject blocking theme.css for CSS variables (before any rendering)
82
+ if (autoCSS && !transformed.includes('theme.css')) {
83
83
  const cssBasePath = cssPath ? cssPath.replace(/\/kupola\.css$/, '') : '/css';
84
- const themeCSSLink = `<link rel="stylesheet" href="${cssBasePath}/theme-dark.css">`;
84
+ const themeCSSLink = `<link rel="stylesheet" href="${cssBasePath}/theme.css">`;
85
85
  transformed = transformed.replace(
86
86
  '<head>',
87
87
  `<head>\n${themeCSSLink}\n`,
@@ -25,10 +25,10 @@ class KupolaWebpackPlugin {
25
25
  (htmlPluginData) => {
26
26
  let html = htmlPluginData.html;
27
27
 
28
- // Inject blocking theme-dark.css for CSS variables (before any rendering)
29
- if (this.options.autoCSS && !html.includes('theme-dark.css')) {
28
+ // Inject blocking theme.css for CSS variables (before any rendering)
29
+ if (this.options.autoCSS && !html.includes('theme.css')) {
30
30
  const cssBasePath = this.options.cssPath ? this.options.cssPath.replace(/\/kupola\.css$/, '') : '';
31
- const themeCSSLink = `<link rel="stylesheet" href="${cssBasePath ? cssBasePath + '/' : ''}theme-dark.css">`;
31
+ const themeCSSLink = `<link rel="stylesheet" href="${cssBasePath ? cssBasePath + '/' : ''}theme.css">`;
32
32
  html = html.replace(
33
33
  '<head>',
34
34
  `<head>\n${themeCSSLink}\n`,
@@ -19,8 +19,7 @@ const OUTPUT_DIR = path.resolve(__dirname, '..', 'dist');
19
19
  const IMPORT_ORDER = [
20
20
  'theme-vars.css',
21
21
  'colors-and-type.css',
22
- 'theme-dark.css',
23
- 'theme-light.css',
22
+ 'theme.css',
24
23
  'brand-themes.css',
25
24
  'scaffold.css',
26
25
  'dashboard.css',
@@ -1,298 +0,0 @@
1
- /* ===== Light Theme ===== */
2
-
3
- [data-theme="light"] {
4
- --bg-base-default: #FFFFFF;
5
- --bg-base-secondary: #F5F6F8;
6
- --bg-base-tertiary: #EDF0F5;
7
- --bg-overlay-l1: rgba(0, 0, 0, 0.04);
8
- --bg-overlay-l2: rgba(0, 0, 0, 0.06);
9
- --bg-overlay-l3: rgba(0, 0, 0, 0.08);
10
- --bg-overlay-l4: rgba(0, 0, 0, 0.12);
11
- --bg-menu: #FFFFFF;
12
- --bg-tooltip: #FFFFFF;
13
- --bg-invert: #1A1B1D;
14
- --bg-invert-hover: #222427;
15
- --bg-invert-active: #3A3E44;
16
- --bg-invert-disabled: rgba(0, 0, 0, 0.2);
17
-
18
- --special-bgtabsoverlay: rgba(0, 0, 0, 0.03);
19
-
20
- --text-default: #0F1117;
21
- --text-default-hover: #000000;
22
- --text-default-active: #000000;
23
- --text-secondary: #4B5563;
24
- --text-secondary-hover: #374151;
25
- --text-secondary-active: #374151;
26
- --text-tertiary: #5B6370;
27
- --text-disabled: #525A68;
28
- --text-onbrand: #FFFFFF;
29
- --text-onaccent: #FFFFFF;
30
-
31
- --icon-default: #0F1117;
32
- --icon-default-hover: #000000;
33
- --icon-default-active: #000000;
34
- --icon-secondary: #4B5563;
35
- --icon-secondary-hover: #374151;
36
- --icon-secondary-active: #374151;
37
- --icon-tertiary: #5B6370;
38
- --icon-disabled: #525A68;
39
- --icon-onbrand: #FFFFFF;
40
- --icon-onaccent: #FFFFFF;
41
-
42
- --border-neutral-l1: rgba(0, 0, 0, 0.12);
43
- --border-neutral-l2: rgba(0, 0, 0, 0.18);
44
- --border-neutral-l3: rgba(0, 0, 0, 0.25);
45
- --border-contrast: #FFFFFF;
46
-
47
- --bg-brand-popup: rgba(83, 81, 100, 0.15);
48
-
49
- --code-text: #1A1B1D;
50
- --code-doc: #9599A6;
51
- --code-link: #2E69FF;
52
- --code-number: #CE5D97;
53
- --code-action: #8B5CF6;
54
- --code-instruction: #7C3AED;
55
- --code-function: #EA580C;
56
- --code-constant: #0EA5E9;
57
- --code-parameter: #16A34A;
58
- --code-attribute: #CA8A04;
59
- --code-tag: #DC2626;
60
-
61
- --accent-teal: #16A34A;
62
- --accent-coral: #EF4444;
63
- --accent-amber: #CA8A04;
64
- --accent-lime: #65A30D;
65
- --accent-cyan: #0891B2;
66
- --accent-blue: #2563EB;
67
- --accent-magenta: #D946EF;
68
- --accent-violet: #7C3AED;
69
- --accent-slate: #475569;
70
-
71
- --color-background: var(--bg-base-default);
72
- --color-surface: var(--bg-base-secondary);
73
- --color-surface-variant: var(--bg-base-tertiary);
74
- --color-overlay-1: var(--bg-overlay-l1);
75
- --color-overlay-2: var(--bg-overlay-l2);
76
- --color-overlay-3: var(--bg-overlay-l3);
77
- --color-overlay-4: var(--bg-overlay-l4);
78
- --color-card: var(--bg-base-secondary);
79
- --color-tooltip: var(--bg-tooltip);
80
- --color-menu: var(--bg-menu);
81
- --color-foreground: var(--text-default);
82
- --color-foreground-hover: var(--text-default-hover);
83
- --color-on-surface: var(--text-default);
84
- --color-on-surface-variant: var(--text-secondary);
85
- --color-muted-foreground: var(--text-secondary);
86
- --color-disabled-foreground: var(--text-disabled);
87
- --color-on-primary: var(--text-onbrand);
88
- --color-border: var(--border-neutral-l1);
89
- --color-border-strong: var(--border-neutral-l2);
90
- --color-border-stronger: var(--border-neutral-l3);
91
- --color-border-contrast: var(--border-contrast);
92
- --color-outline: var(--border-neutral-l1);
93
-
94
- --status-primary-default: #2E69FF;
95
- --status-primary-hover: #255AEA;
96
- --status-primary-active: #1D4FD9;
97
- --status-primary-surface-l1: rgba(46, 105, 255, 0.08);
98
- --status-primary-surface-l2: rgba(46, 105, 255, 0.12);
99
- --status-primary-surface-l3: rgba(46, 105, 255, 0.16);
100
- --status-info-default: #33b9c1;
101
- --status-info-hover: #47c5cc;
102
- --status-info-active: #269fa6;
103
- --status-info-surface-l1: rgba(51, 185, 193, 0.1);
104
- --status-info-surface-l2: rgba(51, 185, 193, 0.15);
105
- --status-info-surface-l3: rgba(51, 185, 193, 0.2);
106
-
107
- --status-success-default: #16A34A;
108
- --status-success-hover: #15803D;
109
- --status-success-active: #166534;
110
- --status-success-surface-l1: rgba(22, 163, 74, 0.08);
111
- --status-success-surface-l2: rgba(22, 163, 74, 0.12);
112
- --status-success-surface-l3: rgba(22, 163, 74, 0.16);
113
-
114
- --status-warning-default: #CA8A04;
115
- --status-warning-hover: #A16207;
116
- --status-warning-active: #854D0E;
117
- --status-warning-surface-l1: rgba(202, 138, 4, 0.08);
118
- --status-warning-surface-l2: rgba(202, 138, 4, 0.12);
119
- --status-warning-surface-l3: rgba(202, 138, 4, 0.16);
120
-
121
- --status-error-default: #DC2626;
122
- --status-error-hover: #B91C1C;
123
- --status-error-active: #991B1B;
124
- --status-error-surface-l1: rgba(220, 38, 38, 0.08);
125
- --status-error-surface-l2: rgba(220, 38, 38, 0.12);
126
- --status-error-surface-l3: rgba(220, 38, 38, 0.16);
127
-
128
- --status-alert-default: #F97316;
129
- --status-alert-hover: #EA580C;
130
- --status-alert-active: #C2410C;
131
- --status-alert-surface-l1: rgba(249, 115, 22, 0.08);
132
- --status-alert-surface-l2: rgba(249, 115, 22, 0.12);
133
- --status-alert-surface-l3: rgba(249, 115, 22, 0.16);
134
-
135
- --brand-green-100: #DCFCE7;
136
- --brand-green-200: #BBF7D0;
137
- --brand-green-300: #86EFAC;
138
- --brand-green-400: #4ADE80;
139
- --brand-green-500: #22C55E;
140
- --brand-green-600: #16A34A;
141
- --brand-green-700: #15803D;
142
- --brand-green-800: #166534;
143
- --brand-green-900: #14532D;
144
- --brand-green-1000: #0D3F23;
145
-
146
- --brand-red-100: #FEE2E2;
147
- --brand-red-200: #FECACA;
148
- --brand-red-300: #FCA5A5;
149
- --brand-red-400: #F87171;
150
- --brand-red-500: #EF4444;
151
- --brand-red-600: #DC2626;
152
- --brand-red-700: #B91C1C;
153
- --brand-red-800: #991B1B;
154
- --brand-red-900: #7F1D1D;
155
- --brand-red-1000: #5C1313;
156
-
157
- --brand-yellow-100: #FEFCE8;
158
- --brand-yellow-200: #FEF9C3;
159
- --brand-yellow-300: #FEF08A;
160
- --brand-yellow-400: #FDE047;
161
- --brand-yellow-500: #FACC15;
162
- --brand-yellow-600: #EAB308;
163
- --brand-yellow-700: #CA8A04;
164
- --brand-yellow-800: #A16207;
165
- --brand-yellow-900: #854D0E;
166
- --brand-yellow-1000: #6B3B09;
167
-
168
- --brand-blue-100: #EFF6FF;
169
- --brand-blue-200: #DBEAFE;
170
- --brand-blue-300: #BFDBFE;
171
- --brand-blue-400: #93C5FD;
172
- --brand-blue-500: #60A5FA;
173
- --brand-blue-600: #3B82F6;
174
- --brand-blue-700: #2563EB;
175
- --brand-blue-800: #1D4ED8;
176
- --brand-blue-900: #1E40AF;
177
- --brand-blue-1000: #1E3A8A;
178
-
179
- --brand-purple-100: #F5F3FF;
180
- --brand-purple-200: #EDE9FE;
181
- --brand-purple-300: #DDD6FE;
182
- --brand-purple-400: #C4B5FD;
183
- --brand-purple-500: #A78BFA;
184
- --brand-purple-600: #8B5CF6;
185
- --brand-purple-700: #7C3AED;
186
- --brand-purple-800: #6D28D9;
187
- --brand-purple-900: #5B21B6;
188
- --brand-purple-1000: #4C1D95;
189
-
190
- --brand-gray-100: #F3F4F6;
191
- --brand-gray-200: #E5E7EB;
192
- --brand-gray-300: #D1D5DB;
193
- --brand-gray-400: #9CA3AF;
194
- --brand-gray-500: #6B7280;
195
- --brand-gray-600: #4B5563;
196
- --brand-gray-700: #374151;
197
- --brand-gray-800: #1F2937;
198
- --brand-gray-900: #111827;
199
- --brand-gray-1000: #030712;
200
-
201
- --viz-graph-bg: #F5F6F8;
202
- --viz-graph-line: rgba(0, 0, 0, 0.08);
203
- --viz-series-1: #22C55E;
204
- --viz-series-2: #2E69FF;
205
- --viz-series-3: #8B5CF6;
206
- --viz-series-4: #F97316;
207
- --viz-series-5: #EC4899;
208
- --viz-series-6: #06B6D4;
209
-
210
- --border-brand: rgba(83, 81, 100, 0.4);
211
- --border-brand-hover: rgba(83, 81, 100, 0.6);
212
- --border-brand-active: rgba(83, 81, 100, 0.8);
213
-
214
- --bg-brand: #535164;
215
- --bg-brand-hover: #434154;
216
- --bg-brand-disabled: rgba(83, 81, 100, 0.3);
217
- --bg-brand-overlay: rgba(83, 81, 100, 0.08);
218
-
219
- --bg-error-default: #EF4444;
220
- --bg-warning-default: #F59E0B;
221
- --bg-success-default: #10B981;
222
-
223
- --text-brand: #434154;
224
- --text-brand-hover: #333144;
225
- --text-brand-active: #232134;
226
-
227
- --icon-brand: #434154;
228
- --icon-brand-hover: #333144;
229
- --icon-brand-active: #232134;
230
-
231
- --bg-progress-success: #16A34A;
232
- --bg-progress-warning: #CA8A04;
233
- --bg-progress-error: #DC2626;
234
- --bg-progress-info: #2E69FF;
235
-
236
- --bg-slider-track: rgba(0, 0, 0, 0.06);
237
- --bg-slider-fill: #22C55E;
238
- --bg-slider-thumb: #22C55E;
239
-
240
- --bg-calendar-hover: rgba(0, 0, 0, 0.04);
241
- --bg-calendar-selected: #22C55E;
242
- --text-calendar-selected: #FFFFFF;
243
-
244
- --bg-fileupload-border: rgba(0, 0, 0, 0.12);
245
- --bg-fileupload-hover: rgba(34, 197, 94, 0.08);
246
- --bg-fileupload-dragging: rgba(34, 197, 94, 0.12);
247
-
248
- --bg-timeline-line: rgba(0, 0, 0, 0.12);
249
- --bg-timeline-marker: #22C55E;
250
-
251
- --body-xs-font-size: 11px;
252
- --body-xs-line-height: 16px;
253
- --body-sm-font-size: 12px;
254
- --body-sm-line-height: 18px;
255
- --body-base-font-size: 13px;
256
- --body-base-line-height: 20px;
257
- --body-strong-xs-font-weight: 500;
258
- --body-strong-sm-font-weight: 500;
259
- --body-strong-base-font-weight: 500;
260
-
261
- --heading-3xs-font-size: 11px;
262
- --heading-3xs-line-height: 16px;
263
- --heading-2xs-font-size: 12px;
264
- --heading-2xs-line-height: 16px;
265
- --heading-xs-font-size: 13px;
266
- --heading-xs-line-height: 18px;
267
- --heading-sm-font-size: 14px;
268
- --heading-sm-line-height: 20px;
269
- --heading-base-font-size: 16px;
270
- --heading-base-line-height: 22px;
271
- --heading-md-font-size: 18px;
272
- --heading-md-line-height: 24px;
273
- --heading-lg-font-size: 20px;
274
- --heading-lg-line-height: 28px;
275
- --heading-xl-font-size: 24px;
276
- --heading-xl-line-height: 32px;
277
- --heading-2xl-font-size: 28px;
278
- --heading-2xl-line-height: 36px;
279
- --heading-3xl-font-size: 32px;
280
- --heading-3xl-line-height: 40px;
281
- --heading-font-weight: 600;
282
-
283
- --code-editor-font-family: 'JetBrains Mono', 'Fira Code', monospace;
284
- --code-editor-font-size: 13px;
285
- --code-editor-font-weight: 450;
286
- --code-editor-line-height: 20px;
287
- --code-editor-letter-spacing: -0.02em;
288
- --code-terminal-font-family: 'JetBrains Mono', 'Fira Code', monospace;
289
- --code-terminal-font-size: 13px;
290
- --code-terminal-font-weight: 450;
291
- --code-terminal-line-height: 20px;
292
-
293
- --icon-filter: brightness(0) saturate(0) invert(0.4);
294
-
295
- .ds-input--prefix {
296
- background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666B75' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'></circle><line x1='21' y1='21' x2='16.65' y2='16.65'></line></svg>") !important;
297
- }
298
- }