@rt-tools/ui-kit-v2 0.42.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.
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs +22 -0
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +1778 -18
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +19 -5
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +34 -11
- package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +725 -47
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +6 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +217 -6
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/components/page-header/CONTEXT.md +35 -1
- package/src/lib/components/page-header/bar/rt-page-bar.component.scss +161 -0
- package/src/lib/components/page-header/rail/rt-page-actions.component.scss +115 -0
- package/src/lib/components/page-header/rail/rt-page-phone-menu.component.scss +129 -0
- package/src/lib/components/page-header/rail/rt-page-rail.component.scss +281 -0
- package/src/lib/components/page-header/rail/rt-page-user.component.scss +76 -0
- package/src/lib/components/page-header/rt-page-header.component.scss +5 -0
- package/src/lib/components/page-header/stories/component/test-page-header-vertical.component.scss +72 -0
- package/src/lib/components/page-header/stories/component/test-page-table.component.scss +81 -0
- package/src/lib/components/page-header/user/rt-page-header-user.component.scss +6 -0
- package/src/lib/components/stepper/CONTEXT.md +34 -2
- package/src/lib/components/stepper/rt-stepper.component.scss +62 -43
- package/src/lib/components/tabs/CONTEXT.md +30 -1
- package/src/lib/components/tabs/rt-tabs-arrows.scss +140 -0
- package/src/lib/components/tabs/rt-tabs-more-menu.scss +126 -0
- package/src/lib/components/tabs/rt-tabs-more.component.scss +29 -0
- package/src/lib/components/tabs/rt-tabs.component.scss +18 -61
- package/src/lib/components/workspace/CONTEXT.md +11 -1
- package/src/lib/components/workspace/rt-workspace.component.scss +51 -3
- package/src/rich-editor/lib/components/chat/CONTEXT.md +11 -1
- package/src/rich-editor/lib/components/chat/rt-chat-messenger.scss +9 -3
- package/src/rich-editor/lib/components/chat/rt-chat-translation.scss +92 -0
- package/types/rt-tools-ui-kit-v2-core.d.ts +9 -1
- package/types/rt-tools-ui-kit-v2-page-header.d.ts +202 -2
- package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +23 -0
- package/types/rt-tools-ui-kit-v2-stepper.d.ts +20 -6
- package/types/rt-tools-ui-kit-v2-tabs.d.ts +120 -1
- package/types/rt-tools-ui-kit-v2-workspace.d.ts +33 -1
|
@@ -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
|
+
}
|
package/src/lib/components/page-header/stories/component/test-page-header-vertical.component.scss
ADDED
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
@layer rt-kit.components {
|
|
2
|
+
/* Содержимое страницы кадров: таблица в окне с прокруткой и подвал пагинации под ней. */
|
|
3
|
+
.app-page-table {
|
|
4
|
+
display: flex;
|
|
5
|
+
height: 100%;
|
|
6
|
+
min-height: 0;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
|
|
9
|
+
&__window {
|
|
10
|
+
overflow: auto hidden;
|
|
11
|
+
min-height: 0;
|
|
12
|
+
flex: 1 1 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Подвал кадров: высота 40, кнопки и поле 32, подпись в одну строку. */
|
|
16
|
+
&__pagination {
|
|
17
|
+
--rt-pagination-padding-y: var(--rt-space-1);
|
|
18
|
+
--rt-pagination-padding-x: var(--rt-space-1);
|
|
19
|
+
--rt-pagination-box-size: var(--rt-control-height-sm);
|
|
20
|
+
--rt-pagination-field-height: var(--rt-control-height-sm);
|
|
21
|
+
--rt-pagination-per-page-label-white-space: nowrap;
|
|
22
|
+
|
|
23
|
+
flex: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@media (width > 768px) {
|
|
27
|
+
&__table {
|
|
28
|
+
min-width: 1570px;
|
|
29
|
+
table-layout: fixed;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&__table th {
|
|
33
|
+
box-sizing: border-box;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Длинное значение в широкой таблице кадров — в одну строку с многоточием. */
|
|
37
|
+
&__table td {
|
|
38
|
+
overflow: hidden;
|
|
39
|
+
text-overflow: ellipsis;
|
|
40
|
+
white-space: nowrap;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Ширины колонок кадров: в сумме 1570. */
|
|
44
|
+
.cdk-column-dates {
|
|
45
|
+
width: 230px;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.cdk-column-place {
|
|
49
|
+
width: 170px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.cdk-column-guest {
|
|
53
|
+
width: 180px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.cdk-column-contact {
|
|
57
|
+
width: 200px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.cdk-column-party {
|
|
61
|
+
width: 110px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.cdk-column-source {
|
|
65
|
+
width: 130px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.cdk-column-status {
|
|
69
|
+
width: 190px;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.cdk-column-payment {
|
|
73
|
+
width: 170px;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.cdk-column-sum {
|
|
77
|
+
width: 190px;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -14,6 +14,32 @@
|
|
|
14
14
|
|
|
15
15
|
Выходов нет — шаги переключает потребитель. Описание шага необязательно.
|
|
16
16
|
|
|
17
|
+
Полоса тянется по ширине места, от узкой панели в 280 px до любой. Шагов сколько угодно, текущий —
|
|
18
|
+
любой.
|
|
19
|
+
|
|
20
|
+
## Цвета
|
|
21
|
+
|
|
22
|
+
Цвета — ручки потребителя `--rt-stepper-*`: кит их не объявляет, приложение задаёт их правилом на
|
|
23
|
+
`rt-stepper` или на любом родителе. Пока не задано, работает запасное значение — токен темы.
|
|
24
|
+
Объявить их на хосте нельзя: объявление на хосте перебило бы значение, унаследованное от родителя.
|
|
25
|
+
|
|
26
|
+
| свойство | что красит | умолчание |
|
|
27
|
+
| ------------------------------------- | ----------------------------- | ----------------------------- |
|
|
28
|
+
| `--rt-stepper-track-color` | трек и будущие точки | `--rt-color-stepper-track` |
|
|
29
|
+
| `--rt-stepper-progress-color` | заполнение и пройденные точки | `--rt-color-stepper-progress` |
|
|
30
|
+
| `--rt-stepper-current-color` | текущая точка | `--rt-color-stepper-current` |
|
|
31
|
+
| `--rt-stepper-label-color` | подпись текущего шага | `--rt-stepper-current-color` |
|
|
32
|
+
| `--rt-stepper-description-color` | описание под полосой | `--rt-color-text-primary` |
|
|
33
|
+
| `--rt-stepper-point-shadow` | ореол текущей точки | `--rt-shadow-step-indicator` |
|
|
34
|
+
| `--rt-stepper-inset` | отступ трека, точек и подписи | `0` |
|
|
35
|
+
| `--rt-stepper-line-color` | линия между метками списка | `--rt-color-border-default` |
|
|
36
|
+
| `--rt-stepper-step-label-color` | подпись шага в списке | `--rt-color-text-primary` |
|
|
37
|
+
| `--rt-stepper-step-description-color` | описание шага в списке | `--rt-color-text-muted` |
|
|
38
|
+
| `--rt-stepper-mark-<состояние>-bg` | фон метки списка | по состоянию |
|
|
39
|
+
| `--rt-stepper-mark-<состояние>-color` | цифра метки списка | по состоянию |
|
|
40
|
+
|
|
41
|
+
Состояния метки: `complete`, `current`, `upcoming`, `neutral`.
|
|
42
|
+
|
|
17
43
|
## Вертикальный список
|
|
18
44
|
|
|
19
45
|
`orientation="vertical"` рисует `<ol>`: метка с номером, подпись, описание, линия между метками.
|
|
@@ -36,8 +62,14 @@
|
|
|
36
62
|
- Описание разбивается на абзацы по пустой строке (`\n\n`); пустое описание не создаёт абзаца.
|
|
37
63
|
- Точки спрятаны от скринридера — прогресс он читает с самой полосы: `role="progressbar"`,
|
|
38
64
|
`aria-valuemin/max/now` и `aria-valuetext` с подписью текущего шага.
|
|
39
|
-
- Подпись текущего шага
|
|
40
|
-
|
|
65
|
+
- Подпись текущего шага стоит в отрезке полосы: на первом шаге вся полоса и прижим к началу, на
|
|
66
|
+
последнем — к концу, на среднем отрезок с центром на доле шага шириной в два расстояния до
|
|
67
|
+
ближнего края. Текущая точка шире соседних, поэтому её центр отходит от центра отрезка не больше
|
|
68
|
+
чем на 4 px. Если такой отрезок уже половины полосы, подпись берёт всю полосу и прижимается к
|
|
69
|
+
ближнему краю. За полосу подпись не выходит, длинная переносится и растит полосу вниз. Так же
|
|
70
|
+
собран макет.
|
|
71
|
+
- Ореол текущей точки на первом и последнем шаге выходит за полосу на 4 px. Родитель, который
|
|
72
|
+
обрезает содержимое, задаёт `--rt-stepper-inset` не меньше 4 px.
|
|
41
73
|
|
|
42
74
|
## Рядом
|
|
43
75
|
|