@odx/ui 1.0.0-rc.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +3 -2
  2. package/ag-grid-theme.css +1 -0
  3. package/core-theme.css +1 -1
  4. package/package.json +4 -1
  5. package/scss/3rdparty/ag-grid/theme.scss +220 -0
  6. package/scss/abstract/_breakpoints.scss +12 -6
  7. package/scss/abstract/_dimensions.scss +2 -1
  8. package/scss/abstract/_motion.scss +3 -1
  9. package/scss/abstract/_typography.scss +9 -5
  10. package/scss/abstract/_utils.scss +9 -1
  11. package/scss/assets/fonts/PangeaText-MediumWeb.woff2 +0 -0
  12. package/scss/assets/fonts/PangeaText-RegularWeb.woff2 +0 -0
  13. package/scss/assets/fonts/PangeaText-SemiBoldWeb.woff2 +0 -0
  14. package/scss/assets/icons.css.hbs +23 -0
  15. package/scss/assets/images/logo.svg +6 -0
  16. package/scss/cdk/active-indicator.scss +1 -1
  17. package/scss/cdk/connected-overlay.scss +2 -2
  18. package/scss/components/action-group.component.scss +3 -3
  19. package/scss/components/area-header.component.scss +15 -11
  20. package/scss/components/avatar.component.scss +6 -1
  21. package/scss/components/badge.component.scss +7 -16
  22. package/scss/components/bar.component.scss +93 -0
  23. package/scss/components/breadcrumbs.component.scss +30 -0
  24. package/scss/components/button-group.component.scss +14 -10
  25. package/scss/components/button.component.scss +26 -4
  26. package/scss/components/card.component.scss +174 -0
  27. package/scss/components/checkbox.component.scss +1 -0
  28. package/scss/components/chip.component.scss +1 -0
  29. package/scss/components/content-box.component.scss +20 -16
  30. package/scss/components/dropdown.component.scss +3 -1
  31. package/scss/components/expandable-list-item.component.scss +66 -0
  32. package/scss/components/form-field.component.scss +31 -3
  33. package/scss/components/header.component.scss +9 -3
  34. package/scss/components/icon.component.scss +5 -10
  35. package/scss/components/launch-tile.component.scss +9 -8
  36. package/scss/components/link.component.scss +8 -0
  37. package/scss/components/list-item.component.scss +1 -1
  38. package/scss/components/loading-spinner.component.scss +14 -3
  39. package/scss/components/logo.component.scss +6 -1
  40. package/scss/components/main-menu-button.component.scss +4 -0
  41. package/scss/components/main-menu-item.component.scss +10 -1
  42. package/scss/components/main-menu.component.scss +15 -8
  43. package/scss/components/mainfilter-group.component.scss +141 -0
  44. package/scss/components/menu.component.scss +52 -0
  45. package/scss/components/modal.component.scss +72 -13
  46. package/scss/components/navigation-back.component.scss +23 -0
  47. package/scss/components/select.component.scss +9 -7
  48. package/scss/components/slider.component.scss +1 -0
  49. package/scss/components/spinbox.component.scss +4 -0
  50. package/scss/components/switch.component.scss +2 -1
  51. package/scss/components/tab-bar-item.component.scss +1 -1
  52. package/scss/components/tab-bar.component.scss +1 -1
  53. package/scss/components/toast-item.component.scss +77 -0
  54. package/scss/components/toast.component.scss +33 -0
  55. package/scss/components/toggle-button-group.component.scss +5 -3
  56. package/scss/components/toggle-button.component.scss +21 -13
  57. package/scss/components/tooltip.component.scss +3 -2
  58. package/scss/core.scss +14 -11
  59. package/scss/layout/_description-list.scss +2 -1
  60. package/scss/layout/_helpers.scss +2 -0
  61. package/scss/layout/_layout.scss +4 -0
  62. package/scss/layout/_typography.scss +6 -4
  63. package/scss/reset.scss +1 -0
  64. package/scss/skeleton/_skeleton.scss +49 -0
  65. package/scss/variables/_color-palettes-dark.scss +53 -0
  66. package/scss/variables/_color-palettes.scss +1 -1
  67. package/scss/variables/_colors-dark.scss +43 -0
  68. package/scss/variables/_colors.scss +9 -3
  69. package/scss/variables/_controls.scss +11 -1
  70. package/scss/variables/_index.scss +2 -0
  71. package/scss/variables/_typography.scss +2 -2
  72. package/scss/variables/_visuals.scss +10 -3
  73. package/core-icons.css +0 -43
  74. package/core-icons.woff2 +0 -0
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@odx/ui",
3
- "version": "1.0.0-rc.8",
3
+ "version": "1.0.0",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
+ "peerDependencies": {
7
+ "@odx/icons": "*"
8
+ },
6
9
  "files": [
7
10
  "*.css",
8
11
  "*.woff2",
@@ -0,0 +1,220 @@
1
+ @use '@odx/icons/core/core-utils' as icons;
2
+ @use '../../abstract/dimensions';
3
+ @use '../../abstract/typography';
4
+
5
+ .ag-theme-odx {
6
+ --ag-border-color: var(--odx-c-seperator);
7
+ --ag-foreground-color: var(--odx-c-text);
8
+ --ag-secondary-foreground-color: var(--odx-c-text);
9
+ --ag-disabled-foreground-color: vara(--odx-c-text-disabled);
10
+
11
+ --ag-background-color: var(--odx-c-background-content);
12
+
13
+ --ag-font-family: 'Pangea';
14
+ --ag-font-size: var(--odx-typography-base-size);
15
+
16
+ --ag-icon-size: #{typography.get-font-size(1)};
17
+ --ag-icon-font-family: #{icons.get-font-family()};
18
+ --ag-icon-font-code-aggregation: '#{icons.get-icon-glyph(placeholder)}';
19
+ --ag-icon-font-code-arrows: '#{icons.get-icon-glyph(placeholder)}';
20
+ --ag-icon-font-code-asc: '#{icons.get-icon-glyph(ascending)}';
21
+ --ag-icon-font-code-cancel: '#{icons.get-icon-glyph(close)}';
22
+ --ag-icon-font-code-chart: '#{icons.get-icon-glyph(placeholder)}';
23
+ --ag-icon-font-code-checkbox-checked: '#{icons.get-icon-glyph(placeholder)}';
24
+ --ag-icon-font-code-checkbox-indeterminate: '#{icons.get-icon-glyph(placeholder)}';
25
+ --ag-icon-font-code-checkbox-unchecked: '#{icons.get-icon-glyph(placeholder)}';
26
+ --ag-icon-font-code-color-picker: '#{icons.get-icon-glyph(placeholder)}';
27
+ --ag-icon-font-code-columns: '#{icons.get-icon-glyph(placeholder)}';
28
+ --ag-icon-font-code-contracted: '#{icons.get-icon-glyph(chevron-right)}';
29
+ --ag-icon-font-code-copy: '#{icons.get-icon-glyph(copy-content)}';
30
+ --ag-icon-font-code-cut: '#{icons.get-icon-glyph(cut)}';
31
+ --ag-icon-font-code-cross: '#{icons.get-icon-glyph(close)}';
32
+ --ag-icon-font-code-csv: '#{icons.get-icon-glyph(file)}';
33
+ --ag-icon-font-code-desc: '#{icons.get-icon-glyph(descending)}';
34
+ --ag-icon-font-code-excel: '#{icons.get-icon-glyph(file-excel)}';
35
+ --ag-icon-font-code-expanded: '#{icons.get-icon-glyph(chevron-left)}';
36
+ --ag-icon-font-code-eye-slash: '#{icons.get-icon-glyph(placeholder)}';
37
+ --ag-icon-font-code-eye: '#{icons.get-icon-glyph(placeholder)}';
38
+ --ag-icon-font-code-filter: '#{icons.get-icon-glyph(filter)}';
39
+ --ag-icon-font-code-first: '#{icons.get-icon-glyph(placeholder)}';
40
+ --ag-icon-font-code-grip: '#{icons.get-icon-glyph(placeholder)}';
41
+ --ag-icon-font-code-group: '#{icons.get-icon-glyph(placeholder)}';
42
+ --ag-icon-font-code-last: '#{icons.get-icon-glyph(placeholder)}';
43
+ --ag-icon-font-code-left: '#{icons.get-icon-glyph(arrow-left)}';
44
+ --ag-icon-font-code-linked: '#{icons.get-icon-glyph(placeholder)}';
45
+ --ag-icon-font-code-loading: '#{icons.get-icon-glyph(placeholder)}';
46
+ --ag-icon-font-code-maximize: '#{icons.get-icon-glyph(maximize)}';
47
+ --ag-icon-font-code-menu: '#{icons.get-icon-glyph(menu)}';
48
+ --ag-icon-font-code-minimize: '#{icons.get-icon-glyph(minimize)}';
49
+ --ag-icon-font-code-next: '#{icons.get-icon-glyph(chevron-right)}';
50
+ --ag-icon-font-code-none: '#{icons.get-icon-glyph(placeholder)}';
51
+ --ag-icon-font-code-not-allowed: '#{icons.get-icon-glyph(blocked)}';
52
+ --ag-icon-font-code-paste: '#{icons.get-icon-glyph(placeholder)}';
53
+ --ag-icon-font-code-pin: '#{icons.get-icon-glyph(pin)}';
54
+ --ag-icon-font-code-pivot: '#{icons.get-icon-glyph(placeholder)}';
55
+ --ag-icon-font-code-previous: '#{icons.get-icon-glyph(chevron-left)}';
56
+ --ag-icon-font-code-radio-button-off: '#{icons.get-icon-glyph(placeholder)}';
57
+ --ag-icon-font-code-radio-button-on: '#{icons.get-icon-glyph(placeholder)}';
58
+ --ag-icon-font-code-right: '#{icons.get-icon-glyph(arrow-right)}';
59
+ --ag-icon-font-code-save: '#{icons.get-icon-glyph(save)}';
60
+ --ag-icon-font-code-small-down: '#{icons.get-icon-glyph(chevron-down)}';
61
+ --ag-icon-font-code-small-left: '#{icons.get-icon-glyph(chevron-left)}';
62
+ --ag-icon-font-code-small-right: '#{icons.get-icon-glyph(chevron-right)}';
63
+ --ag-icon-font-code-small-up: '#{icons.get-icon-glyph(chevron-up)}';
64
+ --ag-icon-font-code-tick: '#{icons.get-icon-glyph(check)}';
65
+ --ag-icon-font-code-tree-closed: '#{icons.get-icon-glyph(chevron-right)}';
66
+ --ag-icon-font-code-tree-indeterminate: '#{icons.get-icon-glyph(minus)}';
67
+ --ag-icon-font-code-tree-open: '#{icons.get-icon-glyph(chevron-down)}';
68
+ --ag-icon-font-code-unlinked: '#{icons.get-icon-glyph(placeholder)}';
69
+
70
+ --ag-grid-size: #{dimensions.get-size(0.25)};
71
+ --ag-widget-vertical-spacing: #{dimensions.get-size(0.5)};
72
+
73
+ --ag-header-height: #{dimensions.get-size(2)};
74
+ --ag-row-height: #{dimensions.get-size(2)};
75
+ --ag-table-line-height: #{dimensions.get-size(1.5)};
76
+ --ag-list-item-height: #{dimensions.get-size(1.5)};
77
+
78
+ input[type='text'] {
79
+ background: var(--gray-100);
80
+ border: var(--ag-borders-critical) var(--gray100);
81
+ border-radius: var(--odx-v-border-radius-controls);
82
+ font-weight: var(--odx-typography-font-weight-normal);
83
+ letter-spacing: var(--odx-typography-font-weight-medium-letter-spacing);
84
+ line-height: var(--ag-table-line-height);
85
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
86
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
87
+ vertical-align: middle;
88
+
89
+ &::placeholder {
90
+ color: var(--odx-c-text);
91
+ opacity: 0.65;
92
+ }
93
+ }
94
+
95
+ .ag-standard-button {
96
+ background-color: var(--odx-c-primary);
97
+ border-radius: var(--odx-v-border-radius-controls);
98
+ color: var(--odx-c-primary-text);
99
+ height: calc(var(--odx-vertical-rythm-base-size) * 1.5);
100
+ min-width: calc(var(--odx-vertical-rythm-base-size) * 3);
101
+ outline-offset: calc(-1 * var(--odx-v-outline-width-bold));
102
+ outline-width: var(--odx-v-outline-width-bold);
103
+ transition: all var(--odx-v-transition-duration) 0ms var(--odx-v-transition-easing-fn);
104
+ transition-property: background-color, color, outline;
105
+ }
106
+
107
+ .ag-header {
108
+ border-bottom: var(--ag-borders-critical) var(--gray-700);
109
+
110
+ &-row:not(:first-child) {
111
+ .ag-header-cell,
112
+ .ag-header-group-cell.ag-header-group-cell-with-group {
113
+ border: none;
114
+ }
115
+ }
116
+
117
+ .ag-cell-label-container {
118
+ width: fit-content;
119
+ }
120
+
121
+ .ag-floating-filter {
122
+ .ag-filter-select {
123
+ .ag-picker-field-wrapper {
124
+ height: calc(var(--odx-vertical-rythm-base-size) * 1.5);
125
+ }
126
+ }
127
+
128
+ input[type='text']:disabled {
129
+ color: var(--odx-c-text);
130
+ font-weight: var(--odx-typography-font-weight-medium);
131
+ padding: 0;
132
+ }
133
+ }
134
+
135
+ .ag-header-cell-text {
136
+ font-weight: var(--odx-typography-font-weight-medium);
137
+ }
138
+
139
+ .ag-header-cell-label {
140
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.25);
141
+ }
142
+
143
+ .ag-header-icon {
144
+ &.ag-header-cell-menu-button {
145
+ height: calc(var(--odx-vertical-rythm-base-size) * 0.667);
146
+ width: calc(var(--odx-vertical-rythm-base-size) * 0.667);
147
+ }
148
+ }
149
+ }
150
+
151
+ &.ag-popup {
152
+ [type='text']:focus {
153
+ border-color: var(--ag-input-border-color);
154
+ border-radius: var(--odx-v-border-radius);
155
+ box-shadow: unset;
156
+ }
157
+ }
158
+
159
+ .ag-radio-button-input-wrapper {
160
+ align-items: center;
161
+ background-color: var(--odx-control-background-color);
162
+ border-radius: 50%;
163
+ display: flex;
164
+ flex: 0 0 auto;
165
+ height: calc(var(--odx-vertical-rythm-base-size) * 0.8334);
166
+ justify-content: center;
167
+ margin-bottom: calc(var(--odx-vertical-rythm-base-size) * 0.0834);
168
+ margin-top: calc(var(--odx-vertical-rythm-base-size) * 0.0834);
169
+ outline: var(--odx-v-outline-width) solid transparent;
170
+ outline-color: var(--odx-control-outline-color);
171
+ outline-offset: calc(-1 * var(--odx-v-outline-width));
172
+ padding: 1px;
173
+ transition: all var(--odx-v-transition-duration) 0ms var(--odx-v-transition-easing-fn);
174
+ transition-property: background-color, color, outline-color;
175
+ width: calc(var(--odx-vertical-rythm-base-size) * 0.8334);
176
+
177
+ &:hover {
178
+ background-color: var(--odx-control-background-color-hover);
179
+ outline-color: var(--odx-control-outline-color-hover);
180
+ }
181
+
182
+ &.ag-checked {
183
+ background-color: var(--odx-control-background-color-selected);
184
+ color: var(--odx-control-color-selected);
185
+ opacity: 1;
186
+ outline-color: var(--odx-control-outline-color-selected);
187
+
188
+ &::after {
189
+ background-color: var(--odx-control-color-selected);
190
+ border-radius: 50%;
191
+ content: '';
192
+ height: calc(var(--odx-vertical-rythm-base-size) * 0.1667);
193
+ left: unset;
194
+ margin-bottom: calc(var(--odx-vertical-rythm-base-size) * 0);
195
+ margin-top: calc(var(--odx-vertical-rythm-base-size) * 0);
196
+ top: unset;
197
+ transform: scale(1);
198
+ width: calc(var(--odx-vertical-rythm-base-size) * 0.1667);
199
+ }
200
+ }
201
+ }
202
+
203
+ .ag-root-wrapper {
204
+ border: none;
205
+ }
206
+
207
+ .ag-select {
208
+ .ag-picker-field-display {
209
+ color: var(--odx-c-text);
210
+ }
211
+
212
+ .ag-picker-field-icon {
213
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.5);
214
+ }
215
+ }
216
+
217
+ .ag-select-list {
218
+ color: var(--odx-c-text);
219
+ }
220
+ }
@@ -2,15 +2,21 @@
2
2
  @use 'sass:list';
3
3
  @use 'sass:map';
4
4
 
5
- $breakpoints: () !default;
5
+ $breakpoints: (
6
+ 'phone-s': 360px,
7
+ 'phone': 480px,
8
+ 'tablet': 768px,
9
+ 'desktop-s': 960px,
10
+ 'desktop': 1200px,
11
+ ) !default;
6
12
 
7
13
  @function get-breakpoint-names() {
8
14
  @return map.keys($breakpoints);
9
15
  }
10
16
 
11
- @function _get-value($breakpoint) {
17
+ @function get-breakpoint-value($breakpoint) {
12
18
  @if $breakpoint and not map.has-key($breakpoints, $breakpoint) {
13
- @error "Invalid breakpoint, `#{$breakpoint}` doesn't exist. Choose one of #{map.keys(breakpoints.$values)}.";
19
+ @error "Invalid breakpoint, `#{$breakpoint}` doesn't exist.";
14
20
  }
15
21
 
16
22
  @return map.get($breakpoints, $breakpoint);
@@ -18,7 +24,7 @@ $breakpoints: () !default;
18
24
 
19
25
  @function _get-next-value($breakpoint) {
20
26
  @if $breakpoint and not map.has-key($breakpoints, $breakpoint) {
21
- @error "Invalid breakpoint, `#{$breakpoint}` doesn't exist. Choose one of #{map.keys(breakpoints.$values)}.";
27
+ @error "Invalid breakpoint, `#{$breakpoint}` doesn't exist.";
22
28
  }
23
29
 
24
30
  $keys: get-breakpoint-names();
@@ -28,13 +34,13 @@ $breakpoints: () !default;
28
34
  }
29
35
 
30
36
  @function _get-min-value($breakpoint) {
31
- $value: _get-value($breakpoint);
37
+ $value: get-breakpoint-value($breakpoint);
32
38
 
33
39
  @return if($value != 0, $value, null);
34
40
  }
35
41
 
36
42
  @function _get-max-value($breakpoint) {
37
- $value: _get-value($breakpoint);
43
+ $value: get-breakpoint-value($breakpoint);
38
44
 
39
45
  @return if($value > 0, $value - 1, null);
40
46
  }
@@ -1,9 +1,10 @@
1
1
  @use 'sass:math';
2
2
 
3
3
  @function _get-line-height-factor($factor, $line-height-factor) {
4
- @if $line-height-factor == null {
4
+ @if not $line-height-factor {
5
5
  @return $factor;
6
6
  }
7
+
7
8
  @return $line-height-factor;
8
9
  }
9
10
 
@@ -1,8 +1,10 @@
1
+ @use 'sass:list';
2
+
1
3
  @mixin transition($properties, $duration: var(--odx-v-transition-duration), $delay: 0ms) {
2
4
  $props: ();
3
5
 
4
6
  @each $prop in $properties {
5
- $props: append($props, $prop, comma);
7
+ $props: list.append($props, $prop, comma);
6
8
  }
7
9
 
8
10
  transition: all $duration $delay var(--odx-v-transition-easing-fn);
@@ -1,16 +1,20 @@
1
1
  @use 'sass:math';
2
2
  @use 'utils';
3
3
 
4
+ @function get-font-size($size: 1) {
5
+ @if $size < 0 {
6
+ @return calc(var(--odx-typography-base-size) * utils.css-pow(var(--odx-typography-negative-font-scaling-factor), $size));
7
+ } @else {
8
+ @return calc(var(--odx-typography-base-size) * utils.css-pow(var(--odx-typography-positive-font-scaling-factor), $size));
9
+ }
10
+ }
11
+
4
12
  @mixin font-size($size: 1) {
5
13
  @if math.round($size) != $size {
6
14
  @error '$size must me an integer';
7
15
  }
8
16
 
9
- @if $size < 0 {
10
- font-size: calc(var(--odx-typography-base-size) * utils.css-pow(var(--odx-typography-negative-font-scaling-factor), $size));
11
- } @else {
12
- font-size: calc(var(--odx-typography-base-size) * utils.css-pow(var(--odx-typography-positive-font-scaling-factor), $size));
13
- }
17
+ font-size: get-font-size($size);
14
18
  }
15
19
 
16
20
  @mixin font-weight($value: normal) {
@@ -66,6 +66,7 @@
66
66
 
67
67
  @mixin _focus-styles($with-background) {
68
68
  outline-color: var(--odx-c-focus-outline);
69
+
69
70
  @if $with-background {
70
71
  &,
71
72
  &:hover {
@@ -105,7 +106,7 @@
105
106
  }
106
107
 
107
108
  @mixin interactive($with-background: true, $focus-within: false) {
108
- @include with-outline;
109
+ @include with-outline();
109
110
  @include focus-state($with-background, $focus-within);
110
111
 
111
112
  cursor: pointer;
@@ -121,3 +122,10 @@
121
122
  pointer-events: none;
122
123
  user-select: none;
123
124
  }
125
+
126
+ @mixin dark-theme-selector() {
127
+ &[odxTheme='dark'],
128
+ &.odx-theme-dark {
129
+ @content;
130
+ }
131
+ }
@@ -0,0 +1,23 @@
1
+ @font-face {
2
+ font-display: block;
3
+ font-family: "{{ name }}";
4
+ src: {{{ fontSrc }}};
5
+ }
6
+
7
+ .{{prefix}}::before,
8
+ [class^="{{prefix}}-"]::before,
9
+ [class*=" {{prefix}}-"]::before {
10
+ font-family: {{ name }} !important;
11
+ font-style: normal;
12
+ font-weight: normal !important;
13
+ font-variant: normal;
14
+ text-transform: none;
15
+ line-height: 1;
16
+ vertical-align: top;
17
+ -webkit-font-smoothing: antialiased;
18
+ -moz-osx-font-smoothing: grayscale;
19
+ }
20
+
21
+ {{# each codepoints }}
22
+ .{{ ../prefix }}-{{ @key }}::before { content: "\\{{ codepoint this }}"; }
23
+ {{/ each }}
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 74 29">
2
+ <path
3
+ fill="#000000"
4
+ d="M29.717 2.887c0 1.4-1.127 2.535-2.512 2.535a2.522 2.522 0 0 1-2.514-2.533c0-1.4 1.124-2.534 2.514-2.534a2.523 2.523 0 0 1 2.512 2.532ZM9.827.848H0v2.554h7.779c.903 0 1.635.732 1.644 1.637v14.62a1.65 1.65 0 0 1-1.644 1.64H4.823l.001-15.516H0v18.174h9.827c2.303 0 4.17-1.868 4.192-4.187V5.036C13.998 2.717 12.13.848 9.827.848Zm13.968 6.18c-2.705-.01-4.327.186-5.537.464-1.649.414-2.318.972-2.638 1.24a2.134 2.134 0 0 1-.145.114v15.111h4.596V11.452c-.027-1.55 2.264-2.062 3.722-.984l.002-3.44Zm42.037 1.694c.324-.269.992-.823 2.634-1.235 1.205-.275 2.833-.475 5.534-.464v3.44c-1.457-1.079-3.75-.566-3.726.984v12.509h-4.593V8.84c.04-.028.09-.068.15-.12ZM31.507 21.278h-2.135c-.987.018-1.716-.705-1.737-1.76a37.415 37.415 0 0 1 0-1.91c.014-.968.75-1.743 1.737-1.73h2.135v5.4Zm.679-14.253h-7.447v3.438s2.625-.894 4.448-.894c2.222 0 2.34 1.13 2.322 1.635v2.022h-4.484c-2.048 0-3.709 1.67-3.718 3.734v3.246c0 2.07 1.665 3.75 3.718 3.75h9.077v-13.01c-.015-2.318-1.883-3.92-3.916-3.92Zm1.074-1.604a2.521 2.521 0 0 0 2.512-2.534A2.52 2.52 0 0 0 33.26.355a2.522 2.522 0 0 0-2.513 2.532 2.523 2.523 0 0 0 2.513 2.534ZM43.7 9.605c-1.776 0-1.974 1.253-1.974 1.975v1.67c0 .725.198 1.976 1.974 1.974 1.778-.001 1.975-1.25 1.975-1.975v-1.67c0-.722-.197-1.974-1.975-1.974Zm2.281 8.092H41.33c-2.038.01-3.916-1.604-3.914-3.919V10.98C37.405 8.927 39 7.014 41.3 7.025h8.566v6.72c.004 2.05-1.601 3.96-3.884 3.952Zm-.117 6.877c0 .719-.21 1.971-2.084 1.971-1.869 0-2.078-1.252-2.078-1.97v-1.673c0-.723.21-1.977 2.078-1.977 1.875 0 2.084 1.255 2.084 1.977v1.672Zm.473-6.234-5.21.002c-2.29-.003-3.892 1.868-3.885 3.92v2.785c-.005 2.305 1.88 3.956 3.917 3.953h5.204c2.288 0 3.902-1.915 3.89-3.953v-2.785a3.916 3.916 0 0 0-3.916-3.922Zm9.41-3.326h3.946v-3.449c0-.723-.253-1.975-1.972-1.975-1.722 0-1.973 1.252-1.973 1.975v3.449Zm-.59-7.99 5.173-.001c2.03 0 3.926 1.602 3.923 3.92v6.699h-8.417v2.072c.008.906.696 1.66 2.522 1.66 2.81.005 5.761-.846 5.761-.846v3.428h-8.76c-2.233.004-4.123-1.6-4.118-3.918v-9.093c0-2.33 1.879-3.93 3.916-3.921Z"
5
+ />
6
+ </svg>
@@ -7,7 +7,7 @@
7
7
  pointer-events: none;
8
8
  position: absolute;
9
9
  transform-origin: 0 0;
10
- z-index: 0;
10
+ z-index: var(--odx-v-layer-1);
11
11
 
12
12
  &--horizontal {
13
13
  left: 0;
@@ -9,7 +9,7 @@
9
9
 
10
10
  display: block;
11
11
  position: fixed;
12
- z-index: 1337;
12
+ z-index: var(--odx-v-layer-3);
13
13
 
14
14
  &.is-hidden {
15
15
  opacity: 0;
@@ -32,5 +32,5 @@
32
32
  position: fixed;
33
33
  transform: rotate(45deg);
34
34
  width: dimensions.get-size(0.5);
35
- z-index: 0;
35
+ z-index: var(--odx-v-layer-1);
36
36
  }
@@ -12,14 +12,14 @@
12
12
  flex-direction: row-reverse;
13
13
  }
14
14
 
15
- > .odx-button:not(.odx-button--success, .odx-button--danger, .odx-button--confirmation) {
15
+ > .odx-button:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in) {
16
16
  /* stylelint-disable-next-line scss/at-extend-no-missing-placeholder */
17
17
  @extend .odx-button--ghost;
18
18
 
19
- color: var(--odx-c-control-text);
19
+ color: var(--odx-c-text);
20
20
 
21
21
  &:hover {
22
- color: var(--odx-c-control-text);
22
+ color: var(--odx-c-text);
23
23
  }
24
24
 
25
25
  &:focus-visible {
@@ -6,18 +6,27 @@
6
6
  @use 'avatar.component';
7
7
  @use '../layout/typography' as *;
8
8
 
9
- :root {
9
+ body {
10
10
  --odx-area-header-title-color: var(--odx-c-headline);
11
11
  --odx-area-header-subtitle-color: var(--odx-c-headline);
12
12
  }
13
13
 
14
14
  .odx-area-header {
15
- @include dimensions.padding-x(1);
15
+ @include dimensions.padding-x(0.5);
16
+
17
+ @include breakpoints.up(phone) {
18
+ @include dimensions.padding-x(1);
19
+ }
16
20
 
17
21
  &,
18
22
  &__container {
19
23
  column-gap: dimensions.get-size(math.div(20, 24));
20
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
+ }
21
30
  }
22
31
 
23
32
  * {
@@ -32,11 +41,13 @@
32
41
  &__container {
33
42
  display: flex;
34
43
  flex: 1 1 auto;
44
+ overflow: hidden;
35
45
  }
36
46
 
37
47
  &__inner {
38
48
  align-self: center;
39
49
  flex: 1 1 auto;
50
+ overflow: hidden;
40
51
  }
41
52
 
42
53
  &__title {
@@ -47,6 +58,7 @@
47
58
  }
48
59
 
49
60
  &__subtitle {
61
+ @include typography.prevent-text-overflow();
50
62
  @extend .odx-subtitle;
51
63
  @extend .odx-subtitle-6;
52
64
 
@@ -67,10 +79,6 @@
67
79
 
68
80
  &--small,
69
81
  &--medium {
70
- .odx-area-header__subtitle {
71
- display: none;
72
- }
73
-
74
82
  .odx-avatar {
75
83
  @extend .odx-avatar--small;
76
84
  }
@@ -99,11 +107,7 @@
99
107
  }
100
108
 
101
109
  &--large {
102
- @include dimensions.padding-y(0.25);
103
-
104
- @include breakpoints.up(tablet) {
105
- @include dimensions.padding-y(0.5);
106
- }
110
+ @include dimensions.padding-y(0.5);
107
111
 
108
112
  .odx-area-header__title {
109
113
  @extend .odx-title-4;
@@ -25,6 +25,7 @@
25
25
  border-radius: 50%;
26
26
  color: var(--odx-c-text);
27
27
  position: relative;
28
+ user-select: none;
28
29
  vertical-align: middle;
29
30
 
30
31
  &--small {
@@ -47,6 +48,10 @@
47
48
  }
48
49
  }
49
50
 
51
+ &--rectangle {
52
+ border-radius: var(--odx-v-border-radius-controls);
53
+ }
54
+
50
55
  img {
51
56
  height: 100%;
52
57
  left: 0;
@@ -54,6 +59,6 @@
54
59
  position: absolute;
55
60
  top: 0;
56
61
  width: 100%;
57
- z-index: 2;
62
+ z-index: var(--odx-v-layer-1);
58
63
  }
59
64
  }
@@ -3,7 +3,7 @@
3
3
  @use '../abstract/utils';
4
4
  @use '../abstract/typography';
5
5
 
6
- :root {
6
+ body {
7
7
  --odx-badge-contrast-color: var(--odx-c-background-content);
8
8
  }
9
9
 
@@ -18,24 +18,10 @@
18
18
 
19
19
  border-radius: $badge-size;
20
20
  height: $badge-size;
21
- left: 0;
22
21
  min-width: $badge-size;
23
22
  outline: 1px solid transparent;
24
- top: 0;
25
23
  vertical-align: middle;
26
- z-index: 9999;
27
-
28
- &::before {
29
- content: attr(data-value);
30
- }
31
-
32
- &[data-value='0'] {
33
- display: none;
34
- }
35
-
36
- &[data-value^='-']::before {
37
- content: '';
38
- }
24
+ z-index: var(--odx-v-layer-1);
39
25
 
40
26
  &,
41
27
  &--highlight {
@@ -56,4 +42,9 @@
56
42
  &--contrast {
57
43
  outline-color: var(--odx-badge-contrast-color);
58
44
  }
45
+
46
+ .odx-badge-overlay > & {
47
+ display: flex;
48
+ margin: calc(#{$badge-size} / -2);
49
+ }
59
50
  }
@@ -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
+ body {
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
+ @include utils.dark-theme-selector() {
16
+ --odx-bar-background-color-hover: var(--cyan-400);
17
+ --odx-bar-background-color-active: var(--cyan-300);
18
+ --odx-bar-text-color: var(--black);
19
+ --odx-bar-text-color-disabled: var(--cyan-200);
20
+ }
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: 0 2px 6px rgb(0 25 66 / 50%);
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
+ }