chuijs 4.0.2 → 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.
Files changed (292) hide show
  1. package/CHANGELOG.md +597 -0
  2. package/README.md +43 -644
  3. package/framework/appLayout/default/chui_app_layout.js +602 -496
  4. package/framework/appLayout/default/global_style.css +288 -97
  5. package/framework/appLayout/default/main_theme_style.css +188 -101
  6. package/framework/components/chui_accordion/accordion.js +38 -35
  7. package/framework/components/chui_accordion/styles.css +13 -12
  8. package/framework/components/chui_action_sheet/action_sheet.js +93 -64
  9. package/framework/components/chui_action_sheet/styles.css +12 -5
  10. package/framework/components/chui_actions_bar/actions_bar.js +338 -0
  11. package/framework/components/chui_actions_bar/styles.css +139 -0
  12. package/framework/components/chui_affix/affix.js +16 -11
  13. package/framework/components/chui_affix/styles.css +5 -0
  14. package/framework/components/chui_alert/alert.js +34 -19
  15. package/framework/components/chui_alert/styles.css +7 -0
  16. package/framework/components/chui_avatar/avatar.js +36 -35
  17. package/framework/components/chui_avatar/styles.css +1 -1
  18. package/framework/components/chui_avatar_group/avatar_group.js +25 -23
  19. package/framework/components/chui_avatar_group/styles.css +1 -1
  20. package/framework/components/chui_backtop/backtop.js +60 -21
  21. package/framework/components/chui_backtop/styles.css +21 -0
  22. package/framework/components/chui_badge/badge.js +30 -28
  23. package/framework/components/chui_badge/styles.css +6 -6
  24. package/framework/components/chui_banner/banner.js +222 -0
  25. package/framework/components/chui_banner/styles.css +170 -0
  26. package/framework/components/chui_breadcrumb/breadcrumb.js +15 -13
  27. package/framework/components/chui_breadcrumb/styles.css +1 -1
  28. package/framework/components/chui_button/button.js +52 -36
  29. package/framework/components/chui_button/styles.css +7 -7
  30. package/framework/components/chui_calendar/calendar.js +18 -16
  31. package/framework/components/chui_card/card.js +52 -32
  32. package/framework/components/chui_card_scroll/card_scroll.js +169 -0
  33. package/framework/components/chui_card_scroll/styles.css +86 -0
  34. package/framework/components/chui_chat/chat.js +140 -79
  35. package/framework/components/chui_chat/styles.css +18 -7
  36. package/framework/components/chui_clipboard_history/clipboard_history.js +53 -39
  37. package/framework/components/chui_clipboard_history/styles.css +13 -9
  38. package/framework/components/chui_code/code.js +10 -10
  39. package/framework/components/chui_code/styles.css +4 -4
  40. package/framework/components/chui_code_editor/code_editor.js +73 -57
  41. package/framework/components/chui_code_editor/styles.css +6 -5
  42. package/framework/components/chui_command_palette/command_palette.js +87 -64
  43. package/framework/components/chui_command_palette/styles.css +5 -5
  44. package/framework/components/chui_console/console.js +13 -13
  45. package/framework/components/chui_console/styles.css +6 -3
  46. package/framework/components/chui_content_block/content_block.js +35 -21
  47. package/framework/components/chui_content_block/styles.css +2 -2
  48. package/framework/components/chui_context_menu/context_menu.js +171 -58
  49. package/framework/components/chui_context_menu/styles.css +82 -8
  50. package/framework/components/chui_custom_element/custom_element.js +25 -18
  51. package/framework/components/chui_data_grid/data_grid.js +633 -471
  52. package/framework/components/chui_data_grid/styles.css +24 -22
  53. package/framework/components/chui_descriptions/descriptions.js +34 -17
  54. package/framework/components/chui_descriptions/styles.css +1 -1
  55. package/framework/components/chui_details/details.js +42 -36
  56. package/framework/components/chui_details/styles.css +12 -11
  57. package/framework/components/chui_diff_viewer/diff_viewer.js +172 -147
  58. package/framework/components/chui_diff_viewer/styles.css +10 -10
  59. package/framework/components/chui_divider/divider.js +19 -17
  60. package/framework/components/chui_divider/styles.css +2 -2
  61. package/framework/components/chui_drawer/drawer.js +63 -38
  62. package/framework/components/chui_drawer/styles.css +18 -4
  63. package/framework/components/chui_drop_zone/drop_zone.js +37 -27
  64. package/framework/components/chui_drop_zone/styles.css +10 -6
  65. package/framework/components/chui_empty_state/empty_state.js +20 -15
  66. package/framework/components/chui_fieldset/fieldset.js +40 -23
  67. package/framework/components/chui_fieldset/styles.css +6 -6
  68. package/framework/components/chui_file_explorer/file_explorer.js +260 -189
  69. package/framework/components/chui_file_explorer/styles.css +8 -7
  70. package/framework/components/chui_form/form.js +40 -28
  71. package/framework/components/chui_form/styles.css +1 -1
  72. package/framework/components/chui_gantt/gantt.js +102 -78
  73. package/framework/components/chui_gantt/styles.css +5 -5
  74. package/framework/components/chui_graphs/graphs.js +376 -239
  75. package/framework/components/chui_graphs/styles.css +27 -6
  76. package/framework/components/chui_hero/hero.js +98 -37
  77. package/framework/components/chui_hero/styles.css +176 -7
  78. package/framework/components/chui_html_block/html_block.js +8 -8
  79. package/framework/components/chui_html_block/styles.css +3 -3
  80. package/framework/components/chui_hx/hx.js +3 -3
  81. package/framework/components/chui_hx/styles.css +13 -6
  82. package/framework/components/chui_icons/icons.js +2115 -2115
  83. package/framework/components/chui_icons/styles.css +4 -3
  84. package/framework/components/chui_inputs/chui_check_box/check_box.js +31 -19
  85. package/framework/components/chui_inputs/chui_check_box/styles.css +30 -21
  86. package/framework/components/chui_inputs/chui_chips/chips.js +141 -70
  87. package/framework/components/chui_inputs/chui_chips/styles.css +32 -7
  88. package/framework/components/chui_inputs/chui_color_picker/color_picker.js +55 -38
  89. package/framework/components/chui_inputs/chui_color_picker/styles.css +7 -7
  90. package/framework/components/chui_inputs/chui_combo_box/combo_box.js +127 -109
  91. package/framework/components/chui_inputs/chui_combo_box/styles.css +23 -21
  92. package/framework/components/chui_inputs/chui_date/date.js +161 -127
  93. package/framework/components/chui_inputs/chui_date/styles.css +20 -19
  94. package/framework/components/chui_inputs/chui_date_range/date_range.js +61 -50
  95. package/framework/components/chui_inputs/chui_date_range/styles.css +3 -3
  96. package/framework/components/chui_inputs/chui_datetime/datetime.js +47 -39
  97. package/framework/components/chui_inputs/chui_datetime/styles.css +3 -3
  98. package/framework/components/chui_inputs/chui_email/email.js +48 -36
  99. package/framework/components/chui_inputs/chui_email/styles.css +11 -11
  100. package/framework/components/chui_inputs/chui_file/file.js +71 -44
  101. package/framework/components/chui_inputs/chui_file/styles.css +23 -19
  102. package/framework/components/chui_inputs/chui_hotkey/hotkey.js +101 -76
  103. package/framework/components/chui_inputs/chui_hotkey/styles.css +6 -6
  104. package/framework/components/chui_inputs/chui_masked/masked.js +83 -72
  105. package/framework/components/chui_inputs/chui_masked/styles.css +5 -5
  106. package/framework/components/chui_inputs/chui_mention/mention.js +87 -40
  107. package/framework/components/chui_inputs/chui_mention/styles.css +14 -8
  108. package/framework/components/chui_inputs/chui_multi_combo_box/multi_combo_box.js +242 -212
  109. package/framework/components/chui_inputs/chui_multi_combo_box/styles.css +23 -15
  110. package/framework/components/chui_inputs/chui_number/number.js +84 -70
  111. package/framework/components/chui_inputs/chui_number/styles.css +13 -13
  112. package/framework/components/chui_inputs/chui_otp/otp.js +71 -62
  113. package/framework/components/chui_inputs/chui_otp/styles.css +5 -5
  114. package/framework/components/chui_inputs/chui_password/password.js +72 -56
  115. package/framework/components/chui_inputs/chui_password/styles.css +15 -15
  116. package/framework/components/chui_inputs/chui_radio_button/radio_button.js +37 -25
  117. package/framework/components/chui_inputs/chui_radio_button/styles.css +22 -22
  118. package/framework/components/chui_inputs/chui_rating/rating.js +54 -50
  119. package/framework/components/chui_inputs/chui_rating/styles.css +3 -3
  120. package/framework/components/chui_inputs/chui_select_box/select_box.js +132 -108
  121. package/framework/components/chui_inputs/chui_select_box/styles.css +21 -21
  122. package/framework/components/chui_inputs/chui_slider/slider.js +41 -38
  123. package/framework/components/chui_inputs/chui_slider/styles.css +7 -5
  124. package/framework/components/chui_inputs/chui_text/styles.css +14 -14
  125. package/framework/components/chui_inputs/chui_text/text.js +69 -52
  126. package/framework/components/chui_inputs/chui_text_area/styles.css +14 -14
  127. package/framework/components/chui_inputs/chui_text_area/text_area.js +59 -36
  128. package/framework/components/chui_inputs/chui_time/styles.css +18 -20
  129. package/framework/components/chui_inputs/chui_time/time.js +71 -49
  130. package/framework/components/chui_inputs/chui_toggle/styles.css +13 -6
  131. package/framework/components/chui_inputs/chui_toggle/toggle.js +27 -27
  132. package/framework/components/chui_json_editor/json_editor.js +137 -127
  133. package/framework/components/chui_json_editor/styles.css +5 -5
  134. package/framework/components/chui_json_viewer/json_viewer.js +133 -114
  135. package/framework/components/chui_json_viewer/styles.css +9 -8
  136. package/framework/components/chui_kanban/kanban.js +78 -60
  137. package/framework/components/chui_kanban/styles.css +8 -4
  138. package/framework/components/chui_kbd/kbd.js +12 -10
  139. package/framework/components/chui_kbd/styles.css +1 -1
  140. package/framework/components/chui_label/label.js +31 -29
  141. package/framework/components/chui_label/styles.css +3 -3
  142. package/framework/components/chui_link/link.js +36 -29
  143. package/framework/components/chui_link/styles.css +11 -4
  144. package/framework/components/chui_list/list.js +42 -38
  145. package/framework/components/chui_list/styles.css +4 -3
  146. package/framework/components/chui_markdown_editor/markdown_editor.js +125 -109
  147. package/framework/components/chui_markdown_editor/styles.css +5 -5
  148. package/framework/components/chui_media/audio.js +457 -364
  149. package/framework/components/chui_media/audio_styles.css +74 -37
  150. package/framework/components/chui_media/image.js +99 -64
  151. package/framework/components/chui_media/image_compare.js +86 -55
  152. package/framework/components/chui_media/image_compare_styles.css +5 -5
  153. package/framework/components/chui_media/image_styles.css +4 -4
  154. package/framework/components/chui_media/video.js +264 -171
  155. package/framework/components/chui_media/video_styles.css +57 -24
  156. package/framework/components/chui_menu_bar/menu_bar.js +67 -65
  157. package/framework/components/chui_menu_bar/styles.css +14 -12
  158. package/framework/components/chui_message_bar/message_bar.js +551 -0
  159. package/framework/components/chui_message_bar/styles.css +248 -0
  160. package/framework/components/chui_modal/modal.js +81 -56
  161. package/framework/components/chui_modal/styles.css +3 -2
  162. package/framework/components/chui_notification/notification.js +107 -69
  163. package/framework/components/chui_notification/notification_download.js +28 -77
  164. package/framework/components/chui_notification/notification_download_card.js +115 -0
  165. package/framework/components/chui_notification/notification_download_progress.css +5 -4
  166. package/framework/components/chui_notification/notification_download_progress.js +73 -105
  167. package/framework/components/chui_notification/notification_update.js +44 -37
  168. package/framework/components/chui_notification/status_plate.css +3 -3
  169. package/framework/components/chui_notification/status_plate.js +2 -2
  170. package/framework/components/chui_notification/styles.css +6 -1
  171. package/framework/components/chui_notification/styles_download.css +2 -2
  172. package/framework/components/chui_notification/styles_update.css +3 -3
  173. package/framework/components/chui_org_chart/org_chart.js +101 -62
  174. package/framework/components/chui_org_chart/styles.css +2 -2
  175. package/framework/components/chui_pagination/pagination.js +65 -30
  176. package/framework/components/chui_pagination/styles.css +1 -1
  177. package/framework/components/chui_paragraph/paragraph.js +2 -2
  178. package/framework/components/chui_paragraph/styles.css +3 -3
  179. package/framework/components/chui_popover/popover.js +77 -50
  180. package/framework/components/chui_popover/styles.css +1 -1
  181. package/framework/components/chui_popups/popups.js +210 -181
  182. package/framework/components/chui_popups/styles.css +7 -7
  183. package/framework/components/chui_print_button/print_button.js +48 -33
  184. package/framework/components/chui_progress_bar/progress_bar.js +49 -19
  185. package/framework/components/chui_progress_bar/styles.css +6 -6
  186. package/framework/components/chui_progress_ring/progress_ring.js +32 -30
  187. package/framework/components/chui_progress_ring/styles.css +1 -1
  188. package/framework/components/chui_qrcode/qrcode.js +85 -41
  189. package/framework/components/chui_query_builder/query_builder.js +263 -170
  190. package/framework/components/chui_query_builder/styles.css +4 -4
  191. package/framework/components/chui_radio_group/radio_group.js +36 -26
  192. package/framework/components/chui_radio_group/styles.css +2 -2
  193. package/framework/components/chui_result/result.js +41 -31
  194. package/framework/components/chui_result/styles.css +3 -3
  195. package/framework/components/chui_scheduler/scheduler.js +126 -104
  196. package/framework/components/chui_scheduler/styles.css +11 -7
  197. package/framework/components/chui_screen_spinner/screen_spinner.js +167 -0
  198. package/framework/components/chui_screen_spinner/styles.css +49 -0
  199. package/framework/components/chui_segmented_control/segmented_control.js +90 -27
  200. package/framework/components/chui_segmented_control/styles.css +32 -6
  201. package/framework/components/chui_settings/settings.js +160 -87
  202. package/framework/components/chui_settings/styles.css +4 -4
  203. package/framework/components/chui_shortcut_help/shortcut_help.js +82 -61
  204. package/framework/components/chui_sidebar_nav/sidebar_nav.js +132 -53
  205. package/framework/components/chui_sidebar_nav/styles.css +9 -3
  206. package/framework/components/chui_skeleton/skeleton.js +29 -24
  207. package/framework/components/chui_slideshow/slideshow.js +122 -103
  208. package/framework/components/chui_slideshow/styles.css +22 -16
  209. package/framework/components/chui_spinner/spinner.js +17 -17
  210. package/framework/components/chui_spinner/styles.css +0 -1
  211. package/framework/components/chui_split_button/split_button.js +53 -30
  212. package/framework/components/chui_split_button/styles.css +22 -6
  213. package/framework/components/chui_splitter/splitter.js +46 -39
  214. package/framework/components/chui_splitter/styles.css +2 -2
  215. package/framework/components/chui_statistic/statistic.js +111 -84
  216. package/framework/components/chui_status_bar/status_bar.js +11 -9
  217. package/framework/components/chui_status_bar/styles.css +2 -2
  218. package/framework/components/chui_stepper/stepper.js +230 -54
  219. package/framework/components/chui_stepper/styles.css +79 -14
  220. package/framework/components/chui_sticky_bar/sticky_bar.js +53 -17
  221. package/framework/components/chui_sticky_bar/styles.css +11 -7
  222. package/framework/components/chui_tabs/chui_tabs.js +100 -46
  223. package/framework/components/chui_tabs/styles.css +43 -15
  224. package/framework/components/chui_text_editor/styles.css +24 -23
  225. package/framework/components/chui_text_editor/text_editor.js +103 -79
  226. package/framework/components/chui_text_editor/text_editor_panel.js +428 -367
  227. package/framework/components/chui_theme_toggle/theme_toggle.js +46 -25
  228. package/framework/components/chui_timeline/styles.css +3 -1
  229. package/framework/components/chui_timeline/timeline.js +14 -12
  230. package/framework/components/chui_toast_queue/styles.css +11 -11
  231. package/framework/components/chui_toast_queue/toast_queue.js +82 -73
  232. package/framework/components/chui_toolbar/styles.css +2 -2
  233. package/framework/components/chui_toolbar/toolbar.js +20 -13
  234. package/framework/components/chui_tooltip/styles.css +2 -2
  235. package/framework/components/chui_tooltip/tooltip.js +40 -27
  236. package/framework/components/chui_tour/styles.css +12 -7
  237. package/framework/components/chui_tour/tour.js +132 -98
  238. package/framework/components/chui_transfer/styles.css +8 -7
  239. package/framework/components/chui_transfer/transfer.js +143 -123
  240. package/framework/components/chui_tree_table/styles.css +4 -4
  241. package/framework/components/chui_tree_table/tree_table.js +88 -74
  242. package/framework/components/chui_tree_view/styles.css +14 -10
  243. package/framework/components/chui_tree_view/tree_view.js +298 -253
  244. package/framework/components/chui_user_bar/styles.css +145 -0
  245. package/framework/components/chui_user_bar/user_bar.js +402 -0
  246. package/framework/components/chui_user_list_bar/styles.css +173 -0
  247. package/framework/components/chui_user_list_bar/user_list_bar.js +485 -0
  248. package/framework/components/chui_watermark/watermark.js +41 -33
  249. package/framework/components/chui_webview/styles.css +2 -2
  250. package/framework/components/chui_webview/webview.js +64 -52
  251. package/framework/components/chui_write_bar/styles.css +172 -0
  252. package/framework/components/chui_write_bar/write_bar.js +320 -0
  253. package/framework/main_window.js +1234 -0
  254. package/framework/modules/chui_a11y/chui_a11y.js +153 -123
  255. package/framework/modules/chui_animations/animations.js +105 -43
  256. package/framework/modules/chui_animations/motion.js +120 -0
  257. package/framework/modules/chui_animations/styles.css +37 -4
  258. package/framework/modules/chui_bridge/preload.js +36 -25
  259. package/framework/modules/chui_functions.js +69 -63
  260. package/framework/modules/chui_highlight/chui_highlight.js +25 -22
  261. package/framework/modules/chui_highlight/styles.css +13 -10
  262. package/framework/modules/chui_i18n/chui_i18n.js +12 -10
  263. package/framework/modules/chui_i18n/locales/a11y.js +5 -5
  264. package/framework/modules/chui_i18n/locales/app_layout.js +5 -5
  265. package/framework/modules/chui_i18n/locales/calendar.js +3 -3
  266. package/framework/modules/chui_i18n/locales/common.js +3 -3
  267. package/framework/modules/chui_i18n/locales/data.js +36 -26
  268. package/framework/modules/chui_i18n/locales/editors.js +40 -13
  269. package/framework/modules/chui_i18n/locales/feedback.js +65 -3
  270. package/framework/modules/chui_i18n/locales/forms.js +8 -8
  271. package/framework/modules/chui_i18n/locales/graphics.js +8 -8
  272. package/framework/modules/chui_i18n/locales/media.js +4 -4
  273. package/framework/modules/chui_i18n/locales/navigation.js +12 -8
  274. package/framework/modules/chui_i18n/locales/validate.js +3 -3
  275. package/framework/modules/chui_json/chui_json.js +11 -11
  276. package/framework/modules/chui_layout/chui_layout.js +12 -10
  277. package/framework/modules/chui_logger/chui_logger.js +47 -28
  278. package/framework/modules/chui_page/page.js +39 -33
  279. package/framework/modules/chui_palette/palette.js +61 -0
  280. package/framework/modules/chui_qr/chui_qr.js +179 -88
  281. package/framework/modules/chui_scrollbar/chui_scrollbar.js +79 -68
  282. package/framework/modules/chui_scrollbar/styles.css +4 -2
  283. package/framework/modules/chui_services/chui_channels.js +27 -13
  284. package/framework/modules/chui_services/chui_services.js +47 -39
  285. package/framework/modules/chui_services/desktop.js +108 -101
  286. package/framework/modules/chui_sortable/chui_sortable.js +33 -28
  287. package/framework/modules/chui_validate/chui_validate.js +10 -7
  288. package/framework/tray_bar/chui_menu_items.js +136 -46
  289. package/index.d.ts +5046 -0
  290. package/index.js +199 -1254
  291. package/package.json +81 -68
  292. package/framework/components/telegram_bot/chui_telegram_bot.js +0 -184
@@ -1,10 +1,16 @@
1
- /* Палитры в стиле Apple flat (macOS/iOS system colors).
1
+ /* Палитра собрана по двум нашим эталонным таблицам, светлая и тёмная колонки:
2
+ 1) цвета акцентов (синий, красный, оранжевый, зелёный, серый…);
3
+ 2) серая шкала — фоны и нейтрали (деления 1 (плотное) … 6 (светлое)),
4
+ плюс основной и приглушённый текст и заливки контролов по состояниям.
5
+ Сверку с эталоном и контраст печатает `npm run palette:check` — он читает значения
6
+ прямо из этого файла, поэтому палитра правится только здесь.
2
7
 
3
- Иерархия поверхностей повторяет iOS/macOS «grouped»:
4
- - --main_background — подложка страницы (светло-серая / почти чёрная);
5
- - --element_background_2 — карточки и контент-блоки (белые / #1c1c1e);
8
+ Порядок поверхностей повторяет «сгруппированный» вид списков:
9
+ - --main_background — подложка страницы (деление 6 серой шкалы);
10
+ - --element_background_2 — карточки: светлая — белая, тёмная — деление 5
11
+ (в серой шкале белого нет: в светлой схеме карточка на шаг выше шкалы);
6
12
  - --element_background, --button_background — полупрозрачные нейтральные
7
- заливки контролов (iOS systemFill), поэтому элемент читается и на белой
13
+ заливки контролов, поэтому элемент читается и на белой
8
14
  карточке, и на серой подложке, независимо от того, где он лежит;
9
15
  - --element_background_hover — та же заливка, но плотнее (ховер контрола);
10
16
  - --element_background_disabled_2 — полупрозрачный «белый» токен оставлен
@@ -15,140 +21,221 @@
15
21
 
16
22
  @media (prefers-color-scheme: light) {
17
23
  :root {
18
- /* Текст */
19
- --text_color: #1d1d1f;
24
+ /* --- Текст: основной и приглушённый --- */
25
+ --text_color: #000000;
20
26
  --text_color_disabled: rgba(60, 60, 67, 0.6);
21
27
  --text_color_hover: #ffffff;
22
- --text_color_hover_disable: rgba(255, 255, 255, 0.7);
23
- /* Поверхности: серая подложка страницы + белые карточки */
28
+ --text_color_hover_disabled: rgba(255, 255, 255, 0.7);
29
+ /* --- Фоны: светлая колонка серой шкалы ---
30
+ Подложка — деление 6; карточка — белая (в серой шкале белого нет: в светлой
31
+ схеме карточка на шаг выше шкалы). Материалы шапки и модалки — тот же цвет
32
+ таблицы при прозрачности 0.6: блюр лежит на них слоем
33
+ (`--global_blur` — `saturate(180%) blur(20px)`), и сквозь полупрозрачную заливку
34
+ содержимое читается как сквозь матовое стекло */
24
35
  --main_background: #f2f2f7;
25
- --header_background: rgba(250, 250, 252, 0.72);
26
- /* Шапка при прокрутке: материал плотнее, содержимое уходит под неё */
27
- --header_background_scrolled: rgba(250, 250, 252, 0.88);
28
- /* Обводка (hairline). Волосяные линии всей вёрстки: карточки, поля, разделители.
29
- Плотность сознательно низкая: линия должна только намечать край, а не рисовать
30
- рамку вокруг каждого блока (было 0.18). */
31
- --border_color: rgba(60, 60, 67, 0.09);
32
- /* Наведение на поле ввода: рамка приметнее волосяной, но не спорит с акцентом фокуса */
33
- --border_color_hover: rgba(60, 60, 67, 0.26);
34
- /* Кнопка */
35
- --button_border_color: rgba(60, 60, 67, 0.1);
36
+ --element_background_2: #ffffff;
37
+ --element_background_disabled_2: rgba(255, 255, 255, 0.6);
38
+ --header_background: rgba(242, 242, 247, 0.6);
39
+ /* Полосы оболочки — шапка, меню маршрутов и ящик уведомлений — носят цвет
40
+ подложки, а не карточки: они читаются её продолжением, а не отдельной плашкой */
41
+ --bar_background: rgba(242, 242, 247, 0.6);
42
+ /* Шапка при прокрутке: тот же материал, а состояние показывает тень
43
+ (прежде материал был плотнее) */
44
+ --header_background_scrolled: rgba(242, 242, 247, 0.6);
45
+ --modal_background: rgba(242, 242, 247, 0.6);
46
+ /* Волосяная линия — деление 4: на шаг тише эталонного разделителя (#c6c6c8),
47
+ потому что в этой библиотеке рамку носит каждый блок, а не только разделитель
48
+ списка. Под курсором — деление 2: плотнее, но всё ещё не акцент */
49
+ --border_color: #d1d1d6;
50
+ --border_color_hover: #aeaeb2;
51
+ /* Кнопка: граница — та же волосяная линия, заливка — нейтральная */
52
+ --button_border_color: #d1d1d6;
36
53
  --button_border_color_hover: #007aff;
37
- --button_background: rgba(120, 120, 128, 0.2);
38
- --button_background_hover: #007aff;
39
- --button_background_disabled: rgba(120, 120, 128, 0.09);
40
- /* Модальное окно */
41
- --modal_background: rgba(250, 250, 252, 0.78);
54
+ --button_background: rgba(120, 120, 128, 0.12);
55
+ --button_background_disabled: rgba(120, 120, 128, 0.08);
42
56
  /* Занавес под всплывающим слоем: подложка обязана отличаться от --modal_background,
43
57
  иначе материал модалки на ней не читается. */
44
58
  --modal_scrim: rgba(0, 0, 0, 0.18);
45
- /* Элементы */
46
- --element_background: rgba(120, 120, 128, 0.2);
47
- --element_background_hover: rgba(120, 120, 128, 0.32);
48
- --element_background_disabled: rgba(120, 120, 128, 0.09);
49
- --element_background_2: #ffffff;
50
- --element_background_disabled_2: rgba(255, 255, 255, 0.6);
59
+ /* Элементы — нейтральные заливки: в покое одна плотность, под курсором плотнее,
60
+ у выключенного слабее */
61
+ --element_background: rgba(120, 120, 128, 0.12);
62
+ --element_background_hover: rgba(120, 120, 128, 0.2);
63
+ --element_background_disabled: rgba(120, 120, 128, 0.08);
64
+ /* --- Акценты: светлая колонка --- */
51
65
  --element_background_prime: #007aff;
52
- /* Акцент */
53
66
  --blue_prime_background: #007aff;
54
- --blue_prime_background_trans: rgba(0, 122, 255, 0.6);
67
+ /* Плотная тонировка акцента — там, где полупрозрачного цвета мало (выбранная строка
68
+ в тёмном материале); слабая — в `--blue_prime_background_tint` */
69
+ --blue_prime_background_tint_strong: rgba(0, 122, 255, 0.6);
55
70
  /* Тонировка акцента: выбранный пункт оболочки (меню маршрутов, кнопка шапки),
56
71
  а не заливка во весь цвет. */
57
72
  --blue_prime_background_tint: rgba(0, 122, 255, 0.14);
58
73
  --red_prime_background: #ff3b30;
59
- /* Ссылка в контенте: тёмный system blue — акцент #007aff на белом
74
+ /* Остальные цвета таблицы акцентов выставлены токенами, чтобы своим вариантам
75
+ не заводить цвет мимо палитры: оранжевый, жёлтый, зелёный, мята, бирюза, циан,
76
+ индиго, сиреневый, розовый, коричневый, серый */
77
+ --orange_prime_background: #ff9500;
78
+ --yellow_prime_background: #ffcc00;
79
+ --green_prime_background: #34c759;
80
+ --mint_prime_background: #00c7be;
81
+ --teal_prime_background: #30b0c7;
82
+ --cyan_prime_background: #32ade6;
83
+ --indigo_prime_background: #5856d6;
84
+ --purple_prime_background: #af52de;
85
+ --pink_prime_background: #ff2d55;
86
+ --brown_prime_background: #a2845e;
87
+ --gray_prime_background: #8e8e93;
88
+ /* Ссылка в контенте: затемнённый акцентный синий — #007aff на белом
60
89
  даёт контраст ~3.7 и для текста ссылки не подходит. */
61
90
  --link_color: #0066cc;
62
- /* Бэйджи */
63
- --badge_error_back: rgba(255, 59, 48, 0.16);
64
- --badge_error_text: #d70015;
65
- --badge_success_back: rgba(52, 199, 89, 0.16);
66
- --badge_success_text: #248a3d;
67
- --badge_cancel_back: rgba(142, 142, 147, 0.16);
68
- --badge_cancel_text: #6c6c70;
69
- --badge_warning_back: rgba(255, 204, 0, 0.2);
70
- --badge_warning_text: #b25000;
91
+ /* Бэйджи: плашка — цвет акцента с прозрачностью, текст — сам цвет акцента
92
+ (красный, зелёный, серый, оранжевый) */
93
+ --badge_error_background: rgba(255, 59, 48, 0.16);
94
+ --badge_error_text: #ff3b30;
95
+ --badge_success_background: rgba(52, 199, 89, 0.16);
96
+ --badge_success_text: #34c759;
97
+ --badge_cancel_background: rgba(120, 120, 128, 0.16);
98
+ --badge_cancel_text: #8e8e93;
99
+ --badge_warning_background: rgba(255, 149, 0, 0.16);
100
+ --badge_warning_text: #ff9500;
71
101
  /* Аудиоплеер: полупрозрачные заливки под backdrop-filter */
72
- --ap_main_background: rgba(120, 120, 128, 0.16);
73
- --ap_main_background_2: rgba(120, 120, 128, 0.26);
74
- --ap_slider_background: rgba(120, 120, 128, 0.3);
75
- --ap_slider_buf_background: rgba(0, 122, 255, 0.65);
76
- /* Скроллбар */
77
- --scrollbar_thumb: rgba(120, 120, 128, 0.45);
102
+ --player_background: rgba(120, 120, 128, 0.1);
103
+ --player_slider_background: rgba(120, 120, 128, 0.24);
104
+ --player_slider_buffer_background: rgba(0, 122, 255, 0.65);
105
+ /* Ручка ползунка — белая деталь на дорожке: белый есть в палитре (карточка светлой
106
+ схемы и текст под курсором), поэтому у ручки свой ключ, а не заливка */
107
+ --player_thumb_background: #ffffff;
108
+ /* Тени — общий набор: форма с разлётом и прозрачностью из одной руки (чем крупнее
109
+ слой, тем мягче разлёт и ниже процент). В тёмной схеме проценты выше: чёрная
110
+ тень на тёмной подложке иначе не видна */
111
+ --box_shadow_main: 0 1px 2px rgb(0 0 0 / 4%), 0 3px 10px rgb(0 0 0 / 5%);
112
+ --box_shadow_drop: 0 2px 6px rgb(0 0 0 / 5%), 0 14px 36px rgb(0 0 0 / 9%);
113
+ --box_shadow_modal: 0 4px 12px rgb(0 0 0 / 6%), 0 28px 72px rgb(0 0 0 / 14%);
114
+ /* Поднятая деталь контрола: бегунок ползунка, головка переключателя */
115
+ --box_shadow_control: 0 1px 3px rgb(0 0 0 / 16%);
116
+ /* Край закреплённой колонки: тень направленная, вбок — общие тени накрывают
117
+ элемент со всех сторон */
118
+ --box_shadow_edge: 2px 0 8px rgb(0 0 0 / 6%);
119
+ /* Ореол вокруг ручки поверх содержимого — ползунок сравнения картинок */
120
+ --box_shadow_halo: 0 0 8px rgb(0 0 0 / 25%);
121
+ /* Затемняющая накладка: ею помечают выполненную часть цветной полосы (Gantt) */
122
+ --overlay_dim: rgba(0, 0, 0, 0.28);
123
+ /* Подсветка примеров кода: акценты палитры, приглушённые к заливке кода
124
+ (`--element_background` на карточке) до нормы 4.5 — чистый акцент на ней даёт
125
+ для текста от 1.3 до 3.6. Доли подмешивания — в `npm run palette:check`, он же
126
+ печатает вышедший контраст */
127
+ --code_token_comment: #6c6c70;
128
+ --code_token_string: #217d38;
129
+ --code_token_number: #9e5c00;
130
+ --code_token_keyword: #9847c1;
131
+ --code_token_function: #5856d6;
132
+ --code_token_property: #22749a;
133
+ --code_token_selector: #826800;
134
+ --code_token_color: var(--code_token_number);
135
+ /* Скроллбар — системный накладной */
136
+ --scrollbar_thumb: rgba(0, 0, 0, 0.3);
78
137
  }
79
138
  }
80
139
 
81
140
  @media (prefers-color-scheme: dark) {
82
141
  :root {
83
- /* Текст */
142
+ /* --- Текст: основной и приглушённый --- */
84
143
  --text_color: #ffffff;
85
144
  --text_color_disabled: rgba(235, 235, 245, 0.6);
86
145
  --text_color_hover: #ffffff;
87
- --text_color_hover_disable: rgba(255, 255, 255, 0.7);
88
- /* Основные цвета */
89
- /* Подложка не чистый чёрный: на #000000 белый текст «звенит» (гало вокруг глифов),
90
- а границы карточек #1c1c1e видны как окна в пустоте. #0e0e10 оставляет ощущение
91
- чёрного, но даёт глазу уровень подложки — так делает и системная тёмная тема. */
92
- --main_background: #0e0e10;
93
- --header_background: rgba(28, 28, 30, 0.72);
94
- /* Шапка при прокрутке: материал плотнее, содержимое уходит под неё */
95
- --header_background_scrolled: rgba(22, 22, 24, 0.9);
96
- /* Обводка (hairline). В тёмной схеме белая линия заметнее, чем чёрная в светлой,
97
- поэтому плотность ещё ниже, чем в светлой теме (было 0.16). */
98
- --border_color: rgba(255, 255, 255, 0.08);
99
- /* Наведение на поле ввода: см. светлую тему */
100
- --border_color_hover: rgba(255, 255, 255, 0.22);
101
- /* Тени в тёмной схеме: форма та же, что в светлой (см. global_style.css), меняются
102
- только проценты — чёрная тень на почти чёрной подложке иначе не видна.
103
- Светлого внутреннего хайрлайна здесь больше нет: он был нужен на чистом чёрном,
104
- а с подложкой #0e0e10 поверхность отделяет и разница яркости, и --border_color;
105
- заодно обе схемы теперь тени одинаковые. */
146
+ --text_color_hover_disabled: rgba(255, 255, 255, 0.7);
147
+ /* --- Фоны: тёмная колонка серой шкалы ---
148
+ Подложка — деление 6 #1c1c1e, карточка — деление 5 #2c2c2e: ровно шаг шкалы,
149
+ как в системных настройках. Чистый чёрный (им помечена сгруппированная подложка
150
+ системы) не берём: на нём светлый текст «звенит», да и в шкале его нет */
151
+ --main_background: #1c1c1e;
152
+ --element_background_2: #2c2c2e;
153
+ --element_background_disabled_2: rgba(44, 44, 46, 0.6);
154
+ --header_background: rgba(44, 44, 46, 0.6);
155
+ /* Полосы оболочки — шапка, меню маршрутов и ящик уведомлений — носят цвет
156
+ подложки (деление 6), а не карточки (деление 5): в тёмной схеме это как раз
157
+ заметно, и полоса читается продолжением подложки */
158
+ --bar_background: rgba(28, 28, 30, 0.6);
159
+ /* Шапка при прокрутке: тот же материал, а состояние показывает тень
160
+ (прежде материал был плотнее) */
161
+ --header_background_scrolled: rgba(28, 28, 30, 0.6);
162
+ --modal_background: rgba(44, 44, 46, 0.6);
163
+ /* Волосяная линия — деление 3 #48484a, под курсором — деление 2 #636366: на карточке
164
+ (деление 5) рамка даёт шаг светлоты 12.6, как в светлой схеме 16.0. Деление 4,
165
+ которым эталон намекает разделитель, выбрано не было: на карточке оно даёт всего 6.4,
166
+ и рамка читалась только на подложке — там она и была видна */
167
+ --border_color: #48484a;
168
+ --border_color_hover: #636366;
169
+ /* Тени — форма та же, что в светлой колонке, меняются только проценты: чёрная
170
+ тень на тёмной подложке иначе не видна */
106
171
  --box_shadow_main: 0 1px 2px rgb(0 0 0 / 22%), 0 3px 10px rgb(0 0 0 / 26%);
107
172
  --box_shadow_drop: 0 2px 6px rgb(0 0 0 / 26%), 0 14px 36px rgb(0 0 0 / 38%);
108
173
  --box_shadow_modal: 0 4px 12px rgb(0 0 0 / 30%), 0 28px 72px rgb(0 0 0 / 46%);
109
- /* Кнопка */
110
- --button_border_color: rgba(255, 255, 255, 0.1);
174
+ --box_shadow_control: 0 1px 3px rgb(0 0 0 / 45%);
175
+ --box_shadow_edge: 2px 0 8px rgb(0 0 0 / 30%);
176
+ --box_shadow_halo: 0 0 8px rgb(0 0 0 / 55%);
177
+ /* Кнопка: граница — та же волосяная линия, заливка — нейтральная (тёмная) */
178
+ --button_border_color: #48484a;
111
179
  --button_border_color_hover: #0a84ff;
112
- --button_background: rgba(120, 120, 128, 0.3);
113
- --button_background_hover: #0a84ff;
114
- --button_background_disabled: rgba(120, 120, 128, 0.14);
115
- /* Модальное окно */
116
- --modal_background: rgba(30, 30, 32, 0.78);
180
+ --button_background: rgba(120, 120, 128, 0.24);
181
+ --button_background_disabled: rgba(120, 120, 128, 0.18);
117
182
  /* Занавес под всплывающим слоем: подложка обязана отличаться от --modal_background,
118
183
  иначе материал модалки на ней не читается. */
119
184
  --modal_scrim: rgba(0, 0, 0, 0.5);
120
- /* Элементы */
121
- --element_background: rgba(120, 120, 128, 0.3);
122
- --element_background_hover: rgba(120, 120, 128, 0.45);
123
- --element_background_disabled: rgba(120, 120, 128, 0.14);
124
- --element_background_2: #1c1c1e;
125
- --element_background_disabled_2: rgba(28, 28, 30, 0.6);
185
+ /* Элементы — нейтральные заливки: в покое одна плотность, под курсором плотнее,
186
+ у выключенного слабее */
187
+ --element_background: rgba(120, 120, 128, 0.24);
188
+ --element_background_hover: rgba(120, 120, 128, 0.36);
189
+ --element_background_disabled: rgba(120, 120, 128, 0.18);
190
+ /* --- Акценты: тёмная колонка --- */
126
191
  --element_background_prime: #0a84ff;
127
- /* Акцент */
128
192
  --blue_prime_background: #0a84ff;
129
- --blue_prime_background_trans: rgba(10, 132, 255, 0.6);
193
+ --blue_prime_background_tint_strong: rgba(10, 132, 255, 0.6);
130
194
  /* Тонировка акцента: выбранный пункт оболочки (меню маршрутов, кнопка шапки),
131
195
  а не заливка во весь цвет. */
132
196
  --blue_prime_background_tint: rgba(10, 132, 255, 0.26);
133
197
  --red_prime_background: #ff453a;
134
- /* Ссылка в контенте: тот же system blue, на тёмной карточке он даёт
135
- контраст ~4.7 (UA-синий #0000ee — ~1.8 и не читается). */
136
- --link_color: #0a84ff;
137
- /* Бэйджи */
138
- --badge_error_back: rgba(255, 69, 58, 0.2);
139
- --badge_error_text: #ff6961;
140
- --badge_success_back: rgba(48, 209, 88, 0.2);
198
+ /* Остальные цвета таблицы — токенами, как в светлой схеме */
199
+ --orange_prime_background: #ff9f0a;
200
+ --yellow_prime_background: #ffd60a;
201
+ --green_prime_background: #30d158;
202
+ --mint_prime_background: #63e6e2;
203
+ --teal_prime_background: #40c8e0;
204
+ --cyan_prime_background: #64d2ff;
205
+ --indigo_prime_background: #5e5ce6;
206
+ --purple_prime_background: #bf5af2;
207
+ --pink_prime_background: #ff375f;
208
+ --brown_prime_background: #ac8e68;
209
+ --gray_prime_background: #98989d;
210
+ /* Ссылка в контенте: акцентный синий #0a84ff на карточке #2c2c2e даёт 3.9 — для
211
+ текста ссылки мало (норма 4.5). Берём осветлённый вариант того же синего. */
212
+ --link_color: #2997ff;
213
+ /* Бэйджи — цвета акцентов тёмной колонки */
214
+ --badge_error_background: rgba(255, 69, 58, 0.2);
215
+ --badge_error_text: #ff453a;
216
+ --badge_success_background: rgba(48, 209, 88, 0.2);
141
217
  --badge_success_text: #30d158;
142
- --badge_cancel_back: rgba(142, 142, 147, 0.2);
143
- --badge_cancel_text: #aeaeb2;
144
- --badge_warning_back: rgba(255, 214, 10, 0.2);
145
- --badge_warning_text: #ffd60a;
218
+ --badge_cancel_background: rgba(120, 120, 128, 0.2);
219
+ --badge_cancel_text: #98989d;
220
+ --badge_warning_background: rgba(255, 159, 10, 0.2);
221
+ --badge_warning_text: #ff9f0a;
146
222
  /* Аудиоплеер: полупрозрачные заливки под backdrop-filter */
147
- --ap_main_background: rgba(120, 120, 128, 0.24);
148
- --ap_main_background_2: rgba(120, 120, 128, 0.36);
149
- --ap_slider_background: rgba(120, 120, 128, 0.42);
150
- --ap_slider_buf_background: rgba(10, 132, 255, 0.65);
151
- /* Скроллбар */
152
- --scrollbar_thumb: rgba(120, 120, 128, 0.5);
223
+ --player_background: rgba(120, 120, 128, 0.24);
224
+ --player_slider_background: rgba(120, 120, 128, 0.42);
225
+ --player_slider_buffer_background: rgba(10, 132, 255, 0.65);
226
+ --player_thumb_background: #ffffff;
227
+ /* Затемняющая накладка и подсветка кода: значения те же, что в светлой колонке,
228
+ но свои — схемы обязаны объявлять один и тот же набор ключей */
229
+ --overlay_dim: rgba(0, 0, 0, 0.28);
230
+ --code_token_comment: #aaaaae;
231
+ --code_token_string: #30d158;
232
+ --code_token_number: #ff9f0a;
233
+ --code_token_keyword: #d38df6;
234
+ --code_token_function: #a3a2f1;
235
+ --code_token_property: #64d2ff;
236
+ --code_token_selector: #ffd60a;
237
+ --code_token_color: var(--code_token_number);
238
+ /* Скроллбар — системный накладной */
239
+ --scrollbar_thumb: rgba(255, 255, 255, 0.35);
153
240
  }
154
241
  }
@@ -1,48 +1,48 @@
1
- const {Icon, Icons} = require("../chui_icons/icons");
1
+ const { Icon, Icons } = require("../chui_icons/icons");
2
2
 
3
- const {makeKeyboardButton} = require("../../modules/chui_a11y/chui_a11y");
3
+ const { makeKeyboardButton } = require("../../modules/chui_a11y/chui_a11y");
4
4
 
5
5
  /** Идентификаторы для aria-controls у панелей аккордеона */
6
- let disclosure_panel_counter = 0;
6
+ let disclosurePanelCounter = 0;
7
7
 
8
8
  class Accordion {
9
9
  #name = require("randomstring").generate();
10
- #chui_accordion = document.createElement(`chui_accordion`);
11
- constructor(options = [ { b_text: undefined, p_text: undefined } ]) {
12
- require('../../modules/chui_functions').setStyles(__dirname + "/styles.css", 'chUiJS_Accordion');
10
+ #chuiAccordion = document.createElement(`chui_accordion`);
11
+ constructor(options = [{ b_text: undefined, p_text: undefined }]) {
12
+ require("../../modules/chui_functions").setStyles(__dirname + "/styles.css", "chUiJS_Accordion");
13
13
  // На вход идёт массив секций: объект — ошибка вызова, и объяснить её лучше словами
14
14
  if (Array.isArray(options) === false) {
15
15
  throw new Error("Accordion: нужен массив секций [{b_text, p_text}]");
16
16
  }
17
- options.forEach(element => {
18
- let main_test = document.createElement(`chui_accordion_section`);
19
- let ab = document.createElement('accordion_button')
20
- ab.setAttribute('name', this.#name)
21
- let bt = document.createElement('accordion_button_text')
17
+ options.forEach((element) => {
18
+ const sectionNode = document.createElement(`chui_accordion_section`);
19
+ const ab = document.createElement("accordion_button");
20
+ ab.setAttribute("name", this.#name);
21
+ const bt = document.createElement("accordion_button_text");
22
22
  // Пустая заготовка — это «текста нет», а не слово «undefined» в разметке;
23
23
  // разметку секции принимает innerHTML, как и раньше
24
- bt.innerHTML = element.b_text === undefined || element.b_text === null ? "" : String(element.b_text)
25
- let barrow = document.createElement('accordion_button_arrow')
24
+ bt.innerHTML = element.b_text === undefined || element.b_text === null ? "" : String(element.b_text);
25
+ const barrow = document.createElement("accordion_button_arrow");
26
26
  barrow.innerHTML = new Icon(Icons.HARDWARE.KEYBOARD_ARROW_DOWN).getHTML();
27
- ab.appendChild(bt)
28
- ab.appendChild(barrow)
29
- let ap = document.createElement('accordion_panel')
30
- let html = document.createElement('accordion_panel_html')
31
- html.innerHTML = element.p_text === undefined || element.p_text === null ? "" : String(element.p_text)
32
- ap.appendChild(html)
33
- main_test.appendChild(ab)
34
- main_test.appendChild(ap)
35
- this.#chui_accordion.appendChild(main_test)
27
+ ab.appendChild(bt);
28
+ ab.appendChild(barrow);
29
+ const ap = document.createElement("accordion_panel");
30
+ const html = document.createElement("accordion_panel_html");
31
+ html.innerHTML = element.p_text === undefined || element.p_text === null ? "" : String(element.p_text);
32
+ ap.appendChild(html);
33
+ sectionNode.appendChild(ab);
34
+ sectionNode.appendChild(ap);
35
+ this.#chuiAccordion.appendChild(sectionNode);
36
36
 
37
37
  //ФУНКЦИИ
38
- let test = main_test.children;
38
+ const test = sectionNode.children;
39
39
  let i;
40
40
  for (i = 0; i < test.length; i++) {
41
- let elem = test[i];
42
- if (elem.tagName === 'ACCORDION_BUTTON') {
43
- let panel = elem.nextElementSibling;
41
+ const elem = test[i];
42
+ if (elem.tagName === "ACCORDION_BUTTON") {
43
+ const panel = elem.nextElementSibling;
44
44
  // Доступность: кнопка раскрытия — role=button с состоянием, панель — регион
45
- panel.id = "chui_accordion_panel_" + (disclosure_panel_counter += 1);
45
+ panel.id = "chui_accordion_panel_" + (disclosurePanelCounter += 1);
46
46
  panel.setAttribute("role", "region");
47
47
  elem.setAttribute("aria-controls", panel.id);
48
48
  elem.setAttribute("aria-expanded", "false");
@@ -50,9 +50,9 @@ class Accordion {
50
50
  // в обходе Tab и в дереве доступности — поэтому свёрнутая панель помечается инерт
51
51
  panel.inert = true;
52
52
  makeKeyboardButton(elem);
53
- elem.addEventListener('click', () => {
54
- elem.classList.toggle('accordion_active')
55
- let panel = elem.nextElementSibling;
53
+ elem.addEventListener("click", () => {
54
+ elem.classList.toggle("accordion_active");
55
+ const panel = elem.nextElementSibling;
56
56
  // Стрелка и углы кнопки зависят от `aria-expanded` — их ведёт CSS,
57
57
  // а инлайном остаётся только измеренная высота панели
58
58
  if (panel.style.maxHeight) {
@@ -62,15 +62,18 @@ class Accordion {
62
62
  panel.inert = false;
63
63
  panel.style.maxHeight = panel.scrollHeight + "px";
64
64
  }
65
- elem.setAttribute("aria-expanded", elem.classList.contains('accordion_active') ? "true" : "false");
66
- })
65
+ elem.setAttribute(
66
+ "aria-expanded",
67
+ elem.classList.contains("accordion_active") ? "true" : "false"
68
+ );
69
+ });
67
70
  }
68
71
  }
69
- })
72
+ });
70
73
  }
71
74
  set() {
72
- return this.#chui_accordion;
75
+ return this.#chuiAccordion;
73
76
  }
74
77
  }
75
78
 
76
- exports.Accordion = Accordion
79
+ exports.Accordion = Accordion;
@@ -8,9 +8,9 @@ chui_accordion {
8
8
  /* Зазор между секциями (прежде отдельной секции писал JS инлайном) */
9
9
  gap: 8px;
10
10
  font-size: var(--font_default_size);
11
- font-weight:400;
11
+ font-weight: 400;
12
12
  border: none;
13
- margin: var(--margin);
13
+ margin: var(--block_margin);
14
14
  }
15
15
 
16
16
  chui_accordion_section {
@@ -19,8 +19,8 @@ chui_accordion_section {
19
19
  height: max-content;
20
20
  width: -webkit-fill-available;
21
21
  font-size: var(--font_default_size);
22
- font-weight:400;
23
- border-radius: var(--border_radius);
22
+ font-weight: 400;
23
+ border-radius: var(--radius_sm);
24
24
  border: none;
25
25
  }
26
26
 
@@ -33,13 +33,13 @@ accordion_button_arrow {
33
33
  accordion_button {
34
34
  background: var(--element_background);
35
35
  cursor: pointer;
36
- padding: var(--main_padding);
36
+ padding: var(--block_padding);
37
37
  width: -webkit-fill-available;
38
38
  text-align: start;
39
39
  outline: none;
40
40
  display: flex;
41
41
  align-items: center;
42
- border-radius: var(--border_radius);
42
+ border-radius: var(--radius_sm);
43
43
  color: var(--text_color);
44
44
  border: none;
45
45
  }
@@ -51,19 +51,19 @@ accordion_panel {
51
51
  overflow: hidden;
52
52
  width: -webkit-fill-available;
53
53
  max-height: 0;
54
- border-end-end-radius: var(--border_radius);
55
- border-end-start-radius: var(--border_radius);
54
+ border-end-end-radius: var(--radius_sm);
55
+ border-end-start-radius: var(--radius_sm);
56
56
  color: var(--text_color);
57
57
  /* Раскрытие идёт по `max-height`, которое считает JS: без перехода секция
58
58
  раскрывалась рывком */
59
- transition: max-height var(--transition_time) var(--ease_out);
59
+ transition: max-height var(--motion_base) var(--motion_ease);
60
60
  }
61
61
 
62
62
  accordion_panel_html {
63
63
  padding: 8px 0;
64
64
  width: -webkit-fill-available;
65
65
  display: flex;
66
- border: none
66
+ border: none;
67
67
  }
68
68
 
69
69
  accordion_button:hover {
@@ -71,7 +71,8 @@ accordion_button:hover {
71
71
  }
72
72
 
73
73
  accordion_button:active {
74
- background: var(--element_background_prime); color: var(--text_color_hover);
74
+ background: var(--element_background_prime);
75
+ color: var(--text_color_hover);
75
76
  }
76
77
 
77
78
  accordion_button:hover accordion_button_text {
@@ -109,4 +110,4 @@ accordion_button[aria-expanded="true"] accordion_button_arrow chui_icon {
109
110
 
110
111
  accordion_button[aria-expanded="false"] accordion_button_arrow chui_icon {
111
112
  transform: rotate(0deg);
112
- }
113
+ }