@coreui/coreui 5.6.0 → 5.7.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 (120) hide show
  1. package/README.md +3 -4
  2. package/dist/css/coreui-grid.css +1 -1
  3. package/dist/css/coreui-grid.css.map +1 -1
  4. package/dist/css/coreui-grid.min.css +1 -1
  5. package/dist/css/coreui-grid.min.css.map +1 -1
  6. package/dist/css/coreui-grid.rtl.css +1 -1
  7. package/dist/css/coreui-grid.rtl.css.map +1 -1
  8. package/dist/css/coreui-grid.rtl.min.css +1 -1
  9. package/dist/css/coreui-grid.rtl.min.css.map +1 -1
  10. package/dist/css/coreui-reboot.css +5 -3
  11. package/dist/css/coreui-reboot.css.map +1 -1
  12. package/dist/css/coreui-reboot.min.css +2 -2
  13. package/dist/css/coreui-reboot.min.css.map +1 -1
  14. package/dist/css/coreui-reboot.rtl.css +5 -3
  15. package/dist/css/coreui-reboot.rtl.css.map +1 -1
  16. package/dist/css/coreui-reboot.rtl.min.css +2 -2
  17. package/dist/css/coreui-reboot.rtl.min.css.map +1 -1
  18. package/dist/css/coreui-utilities.css +5 -3
  19. package/dist/css/coreui-utilities.css.map +1 -1
  20. package/dist/css/coreui-utilities.min.css +2 -2
  21. package/dist/css/coreui-utilities.min.css.map +1 -1
  22. package/dist/css/coreui-utilities.rtl.css +5 -3
  23. package/dist/css/coreui-utilities.rtl.css.map +1 -1
  24. package/dist/css/coreui-utilities.rtl.min.css +2 -2
  25. package/dist/css/coreui-utilities.rtl.min.css.map +1 -1
  26. package/dist/css/coreui.css +172 -68
  27. package/dist/css/coreui.css.map +1 -1
  28. package/dist/css/coreui.min.css +2 -2
  29. package/dist/css/coreui.min.css.map +1 -1
  30. package/dist/css/coreui.rtl.css +167 -66
  31. package/dist/css/coreui.rtl.css.map +1 -1
  32. package/dist/css/coreui.rtl.min.css +2 -2
  33. package/dist/css/coreui.rtl.min.css.map +1 -1
  34. package/dist/css/themes/bootstrap/bootstrap.css +172 -68
  35. package/dist/css/themes/bootstrap/bootstrap.css.map +1 -1
  36. package/dist/css/themes/bootstrap/bootstrap.min.css +2 -2
  37. package/dist/css/themes/bootstrap/bootstrap.min.css.map +1 -1
  38. package/dist/css/themes/bootstrap/bootstrap.rtl.css +167 -66
  39. package/dist/css/themes/bootstrap/bootstrap.rtl.css.map +1 -1
  40. package/dist/css/themes/bootstrap/bootstrap.rtl.min.css +2 -2
  41. package/dist/css/themes/bootstrap/bootstrap.rtl.min.css.map +1 -1
  42. package/dist/js/bootstrap.bundle.js +578 -261
  43. package/dist/js/bootstrap.bundle.js.map +1 -1
  44. package/dist/js/bootstrap.bundle.min.js +2 -2
  45. package/dist/js/bootstrap.bundle.min.js.map +1 -1
  46. package/dist/js/bootstrap.esm.js +578 -262
  47. package/dist/js/bootstrap.esm.js.map +1 -1
  48. package/dist/js/bootstrap.esm.min.js +2 -2
  49. package/dist/js/bootstrap.esm.min.js.map +1 -1
  50. package/dist/js/bootstrap.js +578 -261
  51. package/dist/js/bootstrap.js.map +1 -1
  52. package/dist/js/bootstrap.min.js +2 -2
  53. package/dist/js/bootstrap.min.js.map +1 -1
  54. package/dist/js/coreui.bundle.js +578 -261
  55. package/dist/js/coreui.bundle.js.map +1 -1
  56. package/dist/js/coreui.bundle.min.js +2 -2
  57. package/dist/js/coreui.bundle.min.js.map +1 -1
  58. package/dist/js/coreui.esm.js +578 -262
  59. package/dist/js/coreui.esm.js.map +1 -1
  60. package/dist/js/coreui.esm.min.js +2 -2
  61. package/dist/js/coreui.esm.min.js.map +1 -1
  62. package/dist/js/coreui.js +578 -261
  63. package/dist/js/coreui.js.map +1 -1
  64. package/dist/js/coreui.min.js +2 -2
  65. package/dist/js/coreui.min.js.map +1 -1
  66. package/js/dist/alert.js +1 -1
  67. package/js/dist/base-component.js +2 -2
  68. package/js/dist/base-component.js.map +1 -1
  69. package/js/dist/button.js +1 -1
  70. package/js/dist/carousel.js +1 -1
  71. package/js/dist/chip-input.js +1 -3
  72. package/js/dist/chip-input.js.map +1 -1
  73. package/js/dist/chip.js +1 -1
  74. package/js/dist/collapse.js +1 -1
  75. package/js/dist/dom/data.js +1 -1
  76. package/js/dist/dom/event-handler.js +1 -1
  77. package/js/dist/dom/manipulator.js +1 -1
  78. package/js/dist/dom/selector-engine.js +1 -1
  79. package/js/dist/dropdown.js +1 -1
  80. package/js/dist/modal.js +1 -1
  81. package/js/dist/navigation.js +2 -2
  82. package/js/dist/navigation.js.map +1 -1
  83. package/js/dist/offcanvas.js +1 -1
  84. package/js/dist/popover.js +1 -1
  85. package/js/dist/scrollspy.js +1 -1
  86. package/js/dist/search-button.js +336 -0
  87. package/js/dist/search-button.js.map +1 -0
  88. package/js/dist/sidebar.js +7 -10
  89. package/js/dist/sidebar.js.map +1 -1
  90. package/js/dist/tab.js +1 -1
  91. package/js/dist/toast.js +1 -1
  92. package/js/dist/tooltip.js +1 -1
  93. package/js/dist/util/backdrop.js +1 -1
  94. package/js/dist/util/component-functions.js +1 -1
  95. package/js/dist/util/config.js +1 -1
  96. package/js/dist/util/focustrap.js +1 -1
  97. package/js/dist/util/index.js +1 -1
  98. package/js/dist/util/sanitizer.js +1 -1
  99. package/js/dist/util/scrollbar.js +1 -1
  100. package/js/dist/util/swipe.js +1 -1
  101. package/js/dist/util/template-factory.js +1 -1
  102. package/js/index.esm.js +1 -0
  103. package/js/index.umd.js +2 -0
  104. package/js/src/base-component.js +1 -1
  105. package/js/src/chip-input.js +0 -2
  106. package/js/src/navigation.js +1 -1
  107. package/js/src/search-button.js +409 -0
  108. package/js/src/sidebar.js +6 -10
  109. package/package.json +17 -16
  110. package/scss/_banner.scss +1 -1
  111. package/scss/_root.scss +3 -0
  112. package/scss/_search-button.scss +127 -0
  113. package/scss/_variables-dark.scss +2 -1
  114. package/scss/_variables.scss +12 -6
  115. package/scss/coreui.scss +1 -0
  116. package/scss/functions/_color-translucent.scss +33 -0
  117. package/scss/functions/_contrast-ratio.scss +3 -3
  118. package/scss/sidebar/_sidebar-narrow.scss +21 -13
  119. package/scss/sidebar/_sidebar-nav.scss +65 -45
  120. package/scss/sidebar/_sidebar.scss +1 -6
@@ -0,0 +1,127 @@
1
+ @use "variables" as *;
2
+ @use "mixins/border-radius" as *;
3
+ @use "mixins/box-shadow" as *;
4
+ @use "mixins/transition" as *;
5
+ @use "vendor/rfs" as *;
6
+
7
+ // scss-docs-start search-button-variables
8
+ $search-button-height: $input-height !default;
9
+ $search-button-padding-x: $input-padding-x !default;
10
+ $search-button-font-family: $input-font-family !default;
11
+ $search-button-font-size: $input-font-size !default;
12
+ $search-button-font-weight: $input-font-weight !default;
13
+ $search-button-color: $input-placeholder-color !default;
14
+ $search-button-bg: $input-bg !default;
15
+ $search-button-border-width: $input-border-width !default;
16
+ $search-button-border-color: $input-border-color !default;
17
+ $search-button-border-radius: $input-border-radius !default;
18
+ $search-button-box-shadow: $input-box-shadow !default;
19
+ $search-button-transition: $input-transition !default;
20
+
21
+ $search-button-focus-color: $input-focus-color !default;
22
+ $search-button-focus-bg: $input-focus-bg !default;
23
+ $search-button-focus-border-color: $input-focus-border-color !default;
24
+ $search-button-focus-box-shadow: $input-focus-box-shadow !default;
25
+
26
+ $search-button-icon-size: 1.125rem !default;
27
+
28
+ $search-button-keys-gap: .25rem !default;
29
+ $search-button-key-width: 1.5rem !default;
30
+ $search-button-key-height: 1.5rem !default;
31
+ $search-button-key-padding-inline: .25rem !default;
32
+ $search-button-key-font-size: .75rem !default;
33
+ $search-button-key-bg: var(--#{$prefix}tertiary-bg) !default;
34
+ $search-button-key-border-radius: var(--#{$prefix}border-radius-sm) !default;
35
+ $search-button-key-active-bg: var(--#{$prefix}secondary-bg) !default;
36
+
37
+ $search-button-placeholder-margin-inline: .55rem 2rem !default;
38
+ // scss-docs-end search-button-variables
39
+
40
+ .search-button {
41
+ // scss-docs-start search-button-css-vars
42
+ --#{$prefix}search-button-height: #{$search-button-height};
43
+ --#{$prefix}search-button-padding-x: #{$search-button-padding-x};
44
+ --#{$prefix}search-button-font-family: #{$search-button-font-family};
45
+ --#{$prefix}search-button-font-size: #{$search-button-font-size};
46
+ --#{$prefix}search-button-font-weight: #{$search-button-font-weight};
47
+ --#{$prefix}search-button-color: #{$search-button-color};
48
+ --#{$prefix}search-button-bg: #{$search-button-bg};
49
+ --#{$prefix}search-button-border-width: #{$search-button-border-width};
50
+ --#{$prefix}search-button-border-color: #{$search-button-border-color};
51
+ --#{$prefix}search-button-border-radius: #{$search-button-border-radius};
52
+ --#{$prefix}search-button-box-shadow: #{$search-button-box-shadow};
53
+ --#{$prefix}search-button-transition: #{$search-button-transition};
54
+ --#{$prefix}search-button-focus-color: #{$search-button-focus-color};
55
+ --#{$prefix}search-button-focus-bg: #{$search-button-focus-bg};
56
+ --#{$prefix}search-button-focus-border-color: #{$search-button-focus-border-color};
57
+ --#{$prefix}search-button-focus-box-shadow: #{$search-button-focus-box-shadow};
58
+ --#{$prefix}search-button-icon-size: #{$search-button-icon-size};
59
+ --#{$prefix}search-button-keys-gap: #{$search-button-keys-gap};
60
+ --#{$prefix}search-button-key-width: #{$search-button-key-width};
61
+ --#{$prefix}search-button-key-height: #{$search-button-key-height};
62
+ --#{$prefix}search-button-key-padding-inline: #{$search-button-key-padding-inline};
63
+ --#{$prefix}search-button-key-font-size: #{$search-button-key-font-size};
64
+ --#{$prefix}search-button-key-bg: #{$search-button-key-bg};
65
+ --#{$prefix}search-button-key-border-radius: #{$search-button-key-border-radius};
66
+ --#{$prefix}search-button-key-active-bg: #{$search-button-key-active-bg};
67
+ --#{$prefix}search-button-placeholder-margin-inline: #{$search-button-placeholder-margin-inline};
68
+ // scss-docs-end search-button-css-vars
69
+
70
+ display: flex;
71
+ align-items: center;
72
+ height: var(--#{$prefix}search-button-height);
73
+ padding-inline: var(--#{$prefix}search-button-padding-x);
74
+ font-family: var(--#{$prefix}search-button-font-family);
75
+ @include font-size(var(--#{$prefix}search-button-font-size));
76
+ font-weight: var(--#{$prefix}search-button-font-weight);
77
+ color: var(--#{$prefix}search-button-color);
78
+ background-color: var(--#{$prefix}search-button-bg);
79
+ border: var(--#{$prefix}search-button-border-width) solid var(--#{$prefix}search-button-border-color);
80
+
81
+ @include border-radius(var(--#{$prefix}search-button-border-radius), 0);
82
+ @include box-shadow(var(--#{$prefix}search-button-box-shadow));
83
+ @include transition(var(--#{$prefix}search-button-transition));
84
+
85
+ &:focus {
86
+ color: var(--#{$prefix}search-button-focus-color);
87
+ background-color: var(--#{$prefix}search-button-focus-bg);
88
+ border-color: var(--#{$prefix}search-button-focus-border-color);
89
+ outline: 0;
90
+ @if $enable-shadows {
91
+ @include box-shadow(var(--#{$prefix}search-button-box-shadow), var(--#{$prefix}search-button-focus-box-shadow));
92
+ } @else {
93
+ // Avoid using mixin so we can pass custom focus shadow properly
94
+ box-shadow: var(--#{$prefix}search-button-focus-box-shadow);
95
+ }
96
+ }
97
+ }
98
+
99
+ .search-button-icon {
100
+ width: var(--#{$prefix}search-button-icon-size);
101
+ height: var(--#{$prefix}search-button-icon-size);
102
+ }
103
+
104
+ .search-button-keys {
105
+ display: inline-flex;
106
+ gap: var(--#{$prefix}search-button-keys-gap);
107
+ }
108
+
109
+ .search-button-key {
110
+ display: flex;
111
+ align-items: center;
112
+ justify-content: center;
113
+ min-width: var(--#{$prefix}search-button-key-width);
114
+ height: var(--#{$prefix}search-button-key-height);
115
+ padding-inline: var(--#{$prefix}search-button-key-padding-inline);
116
+ font-size: var(--#{$prefix}search-button-key-font-size);
117
+ background-color: var(--#{$prefix}search-button-key-bg);
118
+ @include border-radius(var(--#{$prefix}search-button-key-border-radius));
119
+
120
+ &.active {
121
+ background-color: var(--#{$prefix}search-button-key-active-bg);
122
+ }
123
+ }
124
+
125
+ .search-button-placeholder {
126
+ margin-inline: var(--#{$prefix}search-button-placeholder-margin-inline);
127
+ }
@@ -1,5 +1,6 @@
1
1
  @use "sass:color";
2
2
  @use "functions/color" as *;
3
+ @use "functions/color-translucent" as *;
3
4
  @use "variables" as *;
4
5
 
5
6
  // Dark color mode variables
@@ -110,7 +111,7 @@ $body-tertiary-color-dark: rgba($white, .38) !default;
110
111
  $body-tertiary-bg-dark: color.mix($gray-800-dark, #212631, 50%) !default;
111
112
  $body-emphasis-color-dark: $white !default;
112
113
  $border-color-dark: $gray-800-dark !default;
113
- $border-color-translucent-dark: rgba($white, .1) !default;
114
+ $border-color-translucent-dark: color-translucent($gray-800-dark, .175, $body-bg-dark) !default;
114
115
  $headings-color-dark: inherit !default;
115
116
  $link-color-dark: $primary-dark !default;
116
117
  $link-hover-color-dark: shift-color($link-color-dark, -$link-shade-percentage) !default;
@@ -4,6 +4,7 @@
4
4
  @use "functions/assert-starts-at-zero" as *;
5
5
  @use "functions/color" as *;
6
6
  @use "functions/color-contrast-variables" as *;
7
+ @use "functions/color-translucent" as *;
7
8
  @use "functions/math" as *;
8
9
  @use "functions/to-rgb" as *;
9
10
 
@@ -586,7 +587,7 @@ $border-widths: (
586
587
 
587
588
  $border-style: solid !default;
588
589
  $border-color: $gray-300 !default;
589
- $border-color-translucent: rgba($black, .175) !default;
590
+ $border-color-translucent: color-translucent($gray-300, .175) !default;
590
591
  // scss-docs-end border-variables
591
592
 
592
593
  // scss-docs-start border-radius-variables
@@ -1928,7 +1929,6 @@ $sidebar-widths: (
1928
1929
  lg: 20rem,
1929
1930
  xl: 24rem
1930
1931
  ) !default;
1931
- $sidebar-narrow-width: 4rem !default;
1932
1932
  $sidebar-padding-y: $spacer !default;
1933
1933
  $sidebar-padding-x: $spacer !default;
1934
1934
  $sidebar-color: var(--#{$prefix}body-color) !default;
@@ -1939,6 +1939,9 @@ $sidebar-brand-bg: rgba($black, .2) !default;
1939
1939
  $sidebar-backdrop-bg: $black !default;
1940
1940
  $sidebar-backdrop-opacity: .5 !default;
1941
1941
  $sidebar-overlaid-box-shadow: var(--#{$prefix}box-shadow) !default;
1942
+
1943
+ $sidebar-narrow-width: 4rem !default;
1944
+ $sidebar-narrow-padding-x: .5rem !default;
1942
1945
  $sidebar-narrow-unfoldable-box-shadow: var(--#{$prefix}box-shadow) !default;
1943
1946
  // scss-docs-end sidebar-variables
1944
1947
 
@@ -1980,13 +1983,13 @@ $sidebar-nav-link-icon-bullet-border-color: var(--#{$prefix}tertiary-color) !d
1980
1983
  $sidebar-nav-link-icon-bullet-border-radius: 50rem !default;
1981
1984
 
1982
1985
  $sidebar-nav-link-hover-color: var(--#{$prefix}emphasis-color) !default;
1983
- $sidebar-nav-link-hover-bg: var(--#{$prefix}tertiary-bg) !default;
1986
+ $sidebar-nav-link-hover-bg: var(--#{$prefix}tertiary-bg-translucent) !default;
1984
1987
  $sidebar-nav-link-hover-icon-color: var(--#{$prefix}body-color) !default;
1985
1988
  $sidebar-nav-link-hover-icon-bullet-bg: transparent !default;
1986
1989
  $sidebar-nav-link-hover-icon-bullet-border-color: var(--#{$prefix}body-color) !default;
1987
1990
 
1988
1991
  $sidebar-nav-link-active-color: var(--#{$prefix}emphasis-color) !default;
1989
- $sidebar-nav-link-active-bg: var(--#{$prefix}tertiary-bg) !default;
1992
+ $sidebar-nav-link-active-bg: var(--#{$prefix}tertiary-bg-translucent) !default;
1990
1993
  $sidebar-nav-link-active-icon-color: var(--#{$prefix}emphasis-color) !default;
1991
1994
  $sidebar-nav-link-active-icon-bullet-bg: transparent !default;
1992
1995
  $sidebar-nav-link-active-icon-bullet-border-color: var(--#{$prefix}emphasis-color) !default;
@@ -2003,8 +2006,6 @@ $sidebar-nav-group-border-radius: var(--#{$prefix}border-radius) !de
2003
2006
  $sidebar-nav-group-transition: background .15s ease-in-out !default;
2004
2007
  $sidebar-nav-group-toggle-show-color: $sidebar-nav-link-color !default;
2005
2008
 
2006
- $sidebar-nav-group-items-padding-y: 0 !default;
2007
- $sidebar-nav-group-items-padding-x: 0 !default;
2008
2009
  $sidebar-nav-group-items-transition: height .15s ease !default;
2009
2010
 
2010
2011
  $sidebar-nav-group-indicator-color: var(--#{$prefix}tertiary-color) !default;
@@ -2012,6 +2013,11 @@ $sidebar-nav-group-indicator-icon: url("data:image/svg+xml,<svg xmlns
2012
2013
  $sidebar-nav-group-indicator-hover-color: $sidebar-nav-link-hover-color !default;
2013
2014
  $sidebar-nav-group-indicator-hover-icon: $sidebar-nav-group-indicator-icon !default;
2014
2015
  $sidebar-nav-group-indicator-transition: transform .15s !default;
2016
+
2017
+ $sidebar-nav-tree-group-border-color: var(--#{$prefix}border-color) !default;
2018
+ $sidebar-nav-tree-link-icon-bullet-bg: var(--#{$prefix}border-color) !default;
2019
+ $sidebar-nav-tree-link-hover-icon-bullet-bg: var(--#{$prefix}border-color) !default;
2020
+ $sidebar-nav-tree-link-active-icon-bullet-bg: var(--#{$prefix}border-color) !default;
2015
2021
  // scss-docs-end sidebar-nav-variables
2016
2022
 
2017
2023
  // scss-docs-start sidebar-toggler
package/scss/coreui.scss CHANGED
@@ -46,6 +46,7 @@
46
46
  @forward "footer";
47
47
  @forward "header";
48
48
  @forward "icon";
49
+ @forward "search-button";
49
50
  @forward "sidebar";
50
51
 
51
52
  // Helpers
@@ -0,0 +1,33 @@
1
+ @use "sass:color";
2
+ @use "sass:math";
3
+
4
+ @function color-translucent($target-color, $alpha: .1, $bg-color: #fff) {
5
+ @if color.alpha($target-color) < 1 {
6
+ @return $target-color;
7
+ }
8
+
9
+ @if $alpha <= 0 or $alpha > 1 {
10
+ @error "Alpha must be greater than 0 and less than or equal to 1.";
11
+ }
12
+
13
+ $r: math.div(
14
+ color.channel($target-color, "red") - color.channel($bg-color, "red") * (1 - $alpha),
15
+ $alpha
16
+ );
17
+
18
+ $g: math.div(
19
+ color.channel($target-color, "green") - color.channel($bg-color, "green") * (1 - $alpha),
20
+ $alpha
21
+ );
22
+
23
+ $b: math.div(
24
+ color.channel($target-color, "blue") - color.channel($bg-color, "blue") * (1 - $alpha),
25
+ $alpha
26
+ );
27
+
28
+ @if $r < 0 or $r > 255 or $g < 0 or $g > 255 or $b < 0 or $b > 255 {
29
+ @error "Cannot reproduce #{$target-color} on #{$bg-color} with alpha #{$alpha}. Try a higher alpha.";
30
+ }
31
+
32
+ @return rgba(round($r), round($g), round($b), $alpha);
33
+ }
@@ -19,9 +19,9 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
19
19
  // See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
20
20
  @function luminance($color) {
21
21
  $rgb: (
22
- "r": color.channel($color, "red"),
23
- "g": color.channel($color, "green"),
24
- "b": color.channel($color, "blue")
22
+ "r": color.channel($color, "red", rgb),
23
+ "g": color.channel($color, "green", rgb),
24
+ "b": color.channel($color, "blue", rgb)
25
25
  );
26
26
 
27
27
  @each $name, $value in $rgb {
@@ -6,6 +6,7 @@
6
6
  .sidebar-narrow {
7
7
  // scss-docs-start sidebar-narrow-css-vars
8
8
  --#{$prefix}sidebar-narrow-width: #{$sidebar-narrow-width};
9
+ --#{$prefix}sidebar-padding-x: #{$sidebar-narrow-padding-x};
9
10
  // scss-docs-end sidebar-narrow-css-vars
10
11
 
11
12
  @include media-breakpoint-up($mobile-breakpoint) {
@@ -14,18 +15,9 @@
14
15
  padding-bottom: var(--#{$prefix}sidebar-toggler-height);
15
16
  overflow: visible;
16
17
 
17
- .sidebar-brand-full {
18
- display: none;
19
- }
20
-
21
- .sidebar-brand-narrow {
22
- display: block;
23
- }
24
-
25
18
  .sidebar-header {
26
19
  justify-content: center;
27
- padding-right: 0;
28
- padding-left: 0;
20
+ padding-inline: 0;
29
21
  }
30
22
 
31
23
  .sidebar-nav {
@@ -41,11 +33,9 @@
41
33
  flex: 0 0 calc(var(--#{$prefix}sidebar-narrow-width) - (var(--#{$prefix}sidebar-nav-padding-x) * 2) - (var(--#{$prefix}sidebar-nav-link-padding-x) * 2)); // stylelint-disable-line function-disallowed-list
42
34
  }
43
35
 
44
- .d-narrow-none,
45
36
  .nav-label,
46
37
  .nav-title,
47
38
  .nav-group-items,
48
- .nav-group.show .nav-group-items,
49
39
  .sidebar-form {
50
40
  height: 0 !important; // stylelint-disable-line declaration-no-important
51
41
  padding: 0 !important; // stylelint-disable-line declaration-no-important
@@ -54,6 +44,12 @@
54
44
  opacity: 0;
55
45
  }
56
46
 
47
+ .d-narrow-none, // deprecated, TODO: remove in v6.0.0
48
+ .sidebar-brand-full, // deprecated, TODO: remove in v6.0.0
49
+ .d-sidebar-narrow-none {
50
+ display: none !important // stylelint-disable-line declaration-no-important
51
+ }
52
+
57
53
  .sidebar-toggler::before {
58
54
  @include ltr-rtl("transform", rotate(-180deg), null, rotate(0deg));
59
55
  }
@@ -69,6 +65,10 @@
69
65
  --#{$prefix}sidebar-narrow-unfoldable-box-shadow: #{$sidebar-narrow-unfoldable-box-shadow};
70
66
  // scss-docs-end sidebar-narrow-unfoldable-css-vars
71
67
 
68
+ .d-sidebar-narrow-unfoldable-none {
69
+ display: none !important // stylelint-disable-line declaration-no-important
70
+ }
71
+
72
72
  @extend .sidebar-fixed;
73
73
 
74
74
  &:not(:hover) {
@@ -77,7 +77,6 @@
77
77
 
78
78
  &:hover {
79
79
  box-shadow: var(--#{$prefix}sidebar-narrow-unfoldable-box-shadow);
80
- box-shadow: $box-shadow;
81
80
 
82
81
  .sidebar-toggler::before {
83
82
  @include ltr-rtl("transform", rotate(-180deg), null, rotate(0deg));
@@ -100,3 +99,12 @@
100
99
  }
101
100
  }
102
101
  }
102
+
103
+ .sidebar:not(.sidebar-narrow) .sidebar-brand-narrow, // deprecated, TODO: remove in v6.0.0
104
+ .sidebar:not(.sidebar-narrow) .d-sidebar-narrow {
105
+ display: none !important; // stylelint-disable-line declaration-no-important
106
+ }
107
+
108
+ .sidebar:not(.sidebar-narrow-unfoldable) .d-sidebar-narrow-unfoldable {
109
+ display: none !important; // stylelint-disable-line declaration-no-important
110
+ }
@@ -54,8 +54,6 @@
54
54
  --#{$prefix}sidebar-nav-group-border-width: #{$sidebar-nav-group-border-width};
55
55
  --#{$prefix}sidebar-nav-group-border-radius: #{$sidebar-nav-group-border-radius};
56
56
  --#{$prefix}sidebar-nav-group-border-color: #{$sidebar-nav-group-border-color};
57
- --#{$prefix}sidebar-nav-group-items-padding-y: #{$sidebar-nav-group-items-padding-y};
58
- --#{$prefix}sidebar-nav-group-items-padding-x: #{$sidebar-nav-group-items-padding-x};
59
57
  --#{$prefix}sidebar-nav-group-indicator-color: #{$sidebar-nav-group-indicator-color};
60
58
  --#{$prefix}sidebar-nav-group-indicator-icon: #{escape-svg($sidebar-nav-group-indicator-icon)};
61
59
  --#{$prefix}sidebar-nav-group-indicator-hover-color: #{$sidebar-nav-group-indicator-hover-color};
@@ -75,7 +73,9 @@
75
73
 
76
74
  .nav-item + .nav-item,
77
75
  .nav-item + .nav-group,
78
- .nav-group + .nav-item {
76
+ .nav-group + .nav-item,
77
+ .nav-group + .nav-group,
78
+ .nav-group-items {
79
79
  margin-top: var(--#{$prefix}sidebar-nav-gap);
80
80
  }
81
81
 
@@ -111,8 +111,8 @@
111
111
  }
112
112
 
113
113
  .nav-icon-bullet {
114
- background: var(--#{$prefix}sidebar-link-active-icon-bullet-bg);
115
- border-color: var(--#{$prefix}sidebar-link-active-icon-bullet-border-color);
114
+ background: var(--#{$prefix}sidebar-nav-link-active-icon-bullet-bg);
115
+ border-color: var(--#{$prefix}sidebar-nav-link-active-icon-bullet-border-color);
116
116
  }
117
117
  }
118
118
 
@@ -127,26 +127,8 @@
127
127
  }
128
128
 
129
129
  .nav-icon-bullet {
130
- background: var(--#{$prefix}sidebar-link-disabled-icon-bullet-bg);
131
- border-color: var(--#{$prefix}sidebar-link-disabled-icon-bullet-border-color);
132
- }
133
-
134
- &:hover {
135
- color: var(--#{$prefix}sidebar-nav-link-disabled-color);
136
-
137
- .nav-icon {
138
- color: var(--#{$prefix}sidebar-nav-link-disabled-icon-color);
139
- }
140
-
141
- .nav-icon-bullet {
142
- background: var(--#{$prefix}sidebar-link-disabled-icon-bullet-bg);
143
- border-color: var(--#{$prefix}sidebar-link-disabled-icon-bullet-border-color);
144
- }
145
-
146
- &.nav-dropdown-toggle::after {
147
- background-color: var(--#{$prefix}sidebar-nav-group-indicator-hover-color);
148
- mask-image: var(--#{$prefix}sidebar-nav-group-indicator-hover-icon);
149
- }
130
+ background: var(--#{$prefix}sidebar-nav-link-disabled-icon-bullet-bg);
131
+ border-color: var(--#{$prefix}sidebar-nav-link-disabled-icon-bullet-border-color);
150
132
  }
151
133
  }
152
134
 
@@ -161,13 +143,8 @@
161
143
  }
162
144
 
163
145
  .nav-icon-bullet {
164
- background: var(--#{$prefix}sidebar-link-hover-icon-bullet-bg);
165
- border-color: var(--#{$prefix}sidebar-link-hover-icon-bullet-border-color);
166
- }
167
-
168
- &.nav-group-toggle::after {
169
- background-color: var(--#{$prefix}sidebar-nav-group-indicator-hover-color);
170
- mask-image: var(--#{$prefix}sidebar-nav-group-indicator-hover-icon);
146
+ background: var(--#{$prefix}sidebar-nav-link-hover-icon-bullet-bg);
147
+ border-color: var(--#{$prefix}sidebar-nav-link-hover-icon-bullet-border-color);
171
148
  }
172
149
  }
173
150
  }
@@ -203,19 +180,15 @@
203
180
  }
204
181
 
205
182
  .nav-group {
206
- position: relative;
207
183
  border: var(--#{$prefix}sidebar-nav-group-border-width) solid var(--#{$prefix}sidebar-nav-group-border-color);
208
184
  @include border-radius(var(--#{$prefix}sidebar-nav-group-border-radius));
209
185
  @include transition($sidebar-nav-group-transition);
210
186
 
211
- .nav-group-items {
212
- padding: var(--#{$prefix}sidebar-nav-group-items-padding-y) var(--#{$prefix}sidebar-nav-group-items-padding-x);
213
- overflow: hidden;
214
- @include transition($sidebar-nav-group-items-transition);
215
- }
216
-
217
- &:not(.show) .nav-group-items {
218
- display: none;
187
+ &:not(.show) {
188
+ .nav-group-items,
189
+ .nav-group-toggle-indicator .show {
190
+ display: none;
191
+ }
219
192
  }
220
193
 
221
194
  &.show {
@@ -225,12 +198,13 @@
225
198
  color: var(--#{$prefix}sidebar-nav-group-toggle-show-color);
226
199
  }
227
200
 
228
- > .nav-group-toggle::after {
201
+ > .nav-group-toggle:not(:has(.nav-group-toggle-indicator))::after {
229
202
  transform: rotate(180deg);
230
203
  }
231
204
 
232
- + .show {
233
- margin-top: var(--#{$prefix}sidebar-nav-gap);
205
+ // stylelint-disable-next-line selector-max-class, selector-max-compound-selectors
206
+ > .nav-group-toggle .nav-group-toggle-indicator .hide {
207
+ display: none;
234
208
  }
235
209
  }
236
210
  }
@@ -238,7 +212,7 @@
238
212
  .nav-group-toggle {
239
213
  cursor: pointer;
240
214
 
241
- &::after {
215
+ &:not(:has(.nav-group-toggle-indicator))::after {
242
216
  display: block;
243
217
  flex: 0 12px;
244
218
  height: 12px;
@@ -248,11 +222,25 @@
248
222
  mask-image: var(--#{$prefix}sidebar-nav-group-indicator-icon);
249
223
  @include transition($sidebar-nav-group-indicator-transition);
250
224
  }
225
+
226
+ @media (hover: hover), (-ms-high-contrast: none) {
227
+ &:hover:not(:has(.nav-group-toggle-indicator))::after {
228
+ background-color: var(--#{$prefix}sidebar-nav-group-indicator-hover-color);
229
+ mask-image: var(--#{$prefix}sidebar-nav-group-indicator-hover-icon);
230
+ }
231
+ }
232
+ }
233
+
234
+ .nav-group-toggle-indicator {
235
+ margin-inline-start: auto;
236
+ color: var(--#{$prefix}sidebar-nav-group-indicator-color);
251
237
  }
252
238
 
253
239
  .nav-group-items {
254
240
  padding: 0;
241
+ overflow: hidden;
255
242
  list-style: none;
243
+ @include transition($sidebar-nav-group-items-transition);
256
244
 
257
245
  .nav-link {
258
246
  padding-inline-start: calc(var(--#{$prefix}sidebar-nav-link-padding-x) + var(--#{$prefix}sidebar-nav-link-icon-width) + var(--#{$prefix}sidebar-nav-link-icon-margin)); // stylelint-disable-line function-disallowed-list
@@ -269,4 +257,36 @@
269
257
  --#{$prefix}sidebar-nav-link-padding-y: #{$sidebar-compact-nav-link-padding-y};
270
258
  }
271
259
  }
260
+
261
+ &.sidebar-nav-tree {
262
+ // scss-docs-start sidebar-nav-tree-css-vars
263
+ --#{$prefix}sidebar-nav-tree-group-border-color: #{$sidebar-nav-tree-group-border-color};
264
+ --#{$prefix}sidebar-nav-link-icon-bullet-bg: #{$sidebar-nav-tree-link-icon-bullet-bg};
265
+ --#{$prefix}sidebar-nav-link-hover-icon-bullet-bg: #{$sidebar-nav-tree-link-hover-icon-bullet-bg};
266
+ --#{$prefix}sidebar-nav-link-active-icon-bullet-bg: #{$sidebar-nav-tree-link-active-icon-bullet-bg};
267
+ // scss-docs-end sidebar-nav-tree-css-vars
268
+
269
+ .nav-group .nav-group-items {
270
+ $indent: calc((var(--#{$prefix}sidebar-nav-link-padding-x) + var(--#{$prefix}sidebar-nav-link-icon-width) + var(--#{$prefix}sidebar-nav-link-icon-margin)) / 2); // stylelint-disable-line function-disallowed-list
271
+
272
+ position: relative;
273
+ z-index: 0;
274
+ padding-inline-start: $indent;
275
+
276
+ &::before {
277
+ position: absolute;
278
+ inset-inline-start: calc($indent + 1.5px); // stylelint-disable-line function-disallowed-list
279
+ top: 0;
280
+ z-index: -1;
281
+ height: 100%;
282
+ content: "";
283
+ border-inline-start: 1px solid var(--#{$prefix}sidebar-nav-tree-group-border-color);
284
+ }
285
+
286
+ // stylelint-disable-next-line selector-max-class
287
+ .nav-link {
288
+ margin-inline-start: calc(-1 * $indent); // stylelint-disable-line function-disallowed-list
289
+ }
290
+ }
291
+ }
272
292
  }
@@ -32,7 +32,7 @@
32
32
  box-shadow: none;
33
33
  @include transition($sidebar-transition);
34
34
 
35
- &:not(.sidebar-end){
35
+ &:not(.sidebar-end) {
36
36
  margin-inline-start: 0;
37
37
  }
38
38
 
@@ -152,10 +152,6 @@
152
152
  .sidebar-brand {
153
153
  color: var(--#{$prefix}sidebar-brand-color);
154
154
  white-space: nowrap;
155
-
156
- .sidebar-brand-narrow {
157
- display: none;
158
- }
159
155
  }
160
156
 
161
157
  .sidebar-header {
@@ -229,7 +225,6 @@
229
225
  }
230
226
 
231
227
  &:focus {
232
- position: relative;
233
228
  outline: 0;
234
229
  box-shadow: var(--#{$prefix}sidebar-toggler-focus-shadow);
235
230