@matdata/yasgui 5.0.1 → 5.1.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.
@@ -0,0 +1,520 @@
1
+ // Theme variables and styles for Yasgui
2
+ // Supports light (default) and dark themes
3
+
4
+ :root {
5
+ // Light theme colors (default)
6
+ --yasgui-bg-primary: #ffffff;
7
+ --yasgui-bg-secondary: #f7f7f7;
8
+ --yasgui-bg-tertiary: #eee;
9
+ --yasgui-text-primary: rgba(0, 0, 0, 0.87);
10
+ --yasgui-text-secondary: #505050;
11
+ --yasgui-text-muted: #999;
12
+ --yasgui-border-color: #ddd;
13
+ --yasgui-border-color-secondary: rgba(0, 0, 0, 0.26);
14
+ --yasgui-border-color-light: #d1d1d1;
15
+ --yasgui-link-color: #337ab7;
16
+ --yasgui-link-hover: #2a6496;
17
+ --yasgui-accent-color: #337ab7;
18
+ --yasgui-button-text: #505050;
19
+ --yasgui-button-hover: #000;
20
+ --yasgui-chip-bg: #f5f5f5;
21
+ --yasgui-chip-text: #505050;
22
+ --yasgui-tab-bg: #ffffff;
23
+ --yasgui-tab-bg-active: #f9f9f9;
24
+ --yasgui-tab-border: #ddd;
25
+ --yasgui-input-border: rgba(0, 0, 0, 0.26);
26
+ --yasgui-input-focus: #337ab7;
27
+ --yasgui-label-color: rgba(0, 0, 0, 0.54);
28
+ --yasgui-tooltip-bg: rgba(0, 0, 0, 0.8);
29
+ --yasgui-tooltip-text: #fff;
30
+ --yasgui-error-color: #d32f2f;
31
+ --yasgui-notification-bg: #eee;
32
+ --yasgui-notification-text: #999;
33
+ --yasgui-help-bg: #dff0ff;
34
+ --yasgui-help-text: #428bca;
35
+ --yasgui-fallback-bg: #f7f7f7;
36
+ --yasgui-fallback-border: #d1d1d1;
37
+ --yasgui-resize-handle: #d1d1d1;
38
+ --yasgui-nav-bg: #eee;
39
+ }
40
+
41
+ [data-theme="dark"] {
42
+ // Dark theme colors
43
+ --yasgui-bg-primary: #1e1e1e;
44
+ --yasgui-bg-secondary: #252526;
45
+ --yasgui-bg-tertiary: #2d2d30;
46
+ --yasgui-text-primary: #d4d4d4;
47
+ --yasgui-text-secondary: #cccccc;
48
+ --yasgui-text-muted: #858585;
49
+ --yasgui-border-color: #3e3e42;
50
+ --yasgui-border-color-secondary: rgba(255, 255, 255, 0.15);
51
+ --yasgui-border-color-light: #3e3e42;
52
+ --yasgui-link-color: #4fc3f7;
53
+ --yasgui-link-hover: #81d4fa;
54
+ --yasgui-accent-color: #4fc3f7;
55
+ --yasgui-button-text: #cccccc;
56
+ --yasgui-button-hover: #ffffff;
57
+ --yasgui-chip-bg: #2d2d30;
58
+ --yasgui-chip-text: #cccccc;
59
+ --yasgui-tab-bg: #2d2d30;
60
+ --yasgui-tab-bg-active: #1e1e1e;
61
+ --yasgui-tab-border: #3e3e42;
62
+ --yasgui-input-border: rgba(255, 255, 255, 0.15);
63
+ --yasgui-input-focus: #4fc3f7;
64
+ --yasgui-label-color: rgba(255, 255, 255, 0.6);
65
+ --yasgui-tooltip-bg: rgba(55, 55, 55, 0.95);
66
+ --yasgui-tooltip-text: #d4d4d4;
67
+ --yasgui-error-color: #f48771;
68
+ --yasgui-notification-bg: #2d2d30;
69
+ --yasgui-notification-text: #858585;
70
+ --yasgui-help-bg: #1a4d5e;
71
+ --yasgui-help-text: #4fc3f7;
72
+ --yasgui-fallback-bg: #252526;
73
+ --yasgui-fallback-border: #3e3e42;
74
+ --yasgui-resize-handle: #3e3e42;
75
+ --yasgui-nav-bg: #2d2d30;
76
+ }
77
+
78
+ // Apply theme colors to Yasgui components
79
+ .yasgui {
80
+ background-color: var(--yasgui-bg-primary);
81
+ color: var(--yasgui-text-primary);
82
+
83
+ a {
84
+ color: var(--yasgui-link-color);
85
+
86
+ &:hover,
87
+ &:active {
88
+ color: var(--yasgui-link-hover);
89
+ }
90
+ }
91
+
92
+ // Tabs styling
93
+ .tabsList {
94
+ background: var(--yasgui-bg-primary);
95
+ border-bottom: 1px solid var(--yasgui-border-color);
96
+ }
97
+
98
+ .tab {
99
+ background: var(--yasgui-tab-bg);
100
+ color: var(--yasgui-text-primary);
101
+ border-color: var(--yasgui-tab-border);
102
+
103
+ a {
104
+ color: var(--yasgui-text-primary);
105
+ }
106
+
107
+ &.active {
108
+ background: var(--yasgui-tab-bg-active);
109
+ border-bottom-color: var(--yasgui-tab-bg-active);
110
+
111
+ a {
112
+ color: var(--yasgui-text-primary);
113
+ }
114
+ }
115
+
116
+ &:hover:not(.active) {
117
+ background: var(--yasgui-bg-secondary);
118
+
119
+ a {
120
+ color: var(--yasgui-text-primary);
121
+ }
122
+ }
123
+ }
124
+
125
+ // Text fields
126
+ .yasgui_textfield {
127
+ > label {
128
+ color: var(--yasgui-label-color);
129
+ }
130
+
131
+ > input,
132
+ > textarea {
133
+ color: var(--yasgui-text-primary);
134
+ border-bottom-color: var(--yasgui-input-border);
135
+ background-color: transparent;
136
+
137
+ &:focus {
138
+ border-color: var(--yasgui-input-focus);
139
+ }
140
+ }
141
+
142
+ > input:focus ~ label,
143
+ > textarea:focus ~ label {
144
+ color: var(--yasgui-input-focus);
145
+ }
146
+ }
147
+
148
+ // Theme toggle button
149
+ .themeToggle {
150
+ border: none;
151
+ background: transparent;
152
+ cursor: pointer;
153
+ padding: 6px 8px;
154
+ color: var(--yasgui-button-text);
155
+ fill: var(--yasgui-button-text);
156
+ display: flex;
157
+ align-items: center;
158
+ justify-content: center;
159
+ border-radius: 4px;
160
+ margin-left: 5px;
161
+
162
+ &:hover {
163
+ color: var(--yasgui-button-hover);
164
+ fill: var(--yasgui-button-hover);
165
+ background: var(--yasgui-bg-secondary);
166
+ }
167
+
168
+ svg {
169
+ width: 20px;
170
+ height: 20px;
171
+ }
172
+ }
173
+
174
+ // Endpoint textbox theming
175
+ .autocomplete {
176
+ background-color: var(--yasgui-bg-primary) !important;
177
+ color: var(--yasgui-text-primary) !important;
178
+ border-color: var(--yasgui-border-color) !important;
179
+
180
+ &:hover {
181
+ border-color: var(--yasgui-border-color-light) !important;
182
+ }
183
+
184
+ &:focus {
185
+ border-color: var(--yasgui-accent-color) !important;
186
+ }
187
+ }
188
+
189
+ .autocompleteList {
190
+ background: var(--yasgui-bg-primary) !important;
191
+ border-color: var(--yasgui-border-color) !important;
192
+
193
+ .autoComplete_result {
194
+ color: var(--yasgui-text-primary);
195
+
196
+ b {
197
+ color: var(--yasgui-accent-color) !important;
198
+ }
199
+
200
+ &.autoComplete_selected,
201
+ &:hover {
202
+ background: var(--yasgui-bg-secondary) !important;
203
+ }
204
+
205
+ .removeItem {
206
+ color: var(--yasgui-text-primary) !important;
207
+ text-shadow: none !important;
208
+
209
+ &:hover {
210
+ color: var(--yasgui-accent-color) !important;
211
+ }
212
+ }
213
+ }
214
+
215
+ .noResults {
216
+ color: var(--yasgui-text-muted);
217
+ }
218
+ }
219
+
220
+ .clearEndpointBtn {
221
+ background-color: var(--yasgui-bg-secondary) !important;
222
+ border-color: var(--yasgui-border-color) !important;
223
+ color: var(--yasgui-button-text) !important;
224
+
225
+ &:hover {
226
+ background-color: var(--yasgui-bg-tertiary) !important;
227
+ }
228
+ }
229
+ }
230
+
231
+ // Yasqe (editor) theming
232
+ .yasqe {
233
+ background-color: var(--yasgui-bg-primary);
234
+
235
+ .CodeMirror {
236
+ background-color: var(--yasgui-bg-primary);
237
+ color: var(--yasgui-text-primary);
238
+ }
239
+
240
+ .notification {
241
+ color: var(--yasgui-notification-text) !important;
242
+ background-color: var(--yasgui-notification-bg) !important;
243
+ }
244
+
245
+ .yasqe_tooltip {
246
+ background: var(--yasgui-tooltip-bg);
247
+ color: var(--yasgui-tooltip-text);
248
+ }
249
+
250
+ .resizeChip {
251
+ background-color: var(--yasgui-resize-handle);
252
+ }
253
+
254
+ .parseErrorIcon svg g {
255
+ fill: var(--yasgui-error-color);
256
+ }
257
+
258
+ // Yasqe buttons theming (share, query, fullscreen)
259
+ .yasqe_buttons {
260
+ svg {
261
+ fill: var(--yasgui-button-text) !important;
262
+ }
263
+
264
+ .yasqe_share {
265
+ &:hover svg {
266
+ fill: var(--yasgui-button-hover) !important;
267
+ }
268
+ }
269
+
270
+ .yasqe_fullscreenButton {
271
+ &:hover svg {
272
+ fill: var(--yasgui-accent-color) !important;
273
+ }
274
+ }
275
+
276
+ .yasqe_sharePopup {
277
+ background-color: var(--yasgui-bg-primary) !important;
278
+ border-color: var(--yasgui-border-color) !important;
279
+
280
+ input,
281
+ textarea {
282
+ background-color: var(--yasgui-bg-secondary);
283
+ color: var(--yasgui-text-primary);
284
+ border-color: var(--yasgui-border-color);
285
+ }
286
+ }
287
+ }
288
+
289
+ .yasqe_btn {
290
+ background-color: var(--yasgui-bg-primary) !important;
291
+ color: var(--yasgui-text-primary) !important;
292
+ border-color: var(--yasgui-border-color) !important;
293
+
294
+ &:hover {
295
+ background-color: var(--yasgui-bg-secondary) !important;
296
+ border-color: var(--yasgui-border-color-light) !important;
297
+ }
298
+
299
+ &:focus,
300
+ &.selected {
301
+ background-color: var(--yasgui-accent-color) !important;
302
+ border-color: var(--yasgui-accent-color) !important;
303
+ color: var(--yasgui-bg-primary) !important;
304
+ }
305
+
306
+ &.btn_icon:focus {
307
+ background-color: var(--yasgui-bg-primary) !important;
308
+ color: var(--yasgui-text-primary) !important;
309
+ border-color: var(--yasgui-border-color) !important;
310
+ }
311
+ }
312
+
313
+ &.fullscreen {
314
+ background: var(--yasgui-bg-primary) !important;
315
+ }
316
+ }
317
+
318
+ // CodeMirror hints theming
319
+ .CodeMirror-hints {
320
+ background: var(--yasgui-bg-primary) !important;
321
+ border-color: var(--yasgui-border-color) !important;
322
+ }
323
+
324
+ .CodeMirror-hint {
325
+ color: var(--yasgui-text-primary) !important;
326
+ }
327
+
328
+ li.CodeMirror-hint-active {
329
+ background: var(--yasgui-accent-color) !important;
330
+ color: var(--yasgui-bg-primary) !important;
331
+ }
332
+
333
+ // Yasr (results) theming
334
+ .yasr {
335
+ background-color: var(--yasgui-bg-primary);
336
+ color: var(--yasgui-text-primary);
337
+
338
+ a {
339
+ color: var(--yasgui-link-color);
340
+
341
+ &:hover,
342
+ &:active {
343
+ color: var(--yasgui-link-hover);
344
+ }
345
+ }
346
+
347
+ .yasr_btn {
348
+ color: var(--yasgui-button-text);
349
+ fill: var(--yasgui-button-text);
350
+
351
+ &.selected {
352
+ border-bottom-color: var(--yasgui-accent-color);
353
+ }
354
+
355
+ &:not(.disabled):hover {
356
+ fill: var(--yasgui-button-hover);
357
+ color: var(--yasgui-button-hover);
358
+ }
359
+ }
360
+
361
+ .yasr_response_chip {
362
+ color: var(--yasgui-chip-text);
363
+ background: var(--yasgui-chip-bg);
364
+ }
365
+
366
+ .yasr_fallback_info:not(:empty) {
367
+ border-color: var(--yasgui-fallback-border);
368
+ background: var(--yasgui-fallback-bg);
369
+ }
370
+
371
+ .yasr_help_variable {
372
+ background: var(--yasgui-help-bg);
373
+ color: var(--yasgui-help-text);
374
+ }
375
+
376
+ &.fullscreen {
377
+ background: var(--yasgui-bg-primary);
378
+ }
379
+
380
+ .yasr_loading_spinner {
381
+ border-color: var(--yasgui-bg-secondary);
382
+ border-top-color: var(--yasgui-accent-color);
383
+ }
384
+
385
+ // Table plugin theming
386
+ .dataTable {
387
+ background-color: var(--yasgui-bg-primary);
388
+ color: var(--yasgui-text-primary);
389
+
390
+ thead th {
391
+ background-color: var(--yasgui-bg-secondary);
392
+ color: var(--yasgui-text-primary);
393
+ border-bottom-color: var(--yasgui-border-color);
394
+ }
395
+
396
+ tbody td {
397
+ border-color: var(--yasgui-border-color-light);
398
+ color: var(--yasgui-text-primary);
399
+ }
400
+
401
+ tbody tr:hover {
402
+ background-color: var(--yasgui-bg-secondary);
403
+ }
404
+ }
405
+
406
+ .tableControls {
407
+ input,
408
+ select {
409
+ background-color: var(--yasgui-bg-secondary);
410
+ color: var(--yasgui-text-primary);
411
+ border-color: var(--yasgui-input-border);
412
+
413
+ &:focus {
414
+ border-color: var(--yasgui-input-focus);
415
+ }
416
+ }
417
+ }
418
+
419
+ // Error plugin theming
420
+ .errorResult {
421
+ .errorMessageContainer {
422
+ .errorMessage {
423
+ color: var(--yasgui-text-primary) !important;
424
+ background-color: var(--yasgui-bg-secondary) !important;
425
+ border-color: var(--yasgui-border-color) !important;
426
+ }
427
+ }
428
+
429
+ .redOutline {
430
+ color: var(--yasgui-error-color) !important;
431
+ background-color: var(--yasgui-bg-secondary) !important;
432
+ border-color: var(--yasgui-error-color) !important;
433
+ }
434
+ }
435
+
436
+ // Response plugin theming
437
+ .yasr_results {
438
+ .CodeMirror {
439
+ background-color: var(--yasgui-bg-primary) !important;
440
+ color: var(--yasgui-text-primary) !important;
441
+ border-color: var(--yasgui-border-color) !important;
442
+
443
+ &.overflow::before {
444
+ background: linear-gradient(
445
+ transparent 0%,
446
+ var(--yasgui-bg-primary) 75%,
447
+ var(--yasgui-bg-primary) 100%
448
+ ) !important;
449
+ }
450
+ }
451
+
452
+ .overlay_content {
453
+ background: var(--yasgui-bg-primary) !important;
454
+ background: linear-gradient(
455
+ to right,
456
+ transparent,
457
+ var(--yasgui-bg-primary) 5%,
458
+ var(--yasgui-bg-primary) 95%,
459
+ transparent 100%
460
+ ) !important;
461
+ }
462
+
463
+ .yasr_btn.overlay_btn {
464
+ background: var(--yasgui-bg-primary) !important;
465
+ color: var(--yasgui-accent-color) !important;
466
+ border-color: var(--yasgui-accent-color) !important;
467
+
468
+ svg {
469
+ fill: var(--yasgui-accent-color) !important;
470
+ color: var(--yasgui-accent-color) !important;
471
+ }
472
+
473
+ &:hover {
474
+ color: var(--yasgui-link-hover) !important;
475
+ border-color: var(--yasgui-accent-color) !important;
476
+ fill: var(--yasgui-link-hover) !important;
477
+
478
+ svg {
479
+ color: var(--yasgui-link-hover) !important;
480
+ fill: var(--yasgui-link-hover) !important;
481
+ }
482
+ }
483
+ }
484
+ }
485
+
486
+ .cm-s-default {
487
+ background-color: var(--yasgui-bg-primary);
488
+ color: var(--yasgui-text-primary);
489
+ }
490
+ }
491
+
492
+ // Modal theming
493
+ .modal {
494
+ .modal-content {
495
+ background-color: var(--yasgui-bg-primary);
496
+ color: var(--yasgui-text-primary);
497
+ border-color: var(--yasgui-border-color);
498
+ }
499
+
500
+ .modal-header {
501
+ border-bottom-color: var(--yasgui-border-color);
502
+ }
503
+
504
+ .modal-footer {
505
+ border-top-color: var(--yasgui-border-color);
506
+ }
507
+
508
+ input,
509
+ textarea,
510
+ select {
511
+ background-color: var(--yasgui-bg-secondary);
512
+ color: var(--yasgui-text-primary);
513
+ border-color: var(--yasgui-input-border);
514
+
515
+ &:focus {
516
+ border-color: var(--yasgui-input-focus);
517
+ background-color: var(--yasgui-bg-primary);
518
+ }
519
+ }
520
+ }