x4js 1.4.4 → 1.4.7

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.
Files changed (85) hide show
  1. package/lib/application.d.ts +96 -0
  2. package/lib/application.js +146 -0
  3. package/lib/base64.d.ts +31 -0
  4. package/lib/base64.js +139 -0
  5. package/lib/base_component.d.ts +64 -0
  6. package/lib/base_component.js +81 -0
  7. package/lib/button.d.ts +145 -0
  8. package/lib/button.js +241 -0
  9. package/lib/calendar.d.ts +77 -0
  10. package/lib/calendar.js +241 -0
  11. package/lib/canvas.d.ts +88 -0
  12. package/lib/canvas.js +358 -0
  13. package/lib/cardview.d.ts +83 -0
  14. package/lib/cardview.js +156 -0
  15. package/lib/checkbox.d.ts +72 -0
  16. package/lib/checkbox.js +130 -0
  17. package/lib/color.d.ts +144 -0
  18. package/lib/color.js +588 -0
  19. package/lib/colorpicker.js +86 -80
  20. package/lib/combobox.js +26 -22
  21. package/lib/component.d.ts +572 -0
  22. package/lib/component.js +1729 -0
  23. package/lib/datastore.js +29 -20
  24. package/lib/dialog.js +41 -36
  25. package/lib/dom_events.d.ts +284 -0
  26. package/lib/dom_events.js +14 -0
  27. package/lib/drag_manager.js +4 -1
  28. package/lib/drawtext.js +9 -5
  29. package/lib/fileupload.js +19 -12
  30. package/lib/form.js +29 -25
  31. package/lib/formatters.js +19 -10
  32. package/lib/gridview.js +40 -35
  33. package/lib/hosts/host.d.ts +44 -0
  34. package/lib/hosts/host.js +73 -0
  35. package/lib/i18n.d.ts +67 -0
  36. package/lib/i18n.js +175 -0
  37. package/lib/icon.d.ts +56 -0
  38. package/lib/icon.js +178 -0
  39. package/lib/image.js +7 -3
  40. package/lib/index.js +71 -55
  41. package/lib/input.d.ts +86 -0
  42. package/lib/input.js +176 -0
  43. package/lib/label.d.ts +54 -0
  44. package/lib/label.js +90 -0
  45. package/lib/layout.d.ts +77 -0
  46. package/lib/layout.js +271 -0
  47. package/lib/link.js +9 -5
  48. package/lib/listview.js +34 -27
  49. package/lib/md5.js +5 -1
  50. package/lib/menu.d.ts +122 -0
  51. package/lib/menu.js +284 -0
  52. package/lib/messagebox.js +22 -17
  53. package/lib/panel.js +13 -9
  54. package/lib/popup.d.ts +71 -0
  55. package/lib/popup.js +378 -0
  56. package/lib/property_editor.js +20 -16
  57. package/lib/radiobtn.js +13 -9
  58. package/lib/rating.js +13 -9
  59. package/lib/request.js +16 -9
  60. package/lib/router.js +5 -1
  61. package/lib/settings.d.ts +33 -0
  62. package/lib/settings.js +67 -0
  63. package/lib/sidebarview.js +12 -8
  64. package/lib/smartedit.js +16 -11
  65. package/lib/spreadsheet.js +35 -31
  66. package/lib/styles.d.ts +81 -0
  67. package/lib/styles.js +268 -0
  68. package/lib/svgcomponent.js +8 -3
  69. package/lib/tabbar.js +10 -6
  70. package/lib/tabview.js +10 -6
  71. package/lib/textarea.js +10 -6
  72. package/lib/textedit.js +39 -35
  73. package/lib/texthiliter.js +8 -4
  74. package/lib/toaster.js +8 -4
  75. package/lib/tools.d.ts +382 -0
  76. package/lib/tools.js +1142 -0
  77. package/lib/tooltips.js +14 -9
  78. package/lib/treeview.js +30 -26
  79. package/lib/x4_events.d.ts +253 -0
  80. package/lib/x4_events.js +375 -0
  81. package/package.json +1 -1
  82. package/src/application.ts +9 -4
  83. package/src/x4.less +143 -107
  84. package/tsconfig.json +1 -1
  85. package/x4.css +1541 -0
package/x4.css ADDED
@@ -0,0 +1,1541 @@
1
+ :root {
2
+ --x4-font: "sans serif";
3
+ --x4-font-size: "13px";
4
+ --x4-base-color: #266888;
5
+ --x4-selection-color: #2458B3;
6
+ --x4-hover-color: rgba(36, 88, 179, 0.9);
7
+ --x4-mask-color: rgba(36, 88, 179, 0.6);
8
+ --x4-focus-color: #2458B3;
9
+ --x4-error-color: #b92a09;
10
+ --x4-success-color: #0A6640;
11
+ --x4-form-color: white;
12
+ --x4-tip-background: rgba(0, 0, 0, 0.5);
13
+ --x4-button-color: #363636;
14
+ --x4-button-border-color: #000000;
15
+ --x4-scrollbar-width: 6px;
16
+ --x4-scrollbar-background: white;
17
+ --x4-scrollbar-thumb: grey;
18
+ --x4-sizer-size: 4px;
19
+ --x4-panel-border-color: rgba(0, 0, 0, 0.1);
20
+ --x4-icon-font-family: var("fonteawesome");
21
+ --x4-icon-circle-exclamation: "\f06a";
22
+ --x4-icon-chevron-right: "\f054";
23
+ --x4-icon-window-restore: "\f2d2";
24
+ --x4-icon-arrow-down-long: "\f175";
25
+ --x4-icon-arrow-up-long: "\f176";
26
+ }
27
+ .x4-root-element {
28
+ padding: 0;
29
+ margin: 0;
30
+ left: 0;
31
+ top: 0;
32
+ right: 0;
33
+ bottom: 0;
34
+ -webkit-font-smoothing: subpixel-antialiased;
35
+ text-rendering: geometricprecision;
36
+ font-family: var(--x4-font);
37
+ font-size: var(--x4-font-size);
38
+ }
39
+ input,
40
+ textarea {
41
+ font-family: inherit;
42
+ font-size: inherit;
43
+ }
44
+ textarea {
45
+ resize: none;
46
+ outline: none;
47
+ border: 1px solid transparent;
48
+ }
49
+ textarea:focus {
50
+ border: 1px solid var(--x4-selection-color);
51
+ }
52
+ textarea::selection {
53
+ background-color: var(--x4-selection-color);
54
+ color: #fff;
55
+ }
56
+ .z-float-4 {
57
+ box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.4);
58
+ }
59
+ .z-float-6 {
60
+ box-shadow: 6px 6px 10px rgba(0, 0, 0, 0.5);
61
+ }
62
+ .z-float-8 {
63
+ box-shadow: 8px 8px 16px rgba(0, 0, 0, 0.6);
64
+ }
65
+ .z-float-15 {
66
+ box-shadow: 4px 4px 15px rgba(0, 0, 0, 0.6);
67
+ }
68
+ .x-comp {
69
+ user-select: none;
70
+ box-sizing: border-box;
71
+ position: relative;
72
+ }
73
+ .x-flex {
74
+ min-height: 0;
75
+ min-width: 0;
76
+ flex: 1;
77
+ flex-basis: 0;
78
+ }
79
+ .x-fit {
80
+ position: absolute;
81
+ left: 0;
82
+ top: 0;
83
+ right: 0;
84
+ bottom: 0;
85
+ }
86
+ .x-hfit {
87
+ position: relative;
88
+ left: 0;
89
+ right: 0;
90
+ }
91
+ .x-vfit {
92
+ position: relative;
93
+ top: 0;
94
+ bottom: 0;
95
+ }
96
+ .x-hlayout {
97
+ display: flex;
98
+ flex-direction: row;
99
+ overflow: hidden;
100
+ }
101
+ .x-hlayout.center {
102
+ align-items: center;
103
+ }
104
+ .x-grid-layout {
105
+ display: grid;
106
+ justify-content: space-evenly;
107
+ }
108
+ .x-vlayout {
109
+ display: flex;
110
+ flex-direction: column;
111
+ }
112
+ .x-label {
113
+ color: inherit;
114
+ }
115
+ .x-label.right {
116
+ text-align: right;
117
+ }
118
+ .x-label.center {
119
+ text-align: center;
120
+ }
121
+ .x-sizer-overlay {
122
+ position: absolute;
123
+ }
124
+ .x-sizer-overlay.top {
125
+ width: 100%;
126
+ height: var(--x4-sizer-size);
127
+ cursor: n-resize;
128
+ left: 0;
129
+ top: 0;
130
+ }
131
+ .x-sizer-overlay.bottom {
132
+ width: 100%;
133
+ height: var(--x4-sizer-size);
134
+ cursor: n-resize;
135
+ left: 0;
136
+ bottom: 0;
137
+ }
138
+ .x-sizer-overlay.right {
139
+ top: 0;
140
+ right: 0;
141
+ width: var(--x4-sizer-size);
142
+ height: 100%;
143
+ cursor: e-resize;
144
+ }
145
+ .x-sizer-overlay.left {
146
+ top: 0;
147
+ left: 0;
148
+ width: var(--x4-sizer-size);
149
+ height: 100%;
150
+ cursor: e-resize;
151
+ }
152
+ .x-sizer-bottom {
153
+ padding-bottom: var(--x4-sizer-size);
154
+ }
155
+ .x-icon {
156
+ display: inline-flex;
157
+ align-items: center;
158
+ text-align: center;
159
+ flex-direction: column;
160
+ }
161
+ .x-icon:before {
162
+ font-family: var(--x4-icon-font-family);
163
+ }
164
+ .x-icon.x-svg-icon {
165
+ width: 1em;
166
+ height: 1em;
167
+ }
168
+ .x-base-button {
169
+ display: flex;
170
+ flex-direction: row;
171
+ align-items: center;
172
+ outline: none;
173
+ cursor: pointer;
174
+ height: 2.5em;
175
+ padding: 8px;
176
+ border: 1px solid var(--x4-button-border-color);
177
+ overflow: hidden;
178
+ background-color: var(--x4-button-color);
179
+ color: rgba(255, 255, 255, 0.6);
180
+ }
181
+ .x-base-button .x-icon {
182
+ margin: 0 4px;
183
+ color: inherit;
184
+ }
185
+ .x-base-button:not(.x-disable):focus {
186
+ border-color: white;
187
+ }
188
+ .x-base-button:not(.x-disable).x-active {
189
+ color: white;
190
+ background-color: rgba(255, 255, 255, 0.2);
191
+ }
192
+ .x-base-button.x-disable {
193
+ color: gray;
194
+ }
195
+ .x-base-button.x-disable:after {
196
+ content: "";
197
+ background-color: rgba(255, 255, 255, 0.6);
198
+ left: 0;
199
+ right: 0;
200
+ display: block;
201
+ top: 0;
202
+ bottom: 0;
203
+ position: absolute;
204
+ cursor: default;
205
+ }
206
+ .x-image {
207
+ display: flex;
208
+ overflow: hidden;
209
+ }
210
+ .x-image img {
211
+ width: 100%;
212
+ height: 100%;
213
+ }
214
+ .x-video {
215
+ display: flex;
216
+ overflow: hidden;
217
+ }
218
+ .x-video video {
219
+ width: 100%;
220
+ height: 100%;
221
+ }
222
+ .x-image-upload {
223
+ width: 96px;
224
+ height: 96px;
225
+ margin: 24px;
226
+ }
227
+ .x-image-upload img {
228
+ width: 96px;
229
+ height: 96px;
230
+ background-color: rgba(255, 255, 255, 0.7);
231
+ border-radius: 50%;
232
+ }
233
+ .x-canvas {
234
+ overflow: hidden;
235
+ }
236
+ .x-canvas canvas {
237
+ position: absolute;
238
+ left: 0;
239
+ top: 0;
240
+ right: 0;
241
+ bottom: 0;
242
+ }
243
+ ::-webkit-scrollbar {
244
+ width: var(--x4-scrollbar-width);
245
+ height: var(--x4-scrollbar-width);
246
+ background-color: var(--x4-scrollbar-background);
247
+ box-sizing: border-box;
248
+ }
249
+ ::-webkit-scrollbar-thumb {
250
+ background-color: var(--x4-scrollbar-thumb);
251
+ }
252
+ .x-circular-chart {
253
+ background-color: white;
254
+ box-shadow: 6px 6px 10px rgba(0, 0, 0, 0.5);
255
+ }
256
+ .x-circular-chart .head {
257
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
258
+ padding: 2px;
259
+ height: 37px;
260
+ white-space: nowrap;
261
+ }
262
+ .x-circular-chart .head .x-label {
263
+ color: white;
264
+ padding: 8px;
265
+ }
266
+ .x-circular-chart .head .x-button {
267
+ height: 32px;
268
+ border: 1px solid rgba(255, 255, 255, 0.1);
269
+ }
270
+ .x-circular-chart .head .close-box {
271
+ color: white;
272
+ background-color: transparent;
273
+ border: none;
274
+ font-size: 28px;
275
+ padding-right: 0;
276
+ }
277
+ .x-text-edit,
278
+ .x-combo-box {
279
+ display: flex;
280
+ align-items: center;
281
+ width: min-content;
282
+ min-height: 32px;
283
+ padding: 0;
284
+ margin: 0;
285
+ margin-bottom: 4px;
286
+ }
287
+ .x-text-edit .x-hlayout,
288
+ .x-combo-box .x-hlayout,
289
+ .x-text-edit .x-vlayout,
290
+ .x-combo-box .x-vlayout {
291
+ overflow: visible;
292
+ }
293
+ .x-text-edit > .x-label,
294
+ .x-combo-box > .x-label {
295
+ padding: 4px;
296
+ color: rgba(0, 0, 0, 0.8);
297
+ margin-top: 1px;
298
+ line-height: 1.3em;
299
+ min-height: 2em;
300
+ }
301
+ .x-text-edit > .x-label:after,
302
+ .x-combo-box > .x-label:after {
303
+ content: ':';
304
+ }
305
+ .x-text-edit input,
306
+ .x-combo-box input,
307
+ .x-text-edit .x-fake-input,
308
+ .x-combo-box .x-fake-input {
309
+ height: 2em;
310
+ font-size: inherit;
311
+ outline: none;
312
+ border: none;
313
+ padding: 4px;
314
+ color: rgba(0, 0, 0, 0.9);
315
+ background-color: rgba(255, 255, 255, 0.25);
316
+ border-bottom: 1px solid transparent;
317
+ margin-top: 1px;
318
+ line-height: 1.3em;
319
+ }
320
+ .x-text-edit input::placeholder,
321
+ .x-combo-box input::placeholder,
322
+ .x-text-edit .x-fake-input::placeholder,
323
+ .x-combo-box .x-fake-input::placeholder {
324
+ color: rgba(255, 255, 255, 0.5);
325
+ }
326
+ .x-text-edit input::selection,
327
+ .x-combo-box input::selection,
328
+ .x-text-edit .x-fake-input::selection,
329
+ .x-combo-box .x-fake-input::selection {
330
+ background-color: var(--x4-selection-color);
331
+ color: #fff;
332
+ }
333
+ .x-text-edit:focus,
334
+ .x-combo-box:focus {
335
+ outline: none;
336
+ }
337
+ .x-text-edit:focus > .x-label,
338
+ .x-combo-box:focus > .x-label {
339
+ color: var(--x4-focus-color);
340
+ }
341
+ .x-text-edit .x-button.gadget,
342
+ .x-combo-box .x-button.gadget {
343
+ font-size: var(--x4-font-size);
344
+ background-color: rgba(0, 0, 0, 0.1);
345
+ border: none;
346
+ margin: 0;
347
+ padding: 0;
348
+ height: 2em;
349
+ margin-top: 1px;
350
+ }
351
+ .x-text-edit .x-button.gadget .x-icon,
352
+ .x-combo-box .x-button.gadget .x-icon {
353
+ font-size: 85%;
354
+ padding-right: 2px;
355
+ }
356
+ .x-text-edit:focus .x-button.gadget,
357
+ .x-combo-box:focus .x-button.gadget,
358
+ .x-text-edit:focus input,
359
+ .x-combo-box:focus input {
360
+ border-color: var(--x4-focus-color);
361
+ }
362
+ .x-text-edit:focus input,
363
+ .x-combo-box:focus input {
364
+ border-bottom: 1px solid var(--x4-focus-color);
365
+ }
366
+ .x-text-edit:focus .x-button.gadget,
367
+ .x-combo-box:focus .x-button.gadget {
368
+ color: var(--x4-focus-color);
369
+ }
370
+ .x-text-edit:focus .x-label,
371
+ .x-combo-box:focus .x-label {
372
+ color: var(--x4-focus-color);
373
+ }
374
+ .x-text-edit .error-info,
375
+ .x-combo-box .error-info {
376
+ font-size: 70%;
377
+ padding: 4px;
378
+ color: white;
379
+ padding-left: 19px;
380
+ padding-top: 6px;
381
+ pointer-events: none;
382
+ right: 0;
383
+ position: absolute;
384
+ top: -2px;
385
+ z-index: 1;
386
+ }
387
+ .x-text-edit .error-info:before,
388
+ .x-combo-box .error-info:before {
389
+ font-family: var(--x4-icon-font-family);
390
+ content: var(--x4-icon-circle-exclamation);
391
+ padding-right: 3px;
392
+ position: absolute;
393
+ left: 1px;
394
+ top: 6px;
395
+ }
396
+ .x-text-edit.x-required .label1:before,
397
+ .x-combo-box.x-required .label1:before {
398
+ content: '*';
399
+ padding-right: 2px;
400
+ }
401
+ .x-text-edit.x-error input,
402
+ .x-combo-box.x-error input {
403
+ border-bottom: none;
404
+ border-left: 4px solid var(--x4-error-color);
405
+ }
406
+ .x-combo-box > .x-label {
407
+ border-top: 1px solid transparent;
408
+ }
409
+ .x-combo-box .x-button.gadget,
410
+ .x-combo-box input,
411
+ .x-combo-box .x-fake-input {
412
+ border: 1px solid rgba(0, 0, 0, 0.1);
413
+ }
414
+ .x-combo-box .x-fake-input {
415
+ min-width: 2em;
416
+ }
417
+ .x-combo-box input,
418
+ .x-combo-box .x-fake-input {
419
+ cursor: default;
420
+ border-right: none;
421
+ }
422
+ .x-combo-box:focus .x-button.gadget,
423
+ .x-combo-box:focus input,
424
+ .x-combo-box:focus .x-fake-input {
425
+ border-color: var(--x4-focus-color);
426
+ }
427
+ .x-combo-box:focus input,
428
+ .x-combo-box:focus .x-fake-input {
429
+ border-bottom: 1px solid var(--x4-focus-color);
430
+ }
431
+ .x-combo-box:focus .x-button.gadget {
432
+ color: var(--x4-focus-color);
433
+ }
434
+ .x-combo-box:focus .x-label {
435
+ color: var(--x4-focus-color);
436
+ }
437
+ .x-hlayout > .x-combo-box {
438
+ margin-bottom: 0;
439
+ margin-right: 4px;
440
+ }
441
+ .x-text-edit.vertical {
442
+ align-items: stretch;
443
+ }
444
+ .x-text-edit input:read-only {
445
+ background-color: transparent;
446
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
447
+ }
448
+ .x-text-edit .x-button {
449
+ padding: 8px 4px;
450
+ height: auto;
451
+ border: none;
452
+ background-color: rgba(0, 0, 0, 0.1);
453
+ }
454
+ .x-text-edit .x-button:hover {
455
+ background-color: rgba(0, 0, 0, 0.3);
456
+ }
457
+ .x-text-edit:focus input {
458
+ border-bottom: 1px solid white;
459
+ }
460
+ .x-text-edit:focus .label1 {
461
+ color: black;
462
+ }
463
+ .x-check-box {
464
+ align-items: center;
465
+ color: rgba(0, 0, 0, 0.8);
466
+ outline: none;
467
+ padding: 4px 0;
468
+ }
469
+ .x-check-box input {
470
+ outline: none;
471
+ margin: 4px;
472
+ padding: 0;
473
+ }
474
+ .x-check-box .x-label {
475
+ padding: 4px;
476
+ }
477
+ .x-check-box:focus-within {
478
+ text-decoration: underline;
479
+ color: var(--x4-selection-color);
480
+ }
481
+ .x-check-box.slider input {
482
+ clip: rect(0 0 0 0);
483
+ position: absolute;
484
+ width: 1px;
485
+ height: 1px;
486
+ }
487
+ .x-check-box.slider .x-label:before {
488
+ box-sizing: border-box;
489
+ position: absolute;
490
+ left: 0px;
491
+ top: 3px;
492
+ content: "";
493
+ display: inline-block;
494
+ width: 2.4em;
495
+ height: 1.4em;
496
+ border-radius: 1.4rem;
497
+ padding: 2px;
498
+ background-color: rgba(0, 0, 0, 0.3);
499
+ transition: all 0.2s;
500
+ border: 1px solid rgba(255, 255, 255, 0.5);
501
+ }
502
+ .x-check-box.slider .x-label:after {
503
+ box-sizing: border-box;
504
+ content: "";
505
+ top: 5px;
506
+ height: calc(1.4em - 4px);
507
+ width: calc(1.4em - 4px);
508
+ border-radius: 50%;
509
+ background-color: #fff;
510
+ transition: all 0.2s;
511
+ position: absolute;
512
+ left: 2px;
513
+ }
514
+ .x-check-box.slider input:checked + .x-label:before {
515
+ background-color: var(--x4-selection-color);
516
+ }
517
+ .x-check-box.slider input:checked + .x-label:after {
518
+ left: calc(1em + 2px);
519
+ background-color: white;
520
+ }
521
+ .x-check-box.slider .x-label {
522
+ padding-left: calc(2.5em + 4px);
523
+ height: 2em;
524
+ }
525
+ .x-menu {
526
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
527
+ background-color: #f7f7f7;
528
+ padding: 2px 0;
529
+ max-height: 80%;
530
+ overflow: auto;
531
+ }
532
+ .x-menu-title {
533
+ width: 100%;
534
+ background-color: #e22e6d;
535
+ color: white;
536
+ height: 2.3em;
537
+ display: block;
538
+ padding: 0 8px;
539
+ line-height: 2.5em;
540
+ }
541
+ .x-menu-item {
542
+ display: flex;
543
+ flex-direction: row;
544
+ align-items: center;
545
+ outline: none;
546
+ background-color: transparent;
547
+ color: rgba(0, 0, 0, 0.8);
548
+ padding: 0px 8px;
549
+ min-width: 120px;
550
+ border: none;
551
+ }
552
+ .x-menu-item .x-icon {
553
+ width: 1em;
554
+ margin-right: 8px;
555
+ color: rgba(0, 0, 0, 0.3);
556
+ }
557
+ .x-menu-item .x-label {
558
+ padding: 4px;
559
+ }
560
+ .x-menu-item:hover {
561
+ background-color: #c6d3d9;
562
+ color: black;
563
+ }
564
+ .x-menu-item:hover .x-icon {
565
+ color: black;
566
+ }
567
+ .x-popup-menu-item:after {
568
+ content: var(--x4-icon-chevron-right);
569
+ font-family: var(--x4-icon-font-family);
570
+ font-size: 80%;
571
+ }
572
+ .x-menu-separator {
573
+ margin-top: 4px;
574
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
575
+ margin-bottom: 3px;
576
+ }
577
+ .x-link {
578
+ padding: 4px;
579
+ color: var(--x4-selection-color);
580
+ cursor: pointer;
581
+ outline: none;
582
+ display: flex;
583
+ align-items: center;
584
+ color: inherit;
585
+ }
586
+ .x-link:focus {
587
+ color: var(--x4-selection-color);
588
+ text-decoration: underline;
589
+ }
590
+ .x-column-view {
591
+ border-bottom: 1px solid rgba(255, 255, 255, 0.5);
592
+ overflow: hidden;
593
+ }
594
+ .x-column-view .line {
595
+ height: 48px;
596
+ }
597
+ .x-column-view .head {
598
+ background: none;
599
+ background-color: inherit;
600
+ box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.4);
601
+ z-index: 2;
602
+ border: 1px solid transparent;
603
+ border-bottom: 1px solid rgba(255, 255, 255, 0.5);
604
+ height: 40px;
605
+ margin: 0 4px;
606
+ }
607
+ .x-column-view .head .x-label {
608
+ line-height: 32px;
609
+ }
610
+ .x-column-view .h-container {
611
+ margin-right: var(--x4-scrollbar-width);
612
+ }
613
+ .x-list-view {
614
+ border: 1px solid transparent;
615
+ }
616
+ .x-list-view:focus {
617
+ outline: none;
618
+ }
619
+ .x-list-view .x-list-item {
620
+ padding: 4px;
621
+ line-height: 2em;
622
+ white-space: nowrap;
623
+ }
624
+ .x-list-view .x-list-item:hover {
625
+ background-color: var(--x4-hover-color);
626
+ color: white;
627
+ }
628
+ .x-list-view .x-list-item.x-selected {
629
+ background-color: var(--x4-selection-color);
630
+ color: white;
631
+ }
632
+ .x-list-view .x-list-item:focus {
633
+ outline: none;
634
+ }
635
+ .x-list-view .gadgets {
636
+ border-top: 1px solid rgba(0, 0, 0, 0.5);
637
+ background-color: rgba(0, 0, 0, 0.1);
638
+ }
639
+ .x-list-view .gadgets .x-button {
640
+ background-color: transparent;
641
+ }
642
+ .x-list-view .gadgets .x-button:hover {
643
+ background-color: white;
644
+ }
645
+ .x-mask {
646
+ filter: grayscale(80%);
647
+ }
648
+ .x-mask:after {
649
+ content: '';
650
+ position: absolute;
651
+ left: -100vw;
652
+ top: -100vh;
653
+ width: 200vw;
654
+ height: 200vh;
655
+ background-color: var(--x4-mask-color);
656
+ z-index: 999;
657
+ }
658
+ .x-popup {
659
+ position: absolute;
660
+ z-index: 1000;
661
+ }
662
+ .x-popup:focus {
663
+ outline: none;
664
+ }
665
+ .x-panel > .title {
666
+ align-items: center;
667
+ line-height: 1.5em;
668
+ padding: 4px;
669
+ border-bottom: 1px solid var(--x4-panel-border-color);
670
+ }
671
+ .x-panel > .title > .x-label {
672
+ flex: 1;
673
+ }
674
+ .x-panel > .title > .x-button {
675
+ background-color: transparent;
676
+ padding: 0;
677
+ border: none;
678
+ box-shadow: none;
679
+ }
680
+ .x-panel > .title > .x-button:focus {
681
+ color: black;
682
+ }
683
+ .x-panel > .body {
684
+ padding: 8px;
685
+ flex: 1;
686
+ }
687
+ .x-dialog {
688
+ border: 0.5px solid rgba(0, 0, 0, 0.2);
689
+ box-shadow: 8px 8px 16px rgba(0, 0, 0, 0.6);
690
+ min-width: 250px;
691
+ min-height: 100px;
692
+ }
693
+ .x-dialog > .title {
694
+ height: 3rem;
695
+ color: white;
696
+ padding: 0 8px;
697
+ display: flex;
698
+ align-items: center;
699
+ }
700
+ .x-dialog > .title .x-icon {
701
+ width: 1.7em;
702
+ text-align: center;
703
+ cursor: pointer;
704
+ }
705
+ .x-dialog > .title .x-icon:hover {
706
+ background-color: rgba(255, 255, 255, 0.1);
707
+ }
708
+ .x-dialog > .title .x-label {
709
+ border-bottom: none;
710
+ padding: 0;
711
+ }
712
+ .x-dialog.maximized > .title .max-btn:before {
713
+ content: var(--x4-icon-window-restore);
714
+ }
715
+ .x-dialog.x-resized {
716
+ display: flex;
717
+ flex-direction: column;
718
+ }
719
+ .x-dialog.x-resized > .x-form {
720
+ flex: 1;
721
+ }
722
+ .x-dialog.x-resized > .x-form > .container {
723
+ min-height: 0;
724
+ min-width: 0;
725
+ flex: 1;
726
+ flex-basis: 0;
727
+ }
728
+ .x-dialog.maximized {
729
+ left: 0;
730
+ top: 0;
731
+ width: 100%;
732
+ height: 100%;
733
+ margin: 0;
734
+ }
735
+ .x-dialog.maximized > .title {
736
+ height: 2em;
737
+ }
738
+ .x-size-all {
739
+ margin: 4px;
740
+ }
741
+ .x-size-all > .x-sizer-overlay {
742
+ background-color: transparent;
743
+ border: none;
744
+ }
745
+ .x-size-all > .x-sizer-overlay.topleft,
746
+ .x-size-all > .x-sizer-overlay.topright,
747
+ .x-size-all > .x-sizer-overlay.bottomleft,
748
+ .x-size-all > .x-sizer-overlay.bottomright {
749
+ cursor: se-resize;
750
+ width: 6px;
751
+ height: 6px;
752
+ z-index: 11;
753
+ }
754
+ .x-size-all > .x-sizer-overlay.topleft {
755
+ left: -4px;
756
+ top: -4px;
757
+ }
758
+ .x-size-all > .x-sizer-overlay.bottomright {
759
+ right: -4px;
760
+ bottom: -4px;
761
+ }
762
+ .x-size-all > .x-sizer-overlay.topright {
763
+ cursor: nesw-resize;
764
+ right: -4px;
765
+ top: -4px;
766
+ }
767
+ .x-size-all > .x-sizer-overlay.bottomleft {
768
+ cursor: nesw-resize;
769
+ left: -4px;
770
+ bottom: -4px;
771
+ }
772
+ .x-size-all > .x-sizer-overlay.top,
773
+ .x-size-all > .x-sizer-overlay.bottom {
774
+ width: 100%;
775
+ height: 4px;
776
+ left: 0;
777
+ z-index: 10;
778
+ cursor: n-resize;
779
+ }
780
+ .x-size-all > .x-sizer-overlay.top {
781
+ top: -4px;
782
+ }
783
+ .x-size-all > .x-sizer-overlay.bottom {
784
+ bottom: -4px;
785
+ }
786
+ .x-size-all > .x-sizer-overlay.left,
787
+ .x-size-all > .x-sizer-overlay.right {
788
+ height: 100%;
789
+ width: 4px;
790
+ top: 0;
791
+ z-index: 10;
792
+ cursor: w-resize;
793
+ border: none;
794
+ }
795
+ .x-size-all > .x-sizer-overlay.left {
796
+ left: -4px;
797
+ }
798
+ .x-size-all > .x-sizer-overlay.right {
799
+ right: -4px;
800
+ }
801
+ .x-form {
802
+ background-color: var(--x4-form-color);
803
+ padding: 8px;
804
+ min-width: 250px;
805
+ min-height: 50px;
806
+ overflow: auto;
807
+ }
808
+ .x-form > .container {
809
+ padding: 0px;
810
+ }
811
+ .x-form > .footer {
812
+ position: relative;
813
+ left: 0;
814
+ bottom: 0;
815
+ width: 100%;
816
+ justify-content: flex-end;
817
+ padding: 0px;
818
+ margin-top: 8px;
819
+ align-items: center;
820
+ }
821
+ .x-form > .footer .x-button:not(.x-small) {
822
+ min-width: 110px;
823
+ }
824
+ .x-form > .footer .x-button:not(:first-child) {
825
+ margin-left: 8px;
826
+ }
827
+ .x-button {
828
+ background-color: rgba(255, 255, 255, 0.25);
829
+ border-color: transparent;
830
+ font-family: var(--x4-font);
831
+ font-size: var(--x4-font-size);
832
+ }
833
+ .x-button .x-icon {
834
+ width: 1.5em;
835
+ }
836
+ .x-button:focus {
837
+ border-color: rgba(255, 255, 255, 0.4);
838
+ color: black;
839
+ }
840
+ .x-hidden {
841
+ display: none ! important;
842
+ }
843
+ .x-tab-view {
844
+ overflow: hidden;
845
+ padding: 24px;
846
+ padding-top: 0;
847
+ }
848
+ .x-tab-view .x-tab-switch {
849
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
850
+ background-color: rgba(0, 0, 0, 0.1);
851
+ }
852
+ .x-tab-view .x-tab-switch .x-tab-btn {
853
+ border: none;
854
+ background-color: transparent;
855
+ }
856
+ .x-tab-view .x-tab-switch .x-tab-btn:hover .x-label {
857
+ text-decoration: underline;
858
+ }
859
+ .x-tab-view .x-tab-switch .x-tab-btn.x-active {
860
+ background-color: rgba(255, 255, 255, 0.2);
861
+ }
862
+ .x-tab-page {
863
+ min-width: 0;
864
+ }
865
+ .x-input-box > .title,
866
+ .x-message-box > .title,
867
+ .x-important > .title {
868
+ background: none;
869
+ background-color: var(--x4-error-color);
870
+ height: 2.5em;
871
+ }
872
+ .x-input-box > .title .x-label,
873
+ .x-message-box > .title .x-label,
874
+ .x-important > .title .x-label {
875
+ border-bottom: none;
876
+ padding-bottom: 0;
877
+ }
878
+ .x-input-box > .title .x-icon,
879
+ .x-message-box > .title .x-icon,
880
+ .x-important > .title .x-icon {
881
+ display: none;
882
+ }
883
+ .x-input-box .x-form,
884
+ .x-message-box .x-form,
885
+ .x-important .x-form {
886
+ min-height: 100px;
887
+ background-color: white;
888
+ }
889
+ .x-input-box .x-form .panel,
890
+ .x-message-box .x-form .panel,
891
+ .x-important .x-form .panel {
892
+ align-items: center;
893
+ }
894
+ .x-input-box .x-form .icon,
895
+ .x-message-box .x-form .icon,
896
+ .x-important .x-form .icon {
897
+ font-size: 48px;
898
+ color: var(--x4-error-color);
899
+ margin-right: 8px;
900
+ }
901
+ .x-input-box .x-form .text,
902
+ .x-message-box .x-form .text,
903
+ .x-important .x-form .text {
904
+ padding: 8px;
905
+ color: #666666;
906
+ line-height: 1.7em;
907
+ max-width: 50vw;
908
+ }
909
+ .x-input-box .x-form > .footer,
910
+ .x-message-box .x-form > .footer,
911
+ .x-important .x-form > .footer {
912
+ background-color: white;
913
+ border-top: 1px solid rgba(0, 0, 0, 0.05);
914
+ padding-top: 8px;
915
+ }
916
+ .x-input-box .x-form > .footer .x-button,
917
+ .x-message-box .x-form > .footer .x-button,
918
+ .x-important .x-form > .footer .x-button {
919
+ background-color: var(--x4-error-color);
920
+ color: white;
921
+ }
922
+ .x-input-box .x-form > .footer .x-button:focus,
923
+ .x-message-box .x-form > .footer .x-button:focus,
924
+ .x-important .x-form > .footer .x-button:focus {
925
+ border-color: black;
926
+ }
927
+ .x-spreadsheet,
928
+ .x-grid-view {
929
+ min-height: 0;
930
+ overflow: hidden;
931
+ background-color: white;
932
+ }
933
+ .x-spreadsheet .x-cell,
934
+ .x-grid-view .x-cell {
935
+ overflow: hidden;
936
+ padding: 4px;
937
+ white-space: nowrap;
938
+ color: black;
939
+ height: 2em;
940
+ }
941
+ .x-spreadsheet .x-footer,
942
+ .x-grid-view .x-footer,
943
+ .x-spreadsheet .x-header,
944
+ .x-grid-view .x-header {
945
+ height: 2em;
946
+ background-color: #f0f0f0;
947
+ align-items: center;
948
+ border-bottom: 1px solid rgba(0, 0, 0, 0.4);
949
+ }
950
+ .x-spreadsheet .x-footer .x-sizer-bar,
951
+ .x-grid-view .x-footer .x-sizer-bar,
952
+ .x-spreadsheet .x-header .x-sizer-bar,
953
+ .x-grid-view .x-header .x-sizer-bar {
954
+ background-color: transparent;
955
+ }
956
+ .x-spreadsheet .x-footer .x-cell,
957
+ .x-grid-view .x-footer .x-cell,
958
+ .x-spreadsheet .x-header .x-cell,
959
+ .x-grid-view .x-header .x-cell {
960
+ text-overflow: ellipsis;
961
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
962
+ height: unset;
963
+ }
964
+ .x-spreadsheet .x-footer .x-cell.sort:before,
965
+ .x-grid-view .x-footer .x-cell.sort:before,
966
+ .x-spreadsheet .x-header .x-cell.sort:before,
967
+ .x-grid-view .x-header .x-cell.sort:before {
968
+ content: var(--x4-icon-arrow-down-long);
969
+ font-family: var(--x4-icon-font-family);
970
+ padding-right: 4px;
971
+ }
972
+ .x-spreadsheet .x-footer .x-cell.sort.desc:before,
973
+ .x-grid-view .x-footer .x-cell.sort.desc:before,
974
+ .x-spreadsheet .x-header .x-cell.sort.desc:before,
975
+ .x-grid-view .x-header .x-cell.sort.desc:before {
976
+ content: var(--x4-icon-arrow-up-long);
977
+ font-family: var(--x4-icon-font-family);
978
+ padding-right: 4px;
979
+ }
980
+ .x-spreadsheet .x-row,
981
+ .x-grid-view .x-row {
982
+ position: absolute;
983
+ width: 100%;
984
+ border-bottom: 1px solid #f0f0f0;
985
+ align-items: center;
986
+ height: 2em;
987
+ }
988
+ .x-spreadsheet .x-row.odd,
989
+ .x-grid-view .x-row.odd {
990
+ background-color: #fafafa;
991
+ }
992
+ .x-spreadsheet .x-cell,
993
+ .x-grid-view .x-cell {
994
+ border-right: 1px solid #f0f0f0;
995
+ }
996
+ .x-spreadsheet .x-cell.center,
997
+ .x-grid-view .x-cell.center {
998
+ text-align: center;
999
+ }
1000
+ .x-spreadsheet .x-cell.right,
1001
+ .x-grid-view .x-cell.right {
1002
+ text-align: right;
1003
+ }
1004
+ .x-spreadsheet:focus,
1005
+ .x-grid-view:focus {
1006
+ outline: none;
1007
+ }
1008
+ .x-grid-view .x-footer,
1009
+ .x-grid-view .x-header {
1010
+ border-left: 4px solid #f0f0f0;
1011
+ }
1012
+ .x-grid-view .x-row {
1013
+ border-left: 4px solid transparent;
1014
+ }
1015
+ .x-grid-view .x-row:hover {
1016
+ background-color: rgba(0, 0, 0, 0.1);
1017
+ border-left-color: rgba(0, 0, 0, 0.6);
1018
+ }
1019
+ .x-grid-view .x-row.x-selected {
1020
+ background-color: var(--x4-selection-color);
1021
+ }
1022
+ .x-grid-view .x-row.x-selected .x-cell {
1023
+ color: white;
1024
+ }
1025
+ .x-grid-view .empty-msg {
1026
+ position: absolute;
1027
+ left: 1em;
1028
+ top: 4em;
1029
+ }
1030
+ .x-spreadsheet .content .x-cell {
1031
+ position: absolute;
1032
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
1033
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
1034
+ height: 2em;
1035
+ }
1036
+ .x-spreadsheet .x-cell.x-selected {
1037
+ background-color: rgba(0, 0, 0, 0.1);
1038
+ }
1039
+ .x-spreadsheet:focus .x-cell.x-selected {
1040
+ background-color: var(--x4-selection-color);
1041
+ color: white;
1042
+ }
1043
+ .x-spreadsheet .x-editor {
1044
+ position: absolute;
1045
+ min-height: 0;
1046
+ }
1047
+ .x-spreadsheet .x-editor input {
1048
+ margin: 0;
1049
+ min-height: 0;
1050
+ }
1051
+ .x-side-bar {
1052
+ min-width: 44px;
1053
+ }
1054
+ .x-side-bar .x-button {
1055
+ background-color: transparent;
1056
+ color: var(--x4-base-color);
1057
+ border: none;
1058
+ min-height: 2em;
1059
+ }
1060
+ .x-side-bar .x-button:hover {
1061
+ background-color: var(--x4-hover-color);
1062
+ color: white;
1063
+ }
1064
+ .x-side-bar .x-button:hover .x-icon {
1065
+ color: rgba(255, 255, 255, 0.5);
1066
+ }
1067
+ .x-side-bar .x-button.x-active {
1068
+ background-color: var(--x4-base-color);
1069
+ color: white;
1070
+ }
1071
+ .x-side-bar .x-button.x-active .x-icon {
1072
+ color: white;
1073
+ }
1074
+ .x-side-bar .x-button.x-active:hover {
1075
+ color: white;
1076
+ }
1077
+ .x-side-bar .x-button.x-active:hover .x-icon {
1078
+ color: rgba(255, 255, 255, 0.5);
1079
+ }
1080
+ .x-side-bar .x-button.trans,
1081
+ .x-side-bar .x-button.trans .x-icon {
1082
+ transition: background-color 0.4s ease, color 0.4s ease;
1083
+ }
1084
+ .x-side-bar.collapsed .x-button .x-label {
1085
+ display: none;
1086
+ }
1087
+ .x-side-bar.collapsed .x-button.x-active .x-icon,
1088
+ .x-side-bar.collapsed .x-button:hover .x-icon {
1089
+ color: white;
1090
+ }
1091
+ .x-tooltip {
1092
+ box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.4);
1093
+ z-index: 50000;
1094
+ display: inline-block;
1095
+ max-width: 400px;
1096
+ pointer-events: none;
1097
+ background-color: white;
1098
+ color: white;
1099
+ padding-left: 24px;
1100
+ font-size: 0.8rem;
1101
+ font-weight: 300;
1102
+ }
1103
+ .x-tooltip .x-icon {
1104
+ position: absolute;
1105
+ left: 6px;
1106
+ top: 7px;
1107
+ color: var(--x4-tip-background);
1108
+ }
1109
+ .x-tooltip .x-label {
1110
+ background-color: var(--x4-selection-color);
1111
+ white-space: break-spaces;
1112
+ display: inline-block;
1113
+ padding: 6px;
1114
+ line-height: 1.3em;
1115
+ }
1116
+ .x-search-bar {
1117
+ background-color: var(--x4-base-color);
1118
+ height: 2em;
1119
+ }
1120
+ .x-popup-table {
1121
+ box-shadow: 8px 8px 16px rgba(0, 0, 0, 0.6);
1122
+ border-collapse: collapse;
1123
+ background-color: white;
1124
+ padding: 2px 0;
1125
+ }
1126
+ .x-popup-table tr:hover,
1127
+ .x-popup-table tr.x-selected {
1128
+ background-color: #c8ffff;
1129
+ }
1130
+ .x-popup-table td {
1131
+ padding: 3px 8px;
1132
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
1133
+ }
1134
+ .x-popup-table .hilite {
1135
+ font-weight: bold;
1136
+ }
1137
+ .x-scroll-view,
1138
+ .x-container.x-scroll-view {
1139
+ overflow-y: auto;
1140
+ }
1141
+ .x-popup-list-view {
1142
+ background-color: white;
1143
+ }
1144
+ .x-popup-list-view .x-combo-popup {
1145
+ min-height: 1em;
1146
+ max-height: 400px;
1147
+ border: 1px solid #00000073;
1148
+ overflow: auto;
1149
+ color: black;
1150
+ }
1151
+ .x-popup-list-view .x-combo-popup .x-list-item {
1152
+ height: 2em;
1153
+ line-height: calc(2em - 8px);
1154
+ }
1155
+ .x-calendar {
1156
+ border: 1px solid rgba(0, 0, 0, 0.1);
1157
+ padding: 4px;
1158
+ }
1159
+ .x-calendar .month-sel {
1160
+ height: 2em;
1161
+ align-items: center;
1162
+ padding-left: 2em;
1163
+ margin-bottom: 8px;
1164
+ }
1165
+ .x-calendar .month-sel .month {
1166
+ padding-right: 4px;
1167
+ }
1168
+ .x-calendar .month-sel .year {
1169
+ cursor: pointer;
1170
+ }
1171
+ .x-calendar .month-sel .month,
1172
+ .x-calendar .month-sel .year {
1173
+ cursor: pointer;
1174
+ }
1175
+ .x-calendar .month-sel .month:hover,
1176
+ .x-calendar .month-sel .year:hover {
1177
+ text-decoration: underline;
1178
+ }
1179
+ .x-calendar .month-sel .x-label {
1180
+ font-weight: bold;
1181
+ }
1182
+ .x-calendar .month-sel .x-button {
1183
+ height: auto;
1184
+ color: black;
1185
+ }
1186
+ .x-calendar .week {
1187
+ align-items: center;
1188
+ }
1189
+ .x-calendar .week:hover {
1190
+ background-color: var(--x4-hover-color);
1191
+ border-radius: 4px;
1192
+ }
1193
+ .x-calendar .week .cell {
1194
+ height: 100%;
1195
+ color: rgba(0, 0, 0, 0.7);
1196
+ text-align: center;
1197
+ }
1198
+ .x-calendar .week .cell span {
1199
+ margin: auto;
1200
+ }
1201
+ .x-calendar .week .today {
1202
+ font-weight: bold;
1203
+ background-color: var(--x4-error-color);
1204
+ }
1205
+ .x-calendar .week .today span {
1206
+ border-radius: 2px;
1207
+ color: white;
1208
+ }
1209
+ .x-calendar .week .weeknum {
1210
+ width: 2em;
1211
+ color: rgba(0, 0, 0, 0.3);
1212
+ font-size: 70%;
1213
+ }
1214
+ .x-calendar .week .day {
1215
+ cursor: pointer;
1216
+ }
1217
+ .x-calendar .week .out {
1218
+ color: rgba(0, 0, 0, 0.3);
1219
+ }
1220
+ .x-calendar .week .day:hover {
1221
+ background-color: var(--x4-hover-color);
1222
+ color: white;
1223
+ }
1224
+ .x-calendar .header .cell {
1225
+ color: rgba(0, 0, 0, 0.5);
1226
+ height: 1.5em;
1227
+ }
1228
+ .x-calendar .header:hover {
1229
+ background-color: inherit;
1230
+ }
1231
+ .x-popup-calendar {
1232
+ width: 250px;
1233
+ height: 200px;
1234
+ background-color: white;
1235
+ box-shadow: 8px 8px 16px rgba(0, 0, 0, 0.6);
1236
+ }
1237
+ .x-separator {
1238
+ background-color: white;
1239
+ }
1240
+ .x-separator.horizontal {
1241
+ width: 4px;
1242
+ border-left: 1px solid #c7c7c7;
1243
+ border-right: 1px solid #c7c7c7;
1244
+ cursor: e-resize;
1245
+ }
1246
+ .x-separator.vertical {
1247
+ height: 4px;
1248
+ border-top: 1px solid #c7c7c7;
1249
+ border-bottom: 1px solid #c7c7c7;
1250
+ cursor: n-resize;
1251
+ }
1252
+ .x-separator:hover {
1253
+ background-color: #575757;
1254
+ border-color: #575757;
1255
+ }
1256
+ .x-toggle-button.checked {
1257
+ background-color: #a8a8a8;
1258
+ }
1259
+ .x-color-picker-box .customs {
1260
+ padding: 8px;
1261
+ }
1262
+ .x-color-picker-box .customs .cust-cc {
1263
+ height: 16px;
1264
+ border: 1px solid rgba(0, 0, 0, 0.4);
1265
+ }
1266
+ .x-color-picker .sel {
1267
+ position: absolute;
1268
+ left: 10px;
1269
+ top: 10px;
1270
+ right: 40px;
1271
+ bottom: 40px;
1272
+ }
1273
+ .x-color-picker .sel .marker {
1274
+ position: absolute;
1275
+ width: 6px;
1276
+ height: 6px;
1277
+ margin-top: -3px;
1278
+ margin-left: -3px;
1279
+ border: 1px solid white;
1280
+ }
1281
+ .x-color-picker .light {
1282
+ background: linear-gradient(to right, #ffffff 0%, rgba(255, 255, 255, 0) 100%);
1283
+ }
1284
+ .x-color-picker .dark {
1285
+ background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000000 100%);
1286
+ }
1287
+ .x-color-picker .hue {
1288
+ position: absolute;
1289
+ top: 10px;
1290
+ bottom: 40px;
1291
+ right: 10px;
1292
+ width: 20px;
1293
+ background: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 66%, #ff00ff 83%, #ff0000 100%);
1294
+ }
1295
+ .x-color-picker .hue .marker {
1296
+ position: absolute;
1297
+ width: calc(100% + 6px);
1298
+ height: 4px;
1299
+ margin-top: -2px;
1300
+ margin-left: -3px;
1301
+ background-color: black;
1302
+ }
1303
+ .x-color-picker .sample {
1304
+ position: absolute;
1305
+ bottom: 10px;
1306
+ height: 20px;
1307
+ width: 20px;
1308
+ right: 10px;
1309
+ }
1310
+ .x-color-picker .sample .color {
1311
+ background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, #ff0000 100%);
1312
+ }
1313
+ .x-color-picker .alpha,
1314
+ .x-color-picker .transp {
1315
+ position: absolute;
1316
+ left: 10px;
1317
+ bottom: 10px;
1318
+ right: 20px;
1319
+ height: 20px;
1320
+ }
1321
+ .x-color-picker .transp {
1322
+ bottom: 8px;
1323
+ width: 115px;
1324
+ left: 4px;
1325
+ height: 24px;
1326
+ }
1327
+ .x-color-picker .hexv {
1328
+ position: absolute;
1329
+ bottom: 8px;
1330
+ left: 120px;
1331
+ height: 24px;
1332
+ margin: 0;
1333
+ width: 90px;
1334
+ min-height: unset;
1335
+ }
1336
+ .x-color-picker .alpha {
1337
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAEsmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSIxMCIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMTAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjcyLjAiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLjAiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjEtMDMtMjJUMTU6NTE6NDkrMDE6MDAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMDMtMjJUMTU6NTE6NDkrMDE6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJwcm9kdWNlZCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWZmaW5pdHkgRGVzaWduZXIgMS45LjAiCiAgICAgIHN0RXZ0OndoZW49IjIwMjEtMDMtMjJUMTU6NTE6NDkrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/Pn8+b7YAAAGCaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRy0tCQRSHv7Qwyh5gRIsWEtZKwwyiNi2UXlAt1CCrjV5fgdrlXiOibdBWKIja9FrUX1DboHUQFEUQ7YLWRW0qbueqoESe4cz55jdzDjNnwBLOKFm93gvZXF4LTvid85EFp+0FK5204sURVXR1JjQepqZ93lNnxluPWav2uX+tOZ7QFahrFB5VVC0vPCk8vZZXTd4R7lDS0bjwmbBbkwsK35l6rMSvJqdK/G2yFg4GwNIu7ExVcayKlbSWFZaX48pmVpXyfcyX2BO5uZDEHvFudIJM4MfJFGMEGGKAEZmH8OCjX1bUyPcW82dZkVxFZpV1NJZJkSaPW9RVqZ6QmBQ9ISPDutn/v33Vk4O+UnW7HxqeDeO9F2zb8FMwjK8jw/g5BusTXOYq+SuHMPwheqGiuQ6gbRPOrypabBcutqDrUY1q0aJkFbckk/B2Ci0RcNxA02KpZ+V9Th4gvCFfdQ17+9An59uWfgF7Hmfv4QYbGAAAAAlwSFlzAAALEwAACxMBAJqcGAAAACdJREFUGJVjbGhoYEAC9fX1yFwmBryAptKM////R+Y3NjbSzW4C0gAo9QeQBmhTIwAAAABJRU5ErkJggg==');
1338
+ }
1339
+ .x-color-picker .alpha .marker {
1340
+ position: absolute;
1341
+ height: calc(100% + 6px);
1342
+ width: 4px;
1343
+ margin-top: -3px;
1344
+ margin-left: -2px;
1345
+ background-color: black;
1346
+ }
1347
+ .x-color-picker.with-alpha .sel {
1348
+ left: 4px;
1349
+ top: 4px;
1350
+ bottom: 34px;
1351
+ right: 34px;
1352
+ }
1353
+ .x-color-picker.with-alpha .hue {
1354
+ top: 4px;
1355
+ right: 4px;
1356
+ bottom: 34px;
1357
+ }
1358
+ .x-color-picker.with-alpha .hexv {
1359
+ bottom: 4px;
1360
+ left: 4px;
1361
+ width: 120px;
1362
+ }
1363
+ .x-color-picker.with-alpha .alpha {
1364
+ left: 130px;
1365
+ right: 4px;
1366
+ height: 24px;
1367
+ bottom: 4px;
1368
+ }
1369
+ .x-color-picker.with-alpha .transp,
1370
+ .x-color-picker.with-alpha .sample {
1371
+ display: none;
1372
+ }
1373
+ .x-color-picker.pal-mode {
1374
+ display: flex;
1375
+ gap: 1px;
1376
+ }
1377
+ .x-color-picker.pal-mode > .x-container {
1378
+ width: 100%;
1379
+ }
1380
+ .x-color-picker.pal-mode .hcol,
1381
+ .x-color-picker.pal-mode .vcol {
1382
+ justify-content: space-between;
1383
+ }
1384
+ .x-color-picker.pal-mode .hcol {
1385
+ min-height: 90px;
1386
+ margin-top: 40px;
1387
+ }
1388
+ .x-color-picker.pal-mode .hexv {
1389
+ bottom: 10px;
1390
+ left: 120px;
1391
+ right: 10px;
1392
+ width: unset;
1393
+ }
1394
+ .x-color-picker.pal-mode .transp {
1395
+ display: flex;
1396
+ }
1397
+ .x-color-picker.pal-mode #hsel {
1398
+ gap: 4px;
1399
+ flex-wrap: wrap;
1400
+ justify-content: center;
1401
+ }
1402
+ .x-color-picker.pal-mode #vsel {
1403
+ gap: 1px;
1404
+ margin-top: 10px;
1405
+ }
1406
+ .x-color-picker.pal-mode .clr-box {
1407
+ width: 19px;
1408
+ height: 10px;
1409
+ }
1410
+ .x-color-picker.pal-mode .hclr-box {
1411
+ height: 16px;
1412
+ min-width: 19px;
1413
+ font-size: 9px;
1414
+ line-height: 16px;
1415
+ text-align: center;
1416
+ }
1417
+ .x-color-picker.pal-mode .hclr-box.selected {
1418
+ border: 1px solid black;
1419
+ }
1420
+ .x-tree-view .x-scroll-view {
1421
+ margin: 4px;
1422
+ }
1423
+ .x-tree-view .x-tree-item {
1424
+ line-height: 1.5em;
1425
+ white-space: nowrap;
1426
+ overflow: hidden;
1427
+ align-items: center;
1428
+ }
1429
+ .x-tree-view .x-tree-item span {
1430
+ padding: 0 4px;
1431
+ }
1432
+ .x-tree-view .x-tree-item .tree-icon {
1433
+ width: 2em;
1434
+ }
1435
+ .x-tree-view .x-tree-item.collapsed .tree-icon {
1436
+ transform: rotate(-90deg);
1437
+ }
1438
+ .x-tree-view .x-tree-item:hover {
1439
+ background-color: rgba(255, 255, 255, 0.1);
1440
+ }
1441
+ .x-tree-view .x-tree-item.selected {
1442
+ background-color: rgba(255, 255, 255, 0.3);
1443
+ }
1444
+ .x-tree-view .x-tree-item .indent {
1445
+ position: absolute;
1446
+ border-left: 1px solid rgba(0, 0, 0, 0.1);
1447
+ height: 100%;
1448
+ top: 0;
1449
+ }
1450
+ .x-tree-view .gadgets {
1451
+ border-top: 1px solid rgba(0, 0, 0, 0.5);
1452
+ background-color: rgba(0, 0, 0, 0.1);
1453
+ }
1454
+ .x-tree-view .gadgets .x-button {
1455
+ background-color: transparent;
1456
+ }
1457
+ .x-tree-view .gadgets .x-button:hover {
1458
+ background-color: white;
1459
+ }
1460
+ .x-tooltip.error {
1461
+ background-color: var(--x4-error-color);
1462
+ padding: 0 6px;
1463
+ margin-left: 3px;
1464
+ position: absolute;
1465
+ border: 1px solid rgba(0, 0, 0, 0.3);
1466
+ }
1467
+ .x-tooltip.error .x-label {
1468
+ background-color: transparent;
1469
+ color: white;
1470
+ font-size: inherit;
1471
+ padding: 0;
1472
+ }
1473
+ .x-tooltip.error .x-icon {
1474
+ display: none;
1475
+ }
1476
+ .x-text-edit.with-gadgets input {
1477
+ border-right: none;
1478
+ }
1479
+ .x-text-edit.with-gadgets > .x-icon {
1480
+ border: 1px solid rgba(0, 0, 0, 0.5);
1481
+ width: 1.5em;
1482
+ height: 100%;
1483
+ line-height: 1.8em;
1484
+ border-left: none;
1485
+ }
1486
+ .x-text-hiliter {
1487
+ overflow: hidden;
1488
+ }
1489
+ .x-text-hiliter textarea {
1490
+ font-family: monospace;
1491
+ font-size: var(--x4-font-size);
1492
+ padding: 2px;
1493
+ resize: none;
1494
+ outline: none;
1495
+ border: 1px solid transparent;
1496
+ width: 100%;
1497
+ color: transparent;
1498
+ background-color: transparent;
1499
+ caret-color: black;
1500
+ -moz-tab-size: 4;
1501
+ -o-tab-size: 4;
1502
+ tab-size: 4;
1503
+ }
1504
+ .x-text-hiliter textarea:focus {
1505
+ border: 1px solid var(--x4-selection-color);
1506
+ }
1507
+ .x-text-hiliter .x-syntax-hiliter {
1508
+ font-family: monospace;
1509
+ font-size: var(--x4-font-size);
1510
+ padding: 2px;
1511
+ border: 1px solid transparent;
1512
+ overflow: hidden;
1513
+ white-space: pre;
1514
+ color: #5c5c5c;
1515
+ background-color: white;
1516
+ -moz-tab-size: 4;
1517
+ -o-tab-size: 4;
1518
+ tab-size: 4;
1519
+ }
1520
+ .x-text-hiliter .x-syntax-hiliter .num {
1521
+ color: #008000;
1522
+ }
1523
+ .x-text-hiliter .x-syntax-hiliter .kword {
1524
+ color: #000080;
1525
+ }
1526
+ .x-text-hiliter .x-syntax-hiliter .str {
1527
+ color: #8b0000;
1528
+ }
1529
+ .x-text-hiliter .x-syntax-hiliter .cmt {
1530
+ color: #8b008b;
1531
+ background-color: rgba(139, 0, 139, 0.2);
1532
+ }
1533
+ .x-text-hiliter .x-syntax-hiliter .punc {
1534
+ font-weight: bold;
1535
+ color: black;
1536
+ }
1537
+ .x-list-view.virtual .x-list-item {
1538
+ position: absolute;
1539
+ left: 0;
1540
+ right: 0;
1541
+ }