@rt-tools/ui-kit 0.0.19 → 0.0.20

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 (69) hide show
  1. package/fesm2022/rt-tools-ui-kit.mjs +205 -80
  2. package/fesm2022/rt-tools-ui-kit.mjs.map +1 -1
  3. package/package.json +1 -1
  4. package/rt-tools-ui-kit-0.0.20.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/icon-round/rtui-round-icon-button.component.scss +4 -4
  12. package/src/lib/ui-kit/buttons/multi-button/rtui-multi-button.component.scss +7 -7
  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/image-uploader/image-uploader/rtui-image-upload.component.scss +5 -5
  27. package/src/lib/ui-kit/image-uploader/stories/component/test-image-upload.component.scss +2 -2
  28. package/src/lib/ui-kit/info-badge/info-badge.component.scss +20 -19
  29. package/src/lib/ui-kit/info-badge/stories/component/test-info-badge/test-info-badge.component.scss +1 -1
  30. package/src/lib/ui-kit/modal/modal.component.scss +5 -5
  31. package/src/lib/ui-kit/popover/rtui-popover-container.component.scss +2 -3
  32. package/src/lib/ui-kit/scrollable/scrollable-container.component.scss +3 -5
  33. package/src/lib/ui-kit/side-menu/menu/rtui-side-menu.component.scss +25 -25
  34. package/src/lib/ui-kit/side-menu/menu-sub-item/rtui-side-menu-sub-item.component.scss +14 -14
  35. package/src/lib/ui-kit/side-menu/stories/component/test-side-menu-wrapper.component.scss +10 -10
  36. package/src/lib/ui-kit/snack-bar/snack-bar.component.scss +9 -9
  37. package/src/lib/ui-kit/snack-bar/stories/component/test-snack-bar.component.scss +3 -3
  38. package/src/lib/ui-kit/spinner/spinner.component.scss +10 -13
  39. package/src/lib/ui-kit/table/components/clear-search-button/rtui-clear-button.component.scss +5 -5
  40. package/src/lib/ui-kit/table/components/pagination-view/rtui-pagination.component.scss +14 -22
  41. package/src/lib/ui-kit/table/components/table-base-cell/table-base-cell.component.scss +8 -9
  42. package/src/lib/ui-kit/table/components/table-config-aside/rt-table-config-aside.component.scss +1 -1
  43. package/src/lib/ui-kit/table/components/table-container/table-container.component.scss +16 -14
  44. package/src/lib/ui-kit/table/components/table-header-cell/table-header-cell.component.scss +6 -7
  45. package/src/lib/ui-kit/table/components/table-header-filter-cell/table-header-filter-cell.component.scss +3 -3
  46. package/src/lib/ui-kit/table/dynamic-list.component.scss +2 -2
  47. package/src/lib/ui-kit/table/stories/dynamic-list/test-dynamic-list.component.scss +1 -1
  48. package/src/lib/ui-kit/table/stories/pagination/test-pagination-component.scss +4 -4
  49. package/src/lib/ui-kit/table/stories/table/test-table-component.scss +1 -1
  50. package/src/lib/ui-kit/toggle/rtui-toggle.component.scss +15 -21
  51. package/src/lib/ui-kit/toggle/stories/component/test-toggle.component.scss +2 -2
  52. package/src/lib/ui-kit/toolbar/toolbar.component.scss +5 -10
  53. package/src/styles/TOKENS.md +95 -2
  54. package/src/styles/base/_base.scss +4 -5
  55. package/src/styles/base/_color-scheme.scss +86 -0
  56. package/src/styles/base/_mixin.scss +12 -15
  57. package/src/styles/base/_tokens.scss +139 -99
  58. package/src/styles/base/_variables.scss +5 -11
  59. package/src/styles/color-scheme.spec.ts +236 -0
  60. package/src/styles/components/_button.scss +32 -24
  61. package/src/styles/components/_dynamic-selectors.scss +9 -10
  62. package/src/styles/components/_form.scss +8 -13
  63. package/src/styles/components/_material-bridge.scss +30 -0
  64. package/src/styles/components/_rtui_button.scss +5 -5
  65. package/src/styles/components/_table.scss +23 -39
  66. package/src/styles/main.scss +4 -0
  67. package/styles/tokens.css +79 -101
  68. package/types/rt-tools-ui-kit.d.ts +55 -7
  69. package/rt-tools-ui-kit-0.0.19.tgz +0 -0
@@ -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';
package/styles/tokens.css CHANGED
@@ -1,24 +1,26 @@
1
+ @charset "UTF-8";
1
2
  /* Material Theme */
2
3
  /* Base */
3
4
  /* Device Definitions */
4
5
  /* Fonts */
5
- /* Colors */
6
+ /* Button palette seeds (static — fed to sass color.scale() for hover/active states) */
6
7
  /* Components */
7
8
  /* ============================== Tier 1: primitives ============================== */
9
+ /* ------------------------------ Accent-role ramps (indirection layer) ------------------------------ */
8
10
  /* ============================== Tier 2: semantic ============================== */
9
11
  /* ============================== Foundations (mode-independent) ============================== */
10
12
  /* ============================== Emission ============================== */
11
13
  :root {
12
14
  color-scheme: light;
13
15
  /* --- Tier 1: primitives --- */
14
- --rt-color-neutral-0: #ffffff;
16
+ --rt-color-neutral-0: #fff;
15
17
  --rt-color-neutral-5: #f5f6f8;
16
18
  --rt-color-neutral-10: #f3f3f3;
17
- --rt-color-neutral-15: #eeeeee;
19
+ --rt-color-neutral-15: #eee;
18
20
  --rt-color-neutral-20: #e8e8e8;
19
21
  --rt-color-neutral-25: #e0e0e0;
20
22
  --rt-color-neutral-30: #d1d1d1;
21
- --rt-color-neutral-35: #cccccc;
23
+ --rt-color-neutral-35: #ccc;
22
24
  --rt-color-neutral-40: #a3a3a3;
23
25
  --rt-color-neutral-60: #747474;
24
26
  --rt-color-neutral-80: #323033;
@@ -127,41 +129,59 @@
127
129
  --rt-color-light-a80: rgba(255, 255, 255, 0.8);
128
130
  --rt-color-dark-a90: rgba(24, 24, 24, 0.9);
129
131
  --rt-color-light-a90: rgba(255, 255, 255, 0.9);
132
+ --rt-color-primary-20: var(--mat-sys-primary-container, #eaedfc);
133
+ --rt-color-primary-40: #b3ceef;
134
+ --rt-color-primary-60: var(--mat-sys-primary, #6d96e8);
135
+ --rt-color-primary-100: var(--mat-sys-primary, #4284d7);
136
+ --rt-color-info-20: #eaedfc;
137
+ --rt-color-info-80: #4285f4;
138
+ --rt-color-info-100: #4284d7;
139
+ --rt-color-success-10: #e5f8f4;
140
+ --rt-color-success-80: #21b18e;
141
+ --rt-color-success-100: #01af8d;
142
+ --rt-color-warning-10: #e8cbbf;
143
+ --rt-color-warning-80: #ee7a34;
144
+ --rt-color-warning-100: #ef7128;
145
+ --rt-color-danger-10: var(--mat-sys-error-container, #fdedee);
146
+ --rt-color-danger-60: #e88487;
147
+ --rt-color-danger-100: var(--mat-sys-error, #eb5055);
148
+ --rt-color-brand-20: var(--mat-sys-primary, #e8e8e8);
149
+ --rt-color-brand-100: var(--mat-sys-primary, #0d1c2b);
130
150
  /* --- Tier 2: semantic --- */
131
- --rt-bg-base-base: var(--mat-sys-surface, light-dark(#ffffff, #1c1b1e));
132
- --rt-bg-base-elevated: var(--mat-sys-surface-container, light-dark(#ffffff, #2a292d));
151
+ --rt-bg-base-base: var(--mat-sys-surface, light-dark(#fff, #1c1b1e));
152
+ --rt-bg-base-elevated: var(--mat-sys-surface-container, light-dark(#fff, #2a292d));
133
153
  --rt-bg-base-subtle: light-dark(#f5f6f8, #232226);
134
154
  --rt-bg-base-hover: light-dark(#f3f3f3, rgba(255, 255, 255, 0.06));
135
- --rt-bg-base-active: light-dark(#eeeeee, rgba(255, 255, 255, 0.1));
155
+ --rt-bg-base-active: light-dark(#eee, rgba(255, 255, 255, 0.1));
136
156
  --rt-bg-base-strong: light-dark(#e0e0e0, #3f3e43);
137
157
  --rt-bg-base-emphasis: light-dark(#747474, #a3a3a3);
138
158
  --rt-bg-base-emphasis-soft: light-dark(#a3a3a3, #747474);
139
159
  --rt-bg-base-inverse: var(--mat-sys-inverse-surface, light-dark(#181818, #f3f3f3));
140
- --rt-bg-base-inverse-soft: light-dark(#323033, #eeeeee);
160
+ --rt-bg-base-inverse-soft: light-dark(#323033, #eee);
141
161
  --rt-bg-base-overlay: light-dark(rgba(0, 0, 0, 0.32), rgba(0, 0, 0, 0.6));
142
- --rt-bg-static-light: #ffffff;
162
+ --rt-bg-static-light: #fff;
143
163
  --rt-bg-static-dark: #181818;
144
164
  --rt-bg-static-none: transparent;
145
- --rt-bg-accent-primary-subtle: var(--mat-sys-primary-container, light-dark(#eaedfc, color-mix(in srgb, #4284d7 18%, #1c1b1e)));
146
- --rt-bg-accent-primary-solid: var(--mat-sys-primary, light-dark(#4284d7, #4284d7));
147
- --rt-bg-accent-primary-hover: light-dark(color-mix(in srgb, #4284d7 90%, #000000), color-mix(in srgb, #4284d7 90%, #ffffff));
148
- --rt-bg-accent-primary-disabled: color-mix(in srgb, #4284d7 38%, transparent);
149
- --rt-bg-accent-success-subtle: light-dark(#e5f8f4, color-mix(in srgb, #01af8d 18%, #1c1b1e));
150
- --rt-bg-accent-success-solid: #21b18e;
151
- --rt-bg-accent-success-hover: light-dark(color-mix(in srgb, #21b18e 90%, #000000), color-mix(in srgb, #21b18e 90%, #ffffff));
152
- --rt-bg-accent-success-disabled: color-mix(in srgb, #21b18e 38%, transparent);
153
- --rt-bg-accent-warning-subtle: light-dark(#e8cbbf, color-mix(in srgb, #ef7128 18%, #1c1b1e));
154
- --rt-bg-accent-warning-solid: #ee7a34;
155
- --rt-bg-accent-warning-hover: light-dark(color-mix(in srgb, #ee7a34 90%, #000000), color-mix(in srgb, #ee7a34 90%, #ffffff));
156
- --rt-bg-accent-warning-disabled: color-mix(in srgb, #ee7a34 38%, transparent);
157
- --rt-bg-accent-danger-subtle: var(--mat-sys-error-container, light-dark(#fdedee, color-mix(in srgb, #eb5055 18%, #1c1b1e)));
158
- --rt-bg-accent-danger-solid: var(--mat-sys-error, light-dark(#eb5055, #eb5055));
159
- --rt-bg-accent-danger-hover: light-dark(color-mix(in srgb, #eb5055 90%, #000000), color-mix(in srgb, #eb5055 90%, #ffffff));
160
- --rt-bg-accent-danger-disabled: color-mix(in srgb, #eb5055 38%, transparent);
161
- --rt-bg-accent-info-subtle: light-dark(#eaedfc, color-mix(in srgb, #4284d7 18%, #1c1b1e));
162
- --rt-bg-accent-info-solid: #4284d7;
163
- --rt-bg-accent-info-hover: light-dark(color-mix(in srgb, #4284d7 90%, #000000), color-mix(in srgb, #4284d7 90%, #ffffff));
164
- --rt-bg-accent-info-disabled: color-mix(in srgb, #4284d7 38%, transparent);
165
+ --rt-bg-accent-primary-subtle: light-dark(var(--rt-color-primary-20), color-mix(in srgb, var(--rt-color-primary-100) 18%, #1c1b1e));
166
+ --rt-bg-accent-primary-solid: var(--rt-color-primary-100);
167
+ --rt-bg-accent-primary-hover: light-dark(color-mix(in srgb, var(--rt-color-primary-100) 90%, #000), color-mix(in srgb, var(--rt-color-primary-100) 90%, #fff));
168
+ --rt-bg-accent-primary-disabled: color-mix(in srgb, var(--rt-color-primary-100) 38%, transparent);
169
+ --rt-bg-accent-success-subtle: light-dark(var(--rt-color-success-10), color-mix(in srgb, var(--rt-color-success-100) 18%, #1c1b1e));
170
+ --rt-bg-accent-success-solid: var(--rt-color-success-80);
171
+ --rt-bg-accent-success-hover: light-dark(color-mix(in srgb, var(--rt-color-success-80) 90%, #000), color-mix(in srgb, var(--rt-color-success-80) 90%, #fff));
172
+ --rt-bg-accent-success-disabled: color-mix(in srgb, var(--rt-color-success-80) 38%, transparent);
173
+ --rt-bg-accent-warning-subtle: light-dark(var(--rt-color-warning-10), color-mix(in srgb, var(--rt-color-warning-100) 18%, #1c1b1e));
174
+ --rt-bg-accent-warning-solid: var(--rt-color-warning-80);
175
+ --rt-bg-accent-warning-hover: light-dark(color-mix(in srgb, var(--rt-color-warning-80) 90%, #000), color-mix(in srgb, var(--rt-color-warning-80) 90%, #fff));
176
+ --rt-bg-accent-warning-disabled: color-mix(in srgb, var(--rt-color-warning-80) 38%, transparent);
177
+ --rt-bg-accent-danger-subtle: light-dark(var(--rt-color-danger-10), color-mix(in srgb, var(--rt-color-danger-100) 18%, #1c1b1e));
178
+ --rt-bg-accent-danger-solid: var(--rt-color-danger-100);
179
+ --rt-bg-accent-danger-hover: light-dark(color-mix(in srgb, var(--rt-color-danger-100) 90%, #000), color-mix(in srgb, var(--rt-color-danger-100) 90%, #fff));
180
+ --rt-bg-accent-danger-disabled: color-mix(in srgb, var(--rt-color-danger-100) 38%, transparent);
181
+ --rt-bg-accent-info-subtle: light-dark(var(--rt-color-info-20), color-mix(in srgb, var(--rt-color-info-100) 18%, #1c1b1e));
182
+ --rt-bg-accent-info-solid: var(--rt-color-info-100);
183
+ --rt-bg-accent-info-hover: light-dark(color-mix(in srgb, var(--rt-color-info-100) 90%, #000), color-mix(in srgb, var(--rt-color-info-100) 90%, #fff));
184
+ --rt-bg-accent-info-disabled: color-mix(in srgb, var(--rt-color-info-100) 38%, transparent);
165
185
  --rt-bg-accent-neutral-subtle: light-dark(#f3f3f3, rgba(255, 255, 255, 0.06));
166
186
  --rt-bg-accent-neutral-solid: light-dark(#747474, #a3a3a3);
167
187
  --rt-bg-accent-neutral-hover: light-dark(#a3a3a3, #747474);
@@ -171,48 +191,48 @@
171
191
  --rt-text-base-soft: light-dark(#323033, #e0e0e0);
172
192
  --rt-text-base-secondary: var(--mat-sys-on-surface-variant, light-dark(#747474, #a3a3a3));
173
193
  --rt-text-base-disabled: light-dark(#a3a3a3, #747474);
174
- --rt-text-base-inverse: var(--mat-sys-inverse-on-surface, light-dark(#ffffff, #181818));
175
- --rt-text-static-light: #ffffff;
194
+ --rt-text-base-inverse: var(--mat-sys-inverse-on-surface, light-dark(#fff, #181818));
195
+ --rt-text-static-light: #fff;
176
196
  --rt-text-static-dark: #181818;
177
- --rt-text-accent-brand: var(--mat-sys-primary, light-dark(#0d1c2b, #e8e8e8));
178
- --rt-text-accent-primary: var(--mat-sys-primary, light-dark(#4284d7, #6d96e8));
179
- --rt-text-accent-success: #01af8d;
180
- --rt-text-accent-success-soft: #21b18e;
181
- --rt-text-accent-warning: #ef7128;
182
- --rt-text-accent-warning-soft: #ee7a34;
183
- --rt-text-accent-danger: var(--mat-sys-error, light-dark(#eb5055, #eb5055));
184
- --rt-text-accent-danger-soft: #e88487;
185
- --rt-text-accent-info: #4284d7;
186
- --rt-text-accent-info-soft: #4285f4;
197
+ --rt-text-accent-brand: light-dark(var(--rt-color-brand-100), var(--rt-color-brand-20));
198
+ --rt-text-accent-primary: light-dark(var(--rt-color-primary-100), var(--rt-color-primary-60));
199
+ --rt-text-accent-success: var(--rt-color-success-100);
200
+ --rt-text-accent-success-soft: var(--rt-color-success-80);
201
+ --rt-text-accent-warning: var(--rt-color-warning-100);
202
+ --rt-text-accent-warning-soft: var(--rt-color-warning-80);
203
+ --rt-text-accent-danger: var(--rt-color-danger-100);
204
+ --rt-text-accent-danger-soft: var(--rt-color-danger-60);
205
+ --rt-text-accent-info: var(--rt-color-info-100);
206
+ --rt-text-accent-info-soft: var(--rt-color-info-80);
187
207
  --rt-icon-neutral-default: light-dark(#323033, #e0e0e0);
188
208
  --rt-icon-neutral-soft: light-dark(#747474, #a3a3a3);
189
209
  --rt-icon-neutral-disabled: light-dark(#a3a3a3, #747474);
190
- --rt-icon-neutral-inverse: light-dark(#ffffff, #181818);
191
- --rt-icon-static-light: #ffffff;
210
+ --rt-icon-neutral-inverse: light-dark(#fff, #181818);
211
+ --rt-icon-static-light: #fff;
192
212
  --rt-icon-static-dark: #181818;
193
- --rt-icon-accent-brand: var(--mat-sys-primary, light-dark(#0d1c2b, #e8e8e8));
194
- --rt-icon-accent-primary: var(--mat-sys-primary, light-dark(#4284d7, #6d96e8));
195
- --rt-icon-accent-success: #01af8d;
196
- --rt-icon-accent-warning: #ef7128;
197
- --rt-icon-accent-danger: var(--mat-sys-error, light-dark(#eb5055, #eb5055));
198
- --rt-icon-accent-info: #4284d7;
213
+ --rt-icon-accent-brand: light-dark(var(--rt-color-brand-100), var(--rt-color-brand-20));
214
+ --rt-icon-accent-primary: light-dark(var(--rt-color-primary-100), var(--rt-color-primary-60));
215
+ --rt-icon-accent-success: var(--rt-color-success-100);
216
+ --rt-icon-accent-warning: var(--rt-color-warning-100);
217
+ --rt-icon-accent-danger: var(--rt-color-danger-100);
218
+ --rt-icon-accent-info: var(--rt-color-info-100);
199
219
  --rt-border-neutral-subtle: light-dark(#e8e8e8, #2e2d31);
200
220
  --rt-border-neutral-default: var(--mat-sys-outline-variant, light-dark(#e0e0e0, #3f3e43));
201
221
  --rt-border-neutral-medium: light-dark(#d1d1d1, #4a494e);
202
- --rt-border-neutral-divider: light-dark(#cccccc, #4a494e);
222
+ --rt-border-neutral-divider: light-dark(#ccc, #4a494e);
203
223
  --rt-border-neutral-strong: var(--mat-sys-outline, light-dark(#a3a3a3, #5c5b60));
204
224
  --rt-border-neutral-emphasis: light-dark(#747474, #a3a3a3);
205
- --rt-border-accent-primary: var(--mat-sys-primary, light-dark(#4284d7, #6d96e8));
206
- --rt-border-accent-success: #01af8d;
207
- --rt-border-accent-warning: #ef7128;
208
- --rt-border-accent-danger: var(--mat-sys-error, light-dark(#eb5055, #eb5055));
209
- --rt-border-accent-danger-soft: #e88487;
210
- --rt-border-accent-info: #4284d7;
211
- --rt-border-focus: light-dark(#b3ceef, #6d96e8);
225
+ --rt-border-accent-primary: light-dark(var(--rt-color-primary-100), var(--rt-color-primary-60));
226
+ --rt-border-accent-success: var(--rt-color-success-100);
227
+ --rt-border-accent-warning: var(--rt-color-warning-100);
228
+ --rt-border-accent-danger: var(--rt-color-danger-100);
229
+ --rt-border-accent-danger-soft: var(--rt-color-danger-60);
230
+ --rt-border-accent-info: var(--rt-color-info-100);
231
+ --rt-border-focus: light-dark(var(--rt-color-primary-40), var(--rt-color-primary-60));
212
232
  --rt-control-track: light-dark(#e8e8e8, #4a494e);
213
- --rt-control-thumb: light-dark(#ffffff, #eeeeee);
233
+ --rt-control-thumb: light-dark(#fff, #eee);
214
234
  --rt-control-checked: light-dark(#323033, #e0e0e0);
215
- --rt-scrollbar-thumb: light-dark(#cccccc, #4a494e);
235
+ --rt-scrollbar-thumb: light-dark(#ccc, #4a494e);
216
236
  --rt-scrollbar-thumb-hover: light-dark(#a3a3a3, #5c5b60);
217
237
  --rt-shadow-color: light-dark(#747474, rgba(0, 0, 0, 0.6));
218
238
  /* --- Foundations --- */
@@ -263,48 +283,6 @@
263
283
  --rt-breakpoint-md: 960px;
264
284
  --rt-breakpoint-lg: 1280px;
265
285
  --rt-breakpoint-xl: 1920px;
266
- /* --- Deprecated aliases (legacy --clr-*; remove after consumers migrate) --- */
267
- --clr-white-100: var(--rt-color-neutral-0);
268
- --clr-gray-5: var(--rt-color-neutral-5);
269
- --clr-gray-10: var(--rt-color-neutral-20);
270
- --clr-gray-15: var(--rt-color-neutral-30);
271
- --clr-gray-20: var(--rt-color-neutral-35);
272
- --clr-black-10: var(--rt-color-neutral-10);
273
- --clr-black-15: var(--rt-color-neutral-15);
274
- --clr-black-20: var(--rt-color-neutral-25);
275
- --clr-black-30: #b2cbca;
276
- --clr-black-40: var(--rt-color-neutral-40);
277
- --clr-black-60: var(--rt-color-neutral-60);
278
- --clr-black-80: var(--rt-color-neutral-80);
279
- --clr-black-100: var(--rt-color-neutral-100);
280
- --clr-red-10: var(--rt-color-red-10);
281
- --clr-red-20: var(--rt-color-red-20);
282
- --clr-red-40: var(--rt-color-red-40);
283
- --clr-red-60: var(--rt-color-red-60);
284
- --clr-red-80: var(--rt-color-red-80);
285
- --clr-red-100: var(--rt-color-red-100);
286
- --clr-orange-5: var(--rt-color-orange-5);
287
- --clr-orange-10: var(--rt-color-orange-10);
288
- --clr-orange-20: var(--rt-color-orange-20);
289
- --clr-orange-40: var(--rt-color-orange-40);
290
- --clr-orange-60: var(--rt-color-orange-60);
291
- --clr-orange-70: var(--rt-color-orange-70);
292
- --clr-orange-80: var(--rt-color-orange-80);
293
- --clr-orange-100: var(--rt-color-orange-100);
294
- --clr-blue-20: var(--rt-color-blue-20);
295
- --clr-blue-40: var(--rt-color-blue-40);
296
- --clr-blue-60: var(--rt-color-blue-60);
297
- --clr-blue-80: var(--rt-color-blue-80);
298
- --clr-blue-100: var(--rt-color-blue-100);
299
- --clr-green-10: var(--rt-color-green-10);
300
- --clr-green-20: var(--rt-color-green-20);
301
- --clr-green-40: var(--rt-color-green-40);
302
- --clr-green-60: var(--rt-color-green-60);
303
- --clr-green-80: var(--rt-color-green-80);
304
- --clr-green-100: var(--rt-color-green-100);
305
- --clr-txt: var(--rt-text-base-primary);
306
- --clr-base-accent: var(--rt-color-brand);
307
- --clr-white-rgb: 255, 255, 255;
308
286
  }
309
287
 
310
288
  /* Theme switching: global class + nested local contexts (GMT data-theme analogue) */
@@ -1600,23 +1600,71 @@ declare const RT_THEME_STORAGE_KEY: string;
1600
1600
  declare const RT_DARK_CLASS: string;
1601
1601
  declare const RT_THEME_AUTO_CLASS: string;
1602
1602
  declare const RT_THEME_ATTRIBUTE: string;
1603
+ /**
1604
+ * Accent roles whose `--rt-color-{role}-{0..100}` indirection rows a custom
1605
+ * color scheme may override. The semantic accent tier
1606
+ * (`--rt-bg/text/icon/border-accent-*`) derives entirely from these rows.
1607
+ */
1608
+ declare enum RT_ACCENT_ROLE_ENUM {
1609
+ PRIMARY = "primary",
1610
+ INFO = "info",
1611
+ SUCCESS = "success",
1612
+ WARNING = "warning",
1613
+ DANGER = "danger",
1614
+ BRAND = "brand"
1615
+ }
1616
+ type RtAccentRole = `${RT_ACCENT_ROLE_ENUM}`;
1617
+ /**
1618
+ * A brand palette: per accent role, a tonal ramp mapping tone step (0–100)
1619
+ * to a CSS color. One ramp serves both light and dark (the mode picks the tone).
1620
+ * Partial ramps are allowed — unset tones keep the rt-tools defaults.
1621
+ *
1622
+ * @example
1623
+ * const teal: RtColorSchemeRamp = {
1624
+ * primary: { 20: '#b3e3e1', 40: '#5cb8b5', 60: '#1a9d99', 100: '#008582' },
1625
+ * brand: { 20: '#e8e8e8', 100: '#008582' },
1626
+ * };
1627
+ */
1628
+ type RtColorSchemeRamp = Partial<Record<RtAccentRole, Record<number, string>>>;
1629
+ /** `'default'`/`null` clears the active scheme (back to the rt-tools palette). */
1630
+ declare const RT_DEFAULT_SCHEME: string;
1631
+ declare const RT_COLOR_SCHEME_STORAGE_KEY: string;
1632
+ declare const RT_SCHEME_ATTRIBUTE: string;
1603
1633
 
1604
1634
  /**
1605
- * Global theme switcher for the rt-tools design tokens.
1635
+ * Global theme + color-scheme switcher for the rt-tools design tokens.
1606
1636
  *
1607
- * Applies `.rt-dark` / `.rt-theme-auto` to `<html>`; all semantic tokens
1608
- * (`--rt-*`) adapt through `color-scheme` + `light-dark()`.
1609
- * The chosen theme is persisted to localStorage (`rt-theme` key).
1637
+ * **Theme** (`light`/`dark`/`auto`): applies `.rt-dark` / `.rt-theme-auto` to
1638
+ * `<html>`; semantic tokens (`--rt-*`) adapt through `color-scheme` + `light-dark()`.
1639
+ * Persisted to localStorage (`rt-theme`). `auto` follows the OS preference.
1610
1640
  *
1611
- * `auto` follows the OS preference (`prefers-color-scheme`).
1641
+ * **Color scheme** (brand palette): toggles `data-rt-scheme="<name>"` on `<html>`,
1642
+ * which activates a `[data-rt-scheme]` block (emitted by the `rt.color-scheme` Sass
1643
+ * mixin or injected at runtime via {@link registerColorScheme}). It overrides only
1644
+ * the accent-role rows `--rt-color-{role}-{N}`, so the whole accent layer recolors
1645
+ * while semantic token names stay stable. Orthogonal to light/dark; persisted to
1646
+ * localStorage (`rt-color-scheme`).
1612
1647
  */
1613
1648
  declare class RtThemeService {
1614
1649
  #private;
1615
1650
  readonly theme: Signal<RtThemeType>;
1651
+ readonly colorScheme: Signal<string | null>;
1616
1652
  constructor();
1617
1653
  setTheme(theme: RtThemeType): void;
1618
1654
  /** Toggles between light and dark (auto resolves to its opposite visual state). */
1619
1655
  toggle(): void;
1656
+ /**
1657
+ * Activates a registered color scheme by name, or clears it with `null`/`'default'`.
1658
+ * Orthogonal to the light/dark theme; persisted to localStorage.
1659
+ */
1660
+ setColorScheme(name: string | null): void;
1661
+ /**
1662
+ * Injects (or replaces) a color scheme's `[data-rt-scheme]` block at runtime —
1663
+ * the JS twin of the `rt.color-scheme` Sass mixin. Browser-only (no-op on server;
1664
+ * for SSR/brand-critical schemes prefer the Sass path). Does not activate the
1665
+ * scheme — call {@link setColorScheme} afterwards.
1666
+ */
1667
+ registerColorScheme(name: string, ramp: RtColorSchemeRamp): void;
1620
1668
  static ɵfac: i0.ɵɵFactoryDeclaration<RtThemeService, never>;
1621
1669
  static ɵprov: i0.ɵɵInjectableDeclaration<RtThemeService>;
1622
1670
  }
@@ -1641,5 +1689,5 @@ declare class RtThemeDirective {
1641
1689
  static ɵdir: i0.ɵɵDirectiveDeclaration<RtThemeDirective, "[rtTheme]", never, { "rtTheme": { "alias": "rtTheme"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1642
1690
  }
1643
1691
 
1644
- export { ASIDE_BUTTONS_ENUM, ASIDE_REF, AsideRef, BUTTON_APPEARANCE, BUTTON_COLOR, BUTTON_SIZE, DEFAULT_PAGE_MODEL, DEFAULT_PAGE_SIZE, IAside, IModal, INFO_BADGE_SIZE_ENUM, INFO_BADGE_TYPE_ENUM, IRtActionBar, IRtSnackBar, ISideMenu, ITable, MODAL_WINDOW_SIZE_ENUM, RTUI_TABLE_COMPONENT_TOKEN, RTUI_TABLE_STOP_ROW_CLICK_ATTRIBUTE, RT_DARK_CLASS, RT_THEME_ATTRIBUTE, RT_THEME_AUTO_CLASS, RT_THEME_ENUM, RT_THEME_STORAGE_KEY, RtActionBarService, RtAsideService, RtDynamicListSelectorsDirective, RtModalService, RtPopoverDirective, RtSnackBarService, RtTableConfigService, RtTableSelectorsDirective, RtThemeDirective, RtThemeService, RtuiActionBarComponent, RtuiActionBarContainerComponent, RtuiAsideContainerComponent, RtuiAsideContainerHeaderDirective, RtuiButtonComponent, RtuiClearButtonComponent, RtuiCustomTableCellsDirective, RtuiDynamicInputAdditionalControlDirective, RtuiDynamicInputComponent, RtuiDynamicListComponent, RtuiDynamicListCustomTableCellsDirective, RtuiDynamicListRowActionsDirective, RtuiDynamicListRowAdditionalActionsDirective, RtuiDynamicListToolbarActionsDirective, RtuiDynamicListToolbarSelectorsDirective, RtuiDynamicSelectorAdditionalControlDirective, RtuiDynamicSelectorComponent, RtuiDynamicSelectorItemAdditionalControlDirective, RtuiDynamicSelectorItemTitleDirective, RtuiDynamicSelectorItemTitleProjectionDirective, RtuiDynamicSelectorListActionsComponent, RtuiDynamicSelectorPlaceholderComponent, RtuiDynamicSelectorSelectedListComponent, RtuiFileUploadComponent, RtuiHeaderCenterDirective, RtuiHeaderComponent, RtuiHeaderLeftDirective, RtuiHeaderRightDirective, RtuiImageUploadComponent, RtuiInfoBadgeComponent, RtuiModalComponent, RtuiMultiButtonComponent, RtuiMultiSelectorPopupComponent, RtuiPaginationComponent, RtuiRoundIconButtonComponent, RtuiScrollableContainerComponent, RtuiScrollableContainerContentDirective, RtuiScrollableContainerFooterDirective, RtuiScrollableContainerHeaderDirective, RtuiSideMenuComponent, RtuiSideMenuFooterDirective, RtuiSideMenuHeaderDirective, RtuiSnackBarComponent, RtuiSpinnerComponent, RtuiStopTableRowClickDirective, RtuiTableAdditionalRowActionsDirective, RtuiTableComponent, RtuiTableRowActionsDirective, RtuiTableRowClickDirective, RtuiToggleComponent, RtuiToolbarCenterDirective, RtuiToolbarComponent, RtuiToolbarLeftDirective, RtuiToolbarRightDirective, TABLE_COLUMN_FILTER_TYPES_ENUM, TABLE_COLUMN_TYPES_ENUM, TEXT_CELL_COLOR_ENUM, TOGGLE_SIZE_TYPE_ENUM, darkenHexColor, ddServices, getColorBasedOnBackground, progressDecreaseAnimation, progressIncreaseAnimation, provideRtUi };
1645
- export type { AsideButtonsType, AsidePositions, ButtonAppearanceType, ButtonColorType, ButtonSizeType, IImageUploadFormat, IInfoBadgeSizeType, IRtuiTable, Icon, IconSideType, InfoBadgeType, MenuItemTrigger, ModalWindowSizeType, NameValueType, RtThemeType, Select, ToggleSizeType };
1692
+ export { ASIDE_BUTTONS_ENUM, ASIDE_REF, AsideRef, BUTTON_APPEARANCE, BUTTON_COLOR, BUTTON_SIZE, DEFAULT_PAGE_MODEL, DEFAULT_PAGE_SIZE, IAside, IModal, INFO_BADGE_SIZE_ENUM, INFO_BADGE_TYPE_ENUM, IRtActionBar, IRtSnackBar, ISideMenu, ITable, MODAL_WINDOW_SIZE_ENUM, RTUI_TABLE_COMPONENT_TOKEN, RTUI_TABLE_STOP_ROW_CLICK_ATTRIBUTE, RT_ACCENT_ROLE_ENUM, RT_COLOR_SCHEME_STORAGE_KEY, RT_DARK_CLASS, RT_DEFAULT_SCHEME, RT_SCHEME_ATTRIBUTE, RT_THEME_ATTRIBUTE, RT_THEME_AUTO_CLASS, RT_THEME_ENUM, RT_THEME_STORAGE_KEY, RtActionBarService, RtAsideService, RtDynamicListSelectorsDirective, RtModalService, RtPopoverDirective, RtSnackBarService, RtTableConfigService, RtTableSelectorsDirective, RtThemeDirective, RtThemeService, RtuiActionBarComponent, RtuiActionBarContainerComponent, RtuiAsideContainerComponent, RtuiAsideContainerHeaderDirective, RtuiButtonComponent, RtuiClearButtonComponent, RtuiCustomTableCellsDirective, RtuiDynamicInputAdditionalControlDirective, RtuiDynamicInputComponent, RtuiDynamicListComponent, RtuiDynamicListCustomTableCellsDirective, RtuiDynamicListRowActionsDirective, RtuiDynamicListRowAdditionalActionsDirective, RtuiDynamicListToolbarActionsDirective, RtuiDynamicListToolbarSelectorsDirective, RtuiDynamicSelectorAdditionalControlDirective, RtuiDynamicSelectorComponent, RtuiDynamicSelectorItemAdditionalControlDirective, RtuiDynamicSelectorItemTitleDirective, RtuiDynamicSelectorItemTitleProjectionDirective, RtuiDynamicSelectorListActionsComponent, RtuiDynamicSelectorPlaceholderComponent, RtuiDynamicSelectorSelectedListComponent, RtuiFileUploadComponent, RtuiHeaderCenterDirective, RtuiHeaderComponent, RtuiHeaderLeftDirective, RtuiHeaderRightDirective, RtuiImageUploadComponent, RtuiInfoBadgeComponent, RtuiModalComponent, RtuiMultiButtonComponent, RtuiMultiSelectorPopupComponent, RtuiPaginationComponent, RtuiRoundIconButtonComponent, RtuiScrollableContainerComponent, RtuiScrollableContainerContentDirective, RtuiScrollableContainerFooterDirective, RtuiScrollableContainerHeaderDirective, RtuiSideMenuComponent, RtuiSideMenuFooterDirective, RtuiSideMenuHeaderDirective, RtuiSnackBarComponent, RtuiSpinnerComponent, RtuiStopTableRowClickDirective, RtuiTableAdditionalRowActionsDirective, RtuiTableComponent, RtuiTableRowActionsDirective, RtuiTableRowClickDirective, RtuiToggleComponent, RtuiToolbarCenterDirective, RtuiToolbarComponent, RtuiToolbarLeftDirective, RtuiToolbarRightDirective, TABLE_COLUMN_FILTER_TYPES_ENUM, TABLE_COLUMN_TYPES_ENUM, TEXT_CELL_COLOR_ENUM, TOGGLE_SIZE_TYPE_ENUM, darkenHexColor, ddServices, getColorBasedOnBackground, progressDecreaseAnimation, progressIncreaseAnimation, provideRtUi };
1693
+ export type { AsideButtonsType, AsidePositions, ButtonAppearanceType, ButtonColorType, ButtonSizeType, IImageUploadFormat, IInfoBadgeSizeType, IRtuiTable, Icon, IconSideType, InfoBadgeType, MenuItemTrigger, ModalWindowSizeType, NameValueType, RtAccentRole, RtColorSchemeRamp, RtThemeType, Select, ToggleSizeType };
Binary file