@db-ux/core-components 2.0.8 → 2.0.10-popover-d7e8b9a

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 (51) hide show
  1. package/build/components/accordion/accordion.css +4 -0
  2. package/build/components/accordion-item/accordion-item.css +30 -31
  3. package/build/components/accordion-item/accordion-item.scss +35 -39
  4. package/build/components/badge/badge.css +4 -0
  5. package/build/components/brand/brand.css +4 -0
  6. package/build/components/button/button.css +4 -0
  7. package/build/components/card/card.css +4 -0
  8. package/build/components/checkbox/checkbox.css +33 -12
  9. package/build/components/custom-select/custom-select.css +75 -134
  10. package/build/components/custom-select/custom-select.scss +0 -49
  11. package/build/components/custom-select-dropdown/custom-select-dropdown.css +4 -0
  12. package/build/components/custom-select-form-field/custom-select-form-field.css +4 -0
  13. package/build/components/custom-select-list/custom-select-list.css +4 -153
  14. package/build/components/custom-select-list/custom-select-list.scss +0 -3
  15. package/build/components/custom-select-list-item/custom-select-list-item.css +7 -21
  16. package/build/components/custom-select-list-item/custom-select-list-item.scss +5 -9
  17. package/build/components/divider/divider.css +4 -0
  18. package/build/components/drawer/drawer.css +4 -0
  19. package/build/components/header/header.css +4 -0
  20. package/build/components/icon/icon.css +4 -0
  21. package/build/components/infotext/infotext.css +4 -0
  22. package/build/components/input/input.css +75 -21
  23. package/build/components/link/link.css +4 -0
  24. package/build/components/navigation/navigation.css +4 -0
  25. package/build/components/navigation-item/navigation-item.css +4 -0
  26. package/build/components/notification/notification.css +4 -0
  27. package/build/components/popover/popover.css +83 -82
  28. package/build/components/popover/popover.scss +0 -1
  29. package/build/components/radio/radio.css +4 -0
  30. package/build/components/section/section.css +4 -0
  31. package/build/components/select/select.css +75 -21
  32. package/build/components/stack/stack-web-component.css +4 -0
  33. package/build/components/stack/stack.css +4 -0
  34. package/build/components/switch/switch.css +4 -0
  35. package/build/components/tab-item/tab-item.css +4 -0
  36. package/build/components/tab-list/tab-list.css +4 -0
  37. package/build/components/tabs/tabs.css +4 -0
  38. package/build/components/tag/tag.css +4 -0
  39. package/build/components/textarea/textarea.css +67 -19
  40. package/build/components/tooltip/tooltip.css +92 -90
  41. package/build/components/tooltip/tooltip.scss +14 -14
  42. package/build/styles/absolute.css +197 -13
  43. package/build/styles/dialog-init.css +1 -1
  44. package/build/styles/index.css +12 -12
  45. package/build/styles/internal/_form-components.scss +8 -3
  46. package/build/styles/internal/_popover-component.scss +69 -106
  47. package/build/styles/relative.css +197 -13
  48. package/build/styles/rollup.css +197 -13
  49. package/build/styles/visually-hidden.css +1 -1
  50. package/build/styles/webpack.css +197 -13
  51. package/package.json +2 -2
@@ -325,11 +325,17 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
325
325
  }
326
326
  }
327
327
 
328
- .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(.db-infotext[data-semantic=successful]), .db-custom-select:has(select[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]), .db-custom-select[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) {
328
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
329
+ > db-infotext > .db-infotext[data-semantic=successful]), .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
330
+ > db-infotext > .db-infotext[data-semantic=successful]), .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
331
+ > db-infotext > .db-infotext[data-semantic=successful]) {
329
332
  /* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
330
333
  }
331
334
  @layer variables {
332
- .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(.db-infotext[data-semantic=successful]), .db-custom-select:has(select[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]), .db-custom-select[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) {
335
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
336
+ > db-infotext > .db-infotext[data-semantic=successful]), .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
337
+ > db-infotext > .db-infotext[data-semantic=successful]), .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
338
+ > db-infotext > .db-infotext[data-semantic=successful]) {
333
339
  --db-adaptive-bg-basic-level-1-default: var(
334
340
  --db-successful-bg-basic-level-1-default
335
341
  );
@@ -496,6 +502,10 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
496
502
 
497
503
  @layer variables {}
498
504
 
505
+ @layer variables {}
506
+
507
+ @layer variables {}
508
+
499
509
  /**
500
510
  * @mixin screen-min-max
501
511
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -677,10 +687,12 @@ input[type=radio]:checked) > label {
677
687
  }
678
688
  }
679
689
 
680
- .db-custom-select .db-infotext {
690
+ .db-custom-select > db-infotext > .db-infotext,
691
+ .db-custom-select > .db-infotext {
681
692
  margin-block-start: var(--db-spacing-fixed-2xs);
682
693
  }
683
- .db-custom-select .db-infotext:is([data-semantic=successful], [data-semantic=critical]) {
694
+ .db-custom-select > db-infotext > .db-infotext:is([data-semantic=successful], [data-semantic=critical]),
695
+ .db-custom-select > .db-infotext:is([data-semantic=successful], [data-semantic=critical]) {
684
696
  display: none;
685
697
  }
686
698
 
@@ -737,85 +749,6 @@ input[type=radio]:checked) > label {
737
749
  inline-size: calc(100% - var(--db-form-component-padding-inline-end) - calc(var(--db-form-has-before) * (var(--db-base-body-icon-font-size-sm) + var(--db-spacing-fixed-sm))) - var(--db-spacing-fixed-sm));
738
750
  }
739
751
 
740
- @keyframes show-right-to-left {
741
- from {
742
- transform: translateX(110%);
743
- }
744
- to {
745
- transform: translateX(0%);
746
- }
747
- }
748
- @keyframes hide-right-to-left {
749
- from {
750
- transform: translateX(0%);
751
- }
752
- to {
753
- transform: translateX(110%);
754
- }
755
- }
756
- @keyframes show-left-to-right {
757
- from {
758
- transform: translateX(-110%);
759
- }
760
- to {
761
- transform: translateX(0%);
762
- }
763
- }
764
- @keyframes hide-left-to-right {
765
- from {
766
- transform: translateX(0%);
767
- }
768
- to {
769
- transform: translateX(-110%);
770
- }
771
- }
772
- @keyframes show-bottom-to-top {
773
- from {
774
- transform: translateY(110%);
775
- }
776
- to {
777
- transform: translateY(0%);
778
- }
779
- }
780
- @keyframes hide-bottom-to-top {
781
- from {
782
- transform: translateY(0%);
783
- }
784
- to {
785
- transform: translateY(110%);
786
- }
787
- }
788
- @keyframes show-top-to-bottom {
789
- from {
790
- transform: translateY(-110%);
791
- }
792
- to {
793
- transform: translateY(0%);
794
- }
795
- }
796
- @keyframes hide-top-to-bottom {
797
- from {
798
- transform: translateY(0%);
799
- }
800
- to {
801
- transform: translateY(-110%);
802
- }
803
- }
804
- @keyframes popover-animation {
805
- 0% {
806
- opacity: 0;
807
- transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
808
- }
809
- 100% {
810
- opacity: 1;
811
- transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
812
- }
813
- }
814
- @keyframes rotate {
815
- 100% {
816
- transform: rotate(1turn);
817
- }
818
- }
819
752
  dialog[data-variant], dialog[data-backdrop] {
820
753
  position: fixed;
821
754
  inset: 0;
@@ -845,40 +778,6 @@ dialog:not([data-backdrop=none])[data-backdrop=weak]::backdrop, dialog:not([data
845
778
  opacity: 0.32;
846
779
  }
847
780
 
848
- [data-placement^=top].db-custom-select .db-custom-select-dropdown:not([data-outside-vy=top]), .db-custom-select:not([data-placement]) .db-custom-select-dropdown[data-outside-vy=bottom], [data-placement^=bottom].db-custom-select .db-custom-select-dropdown[data-outside-vy=bottom] {
849
- /* stylelint-disable-next-line media-query-no-invalid */
850
- /* stylelint-disable-next-line at-rule-empty-line-before */
851
- }
852
- @media screen and (min-width: 45em) {
853
- [data-placement^=top].db-custom-select .db-custom-select-dropdown:not([data-force-mobile]):not([data-outside-vy=top]), .db-custom-select:not([data-placement]) .db-custom-select-dropdown[data-outside-vy=bottom]:not([data-force-mobile]), [data-placement^=bottom].db-custom-select .db-custom-select-dropdown[data-outside-vy=bottom]:not([data-force-mobile]), [data-placement^=top].db-custom-select [data-force-mobile=false].db-custom-select-dropdown:not([data-outside-vy=top]), .db-custom-select:not([data-placement]) [data-force-mobile=false].db-custom-select-dropdown[data-outside-vy=bottom], [data-placement^=bottom].db-custom-select [data-force-mobile=false].db-custom-select-dropdown[data-outside-vy=bottom] {
854
- inset-block-end: 100%;
855
- margin-block-start: var(--db-spacing-fixed-md);
856
- }
857
- }
858
-
859
- [data-placement^=top].db-custom-select, .db-custom-select:not([data-placement]), [data-placement^=bottom].db-custom-select {
860
- /* stylelint-disable-next-line media-query-no-invalid */
861
- /* stylelint-disable-next-line at-rule-empty-line-before */
862
- }
863
- @media screen and (min-width: 45em) {
864
- [data-placement^=top].db-custom-select:not([data-force-mobile])[data-placement$=end] .db-custom-select-dropdown:not([data-outside-vx=right]), .db-custom-select:not([data-force-mobile])[data-placement$=end]:not([data-placement]) .db-custom-select-dropdown:not([data-outside-vx=right]), [data-placement^=bottom].db-custom-select:not([data-force-mobile])[data-placement$=end] .db-custom-select-dropdown:not([data-outside-vx=right]), [data-force-mobile=false][data-placement$=end][data-placement^=top].db-custom-select .db-custom-select-dropdown:not([data-outside-vx=right]), [data-force-mobile=false][data-placement$=end].db-custom-select:not([data-placement]) .db-custom-select-dropdown:not([data-outside-vx=right]), [data-force-mobile=false][data-placement$=end][data-placement^=bottom].db-custom-select .db-custom-select-dropdown:not([data-outside-vx=right]) {
865
- inset-inline-end: 0;
866
- }
867
- [data-placement^=top].db-custom-select:not([data-force-mobile]) .db-custom-select-dropdown[data-outside-vx=right], .db-custom-select:not([data-force-mobile]):not([data-placement]) .db-custom-select-dropdown[data-outside-vx=right], [data-placement^=bottom].db-custom-select:not([data-force-mobile]) .db-custom-select-dropdown[data-outside-vx=right], [data-force-mobile=false][data-placement^=top].db-custom-select .db-custom-select-dropdown[data-outside-vx=right], [data-force-mobile=false].db-custom-select:not([data-placement]) .db-custom-select-dropdown[data-outside-vx=right], [data-force-mobile=false][data-placement^=bottom].db-custom-select .db-custom-select-dropdown[data-outside-vx=right] {
868
- inset-inline-end: 0;
869
- }
870
- }
871
-
872
- .db-custom-select:not([data-placement]) .db-custom-select-dropdown:not([data-outside-vy=bottom]), [data-placement^=bottom].db-custom-select .db-custom-select-dropdown:not([data-outside-vy=bottom]) {
873
- /* stylelint-disable-next-line media-query-no-invalid */
874
- /* stylelint-disable-next-line at-rule-empty-line-before */
875
- }
876
- @media screen and (min-width: 45em) {
877
- .db-custom-select:not([data-placement]) .db-custom-select-dropdown:not([data-outside-vy=bottom]):not([data-force-mobile]), .db-custom-select:not([data-placement]) .db-custom-select-dropdown:not([data-outside-vy=bottom])[data-force-mobile=false], [data-placement^=bottom].db-custom-select .db-custom-select-dropdown:not([data-outside-vy=bottom]):not([data-force-mobile]), [data-placement^=bottom].db-custom-select .db-custom-select-dropdown:not([data-outside-vy=bottom])[data-force-mobile=false] {
878
- inset-block-start: 100%;
879
- margin-block-end: var(--db-spacing-fixed-md);
880
- }
881
- }
882
781
  .db-custom-select {
883
782
  --db-form-component-padding-inline-end: calc(
884
783
  calc(var(--db-icon-font-size) + var(--db-spacing-fixed-sm) + var(--db-spacing-fixed-xs)) + var(--db-sizing-sm) +
@@ -989,39 +888,75 @@ input[type=radio]:checked) [id$=-placeholder] {
989
888
  content: "*"/"";
990
889
  }
991
890
  }
992
- .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(.db-infotext[data-semantic=successful]) {
891
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
892
+ > db-infotext > .db-infotext[data-semantic=successful]) {
993
893
  /* stylelint-disable-next-line at-rule-empty-line-before */
994
894
  }
995
- .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(.db-infotext[data-semantic=successful]) summary,
996
- .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(.db-infotext[data-semantic=successful]) [id$=-placeholder] {
895
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
896
+ > db-infotext > .db-infotext[data-semantic=successful]) summary,
897
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
898
+ > db-infotext > .db-infotext[data-semantic=successful]) [id$=-placeholder] {
997
899
  color: var(--db-successful-on-bg-basic-emphasis-100-default);
998
900
  caret-color: var(--db-successful-on-bg-basic-emphasis-100-default);
999
901
  }
1000
- .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(.db-infotext[data-semantic=successful]) .db-infotext {
902
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
903
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
904
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
905
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext {
1001
906
  /* stylelint-disable-next-line at-rule-empty-line-before */
1002
907
  }
1003
- .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(.db-infotext[data-semantic=successful]) .db-infotext[data-semantic=successful] {
908
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
909
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful],
910
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
911
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful] {
1004
912
  display: flex;
1005
913
  }
1006
- .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(.db-infotext[data-semantic=successful]) .db-infotext:not([data-semantic]) {
914
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
915
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]),
916
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-valid):has(> .db-infotext[data-semantic=successful],
917
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]) {
1007
918
  display: none;
1008
919
  }
1009
- .db-custom-select:has(select[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]), .db-custom-select[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) {
920
+ .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
921
+ > db-infotext > .db-infotext[data-semantic=successful]), .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
922
+ > db-infotext > .db-infotext[data-semantic=successful]) {
1010
923
  /* stylelint-disable-next-line at-rule-empty-line-before */
1011
924
  }
1012
- .db-custom-select:has(select[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) summary,
1013
- .db-custom-select:has(select[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) [id$=-placeholder], .db-custom-select[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) summary,
1014
- .db-custom-select[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) [id$=-placeholder] {
925
+ .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
926
+ > db-infotext > .db-infotext[data-semantic=successful]) summary,
927
+ .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
928
+ > db-infotext > .db-infotext[data-semantic=successful]) [id$=-placeholder], .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
929
+ > db-infotext > .db-infotext[data-semantic=successful]) summary,
930
+ .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
931
+ > db-infotext > .db-infotext[data-semantic=successful]) [id$=-placeholder] {
1015
932
  color: var(--db-successful-on-bg-basic-emphasis-100-default);
1016
933
  caret-color: var(--db-successful-on-bg-basic-emphasis-100-default);
1017
934
  }
1018
- .db-custom-select:has(select[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) .db-infotext, .db-custom-select[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) .db-infotext {
935
+ .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
936
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
937
+ .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
938
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext, .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
939
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext,
940
+ .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
941
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext {
1019
942
  /* stylelint-disable-next-line at-rule-empty-line-before */
1020
943
  }
1021
- .db-custom-select:has(select[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) .db-infotext[data-semantic=successful], .db-custom-select[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) .db-infotext[data-semantic=successful] {
944
+ .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
945
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful],
946
+ .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
947
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful], .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
948
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext[data-semantic=successful],
949
+ .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
950
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext[data-semantic=successful] {
1022
951
  display: flex;
1023
952
  }
1024
- .db-custom-select:has(select[data-custom-validity=valid]):has(.db-infotext[data-semantic=successful]) .db-infotext:not([data-semantic]), .db-custom-select[data-custom-validity=valid]:has(.db-infotext[data-semantic=successful]) .db-infotext:not([data-semantic]) {
953
+ .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
954
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]),
955
+ .db-custom-select:has(select[data-custom-validity=valid]):has(> .db-infotext[data-semantic=successful],
956
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]), .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
957
+ > db-infotext > .db-infotext[data-semantic=successful]) > db-infotext > .db-infotext:not([data-semantic]),
958
+ .db-custom-select[data-custom-validity=valid]:has(> .db-infotext[data-semantic=successful],
959
+ > db-infotext > .db-infotext[data-semantic=successful]) > .db-infotext:not([data-semantic]) {
1025
960
  display: none;
1026
961
  }
1027
962
  .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-invalid) {
@@ -1032,10 +967,12 @@ input[type=radio]:checked) [id$=-placeholder] {
1032
967
  color: var(--db-critical-on-bg-basic-emphasis-100-default);
1033
968
  caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
1034
969
  }
1035
- .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-invalid) .db-infotext[data-semantic=critical] {
970
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > db-infotext > .db-infotext[data-semantic=critical],
971
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > .db-infotext[data-semantic=critical] {
1036
972
  display: flex;
1037
973
  }
1038
- .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-invalid) .db-infotext:not([data-semantic]) {
974
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > db-infotext > .db-infotext:not([data-semantic]),
975
+ .db-custom-select:has(select:not([data-custom-validity]):is(:required):user-invalid) > .db-infotext:not([data-semantic]) {
1039
976
  display: none;
1040
977
  }
1041
978
  .db-custom-select:has(select[data-custom-validity=invalid]), .db-custom-select[data-custom-validity=invalid] {
@@ -1047,10 +984,14 @@ input[type=radio]:checked) [id$=-placeholder] {
1047
984
  color: var(--db-critical-on-bg-basic-emphasis-100-default);
1048
985
  caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
1049
986
  }
1050
- .db-custom-select:has(select[data-custom-validity=invalid]) .db-infotext[data-semantic=critical], .db-custom-select[data-custom-validity=invalid] .db-infotext[data-semantic=critical] {
987
+ .db-custom-select:has(select[data-custom-validity=invalid]) > db-infotext > .db-infotext[data-semantic=critical],
988
+ .db-custom-select:has(select[data-custom-validity=invalid]) > .db-infotext[data-semantic=critical], .db-custom-select[data-custom-validity=invalid] > db-infotext > .db-infotext[data-semantic=critical],
989
+ .db-custom-select[data-custom-validity=invalid] > .db-infotext[data-semantic=critical] {
1051
990
  display: flex;
1052
991
  }
1053
- .db-custom-select:has(select[data-custom-validity=invalid]) .db-infotext:not([data-semantic]), .db-custom-select[data-custom-validity=invalid] .db-infotext:not([data-semantic]) {
992
+ .db-custom-select:has(select[data-custom-validity=invalid]) > db-infotext > .db-infotext:not([data-semantic]),
993
+ .db-custom-select:has(select[data-custom-validity=invalid]) > .db-infotext:not([data-semantic]), .db-custom-select[data-custom-validity=invalid] > db-infotext > .db-infotext:not([data-semantic]),
994
+ .db-custom-select[data-custom-validity=invalid] > .db-infotext:not([data-semantic]) {
1054
995
  display: none;
1055
996
  }
1056
997
  .db-custom-select summary::placeholder,
@@ -5,56 +5,8 @@
5
5
  @use "../../styles/internal/form-components";
6
6
  @use "../../styles/internal/component";
7
7
  @use "../../styles/internal/select-components";
8
- @use "../../styles/internal/scrollbar";
9
8
  @use "../../styles/dialog-init";
10
9
 
11
- %custom-select-placement-top {
12
- @include screen-sizes.screen("sm") {
13
- inset-block-end: 100%;
14
- margin-block-start: variables.$db-spacing-fixed-md;
15
- }
16
- }
17
-
18
- %custom-select-placement-vertical {
19
- @include screen-sizes.screen("sm") {
20
- &[data-placement$="end"] {
21
- .db-custom-select-dropdown:not([data-outside-vx="right"]) {
22
- inset-inline-end: 0;
23
- }
24
- }
25
-
26
- .db-custom-select-dropdown[data-outside-vx="right"] {
27
- inset-inline-end: 0;
28
- }
29
- }
30
- }
31
-
32
- %custom-select-placement {
33
- &:not([data-placement]),
34
- &[data-placement^="bottom"] {
35
- @extend %custom-select-placement-vertical;
36
-
37
- .db-custom-select-dropdown:not([data-outside-vy="bottom"]) {
38
- @include screen-sizes.screen("sm") {
39
- inset-block-start: 100%;
40
- margin-block-end: variables.$db-spacing-fixed-md;
41
- }
42
- }
43
-
44
- .db-custom-select-dropdown[data-outside-vy="bottom"] {
45
- @extend %custom-select-placement-top;
46
- }
47
- }
48
-
49
- &[data-placement^="top"] {
50
- @extend %custom-select-placement-vertical;
51
-
52
- .db-custom-select-dropdown:not([data-outside-vy="top"]) {
53
- @extend %custom-select-placement-top;
54
- }
55
- }
56
- }
57
-
58
10
  .db-custom-select {
59
11
  --db-form-component-padding-inline-end: calc(
60
12
  #{select-components.$select-icon-padding} + #{variables.$db-sizing-sm} +
@@ -68,7 +20,6 @@
68
20
 
69
21
  @extend %select-icon;
70
22
  @extend %select-placeholder;
71
- @extend %custom-select-placement;
72
23
 
73
24
  position: relative;
74
25
 
@@ -202,6 +202,10 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
202
202
 
203
203
  @layer variables {}
204
204
 
205
+ @layer variables {}
206
+
207
+ @layer variables {}
208
+
205
209
  /**
206
210
  * @mixin screen-min-max
207
211
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
@@ -55,6 +55,10 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
55
55
 
56
56
  @layer variables {}
57
57
 
58
+ @layer variables {}
59
+
60
+ @layer variables {}
61
+
58
62
  /**
59
63
  Generates 3 types of placeholders, e.g:
60
64
  - %db-component-variables-md
@@ -55,6 +55,10 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
55
55
 
56
56
  @layer variables {}
57
57
 
58
+ @layer variables {}
59
+
60
+ @layer variables {}
61
+
58
62
  /**
59
63
  Generates 3 types of placeholders, e.g:
60
64
  - %db-component-variables-md
@@ -119,159 +123,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
119
123
  * @mixin screen-min-max
120
124
  * @param $data an object like (min:"sm", max:"lg") or (min: "sm")
121
125
  */
122
- .db-custom-select-list::-webkit-scrollbar, .db-custom-select-list::-webkit-scrollbar-corner {
123
- transition: outline var(--db-transition-duration-extra-fast), border-color var(--db-transition-straight-emotional), background-color var(--db-transition-straight-emotional);
124
- }
125
-
126
- @keyframes show-right-to-left {
127
- from {
128
- transform: translateX(110%);
129
- }
130
- to {
131
- transform: translateX(0%);
132
- }
133
- }
134
- @keyframes hide-right-to-left {
135
- from {
136
- transform: translateX(0%);
137
- }
138
- to {
139
- transform: translateX(110%);
140
- }
141
- }
142
- @keyframes show-left-to-right {
143
- from {
144
- transform: translateX(-110%);
145
- }
146
- to {
147
- transform: translateX(0%);
148
- }
149
- }
150
- @keyframes hide-left-to-right {
151
- from {
152
- transform: translateX(0%);
153
- }
154
- to {
155
- transform: translateX(-110%);
156
- }
157
- }
158
- @keyframes show-bottom-to-top {
159
- from {
160
- transform: translateY(110%);
161
- }
162
- to {
163
- transform: translateY(0%);
164
- }
165
- }
166
- @keyframes hide-bottom-to-top {
167
- from {
168
- transform: translateY(0%);
169
- }
170
- to {
171
- transform: translateY(110%);
172
- }
173
- }
174
- @keyframes show-top-to-bottom {
175
- from {
176
- transform: translateY(-110%);
177
- }
178
- to {
179
- transform: translateY(0%);
180
- }
181
- }
182
- @keyframes hide-top-to-bottom {
183
- from {
184
- transform: translateY(0%);
185
- }
186
- to {
187
- transform: translateY(-110%);
188
- }
189
- }
190
- @keyframes popover-animation {
191
- 0% {
192
- opacity: 0;
193
- transform: translate(var(--db-popover-center-x, var(--db-popover-translate-x, 0%)), var(--db-popover-center-y, var(--db-popover-translate-y, 0%)));
194
- }
195
- 100% {
196
- opacity: 1;
197
- transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
198
- }
199
- }
200
- @keyframes rotate {
201
- 100% {
202
- transform: rotate(1turn);
203
- }
204
- }
205
- .db-custom-select-list {
206
- /* Buttons */
207
- /* Up */
208
- /* Down */
209
- /* Left */
210
- /* Right */
211
- }
212
- .db-custom-select-list::-webkit-scrollbar {
213
- z-index: 3;
214
- inline-size: 0.5rem;
215
- block-size: 0.5rem;
216
- background-color: var(--db-adaptive-bg-basic-level-1-default);
217
- border-start-end-radius: var(--db-border-radius-xs);
218
- }
219
- .db-custom-select-list:is(:hover, :focus)::-webkit-scrollbar-track, .db-custom-select-list:is(:hover, :focus)::-webkit-scrollbar-button:single-button {
220
- background-color: var(--db-adaptive-bg-basic-transparent-hovered);
221
- }
222
- .db-custom-select-list:read-only::-webkit-scrollbar-track, .db-custom-select-list:read-only::-webkit-scrollbar-button:single-button {
223
- background-color: var(--db-adaptive-bg-basic-level-1-default);
224
- }
225
- .db-custom-select-list::-webkit-scrollbar-track {
226
- background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
227
- }
228
- .db-custom-select-list::-webkit-scrollbar-thumb {
229
- background-color: var(--db-adaptive-bg-basic-transparent-pressed);
230
- }
231
- .db-custom-select-list::-webkit-scrollbar-button:single-button {
232
- background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
233
- background-size: 0.5rem;
234
- background-repeat: no-repeat;
235
- background-position: center;
236
- block-size: calc(var(--db-spacing-fixed-3xs) + var(--db-spacing-fixed-2xs) + var(--db-base-body-icon-font-size-2xs));
237
- }
238
- .db-custom-select-list::-webkit-scrollbar-button:single-button:is(:hover, :focus) {
239
- background-color: var(--db-adaptive-bg-basic-transparent-hovered);
240
- }
241
- .db-custom-select-list::-webkit-scrollbar-button:single-button:active {
242
- background-color: var(--db-adaptive-bg-basic-transparent-pressed);
243
- }
244
- .db-custom-select-list::-webkit-scrollbar-button:single-button:vertical:decrement {
245
- border-start-end-radius: var(--db-border-radius-xs);
246
- background-image: var(--db-scrollbar-button-vertical-decrement);
247
- }
248
- .db-custom-select-list::-webkit-scrollbar-button:single-button:vertical:increment {
249
- background-image: var(--db-scrollbar-button-vertical-increment);
250
- }
251
- .db-custom-select-list::-webkit-scrollbar-button:single-button:horizontal:decrement {
252
- background-image: var(--db-scrollbar-button-horizontal-decrement);
253
- }
254
- .db-custom-select-list::-webkit-scrollbar-button:single-button:horizontal:increment {
255
- background-image: var(--db-scrollbar-button-horizontal-increment);
256
- }
257
- [data-variant=floating].db-custom-select-list::-webkit-resizer {
258
- background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
259
- }
260
- [data-variant=floating].db-custom-select-list::-webkit-scrollbar-corner {
261
- background-color: var(--db-adaptive-bg-basic-level-1-default);
262
- }
263
- .db-custom-select-list::-webkit-resizer {
264
- background-color: var(--db-adaptive-bg-basic-transparent-full-default);
265
- background-size: 0.5rem;
266
- background-repeat: no-repeat;
267
- background-position: center;
268
- background-image: var(--db-textarea-resizer-image);
269
- border-end-end-radius: var(--db-border-radius-xs);
270
- }
271
- .db-custom-select-list::-webkit-scrollbar-corner {
272
- border-end-end-radius: var(--db-border-radius-xs);
273
- }
274
-
275
126
  .db-custom-select-list {
276
127
  all: unset;
277
128
  padding: var(--db-spacing-fixed-sm);
@@ -1,10 +1,7 @@
1
1
  @use "@db-ux/core-foundations/build/styles/variables";
2
2
  @use "../../styles/internal/form-components";
3
- @use "../../styles/internal/scrollbar";
4
3
 
5
4
  .db-custom-select-list {
6
- @extend %scrollbar;
7
-
8
5
  all: unset;
9
6
  padding: variables.$db-spacing-fixed-sm;
10
7
  overflow-y: auto;
@@ -55,6 +55,10 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
55
55
 
56
56
  @layer variables {}
57
57
 
58
+ @layer variables {}
59
+
60
+ @layer variables {}
61
+
58
62
  .db-custom-select-list-item:not([data-disable-focus=true]):has(> label > input:focus-within) {
59
63
  outline: var(--db-border-width-2xs) solid var(--db-focus-outline-color, var(--db-informational-on-bg-basic-emphasis-70-default));
60
64
  outline-offset: var(--db-border-width-xs);
@@ -225,6 +229,7 @@ db-custom-select-list-item:not(:last-of-type) .db-custom-select-list-item[data-d
225
229
  }
226
230
  .db-custom-select-list-item > label {
227
231
  --db-icon-margin-start: auto;
232
+ --db-check-element-label-color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
228
233
  inline-size: 100%;
229
234
  }
230
235
  .db-custom-select-list-item > label:has(input:checked) {
@@ -239,7 +244,8 @@ db-custom-select-list-item:not(:last-of-type) .db-custom-select-list-item[data-d
239
244
  --db-icon-after: "check";
240
245
  }
241
246
  .db-custom-select-list-item > label > input {
242
- /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
247
+ --db-adaptive-bg-basic-transparent-hovered: var(--db-adaptive-bg-basic-transparent-full-default);
248
+ --db-adaptive-bg-basic-transparent-pressed: var(--db-adaptive-bg-basic-transparent-full-default);
243
249
  /* We set focus on complete list element, we remove it from checkbox with this trick */
244
250
  /* stylelint-disable-next-line a11y/no-outline-none */
245
251
  }
@@ -252,26 +258,6 @@ db-custom-select-list-item:not(:last-of-type) .db-custom-select-list-item[data-d
252
258
  .db-custom-select-list-item > label > input[type=radio] {
253
259
  all: unset;
254
260
  }
255
- .db-custom-select-list-item > label > input:hover:not(:disabled, [aria-disabled=true]) {
256
- cursor: var(--db-overwrite-cursor, pointer);
257
- background-color: var(--db-adaptive-bg-basic-transparent-full-default);
258
- }
259
- .db-custom-select-list-item > label > input:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-custom-select-list-item > label > input:hover:not(:disabled, [aria-disabled=true]):is(input) {
260
- cursor: initial;
261
- }
262
- .db-custom-select-list-item > label > input:hover:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-custom-select-list-item > label > input:hover:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
263
- cursor: pointer;
264
- }
265
- .db-custom-select-list-item > label > input:active:not(:disabled, [aria-disabled=true]) {
266
- cursor: var(--db-overwrite-cursor, pointer);
267
- background-color: var(--db-adaptive-bg-basic-transparent-full-default);
268
- }
269
- .db-custom-select-list-item > label > input:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-custom-select-list-item > label > input:active:not(:disabled, [aria-disabled=true]):is(input) {
270
- cursor: initial;
271
- }
272
- .db-custom-select-list-item > label > input:active:not(:disabled, [aria-disabled=true]):is(input[type=checkbox]), .db-custom-select-list-item > label > input:active:not(:disabled, [aria-disabled=true]):is(input[type=radio]:not(:checked)) {
273
- cursor: pointer;
274
- }
275
261
  .db-custom-select-list-item > label > input:focus-visible {
276
262
  outline: none !important;
277
263
  }
@@ -50,6 +50,7 @@ db-custom-select-list-item:not(:last-of-type) {
50
50
 
51
51
  > label {
52
52
  --db-icon-margin-start: auto;
53
+ --db-check-element-label-color: #{colors.$db-adaptive-on-bg-basic-emphasis-100-default};
53
54
 
54
55
  inline-size: 100%;
55
56
 
@@ -69,6 +70,10 @@ db-custom-select-list-item:not(:last-of-type) {
69
70
  }
70
71
 
71
72
  > input {
73
+ // We revert interaction states for checkbox
74
+ --db-adaptive-bg-basic-transparent-hovered: #{colors.$db-adaptive-bg-basic-transparent-full-default};
75
+ --db-adaptive-bg-basic-transparent-pressed: #{colors.$db-adaptive-bg-basic-transparent-full-default};
76
+
72
77
  &::after {
73
78
  position: absolute;
74
79
  content: "";
@@ -80,15 +85,6 @@ db-custom-select-list-item:not(:last-of-type) {
80
85
  all: unset;
81
86
  }
82
87
 
83
- // We revert interaction states for checkbox
84
- @include helpers.hover {
85
- background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
86
- }
87
-
88
- @include helpers.active {
89
- background-color: colors.$db-adaptive-bg-basic-transparent-full-default;
90
- }
91
-
92
88
  /* We set focus on complete list element, we remove it from checkbox with this trick */
93
89
  /* stylelint-disable-next-line a11y/no-outline-none */
94
90
  &:focus-visible {
@@ -36,6 +36,10 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
36
36
 
37
37
  @layer variables {}
38
38
 
39
+ @layer variables {}
40
+
41
+ @layer variables {}
42
+
39
43
  .db-divider:is(:not([data-margin]), [data-margin=small]) {
40
44
  margin: var(--db-spacing-fixed-sm) 0;
41
45
  }