@odx/ui 4.1.0 → 4.3.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @odx/ui
2
2
 
3
+ ## 4.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 388a92e: Badges, Dropdowns, Tooltips rework (connected overlay now uses popover api)
8
+
9
+ ## 4.2.0
10
+
11
+ ### Minor Changes
12
+
13
+ - c42ff73: New 'angular-chart-js' library for chart-js customization. Please note that '@odx/angular/charts-config' has been removed from the '@odx/angular' library and you should install '@odx/angular-chart-js' and change the path in the 'ChartThemeModule' import.
14
+
15
+ 1. Install new package: 'npm install @odx/angular-chart-js'
16
+ 2. Change the path if you already use 'ChartThemeModule' before: '@odx/angular/charts-config' => '@odx/angular-chart-js'.
17
+
3
18
  ## 4.1.0
4
19
 
5
20
  ### Minor Changes
package/core-theme.css CHANGED
@@ -2126,15 +2126,21 @@ html body .odx-fs-italic {
2126
2126
  .odx-cdk-connected-overlay {
2127
2127
  transition-delay: 0ms;
2128
2128
  transition-duration: var(--odx-v-transition-duration);
2129
- transition-property: opacity, visibility;
2129
+ transition-property: opacity, visibility, overlay;
2130
2130
  transition-timing-function: var(--odx-v-transition-easing-fn);
2131
- display: block;
2131
+ background: transparent;
2132
+ border: 0;
2133
+ color: var(--odx-c-text);
2134
+ margin: 0;
2135
+ opacity: 0;
2136
+ overflow: visible;
2137
+ padding: 0;
2132
2138
  position: fixed;
2133
- z-index: var(--odx-v-layer-4);
2139
+ transform: translate(var(--odx-cdk-connected-overlay-position-x, 0), var(--odx-cdk-connected-overlay-position-y, 0));
2140
+ transition-behavior: allow-discrete;
2134
2141
  }
2135
2142
  .odx-cdk-connected-overlay.is-hidden {
2136
- opacity: 0;
2137
- visibility: hidden;
2143
+ display: none;
2138
2144
  }
2139
2145
  .odx-cdk-connected-overlay__content {
2140
2146
  left: 0 !important;
@@ -2148,13 +2154,20 @@ html body .odx-fs-italic {
2148
2154
  .odx-cdk-connected-overlay__content > * {
2149
2155
  max-height: var(--odx-cdk-connected-overlay-max-height-modified, var(--odx-cdk-connected-overlay-max-height, unset));
2150
2156
  }
2157
+ .odx-cdk-connected-overlay:popover-open {
2158
+ opacity: 1;
2159
+ }
2160
+ @starting-style {
2161
+ .odx-cdk-connected-overlay:popover-open {
2162
+ opacity: 0;
2163
+ }
2164
+ }
2151
2165
 
2152
2166
  .odx-cdk-connected-overlay-arrow {
2153
2167
  height: calc(var(--odx-vertical-rythm-base-size) * 0.5);
2154
2168
  position: fixed;
2155
2169
  transform: rotate(45deg);
2156
2170
  width: calc(var(--odx-vertical-rythm-base-size) * 0.5);
2157
- z-index: var(--odx-v-layer-1);
2158
2171
  }
2159
2172
 
2160
2173
  /*
@@ -2856,10 +2869,6 @@ html body .odx-fs-italic {
2856
2869
  --odx-badge-contrast-color: var(--odx-c-background-content);
2857
2870
  }
2858
2871
 
2859
- .odx-badge-overlay {
2860
- z-index: var(--odx-v-layer-1);
2861
- }
2862
-
2863
2872
  .odx-badge {
2864
2873
  padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.125);
2865
2874
  padding-left: calc(var(--odx-vertical-rythm-base-size) * 0.125);
@@ -5232,14 +5241,6 @@ html body .odx-fs-italic {
5232
5241
  width: calc(var(--odx-vertical-rythm-base-size) * 4.1667);
5233
5242
  }
5234
5243
 
5235
- @keyframes basic-fade-out {
5236
- from {
5237
- opacity: 1;
5238
- }
5239
- to {
5240
- opacity: 0;
5241
- }
5242
- }
5243
5244
  .odx-modal {
5244
5245
  --odx-modal-margin-y: calc(var(--odx-vertical-rythm-base-size) * 2);
5245
5246
  --odx-modal-margin-x: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
@@ -5255,17 +5256,40 @@ html body .odx-fs-italic {
5255
5256
  padding: 0;
5256
5257
  width: min(var(--odx-modal-max-width), 100% - 2 * var(--odx-modal-margin-x));
5257
5258
  }
5258
- .odx-modal:modal {
5259
- max-height: calc(100% - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
5260
- max-width: 100vw;
5259
+ .odx-modal::backdrop, .odx-modal:modal {
5260
+ transition-delay: 0ms;
5261
+ transition-duration: var(--odx-v-transition-duration);
5262
+ transition-property: opacity, visibility, overlay, transform;
5263
+ transition-timing-function: var(--odx-v-transition-easing-fn);
5264
+ opacity: 0;
5265
+ transition-behavior: allow-discrete;
5261
5266
  }
5262
5267
  .odx-modal::backdrop {
5263
5268
  -webkit-backdrop-filter: blur(var(--odx-v-backdrop-blur));
5264
5269
  backdrop-filter: blur(var(--odx-v-backdrop-blur));
5265
5270
  background-color: var(--odx-c-backdrop-dark);
5266
5271
  }
5267
- .odx-modal[data-closing-animation]::backdrop {
5268
- animation: basic-fade-out 0.3s;
5272
+ .odx-modal:modal {
5273
+ max-height: calc(100% - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
5274
+ max-width: 100vw;
5275
+ }
5276
+ .odx-modal[open]::backdrop, .odx-modal[open]:modal {
5277
+ opacity: 1;
5278
+ }
5279
+ .odx-modal[open]:modal {
5280
+ transform: translateY(0);
5281
+ transform: translateX(0);
5282
+ }
5283
+ @starting-style {
5284
+ .odx-modal[open]:modal, .odx-modal[open]::backdrop {
5285
+ opacity: 0;
5286
+ }
5287
+ .odx-modal[open]:modal:not(.odx-modal--sidesheet) {
5288
+ transform: translateY(calc(var(--odx-vertical-rythm-base-size) * 0.3334));
5289
+ }
5290
+ .odx-modal[open]:modal.odx-modal--sidesheet {
5291
+ transform: translateX(calc(var(--odx-vertical-rythm-base-size) * 2));
5292
+ }
5269
5293
  }
5270
5294
  .odx-modal.odx-modal--xsmall {
5271
5295
  --odx-modal-max-width: calc(var(--odx-vertical-rythm-base-size) * 15);
@@ -5278,7 +5302,9 @@ html body .odx-fs-italic {
5278
5302
  }
5279
5303
  .odx-modal--sidesheet {
5280
5304
  height: 100%;
5281
- max-height: calc(100% - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
5305
+ }
5306
+ .odx-modal--sidesheet .odx-modal__container {
5307
+ height: calc(100dvh - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
5282
5308
  }
5283
5309
  .odx-modal--sidesheet::backdrop {
5284
5310
  -webkit-backdrop-filter: unset;
@@ -6803,16 +6829,15 @@ html body .odx-fs-italic {
6803
6829
  .odx-toast-container {
6804
6830
  --odx-toast-outer-offset: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
6805
6831
  --odx-toast-border-radius: calc(var(--odx-vertical-rythm-base-size) * 0.25);
6832
+ background-color: transparent;
6833
+ border: none;
6834
+ color: var(--odx-c-text);
6806
6835
  display: flex;
6807
6836
  flex-direction: column;
6808
- margin-top: calc(var(--odx-vertical-rythm-base-size) * 0.1667);
6837
+ margin: calc(var(--odx-vertical-rythm-base-size) * 0.1667) var(--odx-toast-outer-offset) auto auto;
6809
6838
  max-width: min(100dvw - 2 * var(--odx-toast-outer-offset), var(--odx-vertical-rythm-base-size) * 20);
6839
+ overflow: clip;
6810
6840
  padding-top: var(--odx-toast-outer-offset);
6811
- position: fixed;
6812
- right: var(--odx-toast-outer-offset);
6813
- top: 0;
6814
- width: 100%;
6815
- z-index: var(--odx-v-layer-5);
6816
6841
  }
6817
6842
  .odx-toast-container__counter {
6818
6843
  align-self: center;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/ui",
3
- "version": "4.1.0",
3
+ "version": "4.3.0",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
@@ -30,7 +30,7 @@ $breakpoints: (
30
30
  $keys: get-breakpoint-names();
31
31
  $index: list.index($keys, $breakpoint);
32
32
 
33
- @return if($index < length($keys), list.nth($keys, $index + 1), null);
33
+ @return if($index < list.length($keys), list.nth($keys, $index + 1), null);
34
34
  }
35
35
 
36
36
  @function _get-min-value($breakpoint) {
@@ -5,15 +5,21 @@
5
5
  @use '../abstract/utils';
6
6
 
7
7
  .odx-cdk-connected-overlay {
8
- @include motion.transition(opacity visibility);
8
+ @include motion.transition(opacity visibility overlay);
9
9
 
10
- display: block;
10
+ background: transparent;
11
+ border: 0;
12
+ color: var(--odx-c-text);
13
+ margin: 0;
14
+ opacity: 0;
15
+ overflow: visible;
16
+ padding: 0;
11
17
  position: fixed;
12
- z-index: var(--odx-v-layer-4);
18
+ transform: translate(var(--odx-cdk-connected-overlay-position-x, 0), var(--odx-cdk-connected-overlay-position-y, 0));
19
+ transition-behavior: allow-discrete;
13
20
 
14
21
  &.is-hidden {
15
- opacity: 0;
16
- visibility: hidden;
22
+ display: none;
17
23
  }
18
24
 
19
25
  &__content {
@@ -29,6 +35,16 @@
29
35
  max-height: var(--odx-cdk-connected-overlay-max-height-modified, var(--odx-cdk-connected-overlay-max-height, unset));
30
36
  }
31
37
  }
38
+
39
+ &:popover-open {
40
+ opacity: 1;
41
+ }
42
+
43
+ @starting-style {
44
+ &:popover-open {
45
+ opacity: 0;
46
+ }
47
+ }
32
48
  }
33
49
 
34
50
  .odx-cdk-connected-overlay-arrow {
@@ -36,5 +52,4 @@
36
52
  position: fixed;
37
53
  transform: rotate(45deg);
38
54
  width: dimensions.get-size(0.5);
39
- z-index: var(--odx-v-layer-1);
40
55
  }
@@ -7,10 +7,6 @@
7
7
  --odx-badge-contrast-color: var(--odx-c-background-content);
8
8
  }
9
9
 
10
- .odx-badge-overlay {
11
- z-index: var(--odx-v-layer-1);
12
- }
13
-
14
10
  .odx-badge {
15
11
  $badge-size: dimensions.get-size(math.div(2, 3));
16
12
 
@@ -1,19 +1,10 @@
1
1
  @use 'sass:math';
2
2
  @use '../abstract/dimensions';
3
3
  @use '../abstract/breakpoints';
4
+ @use '../abstract/motion';
4
5
  @use '../abstract/typography';
5
6
  @use '../abstract/utils';
6
7
 
7
- @keyframes basic-fade-out {
8
- from {
9
- opacity: 1;
10
- }
11
-
12
- to {
13
- opacity: 0;
14
- }
15
- }
16
-
17
8
  $modal-padding: math.div(12, 24);
18
9
 
19
10
  .odx-modal {
@@ -34,9 +25,12 @@ $modal-padding: math.div(12, 24);
34
25
  padding: 0;
35
26
  width: min(var(--odx-modal-max-width), calc(100% - 2 * var(--odx-modal-margin-x)));
36
27
 
28
+ &::backdrop,
37
29
  &:modal {
38
- max-height: calc(100% - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
39
- max-width: 100vw;
30
+ @include motion.transition(opacity visibility overlay transform);
31
+
32
+ opacity: 0;
33
+ transition-behavior: allow-discrete;
40
34
  }
41
35
 
42
36
  &::backdrop {
@@ -44,8 +38,34 @@ $modal-padding: math.div(12, 24);
44
38
  background-color: var(--odx-c-backdrop-dark);
45
39
  }
46
40
 
47
- &[data-closing-animation]::backdrop {
48
- animation: basic-fade-out 0.3s;
41
+ &:modal {
42
+ max-height: calc(100% - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
43
+ max-width: 100vw;
44
+ }
45
+
46
+ &[open]::backdrop,
47
+ &[open]:modal {
48
+ opacity: 1;
49
+ }
50
+
51
+ &[open]:modal {
52
+ transform: translateY(0);
53
+ transform: translateX(0);
54
+ }
55
+
56
+ @starting-style {
57
+ &[open]:modal,
58
+ &[open]::backdrop {
59
+ opacity: 0;
60
+ }
61
+
62
+ &[open]:modal:not(#{$root}--sidesheet) {
63
+ transform: translateY(#{dimensions.get-size(math.div(8, 24))});
64
+ }
65
+
66
+ &[open]:modal#{$root}--sidesheet {
67
+ transform: translateX(#{dimensions.get-size(math.div(8, 4))});
68
+ }
49
69
  }
50
70
 
51
71
  &.odx-modal--xsmall {
@@ -62,7 +82,10 @@ $modal-padding: math.div(12, 24);
62
82
 
63
83
  &--sidesheet {
64
84
  height: 100%;
65
- max-height: calc(100% - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
85
+
86
+ #{$root}__container {
87
+ height: calc(100dvh - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
88
+ }
66
89
 
67
90
  &::backdrop {
68
91
  backdrop-filter: unset;
@@ -7,16 +7,15 @@
7
7
  --odx-toast-outer-offset: #{dimensions.get-size(math.div(8, 24))};
8
8
  --odx-toast-border-radius: #{dimensions.get-size(math.div(6, 24))};
9
9
 
10
+ background-color: transparent;
11
+ border: none;
12
+ color: var(--odx-c-text);
10
13
  display: flex;
11
14
  flex-direction: column;
12
- margin-top: dimensions.get-size(math.div(4, 24));
15
+ margin: #{dimensions.get-size(math.div(4, 24))} var(--odx-toast-outer-offset) auto auto;
13
16
  max-width: min(calc(100dvw - 2 * var(--odx-toast-outer-offset)), dimensions.get-size(20));
17
+ overflow: clip;
14
18
  padding-top: var(--odx-toast-outer-offset);
15
- position: fixed;
16
- right: var(--odx-toast-outer-offset);
17
- top: 0;
18
- width: 100%;
19
- z-index: var(--odx-v-layer-5);
20
19
 
21
20
  &__counter {
22
21
  align-self: center;