@rt-tools/ui-kit-v2 0.41.0 → 0.43.0

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 (56) hide show
  1. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +4 -4
  2. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -1
  3. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +22 -0
  4. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
  5. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +155 -100
  6. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -1
  7. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +2 -2
  8. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -1
  9. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +1778 -18
  10. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
  11. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +22 -5
  12. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  13. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +34 -11
  14. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -1
  15. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +725 -47
  16. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
  17. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +6 -0
  18. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -1
  19. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +217 -6
  20. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -1
  21. package/package.json +1 -1
  22. package/src/lib/components/calendar/CONTEXT.md +4 -2
  23. package/src/lib/components/calendar/rt-calendar.component.scss +29 -2
  24. package/src/lib/components/date-picker/CONTEXT.md +5 -0
  25. package/src/lib/components/date-picker/panel/CONTEXT.md +42 -0
  26. package/src/lib/components/date-picker/panel/rt-date-panel.component.scss +55 -2
  27. package/src/lib/components/page-header/CONTEXT.md +35 -1
  28. package/src/lib/components/page-header/bar/rt-page-bar.component.scss +161 -0
  29. package/src/lib/components/page-header/rail/rt-page-actions.component.scss +115 -0
  30. package/src/lib/components/page-header/rail/rt-page-phone-menu.component.scss +129 -0
  31. package/src/lib/components/page-header/rail/rt-page-rail.component.scss +281 -0
  32. package/src/lib/components/page-header/rail/rt-page-user.component.scss +76 -0
  33. package/src/lib/components/page-header/rt-page-header.component.scss +5 -0
  34. package/src/lib/components/page-header/stories/component/test-page-header-vertical.component.scss +72 -0
  35. package/src/lib/components/page-header/stories/component/test-page-table.component.scss +81 -0
  36. package/src/lib/components/page-header/user/rt-page-header-user.component.scss +6 -0
  37. package/src/lib/components/stepper/CONTEXT.md +34 -2
  38. package/src/lib/components/stepper/rt-stepper.component.scss +62 -43
  39. package/src/lib/components/tabs/CONTEXT.md +30 -1
  40. package/src/lib/components/tabs/rt-tabs-arrows.scss +140 -0
  41. package/src/lib/components/tabs/rt-tabs-more-menu.scss +126 -0
  42. package/src/lib/components/tabs/rt-tabs-more.component.scss +29 -0
  43. package/src/lib/components/tabs/rt-tabs.component.scss +18 -61
  44. package/src/lib/components/workspace/CONTEXT.md +11 -1
  45. package/src/lib/components/workspace/rt-workspace.component.scss +51 -3
  46. package/src/rich-editor/lib/components/chat/CONTEXT.md +12 -2
  47. package/src/rich-editor/lib/components/chat/rt-chat-messenger.scss +9 -3
  48. package/src/rich-editor/lib/components/chat/rt-chat-translation.scss +92 -0
  49. package/types/rt-tools-ui-kit-v2-calendar.d.ts +13 -1
  50. package/types/rt-tools-ui-kit-v2-core.d.ts +9 -1
  51. package/types/rt-tools-ui-kit-v2-date-picker.d.ts +157 -5
  52. package/types/rt-tools-ui-kit-v2-page-header.d.ts +202 -2
  53. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +25 -0
  54. package/types/rt-tools-ui-kit-v2-stepper.d.ts +20 -6
  55. package/types/rt-tools-ui-kit-v2-tabs.d.ts +120 -1
  56. package/types/rt-tools-ui-kit-v2-workspace.d.ts +33 -1
@@ -0,0 +1,115 @@
1
+ @layer rt-kit.components {
2
+ /* Ряд вкладок и шапка телефона: кнопки 32, точка в потоке за иконкой. */
3
+ .rt-page-actions {
4
+ --rt-page-actions-plate-radius: var(--rt-radius-md);
5
+ --rt-page-actions-plate-border-width: var(--rt-border-width-thin);
6
+ --rt-page-actions-marker-radius: var(--rt-radius-full);
7
+
8
+ display: flex;
9
+ flex: none;
10
+ align-items: center;
11
+ gap: var(--rt-space-2);
12
+ padding-inline: var(--rt-space-2);
13
+
14
+ &__item {
15
+ display: inline-flex;
16
+ height: 32px;
17
+ flex: none;
18
+ align-items: center;
19
+ padding: 0 var(--rt-space-2);
20
+ border: 0;
21
+ background: transparent;
22
+ color: var(--rt-nav-item-color);
23
+ cursor: pointer;
24
+
25
+ &:hover {
26
+ color: var(--rt-nav-item-color-hover);
27
+ }
28
+
29
+ &:focus-visible {
30
+ outline: 1px dashed var(--rt-nav-color-focus);
31
+ outline-offset: -1px;
32
+ }
33
+
34
+ &--disabled {
35
+ color: var(--rt-nav-color-disabled);
36
+ cursor: default;
37
+ }
38
+ }
39
+
40
+ &__plate {
41
+ display: inline-flex;
42
+ align-items: center;
43
+ gap: var(--rt-space-2);
44
+ }
45
+
46
+ &__marker {
47
+ width: var(--rt-nav-marker-size);
48
+ height: var(--rt-nav-marker-size);
49
+ flex: none;
50
+ border-radius: var(--rt-page-actions-marker-radius);
51
+ background-color: var(--rt-nav-marker-color);
52
+ }
53
+
54
+ /* Подвал рейки на широком экране: столбец ячеек 50, те же плашки 36, что у разделов.
55
+ Ряд вкладок: кнопки стоят над линией полосы, а не по центру с ней. */
56
+ @media (width > 768px) {
57
+ /* Линия полосы идёт и под кнопками, вместе с отступом ряда вкладок перед ними. */
58
+ &:not(&--rail) {
59
+ border-block-end: var(--rt-page-actions-plate-border-width) solid var(--rt-color-border-default);
60
+ margin-inline-start: calc(-1 * var(--rt-space-md));
61
+ }
62
+
63
+ &--rail {
64
+ flex-direction: column;
65
+ align-items: stretch;
66
+ gap: 0;
67
+ padding-inline: 0;
68
+ }
69
+
70
+ &--rail &__item {
71
+ width: 50px;
72
+ height: 50px;
73
+ justify-content: center;
74
+ padding: 0;
75
+ }
76
+
77
+ &--rail &__plate {
78
+ position: relative;
79
+ width: 36px;
80
+ height: 36px;
81
+ box-sizing: border-box;
82
+ justify-content: center;
83
+ border: var(--rt-page-actions-plate-border-width) solid transparent;
84
+ border-radius: var(--rt-page-actions-plate-radius);
85
+ }
86
+
87
+ &--rail &__item:hover &__plate {
88
+ background-color: var(--rt-nav-item-color-bg-active);
89
+ }
90
+
91
+ /* Включённая кнопка: в рейке как выбранный раздел, в ряду вкладок заливка на всю кнопку. */
92
+ &--rail &__item--active &__plate {
93
+ border-color: var(--rt-color-border-default);
94
+ background-color: var(--rt-nav-item-color-bg-active);
95
+ }
96
+
97
+ &:not(&--rail) &__item--active {
98
+ background-color: var(--rt-nav-item-color-bg-active);
99
+ color: var(--rt-nav-item-color-hover);
100
+ }
101
+
102
+ &--rail &__marker {
103
+ position: absolute;
104
+ top: calc(var(--rt-space-1) - var(--rt-page-actions-plate-border-width));
105
+ right: calc(var(--rt-space-1) - var(--rt-page-actions-plate-border-width));
106
+ }
107
+ }
108
+
109
+ /* Телефон: кнопки примыкают друг к другу через 4. */
110
+ @media (width <= 768px) {
111
+ gap: var(--rt-space-1);
112
+ padding-inline: 0;
113
+ }
114
+ }
115
+ }
@@ -0,0 +1,129 @@
1
+ @layer rt-kit.components {
2
+ .rt-page-phone-menu {
3
+ --rt-page-phone-menu-row-radius: var(--rt-radius-md);
4
+ --rt-page-phone-menu-marker-radius: var(--rt-radius-full);
5
+ --rt-page-phone-menu-border-width: var(--rt-border-width-thin);
6
+
7
+ display: flex;
8
+ overflow: hidden auto;
9
+ width: 100%;
10
+ height: 100%;
11
+ box-sizing: border-box;
12
+ flex-direction: column;
13
+
14
+ /* Список разделов красится как рейка, открытый раздел как панель раздела. */
15
+ &__list {
16
+ display: flex;
17
+ box-sizing: border-box;
18
+ flex: 1 0 auto;
19
+ flex-direction: column;
20
+ padding: var(--rt-space-2);
21
+ background-color: var(--rt-nav-header-color-bg);
22
+ gap: var(--rt-space-1);
23
+
24
+ &--panel {
25
+ background-color: var(--rt-nav-panel-color-bg);
26
+ }
27
+ }
28
+
29
+ &__group-title {
30
+ display: flex;
31
+ height: 32px;
32
+ flex: none;
33
+ align-items: center;
34
+ color: var(--rt-nav-panel-group-color);
35
+ font-size: var(--rt-nav-panel-group-font-size);
36
+ font-weight: var(--rt-nav-panel-group-font-weight);
37
+ padding-inline: var(--rt-space-4);
38
+ }
39
+
40
+ &__row {
41
+ display: flex;
42
+ width: 100%;
43
+ height: 48px;
44
+ box-sizing: border-box;
45
+ flex: none;
46
+ align-items: center;
47
+ padding: 0 var(--rt-space-4);
48
+ border: var(--rt-page-phone-menu-border-width) solid transparent;
49
+ border-radius: var(--rt-page-phone-menu-row-radius);
50
+ background: transparent;
51
+ color: var(--rt-nav-item-color);
52
+ cursor: pointer;
53
+ font-family: inherit;
54
+ font-size: var(--rt-text-sm);
55
+ font-weight: var(--rt-font-weight-medium);
56
+ gap: calc(var(--rt-space-2) + var(--rt-space-1));
57
+ text-align: start;
58
+ text-decoration: none;
59
+
60
+ &:hover {
61
+ background-color: var(--rt-nav-item-color-bg-active);
62
+ color: var(--rt-nav-item-color-hover);
63
+ }
64
+
65
+ &--active {
66
+ border-color: var(--rt-color-border-default);
67
+ background-color: var(--rt-nav-item-color-bg-active);
68
+ font-weight: var(--rt-font-weight-semibold);
69
+ }
70
+
71
+ &--disabled,
72
+ &--disabled:hover {
73
+ background: transparent;
74
+ color: var(--rt-nav-color-disabled);
75
+ cursor: default;
76
+ }
77
+ }
78
+
79
+ &__list--panel &__row {
80
+ color: var(--rt-nav-panel-item-color);
81
+
82
+ &:hover {
83
+ background-color: var(--rt-nav-panel-item-color-bg-hover);
84
+ }
85
+
86
+ &--active,
87
+ &--active:hover {
88
+ border-color: transparent;
89
+ background-color: var(--rt-nav-panel-item-color-bg-active);
90
+ color: var(--rt-nav-panel-item-color-active);
91
+ }
92
+
93
+ &--disabled,
94
+ &--disabled:hover {
95
+ background: transparent;
96
+ color: var(--rt-nav-color-disabled);
97
+ }
98
+ }
99
+
100
+ &__icon {
101
+ position: relative;
102
+ display: flex;
103
+ flex: none;
104
+ }
105
+
106
+ &__marker {
107
+ position: absolute;
108
+ top: 0;
109
+ right: 0;
110
+ width: var(--rt-nav-marker-size);
111
+ height: var(--rt-nav-marker-size);
112
+ border-radius: var(--rt-page-phone-menu-marker-radius);
113
+ background-color: var(--rt-nav-marker-color);
114
+ }
115
+
116
+ &__label {
117
+ overflow: hidden;
118
+ min-width: 0;
119
+ flex: 1 1 auto;
120
+ text-overflow: ellipsis;
121
+ white-space: nowrap;
122
+ }
123
+
124
+ &__arrow {
125
+ display: flex;
126
+ flex: none;
127
+ }
128
+ }
129
+ }
@@ -0,0 +1,281 @@
1
+ @layer rt-kit.components {
2
+ /* Рейка 50 по левому краю окна. На телефоне та же часть становится строкой 50: порог свой,
3
+ телефонный, а не общий узкий экран: планшет оставляет рейку. */
4
+ .rt-page-rail {
5
+ --rt-page-rail-border-width: var(--rt-border-width-thin);
6
+ --rt-page-rail-plate-radius: var(--rt-radius-md);
7
+ --rt-page-rail-marker-radius: var(--rt-radius-full);
8
+ --rt-page-rail-transition-duration: var(--rt-duration-fast);
9
+
10
+ position: sticky;
11
+ z-index: var(--rt-z-sticky);
12
+ top: 0;
13
+ display: flex;
14
+ width: 50px;
15
+ height: 100dvh;
16
+ box-sizing: border-box;
17
+ flex: none;
18
+ flex-direction: column;
19
+ background-color: var(--rt-nav-header-color-bg);
20
+
21
+ /* Граница лежит поверх рейки и ширины не отнимает: пункт занимает все 50, плашка стоит в 7 от края. */
22
+ &:after {
23
+ position: absolute;
24
+ width: var(--rt-page-rail-border-width);
25
+ background-color: var(--rt-color-border-default);
26
+ content: '';
27
+ inset-block: 0;
28
+ inset-inline-end: 0;
29
+ pointer-events: none;
30
+ }
31
+
32
+ &__burger {
33
+ display: none;
34
+ width: 36px;
35
+ height: 36px;
36
+ flex: none;
37
+ align-items: center;
38
+ justify-content: center;
39
+ padding: 0;
40
+ border: 0;
41
+ background: transparent;
42
+ color: var(--rt-nav-item-color);
43
+ cursor: pointer;
44
+ }
45
+
46
+ &__logo {
47
+ display: flex;
48
+ height: 64px;
49
+ box-sizing: border-box;
50
+ flex: none;
51
+ justify-content: center;
52
+ padding-top: var(--rt-space-5);
53
+ }
54
+
55
+ /* Разделы не встают: прокручивается только этот список, подвал стоит на месте. */
56
+ &__sections {
57
+ display: flex;
58
+ min-height: 0;
59
+ flex: 1 1 auto;
60
+ flex-direction: column;
61
+ -ms-overflow-style: none;
62
+ overflow-y: auto;
63
+ scrollbar-width: none;
64
+
65
+ &::-webkit-scrollbar {
66
+ display: none;
67
+ }
68
+ }
69
+
70
+ &__item {
71
+ display: flex;
72
+ width: 100%;
73
+ height: 50px;
74
+ flex: none;
75
+ align-items: center;
76
+ justify-content: center;
77
+ padding: 0;
78
+ border: 0;
79
+ background: transparent;
80
+ color: var(--rt-nav-item-color);
81
+ cursor: pointer;
82
+ text-decoration: none;
83
+
84
+ &:hover .rt-page-rail-plate,
85
+ &--open .rt-page-rail-plate {
86
+ background-color: var(--rt-nav-item-color-bg-active);
87
+ color: var(--rt-nav-item-color-hover);
88
+ }
89
+
90
+ &--active .rt-page-rail-plate {
91
+ border-color: var(--rt-color-border-default);
92
+ background-color: var(--rt-nav-item-color-bg-active);
93
+ }
94
+
95
+ &:focus-visible {
96
+ outline: none;
97
+ }
98
+
99
+ &:focus-visible .rt-page-rail-plate {
100
+ outline: 1px dashed var(--rt-nav-color-focus);
101
+ outline-offset: 1px;
102
+ }
103
+
104
+ &--disabled {
105
+ color: var(--rt-nav-color-disabled);
106
+ cursor: default;
107
+ }
108
+
109
+ &--disabled:hover .rt-page-rail-plate {
110
+ background-color: transparent;
111
+ color: inherit;
112
+ }
113
+ }
114
+
115
+ &__page {
116
+ display: none;
117
+ }
118
+
119
+ /* Панель поверх страницы и вкладок: страница и вкладки на месте. */
120
+ &__panel {
121
+ position: fixed;
122
+ z-index: var(--rt-z-dropdown);
123
+ top: 0;
124
+ bottom: 0;
125
+ left: 50px;
126
+ display: flex;
127
+ overflow: hidden auto;
128
+ width: 220px;
129
+ box-sizing: border-box;
130
+ flex-direction: column;
131
+ padding: var(--rt-space-5) calc(var(--rt-space-2) + var(--rt-space-1));
132
+ background-color: var(--rt-nav-panel-color-bg);
133
+ gap: var(--rt-space-8);
134
+ }
135
+
136
+ /* Граница панели тоже лежит поверх: столбец пунктов шириной 196, как в макете. */
137
+ &__panel:after {
138
+ position: absolute;
139
+ width: var(--rt-page-rail-border-width);
140
+ background-color: var(--rt-color-border-default);
141
+ content: '';
142
+ inset-block: 0;
143
+ inset-inline-end: 0;
144
+ pointer-events: none;
145
+ }
146
+
147
+ &__group {
148
+ display: flex;
149
+ flex-direction: column;
150
+ gap: var(--rt-space-0-5);
151
+ }
152
+
153
+ &__group-title {
154
+ display: flex;
155
+ height: 32px;
156
+ align-items: center;
157
+ color: var(--rt-nav-panel-group-color);
158
+ font-size: var(--rt-nav-panel-group-font-size);
159
+ font-weight: var(--rt-nav-panel-group-font-weight);
160
+ padding-inline: var(--rt-space-2);
161
+ }
162
+
163
+ &__panel-item {
164
+ display: flex;
165
+ width: 100%;
166
+ height: 32px;
167
+ box-sizing: border-box;
168
+ align-items: center;
169
+ padding: var(--rt-nav-panel-item-padding);
170
+ border: 0;
171
+ border-radius: var(--rt-page-rail-plate-radius);
172
+ background: transparent;
173
+ color: var(--rt-nav-panel-item-color);
174
+ cursor: pointer;
175
+ font-family: inherit;
176
+ font-size: var(--rt-nav-panel-item-font-size);
177
+ font-weight: var(--rt-nav-panel-item-font-weight);
178
+ text-align: start;
179
+ text-decoration: none;
180
+
181
+ &:hover {
182
+ background-color: var(--rt-nav-panel-item-color-bg-hover);
183
+ }
184
+
185
+ &--active,
186
+ &--active:hover {
187
+ background-color: var(--rt-nav-panel-item-color-bg-active);
188
+ color: var(--rt-nav-panel-item-color-active);
189
+ }
190
+
191
+ &--disabled {
192
+ color: var(--rt-nav-color-disabled);
193
+ cursor: default;
194
+ }
195
+ }
196
+
197
+ /* Столбец 240 поверх страницы на подложке: как `rt-side-menu` на узком экране. */
198
+ &__phone-backdrop {
199
+ position: absolute;
200
+ padding: 0;
201
+ border: 0;
202
+ background: var(--rt-color-bg-overlay);
203
+ cursor: pointer;
204
+ inset: 0;
205
+ }
206
+
207
+ &__phone-column {
208
+ position: relative;
209
+ display: flex;
210
+ width: 240px;
211
+ height: 100%;
212
+ }
213
+
214
+ &__phone-menu {
215
+ position: fixed;
216
+ z-index: var(--rt-z-fixed);
217
+ inset: 0;
218
+ }
219
+
220
+ @media (width <= 768px) {
221
+ width: 100%;
222
+ height: 50px;
223
+ flex-direction: row;
224
+ align-items: center;
225
+ gap: var(--rt-space-1);
226
+ padding-inline: calc(var(--rt-space-2) + var(--rt-space-1)) var(--rt-space-2);
227
+
228
+ &:after {
229
+ width: auto;
230
+ height: var(--rt-page-rail-border-width);
231
+ inset: auto 0 0;
232
+ }
233
+
234
+ &__burger {
235
+ display: flex;
236
+ }
237
+
238
+ &__logo,
239
+ &__sections {
240
+ display: none;
241
+ }
242
+
243
+ &__page {
244
+ display: flex;
245
+ min-width: 0;
246
+ flex: 1 1 auto;
247
+ align-items: center;
248
+ }
249
+ }
250
+ }
251
+
252
+ .rt-page-rail-plate {
253
+ position: relative;
254
+ display: flex;
255
+ width: 36px;
256
+ height: 36px;
257
+ box-sizing: border-box;
258
+ align-items: center;
259
+ justify-content: center;
260
+ border: var(--rt-page-rail-border-width) solid transparent;
261
+ border-radius: var(--rt-page-rail-plate-radius);
262
+ transition: background-color var(--rt-page-rail-transition-duration) linear;
263
+
264
+ /* Раздел без значка: список разделов общий с горизонтальной шапкой, где значок не обязателен. */
265
+ &__letter {
266
+ font-size: var(--rt-text-sm);
267
+ font-weight: var(--rt-font-weight-semibold);
268
+ line-height: 1;
269
+ }
270
+
271
+ &__marker {
272
+ position: absolute;
273
+ top: calc(var(--rt-space-1) - var(--rt-page-rail-border-width));
274
+ right: calc(var(--rt-space-1) - var(--rt-page-rail-border-width));
275
+ width: var(--rt-nav-marker-size);
276
+ height: var(--rt-nav-marker-size);
277
+ border-radius: var(--rt-page-rail-marker-radius);
278
+ background-color: var(--rt-nav-marker-color);
279
+ }
280
+ }
281
+ }
@@ -0,0 +1,76 @@
1
+ @layer rt-kit.components {
2
+ /* Ряд вкладок: аватар 16, имя и указатель, кнопка 32. */
3
+ .rt-page-user {
4
+ --rt-page-user-avatar-radius: var(--rt-radius-full);
5
+ --rt-page-user-avatar-border-width: var(--rt-border-width-thin);
6
+
7
+ display: inline-flex;
8
+ flex: none;
9
+
10
+ &__button {
11
+ display: inline-flex;
12
+ height: 32px;
13
+ align-items: center;
14
+ padding: 0 var(--rt-space-2);
15
+ border: 0;
16
+ background: transparent;
17
+ color: var(--rt-color-text-muted);
18
+ cursor: pointer;
19
+ gap: var(--rt-space-2);
20
+
21
+ &:focus-visible {
22
+ outline: 1px dashed var(--rt-nav-color-focus);
23
+ outline-offset: -1px;
24
+ }
25
+ }
26
+
27
+ &__avatar {
28
+ display: inline-flex;
29
+ width: 16px;
30
+ height: 16px;
31
+ box-sizing: border-box;
32
+ flex: none;
33
+ align-items: center;
34
+ justify-content: center;
35
+ border: var(--rt-page-user-avatar-border-width) solid var(--rt-nav-item-color-caret);
36
+ border-radius: var(--rt-page-user-avatar-radius);
37
+ font-size: var(--rt-text-2xs);
38
+ font-weight: var(--rt-font-weight-semibold);
39
+ line-height: var(--rt-leading-none);
40
+ }
41
+
42
+ &__name {
43
+ color: var(--rt-nav-item-color);
44
+ font-size: var(--rt-text-sm);
45
+ font-weight: var(--rt-font-weight-semibold);
46
+ line-height: var(--rt-leading-none);
47
+ white-space: nowrap;
48
+ }
49
+
50
+ &__caret {
51
+ display: inline-flex;
52
+ flex: none;
53
+ color: var(--rt-nav-item-color-caret);
54
+ }
55
+
56
+ /* Подвал рейки на широком экране: ячейка 50 и аватар 18. */
57
+ @media (width > 768px) {
58
+ .rt-page-actions--rail & {
59
+ width: 50px;
60
+ height: 50px;
61
+ }
62
+
63
+ .rt-page-actions--rail &__button {
64
+ width: 100%;
65
+ height: 100%;
66
+ justify-content: center;
67
+ padding: 0;
68
+ }
69
+
70
+ .rt-page-actions--rail &__avatar {
71
+ width: 18px;
72
+ height: 18px;
73
+ }
74
+ }
75
+ }
76
+ }
@@ -288,5 +288,10 @@
288
288
  &__user--is-open {
289
289
  background-color: var(--rt-nav-item-color-bg-active);
290
290
  }
291
+
292
+ /* Рейка сама держит своё место: хост в раскладке не участвует. */
293
+ &--vertical {
294
+ display: contents;
295
+ }
291
296
  }
292
297
  }
@@ -0,0 +1,72 @@
1
+ @layer rt-kit.components {
2
+ .app-rail-screen {
3
+ --rt-app-rail-screen-logo-radius: var(--rt-radius-md);
4
+
5
+ display: flex;
6
+ height: 800px;
7
+ background: var(--rt-color-bg-page);
8
+ contain: paint;
9
+
10
+ @media (width > 768px) {
11
+ .rt-page-rail {
12
+ height: 100%;
13
+ }
14
+ }
15
+
16
+ &__rest {
17
+ display: flex;
18
+ min-width: 0;
19
+ min-height: 0;
20
+ flex: 1 1 0;
21
+ flex-direction: column;
22
+ }
23
+
24
+ & &__tabs {
25
+ --rt-tabs-list-padding-inline: var(--rt-space-2) 0;
26
+ --rt-tabs-arrow-fade: var(--rt-nav-header-color-bg);
27
+
28
+ background-color: var(--rt-nav-header-color-bg);
29
+ }
30
+
31
+ &__logo {
32
+ width: 24px;
33
+ height: 24px;
34
+ border-radius: var(--rt-app-rail-screen-logo-radius);
35
+ background-color: var(--rt-color-action-primary);
36
+ }
37
+
38
+ &__page {
39
+ overflow: hidden;
40
+ min-height: 0;
41
+ flex: 1 1 0;
42
+ padding: var(--rt-space-4) var(--rt-space-5) 0;
43
+ }
44
+
45
+ &__assistant {
46
+ width: 420px;
47
+ height: 100%;
48
+ box-sizing: border-box;
49
+ flex: none;
50
+ border-inline-start: 1px solid var(--rt-color-border-default);
51
+ }
52
+
53
+ @media (width <= 768px) {
54
+ height: 100dvh;
55
+ flex-direction: column;
56
+
57
+ &__page {
58
+ padding: calc(var(--rt-space-2) + var(--rt-space-1)) var(--rt-space-4) var(--rt-space-2);
59
+ background-color: var(--rt-color-bg-surface);
60
+ }
61
+
62
+ &__assistant {
63
+ position: absolute;
64
+ z-index: var(--rt-z-fixed);
65
+ width: 100%;
66
+ background-color: var(--rt-color-bg-surface);
67
+ border-inline-start: 0;
68
+ inset: 0;
69
+ }
70
+ }
71
+ }
72
+ }