chuijs 3.6.3 → 3.6.5

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 (119) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +1203 -162
  3. package/framework/appLayout/default/chui_app_layout.js +747 -747
  4. package/framework/appLayout/default/global_style.css +615 -570
  5. package/framework/appLayout/default/main_theme_style.css +124 -101
  6. package/framework/components/chui_accordion/accordion.js +63 -63
  7. package/framework/components/chui_accordion/styles.css +79 -75
  8. package/framework/components/chui_badge/badge.js +55 -55
  9. package/framework/components/chui_badge/styles.css +29 -29
  10. package/framework/components/chui_button/button.js +48 -48
  11. package/framework/components/chui_button/styles.css +75 -70
  12. package/framework/components/chui_calendar/calendar.js +97 -97
  13. package/framework/components/chui_card/card.js +87 -0
  14. package/framework/components/chui_card/styles.css +72 -0
  15. package/framework/components/chui_code/code.js +18 -18
  16. package/framework/components/chui_code/styles.css +9 -9
  17. package/framework/components/chui_console/console.js +27 -27
  18. package/framework/components/chui_console/styles.css +31 -31
  19. package/framework/components/chui_content_block/content_block.js +51 -51
  20. package/framework/components/chui_content_block/styles.css +2 -2
  21. package/framework/components/chui_context_menu/context_menu.js +230 -0
  22. package/framework/components/chui_context_menu/styles.css +136 -0
  23. package/framework/components/chui_custom_element/custom_element.js +24 -24
  24. package/framework/components/chui_details/details.js +85 -85
  25. package/framework/components/chui_details/styles.css +70 -66
  26. package/framework/components/chui_fieldset/fieldset.js +40 -40
  27. package/framework/components/chui_fieldset/styles.css +24 -24
  28. package/framework/components/chui_form/form.js +40 -40
  29. package/framework/components/chui_form/styles.css +21 -21
  30. package/framework/components/chui_graphs/graphs.js +234 -190
  31. package/framework/components/chui_graphs/styles.css +37 -32
  32. package/framework/components/chui_hero/hero.js +98 -0
  33. package/framework/components/chui_hero/styles.css +91 -0
  34. package/framework/components/chui_html_block/html_block.js +16 -16
  35. package/framework/components/chui_html_block/styles.css +5 -5
  36. package/framework/components/chui_hx/hx.js +15 -15
  37. package/framework/components/chui_hx/styles.css +38 -38
  38. package/framework/components/chui_icons/icons.js +2144 -2144
  39. package/framework/components/chui_icons/styles.css +13 -13
  40. package/framework/components/chui_inputs/chui_check_box/check_box.js +32 -32
  41. package/framework/components/chui_inputs/chui_check_box/styles.css +91 -86
  42. package/framework/components/chui_inputs/chui_combo_box/combo_box.js +166 -150
  43. package/framework/components/chui_inputs/chui_combo_box/styles.css +113 -107
  44. package/framework/components/chui_inputs/chui_date/date.js +177 -174
  45. package/framework/components/chui_inputs/chui_date/styles.css +163 -128
  46. package/framework/components/chui_inputs/chui_email/email.js +61 -61
  47. package/framework/components/chui_inputs/chui_email/styles.css +69 -71
  48. package/framework/components/chui_inputs/chui_file/file.js +76 -76
  49. package/framework/components/chui_inputs/chui_file/styles.css +99 -99
  50. package/framework/components/chui_inputs/chui_multi_combo_box/multi_combo_box.js +300 -295
  51. package/framework/components/chui_inputs/chui_multi_combo_box/styles.css +227 -235
  52. package/framework/components/chui_inputs/chui_number/number.js +108 -108
  53. package/framework/components/chui_inputs/chui_number/styles.css +84 -84
  54. package/framework/components/chui_inputs/chui_password/password.js +99 -99
  55. package/framework/components/chui_inputs/chui_password/styles.css +97 -97
  56. package/framework/components/chui_inputs/chui_radio_button/radio_button.js +45 -45
  57. package/framework/components/chui_inputs/chui_radio_button/styles.css +76 -73
  58. package/framework/components/chui_inputs/chui_select_box/select_box.js +187 -170
  59. package/framework/components/chui_inputs/chui_select_box/styles.css +123 -117
  60. package/framework/components/chui_inputs/chui_text/styles.css +83 -84
  61. package/framework/components/chui_inputs/chui_text/text.js +91 -91
  62. package/framework/components/chui_inputs/chui_text_area/styles.css +57 -57
  63. package/framework/components/chui_inputs/chui_text_area/text_area.js +61 -61
  64. package/framework/components/chui_inputs/chui_toggle/styles.css +66 -61
  65. package/framework/components/chui_inputs/chui_toggle/toggle.js +36 -36
  66. package/framework/components/chui_label/label.js +54 -54
  67. package/framework/components/chui_label/styles.css +11 -11
  68. package/framework/components/chui_media/audio.js +908 -908
  69. package/framework/components/chui_media/audio_styles.css +458 -458
  70. package/framework/components/chui_media/image.js +105 -105
  71. package/framework/components/chui_media/image_styles.css +61 -61
  72. package/framework/components/chui_media/video.js +248 -248
  73. package/framework/components/chui_media/video_styles.css +160 -160
  74. package/framework/components/chui_menu_bar/menu_bar.js +66 -74
  75. package/framework/components/chui_menu_bar/styles.css +114 -76
  76. package/framework/components/chui_modal/modal.js +142 -135
  77. package/framework/components/chui_modal/styles.css +36 -36
  78. package/framework/components/chui_notification/notification.js +72 -72
  79. package/framework/components/chui_notification/notification_download.js +78 -78
  80. package/framework/components/chui_notification/notification_download_progress.css +119 -123
  81. package/framework/components/chui_notification/notification_download_progress.js +105 -105
  82. package/framework/components/chui_notification/notification_update.js +54 -54
  83. package/framework/components/chui_notification/styles.css +91 -91
  84. package/framework/components/chui_notification/styles_download.css +85 -85
  85. package/framework/components/chui_notification/styles_update.css +73 -73
  86. package/framework/components/chui_paragraph/paragraph.js +14 -14
  87. package/framework/components/chui_paragraph/styles.css +6 -6
  88. package/framework/components/chui_popups/popups.js +250 -250
  89. package/framework/components/chui_popups/styles.css +100 -115
  90. package/framework/components/chui_progress_bar/progress_bar.js +28 -28
  91. package/framework/components/chui_progress_bar/styles.css +28 -28
  92. package/framework/components/chui_radio_group/radio_group.js +57 -57
  93. package/framework/components/chui_radio_group/styles.css +3 -3
  94. package/framework/components/chui_slideshow/slideshow.js +75 -75
  95. package/framework/components/chui_slideshow/styles.css +94 -85
  96. package/framework/components/chui_spinner/spinner.js +45 -45
  97. package/framework/components/chui_spinner/styles.css +23 -23
  98. package/framework/components/chui_table/styles.css +42 -42
  99. package/framework/components/chui_table/table.js +234 -234
  100. package/framework/components/chui_tabs/chui_tabs.js +77 -77
  101. package/framework/components/chui_tabs/styles.css +54 -48
  102. package/framework/components/chui_text_editor/styles.css +217 -217
  103. package/framework/components/chui_text_editor/text_editor.js +144 -144
  104. package/framework/components/chui_text_editor/text_editor_panel.js +568 -568
  105. package/framework/components/chui_tree_view/styles.css +81 -75
  106. package/framework/components/chui_tree_view/tree_view.js +90 -90
  107. package/framework/components/chui_webview/styles.css +27 -27
  108. package/framework/components/chui_webview/webview.js +103 -103
  109. package/framework/components/telegram_bot/chui_telegram_bot.js +183 -183
  110. package/framework/modules/chui_animations/animations.js +121 -121
  111. package/framework/modules/chui_animations/styles.css +79 -79
  112. package/framework/modules/chui_fonts.js +7128 -7128
  113. package/framework/modules/chui_functions.js +106 -78
  114. package/framework/modules/chui_logger/chui_logger.js +53 -53
  115. package/framework/modules/chui_page/page.js +86 -86
  116. package/framework/modules/chui_page/styles.css +9 -9
  117. package/framework/tray_bar/chui_menu_items.js +48 -48
  118. package/index.js +570 -555
  119. package/package.json +51 -46
@@ -1,571 +1,616 @@
1
- :root {
2
- --global_blur: saturate(180%) blur(30px);
3
- --main_padding: 8px 11px;
4
- --test_padding: 8px;
5
- --header_icon_size: 13pt;
6
- --font_default_size: 14px;
7
- --font_labels_size: 12px;
8
- --font_notification_size: 12px;
9
- --border_radius: 0.50rem !important;;
10
- --margin: 6px;
11
- --box_shadow_main: 0 1px 5px 1px rgb(0 0 0 / 20%);
12
- --transition_time: .165s
13
- }
14
-
15
- html {
16
- width: -webkit-fill-available;
17
- height: -webkit-fill-available;
18
- margin: 0;
19
- padding: 0;
20
- background: var(--border_color);
21
- }
22
-
23
- strong {
24
- font-weight: 500;
25
- }
26
-
27
- * {
28
- font-family: 'chui_I';
29
- font-style: normal;
30
- user-select: none;
31
- outline: none;
32
- transition: all var(--transition_time);
33
- animation-duration: var(--transition_time);
34
- position: relative;
35
- font-size: var(--font_default_size);
36
- line-height: normal;
37
- }
38
-
39
- *:before {
40
- font-family: 'chui_I';
41
- font-style: normal;
42
- user-select: none;
43
- outline: none;
44
- transition: all var(--transition_time);
45
- animation-duration: var(--transition_time);
46
- position: relative;
47
- font-size: var(--font_default_size);
48
- line-height: normal;
49
- }
50
-
51
- body {
52
- width: -webkit-fill-available;
53
- height: -webkit-fill-available;
54
- margin: 0;
55
- padding: 0;
56
- background: var(--main_background);
57
- /*border-radius: var(--border_radius);*/
58
- display: flex;
59
- flex-direction: column;
60
- margin: 1px;
61
- }
62
-
63
- app_menu_search_main {
64
- background: transparent;
65
- width: -webkit-fill-available;
66
- display: flex;
67
- align-items: center;
68
- justify-content: center;
69
- height: max-content;
70
- padding: var(--test_padding);
71
- }
72
-
73
- .app_menu_search_input {
74
- border-radius: var(--border_radius);
75
- background: var(--header_background);
76
- padding: var(--main_padding);
77
- margin: var(--margin);
78
- width: -webkit-fill-available;
79
- color: var(--text_color);
80
- font-size: var(--font_default_size);
81
- border: none;
82
- box-shadow: 0 0 1px 0 var(--element_background_2);
83
- }
84
-
85
- ::-webkit-scrollbar {
86
- width: 8px;
87
- }
88
-
89
- center::-webkit-scrollbar-track {
90
- margin-top: 45px;
91
- }
92
-
93
- .test_scroll_track::-webkit-scrollbar-track {
94
- margin-top: 96px;
95
- }
96
-
97
- ::-webkit-scrollbar-track {
98
- background-color: transparent;
99
- }
100
-
101
- ::-webkit-scrollbar-thumb {
102
- border-radius: var(--border_radius);
103
- background: var(--element_background_2);
104
- }
105
-
106
- ::-webkit-scrollbar-thumb:hover {
107
- background: var(--blue_prime_background)
108
- }
109
-
110
- header {
111
- width: -webkit-fill-available;
112
- position: absolute;
113
- top: 0;
114
- display: flex;
115
- z-index: 999;
116
- flex-direction: column;
117
- border-bottom-left-radius: var(--border_radius);
118
- border-bottom-right-radius: var(--border_radius);
119
- align-items: start;
120
- background-color: var(--header_background);
121
- backdrop-filter: var(--global_blur);
122
- background-blend-mode: overlay;
123
- justify-content: space-between;
124
- border-bottom: 1px solid var(--border_color);
125
- }
126
-
127
- header_main {
128
- width: -webkit-fill-available;
129
- display: flex;
130
- align-items: center;
131
- justify-content: center;
132
- -webkit-app-region: drag;
133
- -webkit-user-select: none;
134
- }
135
-
136
- center {
137
- width: -webkit-fill-available;
138
- height: -webkit-fill-available;
139
- padding-top: 47px;
140
- overflow: hidden hidden
141
- }
142
-
143
- center:hover {
144
- overflow: hidden overlay;
145
- }
146
-
147
- notification_panel {
148
- display: flex;
149
- flex-direction: column;
150
- position: fixed;
151
- top: 46px;
152
- right: 0;
153
- padding: var(--margin);
154
- align-items: flex-end;
155
- justify-content: flex-start;
156
- z-index: 1001;
157
- overflow: hidden hidden;
158
- max-height: calc(100% - 65px - (var(--margin) * 2));
159
- transition: max-height var(--transition_time) ease-in-out;
160
- }
161
-
162
- notification_panel:hover {
163
- overflow: hidden overlay;
164
- }
165
-
166
- app_menu {
167
- display: flex;
168
- flex-direction: column;
169
- position: fixed;
170
- justify-content: flex-start;
171
- align-items: flex-start;
172
- z-index: 1000;
173
- margin: calc(47px + (var(--margin) * 2)) calc(var(--margin) * 2) calc(var(--margin) * 2) calc(var(--margin) * 2);
174
- border-radius: var(--border_radius);
175
- box-shadow: var(--box_shadow_main);
176
- background: var(--header_background);
177
- backdrop-filter: var(--global_blur);
178
- height: -webkit-fill-available;
179
- width: -webkit-fill-available;
180
- border: 1px solid var(--border_color);
181
- }
182
-
183
- notification_box {
184
- display: flex;
185
- flex-direction: column;
186
- position: fixed;
187
- justify-content: flex-start;
188
- align-items: flex-start;
189
- height: -webkit-fill-available;
190
- z-index: 1000;
191
- margin: calc(47px + (var(--margin) * 2)) calc(var(--margin) * 2) calc(var(--margin) * 2) calc(var(--margin) * 2);
192
- border-radius: var(--border_radius);
193
- box-shadow: var(--box_shadow_main);
194
- background: var(--header_background);
195
- backdrop-filter: var(--global_blur);
196
- width: -webkit-fill-available;
197
- border: 1px solid var(--border_color);
198
- }
199
-
200
- notification_box_controls {
201
- display: flex;
202
- flex-direction: row;
203
- justify-content: center;
204
- align-items: center;
205
- height: max-content;
206
- width: -webkit-fill-available;
207
- background: transparent;
208
- }
209
-
210
- notification_box_main {
211
- display: flex;
212
- flex-direction: column;
213
- overflow: hidden hidden;
214
- height: -webkit-fill-available;
215
- width: -webkit-fill-available;
216
- padding: 4px;
217
- }
218
-
219
- notification_box_main:hover {
220
- overflow: hidden overlay;
221
- }
222
-
223
- notification_button {
224
- cursor: pointer;
225
- outline: none;
226
- height: max-content;
227
- width: max-content;
228
- border: none;
229
- border-radius: var(--border_radius);
230
- padding: var(--test_padding);
231
- margin: var(--margin);
232
- font-size: 22pt;
233
- background: transparent;
234
- color: var(--text_color);
235
- -webkit-app-region: no-drag;
236
- }
237
-
238
- notification_button:hover {
239
- background: var(--blue_prime_background);
240
- }
241
-
242
- .notification_button_active {
243
- background: var(--blue_prime_background);
244
- }
245
-
246
- .notification_button_active chui_icon {
247
- color: var(--text_color_hover);
248
- }
249
-
250
- notification_button:hover chui_icon {
251
- color: var(--text_color_hover);
252
- }
253
-
254
- app_menu_button {
255
- cursor: pointer;
256
- outline: none;
257
- height: max-content;
258
- width: max-content;
259
- border: none;
260
- border-radius: var(--border_radius);
261
- padding: var(--test_padding);
262
- margin: var(--margin);
263
- font-size: 22pt;
264
- background: transparent;
265
- color: var(--text_color);
266
- -webkit-app-region: no-drag;
267
- }
268
-
269
- app_menu_button:hover {
270
- background: var(--blue_prime_background);
271
- }
272
-
273
- .app_menu_button_active {
274
- background: var(--blue_prime_background);
275
- }
276
-
277
- .app_menu_button_active chui_icon {
278
- color: var(--text_color_hover);
279
- }
280
-
281
- app_menu_button:hover chui_icon {
282
- color: var(--text_color_hover);
283
- }
284
-
285
- route_views {
286
- display: flex;
287
- flex-direction: column;
288
- padding: var(--test_padding);
289
- width: -webkit-fill-available;
290
- height: -webkit-fill-available;
291
- overflow: hidden hidden;
292
- }
293
-
294
- route_views:hover {
295
- overflow: hidden overlay;
296
- }
297
-
298
- page_name {
299
- outline: none;
300
- height: max-content;
301
- width: max-content;
302
- border: none;
303
- border-radius: var(--border_radius);
304
- padding: var(--test_padding);
305
- margin: var(--margin) var(--margin) var(--margin) 0;
306
- font-size: var(--font_default_size);
307
- font-weight: 500;
308
- background: transparent;
309
- color: var(--text_color)
310
- }
311
-
312
- route {
313
- cursor: pointer;
314
- display: flex;
315
- align-items: center;
316
- outline: none;
317
- height: max-content;
318
- width: -webkit-fill-available;
319
- border: none;
320
- border-radius: var(--border_radius);
321
- padding: var(--test_padding);
322
- margin: var(--margin);
323
- font-size: var(--font_default_size);
324
- font-weight: 500;
325
- background: transparent;
326
- max-height: max-content;
327
- }
328
-
329
- route:hover {
330
- padding: var(--main_padding);
331
- background: var(--blue_prime_background);
332
- }
333
-
334
- route:hover route_title {
335
- color: var(--text_color_hover);
336
- }
337
-
338
- route_title {
339
- width: -webkit-fill-available;
340
- color: var(--text_color);
341
- }
342
-
343
- route_icon {
344
- margin-right: var(--margin);
345
- }
346
-
347
- .route_active {
348
- padding: var(--main_padding);
349
- background: var(--blue_prime_background);
350
- color: var(--text_color_hover);
351
- }
352
-
353
- .route_active route_title {
354
- color: var(--text_color_hover);
355
- }
356
-
357
- blockquote {
358
- background: var(--element_background);
359
- border-left: 10px solid var(--blue_prime_background);
360
- margin: 1.5em 10px;
361
- padding: 9px 14px;
362
- color: var(--text_color);
363
- border-radius: var(--border_radius);
364
- display: flex;
365
- }
366
-
367
- header_left_box {
368
- display: flex;
369
- width: -webkit-fill-available;
370
- align-items: center
371
- }
372
-
373
- header_right_box {
374
- display: flex;
375
- }
376
-
377
- /* chUiJS_UserProfile */
378
- user_main {
379
- position: relative;
380
- display: flex;
381
- -webkit-app-region: no-drag;
382
- }
383
-
384
- user_button:hover {
385
- background: var(--blue_prime_background);
386
- color: var(--text_color_hover);
387
- }
388
-
389
- .user_button {
390
- background: var(--blue_prime_background);
391
- color: var(--text_color_hover);
392
- }
393
-
394
- user_button {
395
- cursor: pointer;
396
- outline: none;
397
- height: max-content;
398
- width: max-content;
399
- color: var(--text_color);
400
- border-radius: var(--border_radius);
401
- padding: var(--main_padding);
402
- margin: var(--margin) 0 var(--margin) var(--margin);
403
- font-weight: 500
404
- }
405
-
406
- user_dropdown {
407
- margin-top: 45px;
408
- display: none;
409
- position: absolute;
410
- background: var(--header_background_drop);
411
- color: var(--text_color);
412
- border-radius: var(--border_radius);
413
- padding: var(--test_padding);
414
- z-index: 1;
415
- right: 0;
416
- min-width: 165px;
417
- flex-direction: column;
418
- box-shadow: var(--box_shadow_main);
419
- }
420
-
421
- user_dropdown user_item {
422
- color: var(--text_color);
423
- display: block;
424
- font-weight: 400;
425
- cursor: pointer;
426
- text-align: start;
427
- padding: var(--test_padding);
428
- border-radius: var(--border_radius)
429
- }
430
-
431
- user_dropdown user_item:hover {
432
- background-color: #ddd;
433
- padding: var(--main_padding);
434
- background: var(--blue_prime_background);
435
- color: var(--text_color_hover);
436
- }
437
-
438
- user_dd_image_main {
439
- width: -webkit-fill-available;
440
- height: -webkit-fill-available;
441
- display: flex;
442
- flex-direction: column;
443
- align-items: center;
444
- justify-content: center;
445
- flex-wrap: nowrap;
446
- margin-bottom: 6px
447
- }
448
-
449
- user_dd_image {
450
- width: 80px;
451
- height: 80px;
452
- display: flex;
453
- padding: var(--test_padding);
454
- border-radius: 50%;
455
- align-items: center;
456
- justify-content: center;
457
- font-size: 20pt;
458
- }
459
-
460
- /* chUiJS_HeaderButton */
461
- header_button {
462
- cursor: pointer;
463
- outline: none;
464
- height: max-content;
465
- width: max-content;
466
- border: none;
467
- border-radius: var(--border_radius);
468
- padding: var(--main_padding);
469
- margin: var(--margin) 0 var(--margin) var(--margin);
470
- font-size: var(--font_default_size);
471
- background: transparent;
472
- font-weight: 500;
473
- display: flex;
474
- flex-direction: row;
475
- -webkit-app-region: no-drag;
476
-
477
- }
478
-
479
- header_button header_button_title {
480
- color: var(--text_color);
481
- }
482
-
483
- header_button:hover {
484
- background: var(--blue_prime_background);
485
- }
486
-
487
- header_button:hover header_button_title {
488
- color: var(--text_color_hover);
489
- }
490
-
491
- header_button:hover chui_icon {
492
- color: var(--text_color_hover);
493
- }
494
-
495
- /* chUiJS_HeaderButton */
496
- header_button {
497
- cursor: pointer;
498
- outline: none;
499
- height: max-content;
500
- width: max-content;
501
- border: none;
502
- border-radius: var(--border_radius);
503
- padding: var(--main_padding);
504
- margin: var(--margin) 0 var(--margin) var(--margin);
505
- font-size: var(--font_default_size);
506
- background: transparent;
507
- color: var(--text_color);
508
- font-weight: 500;
509
- display: flex;
510
- flex-direction: row;
511
- }
512
-
513
- header_button:hover {
514
- background: var(--blue_prime_background);
515
- }
516
-
517
- header_button:hover header_button_title {
518
- color: var(--text_color_hover);
519
- }
520
-
521
- header_button:hover chui_icon {
522
- color: var(--text_color_hover);
523
- }
524
-
525
- /*Управление окном*/
526
- wc_box {
527
- -webkit-app-region: no-drag;
528
- color: var(--text_color);
529
- margin: 0 3px;
530
- padding: 0 3px;
531
- display: flex;
532
- align-items: center;
533
- justify-content: center;
534
- }
535
-
536
- wc_close, wc_maximize, wc_minimize {
537
- margin: 6px 3px;
538
- padding: 3px;
539
- border-radius: 50%;
540
- /*background: var(--element_background);*/
541
- box-shadow: 0 0 1px 0 var(--element_background_2);
542
- }
543
-
544
- wc_close:hover {
545
- background-color: var(--red_prime_background);
546
- }
547
-
548
- wc_maximize:hover, wc_minimize:hover {
549
- background-color: var(--blue_prime_background);
550
- }
551
-
552
- wc_close:hover chui_icon, wc_maximize:hover chui_icon, wc_minimize:hover chui_icon {
553
- color: white;
554
- }
555
-
556
- header_tabs {
557
- display: flex;
558
- align-items: center;
559
- justify-content: center;
560
- flex-direction: row;
561
- }
562
-
563
- .header_tab_active {
564
- pointer-events: none;
565
- background: var(--blue_prime_background);
566
- color: var(--text_color_hover);
567
- }
568
-
569
- .header_tab_active header_button_icon chui_icon {
570
- color: var(--text_color_hover);
1
+ :root {
2
+ --global_blur: saturate(180%) blur(30px);
3
+ --main_padding: 8px 13px;
4
+ --test_padding: 8px;
5
+ --header_icon_size: 13pt;
6
+ --font_default_size: 14px;
7
+ --font_labels_size: 12px;
8
+ --font_notification_size: 12px;
9
+ --button_text_color: var(--text_color);
10
+ --margin: 6px;
11
+
12
+ /* Скругления */
13
+ --border_radius: 10px;
14
+ --radius_sm: 8px;
15
+ --radius_md: 12px;
16
+ --radius_pill: 999px;
17
+ --radius_circle: 50%;
18
+
19
+ /* Ширина управляющих элементов */
20
+ --control_width: 200px;
21
+
22
+ /* Тени — плоский стиль: минимум, только для отделения всплывающих слоёв */
23
+ --box_shadow_main: 0 1px 2px rgb(0 0 0 / 12%);
24
+ --box_shadow_drop: 0 10px 30px rgb(0 0 0 / 16%);
25
+ --box_shadow_modal: 0 16px 48px rgb(0 0 0 / 22%);
26
+
27
+ /* Фокус */
28
+ --focus_outline: 2px solid var(--blue_prime_background);
29
+ --focus_outline_offset: 2px;
30
+
31
+ /* Тайминг анимаций */
32
+ --transition_time: .165s
33
+ }
34
+
35
+ html {
36
+ width: -webkit-fill-available;
37
+ height: -webkit-fill-available;
38
+ margin: 0;
39
+ padding: 0;
40
+ /* Рамка окна. --border_color полупрозрачный (хайрлайн), поэтому под ним
41
+ нужна непрозрачная подложка: без неё он композитится с базовым цветом
42
+ окна (белым) и вокруг приложения появляется белая рамка. */
43
+ background: var(--main_background);
44
+ box-shadow: inset 0 0 0 1px var(--border_color);
45
+ }
46
+
47
+ strong {
48
+ font-weight: 500;
49
+ }
50
+
51
+ * {
52
+ font-family: 'chui_I';
53
+ font-style: normal;
54
+ user-select: none;
55
+ outline: none;
56
+ transition: background-color var(--transition_time) ease,
57
+ color var(--transition_time) ease,
58
+ border-color var(--transition_time) ease,
59
+ box-shadow var(--transition_time) ease,
60
+ opacity var(--transition_time) ease,
61
+ transform var(--transition_time) ease;
62
+ animation-duration: var(--transition_time);
63
+ position: relative;
64
+ font-size: var(--font_default_size);
65
+ line-height: normal;
66
+ }
67
+
68
+ *:before {
69
+ font-family: 'chui_I';
70
+ font-style: normal;
71
+ user-select: none;
72
+ outline: none;
73
+ transition: background-color var(--transition_time) ease,
74
+ color var(--transition_time) ease,
75
+ border-color var(--transition_time) ease,
76
+ box-shadow var(--transition_time) ease,
77
+ opacity var(--transition_time) ease,
78
+ transform var(--transition_time) ease;
79
+ animation-duration: var(--transition_time);
80
+ position: relative;
81
+ font-size: var(--font_default_size);
82
+ line-height: normal;
83
+ }
84
+
85
+ :root *:focus-visible:not(input):not(textarea):not(select):not([contenteditable="true"]) {
86
+ outline: var(--focus_outline);
87
+ outline-offset: var(--focus_outline_offset);
88
+ }
89
+
90
+ input,
91
+ textarea,
92
+ [contenteditable="true"],
93
+ chui_editor_text_input,
94
+ chui_console,
95
+ chui_console_text,
96
+ .chui_code {
97
+ user-select: text;
98
+ }
99
+
100
+ body {
101
+ width: -webkit-fill-available;
102
+ height: -webkit-fill-available;
103
+ margin: 0;
104
+ padding: 0;
105
+ background: var(--main_background);
106
+ /*border-radius: var(--border_radius);*/
107
+ display: flex;
108
+ flex-direction: column;
109
+ margin: 1px;
110
+ }
111
+
112
+ app_menu_search_main {
113
+ background: transparent;
114
+ width: -webkit-fill-available;
115
+ display: flex;
116
+ align-items: center;
117
+ justify-content: center;
118
+ height: max-content;
119
+ padding: var(--test_padding);
120
+ }
121
+
122
+ .app_menu_search_input {
123
+ border-radius: var(--border_radius);
124
+ background: var(--header_background);
125
+ padding: var(--main_padding);
126
+ margin: var(--margin);
127
+ width: -webkit-fill-available;
128
+ color: var(--text_color);
129
+ font-size: var(--font_default_size);
130
+ border: none;
131
+ box-shadow: 0 0 1px 0 var(--border_color);
132
+ }
133
+
134
+ ::-webkit-scrollbar {
135
+ width: 8px;
136
+ }
137
+
138
+ center::-webkit-scrollbar-track {
139
+ margin-top: 45px;
140
+ }
141
+
142
+ .test_scroll_track::-webkit-scrollbar-track {
143
+ margin-top: 96px;
144
+ }
145
+
146
+ ::-webkit-scrollbar-track {
147
+ background-color: transparent;
148
+ }
149
+
150
+ ::-webkit-scrollbar-thumb {
151
+ border-radius: var(--border_radius);
152
+ background: var(--scrollbar_thumb);
153
+ }
154
+
155
+ ::-webkit-scrollbar-thumb:hover {
156
+ background: var(--blue_prime_background)
157
+ }
158
+
159
+ header {
160
+ width: -webkit-fill-available;
161
+ position: absolute;
162
+ top: 0;
163
+ display: flex;
164
+ z-index: 999;
165
+ flex-direction: column;
166
+ border-bottom-left-radius: var(--border_radius);
167
+ border-bottom-right-radius: var(--border_radius);
168
+ align-items: start;
169
+ background-color: var(--header_background);
170
+ backdrop-filter: var(--global_blur);
171
+ justify-content: space-between;
172
+ border-bottom: 1px solid var(--border_color);
173
+ }
174
+
175
+ header_main {
176
+ width: -webkit-fill-available;
177
+ display: flex;
178
+ align-items: center;
179
+ justify-content: center;
180
+ -webkit-app-region: drag;
181
+ -webkit-user-select: none;
182
+ }
183
+
184
+ center {
185
+ width: -webkit-fill-available;
186
+ height: -webkit-fill-available;
187
+ padding-top: 47px;
188
+ overflow: hidden hidden
189
+ }
190
+
191
+ center:hover {
192
+ overflow: hidden overlay;
193
+ }
194
+
195
+ notification_panel {
196
+ display: flex;
197
+ flex-direction: column;
198
+ position: fixed;
199
+ top: 46px;
200
+ right: 0;
201
+ padding: var(--margin);
202
+ align-items: flex-end;
203
+ justify-content: flex-start;
204
+ z-index: 1001;
205
+ overflow: hidden hidden;
206
+ max-height: calc(100% - 65px - (var(--margin) * 2));
207
+ transition: max-height var(--transition_time) ease-in-out;
208
+ }
209
+
210
+ notification_panel:hover {
211
+ overflow: hidden overlay;
212
+ }
213
+
214
+ app_menu {
215
+ display: flex;
216
+ flex-direction: column;
217
+ position: fixed;
218
+ justify-content: flex-start;
219
+ align-items: flex-start;
220
+ z-index: 1000;
221
+ margin: calc(47px + (var(--margin) * 2)) calc(var(--margin) * 2) calc(var(--margin) * 2) calc(var(--margin) * 2);
222
+ border-radius: var(--border_radius);
223
+ box-shadow: var(--box_shadow_main);
224
+ background: var(--header_background);
225
+ backdrop-filter: var(--global_blur);
226
+ height: -webkit-fill-available;
227
+ width: -webkit-fill-available;
228
+ border: 1px solid var(--border_color);
229
+ }
230
+
231
+ notification_box {
232
+ display: flex;
233
+ flex-direction: column;
234
+ position: fixed;
235
+ justify-content: flex-start;
236
+ align-items: flex-start;
237
+ height: -webkit-fill-available;
238
+ z-index: 1000;
239
+ margin: calc(47px + (var(--margin) * 2)) calc(var(--margin) * 2) calc(var(--margin) * 2) calc(var(--margin) * 2);
240
+ border-radius: var(--border_radius);
241
+ box-shadow: var(--box_shadow_main);
242
+ background: var(--header_background);
243
+ backdrop-filter: var(--global_blur);
244
+ width: -webkit-fill-available;
245
+ border: 1px solid var(--border_color);
246
+ }
247
+
248
+ notification_box_controls {
249
+ display: flex;
250
+ flex-direction: row;
251
+ justify-content: center;
252
+ align-items: center;
253
+ height: max-content;
254
+ width: -webkit-fill-available;
255
+ background: transparent;
256
+ }
257
+
258
+ notification_box_main {
259
+ display: flex;
260
+ flex-direction: column;
261
+ overflow: hidden hidden;
262
+ height: -webkit-fill-available;
263
+ width: -webkit-fill-available;
264
+ padding: 4px;
265
+ }
266
+
267
+ notification_box_main:hover {
268
+ overflow: hidden overlay;
269
+ }
270
+
271
+ notification_button {
272
+ cursor: pointer;
273
+ outline: none;
274
+ height: max-content;
275
+ width: max-content;
276
+ border: none;
277
+ border-radius: var(--border_radius);
278
+ padding: var(--test_padding);
279
+ margin: var(--margin);
280
+ background: transparent;
281
+ color: var(--text_color);
282
+ -webkit-app-region: no-drag;
283
+ transition: background-color var(--transition_time) ease, color var(--transition_time) ease;
284
+ }
285
+
286
+ notification_button:hover {
287
+ background: var(--element_background);
288
+ }
289
+
290
+ notification_button:active {
291
+ background: var(--element_background_hover);
292
+ }
293
+
294
+ /* Открытый ящик уведомлений: акцент, а не ховер */
295
+ .notification_button_active,
296
+ .notification_button_active:hover {
297
+ background: var(--blue_prime_background);
298
+ color: var(--text_color_hover);
299
+ }
300
+
301
+ .notification_button_active chui_icon,
302
+ .notification_button_active:hover chui_icon {
303
+ color: var(--text_color_hover);
304
+ }
305
+
306
+ app_menu_button {
307
+ cursor: pointer;
308
+ outline: none;
309
+ height: max-content;
310
+ width: max-content;
311
+ border: none;
312
+ border-radius: var(--border_radius);
313
+ padding: var(--test_padding);
314
+ margin: var(--margin);
315
+ background: transparent;
316
+ color: var(--text_color);
317
+ -webkit-app-region: no-drag;
318
+ transition: background-color var(--transition_time) ease, color var(--transition_time) ease;
319
+ }
320
+
321
+ app_menu_button:hover {
322
+ background: var(--element_background);
323
+ }
324
+
325
+ app_menu_button:active {
326
+ background: var(--element_background_hover);
327
+ }
328
+
329
+ /* Открытое меню маршрутов: акцент, а не ховер */
330
+ .app_menu_button_active,
331
+ .app_menu_button_active:hover {
332
+ background: var(--blue_prime_background);
333
+ color: var(--text_color_hover);
334
+ }
335
+
336
+ .app_menu_button_active chui_icon,
337
+ .app_menu_button_active:hover chui_icon {
338
+ color: var(--text_color_hover);
339
+ }
340
+
341
+ /* Клавиатурный фокус элементов шапки (мышь его не показывает) */
342
+ notification_button:focus-visible,
343
+ app_menu_button:focus-visible,
344
+ header_button:focus-visible {
345
+ outline: var(--focus_outline);
346
+ outline-offset: var(--focus_outline_offset);
347
+ }
348
+
349
+ route_views {
350
+ display: flex;
351
+ flex-direction: column;
352
+ padding: var(--test_padding);
353
+ width: -webkit-fill-available;
354
+ height: -webkit-fill-available;
355
+ overflow: hidden hidden;
356
+ }
357
+
358
+ route_views:hover {
359
+ overflow: hidden overlay;
360
+ }
361
+
362
+ page_name {
363
+ outline: none;
364
+ height: max-content;
365
+ width: max-content;
366
+ border: none;
367
+ border-radius: var(--border_radius);
368
+ padding: var(--test_padding);
369
+ margin: var(--margin) var(--margin) var(--margin) 0;
370
+ font-size: var(--font_default_size);
371
+ font-weight: 500;
372
+ background: transparent;
373
+ color: var(--text_color)
374
+ }
375
+
376
+ route {
377
+ cursor: pointer;
378
+ display: flex;
379
+ align-items: center;
380
+ outline: none;
381
+ height: max-content;
382
+ width: -webkit-fill-available;
383
+ border: none;
384
+ border-radius: var(--border_radius);
385
+ padding: var(--test_padding);
386
+ margin: var(--margin);
387
+ font-size: var(--font_default_size);
388
+ font-weight: 500;
389
+ background: transparent;
390
+ max-height: max-content;
391
+ }
392
+
393
+ route:hover {
394
+ background: var(--blue_prime_background);
395
+ }
396
+
397
+ route:active {
398
+ background: var(--element_background_prime);
399
+ }
400
+
401
+ route:hover route_title {
402
+ color: var(--text_color_hover);
403
+ }
404
+
405
+ route_title {
406
+ width: -webkit-fill-available;
407
+ color: var(--text_color);
408
+ }
409
+
410
+ route_icon {
411
+ margin-right: var(--margin);
412
+ }
413
+
414
+ .route_active {
415
+ background: var(--blue_prime_background);
416
+ color: var(--text_color_hover);
417
+ }
418
+
419
+ .route_active route_title {
420
+ color: var(--text_color_hover);
421
+ }
422
+
423
+ blockquote {
424
+ background: var(--element_background);
425
+ border-left: 10px solid var(--blue_prime_background);
426
+ margin: 1.5em 10px;
427
+ padding: 9px 14px;
428
+ color: var(--text_color);
429
+ border-radius: var(--border_radius);
430
+ display: flex;
431
+ }
432
+
433
+ header_left_box {
434
+ display: flex;
435
+ width: -webkit-fill-available;
436
+ align-items: center
437
+ }
438
+
439
+ header_right_box {
440
+ display: flex;
441
+ }
442
+
443
+ /* chUiJS_UserProfile */
444
+ user_main {
445
+ position: relative;
446
+ display: flex;
447
+ -webkit-app-region: no-drag;
448
+ }
449
+
450
+ user_button:hover {
451
+ background: var(--blue_prime_background);
452
+ color: var(--text_color_hover);
453
+ }
454
+
455
+ .user_button {
456
+ background: var(--blue_prime_background);
457
+ color: var(--text_color_hover);
458
+ }
459
+
460
+ user_button {
461
+ cursor: pointer;
462
+ outline: none;
463
+ height: max-content;
464
+ width: max-content;
465
+ color: var(--text_color);
466
+ border-radius: var(--border_radius);
467
+ padding: var(--main_padding);
468
+ margin: var(--margin) 0 var(--margin) var(--margin);
469
+ font-weight: 500
470
+ }
471
+
472
+ user_dropdown {
473
+ margin-top: 45px;
474
+ display: none;
475
+ position: absolute;
476
+ background: var(--header_background);
477
+ backdrop-filter: var(--global_blur);
478
+ -webkit-backdrop-filter: var(--global_blur);
479
+ color: var(--text_color);
480
+ border-radius: var(--border_radius);
481
+ padding: var(--test_padding);
482
+ z-index: 1;
483
+ right: 0;
484
+ min-width: 165px;
485
+ flex-direction: column;
486
+ box-shadow: var(--box_shadow_main);
487
+ }
488
+
489
+ user_dropdown user_item {
490
+ color: var(--text_color);
491
+ display: block;
492
+ font-weight: 400;
493
+ cursor: pointer;
494
+ text-align: start;
495
+ padding: var(--test_padding);
496
+ border-radius: var(--border_radius)
497
+ }
498
+
499
+ user_dropdown user_item:hover {
500
+ background: var(--blue_prime_background);
501
+ color: var(--text_color_hover);
502
+ }
503
+
504
+ user_dd_image_main {
505
+ width: -webkit-fill-available;
506
+ height: -webkit-fill-available;
507
+ display: flex;
508
+ flex-direction: column;
509
+ align-items: center;
510
+ justify-content: center;
511
+ flex-wrap: nowrap;
512
+ margin-bottom: 6px
513
+ }
514
+
515
+ user_dd_image {
516
+ width: 80px;
517
+ height: 80px;
518
+ display: flex;
519
+ padding: var(--test_padding);
520
+ border-radius: 50%;
521
+ align-items: center;
522
+ justify-content: center;
523
+ font-size: 20pt;
524
+ }
525
+
526
+ /* chUiJS_HeaderButton */
527
+ header_button {
528
+ cursor: pointer;
529
+ outline: none;
530
+ height: max-content;
531
+ width: max-content;
532
+ border: none;
533
+ border-radius: var(--border_radius);
534
+ padding: var(--main_padding);
535
+ margin: var(--margin) 0 var(--margin) var(--margin);
536
+ font-size: var(--font_default_size);
537
+ background: transparent;
538
+ color: var(--text_color);
539
+ font-weight: 500;
540
+ display: flex;
541
+ flex-direction: row;
542
+ -webkit-app-region: no-drag;
543
+ transition: background-color var(--transition_time) ease, color var(--transition_time) ease;
544
+ }
545
+
546
+ header_button header_button_title {
547
+ color: var(--text_color);
548
+ }
549
+
550
+ header_button:hover {
551
+ background: var(--element_background);
552
+ }
553
+
554
+ header_button:active {
555
+ background: var(--element_background_hover);
556
+ }
557
+
558
+ /*Управление окном — те же кнопки-иконки, что и остальные в шапке:
559
+ прозрачный фон, видимый символ, нейтральный ховер. */
560
+ wc_box {
561
+ -webkit-app-region: no-drag;
562
+ margin: 0 var(--margin);
563
+ padding: 0 3px;
564
+ display: flex;
565
+ align-items: center;
566
+ justify-content: center;
567
+ }
568
+
569
+ wc_close, wc_maximize, wc_minimize {
570
+ cursor: pointer;
571
+ margin: 6px 3px;
572
+ padding: 5px;
573
+ border-radius: var(--radius_circle);
574
+ background: transparent;
575
+ color: var(--text_color);
576
+ transition: background-color var(--transition_time) ease, color var(--transition_time) ease;
577
+ }
578
+
579
+ wc_maximize:hover, wc_minimize:hover {
580
+ background: var(--element_background);
581
+ }
582
+
583
+ wc_maximize:active, wc_minimize:active {
584
+ background: var(--element_background_hover);
585
+ }
586
+
587
+ /* Закрытие окна — единственное место, где уместен красный */
588
+ wc_close:hover {
589
+ background: var(--red_prime_background);
590
+ }
591
+
592
+ wc_close:hover chui_icon {
593
+ color: var(--text_color_hover);
594
+ }
595
+
596
+ wc_close:focus-visible, wc_maximize:focus-visible, wc_minimize:focus-visible {
597
+ outline: var(--focus_outline);
598
+ outline-offset: var(--focus_outline_offset);
599
+ }
600
+
601
+ header_tabs {
602
+ display: flex;
603
+ align-items: center;
604
+ justify-content: center;
605
+ flex-direction: row;
606
+ }
607
+
608
+ .header_tab_active {
609
+ pointer-events: none;
610
+ background: var(--blue_prime_background);
611
+ color: var(--text_color_hover);
612
+ }
613
+
614
+ .header_tab_active header_button_icon chui_icon {
615
+ color: var(--text_color_hover);
571
616
  }