paraqeet 1.1.0 → 2.0.4

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +1 -1
  4. data/_includes/icon.html +10 -19
  5. data/_sass/_highlight.scss +85 -64
  6. data/_sass/bootstrap/_accordion.scss +10 -15
  7. data/_sass/bootstrap/_button-group.scss +8 -3
  8. data/_sass/bootstrap/_buttons.scss +9 -0
  9. data/_sass/bootstrap/_card.scss +1 -2
  10. data/_sass/bootstrap/_carousel.scss +17 -35
  11. data/_sass/bootstrap/_close.scss +9 -6
  12. data/_sass/bootstrap/_functions.scss +1 -1
  13. data/_sass/bootstrap/_list-group.scss +27 -25
  14. data/_sass/bootstrap/_modal.scss +6 -3
  15. data/_sass/bootstrap/_nav.scss +1 -1
  16. data/_sass/bootstrap/_navbar.scss +1 -1
  17. data/_sass/bootstrap/_offcanvas.scss +2 -1
  18. data/_sass/bootstrap/_pagination.scss +1 -1
  19. data/_sass/bootstrap/_progress.scss +1 -1
  20. data/_sass/bootstrap/_reboot.scss +1 -1
  21. data/_sass/bootstrap/_tables.scss +1 -1
  22. data/_sass/bootstrap/_type.scss +1 -1
  23. data/_sass/bootstrap/_variables-dark.scss +17 -2
  24. data/_sass/bootstrap/_variables.scss +21 -15
  25. data/_sass/bootstrap/forms/_floating-labels.scss +18 -16
  26. data/_sass/bootstrap/forms/_form-check.scss +1 -1
  27. data/_sass/bootstrap/forms/_input-group.scss +1 -1
  28. data/_sass/bootstrap/mixins/_banner.scss +2 -2
  29. data/_sass/bootstrap/mixins/_forms.scss +12 -2
  30. data/_sass/bootstrap/mixins/_grid.scss +2 -2
  31. data/_sass/bootstrap/mixins/_visually-hidden.scss +1 -1
  32. data/_sass/bootstrap/tests/mixins/_auto-import-of-variables-dark.test.scss +7 -0
  33. data/_sass/bootstrap/tests/mixins/_utilities.test.scss +1 -1
  34. data/assets/js/bootstrap.bundle.js +17 -20
  35. data/assets/js/bootstrap.bundle.js.map +1 -1
  36. data/assets/js/bootstrap.bundle.min.js +3 -3
  37. data/assets/js/bootstrap.bundle.min.js.map +1 -1
  38. data/assets/js/bootstrap.esm.js +17 -18
  39. data/assets/js/bootstrap.esm.js.map +1 -1
  40. data/assets/js/bootstrap.esm.min.js +3 -3
  41. data/assets/js/bootstrap.esm.min.js.map +1 -1
  42. data/assets/js/bootstrap.js +17 -18
  43. data/assets/js/bootstrap.js.map +1 -1
  44. data/assets/js/bootstrap.min.js +3 -3
  45. data/assets/js/bootstrap.min.js.map +1 -1
  46. metadata +6 -5
@@ -123,14 +123,15 @@
123
123
  .offcanvas-header {
124
124
  display: flex;
125
125
  align-items: center;
126
- justify-content: space-between;
127
126
  padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
128
127
 
129
128
  .btn-close {
130
129
  padding: calc(var(--#{$prefix}offcanvas-padding-y) * .5) calc(var(--#{$prefix}offcanvas-padding-x) * .5);
130
+ // Split properties to avoid invalid calc() function if value is 0
131
131
  margin-top: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
132
132
  margin-right: calc(-.5 * var(--#{$prefix}offcanvas-padding-x));
133
133
  margin-bottom: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
134
+ margin-left: auto;
134
135
  }
135
136
  }
136
137
 
@@ -75,7 +75,7 @@
75
75
  margin-left: $pagination-margin-start;
76
76
  }
77
77
 
78
- @if $pagination-margin-start == calc(#{$pagination-border-width} * -1) {
78
+ @if $pagination-margin-start == calc(-1 * #{$pagination-border-width}) {
79
79
  &:first-child {
80
80
  .page-link {
81
81
  @include border-start-radius(var(--#{$prefix}pagination-border-radius));
@@ -3,7 +3,7 @@
3
3
  // scss-docs-start progress-keyframes
4
4
  @if $enable-transitions {
5
5
  @keyframes progress-bar-stripes {
6
- 0% { background-position-x: $progress-height; }
6
+ 0% { background-position-x: var(--#{$prefix}progress-height); }
7
7
  }
8
8
  }
9
9
  // scss-docs-end progress-keyframes
@@ -499,9 +499,9 @@ legend {
499
499
  width: 100%;
500
500
  padding: 0;
501
501
  margin-bottom: $legend-margin-bottom;
502
- @include font-size($legend-font-size);
503
502
  font-weight: $legend-font-weight;
504
503
  line-height: inherit;
504
+ @include font-size($legend-font-size);
505
505
 
506
506
  + * {
507
507
  clear: left; // 2
@@ -79,7 +79,7 @@
79
79
  //
80
80
  // When borders are added on all sides of the cells, the corners can render odd when
81
81
  // these borders do not have the same color or if they are semi-transparent.
82
- // Therefor we add top and border bottoms to the `tr`s and left and right borders
82
+ // Therefore we add top and border bottoms to the `tr`s and left and right borders
83
83
  // to the `td`s or `th`s
84
84
 
85
85
  .table-bordered {
@@ -34,11 +34,11 @@
34
34
  // Type display classes
35
35
  @each $display, $font-size in $display-font-sizes {
36
36
  .display-#{$display} {
37
- @include font-size($font-size);
38
37
  font-family: $display-font-family;
39
38
  font-style: $display-font-style;
40
39
  font-weight: $display-font-weight;
41
40
  line-height: $display-line-height;
41
+ @include font-size($font-size);
42
42
  }
43
43
  }
44
44
 
@@ -82,6 +82,21 @@ $form-invalid-border-color-dark: $red-300 !default;
82
82
  $accordion-icon-color-dark: $primary-text-emphasis-dark !default;
83
83
  $accordion-icon-active-color-dark: $primary-text-emphasis-dark !default;
84
84
 
85
- $accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
86
- $accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
85
+ $accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
86
+ $accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
87
87
  // scss-docs-end sass-dark-mode-vars
88
+
89
+
90
+ //
91
+ // Carousel
92
+ //
93
+
94
+ $carousel-indicator-active-bg-dark: $carousel-dark-indicator-active-bg !default;
95
+ $carousel-caption-color-dark: $carousel-dark-caption-color !default;
96
+ $carousel-control-icon-filter-dark: $carousel-dark-control-icon-filter !default;
97
+
98
+ //
99
+ // Close button
100
+ //
101
+
102
+ $btn-close-filter-dark: $btn-close-white-filter !default;
@@ -67,8 +67,8 @@ $colors: (
67
67
  ) !default;
68
68
  // scss-docs-end colors-map
69
69
 
70
- // The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.
71
- // See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast
70
+ // The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.2 are 3, 4.5 and 7.
71
+ // See https://www.w3.org/TR/WCAG/#contrast-minimum
72
72
  $min-contrast-ratio: 4.5 !default;
73
73
 
74
74
  // Customize the light and dark text colors for use in our color contrast function.
@@ -1091,7 +1091,7 @@ $form-feedback-valid-color: $success !default;
1091
1091
  $form-feedback-invalid-color: $danger !default;
1092
1092
 
1093
1093
  $form-feedback-icon-valid-color: $form-feedback-valid-color !default;
1094
- $form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>") !default;
1094
+ $form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/></svg>") !default;
1095
1095
  $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
1096
1096
  $form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default;
1097
1097
  // scss-docs-end form-feedback-variables
@@ -1302,7 +1302,7 @@ $pagination-color: var(--#{$prefix}link-color) !default;
1302
1302
  $pagination-bg: var(--#{$prefix}body-bg) !default;
1303
1303
  $pagination-border-radius: var(--#{$prefix}border-radius) !default;
1304
1304
  $pagination-border-width: var(--#{$prefix}border-width) !default;
1305
- $pagination-margin-start: calc(#{$pagination-border-width} * -1) !default; // stylelint-disable-line function-disallowed-list
1305
+ $pagination-margin-start: calc(-1 * #{$pagination-border-width}) !default; // stylelint-disable-line function-disallowed-list
1306
1306
  $pagination-border-color: var(--#{$prefix}border-color) !default;
1307
1307
 
1308
1308
  $pagination-focus-color: var(--#{$prefix}link-hover-color) !default;
@@ -1383,7 +1383,9 @@ $accordion-transition: $btn-transition, border-radius .15s ea
1383
1383
  $accordion-button-active-bg: var(--#{$prefix}primary-bg-subtle) !default;
1384
1384
  $accordion-button-active-color: var(--#{$prefix}primary-text-emphasis) !default;
1385
1385
 
1386
- $accordion-button-focus-border-color: $input-focus-border-color !default;
1386
+ // fusv-disable
1387
+ $accordion-button-focus-border-color: $input-focus-border-color !default; // Deprecated in v5.3.3
1388
+ // fusv-enable
1387
1389
  $accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;
1388
1390
 
1389
1391
  $accordion-icon-width: 1.25rem !default;
@@ -1392,8 +1394,8 @@ $accordion-icon-active-color: $primary-text-emphasis !default;
1392
1394
  $accordion-icon-transition: transform .2s ease-in-out !default;
1393
1395
  $accordion-icon-transform: rotate(-180deg) !default;
1394
1396
 
1395
- $accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
1396
- $accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
1397
+ $accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-color}' stroke-linecap='round' stroke-linejoin='round'><path d='m2 5 6 6 6-6'/></svg>") !default;
1398
+ $accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-active-color}' stroke-linecap='round' stroke-linejoin='round'><path d='m2 5 6 6 6-6'/></svg>") !default;
1397
1399
  // scss-docs-end accordion-variables
1398
1400
 
1399
1401
  // Tooltips
@@ -1505,7 +1507,7 @@ $modal-dialog-margin-y-sm-up: 1.75rem !default;
1505
1507
 
1506
1508
  $modal-title-line-height: $line-height-base !default;
1507
1509
 
1508
- $modal-content-color: null !default;
1510
+ $modal-content-color: var(--#{$prefix}body-color) !default;
1509
1511
  $modal-content-bg: var(--#{$prefix}body-bg) !default;
1510
1512
  $modal-content-border-color: var(--#{$prefix}border-color-translucent) !default;
1511
1513
  $modal-content-border-width: var(--#{$prefix}border-width) !default;
@@ -1650,6 +1652,7 @@ $carousel-control-width: 15% !default;
1650
1652
  $carousel-control-opacity: .5 !default;
1651
1653
  $carousel-control-hover-opacity: .9 !default;
1652
1654
  $carousel-control-transition: opacity .15s ease !default;
1655
+ $carousel-control-icon-filter: null !default;
1653
1656
 
1654
1657
  $carousel-indicator-width: 30px !default;
1655
1658
  $carousel-indicator-height: 3px !default;
@@ -1667,17 +1670,17 @@ $carousel-caption-spacer: 1.25rem !default;
1667
1670
 
1668
1671
  $carousel-control-icon-width: 2rem !default;
1669
1672
 
1670
- $carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>") !default;
1671
- $carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>") !default;
1673
+ $carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>") !default;
1674
+ $carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>") !default;
1672
1675
 
1673
1676
  $carousel-transition-duration: .6s !default;
1674
1677
  $carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
1675
1678
  // scss-docs-end carousel-variables
1676
1679
 
1677
1680
  // scss-docs-start carousel-dark-variables
1678
- $carousel-dark-indicator-active-bg: $black !default;
1679
- $carousel-dark-caption-color: $black !default;
1680
- $carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;
1681
+ $carousel-dark-indicator-active-bg: $black !default; // Deprecated in v5.3.4
1682
+ $carousel-dark-caption-color: $black !default; // Deprecated in v5.3.4
1683
+ $carousel-dark-control-icon-filter: invert(1) grayscale(100) !default; // Deprecated in v5.3.4
1681
1684
  // scss-docs-end carousel-dark-variables
1682
1685
 
1683
1686
 
@@ -1704,13 +1707,14 @@ $btn-close-height: $btn-close-width !default;
1704
1707
  $btn-close-padding-x: .25em !default;
1705
1708
  $btn-close-padding-y: $btn-close-padding-x !default;
1706
1709
  $btn-close-color: $black !default;
1707
- $btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
1710
+ $btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/></svg>") !default;
1708
1711
  $btn-close-focus-shadow: $focus-ring-box-shadow !default;
1709
1712
  $btn-close-opacity: .5 !default;
1710
1713
  $btn-close-hover-opacity: .75 !default;
1711
1714
  $btn-close-focus-opacity: 1 !default;
1712
1715
  $btn-close-disabled-opacity: .25 !default;
1713
- $btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;
1716
+ $btn-close-filter: null !default;
1717
+ $btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default; // Deprecated in v5.3.4
1714
1718
  // scss-docs-end close-variables
1715
1719
 
1716
1720
 
@@ -1745,3 +1749,5 @@ $kbd-bg: var(--#{$prefix}body-color) !default;
1745
1749
  $nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6
1746
1750
 
1747
1751
  $pre-color: null !default;
1752
+
1753
+ @import "variables-dark"; // TODO: can be removed safely in v6, only here to avoid breaking changes in v5.3
@@ -14,9 +14,11 @@
14
14
  top: 0;
15
15
  left: 0;
16
16
  z-index: 2;
17
+ max-width: 100%;
17
18
  height: 100%; // allow textareas
18
19
  padding: $form-floating-padding-y $form-floating-padding-x;
19
20
  overflow: hidden;
21
+ color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
20
22
  text-align: start;
21
23
  text-overflow: ellipsis;
22
24
  white-space: nowrap;
@@ -49,6 +51,7 @@
49
51
  > .form-select {
50
52
  padding-top: $form-floating-input-padding-t;
51
53
  padding-bottom: $form-floating-input-padding-b;
54
+ padding-left: $form-floating-padding-x;
52
55
  }
53
56
 
54
57
  > .form-control:focus,
@@ -56,27 +59,30 @@
56
59
  > .form-control-plaintext,
57
60
  > .form-select {
58
61
  ~ label {
59
- color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
60
62
  transform: $form-floating-label-transform;
61
-
62
- &::after {
63
- position: absolute;
64
- inset: $form-floating-padding-y ($form-floating-padding-x * .5);
65
- z-index: -1;
66
- height: $form-floating-label-height;
67
- content: "";
68
- background-color: $input-bg;
69
- @include border-radius($input-border-radius);
70
- }
71
63
  }
72
64
  }
73
65
  // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
74
66
  > .form-control:-webkit-autofill {
75
67
  ~ label {
76
- color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
77
68
  transform: $form-floating-label-transform;
78
69
  }
79
70
  }
71
+ > textarea:focus,
72
+ > textarea:not(:placeholder-shown) {
73
+ ~ label::after {
74
+ position: absolute;
75
+ inset: $form-floating-padding-y ($form-floating-padding-x * .5);
76
+ z-index: -1;
77
+ height: $form-floating-label-height;
78
+ content: "";
79
+ background-color: $input-bg;
80
+ @include border-radius($input-border-radius);
81
+ }
82
+ }
83
+ > textarea:disabled ~ label::after {
84
+ background-color: $input-disabled-bg;
85
+ }
80
86
 
81
87
  > .form-control-plaintext {
82
88
  ~ label {
@@ -87,9 +93,5 @@
87
93
  > :disabled ~ label,
88
94
  > .form-control:disabled ~ label { // Required for `.form-control`s because of specificity
89
95
  color: $form-floating-label-disabled-color;
90
-
91
- &::after {
92
- background-color: $input-disabled-bg;
93
- }
94
96
  }
95
97
  }
@@ -131,7 +131,7 @@
131
131
  margin-left: $form-switch-padding-start * -1;
132
132
  background-image: var(--#{$prefix}form-switch-bg);
133
133
  background-position: left center;
134
- @include border-radius($form-switch-border-radius);
134
+ @include border-radius($form-switch-border-radius, 0);
135
135
  @include transition($form-switch-transition);
136
136
 
137
137
  &:focus {
@@ -121,7 +121,7 @@
121
121
  }
122
122
 
123
123
  > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
124
- margin-left: calc(#{$input-border-width} * -1); // stylelint-disable-line function-disallowed-list
124
+ margin-left: calc(-1 * #{$input-border-width}); // stylelint-disable-line function-disallowed-list
125
125
  @include border-start-radius(0);
126
126
  }
127
127
 
@@ -1,7 +1,7 @@
1
1
  @mixin bsBanner($file) {
2
2
  /*!
3
- * Bootstrap #{$file} v5.3.2 (https://getbootstrap.com/)
4
- * Copyright 2011-2023 The Bootstrap Authors
3
+ * Bootstrap #{$file} v5.3.5 (https://getbootstrap.com/)
4
+ * Copyright 2011-2025 The Bootstrap Authors
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
  }
@@ -69,7 +69,12 @@
69
69
 
70
70
  &:focus {
71
71
  border-color: $border-color;
72
- box-shadow: $focus-box-shadow;
72
+ @if $enable-shadows {
73
+ @include box-shadow($input-box-shadow, $focus-box-shadow);
74
+ } @else {
75
+ // Avoid using mixin so we can pass custom focus shadow properly
76
+ box-shadow: $focus-box-shadow;
77
+ }
73
78
  }
74
79
  }
75
80
  }
@@ -100,7 +105,12 @@
100
105
 
101
106
  &:focus {
102
107
  border-color: $border-color;
103
- box-shadow: $focus-box-shadow;
108
+ @if $enable-shadows {
109
+ @include box-shadow($form-select-box-shadow, $focus-box-shadow);
110
+ } @else {
111
+ // Avoid using mixin so we can pass custom focus shadow properly
112
+ box-shadow: $focus-box-shadow;
113
+ }
104
114
  }
105
115
  }
106
116
  }
@@ -72,7 +72,7 @@
72
72
  @include media-breakpoint-up($breakpoint, $breakpoints) {
73
73
  // Provide basic `.col-{bp}` classes for equal-width flexbox columns
74
74
  .col#{$infix} {
75
- flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
75
+ flex: 1 0 0;
76
76
  }
77
77
 
78
78
  .row-cols#{$infix}-auto > * {
@@ -138,7 +138,7 @@
138
138
  }
139
139
  }
140
140
 
141
- // Start with `1` because `0` is and invalid value.
141
+ // Start with `1` because `0` is an invalid value.
142
142
  // Ends with `$columns - 1` because offsetting by the width of an entire row isn't possible.
143
143
  @for $i from 1 through ($columns - 1) {
144
144
  .g-start#{$infix}-#{$i} {
@@ -24,7 +24,7 @@
24
24
  // Use to only display content when it's focused, or one of its child elements is focused
25
25
  // (i.e. when focus is within the element/container that the class was applied to)
26
26
  //
27
- // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
27
+ // Useful for "Skip to main content" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html
28
28
 
29
29
  @mixin visually-hidden-focusable() {
30
30
  &:not(:focus):not(:focus-within) {
@@ -0,0 +1,7 @@
1
+ // TODO: this file can be removed safely in v6 when `@import "variables-dark"` will be removed at the end of _variables.scss
2
+
3
+ @import "../../functions";
4
+ @import "../../variables";
5
+ // Voluntarily not importing _variables-dark.scss
6
+ @import "../../maps";
7
+ @import "../../mixins";
@@ -258,7 +258,7 @@ $enable-important-utilities: false;
258
258
  .desaturated-color-blue {
259
259
  --bs-color-opacity: 1;
260
260
  // Sass compilation will put a leading zero so we want to keep that one
261
- // stylelint-disable-next-line stylistic/number-leading-zero
261
+ // stylelint-disable-next-line @stylistic/number-leading-zero
262
262
  --bs-color-saturation: 0.25;
263
263
  color: hsla(192deg, var(--bs-color-saturation), 0, var(--bs-color-opacity));
264
264
  }
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap v5.3.2 (https://getbootstrap.com/)
3
- * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap v5.3.5 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -205,12 +205,11 @@
205
205
  * @param {HTMLElement} element
206
206
  * @return void
207
207
  *
208
- * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
208
+ * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
209
209
  */
210
210
  const reflow = element => {
211
211
  element.offsetHeight; // eslint-disable-line no-unused-expressions
212
212
  };
213
-
214
213
  const getjQuery = () => {
215
214
  if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
216
215
  return window.jQuery;
@@ -251,7 +250,7 @@
251
250
  });
252
251
  };
253
252
  const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
254
- return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;
253
+ return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue;
255
254
  };
256
255
  const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
257
256
  if (!waitForTransition) {
@@ -573,7 +572,7 @@
573
572
  const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));
574
573
  for (const key of bsKeys) {
575
574
  let pureKey = key.replace(/^bs/, '');
576
- pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
575
+ pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1);
577
576
  attributes[pureKey] = normalizeData(element.dataset[key]);
578
577
  }
579
578
  return attributes;
@@ -648,7 +647,7 @@
648
647
  * Constants
649
648
  */
650
649
 
651
- const VERSION = '5.3.2';
650
+ const VERSION = '5.3.5';
652
651
 
653
652
  /**
654
653
  * Class definition
@@ -729,9 +728,9 @@
729
728
  if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {
730
729
  hrefAttribute = `#${hrefAttribute.split('#')[1]}`;
731
730
  }
732
- selector = hrefAttribute && hrefAttribute !== '#' ? parseSelector(hrefAttribute.trim()) : null;
731
+ selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;
733
732
  }
734
- return selector;
733
+ return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;
735
734
  };
736
735
  const SelectorEngine = {
737
736
  find(selector, element = document.documentElement) {
@@ -2667,7 +2666,6 @@
2667
2666
  var popperOffsets = computeOffsets({
2668
2667
  reference: referenceClientRect,
2669
2668
  element: popperRect,
2670
- strategy: 'absolute',
2671
2669
  placement: placement
2672
2670
  });
2673
2671
  var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
@@ -2995,7 +2993,6 @@
2995
2993
  state.modifiersData[name] = computeOffsets({
2996
2994
  reference: state.rects.reference,
2997
2995
  element: state.rects.popper,
2998
- strategy: 'absolute',
2999
2996
  placement: state.placement
3000
2997
  });
3001
2998
  } // eslint-disable-next-line import/no-unused-modules
@@ -3702,7 +3699,7 @@
3702
3699
  }
3703
3700
  _createPopper() {
3704
3701
  if (typeof Popper === 'undefined') {
3705
- throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
3702
+ throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org/docs/v2/)');
3706
3703
  }
3707
3704
  let referenceElement = this._element;
3708
3705
  if (this._config.reference === 'parent') {
@@ -3781,7 +3778,7 @@
3781
3778
  }
3782
3779
  return {
3783
3780
  ...defaultBsPopperConfig,
3784
- ...execute(this._config.popperConfig, [defaultBsPopperConfig])
3781
+ ...execute(this._config.popperConfig, [undefined, defaultBsPopperConfig])
3785
3782
  };
3786
3783
  }
3787
3784
  _selectMenuItem({
@@ -3916,7 +3913,6 @@
3916
3913
  // if false, we use the backdrop helper without adding any element to the dom
3917
3914
  rootElement: 'body' // give the choice to place backdrop under different elements
3918
3915
  };
3919
-
3920
3916
  const DefaultType$8 = {
3921
3917
  className: 'string',
3922
3918
  clickCallback: '(function|null)',
@@ -4041,7 +4037,6 @@
4041
4037
  autofocus: true,
4042
4038
  trapElement: null // The element to trap focus inside of
4043
4039
  };
4044
-
4045
4040
  const DefaultType$7 = {
4046
4041
  autofocus: 'boolean',
4047
4042
  trapElement: 'element'
@@ -4768,7 +4763,10 @@
4768
4763
  br: [],
4769
4764
  col: [],
4770
4765
  code: [],
4766
+ dd: [],
4771
4767
  div: [],
4768
+ dl: [],
4769
+ dt: [],
4772
4770
  em: [],
4773
4771
  hr: [],
4774
4772
  h1: [],
@@ -4967,7 +4965,7 @@
4967
4965
  return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
4968
4966
  }
4969
4967
  _resolvePossibleFunction(arg) {
4970
- return execute(arg, [this]);
4968
+ return execute(arg, [undefined, this]);
4971
4969
  }
4972
4970
  _putElementInTemplate(element, templateElement) {
4973
4971
  if (this._config.html) {
@@ -5066,7 +5064,7 @@
5066
5064
  class Tooltip extends BaseComponent {
5067
5065
  constructor(element, config) {
5068
5066
  if (typeof Popper === 'undefined') {
5069
- throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
5067
+ throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org/docs/v2/)');
5070
5068
  }
5071
5069
  super(element, config);
5072
5070
 
@@ -5112,7 +5110,6 @@
5112
5110
  if (!this._isEnabled) {
5113
5111
  return;
5114
5112
  }
5115
- this._activeTrigger.click = !this._activeTrigger.click;
5116
5113
  if (this._isShown()) {
5117
5114
  this._leave();
5118
5115
  return;
@@ -5300,7 +5297,7 @@
5300
5297
  return offset;
5301
5298
  }
5302
5299
  _resolvePossibleFunction(arg) {
5303
- return execute(arg, [this._element]);
5300
+ return execute(arg, [this._element, this._element]);
5304
5301
  }
5305
5302
  _getPopperConfig(attachment) {
5306
5303
  const defaultBsPopperConfig = {
@@ -5338,7 +5335,7 @@
5338
5335
  };
5339
5336
  return {
5340
5337
  ...defaultBsPopperConfig,
5341
- ...execute(this._config.popperConfig, [defaultBsPopperConfig])
5338
+ ...execute(this._config.popperConfig, [undefined, defaultBsPopperConfig])
5342
5339
  };
5343
5340
  }
5344
5341
  _setListeners() {