@rt-tools/ui-kit 0.0.19 → 0.0.21

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 (71) hide show
  1. package/fesm2022/rt-tools-ui-kit.mjs +338 -144
  2. package/fesm2022/rt-tools-ui-kit.mjs.map +1 -1
  3. package/package.json +5 -5
  4. package/rt-tools-ui-kit-0.0.21.tgz +0 -0
  5. package/src/lib/ui-kit/action-bar/components/bar/rtui-action-bar.component.scss +18 -18
  6. package/src/lib/ui-kit/action-bar/components/container/rtui-action-bar-container.component.scss +5 -7
  7. package/src/lib/ui-kit/aside/components/container/aside-container.component.scss +1 -0
  8. package/src/lib/ui-kit/aside/components/error-notification/aside-error-box.component.scss +6 -6
  9. package/src/lib/ui-kit/aside/components/panel/aside-panel.component.scss +25 -32
  10. package/src/lib/ui-kit/aside/stories/aside-component/test-aside.component.scss +1 -1
  11. package/src/lib/ui-kit/buttons/multi-button/rtui-multi-button.component.scss +7 -7
  12. package/src/lib/ui-kit/buttons/unified-button/rtui-button.component.scss +247 -0
  13. package/src/lib/ui-kit/checkbox/rtui-checkbox.component.scss +10 -10
  14. package/src/lib/ui-kit/checkbox/stories/component/test-checkbox.component.scss +2 -2
  15. package/src/lib/ui-kit/dynamic-selectors/components/actions/rtui-dynamic-selector-list-actions.component.scss +2 -2
  16. package/src/lib/ui-kit/dynamic-selectors/components/dynamic-selector/rtui-dynamic-selector.component.scss +3 -3
  17. package/src/lib/ui-kit/dynamic-selectors/components/multi-selector-popup/rtui-multi-selector-popup.component.scss +17 -17
  18. package/src/lib/ui-kit/dynamic-selectors/components/placeholder/rtui-dynamic-selector-placeholder.component.scss +3 -4
  19. package/src/lib/ui-kit/dynamic-selectors/components/selected-list/rtui-dynamic-selector-selected-list.component.scss +2 -2
  20. package/src/lib/ui-kit/dynamic-selectors/strories/component/input/test-dynamic-input.component.scss +2 -3
  21. package/src/lib/ui-kit/dynamic-selectors/strories/component/selector/test-selector.component.scss +4 -5
  22. package/src/lib/ui-kit/file-uploader/rtui-file-upload.component.scss +5 -5
  23. package/src/lib/ui-kit/file-uploader/stories/component/test-file-upload.component.scss +1 -1
  24. package/src/lib/ui-kit/header/header.component.scss +1 -0
  25. package/src/lib/ui-kit/header/stories/component/test-header.component.scss +3 -3
  26. package/src/lib/ui-kit/icon/rtui-icon.component.scss +110 -0
  27. package/src/lib/ui-kit/image-uploader/image-uploader/rtui-image-upload.component.scss +5 -5
  28. package/src/lib/ui-kit/image-uploader/stories/component/test-image-upload.component.scss +2 -2
  29. package/src/lib/ui-kit/info-badge/info-badge.component.scss +20 -19
  30. package/src/lib/ui-kit/info-badge/stories/component/test-info-badge/test-info-badge.component.scss +1 -1
  31. package/src/lib/ui-kit/modal/modal.component.scss +5 -5
  32. package/src/lib/ui-kit/popover/rtui-popover-container.component.scss +2 -3
  33. package/src/lib/ui-kit/scrollable/scrollable-container.component.scss +3 -5
  34. package/src/lib/ui-kit/side-menu/menu/rtui-side-menu.component.scss +25 -25
  35. package/src/lib/ui-kit/side-menu/menu-sub-item/rtui-side-menu-sub-item.component.scss +14 -14
  36. package/src/lib/ui-kit/side-menu/stories/component/test-side-menu-wrapper.component.scss +10 -10
  37. package/src/lib/ui-kit/snack-bar/snack-bar.component.scss +9 -9
  38. package/src/lib/ui-kit/snack-bar/stories/component/test-snack-bar.component.scss +3 -3
  39. package/src/lib/ui-kit/spinner/spinner.component.scss +10 -13
  40. package/src/lib/ui-kit/table/components/clear-search-button/rtui-clear-button.component.scss +5 -5
  41. package/src/lib/ui-kit/table/components/pagination-view/rtui-pagination.component.scss +14 -22
  42. package/src/lib/ui-kit/table/components/table-base-cell/table-base-cell.component.scss +8 -9
  43. package/src/lib/ui-kit/table/components/table-config-aside/rt-table-config-aside.component.scss +1 -1
  44. package/src/lib/ui-kit/table/components/table-container/table-container.component.scss +16 -14
  45. package/src/lib/ui-kit/table/components/table-header-cell/table-header-cell.component.scss +6 -7
  46. package/src/lib/ui-kit/table/components/table-header-filter-cell/table-header-filter-cell.component.scss +3 -3
  47. package/src/lib/ui-kit/table/dynamic-list.component.scss +2 -2
  48. package/src/lib/ui-kit/table/stories/dynamic-list/test-dynamic-list.component.scss +1 -1
  49. package/src/lib/ui-kit/table/stories/pagination/test-pagination-component.scss +4 -4
  50. package/src/lib/ui-kit/table/stories/table/test-table-component.scss +1 -1
  51. package/src/lib/ui-kit/toggle/rtui-toggle.component.scss +15 -21
  52. package/src/lib/ui-kit/toggle/stories/component/test-toggle.component.scss +2 -2
  53. package/src/lib/ui-kit/toolbar/toolbar.component.scss +5 -10
  54. package/src/styles/TOKENS.md +95 -2
  55. package/src/styles/base/_base.scss +4 -5
  56. package/src/styles/base/_color-scheme.scss +86 -0
  57. package/src/styles/base/_mixin.scss +12 -15
  58. package/src/styles/base/_tokens.scss +139 -99
  59. package/src/styles/base/_variables.scss +5 -11
  60. package/src/styles/color-scheme.spec.ts +236 -0
  61. package/src/styles/components/_button.scss +32 -24
  62. package/src/styles/components/_dynamic-selectors.scss +9 -10
  63. package/src/styles/components/_form.scss +8 -13
  64. package/src/styles/components/_material-bridge.scss +30 -0
  65. package/src/styles/components/_rtui_button.scss +100 -5
  66. package/src/styles/components/_table.scss +23 -39
  67. package/src/styles/main.scss +4 -0
  68. package/styles/tokens.css +79 -101
  69. package/types/rt-tools-ui-kit.d.ts +99 -37
  70. package/rt-tools-ui-kit-0.0.19.tgz +0 -0
  71. package/src/lib/ui-kit/buttons/icon-round/rtui-round-icon-button.component.scss +0 -44
@@ -1,3 +1,10 @@
1
+ /// @deprecated — legacy `.c-button` system. New code uses `.rtui-btn` (_rtui_button.scss);
2
+ /// ~60% of this module duplicates it. Kept because consumers still apply `.c-button`
3
+ /// classes AND override `--rt-button-*` vars directly (incl. dark mode) — rerouting these rules
4
+ /// onto `--rt-rtui-btn-*` would silently kill those overrides. Removal plan (next major):
5
+ /// map classes `--fill-green→success`, `--fill-red→error`, `--fill-blue→accent-light`,
6
+ /// `--outline-*→*-outline`; `--txt-*`/`--fab` first need a text/icon appearance in .rtui-btn.
7
+ /// See TOKENS.md "Buttons: legacy vs rtui".
1
8
  @use '../base/mixin' as mixins;
2
9
  @use '../base/variables' as vars;
3
10
  @use 'sass:color' as color;
@@ -20,7 +27,8 @@ $button: (
20
27
  background: var(--rt-color-neutral-25),
21
28
  ),
22
29
  text-active: (
23
- background: var(--clr-black-30),
30
+ background: #b2cbca,
31
+ // palette outlier, no neutral-scale equivalent
24
32
  ),
25
33
  text-base: (
26
34
  color: var(--rt-color-neutral-60),
@@ -57,36 +65,36 @@ $button: (
57
65
  color: var(--rt-color-neutral-0),
58
66
  ),
59
67
  fill-green: (
60
- border: 1px solid color.scale(vars.$clr-green-80, $lightness: -10%),
68
+ border: 1px solid color.scale(vars.$btn-success, $lightness: -10%),
61
69
  color: var(--rt-color-neutral-0),
62
70
  background-color: var(--rt-color-green-80),
63
71
  ),
64
72
  fill-green-hover: (
65
- background-color: color.scale(vars.$clr-green-80, $lightness: -10%),
73
+ background-color: color.scale(vars.$btn-success, $lightness: -10%),
66
74
  ),
67
75
  fill-green-light: (
68
- border-color: color.scale(vars.$clr-green-10, $lightness: -10%),
76
+ border-color: color.scale(vars.$btn-success-soft, $lightness: -10%),
69
77
  color: var(--rt-color-green-100),
70
78
  background-color: var(--rt-color-green-10),
71
79
  ),
72
80
  fill-green-light-hover: (
73
- background-color: color.scale(vars.$clr-green-10, $lightness: -10%),
81
+ background-color: color.scale(vars.$btn-success-soft, $lightness: -10%),
74
82
  ),
75
83
  fill-red: (
76
- border: 1px solid color.scale(vars.$clr-red-100, $lightness: -10%),
84
+ border: 1px solid color.scale(vars.$btn-danger, $lightness: -10%),
77
85
  color: var(--rt-color-neutral-0),
78
- background-color: vars.$clr-red-100,
86
+ background-color: vars.$btn-danger,
79
87
  ),
80
88
  fill-red-hover: (
81
- background-color: color.scale(vars.$clr-red-100, $lightness: -10%),
89
+ background-color: color.scale(vars.$btn-danger, $lightness: -10%),
82
90
  ),
83
91
  fill-red-light: (
84
- border-color: color.scale(vars.$clr-red-10, $lightness: -10%),
92
+ border-color: color.scale(vars.$btn-danger-soft, $lightness: -10%),
85
93
  color: var(--rt-color-red-100),
86
94
  background-color: var(--rt-color-red-10),
87
95
  ),
88
96
  fill-red-light-hover: (
89
- background-color: color.scale(vars.$clr-red-10, $lightness: -10%),
97
+ background-color: color.scale(vars.$btn-danger-soft, $lightness: -10%),
90
98
  ),
91
99
  outline: (
92
100
  border: 1px solid var(--rt-color-blue-40),
@@ -112,22 +120,22 @@ $button: (
112
120
  }
113
121
 
114
122
  button {
115
- line-height: 1;
116
123
  cursor: pointer;
124
+ line-height: 1;
117
125
  }
118
126
 
119
127
  .c-button {
128
+ position: relative;
120
129
  display: inline-flex;
121
130
  align-items: center;
122
- font-family: var(--rt-button-base-font-family);
123
- line-height: 1;
124
- position: relative;
125
131
  justify-content: center;
126
- font-size: 1rem;
127
132
  color: var(--rt-button-base-color);
133
+ font-family: var(--rt-button-base-font-family);
134
+ font-size: 1rem;
135
+ line-height: 1;
128
136
  transition: all 0.15s linear;
129
137
 
130
- //FAB
138
+ // FAB
131
139
  &[class*='--fab'] {
132
140
  border: 0;
133
141
  background-color: transparent;
@@ -149,8 +157,8 @@ button {
149
157
  // TEXT
150
158
  &[class*='--txt-'] {
151
159
  border: 0;
152
- background-color: transparent;
153
160
  border-radius: 5px;
161
+ background-color: transparent;
154
162
 
155
163
  &:hover {
156
164
  background: var(--rt-button-text-hover-background);
@@ -239,9 +247,9 @@ button {
239
247
  &[class*='green'] {
240
248
  border: var(--rt-button-fill-green-border);
241
249
  border-radius: 2px;
242
- color: var(--rt-button-fill-green-color);
243
- box-shadow: 0 2px 4px rgba(24, 24, 24, 0.1);
244
250
  background-color: var(--rt-button-fill-green-background-color);
251
+ box-shadow: 0 2px 4px rgb(24 24 24 / 10%);
252
+ color: var(--rt-button-fill-green-color);
245
253
 
246
254
  &:hover {
247
255
  background-color: var(--rt-button-fill-green-hover-background-color);
@@ -249,8 +257,8 @@ button {
249
257
 
250
258
  &[class*='-light'] {
251
259
  border-color: var(--rt-button-fill-green-light-border-color);
252
- color: var(--rt-button-fill-green-light-color);
253
260
  background-color: var(--rt-button-fill-green-light-background-color);
261
+ color: var(--rt-button-fill-green-light-color);
254
262
 
255
263
  &:hover {
256
264
  background-color: var(--rt-button-fill-green-light-hover-background-color);
@@ -261,9 +269,9 @@ button {
261
269
  &[class*='red'] {
262
270
  border: var(--rt-button-fill-red-border);
263
271
  border-radius: 2px;
264
- color: var(--rt-button-fill-red-color);
265
- box-shadow: 0 2px 4px rgba(24, 24, 24, 0.1);
266
272
  background-color: var(--rt-button-fill-red-background-color);
273
+ box-shadow: 0 2px 4px rgb(24 24 24 / 10%);
274
+ color: var(--rt-button-fill-red-color);
267
275
 
268
276
  &:hover {
269
277
  background-color: var(--rt-button-fill-red-hover-background-color);
@@ -271,8 +279,8 @@ button {
271
279
 
272
280
  &[class*='-light'] {
273
281
  border-color: var(--rt-button-fill-red-light-border-color);
274
- color: var(--rt-button-fill-red-light-color);
275
282
  background-color: var(--rt-button-fill-red-light-background-color);
283
+ color: var(--rt-button-fill-red-light-color);
276
284
 
277
285
  &:hover {
278
286
  background-color: var(--rt-button-fill-red-light-hover-background-color);
@@ -348,7 +356,7 @@ button {
348
356
 
349
357
  // SHADOW
350
358
  &[class*='--shadow'] {
351
- box-shadow: 0 2px 4px rgba(24, 24, 24, 0.1);
359
+ box-shadow: 0 2px 4px rgb(24 24 24 / 10%);
352
360
  }
353
361
 
354
362
  // --shadow
@@ -46,15 +46,14 @@ $dynamic-selector: (
46
46
 
47
47
  .rtui-dynamic-selector {
48
48
  &__item {
49
- height: var(--rt-dynamic-selector-item-height);
50
49
  display: flex;
51
- justify-content: flex-start;
50
+ height: var(--rt-dynamic-selector-item-height);
52
51
  align-items: center;
53
-
54
- background-color: var(--rt-dynamic-selector-item-background-color);
52
+ justify-content: flex-start;
53
+ padding: var(--rt-dynamic-selector-item-padding);
55
54
  border-radius: var(--rt-dynamic-selector-item-border-radius);
56
55
  margin-bottom: var(--rt-dynamic-selector-item-margin-bottom);
57
- padding: var(--rt-dynamic-selector-item-padding);
56
+ background-color: var(--rt-dynamic-selector-item-background-color);
58
57
 
59
58
  &::-webkit-scrollbar {
60
59
  display: none;
@@ -66,17 +65,17 @@ $dynamic-selector: (
66
65
 
67
66
  &-mover {
68
67
  display: flex;
69
- justify-content: center;
70
68
  align-items: center;
69
+ justify-content: center;
71
70
  padding: var(--rt-dynamic-selector-item-mover-padding);
72
71
  border-right: var(--rt-dynamic-selector-item-mover-border-right);
73
72
  margin-right: var(--rt-dynamic-selector-item-mover-margin-right);
74
73
  }
75
74
 
76
75
  &-title {
77
- white-space: nowrap;
78
76
  overflow: hidden;
79
77
  text-overflow: ellipsis;
78
+ white-space: nowrap;
80
79
  }
81
80
 
82
81
  &-input {
@@ -92,11 +91,11 @@ $dynamic-selector: (
92
91
 
93
92
  &-control {
94
93
  display: flex;
95
- justify-content: center;
96
94
  align-items: center;
97
- gap: var(--rt-dynamic-selector-item-control-gap);
95
+ justify-content: center;
98
96
  padding: var(--rt-dynamic-selector-item-control-padding);
99
97
  border-right: var(--rt-dynamic-selector-item-control-border-right);
98
+ gap: var(--rt-dynamic-selector-item-control-gap);
100
99
 
101
100
  &:last-child {
102
101
  padding: var(--rt-dynamic-selector-item-control-last-child-padding);
@@ -105,8 +104,8 @@ $dynamic-selector: (
105
104
 
106
105
  &-button {
107
106
  display: flex;
108
- justify-content: center;
109
107
  align-items: center;
108
+ justify-content: center;
110
109
 
111
110
  .mat-icon {
112
111
  width: var(--rt-dynamic-selector-item-control-icon-size);
@@ -3,30 +3,28 @@
3
3
 
4
4
  // FORM
5
5
  .c-form {
6
- width: 100%;
7
-
8
6
  display: flex;
7
+ width: 100%;
8
+ flex: 1 1 100%;
9
9
  flex-direction: column;
10
- justify-content: flex-start;
11
10
  align-items: flex-start;
12
- flex: 1 1 100%;
11
+ justify-content: flex-start;
13
12
 
14
13
  &__title {
15
14
  font-size: 1.5rem;
16
- line-height: 1.1;
17
15
  font-weight: 600;
16
+ line-height: 1.1;
18
17
  }
19
18
 
20
19
  &__title-descr {
21
20
  margin-top: 0.75rem;
22
- font-size: 1rem;
23
21
  color: var(--rt-text-base-secondary);
22
+ font-size: 1rem;
24
23
  }
25
24
 
26
25
  &__item {
27
- width: 100%;
28
-
29
26
  display: flex;
27
+ width: 100%;
30
28
  flex-direction: column;
31
29
  align-items: center;
32
30
  justify-content: flex-start;
@@ -38,18 +36,15 @@
38
36
 
39
37
  &__controls {
40
38
  position: relative;
41
- width: 100%;
42
-
43
39
  display: flex;
40
+ width: 100%;
44
41
  flex-direction: column;
45
-
46
42
  margin-top: 2rem;
47
43
  }
48
44
 
49
45
  &__control-item {
50
- width: 100%;
51
-
52
46
  display: flex;
47
+ width: 100%;
53
48
  align-items: center;
54
49
  justify-content: flex-start;
55
50
 
@@ -0,0 +1,30 @@
1
+ /// Material bridge — the single global touch-point between rt-tools and Angular Material.
2
+ ///
3
+ /// Rule: every GLOBAL override of Material internals (--mat-* / --mdc-* vars, .mat-* / .cdk-* selectors
4
+ /// that is not scoped to a component's own DOM) lives here, so a Material upgrade is reviewed in one file.
5
+ ///
6
+ /// Scoped piercings stay next to their component (they target Material nodes inside the component's
7
+ /// own template) — current inventory, revisit on every Angular Material major:
8
+ /// - snack-bar: styles/components/_snackbar.scss (panelClass .snack-bar-*: --mat-snack-bar-*, --mdc-snackbar-*)
9
+ /// - table: styles/components/_table.scss (consumes --mat-form-field-filled-container-color)
10
+ /// - checkbox: styles/components/_checkbox.scss (consumes --mat-button-text-label-text-color)
11
+ /// - dynamic-selectors: styles/components/_dynamic-selectors.scss (+ ::ng-deep .mat-mdc-form-field-* in
12
+ /// multi-selector-popup / selected-list component scss)
13
+ /// - side-menu: menu-sub-item component scss (::ng-deep .mat-expansion-*)
14
+ /// - modal: modal.component.scss (::ng-deep .mat-icon)
15
+ /// - spinner: spinner.component.scss (::ng-deep circle of mat-spinner SVG)
16
+ /// - aside: aside-panel.component.scss (.mat-mdc-tab-header, .mat-badge-content — encapsulation: None)
17
+ /// - toolbar: toolbar.component.scss (--mat-tab-*, --mdc-secondary-navigation-tab-*)
18
+
19
+ /* Keep CDK overlays (aside drawer, selector popups, modals) above app chrome.
20
+ Moved from aside-panel.component.scss — applies app-wide by design. */
21
+ .cdk-overlay-container,
22
+ .cdk-overlay-pane {
23
+ z-index: 9999;
24
+ }
25
+
26
+ /* Mat tab groups stretch to their container (aside tabs rely on it).
27
+ Moved from aside-panel.component.scss. */
28
+ .mat-mdc-tab-group {
29
+ width: 100%;
30
+ }
@@ -118,6 +118,36 @@ $rtui-button: (
118
118
  hover-bg: var(--rt-color-orange-5),
119
119
  active-shadow: var(--rt-color-orange-40),
120
120
  ),
121
+ accent-text: (
122
+ border: 0,
123
+ bg: transparent,
124
+ color: var(--rt-text-accent-info),
125
+ hover-bg: var(--rt-bg-base-hover),
126
+ ),
127
+ success-text: (
128
+ border: 0,
129
+ bg: transparent,
130
+ color: var(--rt-text-accent-success),
131
+ hover-bg: var(--rt-bg-base-hover),
132
+ ),
133
+ secondary-text: (
134
+ border: 0,
135
+ bg: transparent,
136
+ color: var(--rt-text-base-secondary),
137
+ hover-bg: var(--rt-bg-base-hover),
138
+ ),
139
+ error-text: (
140
+ border: 0,
141
+ bg: transparent,
142
+ color: var(--rt-text-accent-danger),
143
+ hover-bg: var(--rt-bg-base-hover),
144
+ ),
145
+ warning-text: (
146
+ border: 0,
147
+ bg: transparent,
148
+ color: var(--rt-text-accent-warning),
149
+ hover-bg: var(--rt-bg-base-hover),
150
+ ),
121
151
  size-sm: (
122
152
  gap: 4px,
123
153
  padding: 4px 8px,
@@ -171,27 +201,27 @@ $rtui-button: (
171
201
  --shadow: var(--rt-rtui-btn-base-shadow);
172
202
  --shadow-blur: var(--rt-rtui-btn-base-shadow-blur);
173
203
 
204
+ display: var(--display);
174
205
  width: var(--width);
175
206
  align-items: center;
176
- background-color: var(--bg);
207
+ justify-content: center;
208
+ padding: var(--padding);
177
209
  border: var(--border);
178
210
  border-radius: 6px;
211
+ background-color: var(--bg);
179
212
  box-shadow: var(--shadow);
180
213
  color: var(--color);
181
214
  cursor: pointer;
182
- display: var(--display);
183
215
  font-size: var(--font-size);
184
216
  font-weight: 600;
185
217
  gap: var(--gap);
186
- justify-content: center;
187
218
  line-height: 1;
188
- padding: var(--padding);
219
+ text-decoration: none;
189
220
  transition:
190
221
  background-color 0.15s linear,
191
222
  color 0.15s linear,
192
223
  box-shadow 0.15s linear,
193
224
  border-color 0.15s linear;
194
- text-decoration: none;
195
225
 
196
226
  &:focus {
197
227
  outline: none;
@@ -424,6 +454,71 @@ $rtui-button: (
424
454
  }
425
455
  }
426
456
 
457
+ /* text — transparent, borderless label with a subtle hover wash.
458
+ Shared box matches the legacy text-button (inline-text look). Compound
459
+ `.rtui-btn[...-text]` (0,2,0) outranks the size tokens (0,1,0) regardless of order. */
460
+ .rtui-btn[class*='-text'] {
461
+ --font-size: 16px;
462
+ --gap: 8px;
463
+ --padding: 0 10px;
464
+
465
+ min-height: 30px;
466
+ border-radius: 5px;
467
+ font-weight: 400;
468
+ }
469
+
470
+ .rtui-btn-accent-text {
471
+ --border: var(--rt-rtui-btn-accent-text-border);
472
+ --bg: var(--rt-rtui-btn-accent-text-bg);
473
+ --color: var(--rt-rtui-btn-accent-text-color);
474
+
475
+ &:hover {
476
+ --bg: var(--rt-rtui-btn-accent-text-hover-bg);
477
+ }
478
+ }
479
+
480
+ .rtui-btn-success-text {
481
+ --border: var(--rt-rtui-btn-success-text-border);
482
+ --bg: var(--rt-rtui-btn-success-text-bg);
483
+ --color: var(--rt-rtui-btn-success-text-color);
484
+
485
+ &:hover {
486
+ --bg: var(--rt-rtui-btn-success-text-hover-bg);
487
+ }
488
+ }
489
+
490
+ /* secondary-text resolves its colour ON the element so the `--rt-text-base-secondary`
491
+ semantic (`--mat-sys-on-surface-variant` hybrid) lands where Material is in scope. */
492
+ .rtui-btn-secondary-text {
493
+ --border: var(--rt-rtui-btn-secondary-text-border);
494
+ --bg: var(--rt-rtui-btn-secondary-text-bg);
495
+ --color: var(--mat-sys-on-surface-variant, var(--rt-rtui-btn-secondary-text-color));
496
+
497
+ &:hover {
498
+ --bg: var(--rt-rtui-btn-secondary-text-hover-bg);
499
+ }
500
+ }
501
+
502
+ .rtui-btn-error-text {
503
+ --border: var(--rt-rtui-btn-error-text-border);
504
+ --bg: var(--rt-rtui-btn-error-text-bg);
505
+ --color: var(--rt-rtui-btn-error-text-color);
506
+
507
+ &:hover {
508
+ --bg: var(--rt-rtui-btn-error-text-hover-bg);
509
+ }
510
+ }
511
+
512
+ .rtui-btn-warning-text {
513
+ --border: var(--rt-rtui-btn-warning-text-border);
514
+ --bg: var(--rt-rtui-btn-warning-text-bg);
515
+ --color: var(--rt-rtui-btn-warning-text-color);
516
+
517
+ &:hover {
518
+ --bg: var(--rt-rtui-btn-warning-text-hover-bg);
519
+ }
520
+ }
521
+
427
522
  /* size */
428
523
  .rtui-btn-sm {
429
524
  --gap: var(--rt-rtui-btn-size-sm-gap);
@@ -63,24 +63,20 @@ $table: (
63
63
  // initial table container scrollbar styles
64
64
  --rt-table-container-content-scrollbar-vertical-width: 0;
65
65
  --rt-table-container-content-scrollbar-horizontal-height: 12px;
66
-
67
66
  --rt-table-row-border-bottom-width: 1px;
68
67
  --rt-table-header-cell-wrapper-border-width: 1px;
69
68
  }
70
69
 
71
70
  // TABLE
72
71
  .c-table {
72
+ overflow: scroll;
73
73
  width: 100%;
74
-
75
74
  border-collapse: collapse;
76
75
 
77
- overflow-x: scroll;
78
- overflow-y: scroll;
79
-
80
76
  thead {
81
77
  position: sticky;
82
- top: 0;
83
78
  z-index: var(--rt-table-header-z-index);
79
+ top: 0;
84
80
  font-size: var(--rt-table-header-font-size);
85
81
 
86
82
  tr {
@@ -91,12 +87,12 @@ $table: (
91
87
  th {
92
88
  background-color: color-mix(in srgb, var(--rt-table-header-background-color), var(--rt-bg-base-base) 50%);
93
89
 
94
- &:not(.c-table__cell--filterable):not(.c-table__cell--empty) {
90
+ &:not(.c-table__cell--filterable, .c-table__cell--empty) {
95
91
  background-color: var(--rt-table-header-background-color);
96
92
  }
97
93
 
98
94
  &:hover {
99
- &:not(.c-table__cell--selectable):not(.c-table__cell--filterable) {
95
+ &:not(.c-table__cell--selectable, .c-table__cell--filterable) {
100
96
  background-color: color-mix(in srgb, var(--rt-table-header-background-color), var(--rt-bg-base-base) 30%);
101
97
  }
102
98
  }
@@ -105,18 +101,17 @@ $table: (
105
101
  }
106
102
 
107
103
  tbody {
108
- font-size: var(--rt-table-body-font-size);
109
104
  background-color: var(--rt-table-body-background-color);
105
+ font-size: var(--rt-table-body-font-size);
110
106
  }
111
107
  }
112
108
 
113
109
  // ROW
114
110
  .c-table__row {
115
111
  height: var(--rt-table-row-height);
116
- color: var(--rt-table-row-color);
117
112
  border-bottom: var(--rt-table-row-border-bottom);
118
113
  background-color: var(--rt-table-row-background-color);
119
-
114
+ color: var(--rt-table-row-color);
120
115
  transform: translate(0);
121
116
 
122
117
  &--active {
@@ -139,20 +134,17 @@ $table: (
139
134
 
140
135
  // CELL
141
136
  th.c-table__cell {
137
+ position: relative;
142
138
  width: fit-content;
143
139
  height: 100%;
144
-
145
- position: relative;
146
-
147
- pointer-events: none;
148
-
149
140
  padding: var(--rt-table-header-cell-wrapper-padding);
141
+ background-color: var(--rt-table-header-cell-wrapper-background-color);
150
142
  color: var(--rt-table-header-cell-wrapper-text-color);
151
143
  font-size: var(--rt-table-header-cell-wrapper-font-size);
152
144
  font-weight: var(--rt-table-header-cell-wrapper-font-weight);
153
- text-align: var(--rt-table-header-cell-wrapper-text-align);
154
145
  line-height: var(--rt-table-header-cell-wrapper-line-height);
155
- background-color: var(--rt-table-header-cell-wrapper-background-color);
146
+ pointer-events: none;
147
+ text-align: var(--rt-table-header-cell-wrapper-text-align);
156
148
 
157
149
  &--sortable,
158
150
  &--selectable,
@@ -164,14 +156,14 @@ th.c-table__cell {
164
156
  padding: var(--rt-table-header-filterable-cell-wrapper-padding);
165
157
  }
166
158
 
167
- &:not(:last-child):not(&--selectable):not(&--empty) {
168
- &::after {
169
- content: '';
159
+ &:not(:last-child, &--selectable, &--empty) {
160
+ &:after {
170
161
  position: absolute;
171
- right: 0;
172
162
  top: 25%;
163
+ right: 0;
173
164
  height: 50%;
174
165
  border-right: var(--rt-table-header-cell-wrapper-border-right);
166
+ content: '';
175
167
  pointer-events: none;
176
168
  }
177
169
  }
@@ -180,41 +172,32 @@ th.c-table__cell {
180
172
  td.c-table__cell {
181
173
  width: fit-content;
182
174
  height: 100%;
183
-
184
175
  padding: var(--rt-table-base-cell-wrapper-padding);
185
176
  }
186
177
 
187
178
  // ROW ACTIONS
188
179
  .c-table-actions {
189
- width: 100%;
190
- height: var(--rt-table-row-height);
191
-
192
180
  position: absolute;
193
- right: 0;
194
- top: 0;
195
181
  z-index: var(--rt-table-actions-z-index);
196
-
182
+ top: 0;
183
+ right: 0;
197
184
  display: flex;
198
- justify-content: flex-end;
185
+ width: 100%;
186
+ height: var(--rt-table-row-height);
199
187
  align-items: center;
200
-
188
+ justify-content: flex-end;
201
189
  pointer-events: none;
202
190
 
203
191
  &__container {
204
192
  position: sticky;
205
-
206
193
  right: 0;
194
+ display: flex;
195
+ overflow: hidden;
207
196
  width: fit-content;
208
197
  height: calc(var(--rt-table-row-height) - var(--rt-table-row-border-bottom-width) - var(--rt-table-row-border-bottom-width));
209
-
210
- display: flex;
211
- justify-content: flex-end;
212
198
  align-items: center;
213
- gap: 0.25rem;
199
+ justify-content: flex-end;
214
200
  padding: 0 0.25rem 0 1.25rem;
215
-
216
- overflow: hidden;
217
-
218
201
  background: linear-gradient(
219
202
  to right,
220
203
  transparent 0%,
@@ -223,6 +206,7 @@ td.c-table__cell {
223
206
  var(--rt-table-actions-container-background-color) 20%,
224
207
  var(--rt-table-actions-container-background-color) 100%
225
208
  );
209
+ gap: 0.25rem;
226
210
  pointer-events: none;
227
211
  }
228
212
 
@@ -3,6 +3,10 @@
3
3
  @forward 'base/mixin' as mixins-*;
4
4
  @forward 'base/base';
5
5
  @forward 'base/tokens' as tokens-*;
6
+ @forward 'base/color-scheme'; // public: rt.color-scheme($name, $roles)
7
+
8
+ // Material bridge — single home for global Material overrides
9
+ @forward 'components/material-bridge';
6
10
 
7
11
  // Components
8
12
  @forward 'components/form';