@odx/ui 4.10.0 → 4.10.1

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 (107) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/ag-grid-theme.css +1 -261
  3. package/charts-theme.css +1 -45
  4. package/core-theme.css +1 -7478
  5. package/package.json +9 -3
  6. package/scss/_application.scss +59 -0
  7. package/scss/_base.scss +31 -0
  8. package/scss/_breakpoints.scss +86 -0
  9. package/scss/_color-palettes-dark.scss +53 -0
  10. package/scss/_color-palettes.scss +96 -0
  11. package/scss/_colors-dark.scss +53 -0
  12. package/scss/_colors.scss +98 -0
  13. package/scss/_content.scss +25 -0
  14. package/scss/_controls.scss +57 -0
  15. package/scss/_description-list.scss +30 -0
  16. package/scss/_dimensions.scss +81 -0
  17. package/scss/_helpers.scss +85 -0
  18. package/scss/_index.scss +8 -0
  19. package/scss/_layout.scss +162 -0
  20. package/scss/_motion.scss +14 -0
  21. package/scss/_skeleton.scss +49 -0
  22. package/scss/_text-list.scss +18 -0
  23. package/scss/_typography.scss +21 -0
  24. package/scss/_utils.scss +131 -0
  25. package/scss/_vertical-rythm.scss +3 -0
  26. package/scss/_visuals.scss +27 -0
  27. package/scss/accordion-item.component.scss +56 -0
  28. package/scss/accordion.component.scss +3 -0
  29. package/scss/action-group.component.scss +29 -0
  30. package/scss/active-indicator.scss +25 -0
  31. package/scss/ag-grid/theme.scss +303 -0
  32. package/scss/area-header.component.scss +163 -0
  33. package/scss/autocomplete.component.scss +14 -0
  34. package/scss/avatar.component.scss +68 -0
  35. package/scss/badge.component.scss +49 -0
  36. package/scss/bar.component.scss +93 -0
  37. package/scss/brand-logo.component.scss +17 -0
  38. package/scss/breadcrumbs.component.scss +45 -0
  39. package/scss/button-group.component.scss +101 -0
  40. package/scss/button.component.scss +143 -0
  41. package/scss/calendar.component.scss +243 -0
  42. package/scss/card.component.scss +232 -0
  43. package/scss/checkbox.component.scss +136 -0
  44. package/scss/chip-list.component.scss +23 -0
  45. package/scss/chip.component.scss +74 -0
  46. package/scss/circular-progress.component.scss +75 -0
  47. package/scss/components/card.component.scss +6 -6
  48. package/scss/components/table.component.scss +1 -0
  49. package/scss/connected-overlay.scss +63 -0
  50. package/scss/content-box.component.scss +46 -0
  51. package/scss/datepicker.component.scss +36 -0
  52. package/scss/daterangepicker.component.scss +45 -0
  53. package/scss/dropdown.component.scss +37 -0
  54. package/scss/error-page.component.scss +46 -0
  55. package/scss/expandable-list-item.component.scss +59 -0
  56. package/scss/footer.component.scss +86 -0
  57. package/scss/form-field.component.scss +264 -0
  58. package/scss/header-navigation.component.scss +35 -0
  59. package/scss/header.component.scss +73 -0
  60. package/scss/icon.component.scss +21 -0
  61. package/scss/inline-message.component.scss +34 -0
  62. package/scss/launch-tile.component.scss +119 -0
  63. package/scss/link.component.scss +28 -0
  64. package/scss/list-item.component.scss +119 -0
  65. package/scss/list.component.scss +27 -0
  66. package/scss/loading-spinner.component.scss +70 -0
  67. package/scss/logo.component.scss +33 -0
  68. package/scss/main-menu-button.component.scss +11 -0
  69. package/scss/main-menu-item.component.scss +55 -0
  70. package/scss/main-menu.component.scss +139 -0
  71. package/scss/mainfilter-group.component.scss +163 -0
  72. package/scss/menu.component.scss +51 -0
  73. package/scss/modal.component.scss +219 -0
  74. package/scss/navigation-back.component.scss +23 -0
  75. package/scss/notification-center.component.scss +74 -0
  76. package/scss/notification-item.component.scss +41 -0
  77. package/scss/option.component.scss +40 -0
  78. package/scss/paginator.component.scss +34 -0
  79. package/scss/progress.component.scss +41 -0
  80. package/scss/radio-button.component.scss +127 -0
  81. package/scss/radio-group.component.scss +14 -0
  82. package/scss/rail-navigation-item.component.scss +99 -0
  83. package/scss/rail-navigation.component.scss +53 -0
  84. package/scss/rich-list-item-header.component.scss +25 -0
  85. package/scss/rich-list-item.component.scss +59 -0
  86. package/scss/rich-list.component.scss +3 -0
  87. package/scss/search-bar.component.scss +47 -0
  88. package/scss/select.component.scss +75 -0
  89. package/scss/slider.component.scss +132 -0
  90. package/scss/spinbox.component.scss +128 -0
  91. package/scss/switch.component.scss +175 -0
  92. package/scss/tab-bar-item.component.scss +58 -0
  93. package/scss/tab-bar.component.scss +124 -0
  94. package/scss/table.component.scss +95 -0
  95. package/scss/theme.scss +303 -0
  96. package/scss/timepicker.component.scss +58 -0
  97. package/scss/toast-item.component.scss +79 -0
  98. package/scss/toast.component.scss +33 -0
  99. package/scss/toggle-button-group.component.scss +65 -0
  100. package/scss/toggle-button.component.scss +79 -0
  101. package/scss/tooltip.component.scss +37 -0
  102. package/scss/wizard-step.component.scss +256 -0
  103. package/scss/wizard.component.scss +18 -0
  104. package/24031beb1b96a58f519c.woff2 +0 -0
  105. package/323d385340fb9fee6450.svg +0 -6
  106. package/5eabf29514e9649c8c73.woff2 +0 -0
  107. package/eb2051d1f9da906e0b3e.woff2 +0 -0
@@ -0,0 +1,303 @@
1
+ @use '@odx/icons/core/core-utils' as icons;
2
+ @use '../../abstract/dimensions';
3
+ @use '../../abstract/typography';
4
+ @use '../../abstract/motion';
5
+ @use '../../abstract/utils';
6
+ @use 'sass:math';
7
+
8
+ .ag-theme-odx {
9
+ --ag-border-color: var(--odx-c-separator);
10
+ --ag-foreground-color: var(--odx-c-text);
11
+ --ag-secondary-foreground-color: var(--odx-c-text);
12
+ --ag-disabled-foreground-color: var(--odx-c-text-disabled);
13
+ --ag-row-hover-color: var(--odx-c-ghost-hover);
14
+ --ag-selected-row-background-color: var(--odx-c-selected);
15
+
16
+ --ag-background-color: var(--odx-c-background-content);
17
+
18
+ --ag-checkbox-indeterminate-color: var(--odx-control-color-selected);
19
+ --ag-checkbox-checked-color: var(--odx-control-color-selected);
20
+
21
+ --ag-font-family: var(--odx-typography-font-family);
22
+ --ag-font-size: var(--odx-typography-base-size);
23
+
24
+ --ag-icon-size: #{typography.get-font-size(1)};
25
+ --ag-icon-font-family: #{icons.get-font-family()};
26
+ --ag-icon-font-code-aggregation: '#{icons.get-icon-glyph(placeholder)}';
27
+ --ag-icon-font-code-arrows: '#{icons.get-icon-glyph(placeholder)}';
28
+ --ag-icon-font-code-asc: '#{icons.get-icon-glyph(ascending)}';
29
+ --ag-icon-font-code-cancel: '#{icons.get-icon-glyph(close)}';
30
+ --ag-icon-font-code-chart: '#{icons.get-icon-glyph(placeholder)}';
31
+ --ag-icon-font-code-checkbox-checked: '#{icons.get-icon-glyph(check)}';
32
+ --ag-icon-font-code-checkbox-indeterminate: '#{icons.get-icon-glyph(minus)}';
33
+ --ag-icon-font-code-checkbox-unchecked: '';
34
+ --ag-icon-font-code-color-picker: '#{icons.get-icon-glyph(placeholder)}';
35
+ --ag-icon-font-code-columns: '#{icons.get-icon-glyph(placeholder)}';
36
+ --ag-icon-font-code-contracted: '#{icons.get-icon-glyph(chevron-right)}';
37
+ --ag-icon-font-code-copy: '#{icons.get-icon-glyph(copy-content)}';
38
+ --ag-icon-font-code-cut: '#{icons.get-icon-glyph(cut)}';
39
+ --ag-icon-font-code-cross: '#{icons.get-icon-glyph(close)}';
40
+ --ag-icon-font-code-csv: '#{icons.get-icon-glyph(file)}';
41
+ --ag-icon-font-code-desc: '#{icons.get-icon-glyph(descending)}';
42
+ --ag-icon-font-code-excel: '#{icons.get-icon-glyph(file-excel)}';
43
+ --ag-icon-font-code-expanded: '#{icons.get-icon-glyph(chevron-left)}';
44
+ --ag-icon-font-code-eye-slash: '#{icons.get-icon-glyph(placeholder)}';
45
+ --ag-icon-font-code-eye: '#{icons.get-icon-glyph(placeholder)}';
46
+ --ag-icon-font-code-filter: '#{icons.get-icon-glyph(filter)}';
47
+ --ag-icon-font-code-first: '#{icons.get-icon-glyph(chevron-left-end)}';
48
+ --ag-icon-font-code-grip: '#{icons.get-icon-glyph(placeholder)}';
49
+ --ag-icon-font-code-group: '#{icons.get-icon-glyph(placeholder)}';
50
+ --ag-icon-font-code-last: '#{icons.get-icon-glyph(chevron-right-end)}';
51
+ --ag-icon-font-code-left: '#{icons.get-icon-glyph(arrow-left)}';
52
+ --ag-icon-font-code-linked: '#{icons.get-icon-glyph(placeholder)}';
53
+ --ag-icon-font-code-loading: '#{icons.get-icon-glyph(placeholder)}';
54
+ --ag-icon-font-code-maximize: '#{icons.get-icon-glyph(maximize)}';
55
+ --ag-icon-font-code-menu: '#{icons.get-icon-glyph(menu)}';
56
+ --ag-icon-font-code-minimize: '#{icons.get-icon-glyph(minimize)}';
57
+ --ag-icon-font-code-next: '#{icons.get-icon-glyph(chevron-right)}';
58
+ --ag-icon-font-code-none: '#{icons.get-icon-glyph(placeholder)}';
59
+ --ag-icon-font-code-not-allowed: '#{icons.get-icon-glyph(blocked)}';
60
+ --ag-icon-font-code-paste: '#{icons.get-icon-glyph(placeholder)}';
61
+ --ag-icon-font-code-pin: '#{icons.get-icon-glyph(pin)}';
62
+ --ag-icon-font-code-pivot: '#{icons.get-icon-glyph(placeholder)}';
63
+ --ag-icon-font-code-previous: '#{icons.get-icon-glyph(chevron-left)}';
64
+ --ag-icon-font-code-radio-button-off: '';
65
+ --ag-icon-font-code-radio-button-on: '';
66
+ --ag-icon-font-code-right: '#{icons.get-icon-glyph(arrow-right)}';
67
+ --ag-icon-font-code-save: '#{icons.get-icon-glyph(save)}';
68
+ --ag-icon-font-code-small-down: '#{icons.get-icon-glyph(chevron-down)}';
69
+ --ag-icon-font-code-small-left: '#{icons.get-icon-glyph(chevron-left)}';
70
+ --ag-icon-font-code-small-right: '#{icons.get-icon-glyph(chevron-right)}';
71
+ --ag-icon-font-code-small-up: '#{icons.get-icon-glyph(chevron-up)}';
72
+ --ag-icon-font-code-tick: '#{icons.get-icon-glyph(check)}';
73
+ --ag-icon-font-code-tree-closed: '#{icons.get-icon-glyph(chevron-right)}';
74
+ --ag-icon-font-code-tree-indeterminate: '#{icons.get-icon-glyph(minus)}';
75
+ --ag-icon-font-code-tree-open: '#{icons.get-icon-glyph(chevron-down)}';
76
+ --ag-icon-font-code-unlinked: '#{icons.get-icon-glyph(placeholder)}';
77
+
78
+ --ag-grid-size: #{dimensions.get-size(0.25)};
79
+ --ag-widget-vertical-spacing: #{dimensions.get-size(0.5)};
80
+
81
+ --ag-header-height: #{dimensions.get-size(2)};
82
+ --ag-row-height: #{dimensions.get-size(2)};
83
+ --ag-table-line-height: #{dimensions.get-size(1.5)};
84
+ --ag-list-item-height: #{dimensions.get-size(1.5)};
85
+
86
+ input[class^='ag-'][type='text'] {
87
+ background: var(--gray-100);
88
+ border: var(--ag-borders-critical) var(--gray100);
89
+ border-radius: var(--odx-v-border-radius-controls);
90
+ font-weight: var(--odx-typography-font-weight-normal);
91
+ letter-spacing: var(--odx-typography-font-weight-medium-letter-spacing);
92
+ line-height: var(--ag-table-line-height);
93
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
94
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
95
+ vertical-align: middle;
96
+
97
+ @include motion.transition(background-color outline-color);
98
+ @include utils.with-outline();
99
+
100
+ &::placeholder {
101
+ color: var(--odx-c-text);
102
+ opacity: 0.65;
103
+ }
104
+
105
+ &:focus {
106
+ background-color: var(--odx-c-focus);
107
+ outline-color: var(--odx-c-focus-outline);
108
+ }
109
+
110
+ &:not(:focus):hover {
111
+ background-color: var(--odx-input-control-background-color-hover);
112
+ outline-color: var(--odx-input-control-outline-color-hover);
113
+ }
114
+ }
115
+
116
+ .ag-standard-button {
117
+ background-color: var(--odx-c-primary);
118
+ border-radius: var(--odx-v-border-radius-controls);
119
+ color: var(--odx-c-primary-text);
120
+ height: calc(var(--odx-vertical-rythm-base-size) * 1.5);
121
+ min-width: calc(var(--odx-vertical-rythm-base-size) * 3);
122
+ outline-offset: calc(-1 * var(--odx-v-outline-width-bold));
123
+ outline-width: var(--odx-v-outline-width-bold);
124
+ transition: all var(--odx-v-transition-duration) 0ms var(--odx-v-transition-easing-fn);
125
+ transition-property: background-color, color, outline;
126
+ }
127
+
128
+ .ag-header {
129
+ border-bottom: var(--ag-borders-critical) var(--gray-700);
130
+
131
+ &-row:not(:first-child) {
132
+ .ag-header-cell,
133
+ .ag-header-group-cell.ag-header-group-cell-with-group {
134
+ border: none;
135
+ }
136
+ }
137
+
138
+ .ag-cell-label-container {
139
+ width: fit-content;
140
+ }
141
+
142
+ .ag-floating-filter {
143
+ .ag-filter-select {
144
+ .ag-picker-field-wrapper {
145
+ height: calc(var(--odx-vertical-rythm-base-size) * 1.5);
146
+ }
147
+ }
148
+
149
+ input[type='text']:disabled {
150
+ color: var(--odx-c-text);
151
+ font-weight: var(--odx-typography-font-weight-medium);
152
+ padding: 0;
153
+ }
154
+ }
155
+
156
+ .ag-header-cell-text {
157
+ font-weight: var(--odx-typography-font-weight-medium);
158
+ }
159
+
160
+ .ag-header-cell-label {
161
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.25);
162
+ }
163
+
164
+ .ag-header-icon {
165
+ &.ag-header-cell-menu-button {
166
+ height: calc(var(--odx-vertical-rythm-base-size) * 0.667);
167
+ width: calc(var(--odx-vertical-rythm-base-size) * 0.667);
168
+ }
169
+ }
170
+ }
171
+
172
+ &.ag-popup {
173
+ [type='text']:focus {
174
+ border-color: var(--ag-input-border-color);
175
+ border-radius: var(--odx-v-border-radius);
176
+ box-shadow: unset;
177
+ }
178
+ }
179
+
180
+ .ag-radio-button-input-wrapper {
181
+ align-items: center;
182
+ background-color: var(--odx-control-background-color);
183
+ border-radius: 50%;
184
+ display: flex;
185
+ flex: 0 0 auto;
186
+ height: calc(var(--odx-vertical-rythm-base-size) * 0.8334);
187
+ justify-content: center;
188
+ margin-bottom: calc(var(--odx-vertical-rythm-base-size) * 0.0834);
189
+ margin-top: calc(var(--odx-vertical-rythm-base-size) * 0.0834);
190
+ outline: var(--odx-v-outline-width) solid transparent;
191
+ outline-color: var(--odx-control-outline-color);
192
+ outline-offset: calc(-1 * var(--odx-v-outline-width));
193
+ padding: 1px;
194
+ transition: all var(--odx-v-transition-duration) 0ms var(--odx-v-transition-easing-fn);
195
+ transition-property: background-color, color, outline-color;
196
+ width: calc(var(--odx-vertical-rythm-base-size) * 0.8334);
197
+
198
+ &:hover {
199
+ background-color: var(--odx-control-background-color-hover);
200
+ outline-color: var(--odx-control-outline-color-hover);
201
+ }
202
+
203
+ &.ag-checked {
204
+ background-color: var(--odx-control-background-color-selected);
205
+ color: var(--odx-control-color-selected);
206
+ opacity: 1;
207
+ outline-color: var(--odx-control-outline-color-selected);
208
+
209
+ &::after {
210
+ background-color: var(--odx-control-color-selected);
211
+ border-radius: 50%;
212
+ height: calc(var(--odx-vertical-rythm-base-size) * 0.1667);
213
+ left: unset;
214
+ margin-bottom: calc(var(--odx-vertical-rythm-base-size) * 0);
215
+ margin-top: calc(var(--odx-vertical-rythm-base-size) * 0);
216
+ top: unset;
217
+ transform: scale(1);
218
+ width: calc(var(--odx-vertical-rythm-base-size) * 0.1667);
219
+ }
220
+ }
221
+ }
222
+
223
+ .ag-root-wrapper {
224
+ border: none;
225
+ }
226
+
227
+ .ag-select {
228
+ .ag-picker-field-display {
229
+ color: var(--odx-c-text);
230
+ }
231
+
232
+ .ag-picker-field-icon {
233
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.5);
234
+ }
235
+ }
236
+
237
+ .ag-select-list {
238
+ color: var(--odx-c-text);
239
+ }
240
+
241
+ .ag-paging-panel {
242
+ .ag-paging-row-summary-panel-number,
243
+ .ag-paging-number {
244
+ font-weight: var(--odx-typography-font-weight-semibold);
245
+ }
246
+ }
247
+
248
+ .ag-checkbox-input {
249
+ $input: '.ag-checkbox-input';
250
+
251
+ background-color: var(--odx-control-background-color);
252
+ border-radius: var(--odx-v-border-radius-controls);
253
+ color: var(--odx-control-color-selected);
254
+ flex: 0 0 auto;
255
+ height: dimensions.get-size(math.div(20, 24));
256
+ opacity: 1;
257
+ outline-color: var(--odx-control-outline-color);
258
+ padding: 1px;
259
+ width: dimensions.get-size(math.div(20, 24));
260
+
261
+ @include motion.transition(background-color color outline-color);
262
+ @include utils.with-outline();
263
+
264
+ &:hover {
265
+ background-color: var(--odx-control-background-color-hover);
266
+ cursor: pointer;
267
+ outline-color: var(--odx-control-outline-color-hover);
268
+ }
269
+
270
+ &-wrapper {
271
+ &::after {
272
+ $checkmark-size: math.div(18, 24);
273
+
274
+ font-size: dimensions.get-size($checkmark-size);
275
+ height: dimensions.get-size($checkmark-size);
276
+ left: 50%;
277
+ opacity: 0;
278
+ top: 50%;
279
+ transform: translate(-50%, -50%);
280
+ width: dimensions.get-size($checkmark-size);
281
+
282
+ @include motion.transition(opacity);
283
+ }
284
+
285
+ &:has(#{$input}:checked, #{$input}:indeterminate) {
286
+ &::after {
287
+ opacity: 1;
288
+ }
289
+ }
290
+ }
291
+
292
+ &:checked,
293
+ &:indeterminate {
294
+ background-color: var(--odx-control-background-color-selected);
295
+ color: var(--odx-control-color-selected);
296
+ outline-color: var(--odx-control-outline-color-selected);
297
+ }
298
+
299
+ &:disabled {
300
+ color: var(--odx-control-color-disabled);
301
+ }
302
+ }
303
+ }
@@ -0,0 +1,58 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/utils';
3
+ @use '../layout/helpers';
4
+ @use '../abstract/dimensions';
5
+ @use '../abstract/typography';
6
+ @use '../abstract/motion';
7
+
8
+ .odx-timepicker {
9
+ $root: &;
10
+
11
+ @include utils.vertical-center-content();
12
+
13
+ gap: dimensions.get-size(math.div(4, 24));
14
+ justify-content: space-between;
15
+ width: 100%;
16
+
17
+ &__wrapper {
18
+ display: inline-flex;
19
+ }
20
+
21
+ &__trigger-wrapper {
22
+ gap: dimensions.get-size(math.div(1, 3));
23
+ }
24
+
25
+ input[odxTimepickerControl] {
26
+ appearance: textfield;
27
+ width: 100%;
28
+
29
+ &::placeholder {
30
+ @include typography.font-weight(normal);
31
+
32
+ color: var(--odx-input-control-color);
33
+ opacity: 0.65;
34
+ }
35
+
36
+ &::-webkit-inner-spin-button {
37
+ appearance: none;
38
+ }
39
+ }
40
+
41
+ &__option-list {
42
+ display: flex;
43
+ flex-direction: column;
44
+ max-height: calc(7 * dimensions.get-size(1.5) + var(--odx-vertical-rythm-base-size));
45
+ }
46
+
47
+ &-option {
48
+ &:active {
49
+ background-color: var(--odx-input-control-active-color);
50
+ }
51
+ }
52
+
53
+ &.is-readonly {
54
+ #{$root}__trigger {
55
+ @include utils.non-interactive();
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,79 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/dimensions';
3
+ @use '../abstract/typography';
4
+ @use '../abstract/utils';
5
+
6
+ .odx-toast-item {
7
+ --odx-c-default: var(--blue-50);
8
+ --odx-c-warning: var(--yellow-50);
9
+ --odx-c-danger: var(--red-00);
10
+ --odx-c-success: var(--green-00);
11
+
12
+ $root: &;
13
+ $variants: default, warning, danger, success;
14
+ $gap: dimensions.get-size(math.div(12, 24));
15
+
16
+ border-radius: var(--odx-toast-border-radius);
17
+ box-shadow: var(--odx-v-box-shadow-layer-1);
18
+ display: block;
19
+
20
+ &__content {
21
+ display: flex;
22
+ gap: $gap;
23
+ padding: $gap;
24
+ }
25
+
26
+ &__text-content {
27
+ @include typography.font-size(-1);
28
+
29
+ flex: 1;
30
+ overflow: auto;
31
+ }
32
+
33
+ &__title {
34
+ font-weight: var(--odx-typography-font-weight-semibold);
35
+ }
36
+
37
+ &__description {
38
+ max-height: dimensions.get-size(5);
39
+ overflow-wrap: break-word;
40
+ }
41
+
42
+ &__close {
43
+ @include utils.interactive(true);
44
+
45
+ background-color: transparent;
46
+ margin: 0;
47
+ margin-right: calc(#{$gap} / -2);
48
+ margin-top: calc(#{$gap} / -2);
49
+
50
+ &:hover {
51
+ background-color: var(--blue-700-5);
52
+ }
53
+ }
54
+
55
+ &__buttons {
56
+ display: flex;
57
+ justify-content: flex-end;
58
+ margin-top: calc(#{$gap} / -2);
59
+ padding: 0 calc(#{$gap} / 2);
60
+ }
61
+
62
+ @each $variant in $variants {
63
+ &--#{$variant} {
64
+ background-color: var(--odx-c-#{$variant});
65
+ }
66
+ }
67
+
68
+ &--danger {
69
+ --odx-c-text: var(--red-700);
70
+ --odx-v-scrollbar-thumb-color: var(--odx-c-text);
71
+ --odx-v-scrollbar-thumb-color-hover: var(--red-800);
72
+
73
+ color: var(--odx-c-text);
74
+
75
+ #{$root}__close {
76
+ color: inherit;
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,33 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/breakpoints';
3
+ @use '../abstract/dimensions';
4
+ @use '../abstract/typography';
5
+
6
+ .odx-toast-container {
7
+ --odx-toast-outer-offset: #{dimensions.get-size(math.div(8, 24))};
8
+ --odx-toast-border-radius: #{dimensions.get-size(math.div(6, 24))};
9
+
10
+ background-color: transparent;
11
+ border: none;
12
+ color: var(--odx-c-text);
13
+ display: flex;
14
+ flex-direction: column;
15
+ margin: #{dimensions.get-size(math.div(4, 24))} var(--odx-toast-outer-offset) auto auto;
16
+ max-width: min(calc(100dvw - 2 * var(--odx-toast-outer-offset)), dimensions.get-size(20));
17
+ overflow: clip;
18
+ padding-top: var(--odx-toast-outer-offset);
19
+
20
+ &__counter {
21
+ align-self: center;
22
+ }
23
+
24
+ .odx-toast-item {
25
+ margin-bottom: var(--odx-toast-outer-offset);
26
+ }
27
+
28
+ @include breakpoints.up(phone) {
29
+ --odx-toast-outer-offset: #{dimensions.get-size(math.div(20, 24))};
30
+
31
+ margin-top: 0;
32
+ }
33
+ }
@@ -0,0 +1,65 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/dimensions';
3
+ @use '../abstract/motion';
4
+ @use '../abstract/utils';
5
+
6
+ .odx-toggle-button-group {
7
+ --odx-toggle-button-border-radius: 2px;
8
+
9
+ $root: &;
10
+
11
+ @include dimensions.height(2, 1.5);
12
+ @include dimensions.padding-x(math.div(6, 24));
13
+ @include motion.transition(background-color outline-color);
14
+ @include utils.center-content(true);
15
+ @include utils.with-outline();
16
+
17
+ border-radius: var(--odx-v-border-radius-controls);
18
+ column-gap: dimensions.get-size(math.div(6, 24));
19
+ position: relative;
20
+ z-index: var(--odx-v-layer-1);
21
+
22
+ &__indicator {
23
+ @include utils.with-outline();
24
+
25
+ background-color: var(--odx-c-highlight);
26
+ block-size: dimensions.get-size(math.div(28, 24));
27
+ border-radius: var(--odx-toggle-button-border-radius);
28
+
29
+ #{$root}.is-disabled & {
30
+ background-color: var(--odx-c-secondary-disabled);
31
+ }
32
+
33
+ #{$root}.is-readonly & {
34
+ background-color: transparent;
35
+ outline-color: currentcolor;
36
+ }
37
+
38
+ #{$root}.is-readonly.is-disabled & {
39
+ background-color: transparent;
40
+ outline-color: var(--odx-c-secondary-disabled);
41
+ }
42
+
43
+ #{$root}:focus-within:has(:focus-visible) & {
44
+ outline-color: var(--odx-c-highlight-active);
45
+ }
46
+ }
47
+
48
+ .odx-toggle-button {
49
+ flex: 1 1 auto;
50
+ z-index: var(--odx-v-layer-2);
51
+ }
52
+
53
+ &.has-error:not(.is-disabled, .is-readonly) {
54
+ background-color: var(--odx-c-error);
55
+ outline-color: var(--odx-c-error-outline);
56
+ }
57
+
58
+ &.is-active {
59
+ @include utils.focus-state($focus-within: true);
60
+
61
+ &:not(.is-disabled, .is-readonly):hover {
62
+ background-color: var(--blue-700-5);
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,79 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/dimensions';
3
+ @use '../abstract/motion';
4
+ @use '../abstract/typography';
5
+ @use '../abstract/utils';
6
+
7
+ .odx-toggle-button {
8
+ $root: &;
9
+
10
+ @include motion.transition(color);
11
+ @include typography.font-size(0);
12
+ @include typography.font-weight(medium);
13
+ @include utils.vertical-center-content();
14
+
15
+ color: currentcolor;
16
+ user-select: none;
17
+
18
+ &.is-active {
19
+ color: var(--odx-c-highlight-text);
20
+ }
21
+
22
+ &.is-readonly {
23
+ color: inherit;
24
+ }
25
+
26
+ &.is-disabled {
27
+ color: var(--odx-control-color-disabled);
28
+ }
29
+
30
+ &.is-active.is-disabled {
31
+ color: var(--odx-c-secondary-text-disabled);
32
+ }
33
+
34
+ &.is-disabled,
35
+ &.is-readonly {
36
+ pointer-events: none;
37
+ }
38
+
39
+ &__indicator {
40
+ @include motion.transition(background-color outline-color);
41
+ @include dimensions.padding-x(math.div(1, 3));
42
+ @include utils.vertical-center-content();
43
+
44
+ block-size: dimensions.get-size(math.div(28, 24));
45
+ border-radius: var(--odx-toggle-button-border-radius);
46
+ column-gap: dimensions.get-size(math.div(1, 6));
47
+
48
+ #{$root}.is-readonly &,
49
+ #{$root}.is-disabled &,
50
+ #{$root}-group.is-active &,
51
+ #{$root}-group.has-error & {
52
+ background-color: transparent;
53
+ }
54
+
55
+ #{$root}-group:not(.is-active) & {
56
+ @include utils.interactive($focus-within: true);
57
+
58
+ background-color: var(--blue-700-5);
59
+ }
60
+ }
61
+
62
+ &__label {
63
+ @include dimensions.padding-y(math.div(1, 6));
64
+
65
+ cursor: pointer;
66
+ text-align: center;
67
+ width: 100%;
68
+
69
+ #{$root}-group:not(.is-active) &:hover {
70
+ #{$root}__indicator {
71
+ background-color: var(--blue-700-10);
72
+ }
73
+ }
74
+
75
+ #{$root}-group.is-active &:hover #{$root}__indicator {
76
+ background-color: var(--blue-700-5);
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,37 @@
1
+ @use '../abstract/dimensions';
2
+ @use '../abstract/utils';
3
+ @use '../abstract/typography';
4
+
5
+ :root {
6
+ --odx-tooltip-background-color: var(--blue-800);
7
+ --odx-tooltip-color: var(--odx-c-text-inverse);
8
+ --odx-tooltip-size-small: #{dimensions.get-size(5)};
9
+ --odx-tooltip-size-medium: #{dimensions.get-size(10)};
10
+ --odx-tooltip-size-large: #{dimensions.get-size(15)};
11
+ }
12
+
13
+ .odx-tooltip {
14
+ $sizes: small, medium, large;
15
+
16
+ @include dimensions.padding(0.5);
17
+ @include typography.font-size(-1);
18
+
19
+ background-color: var(--odx-tooltip-background-color);
20
+ border-radius: var(--odx-v-border-radius);
21
+ color: var(--odx-tooltip-color);
22
+ display: block;
23
+ overflow: hidden;
24
+
25
+ @each $size in $sizes {
26
+ &--#{$size} {
27
+ max-width: var(--odx-tooltip-size-#{$size});
28
+ }
29
+ }
30
+
31
+ &-overlay {
32
+ .odx-cdk-connected-overlay-arrow {
33
+ background-color: var(--odx-tooltip-background-color);
34
+ z-index: var(--odx-v-layer-1);
35
+ }
36
+ }
37
+ }