@rt-tools/ui-kit-v2 0.5.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 (103) hide show
  1. package/README.md +71 -0
  2. package/fesm2022/rt-tools-ui-kit-v2.mjs +166 -166
  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/rt-container.component.scss +91 -87
  23. package/src/lib/components/counter/rt-counter.component.scss +14 -12
  24. package/src/lib/components/counter-row/rt-counter-row.component.scss +31 -27
  25. package/src/lib/components/date-picker/rt-date-picker.component.scss +73 -71
  26. package/src/lib/components/delta-view/rt-delta-view.component.scss +27 -25
  27. package/src/lib/components/detail-list/rt-detail-list.component.scss +8 -6
  28. package/src/lib/components/detail-list/rt-detail-row.component.scss +18 -16
  29. package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +19 -17
  30. package/src/lib/components/dialog/header/rt-dialog-header.component.scss +27 -25
  31. package/src/lib/components/dialog/rt-dialog.component.scss +59 -56
  32. package/src/lib/components/download-link/rt-download-link.component.scss +32 -27
  33. package/src/lib/components/empty-state/rt-empty-state.component.scss +50 -46
  34. package/src/lib/components/field/rt-field.component.scss +63 -61
  35. package/src/lib/components/file-card/rt-file-card.component.scss +84 -78
  36. package/src/lib/components/file-drop/rt-file-drop.component.scss +83 -77
  37. package/src/lib/components/file-input/rt-file-input.component.scss +20 -18
  38. package/src/lib/components/file-list/rt-file-list.component.scss +9 -7
  39. package/src/lib/components/filter-control/rt-filter-control.component.scss +16 -14
  40. package/src/lib/components/header/rt-header.component.scss +61 -55
  41. package/src/lib/components/icon/rt-icon.component.scss +14 -12
  42. package/src/lib/components/icon-button/CONTEXT.md +4 -2
  43. package/src/lib/components/icon-button/rt-icon-button.component.scss +128 -112
  44. package/src/lib/components/info-item/rt-info-item.component.scss +38 -36
  45. package/src/lib/components/input/rt-input.component.scss +102 -98
  46. package/src/lib/components/input-number/rt-input-number.component.scss +84 -82
  47. package/src/lib/components/live-badge/rt-live-badge.component.scss +27 -23
  48. package/src/lib/components/logo/rt-logo.component.scss +54 -52
  49. package/src/lib/components/menu/rt-menu-confirm-dialog.component.scss +30 -28
  50. package/src/lib/components/menu/rt-menu-item.component.scss +47 -42
  51. package/src/lib/components/menu/rt-menu.component.scss +23 -15
  52. package/src/lib/components/message/rt-message.component.scss +53 -49
  53. package/src/lib/components/message-composer/rt-message-composer.component.scss +55 -49
  54. package/src/lib/components/money-list/rt-money-list.component.scss +13 -9
  55. package/src/lib/components/money-list/rt-money-row.component.scss +23 -19
  56. package/src/lib/components/multiselect/rt-multiselect.component.scss +169 -161
  57. package/src/lib/components/night-grid/rt-night-grid.component.scss +47 -42
  58. package/src/lib/components/note/rt-note.component.scss +15 -11
  59. package/src/lib/components/notifications-bell/rt-notifications-bell.component.scss +34 -27
  60. package/src/lib/components/page-header/rt-page-header-mobile.scss +142 -134
  61. package/src/lib/components/page-header/rt-page-header-submenu.scss +130 -123
  62. package/src/lib/components/page-header/rt-page-header.component.scss +221 -210
  63. package/src/lib/components/pagination/rt-pagination.component.scss +88 -81
  64. package/src/lib/components/photo-viewer/rt-photo-viewer.component.scss +109 -105
  65. package/src/lib/components/rich-editor/rt-rich-editor.component.scss +63 -59
  66. package/src/lib/components/section-nav/rt-section-nav.component.scss +53 -47
  67. package/src/lib/components/select/rt-select.component.scss +146 -138
  68. package/src/lib/components/skeleton/rt-skeleton.component.scss +50 -41
  69. package/src/lib/components/skeleton-wrapper/rt-skeleton-wrapper.component.scss +8 -6
  70. package/src/lib/components/spinner/rt-spinner.component.scss +35 -32
  71. package/src/lib/components/split-button/rt-split-button.component.scss +74 -62
  72. package/src/lib/components/stat-tile/rt-stat-tile.component.scss +95 -91
  73. package/src/lib/components/stepper/rt-stepper.component.scss +107 -101
  74. package/src/lib/components/table/copy-cell/rt-copy-cell.component.scss +34 -30
  75. package/src/lib/components/table/rt-table.component.scss +260 -252
  76. package/src/lib/components/table/settings-aside/rt-table-settings-aside.component.scss +7 -5
  77. package/src/lib/components/table/settings-panel/rt-table-settings-panel.component.scss +71 -61
  78. package/src/lib/components/table/sort-header/rt-table-sort-header.component.scss +31 -29
  79. package/src/lib/components/tabs/rt-tabs.component.scss +184 -175
  80. package/src/lib/components/tag/rt-tag.component.scss +97 -92
  81. package/src/lib/components/textarea/rt-textarea.component.scss +62 -60
  82. package/src/lib/components/theme-toggle/rt-theme-toggle.component.scss +7 -5
  83. package/src/lib/components/thread-list/rt-thread-list.component.scss +221 -212
  84. package/src/lib/components/timeline/rt-timeline.component.scss +82 -76
  85. package/src/lib/components/toast/rt-toast.component.scss +169 -160
  86. package/src/lib/components/toast/rt-toaster.component.scss +37 -35
  87. package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +129 -122
  88. package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +97 -91
  89. package/src/lib/components/toolbar/rt-toolbar.component.scss +56 -54
  90. package/src/lib/components/tooltip/rt-tooltip.component.scss +20 -15
  91. package/src/lib/components/welcome-dialog/rt-welcome-dialog.component.scss +46 -44
  92. package/src/lib/components/workspace/rt-workspace.component.scss +139 -131
  93. package/src/lib/components/workspace-details/rt-workspace-details.component.scss +105 -101
  94. package/src/styles/_index.scss +4 -0
  95. package/src/styles/_layers.scss +22 -0
  96. package/src/styles/_login.scss +87 -85
  97. package/src/styles/_mixins.scss +1 -1
  98. package/src/styles/_primitives.scss +126 -67
  99. package/src/styles/_scrollbar.scss +21 -19
  100. package/src/styles/_semantic.scss +140 -56
  101. package/src/styles/_theme-dark.scss +60 -27
  102. package/styles/tokens.css +628 -408
  103. package/rt-tools-ui-kit-v2-0.5.0.tgz +0 -0
@@ -1,120 +1,124 @@
1
- .rt-input {
2
- position: relative;
3
- display: inline-flex;
4
- width: 100%;
5
- min-height: var(--rt-input-height);
6
- box-sizing: border-box;
7
- align-items: center;
8
- padding: var(--rt-input-padding-y) var(--rt-input-padding-x);
9
- border: var(--rt-input-border-width) solid var(--rt-input-color-border);
10
- border-radius: var(--rt-input-radius);
11
- background-color: var(--rt-input-color-bg);
12
- color: var(--rt-input-color-text);
13
- cursor: text;
14
- font-size: var(--rt-input-font-size);
15
- gap: var(--rt-space-sm);
16
- line-height: var(--rt-input-line-height);
17
- transition: var(--rt-input-transition);
18
-
19
- &:focus-within {
20
- border-color: var(--rt-input-color-border-focus);
21
- box-shadow: var(--rt-input-focus-shadow);
22
- outline: 2px solid transparent;
23
- outline-offset: var(--rt-input-focus-outline-offset);
24
- }
25
-
26
- /* bordered=false: снимаем только resting-рамку; invalid/focus/readonly идут
27
- ниже по source-order и перекрывают её своей рамкой. */
28
- &--borderless {
29
- border-color: transparent;
30
- }
1
+ @layer rt-kit.components {
2
+ .rt-input {
3
+ --rt-input-toggle-radius: var(--rt-radius-sm);
31
4
 
32
- &--invalid {
33
- border-color: var(--rt-input-color-border-error);
5
+ position: relative;
6
+ display: inline-flex;
7
+ width: 100%;
8
+ min-height: var(--rt-input-height);
9
+ box-sizing: border-box;
10
+ align-items: center;
11
+ padding: var(--rt-input-padding-y) var(--rt-input-padding-x);
12
+ border: var(--rt-input-border-width) solid var(--rt-input-color-border);
13
+ border-radius: var(--rt-input-radius);
14
+ background-color: var(--rt-input-color-bg);
15
+ color: var(--rt-input-color-text);
16
+ cursor: text;
17
+ font-size: var(--rt-input-font-size);
18
+ gap: var(--rt-space-sm);
19
+ line-height: var(--rt-input-line-height);
20
+ transition: var(--rt-input-transition);
34
21
 
35
22
  &:focus-within {
36
- box-shadow: var(--rt-input-focus-shadow-error);
23
+ border-color: var(--rt-input-color-border-focus);
24
+ box-shadow: var(--rt-input-focus-shadow);
25
+ outline: 2px solid transparent;
26
+ outline-offset: var(--rt-input-focus-outline-offset);
37
27
  }
38
- }
39
28
 
40
- &--disabled {
41
- cursor: not-allowed;
42
- opacity: var(--rt-input-disabled-opacity);
43
- }
29
+ /* bordered=false: снимаем только resting-рамку; invalid/focus/readonly идут
30
+ ниже по source-order и перекрывают её своей рамкой. */
31
+ &--borderless {
32
+ border-color: transparent;
33
+ }
44
34
 
45
- &--size--sm {
46
- min-height: var(--rt-input-height-sm);
47
- }
35
+ &--invalid {
36
+ border-color: var(--rt-input-color-border-error);
48
37
 
49
- &--size--lg {
50
- min-height: var(--rt-input-height-lg);
51
- }
38
+ &:focus-within {
39
+ box-shadow: var(--rt-input-focus-shadow-error);
40
+ }
41
+ }
52
42
 
53
- /* Read-only: контрол превращается в плоский текст — снимаем рамку/фон/паддинги,
54
- чтобы значение читалось как обычный текст под label'ом rt-field. */
55
- &--readonly {
56
- padding-right: 0;
57
- padding-left: 0;
58
- border-color: transparent;
59
- background-color: transparent;
60
- cursor: default;
61
- }
43
+ &--disabled {
44
+ cursor: not-allowed;
45
+ opacity: var(--rt-input-disabled-opacity);
46
+ }
62
47
 
63
- &__readonly {
64
- color: var(--rt-field-value-color);
65
- font-size: var(--rt-field-value-font-size);
48
+ &--size--sm {
49
+ min-height: var(--rt-input-height-sm);
50
+ }
66
51
 
67
- &--empty {
68
- color: var(--rt-field-value-empty-color);
52
+ &--size--lg {
53
+ min-height: var(--rt-input-height-lg);
69
54
  }
70
- }
71
55
 
72
- &__field {
73
- min-width: 0;
74
- flex: 1 1 auto;
75
- padding: 0;
76
- border: none;
77
- background: transparent;
78
- color: inherit;
79
- font: inherit;
80
- outline: none;
81
-
82
- &::placeholder {
83
- color: var(--rt-input-color-text-placeholder);
84
- opacity: 1;
56
+ /* Read-only: контрол превращается в плоский текст — снимаем рамку/фон/паддинги,
57
+ чтобы значение читалось как обычный текст под label'ом rt-field. */
58
+ &--readonly {
59
+ padding-right: 0;
60
+ padding-left: 0;
61
+ border-color: transparent;
62
+ background-color: transparent;
63
+ cursor: default;
85
64
  }
86
65
 
87
- &:disabled {
88
- cursor: not-allowed;
66
+ &__readonly {
67
+ color: var(--rt-field-value-color);
68
+ font-size: var(--rt-field-value-font-size);
69
+
70
+ &--empty {
71
+ color: var(--rt-field-value-empty-color);
72
+ }
89
73
  }
90
- }
91
74
 
92
- &__icon-left,
93
- &__icon-right,
94
- &__clear {
95
- flex-shrink: 0;
96
- }
75
+ &__field {
76
+ min-width: 0;
77
+ flex: 1 1 auto;
78
+ padding: 0;
79
+ border: none;
80
+ background: transparent;
81
+ color: inherit;
82
+ font: inherit;
83
+ outline: none;
84
+
85
+ &::placeholder {
86
+ color: var(--rt-input-color-text-placeholder);
87
+ opacity: 1;
88
+ }
89
+
90
+ &:disabled {
91
+ cursor: not-allowed;
92
+ }
93
+ }
97
94
 
98
- &__toggle {
99
- display: inline-flex;
100
- flex-shrink: 0;
101
- align-items: center;
102
- justify-content: center;
103
- padding: var(--rt-space-1);
104
- border: none;
105
- border-radius: var(--rt-radius-sm);
106
- margin: 0;
107
- background: transparent;
108
- color: inherit;
109
- cursor: pointer;
110
-
111
- &:hover {
112
- background-color: var(--rt-input-color-bg-hover);
95
+ &__icon-left,
96
+ &__icon-right,
97
+ &__clear {
98
+ flex-shrink: 0;
113
99
  }
114
100
 
115
- &:focus-visible {
116
- outline: var(--rt-input-border-width) solid var(--rt-input-color-border-focus);
117
- outline-offset: var(--rt-input-focus-outline-offset);
101
+ &__toggle {
102
+ display: inline-flex;
103
+ flex-shrink: 0;
104
+ align-items: center;
105
+ justify-content: center;
106
+ padding: var(--rt-space-1);
107
+ border: none;
108
+ border-radius: var(--rt-input-toggle-radius);
109
+ margin: 0;
110
+ background: transparent;
111
+ color: inherit;
112
+ cursor: pointer;
113
+
114
+ &:hover {
115
+ background-color: var(--rt-input-color-bg-hover);
116
+ }
117
+
118
+ &:focus-visible {
119
+ outline: var(--rt-input-border-width) solid var(--rt-input-color-border-focus);
120
+ outline-offset: var(--rt-input-focus-outline-offset);
121
+ }
118
122
  }
119
123
  }
120
124
  }
@@ -1,102 +1,104 @@
1
- .rt-input-number {
2
- position: relative;
3
- display: inline-flex;
4
- width: 100%;
5
- min-height: var(--rt-input-height);
6
- box-sizing: border-box;
7
- align-items: center;
8
- padding: var(--rt-input-padding-y) var(--rt-input-padding-x);
9
- border: var(--rt-input-border-width) solid var(--rt-input-color-border);
10
- border-radius: var(--rt-input-radius);
11
- background-color: var(--rt-input-color-bg);
12
- color: var(--rt-input-color-text);
13
- cursor: text;
14
- font-size: var(--rt-input-font-size);
15
- gap: var(--rt-space-sm);
16
- line-height: var(--rt-input-line-height);
17
- transition: var(--rt-input-transition);
1
+ @layer rt-kit.components {
2
+ .rt-input-number {
3
+ position: relative;
4
+ display: inline-flex;
5
+ width: 100%;
6
+ min-height: var(--rt-input-height);
7
+ box-sizing: border-box;
8
+ align-items: center;
9
+ padding: var(--rt-input-padding-y) var(--rt-input-padding-x);
10
+ border: var(--rt-input-border-width) solid var(--rt-input-color-border);
11
+ border-radius: var(--rt-input-radius);
12
+ background-color: var(--rt-input-color-bg);
13
+ color: var(--rt-input-color-text);
14
+ cursor: text;
15
+ font-size: var(--rt-input-font-size);
16
+ gap: var(--rt-space-sm);
17
+ line-height: var(--rt-input-line-height);
18
+ transition: var(--rt-input-transition);
18
19
 
19
- &:focus-within {
20
- border-color: var(--rt-input-color-border-focus);
21
- box-shadow: var(--rt-input-focus-shadow);
22
- outline: 2px solid transparent;
23
- outline-offset: var(--rt-input-focus-outline-offset);
24
- }
20
+ &:focus-within {
21
+ border-color: var(--rt-input-color-border-focus);
22
+ box-shadow: var(--rt-input-focus-shadow);
23
+ outline: 2px solid transparent;
24
+ outline-offset: var(--rt-input-focus-outline-offset);
25
+ }
25
26
 
26
- /* bordered=false: снимаем только resting-рамку; invalid/focus/readonly идут
27
- ниже по source-order и перекрывают её своей рамкой. */
28
- &--borderless {
29
- border-color: transparent;
30
- }
27
+ /* bordered=false: снимаем только resting-рамку; invalid/focus/readonly идут
28
+ ниже по source-order и перекрывают её своей рамкой. */
29
+ &--borderless {
30
+ border-color: transparent;
31
+ }
31
32
 
32
- &--invalid {
33
- border-color: var(--rt-input-color-border-error);
33
+ &--invalid {
34
+ border-color: var(--rt-input-color-border-error);
34
35
 
35
- &:focus-within {
36
- box-shadow: var(--rt-input-focus-shadow-error);
36
+ &:focus-within {
37
+ box-shadow: var(--rt-input-focus-shadow-error);
38
+ }
37
39
  }
38
- }
39
40
 
40
- &--disabled {
41
- cursor: not-allowed;
42
- opacity: var(--rt-input-disabled-opacity);
43
- }
41
+ &--disabled {
42
+ cursor: not-allowed;
43
+ opacity: var(--rt-input-disabled-opacity);
44
+ }
44
45
 
45
- &--size--sm {
46
- min-height: var(--rt-input-height-sm);
47
- }
46
+ &--size--sm {
47
+ min-height: var(--rt-input-height-sm);
48
+ }
48
49
 
49
- &--size--lg {
50
- min-height: var(--rt-input-height-lg);
51
- }
50
+ &--size--lg {
51
+ min-height: var(--rt-input-height-lg);
52
+ }
52
53
 
53
- /* Read-only: плоский текст вместо input — снимаем рамку/фон/паддинги. */
54
- &--readonly {
55
- padding-right: 0;
56
- padding-left: 0;
57
- border-color: transparent;
58
- background-color: transparent;
59
- cursor: default;
60
- }
54
+ /* Read-only: плоский текст вместо input — снимаем рамку/фон/паддинги. */
55
+ &--readonly {
56
+ padding-right: 0;
57
+ padding-left: 0;
58
+ border-color: transparent;
59
+ background-color: transparent;
60
+ cursor: default;
61
+ }
61
62
 
62
- &__readonly {
63
- color: var(--rt-field-value-color);
64
- font-size: var(--rt-field-value-font-size);
63
+ &__readonly {
64
+ color: var(--rt-field-value-color);
65
+ font-size: var(--rt-field-value-font-size);
65
66
 
66
- &--empty {
67
- color: var(--rt-field-value-empty-color);
67
+ &--empty {
68
+ color: var(--rt-field-value-empty-color);
69
+ }
68
70
  }
69
- }
70
71
 
71
- &__field {
72
- min-width: 0;
73
- flex: 1 1 auto;
74
- padding: 0;
75
- border: none;
76
- background: transparent;
77
- color: inherit;
78
- font: inherit;
79
- outline: none;
72
+ &__field {
73
+ min-width: 0;
74
+ flex: 1 1 auto;
75
+ padding: 0;
76
+ border: none;
77
+ background: transparent;
78
+ color: inherit;
79
+ font: inherit;
80
+ outline: none;
80
81
 
81
- &::placeholder {
82
- color: var(--rt-input-color-text-placeholder);
83
- opacity: 1;
84
- }
82
+ &::placeholder {
83
+ color: var(--rt-input-color-text-placeholder);
84
+ opacity: 1;
85
+ }
85
86
 
86
- &:disabled {
87
- cursor: not-allowed;
87
+ &:disabled {
88
+ cursor: not-allowed;
89
+ }
88
90
  }
89
- }
90
91
 
91
- &__icon-left,
92
- &__prefix,
93
- &__clear {
94
- flex-shrink: 0;
95
- }
92
+ &__icon-left,
93
+ &__prefix,
94
+ &__clear {
95
+ flex-shrink: 0;
96
+ }
96
97
 
97
- /* Текстовый префикс (напр. «₽»): приглушён, неинтерактивен. */
98
- &__prefix {
99
- color: var(--rt-color-text-muted);
100
- user-select: none;
98
+ /* Текстовый префикс (напр. «₽»): приглушён, неинтерактивен. */
99
+ &__prefix {
100
+ color: var(--rt-color-text-muted);
101
+ user-select: none;
102
+ }
101
103
  }
102
104
  }
@@ -1,31 +1,35 @@
1
- /* rt-live-badge — пилюля живого счётчика в common/ui. ViewEncapsulation.None.
2
- Хост адресуется по имени элемента, а не по классу блока: класс `.rt-live-badge` висит
3
- и на `<rt-live-badge>`, и на корне шаблона, поэтому правила блока вложены в хост —
4
- так они достаются только корню шаблона. */
1
+ @layer rt-kit.components {
2
+ /* rt-live-badge — пилюля живого счётчика в common/ui. ViewEncapsulation.None.
3
+ Хост адресуется по имени элемента, а не по классу блока: класс `.rt-live-badge` висит
4
+ и на `<rt-live-badge>`, и на корне шаблона, поэтому правила блока вложены в хост —
5
+ так они достаются только корню шаблона. */
5
6
 
6
- rt-live-badge {
7
- display: inline-flex;
8
-
9
- .rt-live-badge {
7
+ rt-live-badge {
10
8
  display: inline-flex;
11
- align-items: center;
12
- color: var(--rt-color-text-muted);
13
- font-size: var(--rt-text-sm);
14
- gap: var(--rt-space-1);
15
9
 
16
- &--active .rt-live-badge__dot {
17
- background: var(--rt-color-state-success);
18
- }
10
+ .rt-live-badge {
11
+ --rt-live-badge-dot-radius: var(--rt-radius-full);
19
12
 
20
- &__dot {
21
- width: 8px;
22
- height: 8px;
23
- border-radius: var(--rt-radius-full);
24
- background: var(--rt-color-border-subtle);
25
- }
13
+ display: inline-flex;
14
+ align-items: center;
15
+ color: var(--rt-color-text-muted);
16
+ font-size: var(--rt-text-sm);
17
+ gap: var(--rt-space-1);
18
+
19
+ &--active .rt-live-badge__dot {
20
+ background: var(--rt-color-state-success);
21
+ }
22
+
23
+ &__dot {
24
+ width: 8px;
25
+ height: 8px;
26
+ border-radius: var(--rt-live-badge-dot-radius);
27
+ background: var(--rt-color-border-subtle);
28
+ }
26
29
 
27
- &__count {
28
- color: var(--rt-color-text-primary);
30
+ &__count {
31
+ color: var(--rt-color-text-primary);
32
+ }
29
33
  }
30
34
  }
31
35
  }
@@ -1,62 +1,64 @@
1
- /* rt-logo — логотип приложения.
2
- *
3
- * Размеры host'а задаются inline через style.height/width (см. rt-logo.component.ts),
4
- * а сами начертания приходят свойствами оформления от приложения: кит своего
5
- * логотипа не имеет и умолчаний тут не ставит.
6
- *
7
- * Внутри host'а начертание сверху, слоган под ним ужат по ширине. Начертания
8
- * лежат фоном, а не в <img>: у тёмной темы своя пара файлов, и подмена
9
- * background-image — единственный способ переключить их одним правилом.
10
- */
11
- .rt-logo {
12
- display: inline-block;
13
- line-height: 0;
14
-
15
- &__wordmark,
16
- &__tagline {
17
- display: block;
18
- width: 100%;
19
- background-position: left center;
20
- background-repeat: no-repeat;
21
- background-size: contain;
22
- }
1
+ @layer rt-kit.components {
2
+ /* rt-logo — логотип приложения.
3
+ *
4
+ * Размеры host'а задаются inline через style.height/width (см. rt-logo.component.ts),
5
+ * а сами начертания приходят свойствами оформления от приложения: кит своего
6
+ * логотипа не имеет и умолчаний тут не ставит.
7
+ *
8
+ * Внутри host'а начертание сверху, слоган под ним ужат по ширине. Начертания
9
+ * лежат фоном, а не в <img>: у тёмной темы своя пара файлов, и подмена
10
+ * background-image — единственный способ переключить их одним правилом.
11
+ */
12
+ .rt-logo {
13
+ display: inline-block;
14
+ line-height: 0;
23
15
 
24
- &__wordmark {
25
- height: 100%;
26
- background-image: var(--rt-logo-wordmark, none);
27
- }
16
+ &__wordmark,
17
+ &__tagline {
18
+ display: block;
19
+ width: 100%;
20
+ background-position: left center;
21
+ background-repeat: no-repeat;
22
+ background-size: contain;
23
+ }
28
24
 
29
- &__tagline {
30
- background-image: var(--rt-logo-tagline, none);
31
- }
32
- }
25
+ &__wordmark {
26
+ height: 100%;
27
+ background-image: var(--rt-logo-wordmark, none);
28
+ }
33
29
 
34
- /* Тёмная тема: тёмная надпись на тёмной поверхности не читается, поэтому берётся
35
- вариант со светлым ink. Не задали пару — остаётся то же начертание. */
36
- [data-theme='dark'] .rt-logo {
37
- &__wordmark {
38
- background-image: var(--rt-logo-wordmark-dark, var(--rt-logo-wordmark, none));
30
+ &__tagline {
31
+ background-image: var(--rt-logo-tagline, none);
32
+ }
39
33
  }
40
34
 
41
- &__tagline {
42
- background-image: var(--rt-logo-tagline-dark, var(--rt-logo-tagline, none));
35
+ /* Тёмная тема: тёмная надпись на тёмной поверхности не читается, поэтому берётся
36
+ вариант со светлым ink. Не задали пару — остаётся то же начертание. */
37
+ [data-theme='dark'] .rt-logo {
38
+ &__wordmark {
39
+ background-image: var(--rt-logo-wordmark-dark, var(--rt-logo-wordmark, none));
40
+ }
41
+
42
+ &__tagline {
43
+ background-image: var(--rt-logo-tagline-dark, var(--rt-logo-tagline, none));
44
+ }
43
45
  }
44
- }
45
46
 
46
- /* Композиция lockup: начертание и слоган стоят колонкой и делят высоту host'а.
47
- Пропорция та же, что у пары в макете: ~66.7% начертанию, ~22.1% слогану,
48
- остальное — зазор между ними. */
49
- .rt-logo:has(.rt-logo__tagline) {
50
- display: flex;
51
- flex-direction: column;
52
- align-items: stretch;
53
- justify-content: space-between;
54
- }
47
+ /* Композиция lockup: начертание и слоган стоят колонкой и делят высоту host'а.
48
+ Пропорция та же, что у пары в макете: ~66.7% начертанию, ~22.1% слогану,
49
+ остальное — зазор между ними. */
50
+ .rt-logo:has(.rt-logo__tagline) {
51
+ display: flex;
52
+ flex-direction: column;
53
+ align-items: stretch;
54
+ justify-content: space-between;
55
+ }
55
56
 
56
- .rt-logo:has(.rt-logo__tagline) .rt-logo__wordmark {
57
- height: 66.7%;
58
- }
57
+ .rt-logo:has(.rt-logo__tagline) .rt-logo__wordmark {
58
+ height: 66.7%;
59
+ }
59
60
 
60
- .rt-logo:has(.rt-logo__tagline) .rt-logo__tagline {
61
- height: 22.1%;
61
+ .rt-logo:has(.rt-logo__tagline) .rt-logo__tagline {
62
+ height: 22.1%;
63
+ }
62
64
  }
@@ -1,36 +1,38 @@
1
- /* rt-menu-confirm-dialog — confirm-модалка деструктивного пункта rt-menu-item.
2
- ViewEncapsulation.None — селекторы префиксованы `.rt-menu-confirm-dialog`.
3
- Frame (фон/радиус/тень) даёт rt-dialog; здесь — только layout контента. */
1
+ @layer rt-kit.components {
2
+ /* rt-menu-confirm-dialog — confirm-модалка деструктивного пункта rt-menu-item.
3
+ ViewEncapsulation.None — селекторы префиксованы `.rt-menu-confirm-dialog`.
4
+ Frame (фон/радиус/тень) даёт rt-dialog; здесь — только layout контента. */
4
5
 
5
- .rt-menu-confirm-dialog {
6
- display: flex;
7
- box-sizing: border-box;
8
- flex-direction: column;
9
- padding: var(--rt-space-xl);
10
- gap: var(--rt-space-lg);
11
-
12
- &__text {
6
+ .rt-menu-confirm-dialog {
13
7
  display: flex;
8
+ box-sizing: border-box;
14
9
  flex-direction: column;
15
- gap: var(--rt-space-sm);
16
- }
10
+ padding: var(--rt-space-xl);
11
+ gap: var(--rt-space-lg);
17
12
 
18
- &__title {
19
- margin: 0;
20
- color: var(--rt-color-text-primary);
21
- font-size: var(--rt-text-md);
22
- font-weight: var(--rt-font-weight-bold);
23
- }
13
+ &__text {
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: var(--rt-space-sm);
17
+ }
24
18
 
25
- &__message {
26
- margin: 0;
27
- color: var(--rt-color-text-secondary);
28
- font-size: var(--rt-text-sm);
29
- }
19
+ &__title {
20
+ margin: 0;
21
+ color: var(--rt-color-text-primary);
22
+ font-size: var(--rt-text-md);
23
+ font-weight: var(--rt-font-weight-bold);
24
+ }
30
25
 
31
- &__footer {
32
- display: flex;
33
- justify-content: flex-end;
34
- gap: var(--rt-space-sm);
26
+ &__message {
27
+ margin: 0;
28
+ color: var(--rt-color-text-muted);
29
+ font-size: var(--rt-text-sm);
30
+ }
31
+
32
+ &__footer {
33
+ display: flex;
34
+ justify-content: flex-end;
35
+ gap: var(--rt-space-sm);
36
+ }
35
37
  }
36
38
  }