@rt-tools/ui-kit-v2 0.22.0 → 0.22.1

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 (28) hide show
  1. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +1 -0
  2. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
  3. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +4 -2
  4. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
  5. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +1 -0
  6. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -1
  7. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +11 -0
  8. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -1
  9. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +172 -26
  10. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
  11. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +11 -6
  12. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -1
  13. package/package.json +1 -1
  14. package/rt-tools-ui-kit-v2-0.22.1.tgz +0 -0
  15. package/src/assets/icons-material/folder.fill.svg +5 -0
  16. package/src/assets/icons-material/folder.svg +5 -0
  17. package/src/lib/components/dynamic-selector/CONTEXT.md +2 -1
  18. package/src/lib/components/scroll-area/CONTEXT.md +5 -1
  19. package/src/lib/components/side-menu/CONTEXT.md +17 -1
  20. package/src/lib/components/side-menu/favorites/rt-side-menu-favorites.component.scss +9 -0
  21. package/src/lib/components/side-menu/rt-side-menu.component.scss +42 -15
  22. package/src/lib/components/side-menu/stories/component/test-side-menu-cell.component.scss +34 -0
  23. package/src/lib/components/side-menu/sub-item/rt-side-menu-sub-item.component.scss +75 -14
  24. package/src/lib/components/toast/CONTEXT.md +2 -0
  25. package/types/rt-tools-ui-kit-v2-core.d.ts +12 -2
  26. package/types/rt-tools-ui-kit-v2-side-menu.d.ts +60 -8
  27. package/types/rt-tools-ui-kit-v2-toast.d.ts +1 -0
  28. package/rt-tools-ui-kit-v2-0.22.0.tgz +0 -0
@@ -11,27 +11,59 @@
11
11
  --rt-side-menu-sub-item-match-color: var(--rt-neutral-950);
12
12
  --rt-side-menu-sub-item-match-radius: var(--rt-radius-xs);
13
13
 
14
+ /* Размеры и цвет строки — и строки со ссылкой, и заголовка папки. Отступ начала растёт с
15
+ глубиной вложения. Цвета подложки и выбранной строки — свойства меню `--rt-side-menu-item-*`. */
16
+ --rt-side-menu-sub-item-min-height: var(--rt-control-height-md);
17
+ --rt-side-menu-sub-item-font-size: var(--rt-text-sm);
18
+ --rt-side-menu-sub-item-padding-start: var(--rt-space-md);
19
+ --rt-side-menu-sub-item-padding-end: var(--rt-space-sm);
20
+ --rt-side-menu-sub-item-color: var(--rt-color-text-primary);
21
+ --rt-side-menu-sub-item-gap: var(--rt-space-sm);
22
+
23
+ /* Заголовок папки берёт отступ начала строки, пока приложение не задало свой: у первого кита
24
+ папка стоит ближе к краю, чем её пункты. Растёт с глубиной так же, как у строки. */
25
+ --rt-side-menu-sub-item-folder-padding-start: var(--rt-side-menu-sub-item-padding-start);
26
+ --rt-side-menu-sub-item-chevron-color: var(--rt-color-text-muted);
27
+
28
+ /* Значок строки и папки — ступень sm значка. Без своего шага значок берёт свой запасной
29
+ размер, как раньше: ссылка на необъявленный шаг недействительна. */
30
+ --rt-side-menu-sub-item-icon-size: var(--rt-icon-step-sm);
31
+
32
+ /* Кнопки строки — «+» потребителя, звезда, «убрать» и ручка блока избранного. Умолчания дают
33
+ прежний вид: скруглённый квадрат шага sm, значок ступени sm, цвет текста. Значок — та же
34
+ ступень без своего шага, что и у значка строки. */
35
+ --rt-side-menu-sub-item-button-radius: var(--rt-radius-md);
36
+ --rt-side-menu-sub-item-button-icon-size: var(--rt-icon-step-sm);
37
+ --rt-side-menu-sub-item-action-size: var(--rt-control-height-sm);
38
+ --rt-side-menu-sub-item-favorite-size: var(--rt-control-height-sm);
39
+ --rt-side-menu-sub-item-favorite-color: var(--rt-color-text-primary);
40
+
14
41
  display: block;
15
42
 
43
+ /* Трекинг подписи наследуют и строка, и заголовок папки. Своего умолчания у него нет: без
44
+ свойства строка наследует трекинг от страницы, как раньше. */
45
+ letter-spacing: var(--rt-side-menu-sub-item-letter-spacing, inherit);
46
+
16
47
  &__row {
17
48
  /* Глубину вложения ставит шаблон на саму строку; здесь — значение строки верхнего уровня. */
18
49
  --rt-side-menu-sub-item-depth: 0;
19
50
 
20
51
  display: flex;
21
52
  width: 100%;
22
- min-height: var(--rt-control-height-md);
53
+ min-height: var(--rt-side-menu-sub-item-min-height);
23
54
  box-sizing: border-box;
24
55
  align-items: center;
25
56
  border: 0;
26
57
  border-radius: var(--rt-side-menu-sub-item-radius);
27
58
  background: transparent;
28
- color: var(--rt-color-text-primary);
59
+ color: var(--rt-side-menu-sub-item-color);
29
60
  cursor: pointer;
30
61
  font: inherit;
31
- font-size: var(--rt-text-sm);
32
- gap: var(--rt-space-sm);
62
+ font-size: var(--rt-side-menu-sub-item-font-size);
63
+ gap: var(--rt-side-menu-sub-item-gap);
33
64
  padding-block: var(--rt-space-2);
34
- padding-inline: calc(var(--rt-space-md) * (1 + var(--rt-side-menu-sub-item-depth))) var(--rt-space-sm);
65
+ padding-inline: calc(var(--rt-side-menu-sub-item-padding-start) * (1 + var(--rt-side-menu-sub-item-depth)))
66
+ var(--rt-side-menu-sub-item-padding-end);
35
67
  text-align: start;
36
68
  text-decoration: none;
37
69
  transition: background-color var(--rt-side-menu-sub-item-transition-duration) ease;
@@ -39,7 +71,7 @@
39
71
  &:hover,
40
72
  &:active,
41
73
  &--highlighted {
42
- background: var(--rt-color-bg-hover);
74
+ background: var(--rt-side-menu-item-bg-hover);
43
75
  }
44
76
 
45
77
  &:focus-visible {
@@ -49,12 +81,14 @@
49
81
 
50
82
  /* Активна строка со ссылкой; у папки активность видна по её раскрытым пунктам. */
51
83
  &--active {
52
- background: var(--rt-color-action-primary-subtle);
53
- color: var(--rt-color-action-primary-on-surface);
84
+ background: var(--rt-side-menu-item-bg-active);
85
+ color: var(--rt-side-menu-item-color-active);
54
86
  }
55
87
  }
56
88
 
57
89
  &__icon {
90
+ --rt-icon-step-sm: var(--rt-side-menu-sub-item-icon-size);
91
+
58
92
  flex-shrink: 0;
59
93
  color: inherit;
60
94
  }
@@ -113,6 +147,21 @@
113
147
  &:hover {
114
148
  outline-color: var(--rt-color-border-strong);
115
149
  }
150
+
151
+ > .rt-icon-button {
152
+ --rt-icon-button-size-step: var(--rt-side-menu-sub-item-action-size);
153
+ }
154
+ }
155
+
156
+ /* Форма и значок кнопок строки. Скругление и шаг размера кнопка объявляет на своём корне —
157
+ там они и переназначаются; ступень значка доходит до значка с тега. */
158
+ &__action,
159
+ &__favorite {
160
+ --rt-icon-step-sm: var(--rt-side-menu-sub-item-button-icon-size);
161
+
162
+ > .rt-icon-button {
163
+ --rt-icon-button-radius: var(--rt-side-menu-sub-item-button-radius);
164
+ }
116
165
  }
117
166
 
118
167
  /* Кнопка избранного: звезда у пункта раздела и «убрать» у строки блока. Закрашенная звезда
@@ -120,9 +169,16 @@
120
169
  клавиатуры своей строки, а где указатель не умеет наводиться, — всегда. Прячется
121
170
  прозрачностью: кнопка остаётся на месте и в порядке Tab. */
122
171
  &__favorite {
172
+ /* Цвет покоя — свойство строки: состояния ниже переназначают цвет кнопки и перебивают его. */
173
+ --rt-icon-button-color: var(--rt-side-menu-sub-item-favorite-color);
174
+
123
175
  flex-shrink: 0;
124
176
  opacity: 0;
125
177
 
178
+ > .rt-icon-button {
179
+ --rt-icon-button-size-step: var(--rt-side-menu-sub-item-favorite-size);
180
+ }
181
+
126
182
  &--on {
127
183
  --rt-icon-button-color: var(--rt-color-action-primary);
128
184
 
@@ -159,17 +215,22 @@
159
215
  &__folder.rt-expansion-panel {
160
216
  --rt-expansion-panel-duration: var(--rt-side-menu-sub-item-transition-duration);
161
217
  --rt-expansion-panel-header-radius: var(--rt-side-menu-sub-item-radius);
162
- --rt-expansion-panel-header-min-height: var(--rt-control-height-md);
218
+ --rt-expansion-panel-header-min-height: var(--rt-side-menu-sub-item-min-height);
163
219
  --rt-expansion-panel-header-padding-block: var(--rt-space-2);
164
- --rt-expansion-panel-header-padding-start: calc(var(--rt-space-md) * (1 + var(--rt-side-menu-sub-item-depth)));
165
- --rt-expansion-panel-header-padding-end: var(--rt-space-sm);
166
- --rt-expansion-panel-header-gap: var(--rt-space-sm);
167
- --rt-expansion-panel-header-font-size: var(--rt-text-sm);
220
+ --rt-expansion-panel-header-padding-start: calc(
221
+ var(--rt-side-menu-sub-item-folder-padding-start) * (1 + var(--rt-side-menu-sub-item-depth))
222
+ );
223
+ --rt-expansion-panel-header-padding-end: var(--rt-side-menu-sub-item-padding-end);
224
+ --rt-expansion-panel-header-gap: var(--rt-side-menu-sub-item-gap);
225
+ --rt-expansion-panel-chevron-color: var(--rt-side-menu-sub-item-chevron-color);
226
+ --rt-expansion-panel-header-font-size: var(--rt-side-menu-sub-item-font-size);
227
+ --rt-expansion-panel-header-color: var(--rt-side-menu-sub-item-color);
168
228
  --rt-expansion-panel-header-bg: transparent;
229
+ --rt-expansion-panel-header-hover-bg: var(--rt-side-menu-item-bg-hover);
169
230
  }
170
231
 
171
232
  &__folder--highlighted.rt-expansion-panel {
172
- --rt-expansion-panel-header-bg: var(--rt-color-bg-hover);
233
+ --rt-expansion-panel-header-bg: var(--rt-side-menu-item-bg-hover);
173
234
  }
174
235
 
175
236
  &__children {
@@ -47,6 +47,8 @@ this.#notifications.error('Не удалось сохранить', 'danger', {
47
47
  - `progress: true` рисует полосу срока; она встаёт тем же признаком `rt-toast--paused`, что и таймер.
48
48
  - `icon` у тоста важнее карты `RT_TOAST_SEVERITY_ICONS`; `icon: null` снимает значок.
49
49
  - `mode="replace"` помечает прежние тосты вытесненными, и они уходят той же анимацией, что по крестику.
50
+ - `onDismiss` сообщает один раз, почему тост ушёл без действия: `close`, `timeout` или `replaced`.
51
+ Ушедший по `action` или `secondaryAction` ничего не сообщает — его обработчик уже вызван.
50
52
 
51
53
  ## Края
52
54
 
@@ -910,6 +910,11 @@ declare class MessageBus<E extends IMessageBusEvent> {
910
910
  declare namespace INotification {
911
911
  /** Семантическая палитра уведомления; совпадает по значениям с `rt-message`. */
912
912
  type Severity = 'info' | 'success' | 'warning' | 'danger';
913
+ /**
914
+ * Почему тост ушёл не по действию: крестик, истёкший таймер или вытеснение новым в режиме
915
+ * `replace`. Ушедший по действию причины не сообщает — его обработчик уже вызван.
916
+ */
917
+ type DismissReason = 'close' | 'timeout' | 'replaced';
913
918
  interface Action {
914
919
  readonly label: string;
915
920
  readonly handler: () => void;
@@ -937,8 +942,13 @@ declare namespace INotification {
937
942
  readonly progress?: boolean;
938
943
  /** Свой значок вместо значка severity; `null` — тост без значка. */
939
944
  readonly icon?: IRtIcon.Name | null;
945
+ /**
946
+ * Сообщает один раз, почему тост ушёл без действия. Приложению это нужно, когда тост
947
+ * держит ожидание — вход, подтверждение, — и закрытый крестиком должен его отменить.
948
+ */
949
+ readonly onDismiss?: (reason: DismissReason) => void;
940
950
  }
941
- type Options = Pick<Payload, 'description' | 'meta' | 'action' | 'secondaryAction' | 'filled' | 'duration' | 'progress' | 'icon'>;
951
+ type Options = Pick<Payload, 'description' | 'meta' | 'action' | 'secondaryAction' | 'filled' | 'duration' | 'progress' | 'icon' | 'onDismiss'>;
942
952
  /**
943
953
  * Событие шины уведомлений. `type` — строковый дискриминатор (доменные
944
954
  * action-перечисления вроде «обновление записи успешно»/«ошибка загрузки
@@ -1091,7 +1101,7 @@ declare class RtInfiniteScrollDirective implements OnDestroy {
1091
1101
  /** The name of a styling property the kit declares itself. */
1092
1102
  type TRtDesignTokenName = '--rt-amber-400' | '--rt-border-width-medium' | '--rt-border-width-thick' | '--rt-border-width-thin' | '--rt-bp-lg' | '--rt-bp-md' | '--rt-bp-sm' | '--rt-bp-xl' | '--rt-brand-100' | '--rt-brand-200' | '--rt-brand-300' | '--rt-brand-400' | '--rt-brand-50' | '--rt-brand-500' | '--rt-brand-600' | '--rt-brand-700' | '--rt-brand-800' | '--rt-brand-900' | '--rt-brand-950' | '--rt-btn-tint-active' | '--rt-btn-tint-hover' | '--rt-charcoal-700' | '--rt-charcoal-800' | '--rt-charcoal-900' | '--rt-charcoal-950' | '--rt-charcoal-border' | '--rt-charcoal-border-strong' | '--rt-chat-bubble-date' | '--rt-chat-bubble-in-author' | '--rt-chat-bubble-in-bg' | '--rt-chat-bubble-own-author' | '--rt-chat-bubble-own-bg' | '--rt-chat-status-read' | '--rt-color-action-danger' | '--rt-color-action-danger-active' | '--rt-color-action-danger-hover' | '--rt-color-action-danger-on-surface' | '--rt-color-action-disabled' | '--rt-color-action-info' | '--rt-color-action-info-active' | '--rt-color-action-info-hover' | '--rt-color-action-info-on-surface' | '--rt-color-action-on-danger' | '--rt-color-action-on-disabled' | '--rt-color-action-on-info' | '--rt-color-action-on-primary' | '--rt-color-action-on-secondary' | '--rt-color-action-on-success' | '--rt-color-action-on-warning' | '--rt-color-action-primary' | '--rt-color-action-primary-active' | '--rt-color-action-primary-hover' | '--rt-color-action-primary-on-surface' | '--rt-color-action-primary-soft' | '--rt-color-action-primary-subtle' | '--rt-color-action-secondary' | '--rt-color-action-secondary-active' | '--rt-color-action-secondary-hover' | '--rt-color-action-secondary-on-surface' | '--rt-color-action-success' | '--rt-color-action-success-active' | '--rt-color-action-success-hover' | '--rt-color-action-success-on-surface' | '--rt-color-action-warning' | '--rt-color-action-warning-active' | '--rt-color-action-warning-hover' | '--rt-color-action-warning-on-surface' | '--rt-color-bg-hover' | '--rt-color-bg-inverse' | '--rt-color-bg-nav' | '--rt-color-bg-overlay' | '--rt-color-bg-page' | '--rt-color-bg-page-auth' | '--rt-color-bg-subtle' | '--rt-color-bg-surface' | '--rt-color-bg-surface-auth-card' | '--rt-color-bg-surface-subtle' | '--rt-color-bg-surface-subtle-2' | '--rt-color-border-default' | '--rt-color-border-focus' | '--rt-color-border-strong' | '--rt-color-border-subtle' | '--rt-color-field-fill-underline' | '--rt-color-skeleton-base' | '--rt-color-skeleton-wave' | '--rt-color-state-danger' | '--rt-color-state-danger-bg' | '--rt-color-state-error-text' | '--rt-color-state-info' | '--rt-color-state-info-bg' | '--rt-color-state-success' | '--rt-color-state-success-bg' | '--rt-color-state-success-text' | '--rt-color-state-warning' | '--rt-color-state-warning-bg' | '--rt-color-state-warning-text' | '--rt-color-stepper-current' | '--rt-color-stepper-current-subtle' | '--rt-color-stepper-progress' | '--rt-color-stepper-track' | '--rt-color-table-head-bg' | '--rt-color-text-disabled' | '--rt-color-text-inverse' | '--rt-color-text-link' | '--rt-color-text-link-hover' | '--rt-color-text-muted' | '--rt-color-text-primary' | '--rt-control-height-2xl' | '--rt-control-height-lg' | '--rt-control-height-md' | '--rt-control-height-sm' | '--rt-control-height-xl' | '--rt-control-max-width' | '--rt-control-panel-max-height' | '--rt-control-textarea-min-height-lg' | '--rt-control-textarea-min-height-md' | '--rt-control-textarea-min-height-sm' | '--rt-counter-gap' | '--rt-counter-row-color-border' | '--rt-counter-row-gap' | '--rt-counter-row-hint-color' | '--rt-counter-row-hint-font-size' | '--rt-counter-row-label-color' | '--rt-counter-row-label-font-size' | '--rt-counter-row-padding-y' | '--rt-counter-value-color' | '--rt-counter-value-font-size' | '--rt-counter-value-min-width' | '--rt-danger-50' | '--rt-danger-500' | '--rt-danger-600' | '--rt-danger-700' | '--rt-duration-base' | '--rt-duration-fast' | '--rt-duration-slow' | '--rt-duration-slower' | '--rt-field-error-color' | '--rt-field-error-font-size' | '--rt-field-gap' | '--rt-field-hint-color' | '--rt-field-hint-font-size' | '--rt-field-label-color' | '--rt-field-label-font-size' | '--rt-field-label-font-weight' | '--rt-field-label-help-gap' | '--rt-field-required-color' | '--rt-field-value-color' | '--rt-field-value-empty-color' | '--rt-field-value-font-size' | '--rt-focus-ring-color' | '--rt-focus-ring-color-danger' | '--rt-focus-ring-offset' | '--rt-focus-ring-width' | '--rt-font-family-mono' | '--rt-font-family-sans' | '--rt-font-weight-bold' | '--rt-font-weight-medium' | '--rt-font-weight-regular' | '--rt-font-weight-semibold' | '--rt-gray-350' | '--rt-icon-button-color-bg-hover' | '--rt-icon-button-disabled-color' | '--rt-icon-button-disabled-fill' | '--rt-icon-button-disabled-opacity' | '--rt-info-50' | '--rt-info-500' | '--rt-info-600' | '--rt-info-700' | '--rt-input-border-width' | '--rt-input-color-bg' | '--rt-input-color-bg-disabled' | '--rt-input-color-bg-hover' | '--rt-input-color-border' | '--rt-input-color-border-error' | '--rt-input-color-border-focus' | '--rt-input-color-text' | '--rt-input-color-text-placeholder' | '--rt-input-disabled-opacity' | '--rt-input-focus-outline-offset' | '--rt-input-focus-shadow' | '--rt-input-focus-shadow-error' | '--rt-input-font-size' | '--rt-input-gap' | '--rt-input-height' | '--rt-input-height-lg' | '--rt-input-height-md' | '--rt-input-height-sm' | '--rt-input-icon-color' | '--rt-input-icon-size' | '--rt-input-line-height' | '--rt-input-max-width' | '--rt-input-padding-x' | '--rt-input-padding-y' | '--rt-input-panel-max-height' | '--rt-input-radius' | '--rt-input-transition' | '--rt-leading-none' | '--rt-leading-normal' | '--rt-leading-relaxed' | '--rt-leading-snug' | '--rt-leading-tight' | '--rt-letter-spacing-wide' | '--rt-list-action-color' | '--rt-list-action-color-bg-hover' | '--rt-list-action-color-hover' | '--rt-list-action-divider-height' | '--rt-list-action-gap' | '--rt-list-action-icon-size' | '--rt-list-action-radius' | '--rt-list-action-shadow' | '--rt-list-action-shadow-hover' | '--rt-list-content-padding-bottom' | '--rt-list-copy-button-bg' | '--rt-list-copy-button-bg-hover' | '--rt-list-copy-button-color' | '--rt-list-copy-button-radius' | '--rt-list-copy-button-size' | '--rt-list-empty-icon-size' | '--rt-list-empty-icon-wrap-bg' | '--rt-list-empty-icon-wrap-size' | '--rt-list-empty-title-size' | '--rt-list-empty-title-weight' | '--rt-list-filter-line-height' | '--rt-list-placeholder-grow' | '--rt-list-placeholder-min-height' | '--rt-list-search-color-bg' | '--rt-list-search-color-border' | '--rt-list-search-color-placeholder' | '--rt-list-search-font-size' | '--rt-list-search-gap' | '--rt-list-search-height' | '--rt-list-search-icon-color' | '--rt-list-search-icon-size' | '--rt-list-search-padding-x' | '--rt-list-search-radius' | '--rt-list-search-width' | '--rt-list-selector-label-color' | '--rt-list-settings-icon-color' | '--rt-list-settings-item-bg' | '--rt-list-settings-item-radius' | '--rt-list-table-button-radius' | '--rt-list-table-button-size' | '--rt-list-table-head-divider-color' | '--rt-list-table-icon-color' | '--rt-list-table-icon-size' | '--rt-list-toolbar-gap' | '--rt-list-toolbar-padding-bottom' | '--rt-list-toolbar-padding-top' | '--rt-mat-blue-100' | '--rt-mat-blue-20' | '--rt-mat-blue-40' | '--rt-mat-blue-60' | '--rt-mat-blue-80' | '--rt-mat-blue-active' | '--rt-mat-blue-hover' | '--rt-mat-dark-10' | '--rt-mat-dark-20' | '--rt-mat-dark-30' | '--rt-mat-dark-40' | '--rt-mat-green-10' | '--rt-mat-green-100' | '--rt-mat-green-120' | '--rt-mat-green-20' | '--rt-mat-green-40' | '--rt-mat-green-60' | '--rt-mat-green-80' | '--rt-mat-green-active' | '--rt-mat-green-hover' | '--rt-mat-menu-min-width' | '--rt-mat-menu-sm-icon-size' | '--rt-mat-menu-sm-item-height' | '--rt-mat-navy-100' | '--rt-mat-neutral-0' | '--rt-mat-neutral-10' | '--rt-mat-neutral-100' | '--rt-mat-neutral-15' | '--rt-mat-neutral-20' | '--rt-mat-neutral-25' | '--rt-mat-neutral-30' | '--rt-mat-neutral-35' | '--rt-mat-neutral-40' | '--rt-mat-neutral-5' | '--rt-mat-neutral-60' | '--rt-mat-neutral-80' | '--rt-mat-neutral-active' | '--rt-mat-neutral-hover' | '--rt-mat-orange-10' | '--rt-mat-orange-100' | '--rt-mat-orange-20' | '--rt-mat-orange-40' | '--rt-mat-orange-5' | '--rt-mat-orange-60' | '--rt-mat-orange-70' | '--rt-mat-orange-80' | '--rt-mat-orange-active' | '--rt-mat-orange-hover' | '--rt-mat-overlay-black-32' | '--rt-mat-overlay-black-4' | '--rt-mat-overlay-blue-24' | '--rt-mat-overlay-blue-8' | '--rt-mat-radius-4' | '--rt-mat-radius-5' | '--rt-mat-red-10' | '--rt-mat-red-100' | '--rt-mat-red-20' | '--rt-mat-red-40' | '--rt-mat-red-60' | '--rt-mat-red-80' | '--rt-mat-red-active' | '--rt-mat-red-hover' | '--rt-mat-shadow-fab' | '--rt-mat-shadow-fab-hover' | '--rt-mat-shadow-level-2' | '--rt-nav-caret-size' | '--rt-nav-color-disabled' | '--rt-nav-color-focus' | '--rt-nav-header-color-bg' | '--rt-nav-header-padding' | '--rt-nav-item-color' | '--rt-nav-item-color-bg' | '--rt-nav-item-color-bg-active' | '--rt-nav-item-color-border' | '--rt-nav-item-color-caret' | '--rt-nav-item-color-hover' | '--rt-nav-item-color-pressed' | '--rt-nav-item-content-gap' | '--rt-nav-item-font-size' | '--rt-nav-item-font-weight' | '--rt-nav-item-gap' | '--rt-nav-item-height' | '--rt-nav-item-line-height' | '--rt-nav-item-padding' | '--rt-nav-marker-color' | '--rt-nav-marker-size' | '--rt-nav-panel-color-bg' | '--rt-nav-panel-color-border' | '--rt-nav-panel-column-gap' | '--rt-nav-panel-column-width' | '--rt-nav-panel-columns' | '--rt-nav-panel-group-color' | '--rt-nav-panel-group-content-gap' | '--rt-nav-panel-group-font-size' | '--rt-nav-panel-group-font-weight' | '--rt-nav-panel-group-gap' | '--rt-nav-panel-item-color' | '--rt-nav-panel-item-color-active' | '--rt-nav-panel-item-color-bg-active' | '--rt-nav-panel-item-color-bg-hover' | '--rt-nav-panel-item-content-gap' | '--rt-nav-panel-item-font-size' | '--rt-nav-panel-item-font-weight' | '--rt-nav-panel-item-gap' | '--rt-nav-panel-item-height' | '--rt-nav-panel-item-padding' | '--rt-nav-panel-padding' | '--rt-nav-panel-padding-y' | '--rt-nav-panel-shadow' | '--rt-navy-600' | '--rt-navy-900' | '--rt-neutral-0' | '--rt-neutral-100' | '--rt-neutral-200' | '--rt-neutral-300' | '--rt-neutral-400' | '--rt-neutral-50' | '--rt-neutral-500' | '--rt-neutral-600' | '--rt-neutral-700' | '--rt-neutral-800' | '--rt-neutral-900' | '--rt-neutral-950' | '--rt-opacity-disabled' | '--rt-overlay-amber-16' | '--rt-overlay-black-4' | '--rt-overlay-black-50' | '--rt-overlay-black-8' | '--rt-overlay-brand-24' | '--rt-overlay-brand-8' | '--rt-overlay-danger-16' | '--rt-overlay-menu-bg' | '--rt-overlay-menu-current-bg' | '--rt-overlay-menu-danger-color' | '--rt-overlay-menu-danger-label-color' | '--rt-overlay-menu-item-icon-size' | '--rt-overlay-menu-item-min-height' | '--rt-overlay-menu-item-padding-x' | '--rt-overlay-menu-item-padding-y' | '--rt-overlay-menu-item-weight' | '--rt-overlay-menu-min-width' | '--rt-overlay-menu-padding-y' | '--rt-overlay-menu-radius' | '--rt-overlay-menu-shadow' | '--rt-overlay-menu-sm-item-icon-size' | '--rt-overlay-menu-sm-item-min-height' | '--rt-overlay-navy-70' | '--rt-overlay-select-check-display' | '--rt-overlay-select-option-font-size' | '--rt-overlay-select-option-min-height' | '--rt-overlay-select-panel-border-width' | '--rt-overlay-select-radius' | '--rt-overlay-select-selected-bg' | '--rt-overlay-select-selected-weight' | '--rt-overlay-select-shadow' | '--rt-overlay-tooltip-radius' | '--rt-overlay-tooltip-shadow' | '--rt-overlay-white-25' | '--rt-overlay-white-4' | '--rt-overlay-white-40' | '--rt-overlay-white-50' | '--rt-overlay-white-8' | '--rt-pagination-arrow-color' | '--rt-pagination-arrow-radius' | '--rt-pagination-arrow-shadow' | '--rt-pagination-arrow-size' | '--rt-pagination-box-color-border' | '--rt-pagination-box-color-text' | '--rt-pagination-box-current-color-bg' | '--rt-pagination-box-current-color-border' | '--rt-pagination-box-current-color-text' | '--rt-pagination-box-current-font-weight' | '--rt-pagination-box-radius' | '--rt-pagination-box-size' | '--rt-pagination-field-color-bg' | '--rt-pagination-field-color-border' | '--rt-pagination-field-color-text' | '--rt-pagination-field-height' | '--rt-pagination-field-padding-x' | '--rt-pagination-field-radius' | '--rt-pagination-gap' | '--rt-pagination-justify' | '--rt-pagination-nav-gap' | '--rt-pagination-padding-x' | '--rt-pagination-padding-y' | '--rt-pagination-per-page-gap' | '--rt-pagination-per-page-label-white-space' | '--rt-pagination-range-display' | '--rt-profile-avatar-font-size' | '--rt-profile-avatar-size' | '--rt-profile-item-content-gap' | '--rt-profile-item-font-size' | '--rt-profile-item-font-weight' | '--rt-profile-item-padding-y' | '--rt-profile-item-radius' | '--rt-profile-menu-min-width' | '--rt-profile-menu-padding' | '--rt-profile-menu-shadow' | '--rt-profile-row-inset' | '--rt-profile-theme-icon-padding' | '--rt-radius-2xl' | '--rt-radius-control' | '--rt-radius-full' | '--rt-radius-lg' | '--rt-radius-md' | '--rt-radius-ms' | '--rt-radius-none' | '--rt-radius-sm' | '--rt-radius-xl' | '--rt-radius-xs' | '--rt-shadow-card' | '--rt-shadow-card-soft' | '--rt-shadow-dialog' | '--rt-shadow-focus-ring' | '--rt-shadow-focus-ring-danger' | '--rt-shadow-lg' | '--rt-shadow-md' | '--rt-shadow-nav-panel' | '--rt-shadow-none' | '--rt-shadow-profile-menu' | '--rt-shadow-sm' | '--rt-shadow-status-dot' | '--rt-shadow-step-indicator' | '--rt-shadow-xl' | '--rt-size-1' | '--rt-size-10' | '--rt-size-100' | '--rt-size-12' | '--rt-size-16' | '--rt-size-2' | '--rt-size-20' | '--rt-size-24' | '--rt-size-3' | '--rt-size-30' | '--rt-size-4' | '--rt-size-40' | '--rt-size-5' | '--rt-size-6' | '--rt-size-60' | '--rt-size-64' | '--rt-size-8' | '--rt-slate-300' | '--rt-space-0' | '--rt-space-0-5' | '--rt-space-1' | '--rt-space-10' | '--rt-space-12' | '--rt-space-16' | '--rt-space-2' | '--rt-space-20' | '--rt-space-24' | '--rt-space-2xl' | '--rt-space-2xs' | '--rt-space-3xl' | '--rt-space-4' | '--rt-space-5' | '--rt-space-6' | '--rt-space-8' | '--rt-space-lg' | '--rt-space-md' | '--rt-space-sm' | '--rt-space-xl' | '--rt-space-xs' | '--rt-success-100' | '--rt-success-400' | '--rt-success-50' | '--rt-success-500' | '--rt-success-600' | '--rt-success-700' | '--rt-text-2xl' | '--rt-text-2xs' | '--rt-text-3xl' | '--rt-text-3xs' | '--rt-text-4xl' | '--rt-text-base' | '--rt-text-lg' | '--rt-text-md' | '--rt-text-sm' | '--rt-text-xl' | '--rt-text-xs' | '--rt-textarea-line-height' | '--rt-textarea-min-height' | '--rt-textarea-min-height-lg' | '--rt-textarea-min-height-md' | '--rt-textarea-min-height-sm' | '--rt-textarea-padding-y' | '--rt-toggle-color-border' | '--rt-toggle-color-icon' | '--rt-toggle-color-thumb' | '--rt-toggle-color-track' | '--rt-toggle-color-track-on' | '--rt-toggle-shadow-border' | '--rt-toggle-shadow-thumb' | '--rt-warning-50' | '--rt-warning-500' | '--rt-warning-600' | '--rt-warning-700' | '--rt-yellow-400' | '--rt-z-base' | '--rt-z-dropdown' | '--rt-z-fixed' | '--rt-z-modal' | '--rt-z-modal-backdrop' | '--rt-z-popover' | '--rt-z-sticky' | '--rt-z-tooltip';
1093
1103
  /** The name of a consumer's handle — a property the kit deliberately does not declare. */
1094
- type TRtConsumerHandleName = '--rt-action-bar-action-bg-hover' | '--rt-action-bar-action-color-danger' | '--rt-action-bar-action-focus-shadow' | '--rt-action-bar-action-font-size' | '--rt-action-bar-action-height' | '--rt-action-bar-action-padding-block' | '--rt-action-bar-action-padding-inline' | '--rt-action-bar-action-radius' | '--rt-action-bar-action-weight' | '--rt-action-bar-bg' | '--rt-action-bar-close-icon-size' | '--rt-action-bar-close-size' | '--rt-action-bar-color' | '--rt-action-bar-counter-font-size' | '--rt-action-bar-counter-weight' | '--rt-action-bar-font-size' | '--rt-action-bar-gap' | '--rt-action-bar-holder-bottom' | '--rt-action-bar-holder-enter-duration' | '--rt-action-bar-holder-inline' | '--rt-action-bar-holder-leave-duration' | '--rt-action-bar-icon-gap' | '--rt-action-bar-icon-size' | '--rt-action-bar-menu-bg' | '--rt-action-bar-menu-color' | '--rt-action-bar-menu-gap' | '--rt-action-bar-menu-item-font-size' | '--rt-action-bar-menu-padding' | '--rt-action-bar-menu-radius' | '--rt-action-bar-menu-shadow' | '--rt-action-bar-padding' | '--rt-action-bar-radius' | '--rt-action-bar-shadow' | '--rt-aside-bg' | '--rt-aside-content-inset' | '--rt-aside-error-margin-block' | '--rt-aside-footer-gap' | '--rt-aside-footer-inset' | '--rt-aside-footer-justify' | '--rt-aside-footer-margin' | '--rt-aside-header-back-icon-size' | '--rt-aside-header-back-size' | '--rt-aside-header-gap' | '--rt-aside-header-inset' | '--rt-aside-header-min-height' | '--rt-aside-header-subtitle-size' | '--rt-aside-header-title-leading' | '--rt-aside-header-title-size' | '--rt-aside-header-title-weight' | '--rt-aside-width' | '--rt-data-table-scrollbar-color' | '--rt-data-table-scrollbar-horizontal-height' | '--rt-data-table-scrollbar-vertical-width' | '--rt-data-table-scrollbar-width' | '--rt-dialog-bg' | '--rt-dialog-border' | '--rt-dialog-content-max-height' | '--rt-dialog-content-padding' | '--rt-dialog-footer-border' | '--rt-dialog-footer-padding' | '--rt-dialog-header-border' | '--rt-dialog-header-padding' | '--rt-dialog-title-font-size' | '--rt-dialog-title-transform' | '--rt-dialog-title-weight' | '--rt-dialog-width' | '--rt-dynamic-selector-list-actions-gap' | '--rt-dynamic-selector-list-actions-offset' | '--rt-dynamic-selector-list-actions-padding-end' | '--rt-dynamic-selector-list-add-color' | '--rt-dynamic-selector-list-controls-divider-color' | '--rt-dynamic-selector-list-controls-divider-width' | '--rt-dynamic-selector-list-controls-gap' | '--rt-dynamic-selector-list-handle-padding-end' | '--rt-dynamic-selector-list-handle-padding-start' | '--rt-dynamic-selector-list-row-padding-end' | '--rt-dynamic-selector-list-title-gap' | '--rt-dynamic-selector-popup-bg' | '--rt-dynamic-selector-popup-border-width' | '--rt-dynamic-selector-popup-button-font-size' | '--rt-dynamic-selector-popup-button-height' | '--rt-dynamic-selector-popup-empty-gap' | '--rt-dynamic-selector-popup-empty-icon-size' | '--rt-dynamic-selector-popup-empty-icon-wrap-bg' | '--rt-dynamic-selector-popup-empty-text-color' | '--rt-dynamic-selector-popup-empty-text-size' | '--rt-dynamic-selector-popup-empty-text-weight' | '--rt-dynamic-selector-popup-foot-border-width' | '--rt-dynamic-selector-popup-foot-padding' | '--rt-dynamic-selector-popup-highlight-bg' | '--rt-dynamic-selector-popup-highlight-color' | '--rt-dynamic-selector-popup-highlight-radius' | '--rt-dynamic-selector-popup-highlight-weight' | '--rt-dynamic-selector-popup-max-height' | '--rt-dynamic-selector-popup-min-height' | '--rt-dynamic-selector-popup-nav-color' | '--rt-dynamic-selector-popup-option-line-height' | '--rt-dynamic-selector-popup-option-min-height' | '--rt-dynamic-selector-popup-padding' | '--rt-dynamic-selector-popup-radius' | '--rt-dynamic-selector-popup-shadow' | '--rt-dynamic-selector-popup-width' | '--rt-header-content-max-width' | '--rt-header-height' | '--rt-icon-button-bg' | '--rt-icon-button-bg-hover' | '--rt-icon-button-size' | '--rt-icon-color-danger' | '--rt-icon-color-disabled' | '--rt-icon-color-info' | '--rt-icon-color-inverse' | '--rt-icon-color-muted' | '--rt-icon-color-primary' | '--rt-icon-color-success' | '--rt-icon-color-warning' | '--rt-icon-glyph-font' | '--rt-icon-glyph-grade' | '--rt-icon-glyph-opsz' | '--rt-icon-glyph-weight' | '--rt-icon-step-2xl' | '--rt-icon-step-3xl' | '--rt-icon-step-4xl' | '--rt-icon-step-lg' | '--rt-icon-step-md' | '--rt-icon-step-sm' | '--rt-icon-step-xl' | '--rt-icon-step-xs' | '--rt-logo-tagline' | '--rt-logo-tagline-dark' | '--rt-logo-wordmark' | '--rt-logo-wordmark-dark' | '--rt-page-header-bg' | '--rt-table-actions-bg' | '--rt-tag-color-bg' | '--rt-tag-color-border' | '--rt-tag-color-text' | '--rt-tag-letter-spacing' | '--rt-tag-padding-block' | '--rt-tag-padding-inline' | '--rt-toast-action-color' | '--rt-toast-bg' | '--rt-toast-border-color' | '--rt-toast-close-color' | '--rt-toast-color' | '--rt-toast-filled-danger-bg' | '--rt-toast-filled-danger-border-color' | '--rt-toast-filled-danger-color' | '--rt-toast-filled-info-bg' | '--rt-toast-filled-info-border-color' | '--rt-toast-filled-info-color' | '--rt-toast-filled-success-bg' | '--rt-toast-filled-success-border-color' | '--rt-toast-filled-success-color' | '--rt-toast-filled-warning-bg' | '--rt-toast-filled-warning-border-color' | '--rt-toast-filled-warning-color' | '--rt-toast-icon-color' | '--rt-toast-progress-color' | '--rt-toast-progress-height' | '--rt-workspace-aside-size' | '--rt-workspace-list-size';
1104
+ type TRtConsumerHandleName = '--rt-action-bar-action-bg-hover' | '--rt-action-bar-action-color-danger' | '--rt-action-bar-action-focus-shadow' | '--rt-action-bar-action-font-size' | '--rt-action-bar-action-height' | '--rt-action-bar-action-padding-block' | '--rt-action-bar-action-padding-inline' | '--rt-action-bar-action-radius' | '--rt-action-bar-action-weight' | '--rt-action-bar-bg' | '--rt-action-bar-close-icon-size' | '--rt-action-bar-close-size' | '--rt-action-bar-color' | '--rt-action-bar-counter-font-size' | '--rt-action-bar-counter-weight' | '--rt-action-bar-font-size' | '--rt-action-bar-gap' | '--rt-action-bar-holder-bottom' | '--rt-action-bar-holder-enter-duration' | '--rt-action-bar-holder-inline' | '--rt-action-bar-holder-leave-duration' | '--rt-action-bar-icon-gap' | '--rt-action-bar-icon-size' | '--rt-action-bar-menu-bg' | '--rt-action-bar-menu-color' | '--rt-action-bar-menu-gap' | '--rt-action-bar-menu-item-font-size' | '--rt-action-bar-menu-padding' | '--rt-action-bar-menu-radius' | '--rt-action-bar-menu-shadow' | '--rt-action-bar-padding' | '--rt-action-bar-radius' | '--rt-action-bar-shadow' | '--rt-aside-bg' | '--rt-aside-content-inset' | '--rt-aside-error-margin-block' | '--rt-aside-footer-gap' | '--rt-aside-footer-inset' | '--rt-aside-footer-justify' | '--rt-aside-footer-margin' | '--rt-aside-header-back-icon-size' | '--rt-aside-header-back-size' | '--rt-aside-header-gap' | '--rt-aside-header-inset' | '--rt-aside-header-min-height' | '--rt-aside-header-subtitle-size' | '--rt-aside-header-title-leading' | '--rt-aside-header-title-size' | '--rt-aside-header-title-weight' | '--rt-aside-width' | '--rt-data-table-scrollbar-color' | '--rt-data-table-scrollbar-horizontal-height' | '--rt-data-table-scrollbar-vertical-width' | '--rt-data-table-scrollbar-width' | '--rt-dialog-bg' | '--rt-dialog-border' | '--rt-dialog-content-max-height' | '--rt-dialog-content-padding' | '--rt-dialog-footer-border' | '--rt-dialog-footer-padding' | '--rt-dialog-header-border' | '--rt-dialog-header-padding' | '--rt-dialog-title-font-size' | '--rt-dialog-title-transform' | '--rt-dialog-title-weight' | '--rt-dialog-width' | '--rt-dynamic-selector-list-actions-gap' | '--rt-dynamic-selector-list-actions-offset' | '--rt-dynamic-selector-list-actions-padding-end' | '--rt-dynamic-selector-list-add-color' | '--rt-dynamic-selector-list-controls-divider-color' | '--rt-dynamic-selector-list-controls-divider-width' | '--rt-dynamic-selector-list-controls-gap' | '--rt-dynamic-selector-list-handle-padding-end' | '--rt-dynamic-selector-list-handle-padding-start' | '--rt-dynamic-selector-list-row-padding-end' | '--rt-dynamic-selector-list-title-gap' | '--rt-dynamic-selector-popup-bg' | '--rt-dynamic-selector-popup-border-width' | '--rt-dynamic-selector-popup-button-font-size' | '--rt-dynamic-selector-popup-button-height' | '--rt-dynamic-selector-popup-empty-gap' | '--rt-dynamic-selector-popup-empty-icon-size' | '--rt-dynamic-selector-popup-empty-icon-wrap-bg' | '--rt-dynamic-selector-popup-empty-text-color' | '--rt-dynamic-selector-popup-empty-text-size' | '--rt-dynamic-selector-popup-empty-text-weight' | '--rt-dynamic-selector-popup-foot-border-width' | '--rt-dynamic-selector-popup-foot-padding' | '--rt-dynamic-selector-popup-highlight-bg' | '--rt-dynamic-selector-popup-highlight-color' | '--rt-dynamic-selector-popup-highlight-radius' | '--rt-dynamic-selector-popup-highlight-weight' | '--rt-dynamic-selector-popup-max-height' | '--rt-dynamic-selector-popup-min-height' | '--rt-dynamic-selector-popup-nav-color' | '--rt-dynamic-selector-popup-option-line-height' | '--rt-dynamic-selector-popup-option-min-height' | '--rt-dynamic-selector-popup-padding' | '--rt-dynamic-selector-popup-radius' | '--rt-dynamic-selector-popup-shadow' | '--rt-dynamic-selector-popup-width' | '--rt-header-content-max-width' | '--rt-header-height' | '--rt-icon-button-bg' | '--rt-icon-button-bg-hover' | '--rt-icon-button-size' | '--rt-icon-color-danger' | '--rt-icon-color-disabled' | '--rt-icon-color-info' | '--rt-icon-color-inverse' | '--rt-icon-color-muted' | '--rt-icon-color-primary' | '--rt-icon-color-success' | '--rt-icon-color-warning' | '--rt-icon-glyph-font' | '--rt-icon-glyph-grade' | '--rt-icon-glyph-opsz' | '--rt-icon-glyph-weight' | '--rt-icon-step-2xl' | '--rt-icon-step-3xl' | '--rt-icon-step-4xl' | '--rt-icon-step-lg' | '--rt-icon-step-md' | '--rt-icon-step-sm' | '--rt-icon-step-xl' | '--rt-icon-step-xs' | '--rt-logo-tagline' | '--rt-logo-tagline-dark' | '--rt-logo-wordmark' | '--rt-logo-wordmark-dark' | '--rt-page-header-bg' | '--rt-side-menu-sub-item-letter-spacing' | '--rt-table-actions-bg' | '--rt-tag-color-bg' | '--rt-tag-color-border' | '--rt-tag-color-text' | '--rt-tag-letter-spacing' | '--rt-tag-padding-block' | '--rt-tag-padding-inline' | '--rt-toast-action-color' | '--rt-toast-bg' | '--rt-toast-border-color' | '--rt-toast-close-color' | '--rt-toast-color' | '--rt-toast-filled-danger-bg' | '--rt-toast-filled-danger-border-color' | '--rt-toast-filled-danger-color' | '--rt-toast-filled-info-bg' | '--rt-toast-filled-info-border-color' | '--rt-toast-filled-info-color' | '--rt-toast-filled-success-bg' | '--rt-toast-filled-success-border-color' | '--rt-toast-filled-success-color' | '--rt-toast-filled-warning-bg' | '--rt-toast-filled-warning-border-color' | '--rt-toast-filled-warning-color' | '--rt-toast-icon-color' | '--rt-toast-progress-color' | '--rt-toast-progress-height' | '--rt-workspace-aside-size' | '--rt-workspace-list-size';
1095
1105
  /** All the styling properties declared by the kit. */
1096
1106
  declare const RT_DESIGN_TOKEN_NAMES: readonly TRtDesignTokenName[];
1097
1107
  /** All the consumer's handles: the value comes from the application, until then the fallback works. */
@@ -1,7 +1,34 @@
1
1
  import * as i0 from '@angular/core';
2
- import { TemplateRef, Signal, ElementRef, WritableSignal, InputSignal, InputSignalWithTransform, OutputEmitterRef, InjectionToken, EnvironmentProviders } from '@angular/core';
2
+ import { InputSignalWithTransform, InputSignal, TemplateRef, Signal, ElementRef, WritableSignal, OutputEmitterRef, InjectionToken, EnvironmentProviders } from '@angular/core';
3
3
  import { FormControl } from '@angular/forms';
4
- import { IRtIcon } from '@rt-tools/ui-kit-v2/core';
4
+ import { IRtInput, IRtIcon } from '@rt-tools/ui-kit-v2/core';
5
+
6
+ /**
7
+ * Входы вида бокового меню: подписи и заливка значков, поле поиска, подсказка прокрутки панели. Ни
8
+ * один не меняет поведения — по ним приложение даёт меню вид первого кита, а без них меню рисуется
9
+ * как раньше. Вынесены из класса меню, чтобы тот оставался в пределе длины файла.
10
+ */
11
+ declare abstract class RtSideMenuLookBase {
12
+ /** Подсказки строк подменю — у подписей и у кнопок строк. Доступные имена остаются. */
13
+ readonly subMenuTooltipsShown: InputSignalWithTransform<boolean, unknown>;
14
+ /**
15
+ * Подписи под значками полосы. Выключено — имя пункта уходит в подсказку справа от значка, а
16
+ * подсказка подчиняется `subMenuTooltipsShown`; доступное имя пункт держит всегда.
17
+ */
18
+ readonly railTitlesShown: InputSignalWithTransform<boolean, unknown>;
19
+ /** Залитые значки полосы — залитый рисунок материального набора и заливка шрифта лигатуры. */
20
+ readonly railIconFill: InputSignalWithTransform<boolean, unknown>;
21
+ /** Залитые значки строк и папок подменю — так же, как `railIconFill` у полосы. */
22
+ readonly subItemIconFill: InputSignalWithTransform<boolean, unknown>;
23
+ /** Подсказка прокрутки внизу панели подменю, как у полосы: длинный список не обрывается молча. */
24
+ readonly panelScrollHintShown: InputSignalWithTransform<boolean, unknown>;
25
+ /** Размер поля поиска подменю — ступень `rt-input`. */
26
+ readonly searchSize: InputSignal<IRtInput.Size>;
27
+ /** Вид поля поиска подменю — вид `rt-input`. */
28
+ readonly searchAppearance: InputSignal<IRtInput.Appearance>;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtSideMenuLookBase, never>;
30
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtSideMenuLookBase, never, never, { "subMenuTooltipsShown": { "alias": "subMenuTooltipsShown"; "required": false; "isSignal": true; }; "railTitlesShown": { "alias": "railTitlesShown"; "required": false; "isSignal": true; }; "railIconFill": { "alias": "railIconFill"; "required": false; "isSignal": true; }; "subItemIconFill": { "alias": "subItemIconFill"; "required": false; "isSignal": true; }; "panelScrollHintShown": { "alias": "panelScrollHintShown"; "required": false; "isSignal": true; }; "searchSize": { "alias": "searchSize"; "required": false; "isSignal": true; }; "searchAppearance": { "alias": "searchAppearance"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
31
+ }
5
32
 
6
33
  declare namespace IRtSideMenu {
7
34
  type ItemData = string | number | object;
@@ -124,6 +151,8 @@ interface IRtSideMenuHost {
124
151
  readonly ownIconTpl: Signal<TemplateRef<IRtSideMenuIconContext> | undefined>;
125
152
  /** Подсказки строк подменю: выключено — их нет ни у подписей, ни у кнопок строк. */
126
153
  readonly subMenuTooltipsShown: Signal<boolean>;
154
+ /** Залитые значки строк и папок подменю. */
155
+ readonly subItemIconFill: Signal<boolean>;
127
156
  /** Раскрыть или свернуть папку нажатием её заголовка. */
128
157
  toggleFolder(item: IRtSideMenu.Item): void;
129
158
  /** Уход указателя с панели: подменю, открытое наведением, закрывается. */
@@ -136,7 +165,7 @@ interface IRtSideMenuHost {
136
165
  * Боковая навигация: полоса пунктов и подменю раздела рядом. Перенос бокового меню первого кита на
137
166
  * части второго; `rt-menu` — другое семейство, выпадающее меню действий.
138
167
  */
139
- declare class RtSideMenuComponent implements IRtSideMenuHost {
168
+ declare class RtSideMenuComponent extends RtSideMenuLookBase implements IRtSideMenuHost {
140
169
  #private;
141
170
  protected readonly searchControl: FormControl<string | null>;
142
171
  protected readonly panelRef: Signal<ElementRef<HTMLElement> | undefined>;
@@ -193,8 +222,11 @@ declare class RtSideMenuComponent implements IRtSideMenuHost {
193
222
  readonly isFavoritesSearchShown: InputSignalWithTransform<boolean, unknown>;
194
223
  /** Кнопка закрепления в шапке подменю; выключено — подменю только всплывает, если режим не задан входом. */
195
224
  readonly pinShown: InputSignalWithTransform<boolean, unknown>;
196
- /** Подсказки строк подменю — у подписей и у кнопок строк. Доступные имена остаются. */
197
- readonly subMenuTooltipsShown: InputSignalWithTransform<boolean, unknown>;
225
+ /**
226
+ * Задержка закрытия подменю, открытого наведением, в миллисекундах: уход указателя закрывает его
227
+ * не сразу, а возврат на панель держит открытым. Ноль — закрытие сразу, как раньше.
228
+ */
229
+ readonly subMenuCloseDelay: InputSignalWithTransform<number, unknown>;
198
230
  readonly subMenuModeChange: OutputEmitterRef<IRtSideMenu.SubMenuMode>;
199
231
  readonly subMenuWidthChange: OutputEmitterRef<number>;
200
232
  /** Начало и конец тяги: по ним потребитель накрывает чужие кадры и снимает накрытие. */
@@ -222,8 +254,13 @@ declare class RtSideMenuComponent implements IRtSideMenuHost {
222
254
  event: MouseEvent;
223
255
  }): void;
224
256
  onBackToMainMenu(): void;
225
- /** Наведение на пункт полосы открывает его подменю; уход указателя с панели — без пункта. */
257
+ /**
258
+ * Наведение на пункт полосы открывает его подменю сразу; уход указателя с панели — без пункта —
259
+ * и пункт без подменю закрывают его через задержку.
260
+ */
226
261
  toggleSubMenu(item?: IRtSideMenu.Item): void;
262
+ /** Указатель вернулся на панель: отложенное закрытие снимается. */
263
+ cancelSubMenuClose(): void;
227
264
  closeSubMenu(): void;
228
265
  holdSubMenu(held: boolean): void;
229
266
  toggleFolder(item: IRtSideMenu.Item): void;
@@ -237,7 +274,7 @@ declare class RtSideMenuComponent implements IRtSideMenuHost {
237
274
  onResizeKeydown(event: KeyboardEvent): void;
238
275
  closeMobileMenu(): void;
239
276
  static ɵfac: i0.ɵɵFactoryDeclaration<RtSideMenuComponent, never>;
240
- static ɵcmp: i0.ɵɵComponentDeclaration<RtSideMenuComponent, "rt-side-menu", never, { "activeMenuIds": { "alias": "activeMenuIds"; "required": true; "isSignal": true; }; "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; "subMenuMode": { "alias": "subMenuMode"; "required": false; "isSignal": true; }; "subMenuWidth": { "alias": "subMenuWidth"; "required": false; "isSignal": true; }; "menuId": { "alias": "menuId"; "required": false; "isSignal": true; }; "favoritesCount": { "alias": "favoritesCount"; "required": false; "isSignal": true; }; "favoriteActionsReserve": { "alias": "favoriteActionsReserve"; "required": false; "isSignal": true; }; "isFavoritesSearchShown": { "alias": "isFavoritesSearchShown"; "required": false; "isSignal": true; }; "pinShown": { "alias": "pinShown"; "required": false; "isSignal": true; }; "subMenuTooltipsShown": { "alias": "subMenuTooltipsShown"; "required": false; "isSignal": true; }; }, { "subMenuModeChange": "subMenuModeChange"; "subMenuWidthChange": "subMenuWidthChange"; "subMenuResizeStart": "subMenuResizeStart"; "subMenuResizeEnd": "subMenuResizeEnd"; "closeMobileMenuAction": "closeMobileMenuAction"; "clickSubMenuAction": "clickSubMenuAction"; "clickSubMenuAdditionalAction": "clickSubMenuAdditionalAction"; }, ["headerTpl", "footerTpl", "ownIconTpl"], never, true, never>;
277
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtSideMenuComponent, "rt-side-menu", never, { "activeMenuIds": { "alias": "activeMenuIds"; "required": true; "isSignal": true; }; "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; "subMenuMode": { "alias": "subMenuMode"; "required": false; "isSignal": true; }; "subMenuWidth": { "alias": "subMenuWidth"; "required": false; "isSignal": true; }; "menuId": { "alias": "menuId"; "required": false; "isSignal": true; }; "favoritesCount": { "alias": "favoritesCount"; "required": false; "isSignal": true; }; "favoriteActionsReserve": { "alias": "favoriteActionsReserve"; "required": false; "isSignal": true; }; "isFavoritesSearchShown": { "alias": "isFavoritesSearchShown"; "required": false; "isSignal": true; }; "pinShown": { "alias": "pinShown"; "required": false; "isSignal": true; }; "subMenuCloseDelay": { "alias": "subMenuCloseDelay"; "required": false; "isSignal": true; }; }, { "subMenuModeChange": "subMenuModeChange"; "subMenuWidthChange": "subMenuWidthChange"; "subMenuResizeStart": "subMenuResizeStart"; "subMenuResizeEnd": "subMenuResizeEnd"; "closeMobileMenuAction": "closeMobileMenuAction"; "clickSubMenuAction": "clickSubMenuAction"; "clickSubMenuAdditionalAction": "clickSubMenuAdditionalAction"; }, ["headerTpl", "footerTpl", "ownIconTpl"], never, true, never>;
241
278
  }
242
279
 
243
280
  /**
@@ -323,6 +360,11 @@ declare function sideMenuWidthByKey(key: string, width: number): number | null;
323
360
  * активного адреса. Выбор впереди активности: иначе до соседнего раздела не добраться.
324
361
  */
325
362
  declare function pinnedSideMenuItems(picked: IRtSideMenu.Item[] | null | undefined, activeIds: ReadonlyArray<string | number>, items: ReadonlyArray<IRtSideMenu.Item>): IRtSideMenu.Item[];
363
+ /**
364
+ * Нажатие, которое браузер открывает сам по адресу ссылки: не левой кнопкой или с клавишей —
365
+ * новая вкладка, окно, загрузка. Строка подменю такое нажатие не перехватывает.
366
+ */
367
+ declare function sideMenuPressOpensInBrowser(event: MouseEvent): boolean;
326
368
 
327
369
  /**
328
370
  * Значок пункта по его `icon`: имя кита как есть, имя Material первого кита — его парой из перечня
@@ -337,6 +379,11 @@ declare function sideMenuIconName(icon: string | undefined): IRtIcon.Name | null
337
379
  * каждое имя — один раз.
338
380
  */
339
381
  declare function unpairedSideMenuIcons(items: ReadonlyArray<IRtSideMenu.Item>, hasOwnIcon: boolean): string[];
382
+ /**
383
+ * Предупреждение разработчику приложения об именах из `unpairedSideMenuIcons`: имя без значка кита и
384
+ * без пары рисует пункт без значка, и пропуск без предупреждения не заметен.
385
+ */
386
+ declare function warnUnpairedSideMenuIcons(menuId: string, items: ReadonlyArray<IRtSideMenu.Item>, hasOwnIcon: boolean): void;
340
387
 
341
388
  /** Номер меню, которому приложение своего не задало. */
342
389
  declare const RT_SIDE_MENU_DEFAULT_ID: string;
@@ -464,6 +511,11 @@ declare class RtSideMenuSubItemComponent {
464
511
  data: IRtSideMenu.ItemData | undefined;
465
512
  event: MouseEvent;
466
513
  }>;
514
+ /**
515
+ * Нажатие строки уходит потребителю раньше перехода. Потребитель, взявший переход на себя,
516
+ * отменяет умолчание события — тогда строка не переходит. Нажатие с клавишей или не левой
517
+ * кнопкой остаётся браузеру: он открывает адрес строки сам.
518
+ */
467
519
  onClickSubMenu(item: IRtSideMenu.Item, event: MouseEvent): void;
468
520
  /** Кнопка потребителя в строке: ни перехода по ссылке строки, ни закрытия подменю. */
469
521
  onClickSubMenuAdditional(item: IRtSideMenu.Item, event: MouseEvent): void;
@@ -479,5 +531,5 @@ declare class RtSideMenuSubItemComponent {
479
531
  static ɵcmp: i0.ɵɵComponentDeclaration<RtSideMenuSubItemComponent, "rt-side-menu-sub-item", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "inFavorites": { "alias": "inFavorites"; "required": false; "isSignal": true; }; }, { "clickSubMenuAction": "clickSubMenuAction"; "clickSubMenuAdditionalAction": "clickSubMenuAdditionalAction"; }, never, ["[rtSideMenuSubItemAction]"], true, never>;
480
532
  }
481
533
 
482
- export { IRtSideMenu, RT_SIDE_MENU_DEFAULT_ID, RT_SIDE_MENU_SETTINGS_CONFIG, RT_SIDE_MENU_WIDTH_MAX, RT_SIDE_MENU_WIDTH_MIN, RT_SIDE_MENU_WIDTH_STEP, RtSideMenuComponent, RtSideMenuFooterDirective, RtSideMenuHeaderDirective, RtSideMenuIconDirective, RtSideMenuSettingsService, RtSideMenuSubItemComponent, clampSideMenuWidth, drawnSideMenuWidth, filterSideMenuItems, normalizeSideMenuId, normalizeSideMenuSettings, omitSideMenuSettings, parseSideMenuSettingsRecord, patchSideMenuSettings, pinnedSideMenuItems, provideRtSideMenuSettings, readSideMenuSettings, reportedSideMenuWidth, sideMenuIconName, sideMenuIdsToExpand, sideMenuWidthByKey, splitSideMenuTitle, startSideMenuWidthDrag, stepSideMenuHighlight, unpairedSideMenuIcons, walkSideMenuItems };
534
+ export { IRtSideMenu, RT_SIDE_MENU_DEFAULT_ID, RT_SIDE_MENU_SETTINGS_CONFIG, RT_SIDE_MENU_WIDTH_MAX, RT_SIDE_MENU_WIDTH_MIN, RT_SIDE_MENU_WIDTH_STEP, RtSideMenuComponent, RtSideMenuFooterDirective, RtSideMenuHeaderDirective, RtSideMenuIconDirective, RtSideMenuSettingsService, RtSideMenuSubItemComponent, clampSideMenuWidth, drawnSideMenuWidth, filterSideMenuItems, normalizeSideMenuId, normalizeSideMenuSettings, omitSideMenuSettings, parseSideMenuSettingsRecord, patchSideMenuSettings, pinnedSideMenuItems, provideRtSideMenuSettings, readSideMenuSettings, reportedSideMenuWidth, sideMenuIconName, sideMenuIdsToExpand, sideMenuPressOpensInBrowser, sideMenuWidthByKey, splitSideMenuTitle, startSideMenuWidthDrag, stepSideMenuHighlight, unpairedSideMenuIcons, walkSideMenuItems, warnUnpairedSideMenuIcons };
483
535
  export type { IRtSideMenuFavoritesIcons, IRtSideMenuIconContext, IRtSideMenuSettingsConfig, IRtSubMenuWidthDragHooks, TRtPointerListen, TRtSideMenuSettingsRecord };
@@ -27,6 +27,7 @@ declare namespace IRtToaster {
27
27
  readonly duration?: number | null;
28
28
  readonly progress?: boolean;
29
29
  readonly icon?: IRtIcon.Name | null;
30
+ readonly onDismiss?: (reason: INotification.DismissReason) => void;
30
31
  /** Тост вытеснен новым в режиме `replace` и уходит своей анимацией. */
31
32
  readonly replaced?: boolean;
32
33
  }
Binary file