chuijs 4.0.3 → 4.0.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.
- package/CHANGELOG.md +536 -0
- package/framework/appLayout/default/chui_app_layout.js +361 -303
- package/framework/appLayout/default/global_style.css +243 -89
- package/framework/appLayout/default/main_theme_style.css +188 -101
- package/framework/components/chui_accordion/accordion.js +17 -17
- package/framework/components/chui_accordion/styles.css +7 -7
- package/framework/components/chui_action_sheet/action_sheet.js +35 -32
- package/framework/components/chui_action_sheet/styles.css +10 -4
- package/framework/components/chui_actions_bar/actions_bar.js +338 -0
- package/framework/components/chui_actions_bar/styles.css +139 -0
- package/framework/components/chui_affix/affix.js +4 -4
- package/framework/components/chui_affix/styles.css +5 -0
- package/framework/components/chui_alert/alert.js +11 -5
- package/framework/components/chui_alert/styles.css +7 -0
- package/framework/components/chui_avatar/avatar.js +13 -13
- package/framework/components/chui_avatar/styles.css +1 -1
- package/framework/components/chui_avatar_group/avatar_group.js +4 -4
- package/framework/components/chui_avatar_group/styles.css +1 -1
- package/framework/components/chui_backtop/backtop.js +25 -2
- package/framework/components/chui_backtop/styles.css +21 -0
- package/framework/components/chui_badge/badge.js +15 -15
- package/framework/components/chui_badge/styles.css +6 -6
- package/framework/components/chui_banner/banner.js +222 -0
- package/framework/components/chui_banner/styles.css +170 -0
- package/framework/components/chui_breadcrumb/styles.css +1 -1
- package/framework/components/chui_button/button.js +24 -28
- package/framework/components/chui_button/styles.css +5 -5
- package/framework/components/chui_calendar/calendar.js +6 -6
- package/framework/components/chui_card/card.js +14 -14
- package/framework/components/chui_card_scroll/card_scroll.js +169 -0
- package/framework/components/chui_card_scroll/styles.css +86 -0
- package/framework/components/chui_chat/chat.js +73 -51
- package/framework/components/chui_chat/styles.css +18 -7
- package/framework/components/chui_clipboard_history/clipboard_history.js +25 -20
- package/framework/components/chui_clipboard_history/styles.css +10 -8
- package/framework/components/chui_code/code.js +8 -8
- package/framework/components/chui_code/styles.css +2 -2
- package/framework/components/chui_code_editor/code_editor.js +26 -26
- package/framework/components/chui_code_editor/styles.css +3 -3
- package/framework/components/chui_command_palette/command_palette.js +29 -29
- package/framework/components/chui_command_palette/styles.css +5 -5
- package/framework/components/chui_console/console.js +9 -9
- package/framework/components/chui_console/styles.css +5 -2
- package/framework/components/chui_content_block/content_block.js +2 -2
- package/framework/components/chui_context_menu/context_menu.js +162 -54
- package/framework/components/chui_context_menu/styles.css +82 -8
- package/framework/components/chui_custom_element/custom_element.js +11 -11
- package/framework/components/chui_data_grid/data_grid.js +268 -268
- package/framework/components/chui_data_grid/styles.css +14 -14
- package/framework/components/chui_descriptions/styles.css +1 -1
- package/framework/components/chui_details/details.js +12 -12
- package/framework/components/chui_details/styles.css +7 -7
- package/framework/components/chui_diff_viewer/diff_viewer.js +88 -88
- package/framework/components/chui_diff_viewer/styles.css +9 -9
- package/framework/components/chui_divider/divider.js +6 -6
- package/framework/components/chui_divider/styles.css +2 -2
- package/framework/components/chui_drawer/drawer.js +37 -14
- package/framework/components/chui_drawer/styles.css +18 -4
- package/framework/components/chui_drop_zone/drop_zone.js +6 -6
- package/framework/components/chui_drop_zone/styles.css +10 -6
- package/framework/components/chui_fieldset/fieldset.js +6 -6
- package/framework/components/chui_fieldset/styles.css +5 -5
- package/framework/components/chui_file_explorer/file_explorer.js +115 -115
- package/framework/components/chui_file_explorer/styles.css +6 -6
- package/framework/components/chui_form/form.js +11 -11
- package/framework/components/chui_gantt/gantt.js +41 -41
- package/framework/components/chui_gantt/styles.css +5 -5
- package/framework/components/chui_graphs/graphs.js +82 -46
- package/framework/components/chui_graphs/styles.css +26 -5
- package/framework/components/chui_hero/hero.js +63 -20
- package/framework/components/chui_hero/styles.css +176 -7
- package/framework/components/chui_html_block/html_block.js +5 -5
- package/framework/components/chui_html_block/styles.css +1 -1
- package/framework/components/chui_hx/styles.css +2 -2
- package/framework/components/chui_icons/icons.js +7 -7
- package/framework/components/chui_icons/styles.css +2 -1
- package/framework/components/chui_inputs/chui_check_box/styles.css +12 -3
- package/framework/components/chui_inputs/chui_chips/chips.js +92 -31
- package/framework/components/chui_inputs/chui_chips/styles.css +28 -5
- package/framework/components/chui_inputs/chui_color_picker/color_picker.js +20 -15
- package/framework/components/chui_inputs/chui_color_picker/styles.css +7 -7
- package/framework/components/chui_inputs/chui_combo_box/combo_box.js +58 -58
- package/framework/components/chui_inputs/chui_combo_box/styles.css +9 -9
- package/framework/components/chui_inputs/chui_date/date.js +93 -95
- package/framework/components/chui_inputs/chui_date/styles.css +8 -8
- package/framework/components/chui_inputs/chui_date_range/date_range.js +22 -22
- package/framework/components/chui_inputs/chui_date_range/styles.css +3 -3
- package/framework/components/chui_inputs/chui_datetime/datetime.js +12 -12
- package/framework/components/chui_inputs/chui_datetime/styles.css +3 -3
- package/framework/components/chui_inputs/chui_email/email.js +10 -10
- package/framework/components/chui_inputs/chui_email/styles.css +6 -6
- package/framework/components/chui_inputs/chui_file/file.js +8 -8
- package/framework/components/chui_inputs/chui_file/styles.css +12 -9
- package/framework/components/chui_inputs/chui_hotkey/hotkey.js +39 -39
- package/framework/components/chui_inputs/chui_hotkey/styles.css +6 -6
- package/framework/components/chui_inputs/chui_masked/masked.js +44 -44
- package/framework/components/chui_inputs/chui_masked/styles.css +5 -5
- package/framework/components/chui_inputs/chui_mention/mention.js +13 -13
- package/framework/components/chui_inputs/chui_mention/styles.css +14 -8
- package/framework/components/chui_inputs/chui_multi_combo_box/multi_combo_box.js +147 -137
- package/framework/components/chui_inputs/chui_multi_combo_box/styles.css +14 -8
- package/framework/components/chui_inputs/chui_number/number.js +42 -45
- package/framework/components/chui_inputs/chui_number/styles.css +6 -6
- package/framework/components/chui_inputs/chui_otp/otp.js +32 -32
- package/framework/components/chui_inputs/chui_otp/styles.css +5 -5
- package/framework/components/chui_inputs/chui_password/password.js +30 -36
- package/framework/components/chui_inputs/chui_password/styles.css +7 -7
- package/framework/components/chui_inputs/chui_radio_button/styles.css +2 -2
- package/framework/components/chui_inputs/chui_rating/rating.js +28 -28
- package/framework/components/chui_inputs/chui_rating/styles.css +3 -3
- package/framework/components/chui_inputs/chui_select_box/select_box.js +54 -54
- package/framework/components/chui_inputs/chui_select_box/styles.css +10 -10
- package/framework/components/chui_inputs/chui_slider/slider.js +14 -14
- package/framework/components/chui_inputs/chui_slider/styles.css +5 -4
- package/framework/components/chui_inputs/chui_text/styles.css +7 -7
- package/framework/components/chui_inputs/chui_text/text.js +13 -17
- package/framework/components/chui_inputs/chui_text_area/styles.css +8 -8
- package/framework/components/chui_inputs/chui_text_area/text_area.js +23 -23
- package/framework/components/chui_inputs/chui_time/styles.css +13 -17
- package/framework/components/chui_inputs/chui_time/time.js +35 -24
- package/framework/components/chui_inputs/chui_toggle/styles.css +10 -3
- package/framework/components/chui_inputs/chui_toggle/toggle.js +16 -16
- package/framework/components/chui_json_editor/json_editor.js +87 -87
- package/framework/components/chui_json_editor/styles.css +5 -5
- package/framework/components/chui_json_viewer/json_viewer.js +80 -80
- package/framework/components/chui_json_viewer/styles.css +6 -6
- package/framework/components/chui_kanban/kanban.js +27 -27
- package/framework/components/chui_kanban/styles.css +8 -4
- package/framework/components/chui_kbd/styles.css +1 -1
- package/framework/components/chui_label/label.js +17 -17
- package/framework/components/chui_label/styles.css +1 -1
- package/framework/components/chui_link/link.js +9 -9
- package/framework/components/chui_link/styles.css +11 -4
- package/framework/components/chui_list/list.js +11 -11
- package/framework/components/chui_list/styles.css +2 -2
- package/framework/components/chui_markdown_editor/markdown_editor.js +66 -66
- package/framework/components/chui_markdown_editor/styles.css +5 -5
- package/framework/components/chui_media/audio.js +240 -246
- package/framework/components/chui_media/audio_styles.css +41 -23
- package/framework/components/chui_media/image.js +49 -46
- package/framework/components/chui_media/image_compare.js +35 -35
- package/framework/components/chui_media/image_compare_styles.css +5 -5
- package/framework/components/chui_media/image_styles.css +1 -1
- package/framework/components/chui_media/video.js +148 -148
- package/framework/components/chui_media/video_styles.css +27 -11
- package/framework/components/chui_menu_bar/menu_bar.js +54 -54
- package/framework/components/chui_menu_bar/styles.css +10 -10
- package/framework/components/chui_message_bar/message_bar.js +551 -0
- package/framework/components/chui_message_bar/styles.css +248 -0
- package/framework/components/chui_modal/modal.js +37 -13
- package/framework/components/chui_notification/notification.js +76 -54
- package/framework/components/chui_notification/notification_download.js +26 -81
- package/framework/components/chui_notification/notification_download_card.js +115 -0
- package/framework/components/chui_notification/notification_download_progress.css +2 -2
- package/framework/components/chui_notification/notification_download_progress.js +70 -108
- package/framework/components/chui_notification/notification_update.js +31 -31
- package/framework/components/chui_notification/status_plate.css +3 -3
- package/framework/components/chui_notification/styles.css +6 -1
- package/framework/components/chui_notification/styles_download.css +1 -1
- package/framework/components/chui_notification/styles_update.css +2 -2
- package/framework/components/chui_org_chart/org_chart.js +29 -29
- package/framework/components/chui_org_chart/styles.css +2 -2
- package/framework/components/chui_pagination/pagination.js +3 -3
- package/framework/components/chui_pagination/styles.css +1 -1
- package/framework/components/chui_paragraph/styles.css +2 -2
- package/framework/components/chui_popover/popover.js +29 -23
- package/framework/components/chui_popover/styles.css +1 -1
- package/framework/components/chui_popups/popups.js +124 -124
- package/framework/components/chui_popups/styles.css +5 -5
- package/framework/components/chui_print_button/print_button.js +15 -10
- package/framework/components/chui_progress_bar/progress_bar.js +34 -12
- package/framework/components/chui_progress_bar/styles.css +4 -4
- package/framework/components/chui_progress_ring/progress_ring.js +15 -15
- package/framework/components/chui_progress_ring/styles.css +1 -1
- package/framework/components/chui_qrcode/qrcode.js +12 -12
- package/framework/components/chui_query_builder/query_builder.js +46 -46
- package/framework/components/chui_query_builder/styles.css +4 -4
- package/framework/components/chui_radio_group/styles.css +1 -1
- package/framework/components/chui_result/result.js +15 -15
- package/framework/components/chui_result/styles.css +3 -3
- package/framework/components/chui_scheduler/scheduler.js +74 -74
- package/framework/components/chui_scheduler/styles.css +5 -5
- package/framework/components/chui_screen_spinner/screen_spinner.js +167 -0
- package/framework/components/chui_screen_spinner/styles.css +49 -0
- package/framework/components/chui_segmented_control/segmented_control.js +63 -6
- package/framework/components/chui_segmented_control/styles.css +32 -6
- package/framework/components/chui_settings/settings.js +45 -46
- package/framework/components/chui_settings/styles.css +4 -4
- package/framework/components/chui_shortcut_help/shortcut_help.js +32 -34
- package/framework/components/chui_sidebar_nav/sidebar_nav.js +98 -29
- package/framework/components/chui_sidebar_nav/styles.css +9 -3
- package/framework/components/chui_slideshow/slideshow.js +85 -85
- package/framework/components/chui_slideshow/styles.css +6 -6
- package/framework/components/chui_spinner/spinner.js +10 -10
- package/framework/components/chui_split_button/split_button.js +30 -12
- package/framework/components/chui_split_button/styles.css +21 -5
- package/framework/components/chui_splitter/splitter.js +11 -11
- package/framework/components/chui_splitter/styles.css +2 -2
- package/framework/components/chui_statistic/statistic.js +47 -47
- package/framework/components/chui_status_bar/styles.css +2 -2
- package/framework/components/chui_stepper/stepper.js +202 -31
- package/framework/components/chui_stepper/styles.css +79 -14
- package/framework/components/chui_sticky_bar/sticky_bar.js +44 -13
- package/framework/components/chui_sticky_bar/styles.css +10 -8
- package/framework/components/chui_tabs/chui_tabs.js +74 -26
- package/framework/components/chui_tabs/styles.css +40 -12
- package/framework/components/chui_text_editor/styles.css +7 -7
- package/framework/components/chui_text_editor/text_editor.js +56 -56
- package/framework/components/chui_text_editor/text_editor_panel.js +173 -174
- package/framework/components/chui_theme_toggle/theme_toggle.js +21 -5
- package/framework/components/chui_timeline/styles.css +3 -1
- package/framework/components/chui_toast_queue/styles.css +11 -11
- package/framework/components/chui_toast_queue/toast_queue.js +30 -27
- package/framework/components/chui_toolbar/styles.css +2 -2
- package/framework/components/chui_tooltip/styles.css +2 -2
- package/framework/components/chui_tooltip/tooltip.js +3 -3
- package/framework/components/chui_tour/styles.css +8 -8
- package/framework/components/chui_tour/tour.js +72 -72
- package/framework/components/chui_transfer/styles.css +6 -6
- package/framework/components/chui_transfer/transfer.js +93 -106
- package/framework/components/chui_tree_table/styles.css +4 -4
- package/framework/components/chui_tree_table/tree_table.js +45 -45
- package/framework/components/chui_tree_view/styles.css +10 -8
- package/framework/components/chui_tree_view/tree_view.js +185 -183
- package/framework/components/chui_user_bar/styles.css +145 -0
- package/framework/components/chui_user_bar/user_bar.js +402 -0
- package/framework/components/chui_user_list_bar/styles.css +173 -0
- package/framework/components/chui_user_list_bar/user_list_bar.js +485 -0
- package/framework/components/chui_watermark/watermark.js +17 -17
- package/framework/components/chui_webview/webview.js +9 -9
- package/framework/components/chui_write_bar/styles.css +172 -0
- package/framework/components/chui_write_bar/write_bar.js +320 -0
- package/framework/main_window.js +1234 -0
- package/framework/modules/chui_a11y/chui_a11y.js +78 -79
- package/framework/modules/chui_animations/animations.js +77 -15
- package/framework/modules/chui_animations/motion.js +120 -0
- package/framework/modules/chui_animations/styles.css +36 -3
- package/framework/modules/chui_functions.js +31 -27
- package/framework/modules/chui_highlight/styles.css +13 -10
- package/framework/modules/chui_i18n/chui_i18n.js +3 -3
- package/framework/modules/chui_i18n/locales/feedback.js +62 -0
- package/framework/modules/chui_i18n/locales/navigation.js +4 -0
- package/framework/modules/chui_json/chui_json.js +2 -2
- package/framework/modules/chui_logger/chui_logger.js +23 -8
- package/framework/modules/chui_page/page.js +10 -10
- package/framework/modules/chui_palette/palette.js +61 -0
- package/framework/modules/chui_qr/chui_qr.js +23 -23
- package/framework/modules/chui_scrollbar/chui_scrollbar.js +45 -45
- package/framework/modules/chui_scrollbar/styles.css +3 -3
- package/framework/modules/chui_services/chui_services.js +8 -8
- package/framework/modules/chui_services/desktop.js +77 -71
- package/framework/modules/chui_sortable/chui_sortable.js +17 -17
- package/framework/modules/chui_validate/chui_validate.js +3 -3
- package/framework/tray_bar/chui_menu_items.js +2 -2
- package/index.d.ts +266 -34
- package/index.js +20 -1168
- package/package.json +6 -4
- package/framework/components/telegram_bot/chui_telegram_bot.js +0 -191
|
@@ -3,7 +3,7 @@ chui_data_grid {
|
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
/* fill-available учитывает собственный margin, 100% — нет */
|
|
5
5
|
width: -webkit-fill-available;
|
|
6
|
-
margin: var(--
|
|
6
|
+
margin: var(--block_margin);
|
|
7
7
|
font-size: var(--font_default_size);
|
|
8
8
|
/* Локальные поверхности сетки: систему токенов не трогаем, но полный
|
|
9
9
|
`--element_background` давал плотный серый блок, поэтому тело — только часть
|
|
@@ -59,8 +59,8 @@ data_grid_error {
|
|
|
59
59
|
margin-bottom: 6px;
|
|
60
60
|
padding-block: 6px 6px;
|
|
61
61
|
padding-inline: 12px 12px;
|
|
62
|
-
border: 1px solid var(--
|
|
63
|
-
border-radius: var(--
|
|
62
|
+
border: 1px solid var(--badge_error_background);
|
|
63
|
+
border-radius: var(--radius_sm);
|
|
64
64
|
background: var(--element_background_2);
|
|
65
65
|
font-size: var(--font_default_size);
|
|
66
66
|
}
|
|
@@ -99,10 +99,10 @@ data_grid_head data_grid_cell.data_grid_cell_pinned {
|
|
|
99
99
|
|
|
100
100
|
data_grid_cell.data_grid_cell_pinned_last {
|
|
101
101
|
border-inline-end: 1px solid var(--border_color);
|
|
102
|
-
/* Тень закреплённой колонки
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
box-shadow:
|
|
102
|
+
/* Тень закреплённой колонки — общий ключ: она направленная, вбок, а общие тени
|
|
103
|
+
накрывают элемент со всех сторон. Разлёт больше, процент меньше — чтобы край
|
|
104
|
+
колонки читался мягкой границей, а не линией */
|
|
105
|
+
box-shadow: var(--box_shadow_edge);
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
/* Наведение на строку: у закреплённой ячейки свой непрозрачный фон, поэтому заливку
|
|
@@ -131,7 +131,7 @@ data_grid_head {
|
|
|
131
131
|
box-sizing: border-box;
|
|
132
132
|
border: 1px solid var(--border_color);
|
|
133
133
|
border-bottom: none;
|
|
134
|
-
border-radius: var(--
|
|
134
|
+
border-radius: var(--radius_sm) var(--radius_sm) 0 0;
|
|
135
135
|
/* Шапка — на один шаг плотнее тела и остаётся отличима от карточки. Слои непрозрачные:
|
|
136
136
|
закреплённые ячейки шапки перекрывают уезжающие под них колонки */
|
|
137
137
|
background: var(--data_grid_head);
|
|
@@ -323,7 +323,7 @@ data_grid_body {
|
|
|
323
323
|
height: 340px;
|
|
324
324
|
margin: 0;
|
|
325
325
|
border: 1px solid var(--border_color);
|
|
326
|
-
border-radius: 0 0 var(--
|
|
326
|
+
border-radius: 0 0 var(--radius_sm) var(--radius_sm);
|
|
327
327
|
/* Спокойная нейтральная поверхность тела: у строки своего фона нет,
|
|
328
328
|
поэтому цвет строк даёт именно она */
|
|
329
329
|
background: var(--data_grid_surface);
|
|
@@ -338,7 +338,7 @@ data_grid_spacer {
|
|
|
338
338
|
|
|
339
339
|
data_grid_body_empty {
|
|
340
340
|
display: block;
|
|
341
|
-
padding: var(--
|
|
341
|
+
padding: var(--block_padding);
|
|
342
342
|
text-align: center;
|
|
343
343
|
color: var(--text_color_disabled);
|
|
344
344
|
}
|
|
@@ -351,7 +351,7 @@ data_grid_body_empty[hidden] {
|
|
|
351
351
|
когда пользователь долистал до конца уже загруженного */
|
|
352
352
|
data_grid_body_loader {
|
|
353
353
|
display: block;
|
|
354
|
-
padding: var(--
|
|
354
|
+
padding: var(--block_padding);
|
|
355
355
|
text-align: center;
|
|
356
356
|
color: var(--text_color_disabled);
|
|
357
357
|
border-top: 1px solid var(--border_color);
|
|
@@ -420,13 +420,13 @@ data_grid_cell.data_grid_cell_editing {
|
|
|
420
420
|
min-width: 0;
|
|
421
421
|
min-height: var(--control_height);
|
|
422
422
|
box-sizing: border-box;
|
|
423
|
-
/* Отступ снимаем: у своих редакторов-компонентов он свой (`margin: var(--
|
|
423
|
+
/* Отступ снимаем: у своих редакторов-компонентов он свой (`margin: var(--block_margin)`),
|
|
424
424
|
и поле съезжало в ячейке */
|
|
425
425
|
margin: 0;
|
|
426
426
|
padding-block: 0 0;
|
|
427
427
|
padding-inline: 8px 8px;
|
|
428
428
|
border: 1px solid var(--blue_prime_background);
|
|
429
|
-
border-radius: var(--
|
|
429
|
+
border-radius: var(--radius_sm);
|
|
430
430
|
/* Приподнятая непрозрачная поверхность — та же, что у полей фреймворка: непрозрачная,
|
|
431
431
|
чтобы в выделенной строке поле не заливалось тонировкой, и светлее тела, чтобы поле
|
|
432
432
|
читалось как поле, а не как дыра в строке */
|
|
@@ -445,7 +445,7 @@ data_grid_cell.data_grid_cell_editing_select {
|
|
|
445
445
|
padding: 0 4px;
|
|
446
446
|
}
|
|
447
447
|
|
|
448
|
-
/* Корень Select — целый компонент: у него свой внешний отступ (`margin: var(--
|
|
448
|
+
/* Корень Select — целый компонент: у него свой внешний отступ (`margin: var(--block_margin)`)
|
|
449
449
|
и ширина контрола (`width: var(--control_width)`). Внутри ячейки это лишнее: из-за отступа
|
|
450
450
|
ячейка вырастала до 29 + 12 = 41 px и перекрывала соседей, а поле сужалось и съезжало
|
|
451
451
|
вправо. Растягиваем поле на ячейку и снимаем отступ */
|
|
@@ -8,7 +8,7 @@ chui_descriptions {
|
|
|
8
8
|
/* Компонент сам задаёт ширину: в flex-колонке с align-items: flex-start
|
|
9
9
|
блок без ширины получил бы max-content и вылез за карточку */
|
|
10
10
|
width: -webkit-fill-available;
|
|
11
|
-
margin: var(--
|
|
11
|
+
margin: var(--block_margin);
|
|
12
12
|
--descriptions_columns: 1;
|
|
13
13
|
color: var(--text_color);
|
|
14
14
|
font-size: var(--font_default_size);
|
|
@@ -3,11 +3,11 @@ const { Icon, Icons } = require("../chui_icons/icons");
|
|
|
3
3
|
const { makeKeyboardButton } = require("../../modules/chui_a11y/chui_a11y");
|
|
4
4
|
|
|
5
5
|
/** Идентификаторы для aria-controls у раскрывающихся панелей */
|
|
6
|
-
let
|
|
6
|
+
let disclosurePanelCounter = 0;
|
|
7
7
|
|
|
8
8
|
class Details {
|
|
9
9
|
#name = require("randomstring").generate();
|
|
10
|
-
#
|
|
10
|
+
#chuiDetails = document.createElement(`chui_details`);
|
|
11
11
|
//
|
|
12
12
|
#ab = document.createElement("details_button");
|
|
13
13
|
#bt = document.createElement("details_button_text");
|
|
@@ -46,7 +46,7 @@ class Details {
|
|
|
46
46
|
if (this.#align !== undefined) this.#html.style.alignItems = this.#align;
|
|
47
47
|
if (this.#justify !== undefined) this.#html.style.justifyContent = this.#justify;
|
|
48
48
|
if (this.#width !== undefined) {
|
|
49
|
-
this.#
|
|
49
|
+
this.#chuiDetails.style.width = this.#width;
|
|
50
50
|
this.#ab.style.width = this.#width;
|
|
51
51
|
this.#ap.style.width = this.#width;
|
|
52
52
|
this.#html.style.width = this.#width;
|
|
@@ -60,18 +60,18 @@ class Details {
|
|
|
60
60
|
this.#ab.appendChild(this.#bt);
|
|
61
61
|
this.#ab.appendChild(this.#barrow);
|
|
62
62
|
this.#ap.appendChild(this.#html);
|
|
63
|
-
this.#
|
|
64
|
-
this.#
|
|
63
|
+
this.#chuiDetails.appendChild(this.#ab);
|
|
64
|
+
this.#chuiDetails.appendChild(this.#ap);
|
|
65
65
|
|
|
66
66
|
//ФУНКЦИИ
|
|
67
|
-
|
|
67
|
+
const test = this.#chuiDetails.children;
|
|
68
68
|
let i;
|
|
69
69
|
for (i = 0; i < test.length; i++) {
|
|
70
|
-
|
|
70
|
+
const elem = test[i];
|
|
71
71
|
if (elem.tagName === "DETAILS_BUTTON") {
|
|
72
|
-
|
|
72
|
+
const panel = elem.nextElementSibling;
|
|
73
73
|
// Доступность: кнопка раскрытия — role=button с состоянием, панель — отдельный регион
|
|
74
|
-
panel.id = "chui_details_panel_" + (
|
|
74
|
+
panel.id = "chui_details_panel_" + (disclosurePanelCounter += 1);
|
|
75
75
|
panel.setAttribute("role", "region");
|
|
76
76
|
elem.setAttribute("aria-controls", panel.id);
|
|
77
77
|
elem.setAttribute("aria-expanded", "false");
|
|
@@ -81,7 +81,7 @@ class Details {
|
|
|
81
81
|
makeKeyboardButton(elem);
|
|
82
82
|
elem.addEventListener("click", () => {
|
|
83
83
|
elem.classList.toggle("details_active");
|
|
84
|
-
|
|
84
|
+
const panel = elem.nextElementSibling;
|
|
85
85
|
// Стрелка и углы кнопки зависят от `aria-expanded` — их ведёт CSS,
|
|
86
86
|
// а инлайном остаётся только измеренная высота панели
|
|
87
87
|
if (panel.style.maxHeight) {
|
|
@@ -97,12 +97,12 @@ class Details {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
add(...components) {
|
|
100
|
-
for (
|
|
100
|
+
for (const component of components) {
|
|
101
101
|
this.#html.appendChild(component.set());
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
set() {
|
|
105
|
-
return this.#
|
|
105
|
+
return this.#chuiDetails;
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
|
|
@@ -5,10 +5,10 @@ chui_details {
|
|
|
5
5
|
/* Ширина по умолчанию — по колонке: с `max-content` заголовок сжимался в плашку
|
|
6
6
|
по тексту и блок читался незаконченным (опция `width` перекрывает это значение) */
|
|
7
7
|
width: -webkit-fill-available;
|
|
8
|
-
margin: var(--
|
|
8
|
+
margin: var(--block_margin);
|
|
9
9
|
font-size: var(--font_default_size);
|
|
10
10
|
font-weight: 400;
|
|
11
|
-
border-radius: var(--
|
|
11
|
+
border-radius: var(--radius_sm);
|
|
12
12
|
border: none;
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -21,14 +21,14 @@ details_button_arrow {
|
|
|
21
21
|
details_button {
|
|
22
22
|
background: var(--element_background);
|
|
23
23
|
cursor: pointer;
|
|
24
|
-
padding: var(--
|
|
24
|
+
padding: var(--block_padding);
|
|
25
25
|
font-size: var(--font_default_size);
|
|
26
26
|
width: -webkit-fill-available;
|
|
27
27
|
text-align: start;
|
|
28
28
|
outline: none;
|
|
29
29
|
display: flex;
|
|
30
30
|
align-items: center;
|
|
31
|
-
border-radius: var(--
|
|
31
|
+
border-radius: var(--radius_sm);
|
|
32
32
|
color: var(--text_color);
|
|
33
33
|
border: none;
|
|
34
34
|
}
|
|
@@ -40,13 +40,13 @@ details_panel {
|
|
|
40
40
|
overflow: hidden;
|
|
41
41
|
width: -webkit-fill-available;
|
|
42
42
|
max-height: 0;
|
|
43
|
-
border-end-end-radius: var(--
|
|
44
|
-
border-end-start-radius: var(--
|
|
43
|
+
border-end-end-radius: var(--radius_sm);
|
|
44
|
+
border-end-start-radius: var(--radius_sm);
|
|
45
45
|
color: var(--text_color);
|
|
46
46
|
border: none;
|
|
47
47
|
/* Раскрытие идёт по `max-height`, которое считает JS: без перехода панель
|
|
48
48
|
раскрывалась рывком */
|
|
49
|
-
transition: max-height var(--
|
|
49
|
+
transition: max-height var(--motion_base) var(--motion_ease);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
details_panel_html {
|