@odx/ui 2.10.0 → 2.11.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,18 @@
1
1
  ## 2.9.9
2
2
 
3
+ ## 2.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 66a521fb: Make list components nestable
8
+ Redesign expandable list items
9
+
10
+ ## 2.10.1
11
+
12
+ ### Patch Changes
13
+
14
+ - a7e1493f: box-shadow color was updated for dark and light theme
15
+
3
16
  ## 2.10.0
4
17
 
5
18
  ### Minor Changes
@@ -8,6 +21,10 @@
8
21
 
9
22
  ### Patch Changes
10
23
 
24
+ - 0ded821a: border radius for toasts
25
+
26
+ ### Patch Changes
27
+
11
28
  - 469224e8: Update library dependencies
12
29
 
13
30
  ### Bug Fixes
package/ag-grid-theme.css CHANGED
@@ -12,7 +12,7 @@
12
12
  --ag-background-color: var(--odx-c-background-content);
13
13
  --ag-checkbox-indeterminate-color: var(--odx-control-color-selected);
14
14
  --ag-checkbox-checked-color: var(--odx-control-color-selected);
15
- --ag-font-family: "Pangea";
15
+ --ag-font-family: var(--odx-typography-font-family);
16
16
  --ag-font-size: var(--odx-typography-base-size);
17
17
  --ag-icon-size: calc(var(--odx-typography-base-size) * (1*var(--odx-typography-positive-font-scaling-factor)));
18
18
  --ag-icon-font-family: core-icons;
package/charts-theme.css CHANGED
@@ -40,6 +40,6 @@ body {
40
40
  --charts-border-color: var(--odx-c-seperator);
41
41
  --charts-text-color: var(--odx-c-text);
42
42
  --charts-background-color: var(--odx-c-background-content);
43
- --charts-font-family: "Pangea";
43
+ --charts-font-family: var(--odx-typography-font-family);
44
44
  --charts-font-size: var(--odx-typography-base-size);
45
45
  }
package/core-theme.css CHANGED
@@ -5,6 +5,7 @@
5
5
  body {
6
6
  --white: #ffffff;
7
7
  --black: #00060f;
8
+ --black-20: rgba(0, 0, 0, 0.2);
8
9
  --white-5: rgba(255, 255, 255, 0.05);
9
10
  --white-60: rgba(255, 255, 255, 0.6);
10
11
  --gray-50: #f5f7fa;
@@ -91,6 +92,7 @@ body[odxTheme=dark], body.odx-theme-dark {
91
92
  --white: #293642;
92
93
  --white-dark: #060a12;
93
94
  --black: #ffffff;
95
+ --black-20: rgba(0, 0, 0, 0.6);
94
96
  --focus-bg: #284e68;
95
97
  --white-60: rgba(var(--white), 0.6);
96
98
  --gray-50: #2e3d49;
@@ -156,7 +158,7 @@ body {
156
158
  --odx-c-selection: var(--cyan-300);
157
159
  --odx-c-backdrop: var(--white-60);
158
160
  --odx-c-backdrop-dark: var(--blue-800-30);
159
- --odx-c-box-shadow: var(--blue-800-30);
161
+ --odx-c-box-shadow: var(--black-20);
160
162
  --odx-c-separator: var(--gray-200);
161
163
  --odx-c-background: var(--gray-50);
162
164
  --odx-c-background-content: var(--white);
@@ -282,6 +284,7 @@ body {
282
284
 
283
285
  /* stylelint-disable block-closing-brace-newline-after */
284
286
  :root {
287
+ --odx-typography-font-family: "PangeaText", "Arial", sans-serif;
285
288
  --odx-typography-base-size: 1.6rem;
286
289
  --odx-typography-base-line-height: 1.5;
287
290
  --odx-typography-font-weight-normal: normal;
@@ -528,19 +531,19 @@ body,
528
531
  }
529
532
 
530
533
  @font-face {
531
- font-family: Pangea;
534
+ font-family: PangeaText;
532
535
  font-style: normal;
533
536
  font-weight: normal;
534
537
  src: url(5eabf29514e9649c8c73.woff2) format("woff2");
535
538
  }
536
539
  @font-face {
537
- font-family: Pangea;
540
+ font-family: PangeaText;
538
541
  font-style: normal;
539
542
  font-weight: 500;
540
543
  src: url(24031beb1b96a58f519c.woff2) format("woff2");
541
544
  }
542
545
  @font-face {
543
- font-family: Pangea;
546
+ font-family: PangeaText;
544
547
  font-style: normal;
545
548
  font-weight: bold;
546
549
  src: url(eb2051d1f9da906e0b3e.woff2) format("woff2");
@@ -557,7 +560,7 @@ html body {
557
560
  font-weight: var(--odx-typography-font-weight-normal);
558
561
  letter-spacing: var(--odx-typography-font-weight-normal-letter-spacing);
559
562
  color: var(--odx-c-text);
560
- font-family: Pangea, sans-serif;
563
+ font-family: var(--odx-typography-font-family);
561
564
  }
562
565
 
563
566
  .odx-title, .odx-header__title, .odx-area-header__title, .odx-error-page__title, .odx-content h1, .odx-content h2, .odx-content h3, .odx-content h4, .odx-content h5, .odx-content h6, .odx-subtitle, .odx-area-header__subtitle, .odx-error-page__description,
@@ -2315,7 +2318,7 @@ html body .odx-fs-italic {
2315
2318
  .odx-dropdown {
2316
2319
  background-color: var(--odx-c-background-content);
2317
2320
  border-radius: var(--odx-v-border-radius);
2318
- box-shadow: var(--odx-v-box-shadow-layer-2);
2321
+ box-shadow: var(--odx-v-box-shadow-layer-1);
2319
2322
  display: block;
2320
2323
  min-height: inherit;
2321
2324
  }
@@ -2466,7 +2469,7 @@ html body .odx-fs-italic {
2466
2469
  background-color: var(--odx-c-secondary-hover);
2467
2470
  }
2468
2471
  }
2469
- .odx-button--secondary.odx-dropdown-host[aria-expanded=true], .odx-dropdown-host[aria-expanded=true].odx-button, .odx-button--secondary:active, .odx-button:active {
2472
+ .odx-button--secondary.odx-dropdown-host[aria-expanded=true], .odx-dropdown-host[aria-expanded=true].odx-button, .odx-button--secondary.is-active, .is-active.odx-button, .odx-button--secondary:active, .odx-button:active {
2470
2473
  background-color: var(--odx-c-secondary-active);
2471
2474
  }
2472
2475
  .odx-button--secondary:disabled, .odx-button:disabled, .odx-button--secondary.is-disabled, .is-disabled.odx-button {
@@ -2482,7 +2485,7 @@ html body .odx-fs-italic {
2482
2485
  background-color: var(--odx-c-primary-hover);
2483
2486
  }
2484
2487
  }
2485
- .odx-button--primary.odx-dropdown-host[aria-expanded=true], .odx-button--primary:active {
2488
+ .odx-button--primary.odx-dropdown-host[aria-expanded=true], .odx-button--primary.is-active, .odx-button--primary:active {
2486
2489
  background-color: var(--odx-c-primary-active);
2487
2490
  }
2488
2491
  .odx-button--primary:disabled, .odx-button--primary.is-disabled {
@@ -2498,7 +2501,7 @@ html body .odx-fs-italic {
2498
2501
  background-color: var(--odx-c-highlight-hover);
2499
2502
  }
2500
2503
  }
2501
- .odx-button--highlight.odx-dropdown-host[aria-expanded=true], .odx-button--highlight:active {
2504
+ .odx-button--highlight.odx-dropdown-host[aria-expanded=true], .odx-button--highlight.is-active, .odx-button--highlight:active {
2502
2505
  background-color: var(--odx-c-highlight-active);
2503
2506
  }
2504
2507
  .odx-button--highlight:disabled, .odx-button--highlight.is-disabled {
@@ -2514,7 +2517,7 @@ html body .odx-fs-italic {
2514
2517
  background-color: var(--odx-c-success-hover);
2515
2518
  }
2516
2519
  }
2517
- .odx-button--success.odx-dropdown-host[aria-expanded=true], .odx-button--success:active {
2520
+ .odx-button--success.odx-dropdown-host[aria-expanded=true], .odx-button--success.is-active, .odx-button--success:active {
2518
2521
  background-color: var(--odx-c-success-active);
2519
2522
  }
2520
2523
  .odx-button--success:disabled, .odx-button--success.is-disabled {
@@ -2530,7 +2533,7 @@ html body .odx-fs-italic {
2530
2533
  background-color: var(--odx-c-danger-hover);
2531
2534
  }
2532
2535
  }
2533
- .odx-button--danger.odx-dropdown-host[aria-expanded=true], .odx-button--danger:active {
2536
+ .odx-button--danger.odx-dropdown-host[aria-expanded=true], .odx-button--danger.is-active, .odx-button--danger:active {
2534
2537
  background-color: var(--odx-c-danger-active);
2535
2538
  }
2536
2539
  .odx-button--danger:disabled, .odx-button--danger.is-disabled {
@@ -2546,7 +2549,7 @@ html body .odx-fs-italic {
2546
2549
  background-color: var(--odx-c-confirmation-hover);
2547
2550
  }
2548
2551
  }
2549
- .odx-button--confirmation.odx-dropdown-host[aria-expanded=true], .odx-button--confirmation:active {
2552
+ .odx-button--confirmation.odx-dropdown-host[aria-expanded=true], .odx-button--confirmation.is-active, .odx-button--confirmation:active {
2550
2553
  background-color: var(--odx-c-confirmation-active);
2551
2554
  }
2552
2555
  .odx-button--confirmation:disabled, .odx-button--confirmation.is-disabled {
@@ -2568,7 +2571,7 @@ html body .odx-fs-italic {
2568
2571
  .odx-button--ghost:active, .odx-main-menu__close:active, .odx-main-menu-button:active, .odx-action-group > .odx-button:active:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in) {
2569
2572
  color: var(--odx-c-link-active);
2570
2573
  }
2571
- .odx-button--ghost.odx-dropdown-host[aria-expanded=true], .odx-dropdown-host[aria-expanded=true].odx-main-menu__close, .odx-dropdown-host[aria-expanded=true].odx-main-menu-button, .odx-action-group > .odx-dropdown-host[aria-expanded=true].odx-button:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in), .odx-button--ghost:focus-visible, .odx-main-menu__close:focus-visible, .odx-main-menu-button:focus-visible, .odx-action-group > .odx-button:focus-visible:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in), .odx-button--ghost:active, .odx-main-menu__close:active, .odx-main-menu-button:active, .odx-action-group > .odx-button:active:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in) {
2574
+ .odx-button--ghost.odx-dropdown-host[aria-expanded=true], .odx-dropdown-host[aria-expanded=true].odx-main-menu__close, .odx-dropdown-host[aria-expanded=true].odx-main-menu-button, .odx-action-group > .odx-dropdown-host[aria-expanded=true].odx-button:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in), .odx-button--ghost.is-active, .is-active.odx-main-menu__close, .is-active.odx-main-menu-button, .odx-action-group > .is-active.odx-button:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in), .odx-button--ghost:focus-visible, .odx-main-menu__close:focus-visible, .odx-main-menu-button:focus-visible, .odx-action-group > .odx-button:focus-visible:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in), .odx-button--ghost:active, .odx-main-menu__close:active, .odx-main-menu-button:active, .odx-action-group > .odx-button:active:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in) {
2572
2575
  background-color: var(--odx-c-focus);
2573
2576
  }
2574
2577
  .odx-button--ghost:disabled, .odx-main-menu__close:disabled, .odx-main-menu-button:disabled, .odx-action-group > .odx-button:disabled:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in), .odx-button--ghost.is-disabled, .is-disabled.odx-main-menu__close, .is-disabled.odx-main-menu-button, .odx-action-group > .is-disabled.odx-button:not(.odx-button--primary, .odx-button--success, .odx-button--danger, .odx-button--confirmation, .odx-auth-sign-in) {
@@ -2750,6 +2753,10 @@ body {
2750
2753
  --odx-badge-contrast-color: var(--odx-c-background-content);
2751
2754
  }
2752
2755
 
2756
+ .odx-badge-overlay {
2757
+ z-index: var(--odx-v-layer-1);
2758
+ }
2759
+
2753
2760
  .odx-badge {
2754
2761
  padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.125);
2755
2762
  padding-left: calc(var(--odx-vertical-rythm-base-size) * 0.125);
@@ -2766,7 +2773,6 @@ body {
2766
2773
  min-width: calc(var(--odx-vertical-rythm-base-size) * 0.6667);
2767
2774
  outline: 1px solid transparent;
2768
2775
  vertical-align: middle;
2769
- z-index: var(--odx-v-layer-1);
2770
2776
  }
2771
2777
  .odx-badge, .odx-badge--highlight {
2772
2778
  background-color: var(--odx-c-highlight);
@@ -2810,7 +2816,7 @@ body[odxTheme=dark], body.odx-theme-dark {
2810
2816
  align-items: center;
2811
2817
  background-color: var(--odx-bar-background-color);
2812
2818
  border-radius: calc(var(--odx-vertical-rythm-base-size) * 0.25);
2813
- box-shadow: 0 2px 6px rgba(0, 25, 66, 0.5);
2819
+ box-shadow: var(--odx-v-box-shadow-layer-1);
2814
2820
  color: var(--odx-bar-text-color);
2815
2821
  display: inline-flex;
2816
2822
  gap: calc(var(--odx-vertical-rythm-base-size) * 0.5);
@@ -3660,64 +3666,36 @@ body {
3660
3666
  max-height: 359px;
3661
3667
  }
3662
3668
 
3663
- .odx-expandable-list-item {
3669
+ .odx-expandable-list-item__header {
3664
3670
  display: block;
3665
3671
  position: relative;
3666
3672
  }
3667
- .odx-expandable-list-item::before {
3668
- transition: all var(--odx-v-transition-duration) 0ms var(--odx-v-transition-easing-fn);
3669
- transition-property: border-color;
3670
- border-bottom: 1px solid var(--gray-200);
3671
- content: "";
3672
- display: block;
3673
- left: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
3674
- position: absolute;
3675
- top: 0;
3676
- width: calc(100% - calc(var(--odx-vertical-rythm-base-size) * 0.5834));
3677
- }
3678
- .odx-expandable-list-item:focus-visible::before, .odx-expandable-list-item:first-child::before {
3679
- border-bottom-color: transparent;
3680
- }
3681
- @media (hover: hover){
3682
- .odx-expandable-list-item:hover::before {
3683
- border-bottom-color: transparent;
3684
- }
3685
- }
3686
- .odx-expandable-list-item--danger+.odx-expandable-list-item::before {
3687
- border-color: transparent;
3673
+ .odx-expandable-list-item__header > .odx-list-item {
3674
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 2.1667);
3688
3675
  }
3689
- @media (hover: hover){
3690
- .odx-expandable-list-item:hover+.odx-expandable-list-item::before {
3691
- border-color: transparent;
3692
- }
3693
- }
3694
- .odx-expandable-list-item--danger::before {
3695
- border-bottom-color: transparent;
3696
- }
3697
- .odx-expandable-list-item--expanded::before {
3698
- border-bottom-color: transparent;
3699
- }
3700
- .odx-expandable-list-item__content {
3701
- flex: 1;
3676
+ .odx-expandable-list-item__action {
3677
+ margin: 0;
3678
+ position: absolute;
3679
+ right: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
3680
+ top: 50%;
3681
+ transform: translateY(-50%);
3702
3682
  }
3703
- .odx-expandable-list-item__expand-icon {
3683
+ .odx-expandable-list-item__action .odx-icon {
3704
3684
  transition: all var(--odx-v-transition-duration) 0ms var(--odx-v-transition-easing-fn);
3705
3685
  transition-property: transform;
3706
- position: relative;
3707
3686
  }
3708
- .odx-expandable-list-item--expanded .odx-expandable-list-item__expand-icon {
3709
- transform: scaleY(-1);
3687
+ .odx-expandable-list-item__slot .odx-list .odx-expandable-list-item:first-child > .odx-expandable-list-item__header .odx-list-item,
3688
+ .odx-expandable-list-item__slot .odx-list .odx-list-item:first-child {
3689
+ --separator-color: var(--odx-c-separator);
3710
3690
  }
3711
- .odx-expandable-list-item:last-child .odx-expandable-list-item__slot .odx-list-item:last-child::after {
3712
- border-bottom: 1px solid var(--gray-200);
3713
- bottom: 0;
3714
- content: "";
3715
- display: block;
3716
- position: absolute;
3717
- width: calc(100% - calc(var(--odx-vertical-rythm-base-size) * 0.5834));
3691
+ .odx-expandable-list-item:has(> .odx-expandable-list-item__header .odx-list-item--danger) .odx-expandable-list-item__action .odx-button {
3692
+ color: var(--odx-c-danger-text);
3718
3693
  }
3719
- .odx-expandable-list-item__slot .odx-list-item__content {
3720
- padding-left: calc(var(--odx-vertical-rythm-base-size) * 1.5);
3694
+ .odx-expandable-list-item:first-child > .odx-expandable-list-item__header .odx-list-item {
3695
+ --separator-color: transparent;
3696
+ }
3697
+ .odx-expandable-list-item--expanded > .odx-expandable-list-item__header .odx-expandable-list-item__action .odx-button .odx-icon {
3698
+ transform: scaleY(-1);
3721
3699
  }
3722
3700
 
3723
3701
  body {
@@ -4014,10 +3992,10 @@ body {
4014
3992
  --odx-c-warning: var(--yellow-50);
4015
3993
  --odx-c-danger: var(--red-00);
4016
3994
  --odx-c-success: var(--green-00);
4017
- padding-top: calc(var(--odx-vertical-rythm-base-size) * 0.4167);
4018
3995
  padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.4167);
4019
- padding-bottom: calc(var(--odx-vertical-rythm-base-size) * 0.4167);
4020
3996
  padding-left: calc(var(--odx-vertical-rythm-base-size) * 0.4167);
3997
+ padding-top: calc(var(--odx-vertical-rythm-base-size) * 0.5);
3998
+ padding-bottom: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4021
3999
  display: flex;
4022
4000
  gap: calc(var(--odx-vertical-rythm-base-size) * 0.4167);
4023
4001
  }
@@ -4116,8 +4094,72 @@ body[odxTheme=dark], body.odx-theme-dark {
4116
4094
  .odx-list {
4117
4095
  display: block;
4118
4096
  }
4097
+ .odx-list .odx-list .odx-list-item {
4098
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 1.6667);
4099
+ }
4100
+ .odx-list .odx-list .odx-list-item:first-child {
4101
+ --separator-color: var(--odx-c-separator);
4102
+ }
4103
+ .odx-list .odx-list .odx-list .odx-list-item {
4104
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 3);
4105
+ }
4106
+ .odx-list .odx-list .odx-list .odx-list-item:first-child {
4107
+ --separator-color: var(--odx-c-separator);
4108
+ }
4109
+ .odx-list .odx-list .odx-list .odx-list .odx-list-item {
4110
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 4.3334);
4111
+ }
4112
+ .odx-list .odx-list .odx-list .odx-list .odx-list-item:first-child {
4113
+ --separator-color: var(--odx-c-separator);
4114
+ }
4115
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item {
4116
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 5.6667);
4117
+ }
4118
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item:first-child {
4119
+ --separator-color: var(--odx-c-separator);
4120
+ }
4121
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item {
4122
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 7);
4123
+ }
4124
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item:first-child {
4125
+ --separator-color: var(--odx-c-separator);
4126
+ }
4127
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item {
4128
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 8.3334);
4129
+ }
4130
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item:first-child {
4131
+ --separator-color: var(--odx-c-separator);
4132
+ }
4133
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item {
4134
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 9.6667);
4135
+ }
4136
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item:first-child {
4137
+ --separator-color: var(--odx-c-separator);
4138
+ }
4139
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item {
4140
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 11);
4141
+ }
4142
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item:first-child {
4143
+ --separator-color: var(--odx-c-separator);
4144
+ }
4145
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item {
4146
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 12.3334);
4147
+ }
4148
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item:first-child {
4149
+ --separator-color: var(--odx-c-separator);
4150
+ }
4151
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item {
4152
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 13.6667);
4153
+ }
4154
+ .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list .odx-list-item:first-child {
4155
+ --separator-color: var(--odx-c-separator);
4156
+ }
4157
+ .odx-list > .odx-list-item:first-child {
4158
+ --separator-color: transparent;
4159
+ }
4119
4160
 
4120
4161
  .odx-list-item {
4162
+ --separator-color: var(--odx-c-separator);
4121
4163
  padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
4122
4164
  padding-left: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
4123
4165
  padding-top: calc(var(--odx-vertical-rythm-base-size) * 0.5);
@@ -4131,6 +4173,8 @@ body[odxTheme=dark], body.odx-theme-dark {
4131
4173
  -webkit-user-select: none;
4132
4174
  -moz-user-select: none;
4133
4175
  user-select: none;
4176
+ outline-offset: calc(-1 * var(--odx-v-outline-width-bold));
4177
+ outline-width: var(--odx-v-outline-width-bold);
4134
4178
  display: flex;
4135
4179
  align-items: center;
4136
4180
  background-color: transparent;
@@ -4145,7 +4189,8 @@ body[odxTheme=dark], body.odx-theme-dark {
4145
4189
  outline-color: transparent;
4146
4190
  pointer-events: none;
4147
4191
  }
4148
- .odx-list-item > [odxListSuffix] {
4192
+ .odx-list-item > [odxListSuffix],
4193
+ .odx-list-item > [odxListItemSuffix] {
4149
4194
  margin-left: auto;
4150
4195
  }
4151
4196
  .odx-list-item:not(.is-disabled) {
@@ -4154,19 +4199,20 @@ body[odxTheme=dark], body.odx-theme-dark {
4154
4199
  .odx-list-item::before {
4155
4200
  transition: all var(--odx-v-transition-duration) 0ms var(--odx-v-transition-easing-fn);
4156
4201
  transition-property: border-color;
4157
- border-bottom: 1px solid var(--odx-c-separator);
4202
+ border-bottom: 1px solid var(--separator-color);
4158
4203
  content: "";
4159
4204
  display: block;
4160
4205
  position: absolute;
4206
+ right: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
4161
4207
  top: 0;
4162
- width: calc(100% - calc(var(--odx-vertical-rythm-base-size) * 0.5834));
4208
+ width: calc(100% - calc(var(--odx-vertical-rythm-base-size) * 0.6667));
4163
4209
  }
4164
- .odx-list-item:focus-visible::before, .odx-list-item:first-child::before {
4165
- border-bottom-color: transparent;
4210
+ .odx-list-item:focus-visible {
4211
+ --separator-color: transparent !important;
4166
4212
  }
4167
4213
  @media (hover: hover){
4168
- .odx-list-item:hover::before {
4169
- border-bottom-color: transparent;
4214
+ .odx-list-item:hover {
4215
+ --separator-color: transparent !important;
4170
4216
  }
4171
4217
  }
4172
4218
  @media (hover: hover){
@@ -4174,12 +4220,12 @@ body[odxTheme=dark], body.odx-theme-dark {
4174
4220
  background-color: var(--odx-c-ghost-hover);
4175
4221
  }
4176
4222
  }
4177
- .odx-list-item--danger+.odx-list-item::before, .odx-list-item--selected+.odx-list-item::before {
4178
- border-color: transparent;
4223
+ .odx-list-item--danger+.odx-list-item, .odx-list-item.is-selected+.odx-list-item {
4224
+ --separator-color: transparent !important;
4179
4225
  }
4180
4226
  @media (hover: hover){
4181
- .odx-list-item:hover+.odx-list-item::before {
4182
- border-color: transparent;
4227
+ .odx-list-item:hover+.odx-list-item {
4228
+ --separator-color: transparent !important;
4183
4229
  }
4184
4230
  }
4185
4231
  .odx-list-item.is-disabled {
@@ -4188,14 +4234,10 @@ body[odxTheme=dark], body.odx-theme-dark {
4188
4234
  }
4189
4235
  .odx-list-item--danger {
4190
4236
  --odx-c-focus: var(--odx-c-danger);
4191
- outline-offset: calc(-1 * var(--odx-v-outline-width-bold));
4192
- outline-width: var(--odx-v-outline-width-bold);
4237
+ --separator-color: transparent !important;
4193
4238
  background-color: var(--odx-c-danger);
4194
4239
  color: var(--odx-c-danger-text);
4195
4240
  }
4196
- .odx-list-item--danger::before {
4197
- border-bottom-color: transparent;
4198
- }
4199
4241
  @media (hover: hover){
4200
4242
  .odx-list-item--danger:hover {
4201
4243
  background-color: var(--odx-c-danger-hover);
@@ -4204,26 +4246,24 @@ body[odxTheme=dark], body.odx-theme-dark {
4204
4246
  .odx-list-item--danger.is-disabled {
4205
4247
  color: var(--odx-c-danger-text-disabled);
4206
4248
  }
4207
- .odx-list-item--selected {
4249
+ .odx-list-item.is-selected {
4250
+ --separator-color: transparent !important;
4208
4251
  background-color: var(--odx-c-selected);
4209
4252
  }
4210
- .odx-list-item--selected::before {
4211
- border-bottom-color: transparent;
4212
- }
4213
4253
  @media (hover: hover){
4214
- .odx-list-item--selected:hover {
4254
+ .odx-list-item.is-selected:hover {
4215
4255
  background-color: var(--odx-c-selected-hover);
4216
4256
  }
4217
4257
  }
4218
- .odx-list-item--selected.odx-list-item--danger {
4258
+ .odx-list-item.is-selected.odx-list-item--danger {
4219
4259
  background-color: var(--odx-c-danger-active);
4220
4260
  }
4221
4261
  @media (hover: hover){
4222
- .odx-list-item--selected.odx-list-item--danger:hover {
4262
+ .odx-list-item.is-selected.odx-list-item--danger:hover {
4223
4263
  background-color: var(--red-800);
4224
4264
  }
4225
4265
  }
4226
- .odx-list-item--selected.odx-list-item--danger.is-disabled {
4266
+ .odx-list-item.is-selected.odx-list-item--danger.is-disabled {
4227
4267
  color: var(--odx-c-danger-text);
4228
4268
  }
4229
4269
 
@@ -4524,6 +4564,7 @@ body[odxTheme=dark], body.odx-theme-dark {
4524
4564
  .odx-main-menu {
4525
4565
  --odx-area-header-title-color: var(--odx-main-menu-highlight-color);
4526
4566
  --odx-area-header-subtitle-color: var(--odx-c-text-inverse);
4567
+ z-index: var(--odx-v-layer-5);
4527
4568
  }
4528
4569
  .odx-main-menu__inner {
4529
4570
  background-color: var(--odx-main-menu-background-color);
@@ -5964,6 +6005,7 @@ body {
5964
6005
 
5965
6006
  .odx-toast-container {
5966
6007
  --odx-toast-outer-offset: calc(var(--odx-vertical-rythm-base-size) * 0.3334);
6008
+ --odx-toast-border-radius: calc(var(--odx-vertical-rythm-base-size) * 0.25);
5967
6009
  display: flex;
5968
6010
  flex-direction: column;
5969
6011
  margin-top: calc(var(--odx-vertical-rythm-base-size) * 0.1667);
@@ -5993,6 +6035,7 @@ body {
5993
6035
  --odx-c-warning: var(--yellow-50);
5994
6036
  --odx-c-danger: var(--red-00);
5995
6037
  --odx-c-success: var(--green-00);
6038
+ border-radius: var(--odx-toast-border-radius);
5996
6039
  box-shadow: var(--odx-v-box-shadow-layer-1);
5997
6040
  display: block;
5998
6041
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/ui",
3
- "version": "2.10.0",
3
+ "version": "2.11.0",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
@@ -18,7 +18,7 @@
18
18
  --ag-checkbox-indeterminate-color: var(--odx-control-color-selected);
19
19
  --ag-checkbox-checked-color: var(--odx-control-color-selected);
20
20
 
21
- --ag-font-family: 'Pangea';
21
+ --ag-font-family: var(--odx-typography-font-family);
22
22
  --ag-font-size: var(--odx-typography-base-size);
23
23
 
24
24
  --ag-icon-size: #{typography.get-font-size(1)};
@@ -46,6 +46,6 @@ body {
46
46
  --charts-text-color: var(--odx-c-text);
47
47
  --charts-background-color: var(--odx-c-background-content);
48
48
 
49
- --charts-font-family: 'Pangea';
49
+ --charts-font-family: var(--odx-typography-font-family);
50
50
  --charts-font-size: var(--odx-typography-base-size);
51
51
  }
@@ -7,6 +7,10 @@ body {
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
+
10
14
  .odx-badge {
11
15
  $badge-size: dimensions.get-size(math.div(2, 3));
12
16
 
@@ -21,7 +25,6 @@ body {
21
25
  min-width: $badge-size;
22
26
  outline: 1px solid transparent;
23
27
  vertical-align: middle;
24
- z-index: var(--odx-v-layer-1);
25
28
 
26
29
  &,
27
30
  &--highlight {
@@ -27,7 +27,7 @@ body {
27
27
  align-items: center;
28
28
  background-color: var(--odx-bar-background-color);
29
29
  border-radius: dimensions.get-size(math.div(6, 24));
30
- box-shadow: 0 2px 6px rgb(0 25 66 / 50%);
30
+ box-shadow: var(--odx-v-box-shadow-layer-1);
31
31
  color: var(--odx-bar-text-color);
32
32
  display: inline-flex;
33
33
  gap: dimensions.get-size(math.div(12, 24));
@@ -79,6 +79,7 @@
79
79
  }
80
80
 
81
81
  &#{dropdown.$dropdown-open-selector},
82
+ &.is-active,
82
83
  &:active {
83
84
  background-color: var(--odx-c-#{$variant}-active);
84
85
  }
@@ -107,6 +108,7 @@
107
108
  }
108
109
 
109
110
  &#{dropdown.$dropdown-open-selector},
111
+ &.is-active,
110
112
  &:focus-visible,
111
113
  &:active {
112
114
  background-color: var(--odx-c-focus);
@@ -6,7 +6,7 @@ $dropdown-open-selector: '.odx-dropdown-host[aria-expanded="true"]';
6
6
  .odx-dropdown {
7
7
  background-color: var(--odx-c-background-content);
8
8
  border-radius: var(--odx-v-border-radius);
9
- box-shadow: var(--odx-v-box-shadow-layer-2);
9
+ box-shadow: var(--odx-v-box-shadow-layer-1);
10
10
  display: block;
11
11
  min-height: inherit;
12
12
 
@@ -1,78 +1,55 @@
1
1
  @use 'sass:math';
2
+ @use '../abstract/utils';
2
3
  @use '../abstract/motion';
3
4
  @use '../abstract/dimensions';
4
5
 
5
6
  .odx-expandable-list-item {
6
7
  $root: &;
8
+ $list-item-selector: '> #{$root}__header .odx-list-item';
7
9
 
8
- display: block;
9
- position: relative;
10
-
11
- &::before {
12
- @include motion.transition(border-color);
13
-
14
- border-bottom: 1px solid var(--gray-200);
15
- content: '';
10
+ &__header {
16
11
  display: block;
17
- left: dimensions.get-size(math.div(1, 3));
18
- position: absolute;
19
- top: 0;
20
- width: calc(100% - #{dimensions.get-size(math.div(14, 24))});
21
- }
12
+ position: relative;
22
13
 
23
- &:hover,
24
- &:focus-visible,
25
- &:first-child {
26
- &::before {
27
- border-bottom-color: transparent;
14
+ > .odx-list-item {
15
+ @include dimensions.padding(math.div(52, 24), right);
28
16
  }
29
17
  }
30
18
 
31
- &--danger + &::before,
32
- &:hover + &::before {
33
- border-color: transparent;
34
- }
19
+ &__action {
20
+ margin: 0;
21
+ position: absolute;
22
+ right: dimensions.get-size(math.div(8, 24));
23
+ top: 50%;
24
+ transform: translateY(-50%);
35
25
 
36
- &--danger {
37
- &::before {
38
- border-bottom-color: transparent;
26
+ .odx-icon {
27
+ @include motion.transition(transform);
39
28
  }
40
29
  }
41
30
 
42
- &--expanded {
43
- &::before {
44
- border-bottom-color: transparent;
31
+ &__slot {
32
+ .odx-list #{$root}:first-child #{$list-item-selector},
33
+ .odx-list .odx-list-item:first-child {
34
+ --separator-color: var(--odx-c-separator);
45
35
  }
46
36
  }
47
37
 
48
- &__content {
49
- flex: 1;
50
- }
51
-
52
- &__expand-icon {
53
- @include motion.transition(transform);
54
-
55
- position: relative;
56
-
57
- #{$root}--expanded & {
58
- transform: scaleY(-1);
38
+ &:has(#{$list-item-selector}--danger) {
39
+ #{$root}__action {
40
+ .odx-button {
41
+ color: var(--odx-c-danger-text);
42
+ }
59
43
  }
60
44
  }
61
45
 
62
- &__slot {
63
- #{$root}:last-child & {
64
- .odx-list-item:last-child::after {
65
- border-bottom: 1px solid var(--gray-200);
66
- bottom: 0;
67
- content: '';
68
- display: block;
69
- position: absolute;
70
- width: calc(100% - #{dimensions.get-size(math.div(14, 24))});
71
- }
72
- }
46
+ &:first-child #{$list-item-selector} {
47
+ --separator-color: transparent;
48
+ }
73
49
 
74
- .odx-list-item__content {
75
- @include dimensions.padding(math.div(36, 24), left);
50
+ &--expanded {
51
+ > #{$root}__header #{$root}__action .odx-button .odx-icon {
52
+ transform: scaleY(-1);
76
53
  }
77
54
  }
78
55
  }
@@ -10,7 +10,8 @@
10
10
 
11
11
  $variants: default, warning, danger, success;
12
12
 
13
- @include dimensions.padding(math.div(10, 24));
13
+ @include dimensions.padding-x(math.div(10, 24));
14
+ @include dimensions.padding-y(math.div(12, 24));
14
15
 
15
16
  display: flex;
16
17
  gap: dimensions.get-size(math.div(10, 24));
@@ -7,18 +7,22 @@
7
7
  .odx-list-item {
8
8
  $root: &;
9
9
 
10
- @include dimensions.padding-x(math.div(1, 3));
10
+ --separator-color: var(--odx-c-separator);
11
+
12
+ @include dimensions.padding-x(math.div(8, 24));
11
13
  @include dimensions.line-height(2, 1);
12
14
  @include motion.transition(border-bottom-color background-color outline-color color);
13
15
  @include utils.interactive(false);
16
+ @include utils.with-outline-bold();
14
17
  @include utils.vertical-center-content();
15
18
 
16
19
  background-color: transparent;
17
20
  border-radius: var(--odx-v-border-radius-controls);
18
- gap: dimensions.get-size(math.div(1, 3));
21
+ gap: dimensions.get-size(math.div(8, 24));
19
22
  position: relative;
20
23
 
21
- > [odxListSuffix] {
24
+ > [odxListSuffix],
25
+ > [odxListItemSuffix] {
22
26
  margin-left: auto;
23
27
  }
24
28
 
@@ -29,30 +33,28 @@
29
33
  &::before {
30
34
  @include motion.transition(border-color);
31
35
 
32
- border-bottom: 1px solid var(--odx-c-separator);
36
+ border-bottom: 1px solid var(--separator-color);
33
37
  content: '';
34
38
  display: block;
35
39
  position: absolute;
40
+ right: dimensions.get-size(math.div(8, 24));
36
41
  top: 0;
37
- width: calc(100% - #{dimensions.get-size(math.div(14, 24))});
42
+ width: calc(100% - #{dimensions.get-size(math.div(16, 24))});
38
43
  }
39
44
 
40
45
  &:hover,
41
- &:focus-visible,
42
- &:first-child {
43
- &::before {
44
- border-bottom-color: transparent;
45
- }
46
+ &:focus-visible {
47
+ --separator-color: transparent !important;
46
48
  }
47
49
 
48
50
  &:hover {
49
51
  background-color: var(--odx-c-ghost-hover);
50
52
  }
51
53
 
52
- &--danger + &::before,
53
- &--selected + &::before,
54
- &:hover + &::before {
55
- border-color: transparent;
54
+ &--danger + &,
55
+ &.is-selected + &,
56
+ &:hover + & {
57
+ --separator-color: transparent !important;
56
58
  }
57
59
 
58
60
  &.is-disabled {
@@ -62,16 +64,11 @@
62
64
 
63
65
  &--danger {
64
66
  --odx-c-focus: var(--odx-c-danger);
65
-
66
- @include utils.with-outline-bold();
67
+ --separator-color: transparent !important;
67
68
 
68
69
  background-color: var(--odx-c-danger);
69
70
  color: var(--odx-c-danger-text);
70
71
 
71
- &::before {
72
- border-bottom-color: transparent;
73
- }
74
-
75
72
  &:hover {
76
73
  background-color: var(--odx-c-danger-hover);
77
74
  }
@@ -81,12 +78,10 @@
81
78
  }
82
79
  }
83
80
 
84
- &--selected {
85
- background-color: var(--odx-c-selected);
81
+ &.is-selected {
82
+ --separator-color: transparent !important;
86
83
 
87
- &::before {
88
- border-bottom-color: transparent;
89
- }
84
+ background-color: var(--odx-c-selected);
90
85
 
91
86
  &:hover {
92
87
  background-color: var(--odx-c-selected-hover);
@@ -1,3 +1,27 @@
1
+ @use 'sass:math';
2
+ @use 'sass:selector';
3
+ @use '../abstract/dimensions';
4
+
1
5
  .odx-list {
2
6
  display: block;
7
+
8
+ $self: &;
9
+
10
+ @for $i from 1 through 10 {
11
+ #{$self} .odx-list-item {
12
+ @include dimensions.padding(math.div(8, 24) + ($i * math.div(32, 24)), left);
13
+
14
+ &:first-child {
15
+ --separator-color: var(--odx-c-separator);
16
+ }
17
+ }
18
+
19
+ $self: #{$self + ' ' + &};
20
+ }
21
+
22
+ > .odx-list-item {
23
+ &:first-child {
24
+ --separator-color: transparent;
25
+ }
26
+ }
3
27
  }
@@ -28,6 +28,8 @@ body {
28
28
  --odx-area-header-title-color: var(--odx-main-menu-highlight-color);
29
29
  --odx-area-header-subtitle-color: var(--odx-c-text-inverse);
30
30
 
31
+ z-index: var(--odx-v-layer-5);
32
+
31
33
  &__inner {
32
34
  background-color: var(--odx-main-menu-background-color);
33
35
  color: var(--odx-main-menu-text-color);
@@ -13,6 +13,7 @@
13
13
  $variants: default, warning, danger, success;
14
14
  $gap: dimensions.get-size(math.div(12, 24));
15
15
 
16
+ border-radius: var(--odx-toast-border-radius);
16
17
  box-shadow: var(--odx-v-box-shadow-layer-1);
17
18
  display: block;
18
19
 
@@ -5,6 +5,7 @@
5
5
 
6
6
  .odx-toast-container {
7
7
  --odx-toast-outer-offset: #{dimensions.get-size(math.div(8, 24))};
8
+ --odx-toast-border-radius: #{dimensions.get-size(math.div(6, 24))};
8
9
 
9
10
  display: flex;
10
11
  flex-direction: column;
@@ -4,21 +4,21 @@
4
4
  @use '../abstract/typography';
5
5
 
6
6
  @font-face {
7
- font-family: Pangea;
7
+ font-family: PangeaText;
8
8
  font-style: normal;
9
9
  font-weight: normal;
10
10
  src: url('../assets/fonts/PangeaText-RegularWeb.woff2') format('woff2');
11
11
  }
12
12
 
13
13
  @font-face {
14
- font-family: Pangea;
14
+ font-family: PangeaText;
15
15
  font-style: normal;
16
16
  font-weight: 500;
17
17
  src: url('../assets/fonts/PangeaText-MediumWeb.woff2') format('woff2');
18
18
  }
19
19
 
20
20
  @font-face {
21
- font-family: Pangea;
21
+ font-family: PangeaText;
22
22
  font-style: normal;
23
23
  font-weight: bold;
24
24
  src: url('../assets/fonts/PangeaText-SemiBoldWeb.woff2') format('woff2');
@@ -34,7 +34,7 @@ html body {
34
34
  @include typography.font-weight(normal);
35
35
 
36
36
  color: var(--odx-c-text);
37
- font-family: Pangea, sans-serif;
37
+ font-family: var(--odx-typography-font-family);
38
38
  }
39
39
 
40
40
  .odx-title,
@@ -5,6 +5,7 @@ body {
5
5
  --white: #293642;
6
6
  --white-dark: #060a12;
7
7
  --black: #ffffff;
8
+ --black-20: #{rgba(#000000, 60%)};
8
9
 
9
10
  --focus-bg: #284e68;
10
11
 
@@ -1,6 +1,7 @@
1
1
  body {
2
2
  --white: #ffffff;
3
3
  --black: #00060f;
4
+ --black-20: #{rgba(#000000, 20%)};
4
5
 
5
6
  --white-5: #{rgba(#ffffff, 5%)};
6
7
  --white-60: #{rgba(#ffffff, 60%)};
@@ -33,7 +33,7 @@ body {
33
33
  --odx-c-backdrop: var(--white-60);
34
34
  --odx-c-backdrop-dark: var(--blue-800-30);
35
35
 
36
- --odx-c-box-shadow: var(--blue-800-30);
36
+ --odx-c-box-shadow: var(--black-20);
37
37
 
38
38
  --odx-c-separator: var(--gray-200);
39
39
 
@@ -1,6 +1,7 @@
1
1
  @use '../abstract/breakpoints';
2
2
 
3
3
  :root {
4
+ --odx-typography-font-family: 'PangeaText', 'Arial', sans-serif;
4
5
  --odx-typography-base-size: 1.6rem; // clamp(1.4rem, 0.667vw + 1rem, 1.6rem);
5
6
  --odx-typography-base-line-height: 1.5;
6
7
  --odx-typography-font-weight-normal: normal;