@rt-tools/ui-kit-v2 0.4.0 → 0.6.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 (108) hide show
  1. package/README.md +71 -0
  2. package/fesm2022/rt-tools-ui-kit-v2.mjs +395 -188
  3. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
  4. package/package.json +1 -1
  5. package/rt-tools-ui-kit-v2-0.6.0.tgz +0 -0
  6. package/src/lib/components/aside/_rt-aside-overlay.scss +73 -71
  7. package/src/lib/components/aside/footer/rt-aside-footer.component.scss +20 -16
  8. package/src/lib/components/aside/header/rt-aside-header.component.scss +72 -70
  9. package/src/lib/components/aside/rt-aside.component.scss +107 -105
  10. package/src/lib/components/aside/unsaved-dialog/rt-aside-unsaved-dialog.component.scss +33 -31
  11. package/src/lib/components/aside-section/rt-aside-section.component.scss +27 -23
  12. package/src/lib/components/autocomplete/rt-autocomplete.component.scss +124 -118
  13. package/src/lib/components/bar-list/rt-bar-list.component.scss +85 -81
  14. package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +64 -57
  15. package/src/lib/components/button/rt-button.directive.scss +319 -280
  16. package/src/lib/components/calendar/rt-calendar.component.scss +106 -102
  17. package/src/lib/components/card/rt-card.component.scss +53 -45
  18. package/src/lib/components/chat/rt-chat.component.scss +312 -306
  19. package/src/lib/components/checkbox/rt-checkbox.component.scss +61 -54
  20. package/src/lib/components/collapsible-text/rt-collapsible-text.component.scss +36 -34
  21. package/src/lib/components/confirm-popover/rt-confirm-popover.component.scss +36 -30
  22. package/src/lib/components/container/CONTEXT.md +22 -0
  23. package/src/lib/components/container/rt-container.component.scss +91 -87
  24. package/src/lib/components/counter/rt-counter.component.scss +14 -12
  25. package/src/lib/components/counter-row/rt-counter-row.component.scss +31 -27
  26. package/src/lib/components/date-picker/rt-date-picker.component.scss +73 -71
  27. package/src/lib/components/delta-view/rt-delta-view.component.scss +27 -25
  28. package/src/lib/components/detail-list/rt-detail-list.component.scss +8 -6
  29. package/src/lib/components/detail-list/rt-detail-row.component.scss +18 -16
  30. package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +19 -17
  31. package/src/lib/components/dialog/header/rt-dialog-header.component.scss +27 -25
  32. package/src/lib/components/dialog/rt-dialog.component.scss +59 -56
  33. package/src/lib/components/download-link/rt-download-link.component.scss +32 -27
  34. package/src/lib/components/empty-state/rt-empty-state.component.scss +50 -46
  35. package/src/lib/components/field/rt-field.component.scss +63 -61
  36. package/src/lib/components/file-card/rt-file-card.component.scss +84 -78
  37. package/src/lib/components/file-drop/rt-file-drop.component.scss +83 -77
  38. package/src/lib/components/file-input/rt-file-input.component.scss +20 -18
  39. package/src/lib/components/file-list/rt-file-list.component.scss +9 -7
  40. package/src/lib/components/filter-control/rt-filter-control.component.scss +16 -14
  41. package/src/lib/components/header/rt-header.component.scss +61 -55
  42. package/src/lib/components/icon/rt-icon.component.scss +14 -12
  43. package/src/lib/components/icon-button/CONTEXT.md +4 -2
  44. package/src/lib/components/icon-button/rt-icon-button.component.scss +128 -112
  45. package/src/lib/components/info-item/rt-info-item.component.scss +38 -36
  46. package/src/lib/components/input/rt-input.component.scss +102 -98
  47. package/src/lib/components/input-number/rt-input-number.component.scss +84 -82
  48. package/src/lib/components/live-badge/rt-live-badge.component.scss +27 -23
  49. package/src/lib/components/logo/rt-logo.component.scss +54 -52
  50. package/src/lib/components/menu/rt-menu-confirm-dialog.component.scss +30 -28
  51. package/src/lib/components/menu/rt-menu-item.component.scss +47 -42
  52. package/src/lib/components/menu/rt-menu.component.scss +23 -15
  53. package/src/lib/components/message/rt-message.component.scss +53 -49
  54. package/src/lib/components/message-composer/rt-message-composer.component.scss +55 -49
  55. package/src/lib/components/money-list/rt-money-list.component.scss +13 -9
  56. package/src/lib/components/money-list/rt-money-row.component.scss +23 -19
  57. package/src/lib/components/multiselect/rt-multiselect.component.scss +169 -161
  58. package/src/lib/components/night-grid/rt-night-grid.component.scss +47 -42
  59. package/src/lib/components/note/rt-note.component.scss +15 -11
  60. package/src/lib/components/notifications-bell/rt-notifications-bell.component.scss +34 -27
  61. package/src/lib/components/page-header/rt-page-header-mobile.scss +142 -134
  62. package/src/lib/components/page-header/rt-page-header-submenu.scss +130 -123
  63. package/src/lib/components/page-header/rt-page-header.component.scss +221 -210
  64. package/src/lib/components/pagination/rt-pagination.component.scss +88 -81
  65. package/src/lib/components/photo-viewer/rt-photo-viewer.component.scss +109 -105
  66. package/src/lib/components/rich-editor/rt-rich-editor.component.scss +63 -59
  67. package/src/lib/components/section-nav/rt-section-nav.component.scss +53 -47
  68. package/src/lib/components/select/rt-select.component.scss +146 -138
  69. package/src/lib/components/skeleton/rt-skeleton.component.scss +50 -41
  70. package/src/lib/components/skeleton-wrapper/rt-skeleton-wrapper.component.scss +8 -6
  71. package/src/lib/components/spinner/rt-spinner.component.scss +35 -32
  72. package/src/lib/components/split-button/rt-split-button.component.scss +74 -62
  73. package/src/lib/components/stat-tile/rt-stat-tile.component.scss +95 -91
  74. package/src/lib/components/stepper/rt-stepper.component.scss +107 -101
  75. package/src/lib/components/table/copy-cell/rt-copy-cell.component.scss +34 -30
  76. package/src/lib/components/table/rt-table.component.scss +260 -252
  77. package/src/lib/components/table/settings-aside/rt-table-settings-aside.component.scss +7 -5
  78. package/src/lib/components/table/settings-panel/rt-table-settings-panel.component.scss +71 -61
  79. package/src/lib/components/table/sort-header/CONTEXT.md +40 -0
  80. package/src/lib/components/table/sort-header/rt-table-sort-header.component.scss +31 -29
  81. package/src/lib/components/tabs/CONTEXT.md +5 -0
  82. package/src/lib/components/tabs/rt-tabs.component.scss +184 -175
  83. package/src/lib/components/tag/rt-tag.component.scss +97 -92
  84. package/src/lib/components/textarea/rt-textarea.component.scss +62 -60
  85. package/src/lib/components/theme-toggle/rt-theme-toggle.component.scss +7 -5
  86. package/src/lib/components/thread-list/rt-thread-list.component.scss +221 -212
  87. package/src/lib/components/timeline/rt-timeline.component.scss +82 -76
  88. package/src/lib/components/toast/CONTEXT.md +8 -0
  89. package/src/lib/components/toast/rt-toast.component.scss +169 -160
  90. package/src/lib/components/toast/rt-toaster.component.scss +37 -35
  91. package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +129 -122
  92. package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +97 -91
  93. package/src/lib/components/toolbar/rt-toolbar.component.scss +56 -54
  94. package/src/lib/components/tooltip/rt-tooltip.component.scss +20 -15
  95. package/src/lib/components/welcome-dialog/rt-welcome-dialog.component.scss +46 -44
  96. package/src/lib/components/workspace/rt-workspace.component.scss +139 -131
  97. package/src/lib/components/workspace-details/rt-workspace-details.component.scss +105 -101
  98. package/src/styles/_index.scss +4 -0
  99. package/src/styles/_layers.scss +22 -0
  100. package/src/styles/_login.scss +87 -85
  101. package/src/styles/_mixins.scss +1 -1
  102. package/src/styles/_primitives.scss +126 -67
  103. package/src/styles/_scrollbar.scss +21 -19
  104. package/src/styles/_semantic.scss +140 -56
  105. package/src/styles/_theme-dark.scss +60 -27
  106. package/styles/tokens.css +628 -408
  107. package/types/rt-tools-ui-kit-v2.d.ts +9 -16
  108. package/rt-tools-ui-kit-v2-0.4.0.tgz +0 -0
@@ -1,52 +1,54 @@
1
- /* Welcome-модалка первого входа — открывается через RtDialogService.open().
2
- rt-dialog даёт styled-frame, контент внутри получает свой padding.
1
+ @layer rt-kit.components {
2
+ /* Welcome-модалка первого входа — открывается через RtDialogService.open().
3
+ rt-dialog даёт styled-frame, контент внутри получает свой padding.
3
4
 
4
- ViewEncapsulation.None. Хост адресуется по имени элемента, а не по классу
5
- блока: класс `.rt-welcome-dialog` висит и на `<rt-welcome-dialog>`, и на
6
- обёртке содержимого внутри него, поэтому правила обёртки вложены в хост. */
5
+ ViewEncapsulation.None. Хост адресуется по имени элемента, а не по классу
6
+ блока: класс `.rt-welcome-dialog` висит и на `<rt-welcome-dialog>`, и на
7
+ обёртке содержимого внутри него, поэтому правила обёртки вложены в хост. */
7
8
 
8
- rt-welcome-dialog {
9
- display: contents;
9
+ rt-welcome-dialog {
10
+ display: contents;
10
11
 
11
- .rt-welcome-dialog {
12
- display: flex;
13
- flex-direction: column;
14
- padding: var(--rt-space-16) var(--rt-space-5);
15
- gap: var(--rt-space-5);
16
-
17
- &__text {
12
+ .rt-welcome-dialog {
18
13
  display: flex;
19
14
  flex-direction: column;
20
- gap: var(--rt-space-2-5);
21
- text-align: center;
22
- }
23
-
24
- &__title {
25
- margin: 0;
26
- color: var(--rt-color-text-primary);
27
- font-family: var(--rt-font-family-sans);
28
- font-size: var(--rt-text-md);
29
- font-weight: var(--rt-font-weight-bold);
30
- line-height: var(--rt-leading-snug);
31
- }
32
-
33
- &__description {
34
- margin: 0;
35
- color: var(--rt-color-text-primary);
36
- font-family: var(--rt-font-family-sans);
37
- font-size: var(--rt-text-xs);
38
- font-weight: var(--rt-font-weight-regular);
39
- line-height: var(--rt-leading-snug);
40
-
41
- /* Одиночные переводы строк внутри абзаца сохраняются как <br>. */
42
- white-space: pre-line;
43
- }
44
-
45
- &__cta {
46
- --rt-btn-font-size: 14px;
47
-
48
- width: 100%;
49
- letter-spacing: 0;
15
+ padding: var(--rt-space-16) var(--rt-space-5);
16
+ gap: var(--rt-space-5);
17
+
18
+ &__text {
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: var(--rt-space-2);
22
+ text-align: center;
23
+ }
24
+
25
+ &__title {
26
+ margin: 0;
27
+ color: var(--rt-color-text-primary);
28
+ font-family: var(--rt-font-family-sans);
29
+ font-size: var(--rt-text-md);
30
+ font-weight: var(--rt-font-weight-bold);
31
+ line-height: var(--rt-leading-snug);
32
+ }
33
+
34
+ &__description {
35
+ margin: 0;
36
+ color: var(--rt-color-text-primary);
37
+ font-family: var(--rt-font-family-sans);
38
+ font-size: var(--rt-text-xs);
39
+ font-weight: var(--rt-font-weight-regular);
40
+ line-height: var(--rt-leading-snug);
41
+
42
+ /* Одиночные переводы строк внутри абзаца сохраняются как <br>. */
43
+ white-space: pre-line;
44
+ }
45
+
46
+ &__cta {
47
+ --rt-btn-font-size: 14px;
48
+
49
+ width: 100%;
50
+ letter-spacing: 0;
51
+ }
50
52
  }
51
53
  }
52
54
  }
@@ -1,173 +1,181 @@
1
- .rt-workspace {
2
- position: relative;
3
- display: flex;
4
- flex-direction: row;
5
- block-size: calc(100dvh - var(--rt-header-height, 0px));
6
- min-block-size: 0;
7
-
8
- &__list {
9
- display: flex;
10
- flex: 0 0 var(--rt-workspace-list-size, 320px);
11
- flex-direction: column;
12
- border-inline-end: var(--rt-border-width-thin) solid var(--rt-color-border-strong);
13
- min-inline-size: 0;
14
- }
1
+ @layer rt-kit.components {
2
+ .rt-workspace {
3
+ --rt-workspace-border-width: var(--rt-border-width-thin);
4
+ --rt-workspace-handle-line-width: var(--rt-border-width-medium);
5
+ --rt-workspace-handle-transition-duration: var(--rt-duration-fast);
6
+ --rt-workspace-panel-transition-duration: var(--rt-duration-base);
7
+ --rt-workspace-aside-shadow: var(--rt-shadow-md);
15
8
 
16
- &__center {
9
+ position: relative;
17
10
  display: flex;
18
- flex: 1 1 auto;
19
- flex-direction: column;
11
+ flex-direction: row;
12
+ block-size: calc(100dvh - var(--rt-header-height, 0px));
20
13
  min-block-size: 0;
21
- min-inline-size: 0;
22
- padding-inline: var(--rt-space-4);
23
- }
24
-
25
- &__mobile-toolbar {
26
- display: none;
27
- }
28
-
29
- &__aside {
30
- display: flex;
31
- flex: 0 0 var(--rt-workspace-aside-size, 360px);
32
- flex-direction: column;
33
- border-inline-start: var(--rt-border-width-thin) solid var(--rt-color-border-strong);
34
- min-inline-size: 0;
35
- }
36
14
 
37
- &__handle {
38
- position: relative;
39
- z-index: 1;
40
- flex: 0 0 auto;
41
- background: transparent;
42
- cursor: col-resize;
43
- inline-size: var(--rt-space-2);
44
- margin-inline: calc(-1 * var(--rt-space-1));
45
- touch-action: none;
46
-
47
- &:before {
48
- position: absolute;
49
- background: transparent;
50
- content: '';
51
- inline-size: var(--rt-border-width-medium);
52
- inset-block: 0;
53
- inset-inline-start: 50%;
54
- transform: translateX(-50%);
55
- transition: background var(--rt-duration-fast) ease;
56
- }
57
-
58
- &:hover:before,
59
- &:focus-visible:before {
60
- background: var(--rt-color-border-strong);
15
+ &__list {
16
+ display: flex;
17
+ flex: 0 0 var(--rt-workspace-list-size, 320px);
18
+ flex-direction: column;
19
+ border-inline-end: var(--rt-workspace-border-width) solid var(--rt-color-border-strong);
20
+ min-inline-size: 0;
61
21
  }
62
22
 
63
- &:focus-visible {
64
- outline: none;
65
-
66
- &:before {
67
- background: var(--rt-color-border-focus);
68
- }
23
+ &__center {
24
+ display: flex;
25
+ flex: 1 1 auto;
26
+ flex-direction: column;
27
+ min-block-size: 0;
28
+ min-inline-size: 0;
29
+ padding-inline: var(--rt-space-4);
69
30
  }
70
- }
71
31
 
72
- &__desktop-only {
73
- @media (width <= 1080px) {
32
+ &__mobile-toolbar {
74
33
  display: none;
75
34
  }
76
- }
77
35
 
78
- @media (width <= 1080px) {
79
- &__mobile-toolbar {
36
+ &__aside {
80
37
  display: flex;
81
- justify-content: space-between;
82
- padding: var(--rt-space-2) var(--rt-space-3) 0;
38
+ flex: 0 0 var(--rt-workspace-aside-size, 360px);
39
+ flex-direction: column;
40
+ border-inline-start: var(--rt-workspace-border-width) solid var(--rt-color-border-strong);
41
+ min-inline-size: 0;
83
42
  }
84
43
 
85
44
  &__handle {
86
- display: none;
87
- }
45
+ position: relative;
46
+ z-index: 1;
47
+ flex: 0 0 auto;
48
+ background: transparent;
49
+ cursor: col-resize;
50
+ inline-size: var(--rt-space-2);
51
+ margin-inline: calc(-1 * var(--rt-space-1));
52
+ touch-action: none;
88
53
 
89
- &__aside {
90
- position: absolute;
91
- z-index: 2;
92
- flex-basis: 360px;
93
- background: var(--rt-color-bg-surface);
94
- box-shadow: var(--rt-shadow-md);
95
- inset-block: 0;
96
- inset-inline-end: 0;
97
- max-inline-size: 90%;
98
- transform: translateX(100%);
99
- transition: transform var(--rt-duration-base) ease;
100
- }
54
+ &:before {
55
+ position: absolute;
56
+ background: transparent;
57
+ content: '';
58
+ inline-size: var(--rt-workspace-handle-line-width);
59
+ inset-block: 0;
60
+ inset-inline-start: 50%;
61
+ transform: translateX(-50%);
62
+ transition: background var(--rt-workspace-handle-transition-duration) ease;
63
+ }
101
64
 
102
- &__aside--open {
103
- transform: translateX(0);
104
- }
105
- }
65
+ &:hover:before,
66
+ &:focus-visible:before {
67
+ background: var(--rt-color-border-strong);
68
+ }
106
69
 
107
- @media (width <= 768px) {
108
- &__list {
109
- flex-basis: 100%;
70
+ &:focus-visible {
71
+ outline: none;
72
+
73
+ &:before {
74
+ background: var(--rt-color-border-focus);
75
+ }
76
+ }
110
77
  }
111
- }
112
78
 
113
- @media (width > 1080px) {
114
- &__aside {
115
- overflow: hidden;
116
- transition:
117
- flex-basis var(--rt-duration-base) ease,
118
- border-inline-start-width var(--rt-duration-base) ease,
119
- opacity var(--rt-duration-base) ease;
120
- will-change: flex-basis;
79
+ &__desktop-only {
80
+ @media (width <= 1080px) {
81
+ display: none;
82
+ }
121
83
  }
122
- }
123
84
 
124
- &--has-active {
125
- @media (width <= 768px) {
126
- .rt-workspace__list {
85
+ @media (width <= 1080px) {
86
+ &__mobile-toolbar {
87
+ display: flex;
88
+ justify-content: space-between;
89
+ padding: var(--rt-space-2) var(--rt-space-4) 0;
90
+ }
91
+
92
+ &__handle {
127
93
  display: none;
128
94
  }
129
95
 
130
- .rt-workspace__center {
96
+ &__aside {
97
+ position: absolute;
98
+ z-index: 2;
99
+ flex-basis: 360px;
100
+ background: var(--rt-color-bg-surface);
101
+ box-shadow: var(--rt-workspace-aside-shadow);
102
+ inset-block: 0;
103
+ inset-inline-end: 0;
104
+ max-inline-size: 90%;
105
+ transform: translateX(100%);
106
+ transition: transform var(--rt-workspace-panel-transition-duration) ease;
107
+ }
108
+
109
+ &__aside--open {
110
+ transform: translateX(0);
111
+ }
112
+ }
113
+
114
+ @media (width <= 768px) {
115
+ &__list {
131
116
  flex-basis: 100%;
132
117
  }
133
118
  }
134
- }
135
119
 
136
- &--aside-collapsed {
137
120
  @media (width > 1080px) {
138
- .rt-workspace__aside {
139
- flex-basis: 0;
140
- border-inline-start-width: 0;
141
- min-inline-size: 0;
142
- opacity: 0;
143
- pointer-events: none;
121
+ &__aside {
122
+ overflow: hidden;
144
123
  transition:
145
- flex-basis var(--rt-duration-base) ease,
146
- border-inline-start-width var(--rt-duration-base) ease,
147
- opacity var(--rt-duration-base) ease,
148
- visibility 0s linear var(--rt-duration-base);
149
- visibility: hidden;
124
+ flex-basis var(--rt-workspace-panel-transition-duration) ease,
125
+ border-inline-start-width var(--rt-workspace-panel-transition-duration) ease,
126
+ opacity var(--rt-workspace-panel-transition-duration) ease;
127
+ will-change: flex-basis;
150
128
  }
129
+ }
151
130
 
152
- .rt-workspace__handle--aside {
153
- display: none;
131
+ &--has-active {
132
+ @media (width <= 768px) {
133
+ .rt-workspace__list {
134
+ display: none;
135
+ }
136
+
137
+ .rt-workspace__center {
138
+ flex-basis: 100%;
139
+ }
154
140
  }
155
141
  }
156
- }
157
142
 
158
- &--resizing {
159
- cursor: col-resize;
160
- user-select: none;
143
+ &--aside-collapsed {
144
+ @media (width > 1080px) {
145
+ .rt-workspace__aside {
146
+ flex-basis: 0;
147
+ border-inline-start-width: 0;
148
+ min-inline-size: 0;
149
+ opacity: 0;
150
+ pointer-events: none;
151
+ transition:
152
+ flex-basis var(--rt-workspace-panel-transition-duration) ease,
153
+ border-inline-start-width var(--rt-workspace-panel-transition-duration) ease,
154
+ opacity var(--rt-workspace-panel-transition-duration) ease,
155
+ visibility 0s linear var(--rt-workspace-panel-transition-duration);
156
+ visibility: hidden;
157
+ }
158
+
159
+ .rt-workspace__handle--aside {
160
+ display: none;
161
+ }
162
+ }
163
+ }
161
164
 
162
- .rt-workspace__list,
163
- .rt-workspace__aside {
164
- transition: none;
165
+ &--resizing {
166
+ cursor: col-resize;
167
+ user-select: none;
168
+
169
+ .rt-workspace__list,
170
+ .rt-workspace__aside {
171
+ transition: none;
172
+ }
165
173
  }
166
- }
167
174
 
168
- @media (prefers-reduced-motion: reduce) {
169
- &__aside {
170
- transition: none;
175
+ @media (prefers-reduced-motion: reduce) {
176
+ &__aside {
177
+ transition: none;
178
+ }
171
179
  }
172
180
  }
173
181
  }
@@ -1,128 +1,132 @@
1
- .rt-workspace-details {
2
- display: flex;
3
- flex-direction: column;
4
- block-size: 100%;
5
- min-block-size: 0;
1
+ @layer rt-kit.components {
2
+ .rt-workspace-details {
3
+ --rt-workspace-details-border-width: var(--rt-border-width-thin);
6
4
 
7
- &__head {
8
5
  display: flex;
9
- flex: 0 0 auto;
10
- align-items: center;
11
- block-size: 56px;
12
- border-block-end: var(--rt-border-width-thin) solid var(--rt-color-border-strong);
13
- padding-inline: var(--rt-space-lg);
14
- }
15
-
16
- &__head-title {
17
- color: var(--rt-color-text-primary);
18
- font-size: var(--rt-text-md);
19
- font-weight: var(--rt-font-weight-semibold);
20
- }
21
-
22
- &__tabs {
23
- flex: 1 1 auto;
6
+ flex-direction: column;
7
+ block-size: 100%;
24
8
  min-block-size: 0;
25
9
 
26
- .rt-tabs__header {
27
- align-items: flex-end;
10
+ &__head {
11
+ display: flex;
12
+ flex: 0 0 auto;
13
+ align-items: center;
28
14
  block-size: 56px;
29
- border-block-end: var(--rt-border-width-thin) solid var(--rt-color-border-strong);
15
+ border-block-end: var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);
30
16
  padding-inline: var(--rt-space-lg);
31
17
  }
32
18
 
33
- .rt-tabs__tab-list {
34
- border-block-end: 0;
19
+ &__head-title {
20
+ color: var(--rt-color-text-primary);
21
+ font-size: var(--rt-text-md);
22
+ font-weight: var(--rt-font-weight-semibold);
35
23
  }
36
24
 
37
- .rt-tabs__content {
38
- padding-block-end: var(--rt-space-5);
39
- padding-inline: var(--rt-space-lg);
25
+ &__tabs {
26
+ flex: 1 1 auto;
27
+ min-block-size: 0;
28
+
29
+ .rt-tabs__header {
30
+ align-items: flex-end;
31
+ block-size: 56px;
32
+ border-block-end: var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);
33
+ padding-inline: var(--rt-space-lg);
34
+ }
35
+
36
+ .rt-tabs__tab-list {
37
+ border-block-end: 0;
38
+ }
39
+
40
+ .rt-tabs__content {
41
+ padding-block-end: var(--rt-space-5);
42
+ padding-inline: var(--rt-space-lg);
43
+ }
40
44
  }
41
- }
42
-
43
- &__body {
44
- display: flex;
45
- flex: 1 1 auto;
46
- flex-direction: column;
47
- padding: var(--rt-space-5) var(--rt-space-lg);
48
- gap: var(--rt-space-md);
49
- min-block-size: 0;
50
- overflow-y: auto;
51
- }
52
45
 
53
- &__agent-view,
54
- &__agent-edit {
55
- display: flex;
56
- align-items: center;
57
- gap: var(--rt-space-sm);
58
- }
46
+ &__body {
47
+ display: flex;
48
+ flex: 1 1 auto;
49
+ flex-direction: column;
50
+ padding: var(--rt-space-5) var(--rt-space-lg);
51
+ gap: var(--rt-space-md);
52
+ min-block-size: 0;
53
+ overflow-y: auto;
54
+ }
59
55
 
60
- &__agent-name {
61
- overflow: hidden;
62
- min-inline-size: 0;
63
- text-overflow: ellipsis;
64
- white-space: nowrap;
65
- }
56
+ &__agent-view,
57
+ &__agent-edit {
58
+ display: flex;
59
+ align-items: center;
60
+ gap: var(--rt-space-sm);
61
+ }
66
62
 
67
- &__toggle-row {
68
- display: flex;
69
- align-items: center;
70
- justify-content: space-between;
71
- gap: var(--rt-space-md);
72
- }
63
+ &__agent-name {
64
+ overflow: hidden;
65
+ min-inline-size: 0;
66
+ text-overflow: ellipsis;
67
+ white-space: nowrap;
68
+ }
73
69
 
74
- &__toggle-label {
75
- color: var(--rt-color-text-muted);
76
- font-size: var(--rt-text-sm);
77
- font-weight: var(--rt-font-weight-medium);
78
- }
70
+ &__toggle-row {
71
+ display: flex;
72
+ align-items: center;
73
+ justify-content: space-between;
74
+ gap: var(--rt-space-md);
75
+ }
79
76
 
80
- &__toggle-hint {
81
- margin: 0;
82
- color: var(--rt-color-text-muted);
83
- font-size: var(--rt-text-sm);
84
- }
77
+ &__toggle-label {
78
+ color: var(--rt-color-text-muted);
79
+ font-size: var(--rt-text-sm);
80
+ font-weight: var(--rt-font-weight-medium);
81
+ }
85
82
 
86
- &__transition-form {
87
- display: flex;
88
- flex-direction: column;
89
- gap: var(--rt-space-md);
90
- }
83
+ &__toggle-hint {
84
+ margin: 0;
85
+ color: var(--rt-color-text-muted);
86
+ font-size: var(--rt-text-sm);
87
+ }
91
88
 
92
- &__transition-submit {
93
- align-self: flex-start;
94
- }
89
+ &__transition-form {
90
+ display: flex;
91
+ flex-direction: column;
92
+ gap: var(--rt-space-md);
93
+ }
95
94
 
96
- &__audit {
97
- display: flex;
98
- flex-direction: column;
99
- gap: var(--rt-space-md);
100
- }
95
+ &__transition-submit {
96
+ align-self: flex-start;
97
+ }
101
98
 
102
- &__audit-loading,
103
- &__audit-more {
104
- align-self: center;
105
- }
99
+ &__audit {
100
+ display: flex;
101
+ flex-direction: column;
102
+ gap: var(--rt-space-md);
103
+ }
106
104
 
107
- &__footer {
108
- display: flex;
109
- flex: 0 0 auto;
110
- flex-direction: column;
111
- padding: var(--rt-space-md) var(--rt-space-lg);
112
- border-block-start: var(--rt-border-width-thin) solid var(--rt-color-border-strong);
113
- gap: var(--rt-space-sm);
105
+ &__audit-loading,
106
+ &__audit-more {
107
+ align-self: center;
108
+ }
114
109
 
115
- &:empty {
116
- display: none;
110
+ &__footer {
111
+ display: flex;
112
+ flex: 0 0 auto;
113
+ flex-direction: column;
114
+ padding: var(--rt-space-md) var(--rt-space-lg);
115
+ border-block-start: var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);
116
+ gap: var(--rt-space-sm);
117
+
118
+ &:empty {
119
+ display: none;
120
+ }
117
121
  }
118
- }
119
122
 
120
- &__footer-action {
121
- justify-content: center;
122
- inline-size: 100%;
123
- }
123
+ &__footer-action {
124
+ justify-content: center;
125
+ inline-size: 100%;
126
+ }
124
127
 
125
- &__error {
126
- margin-inline: var(--rt-space-lg);
128
+ &__error {
129
+ margin-inline: var(--rt-space-lg);
130
+ }
127
131
  }
128
132
  }
@@ -2,6 +2,10 @@
2
2
  // _breakpoints.scss НЕ форвардим — это SCSS-namespace для прямого @use
3
3
  // из feature-стилей (CSS-vars в @media не поддерживаются).
4
4
 
5
+ // Порядок подслоёв идёт первым: он обязан попасть в вывод раньше первого правила, которое в
6
+ // подслой ложится.
7
+ @forward './layers';
8
+
5
9
  @forward './primitives';
6
10
  @forward './semantic';
7
11
  @forward './theme-dark';