@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,163 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/breakpoints';
3
+ @use '../abstract/dimensions';
4
+ @use '../abstract/utils';
5
+ @use '../abstract/typography';
6
+ @use 'avatar.component';
7
+ @use '../layout/typography' as *;
8
+
9
+ :root {
10
+ --odx-area-header-title-color: var(--odx-c-display);
11
+ --odx-area-header-subtitle-color: var(--odx-c-display);
12
+ }
13
+
14
+ .odx-area-header {
15
+ @include dimensions.padding-x(0.5);
16
+
17
+ @include breakpoints.up(phone) {
18
+ @include dimensions.padding-x(1);
19
+ }
20
+
21
+ &,
22
+ &__container {
23
+ column-gap: dimensions.get-size(math.div(20, 24));
24
+ display: flex;
25
+
26
+ .odx-navigation-back {
27
+ @include dimensions.margin(-0.75, right);
28
+ @include dimensions.margin(math.div(5, 24), top);
29
+ }
30
+ }
31
+
32
+ * {
33
+ flex: 0 0 auto;
34
+ }
35
+
36
+ &__title,
37
+ &__subtitle {
38
+ display: block;
39
+ }
40
+
41
+ &__container {
42
+ display: flex;
43
+ flex: 1 1 auto;
44
+ overflow: hidden;
45
+ }
46
+
47
+ &__inner {
48
+ align-self: center;
49
+ flex: 1 1 auto;
50
+ overflow: hidden;
51
+ }
52
+
53
+ &__title {
54
+ @extend .odx-heading;
55
+ @extend .odx-heading-6;
56
+
57
+ color: var(--odx-area-header-title-color);
58
+ font-weight: 600;
59
+ }
60
+
61
+ &__subtitle {
62
+ @include typography.prevent-text-overflow();
63
+ @extend .odx-text;
64
+
65
+ color: var(--odx-area-header-subtitle-color);
66
+ }
67
+
68
+ .odx-avatar,
69
+ [odxNavigationBack],
70
+ &__content {
71
+ align-self: center;
72
+ }
73
+
74
+ &__content {
75
+ @include utils.vertical-center-content();
76
+
77
+ flex-wrap: wrap;
78
+ min-height: dimensions.get-size(2);
79
+ }
80
+
81
+ &--small,
82
+ &--medium {
83
+ .odx-avatar {
84
+ @extend .odx-avatar--small;
85
+ }
86
+ }
87
+
88
+ &--large,
89
+ &--xlarge {
90
+ @include breakpoints.down(tablet) {
91
+ flex-wrap: wrap;
92
+
93
+ .odx-area-header__content {
94
+ flex-basis: 100%;
95
+ justify-content: flex-end;
96
+ }
97
+ }
98
+ }
99
+
100
+ &--medium {
101
+ @include breakpoints.up(tablet) {
102
+ @include dimensions.padding-y(0.5);
103
+ }
104
+
105
+ .odx-area-header__title {
106
+ @extend .odx-heading-5;
107
+ }
108
+ }
109
+
110
+ &--large {
111
+ @include dimensions.padding-y(0.5);
112
+
113
+ .odx-area-header__title {
114
+ @extend .odx-heading-4;
115
+
116
+ @include breakpoints.down(tablet) {
117
+ @include dimensions.line-height(1);
118
+ }
119
+ }
120
+
121
+ .odx-avatar {
122
+ @extend .odx-avatar--medium;
123
+ }
124
+ }
125
+
126
+ &--xlarge {
127
+ @include dimensions.padding-y(0.5);
128
+
129
+ @include breakpoints.up(tablet) {
130
+ @include dimensions.padding-y(1);
131
+
132
+ gap: dimensions.get-size(1);
133
+
134
+ .odx-area-header__container {
135
+ @include dimensions.padding(1, top);
136
+ }
137
+ }
138
+
139
+ .odx-area-header__title {
140
+ @extend .odx-heading-2;
141
+ }
142
+
143
+ .odx-area-header__subtitle {
144
+ @extend .odx-heading-5;
145
+ }
146
+
147
+ .odx-avatar {
148
+ @extend .odx-avatar--large;
149
+
150
+ @include breakpoints.up(tablet) {
151
+ @include dimensions.margin(-0.5, top);
152
+ }
153
+ }
154
+
155
+ .odx-area-header__content {
156
+ align-self: flex-end;
157
+
158
+ @include breakpoints.up(tablet) {
159
+ @include dimensions.margin(-0.5, bottom);
160
+ }
161
+ }
162
+ }
163
+ }
@@ -0,0 +1,14 @@
1
+ @use '../abstract/dimensions';
2
+
3
+ .odx-autocomplete {
4
+ &__trigger {
5
+ height: 100%;
6
+ }
7
+
8
+ &__control {
9
+ height: 100%;
10
+ width: 100%;
11
+
12
+ @include dimensions.min-height(1.5);
13
+ }
14
+ }
@@ -0,0 +1,68 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/breakpoints';
3
+ @use '../abstract/dimensions';
4
+ @use '../abstract/utils';
5
+ @use '../abstract/typography';
6
+
7
+ @mixin avatar-size($size-factor, $line-height-factor, $font-size, $icon-factor) {
8
+ @include dimensions.container($size-factor, $line-height-factor);
9
+ @include typography.font-size($font-size);
10
+
11
+ > .odx-icon,
12
+ > .odx-icon[class*='odx-icon--'] {
13
+ @include dimensions.container($icon-factor);
14
+
15
+ font-size: dimensions.get-size($icon-factor);
16
+ }
17
+ }
18
+
19
+ .odx-avatar {
20
+ @include utils.center-content(true);
21
+ @include typography.font-weight(medium);
22
+ @include typography.prevent-text-overflow();
23
+
24
+ background-color: var(--blue-700-10);
25
+ border-radius: 50%;
26
+ color: var(--odx-c-text);
27
+ position: relative;
28
+ user-select: none;
29
+ vertical-align: middle;
30
+
31
+ &--small {
32
+ @include avatar-size(2, 1.5, 0, 1);
33
+ }
34
+
35
+ &--medium {
36
+ @include avatar-size(2, 1.5, 0, 1);
37
+
38
+ @include breakpoints.up(tablet) {
39
+ @include avatar-size(3, math.div(64, 24), 2, 1.5);
40
+ }
41
+ }
42
+
43
+ &--large {
44
+ @include avatar-size(3, math.div(64, 24), 2, 1.5);
45
+
46
+ @include breakpoints.up(tablet) {
47
+ @include avatar-size(4, 4, 4, 2.25);
48
+ }
49
+ }
50
+
51
+ &--rectangle {
52
+ border-radius: var(--odx-v-border-radius-controls);
53
+ }
54
+
55
+ &:has(img) {
56
+ background-color: transparent;
57
+ }
58
+
59
+ img {
60
+ height: 100%;
61
+ left: 0;
62
+ object-fit: cover;
63
+ position: absolute;
64
+ top: 0;
65
+ width: 100%;
66
+ z-index: var(--odx-v-layer-1);
67
+ }
68
+ }
@@ -0,0 +1,49 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/dimensions';
3
+ @use '../abstract/utils';
4
+ @use '../abstract/typography';
5
+
6
+ :root {
7
+ --odx-badge-contrast-color: var(--odx-c-background-content);
8
+ }
9
+
10
+ .odx-badge {
11
+ $badge-size: dimensions.get-size(math.div(2, 3));
12
+
13
+ @include dimensions.padding-x(math.div(1, 8));
14
+ @include utils.center-content(true);
15
+ @include utils.non-interactive();
16
+ @include typography.font-size(-2);
17
+ @include typography.font-weight(medium);
18
+
19
+ border-radius: $badge-size;
20
+ height: $badge-size;
21
+ min-width: $badge-size;
22
+ outline: 1px solid transparent;
23
+ vertical-align: middle;
24
+
25
+ &,
26
+ &--highlight {
27
+ background-color: var(--odx-c-highlight);
28
+ color: var(--odx-c-highlight-text);
29
+ }
30
+
31
+ &--danger {
32
+ background-color: var(--odx-c-danger);
33
+ color: var(--odx-c-danger-text);
34
+ }
35
+
36
+ &--confirmation {
37
+ background-color: var(--odx-c-confirmation);
38
+ color: var(--odx-c-confirmation-text);
39
+ }
40
+
41
+ &--contrast {
42
+ outline-color: var(--odx-badge-contrast-color);
43
+ }
44
+
45
+ .odx-badge-overlay > & {
46
+ display: flex;
47
+ margin: calc(#{$badge-size} / -2);
48
+ }
49
+ }
@@ -0,0 +1,93 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/dimensions';
3
+ @use '../abstract/utils';
4
+ @use '../abstract/typography';
5
+ @use '../abstract/motion';
6
+ @use './dropdown.component' as dropdown;
7
+
8
+ :root {
9
+ --odx-bar-background-color: var(--cyan-500);
10
+ --odx-bar-background-color-hover: var(--cyan-600);
11
+ --odx-bar-background-color-active: var(--cyan-700);
12
+ --odx-bar-text-color: var(--white);
13
+ --odx-bar-text-color-disabled: var(--cyan-700);
14
+ }
15
+
16
+ @include utils.theme-selector(dark) {
17
+ --odx-bar-background-color-hover: var(--cyan-400);
18
+ --odx-bar-background-color-active: var(--cyan-300);
19
+ --odx-bar-text-color: var(--black);
20
+ --odx-bar-text-color-disabled: var(--cyan-200);
21
+ }
22
+
23
+ .odx-bar {
24
+ @include dimensions.padding-x(math.div(12, 24));
25
+ @include dimensions.padding-y(math.div(6, 24));
26
+
27
+ align-items: center;
28
+ background-color: var(--odx-bar-background-color);
29
+ border-radius: dimensions.get-size(math.div(6, 24));
30
+ box-shadow: var(--odx-v-box-shadow-layer-1);
31
+ color: var(--odx-bar-text-color);
32
+ display: inline-flex;
33
+ gap: dimensions.get-size(math.div(12, 24));
34
+ width: max-content;
35
+
36
+ &-button {
37
+ $button: &;
38
+
39
+ @include motion.transition(background-color color outline);
40
+ @include utils.with-outline-bold();
41
+
42
+ align-items: center;
43
+ background-color: var(--odx-bar-background-color);
44
+ border-radius: var(--odx-v-border-radius-controls);
45
+ display: inline-flex;
46
+ font-size: dimensions.get-size(math.div(4, 3));
47
+ height: dimensions.get-size(math.div(36, 24));
48
+ outline-color: transparent;
49
+ outline-style: solid;
50
+
51
+ &:hover {
52
+ background-color: var(--odx-bar-background-color-hover);
53
+ }
54
+
55
+ &#{dropdown.$dropdown-open-selector},
56
+ &:active {
57
+ background-color: var(--odx-bar-background-color-active);
58
+ }
59
+
60
+ &:focus-visible {
61
+ outline-color: var(--odx-bar-background-color-active);
62
+ }
63
+
64
+ &--default {
65
+ @include dimensions.padding-x(math.div(28, 24));
66
+ }
67
+
68
+ &--small {
69
+ @include dimensions.padding-x(math.div(2, 24));
70
+ }
71
+
72
+ &.is-disabled {
73
+ @include utils.non-interactive();
74
+
75
+ color: var(--odx-bar-text-color-disabled);
76
+ }
77
+ }
78
+
79
+ &-label {
80
+ display: inline;
81
+ }
82
+
83
+ .odx-bar-parent & {
84
+ bottom: dimensions.get-size(math.div(16, 24));
85
+ left: 50%;
86
+ position: absolute;
87
+ transform: translateX(-50%);
88
+ }
89
+ }
90
+
91
+ .odx-bar-parent {
92
+ position: relative;
93
+ }
@@ -0,0 +1,17 @@
1
+ @use '../abstract/typography';
2
+
3
+ .odx-brand-logo {
4
+ color: inherit;
5
+ display: inline-block;
6
+
7
+ @include typography.font-weight(semibold);
8
+
9
+ &::before {
10
+ color: var(--odx-c-highlight);
11
+ content: 'O';
12
+ }
13
+
14
+ &::after {
15
+ content: 'DX';
16
+ }
17
+ }