chuijs 3.6.2 → 3.6.4

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 +592 -568
  5. package/framework/appLayout/default/main_theme_style.css +118 -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 +295 -295
  51. package/framework/components/chui_inputs/chui_multi_combo_box/styles.css +212 -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 +129 -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 +7129 -6974
  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,569 +1,593 @@
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: 11pt;
7
- --font_labels_size: 9pt;
8
- --font_notification_size: 10pt;
9
- --border_radius: 0.35rem;
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_Ubuntu';
29
- user-select: none;
30
- outline: none;
31
- transition: all var(--transition_time);
32
- animation-duration: var(--transition_time);
33
- position: relative;
34
- font-size: var(--font_default_size);
35
- line-height: normal;
36
- }
37
-
38
- *:before {
39
- font-family: 'chui_Ubuntu';
40
- user-select: none;
41
- outline: none;
42
- transition: all var(--transition_time);
43
- animation-duration: var(--transition_time);
44
- position: relative;
45
- font-size: var(--font_default_size);
46
- line-height: normal;
47
- }
48
-
49
- body {
50
- width: -webkit-fill-available;
51
- height: -webkit-fill-available;
52
- margin: 0;
53
- padding: 0;
54
- background: var(--main_background);
55
- /*border-radius: var(--border_radius);*/
56
- display: flex;
57
- flex-direction: column;
58
- margin: 1px;
59
- }
60
-
61
- app_menu_search_main {
62
- background: transparent;
63
- width: -webkit-fill-available;
64
- display: flex;
65
- align-items: center;
66
- justify-content: center;
67
- height: max-content;
68
- padding: var(--test_padding);
69
- }
70
-
71
- .app_menu_search_input {
72
- border-radius: var(--border_radius);
73
- background: var(--header_background);
74
- padding: var(--main_padding);
75
- margin: var(--margin);
76
- width: -webkit-fill-available;
77
- color: var(--text_color);
78
- font-size: var(--font_default_size);
79
- border: none;
80
- box-shadow: 0 0 1px 0 var(--element_background_2);
81
- }
82
-
83
- ::-webkit-scrollbar {
84
- width: 8px;
85
- }
86
-
87
- center::-webkit-scrollbar-track {
88
- margin-top: 45px;
89
- }
90
-
91
- .test_scroll_track::-webkit-scrollbar-track {
92
- margin-top: 96px;
93
- }
94
-
95
- ::-webkit-scrollbar-track {
96
- background-color: transparent;
97
- }
98
-
99
- ::-webkit-scrollbar-thumb {
100
- border-radius: var(--border_radius);
101
- background: var(--element_background_2);
102
- }
103
-
104
- ::-webkit-scrollbar-thumb:hover {
105
- background: var(--blue_prime_background)
106
- }
107
-
108
- header {
109
- width: -webkit-fill-available;
110
- position: absolute;
111
- top: 0;
112
- display: flex;
113
- z-index: 999;
114
- flex-direction: column;
115
- border-bottom-left-radius: var(--border_radius);
116
- border-bottom-right-radius: var(--border_radius);
117
- align-items: start;
118
- background-color: var(--header_background);
119
- backdrop-filter: var(--global_blur);
120
- background-blend-mode: overlay;
121
- justify-content: space-between;
122
- border-bottom: 1px solid var(--border_color);
123
- }
124
-
125
- header_main {
126
- width: -webkit-fill-available;
127
- display: flex;
128
- align-items: center;
129
- justify-content: center;
130
- -webkit-app-region: drag;
131
- -webkit-user-select: none;
132
- }
133
-
134
- center {
135
- width: -webkit-fill-available;
136
- height: -webkit-fill-available;
137
- padding-top: 47px;
138
- overflow: hidden hidden
139
- }
140
-
141
- center:hover {
142
- overflow: hidden overlay;
143
- }
144
-
145
- notification_panel {
146
- display: flex;
147
- flex-direction: column;
148
- position: fixed;
149
- top: 46px;
150
- right: 0;
151
- padding: var(--margin);
152
- align-items: flex-end;
153
- justify-content: flex-start;
154
- z-index: 1001;
155
- overflow: hidden hidden;
156
- max-height: calc(100% - 65px - (var(--margin) * 2));
157
- transition: max-height var(--transition_time) ease-in-out;
158
- }
159
-
160
- notification_panel:hover {
161
- overflow: hidden overlay;
162
- }
163
-
164
- app_menu {
165
- display: flex;
166
- flex-direction: column;
167
- position: fixed;
168
- justify-content: flex-start;
169
- align-items: flex-start;
170
- z-index: 1000;
171
- margin: calc(47px + (var(--margin) * 2)) calc(var(--margin) * 2) calc(var(--margin) * 2) calc(var(--margin) * 2);
172
- border-radius: var(--border_radius);
173
- box-shadow: var(--box_shadow_main);
174
- background: var(--header_background);
175
- backdrop-filter: var(--global_blur);
176
- height: -webkit-fill-available;
177
- width: -webkit-fill-available;
178
- border: 1px solid var(--border_color);
179
- }
180
-
181
- notification_box {
182
- display: flex;
183
- flex-direction: column;
184
- position: fixed;
185
- justify-content: flex-start;
186
- align-items: flex-start;
187
- height: -webkit-fill-available;
188
- z-index: 1000;
189
- margin: calc(47px + (var(--margin) * 2)) calc(var(--margin) * 2) calc(var(--margin) * 2) calc(var(--margin) * 2);
190
- border-radius: var(--border_radius);
191
- box-shadow: var(--box_shadow_main);
192
- background: var(--header_background);
193
- backdrop-filter: var(--global_blur);
194
- width: -webkit-fill-available;
195
- border: 1px solid var(--border_color);
196
- }
197
-
198
- notification_box_controls {
199
- display: flex;
200
- flex-direction: row;
201
- justify-content: center;
202
- align-items: center;
203
- height: max-content;
204
- width: -webkit-fill-available;
205
- background: transparent;
206
- }
207
-
208
- notification_box_main {
209
- display: flex;
210
- flex-direction: column;
211
- overflow: hidden hidden;
212
- height: -webkit-fill-available;
213
- width: -webkit-fill-available;
214
- padding: 4px;
215
- }
216
-
217
- notification_box_main:hover {
218
- overflow: hidden overlay;
219
- }
220
-
221
- notification_button {
222
- cursor: pointer;
223
- outline: none;
224
- height: max-content;
225
- width: max-content;
226
- border: none;
227
- border-radius: var(--border_radius);
228
- padding: var(--test_padding);
229
- margin: var(--margin);
230
- font-size: 22pt;
231
- background: transparent;
232
- color: var(--text_color);
233
- -webkit-app-region: no-drag;
234
- }
235
-
236
- notification_button:hover {
237
- background: var(--blue_prime_background);
238
- }
239
-
240
- .notification_button_active {
241
- background: var(--blue_prime_background);
242
- }
243
-
244
- .notification_button_active chui_icon {
245
- color: var(--text_color_hover);
246
- }
247
-
248
- notification_button:hover chui_icon {
249
- color: var(--text_color_hover);
250
- }
251
-
252
- app_menu_button {
253
- cursor: pointer;
254
- outline: none;
255
- height: max-content;
256
- width: max-content;
257
- border: none;
258
- border-radius: var(--border_radius);
259
- padding: var(--test_padding);
260
- margin: var(--margin);
261
- font-size: 22pt;
262
- background: transparent;
263
- color: var(--text_color);
264
- -webkit-app-region: no-drag;
265
- }
266
-
267
- app_menu_button:hover {
268
- background: var(--blue_prime_background);
269
- }
270
-
271
- .app_menu_button_active {
272
- background: var(--blue_prime_background);
273
- }
274
-
275
- .app_menu_button_active chui_icon {
276
- color: var(--text_color_hover);
277
- }
278
-
279
- app_menu_button:hover chui_icon {
280
- color: var(--text_color_hover);
281
- }
282
-
283
- route_views {
284
- display: flex;
285
- flex-direction: column;
286
- padding: var(--test_padding);
287
- width: -webkit-fill-available;
288
- height: -webkit-fill-available;
289
- overflow: hidden hidden;
290
- }
291
-
292
- route_views:hover {
293
- overflow: hidden overlay;
294
- }
295
-
296
- page_name {
297
- outline: none;
298
- height: max-content;
299
- width: max-content;
300
- border: none;
301
- border-radius: var(--border_radius);
302
- padding: var(--test_padding);
303
- margin: var(--margin) var(--margin) var(--margin) 0;
304
- font-size: var(--font_default_size);
305
- font-weight: 500;
306
- background: transparent;
307
- color: var(--text_color)
308
- }
309
-
310
- route {
311
- cursor: pointer;
312
- display: flex;
313
- align-items: center;
314
- outline: none;
315
- height: max-content;
316
- width: -webkit-fill-available;
317
- border: none;
318
- border-radius: var(--border_radius);
319
- padding: var(--test_padding);
320
- margin: var(--margin);
321
- font-size: var(--font_default_size);
322
- font-weight: 500;
323
- background: transparent;
324
- max-height: max-content;
325
- }
326
-
327
- route:hover {
328
- padding: var(--main_padding);
329
- background: var(--blue_prime_background);
330
- }
331
-
332
- route:hover route_title {
333
- color: var(--text_color_hover);
334
- }
335
-
336
- route_title {
337
- width: -webkit-fill-available;
338
- color: var(--text_color);
339
- }
340
-
341
- route_icon {
342
- margin-right: var(--margin);
343
- }
344
-
345
- .route_active {
346
- padding: var(--main_padding);
347
- background: var(--blue_prime_background);
348
- color: var(--text_color_hover);
349
- }
350
-
351
- .route_active route_title {
352
- color: var(--text_color_hover);
353
- }
354
-
355
- blockquote {
356
- background: var(--element_background);
357
- border-left: 10px solid var(--blue_prime_background);
358
- margin: 1.5em 10px;
359
- padding: 9px 14px;
360
- color: var(--text_color);
361
- border-radius: var(--border_radius);
362
- display: flex;
363
- }
364
-
365
- header_left_box {
366
- display: flex;
367
- width: -webkit-fill-available;
368
- align-items: center
369
- }
370
-
371
- header_right_box {
372
- display: flex;
373
- }
374
-
375
- /* chUiJS_UserProfile */
376
- user_main {
377
- position: relative;
378
- display: flex;
379
- -webkit-app-region: no-drag;
380
- }
381
-
382
- user_button:hover {
383
- background: var(--blue_prime_background);
384
- color: var(--text_color_hover);
385
- }
386
-
387
- .user_button {
388
- background: var(--blue_prime_background);
389
- color: var(--text_color_hover);
390
- }
391
-
392
- user_button {
393
- cursor: pointer;
394
- outline: none;
395
- height: max-content;
396
- width: max-content;
397
- color: var(--text_color);
398
- border-radius: var(--border_radius);
399
- padding: var(--main_padding);
400
- margin: var(--margin) 0 var(--margin) var(--margin);
401
- font-weight: 500
402
- }
403
-
404
- user_dropdown {
405
- margin-top: 45px;
406
- display: none;
407
- position: absolute;
408
- background: var(--header_background_drop);
409
- color: var(--text_color);
410
- border-radius: var(--border_radius);
411
- padding: var(--test_padding);
412
- z-index: 1;
413
- right: 0;
414
- min-width: 165px;
415
- flex-direction: column;
416
- box-shadow: var(--box_shadow_main);
417
- }
418
-
419
- user_dropdown user_item {
420
- color: var(--text_color);
421
- display: block;
422
- font-weight: 400;
423
- cursor: pointer;
424
- text-align: start;
425
- padding: var(--test_padding);
426
- border-radius: var(--border_radius)
427
- }
428
-
429
- user_dropdown user_item:hover {
430
- background-color: #ddd;
431
- padding: var(--main_padding);
432
- background: var(--blue_prime_background);
433
- color: var(--text_color_hover);
434
- }
435
-
436
- user_dd_image_main {
437
- width: -webkit-fill-available;
438
- height: -webkit-fill-available;
439
- display: flex;
440
- flex-direction: column;
441
- align-items: center;
442
- justify-content: center;
443
- flex-wrap: nowrap;
444
- margin-bottom: 6px
445
- }
446
-
447
- user_dd_image {
448
- width: 80px;
449
- height: 80px;
450
- display: flex;
451
- padding: var(--test_padding);
452
- border-radius: 50%;
453
- align-items: center;
454
- justify-content: center;
455
- font-size: 20pt;
456
- }
457
-
458
- /* chUiJS_HeaderButton */
459
- header_button {
460
- cursor: pointer;
461
- outline: none;
462
- height: max-content;
463
- width: max-content;
464
- border: none;
465
- border-radius: var(--border_radius);
466
- padding: var(--main_padding);
467
- margin: var(--margin) 0 var(--margin) var(--margin);
468
- font-size: var(--font_default_size);
469
- background: transparent;
470
- font-weight: 500;
471
- display: flex;
472
- flex-direction: row;
473
- -webkit-app-region: no-drag;
474
-
475
- }
476
-
477
- header_button header_button_title {
478
- color: var(--text_color);
479
- }
480
-
481
- header_button:hover {
482
- background: var(--blue_prime_background);
483
- }
484
-
485
- header_button:hover header_button_title {
486
- color: var(--text_color_hover);
487
- }
488
-
489
- header_button:hover chui_icon {
490
- color: var(--text_color_hover);
491
- }
492
-
493
- /* chUiJS_HeaderButton */
494
- header_button {
495
- cursor: pointer;
496
- outline: none;
497
- height: max-content;
498
- width: max-content;
499
- border: none;
500
- border-radius: var(--border_radius);
501
- padding: var(--main_padding);
502
- margin: var(--margin) 0 var(--margin) var(--margin);
503
- font-size: var(--font_default_size);
504
- background: transparent;
505
- color: var(--text_color);
506
- font-weight: 500;
507
- display: flex;
508
- flex-direction: row;
509
- }
510
-
511
- header_button:hover {
512
- background: var(--blue_prime_background);
513
- }
514
-
515
- header_button:hover header_button_title {
516
- color: var(--text_color_hover);
517
- }
518
-
519
- header_button:hover chui_icon {
520
- color: var(--text_color_hover);
521
- }
522
-
523
- /*Управление окном*/
524
- wc_box {
525
- -webkit-app-region: no-drag;
526
- color: var(--text_color);
527
- margin: 0 3px;
528
- padding: 0 3px;
529
- display: flex;
530
- align-items: center;
531
- justify-content: center;
532
- }
533
-
534
- wc_close, wc_maximize, wc_minimize {
535
- margin: 6px 3px;
536
- padding: 3px;
537
- border-radius: 50%;
538
- /*background: var(--element_background);*/
539
- box-shadow: 0 0 1px 0 var(--element_background_2);
540
- }
541
-
542
- wc_close:hover {
543
- background-color: var(--red_prime_background);
544
- }
545
-
546
- wc_maximize:hover, wc_minimize:hover {
547
- background-color: var(--blue_prime_background);
548
- }
549
-
550
- wc_close:hover chui_icon, wc_maximize:hover chui_icon, wc_minimize:hover chui_icon {
551
- color: white;
552
- }
553
-
554
- header_tabs {
555
- display: flex;
556
- align-items: center;
557
- justify-content: center;
558
- flex-direction: row;
559
- }
560
-
561
- .header_tab_active {
562
- pointer-events: none;
563
- background: var(--blue_prime_background);
564
- color: var(--text_color_hover);
565
- }
566
-
567
- .header_tab_active header_button_icon chui_icon {
568
- 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
+ background-blend-mode: overlay;
172
+ justify-content: space-between;
173
+ border-bottom: 1px solid var(--border_color);
174
+ }
175
+
176
+ header_main {
177
+ width: -webkit-fill-available;
178
+ display: flex;
179
+ align-items: center;
180
+ justify-content: center;
181
+ -webkit-app-region: drag;
182
+ -webkit-user-select: none;
183
+ }
184
+
185
+ center {
186
+ width: -webkit-fill-available;
187
+ height: -webkit-fill-available;
188
+ padding-top: 47px;
189
+ overflow: hidden hidden
190
+ }
191
+
192
+ center:hover {
193
+ overflow: hidden overlay;
194
+ }
195
+
196
+ notification_panel {
197
+ display: flex;
198
+ flex-direction: column;
199
+ position: fixed;
200
+ top: 46px;
201
+ right: 0;
202
+ padding: var(--margin);
203
+ align-items: flex-end;
204
+ justify-content: flex-start;
205
+ z-index: 1001;
206
+ overflow: hidden hidden;
207
+ max-height: calc(100% - 65px - (var(--margin) * 2));
208
+ transition: max-height var(--transition_time) ease-in-out;
209
+ }
210
+
211
+ notification_panel:hover {
212
+ overflow: hidden overlay;
213
+ }
214
+
215
+ app_menu {
216
+ display: flex;
217
+ flex-direction: column;
218
+ position: fixed;
219
+ justify-content: flex-start;
220
+ align-items: flex-start;
221
+ z-index: 1000;
222
+ margin: calc(47px + (var(--margin) * 2)) calc(var(--margin) * 2) calc(var(--margin) * 2) calc(var(--margin) * 2);
223
+ border-radius: var(--border_radius);
224
+ box-shadow: var(--box_shadow_main);
225
+ background: var(--header_background);
226
+ backdrop-filter: var(--global_blur);
227
+ height: -webkit-fill-available;
228
+ width: -webkit-fill-available;
229
+ border: 1px solid var(--border_color);
230
+ }
231
+
232
+ notification_box {
233
+ display: flex;
234
+ flex-direction: column;
235
+ position: fixed;
236
+ justify-content: flex-start;
237
+ align-items: flex-start;
238
+ height: -webkit-fill-available;
239
+ z-index: 1000;
240
+ margin: calc(47px + (var(--margin) * 2)) calc(var(--margin) * 2) calc(var(--margin) * 2) calc(var(--margin) * 2);
241
+ border-radius: var(--border_radius);
242
+ box-shadow: var(--box_shadow_main);
243
+ background: var(--header_background);
244
+ backdrop-filter: var(--global_blur);
245
+ width: -webkit-fill-available;
246
+ border: 1px solid var(--border_color);
247
+ }
248
+
249
+ notification_box_controls {
250
+ display: flex;
251
+ flex-direction: row;
252
+ justify-content: center;
253
+ align-items: center;
254
+ height: max-content;
255
+ width: -webkit-fill-available;
256
+ background: transparent;
257
+ }
258
+
259
+ notification_box_main {
260
+ display: flex;
261
+ flex-direction: column;
262
+ overflow: hidden hidden;
263
+ height: -webkit-fill-available;
264
+ width: -webkit-fill-available;
265
+ padding: 4px;
266
+ }
267
+
268
+ notification_box_main:hover {
269
+ overflow: hidden overlay;
270
+ }
271
+
272
+ notification_button {
273
+ cursor: pointer;
274
+ outline: none;
275
+ height: max-content;
276
+ width: max-content;
277
+ border: none;
278
+ border-radius: var(--border_radius);
279
+ padding: var(--test_padding);
280
+ margin: var(--margin);
281
+ font-size: 22pt;
282
+ background: transparent;
283
+ color: var(--text_color);
284
+ -webkit-app-region: no-drag;
285
+ }
286
+
287
+ notification_button:hover {
288
+ background: var(--blue_prime_background);
289
+ }
290
+
291
+ .notification_button_active {
292
+ background: var(--blue_prime_background);
293
+ }
294
+
295
+ .notification_button_active chui_icon {
296
+ color: var(--text_color_hover);
297
+ }
298
+
299
+ notification_button:hover chui_icon {
300
+ color: var(--text_color_hover);
301
+ }
302
+
303
+ app_menu_button {
304
+ cursor: pointer;
305
+ outline: none;
306
+ height: max-content;
307
+ width: max-content;
308
+ border: none;
309
+ border-radius: var(--border_radius);
310
+ padding: var(--test_padding);
311
+ margin: var(--margin);
312
+ font-size: 22pt;
313
+ background: transparent;
314
+ color: var(--text_color);
315
+ -webkit-app-region: no-drag;
316
+ }
317
+
318
+ app_menu_button:hover {
319
+ background: var(--blue_prime_background);
320
+ }
321
+
322
+ .app_menu_button_active {
323
+ background: var(--blue_prime_background);
324
+ }
325
+
326
+ .app_menu_button_active chui_icon {
327
+ color: var(--text_color_hover);
328
+ }
329
+
330
+ app_menu_button:hover chui_icon {
331
+ color: var(--text_color_hover);
332
+ }
333
+
334
+ route_views {
335
+ display: flex;
336
+ flex-direction: column;
337
+ padding: var(--test_padding);
338
+ width: -webkit-fill-available;
339
+ height: -webkit-fill-available;
340
+ overflow: hidden hidden;
341
+ }
342
+
343
+ route_views:hover {
344
+ overflow: hidden overlay;
345
+ }
346
+
347
+ page_name {
348
+ outline: none;
349
+ height: max-content;
350
+ width: max-content;
351
+ border: none;
352
+ border-radius: var(--border_radius);
353
+ padding: var(--test_padding);
354
+ margin: var(--margin) var(--margin) var(--margin) 0;
355
+ font-size: var(--font_default_size);
356
+ font-weight: 500;
357
+ background: transparent;
358
+ color: var(--text_color)
359
+ }
360
+
361
+ route {
362
+ cursor: pointer;
363
+ display: flex;
364
+ align-items: center;
365
+ outline: none;
366
+ height: max-content;
367
+ width: -webkit-fill-available;
368
+ border: none;
369
+ border-radius: var(--border_radius);
370
+ padding: var(--test_padding);
371
+ margin: var(--margin);
372
+ font-size: var(--font_default_size);
373
+ font-weight: 500;
374
+ background: transparent;
375
+ max-height: max-content;
376
+ }
377
+
378
+ route:hover {
379
+ background: var(--blue_prime_background);
380
+ }
381
+
382
+ route:active {
383
+ background: var(--element_background_prime);
384
+ }
385
+
386
+ route:hover route_title {
387
+ color: var(--text_color_hover);
388
+ }
389
+
390
+ route_title {
391
+ width: -webkit-fill-available;
392
+ color: var(--text_color);
393
+ }
394
+
395
+ route_icon {
396
+ margin-right: var(--margin);
397
+ }
398
+
399
+ .route_active {
400
+ background: var(--blue_prime_background);
401
+ color: var(--text_color_hover);
402
+ }
403
+
404
+ .route_active route_title {
405
+ color: var(--text_color_hover);
406
+ }
407
+
408
+ blockquote {
409
+ background: var(--element_background);
410
+ border-left: 10px solid var(--blue_prime_background);
411
+ margin: 1.5em 10px;
412
+ padding: 9px 14px;
413
+ color: var(--text_color);
414
+ border-radius: var(--border_radius);
415
+ display: flex;
416
+ }
417
+
418
+ header_left_box {
419
+ display: flex;
420
+ width: -webkit-fill-available;
421
+ align-items: center
422
+ }
423
+
424
+ header_right_box {
425
+ display: flex;
426
+ }
427
+
428
+ /* chUiJS_UserProfile */
429
+ user_main {
430
+ position: relative;
431
+ display: flex;
432
+ -webkit-app-region: no-drag;
433
+ }
434
+
435
+ user_button:hover {
436
+ background: var(--blue_prime_background);
437
+ color: var(--text_color_hover);
438
+ }
439
+
440
+ .user_button {
441
+ background: var(--blue_prime_background);
442
+ color: var(--text_color_hover);
443
+ }
444
+
445
+ user_button {
446
+ cursor: pointer;
447
+ outline: none;
448
+ height: max-content;
449
+ width: max-content;
450
+ color: var(--text_color);
451
+ border-radius: var(--border_radius);
452
+ padding: var(--main_padding);
453
+ margin: var(--margin) 0 var(--margin) var(--margin);
454
+ font-weight: 500
455
+ }
456
+
457
+ user_dropdown {
458
+ margin-top: 45px;
459
+ display: none;
460
+ position: absolute;
461
+ background: var(--header_background);
462
+ backdrop-filter: var(--global_blur);
463
+ -webkit-backdrop-filter: var(--global_blur);
464
+ color: var(--text_color);
465
+ border-radius: var(--border_radius);
466
+ padding: var(--test_padding);
467
+ z-index: 1;
468
+ right: 0;
469
+ min-width: 165px;
470
+ flex-direction: column;
471
+ box-shadow: var(--box_shadow_main);
472
+ }
473
+
474
+ user_dropdown user_item {
475
+ color: var(--text_color);
476
+ display: block;
477
+ font-weight: 400;
478
+ cursor: pointer;
479
+ text-align: start;
480
+ padding: var(--test_padding);
481
+ border-radius: var(--border_radius)
482
+ }
483
+
484
+ user_dropdown user_item:hover {
485
+ background: var(--blue_prime_background);
486
+ color: var(--text_color_hover);
487
+ }
488
+
489
+ user_dd_image_main {
490
+ width: -webkit-fill-available;
491
+ height: -webkit-fill-available;
492
+ display: flex;
493
+ flex-direction: column;
494
+ align-items: center;
495
+ justify-content: center;
496
+ flex-wrap: nowrap;
497
+ margin-bottom: 6px
498
+ }
499
+
500
+ user_dd_image {
501
+ width: 80px;
502
+ height: 80px;
503
+ display: flex;
504
+ padding: var(--test_padding);
505
+ border-radius: 50%;
506
+ align-items: center;
507
+ justify-content: center;
508
+ font-size: 20pt;
509
+ }
510
+
511
+ /* chUiJS_HeaderButton */
512
+ header_button {
513
+ cursor: pointer;
514
+ outline: none;
515
+ height: max-content;
516
+ width: max-content;
517
+ border: none;
518
+ border-radius: var(--border_radius);
519
+ padding: var(--main_padding);
520
+ margin: var(--margin) 0 var(--margin) var(--margin);
521
+ font-size: var(--font_default_size);
522
+ background: transparent;
523
+ color: var(--text_color);
524
+ font-weight: 500;
525
+ display: flex;
526
+ flex-direction: row;
527
+ -webkit-app-region: no-drag;
528
+
529
+ }
530
+
531
+ header_button header_button_title {
532
+ color: var(--text_color);
533
+ }
534
+
535
+ header_button:hover {
536
+ background: var(--blue_prime_background);
537
+ }
538
+
539
+ header_button:hover header_button_title {
540
+ color: var(--text_color_hover);
541
+ }
542
+
543
+ header_button:hover chui_icon {
544
+ color: var(--text_color_hover);
545
+ }
546
+
547
+ /*Управление окном*/
548
+ wc_box {
549
+ -webkit-app-region: no-drag;
550
+ color: var(--text_color);
551
+ margin: 0 3px;
552
+ padding: 0 3px;
553
+ display: flex;
554
+ align-items: center;
555
+ justify-content: center;
556
+ }
557
+
558
+ wc_close, wc_maximize, wc_minimize {
559
+ margin: 6px 3px;
560
+ padding: 3px;
561
+ border-radius: 50%;
562
+ /*background: var(--element_background);*/
563
+ box-shadow: 0 0 1px 0 var(--border_color);
564
+ }
565
+
566
+ wc_close:hover {
567
+ background-color: var(--red_prime_background);
568
+ }
569
+
570
+ wc_maximize:hover, wc_minimize:hover {
571
+ background-color: var(--blue_prime_background);
572
+ }
573
+
574
+ wc_close:hover chui_icon, wc_maximize:hover chui_icon, wc_minimize:hover chui_icon {
575
+ color: white;
576
+ }
577
+
578
+ header_tabs {
579
+ display: flex;
580
+ align-items: center;
581
+ justify-content: center;
582
+ flex-direction: row;
583
+ }
584
+
585
+ .header_tab_active {
586
+ pointer-events: none;
587
+ background: var(--blue_prime_background);
588
+ color: var(--text_color_hover);
589
+ }
590
+
591
+ .header_tab_active header_button_icon chui_icon {
592
+ color: var(--text_color_hover);
569
593
  }