0
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-02-26 23:54:23 +01:00

Add v5.3.0-alpha3 docs (#38359)

This commit is contained in:
XhmikosR 2023-04-03 10:33:26 +03:00 committed by GitHub
parent d0ea9cc7e4
commit 5c8a44c142
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
196 changed files with 1987 additions and 1780 deletions

View File

@ -18,7 +18,7 @@
<link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<link href="/docs/5.3/assets/css/docs.css" rel="stylesheet"> <link href="/docs/5.3/assets/css/docs.css" rel="stylesheet">
@ -320,7 +320,7 @@
<ul class="list-unstyled small"> <ul class="list-unstyled small">
<li class="mb-2">Designed and built with all the love in the world by the <a href="/docs/5.3/about/team/">Bootstrap team</a> with the help of <a href="https://github.com/twbs/bootstrap/graphs/contributors">our contributors</a>.</li> <li class="mb-2">Designed and built with all the love in the world by the <a href="/docs/5.3/about/team/">Bootstrap team</a> with the help of <a href="https://github.com/twbs/bootstrap/graphs/contributors">our contributors</a>.</li>
<li class="mb-2">Code licensed <a href="https://github.com/twbs/bootstrap/blob/main/LICENSE" target="_blank" rel="license noopener">MIT</a>, docs <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank" rel="license noopener">CC BY 3.0</a>.</li> <li class="mb-2">Code licensed <a href="https://github.com/twbs/bootstrap/blob/main/LICENSE" target="_blank" rel="license noopener">MIT</a>, docs <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank" rel="license noopener">CC BY 3.0</a>.</li>
<li class="mb-2">Currently v5.3.0-alpha2.</li> <li class="mb-2">Currently v5.3.0-alpha3.</li>
</ul> </ul>
</div> </div>
<div class="col-6 col-lg-2 offset-lg-1 mb-3"> <div class="col-6 col-lg-2 offset-lg-1 mb-3">
@ -369,7 +369,7 @@
</div> </div>
</footer> </footer>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Grid v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap Grid v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -1141,6 +1141,10 @@
display: grid !important; display: grid !important;
} }
.d-inline-grid {
display: inline-grid !important;
}
.d-table { .d-table {
display: table !important; display: table !important;
} }
@ -1740,6 +1744,9 @@
.d-sm-grid { .d-sm-grid {
display: grid !important; display: grid !important;
} }
.d-sm-inline-grid {
display: inline-grid !important;
}
.d-sm-table { .d-sm-table {
display: table !important; display: table !important;
} }
@ -2200,6 +2207,9 @@
.d-md-grid { .d-md-grid {
display: grid !important; display: grid !important;
} }
.d-md-inline-grid {
display: inline-grid !important;
}
.d-md-table { .d-md-table {
display: table !important; display: table !important;
} }
@ -2660,6 +2670,9 @@
.d-lg-grid { .d-lg-grid {
display: grid !important; display: grid !important;
} }
.d-lg-inline-grid {
display: inline-grid !important;
}
.d-lg-table { .d-lg-table {
display: table !important; display: table !important;
} }
@ -3120,6 +3133,9 @@
.d-xl-grid { .d-xl-grid {
display: grid !important; display: grid !important;
} }
.d-xl-inline-grid {
display: inline-grid !important;
}
.d-xl-table { .d-xl-table {
display: table !important; display: table !important;
} }
@ -3580,6 +3596,9 @@
.d-xxl-grid { .d-xxl-grid {
display: grid !important; display: grid !important;
} }
.d-xxl-inline-grid {
display: inline-grid !important;
}
.d-xxl-table { .d-xxl-table {
display: table !important; display: table !important;
} }
@ -4040,6 +4059,9 @@
.d-print-grid { .d-print-grid {
display: grid !important; display: grid !important;
} }
.d-print-inline-grid {
display: inline-grid !important;
}
.d-print-table { .d-print-table {
display: table !important; display: table !important;
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Grid v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap Grid v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -1141,6 +1141,10 @@
display: grid !important; display: grid !important;
} }
.d-inline-grid {
display: inline-grid !important;
}
.d-table { .d-table {
display: table !important; display: table !important;
} }
@ -1740,6 +1744,9 @@
.d-sm-grid { .d-sm-grid {
display: grid !important; display: grid !important;
} }
.d-sm-inline-grid {
display: inline-grid !important;
}
.d-sm-table { .d-sm-table {
display: table !important; display: table !important;
} }
@ -2200,6 +2207,9 @@
.d-md-grid { .d-md-grid {
display: grid !important; display: grid !important;
} }
.d-md-inline-grid {
display: inline-grid !important;
}
.d-md-table { .d-md-table {
display: table !important; display: table !important;
} }
@ -2660,6 +2670,9 @@
.d-lg-grid { .d-lg-grid {
display: grid !important; display: grid !important;
} }
.d-lg-inline-grid {
display: inline-grid !important;
}
.d-lg-table { .d-lg-table {
display: table !important; display: table !important;
} }
@ -3120,6 +3133,9 @@
.d-xl-grid { .d-xl-grid {
display: grid !important; display: grid !important;
} }
.d-xl-inline-grid {
display: inline-grid !important;
}
.d-xl-table { .d-xl-table {
display: table !important; display: table !important;
} }
@ -3580,6 +3596,9 @@
.d-xxl-grid { .d-xxl-grid {
display: grid !important; display: grid !important;
} }
.d-xxl-inline-grid {
display: inline-grid !important;
}
.d-xxl-table { .d-xxl-table {
display: table !important; display: table !important;
} }
@ -4040,6 +4059,9 @@
.d-print-grid { .d-print-grid {
display: grid !important; display: grid !important;
} }
.d-print-inline-grid {
display: inline-grid !important;
}
.d-print-table { .d-print-table {
display: table !important; display: table !important;
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Reboot v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap Reboot v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Reboot v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap Reboot v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Utilities v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap Utilities v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -685,6 +685,10 @@
display: grid !important; display: grid !important;
} }
.d-inline-grid {
display: inline-grid !important;
}
.d-table { .d-table {
display: table !important; display: table !important;
} }
@ -2577,6 +2581,9 @@
.d-sm-grid { .d-sm-grid {
display: grid !important; display: grid !important;
} }
.d-sm-inline-grid {
display: inline-grid !important;
}
.d-sm-table { .d-sm-table {
display: table !important; display: table !important;
} }
@ -3135,6 +3142,9 @@
.d-md-grid { .d-md-grid {
display: grid !important; display: grid !important;
} }
.d-md-inline-grid {
display: inline-grid !important;
}
.d-md-table { .d-md-table {
display: table !important; display: table !important;
} }
@ -3693,6 +3703,9 @@
.d-lg-grid { .d-lg-grid {
display: grid !important; display: grid !important;
} }
.d-lg-inline-grid {
display: inline-grid !important;
}
.d-lg-table { .d-lg-table {
display: table !important; display: table !important;
} }
@ -4251,6 +4264,9 @@
.d-xl-grid { .d-xl-grid {
display: grid !important; display: grid !important;
} }
.d-xl-inline-grid {
display: inline-grid !important;
}
.d-xl-table { .d-xl-table {
display: table !important; display: table !important;
} }
@ -4809,6 +4825,9 @@
.d-xxl-grid { .d-xxl-grid {
display: grid !important; display: grid !important;
} }
.d-xxl-inline-grid {
display: inline-grid !important;
}
.d-xxl-table { .d-xxl-table {
display: table !important; display: table !important;
} }
@ -5352,6 +5371,9 @@
.d-print-grid { .d-print-grid {
display: grid !important; display: grid !important;
} }
.d-print-inline-grid {
display: inline-grid !important;
}
.d-print-table { .d-print-table {
display: table !important; display: table !important;
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Utilities v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap Utilities v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -685,6 +685,10 @@
display: grid !important; display: grid !important;
} }
.d-inline-grid {
display: inline-grid !important;
}
.d-table { .d-table {
display: table !important; display: table !important;
} }
@ -2569,6 +2573,9 @@
.d-sm-grid { .d-sm-grid {
display: grid !important; display: grid !important;
} }
.d-sm-inline-grid {
display: inline-grid !important;
}
.d-sm-table { .d-sm-table {
display: table !important; display: table !important;
} }
@ -3127,6 +3134,9 @@
.d-md-grid { .d-md-grid {
display: grid !important; display: grid !important;
} }
.d-md-inline-grid {
display: inline-grid !important;
}
.d-md-table { .d-md-table {
display: table !important; display: table !important;
} }
@ -3685,6 +3695,9 @@
.d-lg-grid { .d-lg-grid {
display: grid !important; display: grid !important;
} }
.d-lg-inline-grid {
display: inline-grid !important;
}
.d-lg-table { .d-lg-table {
display: table !important; display: table !important;
} }
@ -4243,6 +4256,9 @@
.d-xl-grid { .d-xl-grid {
display: grid !important; display: grid !important;
} }
.d-xl-inline-grid {
display: inline-grid !important;
}
.d-xl-table { .d-xl-table {
display: table !important; display: table !important;
} }
@ -4801,6 +4817,9 @@
.d-xxl-grid { .d-xxl-grid {
display: grid !important; display: grid !important;
} }
.d-xxl-inline-grid {
display: inline-grid !important;
}
.d-xxl-table { .d-xxl-table {
display: table !important; display: table !important;
} }
@ -5344,6 +5363,9 @@
.d-print-grid { .d-print-grid {
display: grid !important; display: grid !important;
} }
.d-print-inline-grid {
display: inline-grid !important;
}
.d-print-table { .d-print-table {
display: table !important; display: table !important;
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
@charset "UTF-8"; @charset "UTF-8";
/*! /*!
* Bootstrap v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -2116,7 +2116,7 @@ progress {
-webkit-appearance: none; -webkit-appearance: none;
-moz-appearance: none; -moz-appearance: none;
appearance: none; appearance: none;
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
} }
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
@ -2228,7 +2228,7 @@ progress {
min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
font-size: 0.875rem; font-size: 0.875rem;
border-radius: 0.25rem; border-radius: var(--bs-border-radius-sm);
} }
.form-control-sm::-webkit-file-upload-button { .form-control-sm::-webkit-file-upload-button {
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
@ -2247,7 +2247,7 @@ progress {
min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 1.25rem; font-size: 1.25rem;
border-radius: 0.5rem; border-radius: var(--bs-border-radius-lg);
} }
.form-control-lg::-webkit-file-upload-button { .form-control-lg::-webkit-file-upload-button {
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
@ -2282,11 +2282,11 @@ textarea.form-control-lg {
} }
.form-control-color::-moz-color-swatch { .form-control-color::-moz-color-swatch {
border: 0 !important; border: 0 !important;
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
} }
.form-control-color::-webkit-color-swatch { .form-control-color::-webkit-color-swatch {
border: 0 !important; border: 0 !important;
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
} }
.form-control-color.form-control-sm { .form-control-color.form-control-sm {
height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
@ -2310,7 +2310,7 @@ textarea.form-control-lg {
background-position: right 0.75rem center; background-position: right 0.75rem center;
background-size: 16px 12px; background-size: 16px 12px;
border: var(--bs-border-width) solid var(--bs-border-color); border: var(--bs-border-width) solid var(--bs-border-color);
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
-webkit-appearance: none; -webkit-appearance: none;
-moz-appearance: none; -moz-appearance: none;
@ -2343,7 +2343,7 @@ textarea.form-control-lg {
padding-bottom: 0.25rem; padding-bottom: 0.25rem;
padding-left: 0.5rem; padding-left: 0.5rem;
font-size: 0.875rem; font-size: 0.875rem;
border-radius: 0.25rem; border-radius: var(--bs-border-radius-sm);
} }
.form-select-lg { .form-select-lg {
@ -2351,7 +2351,7 @@ textarea.form-control-lg {
padding-bottom: 0.5rem; padding-bottom: 0.5rem;
padding-left: 1rem; padding-left: 1rem;
font-size: 1.25rem; font-size: 1.25rem;
border-radius: 0.5rem; border-radius: var(--bs-border-radius-lg);
} }
[data-bs-theme=dark] .form-select { [data-bs-theme=dark] .form-select {
@ -2584,16 +2584,6 @@ textarea.form-control-lg {
.form-floating { .form-floating {
position: relative; position: relative;
} }
.form-floating:not(.form-control:disabled)::before {
position: absolute;
top: var(--bs-border-width);
left: var(--bs-border-width);
width: calc(100% - (calc(calc(0.375em + 0.1875rem) + calc(0.75em + 0.375rem))));
height: 1.875em;
content: "";
background-color: var(--bs-body-bg);
border-radius: 0.375rem;
}
.form-floating > .form-control, .form-floating > .form-control,
.form-floating > .form-control-plaintext, .form-floating > .form-control-plaintext,
.form-floating > .form-select { .form-floating > .form-select {
@ -2604,7 +2594,7 @@ textarea.form-control-lg {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; z-index: 2;
height: 100%; height: 100%;
padding: 1rem 0.75rem; padding: 1rem 0.75rem;
overflow: hidden; overflow: hidden;
@ -2652,26 +2642,50 @@ textarea.form-control-lg {
padding-bottom: 0.625rem; padding-bottom: 0.625rem;
} }
.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { .form-floating > .form-control:not(:-moz-placeholder-shown) ~ label {
opacity: 0.65; color: rgba(var(--bs-body-color-rgb), 0.65);
transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
} }
.form-floating > .form-control:focus ~ label, .form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label, .form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-control-plaintext ~ label, .form-floating > .form-control-plaintext ~ label,
.form-floating > .form-select ~ label { .form-floating > .form-select ~ label {
opacity: 0.65; color: rgba(var(--bs-body-color-rgb), 0.65);
transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
} }
.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label::after {
position: absolute;
inset: 1rem 0.375rem;
z-index: -1;
height: 1.5em;
content: "";
background-color: var(--bs-body-bg);
border-radius: var(--bs-border-radius);
}
.form-floating > .form-control:focus ~ label::after,
.form-floating > .form-control:not(:placeholder-shown) ~ label::after,
.form-floating > .form-control-plaintext ~ label::after,
.form-floating > .form-select ~ label::after {
position: absolute;
inset: 1rem 0.375rem;
z-index: -1;
height: 1.5em;
content: "";
background-color: var(--bs-body-bg);
border-radius: var(--bs-border-radius);
}
.form-floating > .form-control:-webkit-autofill ~ label { .form-floating > .form-control:-webkit-autofill ~ label {
opacity: 0.65; color: rgba(var(--bs-body-color-rgb), 0.65);
transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
} }
.form-floating > .form-control-plaintext ~ label { .form-floating > .form-control-plaintext ~ label {
border-width: var(--bs-border-width) 0; border-width: var(--bs-border-width) 0;
} }
.form-floating > .form-control:disabled ~ label { .form-floating > :disabled ~ label {
color: #6c757d; color: #6c757d;
} }
.form-floating > :disabled ~ label::after {
background-color: var(--bs-secondary-bg);
}
.input-group { .input-group {
position: relative; position: relative;
@ -2713,7 +2727,7 @@ textarea.form-control-lg {
white-space: nowrap; white-space: nowrap;
background-color: var(--bs-tertiary-bg); background-color: var(--bs-tertiary-bg);
border: var(--bs-border-width) solid var(--bs-border-color); border: var(--bs-border-width) solid var(--bs-border-color);
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
} }
.input-group-lg > .form-control, .input-group-lg > .form-control,
@ -2722,7 +2736,7 @@ textarea.form-control-lg {
.input-group-lg > .btn { .input-group-lg > .btn {
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 1.25rem; font-size: 1.25rem;
border-radius: 0.5rem; border-radius: var(--bs-border-radius-lg);
} }
.input-group-sm > .form-control, .input-group-sm > .form-control,
@ -2731,7 +2745,7 @@ textarea.form-control-lg {
.input-group-sm > .btn { .input-group-sm > .btn {
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
font-size: 0.875rem; font-size: 0.875rem;
border-radius: 0.25rem; border-radius: var(--bs-border-radius-sm);
} }
.input-group-lg > .form-select, .input-group-lg > .form-select,
@ -2955,7 +2969,7 @@ textarea.form-control-lg {
--bs-btn-bg: transparent; --bs-btn-bg: transparent;
--bs-btn-border-width: var(--bs-border-width); --bs-btn-border-width: var(--bs-border-width);
--bs-btn-border-color: transparent; --bs-btn-border-color: transparent;
--bs-btn-border-radius: 0.375rem; --bs-btn-border-radius: var(--bs-border-radius);
--bs-btn-hover-border-color: transparent; --bs-btn-hover-border-color: transparent;
--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
--bs-btn-disabled-opacity: 0.65; --bs-btn-disabled-opacity: 0.65;
@ -3320,14 +3334,14 @@ textarea.form-control-lg {
--bs-btn-padding-y: 0.5rem; --bs-btn-padding-y: 0.5rem;
--bs-btn-padding-x: 1rem; --bs-btn-padding-x: 1rem;
--bs-btn-font-size: 1.25rem; --bs-btn-font-size: 1.25rem;
--bs-btn-border-radius: 0.5rem; --bs-btn-border-radius: var(--bs-border-radius-lg);
} }
.btn-sm, .btn-group-sm > .btn { .btn-sm, .btn-group-sm > .btn {
--bs-btn-padding-y: 0.25rem; --bs-btn-padding-y: 0.25rem;
--bs-btn-padding-x: 0.5rem; --bs-btn-padding-x: 0.5rem;
--bs-btn-font-size: 0.875rem; --bs-btn-font-size: 0.875rem;
--bs-btn-border-radius: 0.25rem; --bs-btn-border-radius: var(--bs-border-radius-sm);
} }
.fade { .fade {
@ -3403,9 +3417,9 @@ textarea.form-control-lg {
--bs-dropdown-color: var(--bs-body-color); --bs-dropdown-color: var(--bs-body-color);
--bs-dropdown-bg: var(--bs-body-bg); --bs-dropdown-bg: var(--bs-body-bg);
--bs-dropdown-border-color: var(--bs-border-color-translucent); --bs-dropdown-border-color: var(--bs-border-color-translucent);
--bs-dropdown-border-radius: 0.375rem; --bs-dropdown-border-radius: var(--bs-border-radius);
--bs-dropdown-border-width: var(--bs-border-width); --bs-dropdown-border-width: var(--bs-border-width);
--bs-dropdown-inner-border-radius: calc(0.375rem - var(--bs-border-width)); --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));
--bs-dropdown-divider-bg: var(--bs-border-color-translucent); --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
--bs-dropdown-divider-margin-y: 0.5rem; --bs-dropdown-divider-margin-y: 0.5rem;
--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
@ -3720,7 +3734,7 @@ textarea.form-control-lg {
} }
.btn-group { .btn-group {
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
} }
.btn-group > :not(.btn-check:first-child) + .btn, .btn-group > :not(.btn-check:first-child) + .btn,
.btn-group > .btn-group:not(:first-child) { .btn-group > .btn-group:not(:first-child) {
@ -3865,7 +3879,7 @@ textarea.form-control-lg {
} }
.nav-pills { .nav-pills {
--bs-nav-pills-border-radius: 0.375rem; --bs-nav-pills-border-radius: var(--bs-border-radius);
--bs-nav-pills-link-active-color: #fff; --bs-nav-pills-link-active-color: #fff;
--bs-nav-pills-link-active-bg: #0d6efd; --bs-nav-pills-link-active-bg: #0d6efd;
} }
@ -3947,7 +3961,7 @@ textarea.form-control-lg {
--bs-navbar-toggler-font-size: 1.25rem; --bs-navbar-toggler-font-size: 1.25rem;
--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15); --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
--bs-navbar-toggler-border-radius: 0.375rem; --bs-navbar-toggler-border-radius: var(--bs-border-radius);
--bs-navbar-toggler-focus-width: 0.25rem; --bs-navbar-toggler-focus-width: 0.25rem;
--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
position: relative; position: relative;
@ -4798,14 +4812,14 @@ textarea.form-control-lg {
--bs-pagination-padding-x: 1.5rem; --bs-pagination-padding-x: 1.5rem;
--bs-pagination-padding-y: 0.75rem; --bs-pagination-padding-y: 0.75rem;
--bs-pagination-font-size: 1.25rem; --bs-pagination-font-size: 1.25rem;
--bs-pagination-border-radius: 0.5rem; --bs-pagination-border-radius: var(--bs-border-radius-lg);
} }
.pagination-sm { .pagination-sm {
--bs-pagination-padding-x: 0.5rem; --bs-pagination-padding-x: 0.5rem;
--bs-pagination-padding-y: 0.25rem; --bs-pagination-padding-y: 0.25rem;
--bs-pagination-font-size: 0.875rem; --bs-pagination-font-size: 0.875rem;
--bs-pagination-border-radius: 0.25rem; --bs-pagination-border-radius: var(--bs-border-radius-sm);
} }
.badge { .badge {
@ -4814,7 +4828,7 @@ textarea.form-control-lg {
--bs-badge-font-size: 0.75em; --bs-badge-font-size: 0.75em;
--bs-badge-font-weight: 700; --bs-badge-font-weight: 700;
--bs-badge-color: #fff; --bs-badge-color: #fff;
--bs-badge-border-radius: 0.375rem; --bs-badge-border-radius: var(--bs-border-radius);
display: inline-block; display: inline-block;
padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
font-size: var(--bs-badge-font-size); font-size: var(--bs-badge-font-size);
@ -4843,7 +4857,7 @@ textarea.form-control-lg {
--bs-alert-color: inherit; --bs-alert-color: inherit;
--bs-alert-border-color: transparent; --bs-alert-border-color: transparent;
--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color); --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);
--bs-alert-border-radius: 0.375rem; --bs-alert-border-radius: var(--bs-border-radius);
--bs-alert-link-color: inherit; --bs-alert-link-color: inherit;
position: relative; position: relative;
padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
@ -5756,7 +5770,6 @@ textarea.form-control-lg {
--bs-tooltip-arrow-height: 0.4rem; --bs-tooltip-arrow-height: 0.4rem;
z-index: var(--bs-tooltip-zindex); z-index: var(--bs-tooltip-zindex);
display: block; display: block;
padding: var(--bs-tooltip-arrow-height);
margin: var(--bs-tooltip-margin); margin: var(--bs-tooltip-margin);
font-family: var(--bs-font-sans-serif); font-family: var(--bs-font-sans-serif);
font-style: normal; font-style: normal;
@ -5792,7 +5805,7 @@ textarea.form-control-lg {
} }
.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
bottom: 0; bottom: calc(-1 * var(--bs-tooltip-arrow-height));
} }
.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
top: -1px; top: -1px;
@ -5802,7 +5815,7 @@ textarea.form-control-lg {
/* rtl:begin:ignore */ /* rtl:begin:ignore */
.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
left: 0; left: calc(-1 * var(--bs-tooltip-arrow-height));
width: var(--bs-tooltip-arrow-height); width: var(--bs-tooltip-arrow-height);
height: var(--bs-tooltip-arrow-width); height: var(--bs-tooltip-arrow-width);
} }
@ -5814,7 +5827,7 @@ textarea.form-control-lg {
/* rtl:end:ignore */ /* rtl:end:ignore */
.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
top: 0; top: calc(-1 * var(--bs-tooltip-arrow-height));
} }
.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
bottom: -1px; bottom: -1px;
@ -5824,7 +5837,7 @@ textarea.form-control-lg {
/* rtl:begin:ignore */ /* rtl:begin:ignore */
.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
right: 0; right: calc(-1 * var(--bs-tooltip-arrow-height));
width: var(--bs-tooltip-arrow-height); width: var(--bs-tooltip-arrow-height);
height: var(--bs-tooltip-arrow-width); height: var(--bs-tooltip-arrow-width);
} }
@ -7388,6 +7401,10 @@ textarea.form-control-lg {
display: grid !important; display: grid !important;
} }
.d-inline-grid {
display: inline-grid !important;
}
.d-table { .d-table {
display: table !important; display: table !important;
} }
@ -9280,6 +9297,9 @@ textarea.form-control-lg {
.d-sm-grid { .d-sm-grid {
display: grid !important; display: grid !important;
} }
.d-sm-inline-grid {
display: inline-grid !important;
}
.d-sm-table { .d-sm-table {
display: table !important; display: table !important;
} }
@ -9838,6 +9858,9 @@ textarea.form-control-lg {
.d-md-grid { .d-md-grid {
display: grid !important; display: grid !important;
} }
.d-md-inline-grid {
display: inline-grid !important;
}
.d-md-table { .d-md-table {
display: table !important; display: table !important;
} }
@ -10396,6 +10419,9 @@ textarea.form-control-lg {
.d-lg-grid { .d-lg-grid {
display: grid !important; display: grid !important;
} }
.d-lg-inline-grid {
display: inline-grid !important;
}
.d-lg-table { .d-lg-table {
display: table !important; display: table !important;
} }
@ -10954,6 +10980,9 @@ textarea.form-control-lg {
.d-xl-grid { .d-xl-grid {
display: grid !important; display: grid !important;
} }
.d-xl-inline-grid {
display: inline-grid !important;
}
.d-xl-table { .d-xl-table {
display: table !important; display: table !important;
} }
@ -11512,6 +11541,9 @@ textarea.form-control-lg {
.d-xxl-grid { .d-xxl-grid {
display: grid !important; display: grid !important;
} }
.d-xxl-inline-grid {
display: inline-grid !important;
}
.d-xxl-table { .d-xxl-table {
display: table !important; display: table !important;
} }
@ -12055,6 +12087,9 @@ textarea.form-control-lg {
.d-print-grid { .d-print-grid {
display: grid !important; display: grid !important;
} }
.d-print-inline-grid {
display: inline-grid !important;
}
.d-print-table { .d-print-table {
display: table !important; display: table !important;
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
@charset "UTF-8"; @charset "UTF-8";
/*! /*!
* Bootstrap v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -2114,7 +2114,7 @@ progress {
-webkit-appearance: none; -webkit-appearance: none;
-moz-appearance: none; -moz-appearance: none;
appearance: none; appearance: none;
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
} }
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
@ -2226,7 +2226,7 @@ progress {
min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
font-size: 0.875rem; font-size: 0.875rem;
border-radius: 0.25rem; border-radius: var(--bs-border-radius-sm);
} }
.form-control-sm::-webkit-file-upload-button { .form-control-sm::-webkit-file-upload-button {
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
@ -2245,7 +2245,7 @@ progress {
min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 1.25rem; font-size: 1.25rem;
border-radius: 0.5rem; border-radius: var(--bs-border-radius-lg);
} }
.form-control-lg::-webkit-file-upload-button { .form-control-lg::-webkit-file-upload-button {
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
@ -2280,11 +2280,11 @@ textarea.form-control-lg {
} }
.form-control-color::-moz-color-swatch { .form-control-color::-moz-color-swatch {
border: 0 !important; border: 0 !important;
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
} }
.form-control-color::-webkit-color-swatch { .form-control-color::-webkit-color-swatch {
border: 0 !important; border: 0 !important;
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
} }
.form-control-color.form-control-sm { .form-control-color.form-control-sm {
height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
@ -2308,7 +2308,7 @@ textarea.form-control-lg {
background-position: left 0.75rem center; background-position: left 0.75rem center;
background-size: 16px 12px; background-size: 16px 12px;
border: var(--bs-border-width) solid var(--bs-border-color); border: var(--bs-border-width) solid var(--bs-border-color);
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
-webkit-appearance: none; -webkit-appearance: none;
-moz-appearance: none; -moz-appearance: none;
@ -2341,7 +2341,7 @@ textarea.form-control-lg {
padding-bottom: 0.25rem; padding-bottom: 0.25rem;
padding-right: 0.5rem; padding-right: 0.5rem;
font-size: 0.875rem; font-size: 0.875rem;
border-radius: 0.25rem; border-radius: var(--bs-border-radius-sm);
} }
.form-select-lg { .form-select-lg {
@ -2349,7 +2349,7 @@ textarea.form-control-lg {
padding-bottom: 0.5rem; padding-bottom: 0.5rem;
padding-right: 1rem; padding-right: 1rem;
font-size: 1.25rem; font-size: 1.25rem;
border-radius: 0.5rem; border-radius: var(--bs-border-radius-lg);
} }
[data-bs-theme=dark] .form-select { [data-bs-theme=dark] .form-select {
@ -2582,16 +2582,6 @@ textarea.form-control-lg {
.form-floating { .form-floating {
position: relative; position: relative;
} }
.form-floating:not(.form-control:disabled)::before {
position: absolute;
top: var(--bs-border-width);
right: var(--bs-border-width);
width: calc(100% - (calc(calc(0.375em + 0.1875rem) + calc(0.75em + 0.375rem))));
height: 1.875em;
content: "";
background-color: var(--bs-body-bg);
border-radius: 0.375rem;
}
.form-floating > .form-control, .form-floating > .form-control,
.form-floating > .form-control-plaintext, .form-floating > .form-control-plaintext,
.form-floating > .form-select { .form-floating > .form-select {
@ -2602,7 +2592,7 @@ textarea.form-control-lg {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0; right: 0;
width: 100%; z-index: 2;
height: 100%; height: 100%;
padding: 1rem 0.75rem; padding: 1rem 0.75rem;
overflow: hidden; overflow: hidden;
@ -2650,26 +2640,50 @@ textarea.form-control-lg {
padding-bottom: 0.625rem; padding-bottom: 0.625rem;
} }
.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { .form-floating > .form-control:not(:-moz-placeholder-shown) ~ label {
opacity: 0.65; color: rgba(var(--bs-body-color-rgb), 0.65);
transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem);
} }
.form-floating > .form-control:focus ~ label, .form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label, .form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-control-plaintext ~ label, .form-floating > .form-control-plaintext ~ label,
.form-floating > .form-select ~ label { .form-floating > .form-select ~ label {
opacity: 0.65; color: rgba(var(--bs-body-color-rgb), 0.65);
transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem);
} }
.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label::after {
position: absolute;
inset: 1rem 0.375rem;
z-index: -1;
height: 1.5em;
content: "";
background-color: var(--bs-body-bg);
border-radius: var(--bs-border-radius);
}
.form-floating > .form-control:focus ~ label::after,
.form-floating > .form-control:not(:placeholder-shown) ~ label::after,
.form-floating > .form-control-plaintext ~ label::after,
.form-floating > .form-select ~ label::after {
position: absolute;
inset: 1rem 0.375rem;
z-index: -1;
height: 1.5em;
content: "";
background-color: var(--bs-body-bg);
border-radius: var(--bs-border-radius);
}
.form-floating > .form-control:-webkit-autofill ~ label { .form-floating > .form-control:-webkit-autofill ~ label {
opacity: 0.65; color: rgba(var(--bs-body-color-rgb), 0.65);
transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem); transform: scale(0.85) translateY(-0.5rem) translateX(-0.15rem);
} }
.form-floating > .form-control-plaintext ~ label { .form-floating > .form-control-plaintext ~ label {
border-width: var(--bs-border-width) 0; border-width: var(--bs-border-width) 0;
} }
.form-floating > .form-control:disabled ~ label { .form-floating > :disabled ~ label {
color: #6c757d; color: #6c757d;
} }
.form-floating > :disabled ~ label::after {
background-color: var(--bs-secondary-bg);
}
.input-group { .input-group {
position: relative; position: relative;
@ -2711,7 +2725,7 @@ textarea.form-control-lg {
white-space: nowrap; white-space: nowrap;
background-color: var(--bs-tertiary-bg); background-color: var(--bs-tertiary-bg);
border: var(--bs-border-width) solid var(--bs-border-color); border: var(--bs-border-width) solid var(--bs-border-color);
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
} }
.input-group-lg > .form-control, .input-group-lg > .form-control,
@ -2720,7 +2734,7 @@ textarea.form-control-lg {
.input-group-lg > .btn { .input-group-lg > .btn {
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 1.25rem; font-size: 1.25rem;
border-radius: 0.5rem; border-radius: var(--bs-border-radius-lg);
} }
.input-group-sm > .form-control, .input-group-sm > .form-control,
@ -2729,7 +2743,7 @@ textarea.form-control-lg {
.input-group-sm > .btn { .input-group-sm > .btn {
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
font-size: 0.875rem; font-size: 0.875rem;
border-radius: 0.25rem; border-radius: var(--bs-border-radius-sm);
} }
.input-group-lg > .form-select, .input-group-lg > .form-select,
@ -2953,7 +2967,7 @@ textarea.form-control-lg {
--bs-btn-bg: transparent; --bs-btn-bg: transparent;
--bs-btn-border-width: var(--bs-border-width); --bs-btn-border-width: var(--bs-border-width);
--bs-btn-border-color: transparent; --bs-btn-border-color: transparent;
--bs-btn-border-radius: 0.375rem; --bs-btn-border-radius: var(--bs-border-radius);
--bs-btn-hover-border-color: transparent; --bs-btn-hover-border-color: transparent;
--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
--bs-btn-disabled-opacity: 0.65; --bs-btn-disabled-opacity: 0.65;
@ -3318,14 +3332,14 @@ textarea.form-control-lg {
--bs-btn-padding-y: 0.5rem; --bs-btn-padding-y: 0.5rem;
--bs-btn-padding-x: 1rem; --bs-btn-padding-x: 1rem;
--bs-btn-font-size: 1.25rem; --bs-btn-font-size: 1.25rem;
--bs-btn-border-radius: 0.5rem; --bs-btn-border-radius: var(--bs-border-radius-lg);
} }
.btn-sm, .btn-group-sm > .btn { .btn-sm, .btn-group-sm > .btn {
--bs-btn-padding-y: 0.25rem; --bs-btn-padding-y: 0.25rem;
--bs-btn-padding-x: 0.5rem; --bs-btn-padding-x: 0.5rem;
--bs-btn-font-size: 0.875rem; --bs-btn-font-size: 0.875rem;
--bs-btn-border-radius: 0.25rem; --bs-btn-border-radius: var(--bs-border-radius-sm);
} }
.fade { .fade {
@ -3401,9 +3415,9 @@ textarea.form-control-lg {
--bs-dropdown-color: var(--bs-body-color); --bs-dropdown-color: var(--bs-body-color);
--bs-dropdown-bg: var(--bs-body-bg); --bs-dropdown-bg: var(--bs-body-bg);
--bs-dropdown-border-color: var(--bs-border-color-translucent); --bs-dropdown-border-color: var(--bs-border-color-translucent);
--bs-dropdown-border-radius: 0.375rem; --bs-dropdown-border-radius: var(--bs-border-radius);
--bs-dropdown-border-width: var(--bs-border-width); --bs-dropdown-border-width: var(--bs-border-width);
--bs-dropdown-inner-border-radius: calc(0.375rem - var(--bs-border-width)); --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));
--bs-dropdown-divider-bg: var(--bs-border-color-translucent); --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
--bs-dropdown-divider-margin-y: 0.5rem; --bs-dropdown-divider-margin-y: 0.5rem;
--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); --bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
@ -3718,7 +3732,7 @@ textarea.form-control-lg {
} }
.btn-group { .btn-group {
border-radius: 0.375rem; border-radius: var(--bs-border-radius);
} }
.btn-group > :not(.btn-check:first-child) + .btn, .btn-group > :not(.btn-check:first-child) + .btn,
.btn-group > .btn-group:not(:first-child) { .btn-group > .btn-group:not(:first-child) {
@ -3863,7 +3877,7 @@ textarea.form-control-lg {
} }
.nav-pills { .nav-pills {
--bs-nav-pills-border-radius: 0.375rem; --bs-nav-pills-border-radius: var(--bs-border-radius);
--bs-nav-pills-link-active-color: #fff; --bs-nav-pills-link-active-color: #fff;
--bs-nav-pills-link-active-bg: #0d6efd; --bs-nav-pills-link-active-bg: #0d6efd;
} }
@ -3945,7 +3959,7 @@ textarea.form-control-lg {
--bs-navbar-toggler-font-size: 1.25rem; --bs-navbar-toggler-font-size: 1.25rem;
--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15); --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
--bs-navbar-toggler-border-radius: 0.375rem; --bs-navbar-toggler-border-radius: var(--bs-border-radius);
--bs-navbar-toggler-focus-width: 0.25rem; --bs-navbar-toggler-focus-width: 0.25rem;
--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
position: relative; position: relative;
@ -4796,14 +4810,14 @@ textarea.form-control-lg {
--bs-pagination-padding-x: 1.5rem; --bs-pagination-padding-x: 1.5rem;
--bs-pagination-padding-y: 0.75rem; --bs-pagination-padding-y: 0.75rem;
--bs-pagination-font-size: 1.25rem; --bs-pagination-font-size: 1.25rem;
--bs-pagination-border-radius: 0.5rem; --bs-pagination-border-radius: var(--bs-border-radius-lg);
} }
.pagination-sm { .pagination-sm {
--bs-pagination-padding-x: 0.5rem; --bs-pagination-padding-x: 0.5rem;
--bs-pagination-padding-y: 0.25rem; --bs-pagination-padding-y: 0.25rem;
--bs-pagination-font-size: 0.875rem; --bs-pagination-font-size: 0.875rem;
--bs-pagination-border-radius: 0.25rem; --bs-pagination-border-radius: var(--bs-border-radius-sm);
} }
.badge { .badge {
@ -4812,7 +4826,7 @@ textarea.form-control-lg {
--bs-badge-font-size: 0.75em; --bs-badge-font-size: 0.75em;
--bs-badge-font-weight: 700; --bs-badge-font-weight: 700;
--bs-badge-color: #fff; --bs-badge-color: #fff;
--bs-badge-border-radius: 0.375rem; --bs-badge-border-radius: var(--bs-border-radius);
display: inline-block; display: inline-block;
padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
font-size: var(--bs-badge-font-size); font-size: var(--bs-badge-font-size);
@ -4841,7 +4855,7 @@ textarea.form-control-lg {
--bs-alert-color: inherit; --bs-alert-color: inherit;
--bs-alert-border-color: transparent; --bs-alert-border-color: transparent;
--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color); --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);
--bs-alert-border-radius: 0.375rem; --bs-alert-border-radius: var(--bs-border-radius);
--bs-alert-link-color: inherit; --bs-alert-link-color: inherit;
position: relative; position: relative;
padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
@ -5754,7 +5768,6 @@ textarea.form-control-lg {
--bs-tooltip-arrow-height: 0.4rem; --bs-tooltip-arrow-height: 0.4rem;
z-index: var(--bs-tooltip-zindex); z-index: var(--bs-tooltip-zindex);
display: block; display: block;
padding: var(--bs-tooltip-arrow-height);
margin: var(--bs-tooltip-margin); margin: var(--bs-tooltip-margin);
font-family: var(--bs-font-sans-serif); font-family: var(--bs-font-sans-serif);
font-style: normal; font-style: normal;
@ -5790,7 +5803,7 @@ textarea.form-control-lg {
} }
.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
bottom: 0; bottom: calc(-1 * var(--bs-tooltip-arrow-height));
} }
.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
top: -1px; top: -1px;
@ -5798,7 +5811,7 @@ textarea.form-control-lg {
border-top-color: var(--bs-tooltip-bg); border-top-color: var(--bs-tooltip-bg);
} }
.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { .bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
left: 0; left: calc(-1 * var(--bs-tooltip-arrow-height));
width: var(--bs-tooltip-arrow-height); width: var(--bs-tooltip-arrow-height);
height: var(--bs-tooltip-arrow-width); height: var(--bs-tooltip-arrow-width);
} }
@ -5808,7 +5821,7 @@ textarea.form-control-lg {
border-right-color: var(--bs-tooltip-bg); border-right-color: var(--bs-tooltip-bg);
} }
.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
top: 0; top: calc(-1 * var(--bs-tooltip-arrow-height));
} }
.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
bottom: -1px; bottom: -1px;
@ -5816,7 +5829,7 @@ textarea.form-control-lg {
border-bottom-color: var(--bs-tooltip-bg); border-bottom-color: var(--bs-tooltip-bg);
} }
.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { .bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
right: 0; right: calc(-1 * var(--bs-tooltip-arrow-height));
width: var(--bs-tooltip-arrow-height); width: var(--bs-tooltip-arrow-height);
height: var(--bs-tooltip-arrow-width); height: var(--bs-tooltip-arrow-width);
} }
@ -7361,6 +7374,10 @@ textarea.form-control-lg {
display: grid !important; display: grid !important;
} }
.d-inline-grid {
display: inline-grid !important;
}
.d-table { .d-table {
display: table !important; display: table !important;
} }
@ -9245,6 +9262,9 @@ textarea.form-control-lg {
.d-sm-grid { .d-sm-grid {
display: grid !important; display: grid !important;
} }
.d-sm-inline-grid {
display: inline-grid !important;
}
.d-sm-table { .d-sm-table {
display: table !important; display: table !important;
} }
@ -9803,6 +9823,9 @@ textarea.form-control-lg {
.d-md-grid { .d-md-grid {
display: grid !important; display: grid !important;
} }
.d-md-inline-grid {
display: inline-grid !important;
}
.d-md-table { .d-md-table {
display: table !important; display: table !important;
} }
@ -10361,6 +10384,9 @@ textarea.form-control-lg {
.d-lg-grid { .d-lg-grid {
display: grid !important; display: grid !important;
} }
.d-lg-inline-grid {
display: inline-grid !important;
}
.d-lg-table { .d-lg-table {
display: table !important; display: table !important;
} }
@ -10919,6 +10945,9 @@ textarea.form-control-lg {
.d-xl-grid { .d-xl-grid {
display: grid !important; display: grid !important;
} }
.d-xl-inline-grid {
display: inline-grid !important;
}
.d-xl-table { .d-xl-table {
display: table !important; display: table !important;
} }
@ -11477,6 +11506,9 @@ textarea.form-control-lg {
.d-xxl-grid { .d-xxl-grid {
display: grid !important; display: grid !important;
} }
.d-xxl-inline-grid {
display: inline-grid !important;
}
.d-xxl-table { .d-xxl-table {
display: table !important; display: table !important;
} }
@ -12020,6 +12052,9 @@ textarea.form-control-lg {
.d-print-grid { .d-print-grid {
display: grid !important; display: grid !important;
} }
.d-print-inline-grid {
display: inline-grid !important;
}
.d-print-table { .d-print-table {
display: table !important; display: table !important;
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -9,6 +9,54 @@
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory()); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory());
})(this, (function () { 'use strict'; })(this, (function () { 'use strict';
/**
* --------------------------------------------------------------------------
* Bootstrap dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const elementMap = new Map();
const Data = {
set(element, key, instance) {
if (!elementMap.has(element)) {
elementMap.set(element, new Map());
}
const instanceMap = elementMap.get(element);
// make it clear we only want one instance per element
// can be removed later when multiple key/instances are fine to be used
if (!instanceMap.has(key) && instanceMap.size !== 0) {
// eslint-disable-next-line no-console
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
return;
}
instanceMap.set(key, instance);
},
get(element, key) {
if (elementMap.has(element)) {
return elementMap.get(element).get(key) || null;
}
return null;
},
remove(element, key) {
if (!elementMap.has(element)) {
return;
}
const instanceMap = elementMap.get(element);
instanceMap.delete(key);
// free up element references if there are no instances left for an element
if (instanceMap.size === 0) {
elementMap.delete(element);
}
}
};
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap util/index.js * Bootstrap util/index.js
@ -328,7 +376,7 @@
} }
function normalizeParameters(originalTypeEvent, handler, delegationFunction) { function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
const isDelegated = typeof handler === 'string'; const isDelegated = typeof handler === 'string';
// todo: tooltip passes `false` instead of selector, so we need to check // TODO: tooltip passes `false` instead of selector, so we need to check
const callable = isDelegated ? delegationFunction : handler || delegationFunction; const callable = isDelegated ? delegationFunction : handler || delegationFunction;
let typeEvent = getTypeEvent(originalTypeEvent); let typeEvent = getTypeEvent(originalTypeEvent);
if (!nativeEvents.has(typeEvent)) { if (!nativeEvents.has(typeEvent)) {
@ -445,11 +493,10 @@
nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
defaultPrevented = jQueryEvent.isDefaultPrevented(); defaultPrevented = jQueryEvent.isDefaultPrevented();
} }
let evt = new Event(event, { const evt = hydrateObj(new Event(event, {
bubbles, bubbles,
cancelable: true cancelable: true
}); }), args);
evt = hydrateObj(evt, args);
if (defaultPrevented) { if (defaultPrevented) {
evt.preventDefault(); evt.preventDefault();
} }
@ -478,54 +525,6 @@
return obj; return obj;
} }
/**
* --------------------------------------------------------------------------
* Bootstrap dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const elementMap = new Map();
const Data = {
set(element, key, instance) {
if (!elementMap.has(element)) {
elementMap.set(element, new Map());
}
const instanceMap = elementMap.get(element);
// make it clear we only want one instance per element
// can be removed later when multiple key/instances are fine to be used
if (!instanceMap.has(key) && instanceMap.size !== 0) {
// eslint-disable-next-line no-console
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
return;
}
instanceMap.set(key, instance);
},
get(element, key) {
if (elementMap.has(element)) {
return elementMap.get(element).get(key) || null;
}
return null;
},
remove(element, key) {
if (!elementMap.has(element)) {
return;
}
const instanceMap = elementMap.get(element);
instanceMap.delete(key);
// free up element references if there are no instances left for an element
if (instanceMap.size === 0) {
elementMap.delete(element);
}
}
};
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap dom/manipulator.js * Bootstrap dom/manipulator.js
@ -1333,7 +1332,7 @@
} }
if (!activeElement || !nextElement) { if (!activeElement || !nextElement) {
// Some weirdness is happening, so we bail // Some weirdness is happening, so we bail
// todo: change tests that use empty divs to avoid this check // TODO: change tests that use empty divs to avoid this check
return; return;
} }
const isCycling = Boolean(this._interval); const isCycling = Boolean(this._interval);
@ -1839,7 +1838,7 @@
function getUAString() { function getUAString() {
var uaData = navigator.userAgentData; var uaData = navigator.userAgentData;
if (uaData != null && uaData.brands) { if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {
return uaData.brands.map(function (item) { return uaData.brands.map(function (item) {
return item.brand + "/" + item.version; return item.brand + "/" + item.version;
}).join(' '); }).join(' ');
@ -2158,10 +2157,9 @@
// Zooming can change the DPR, but it seems to report a value that will // Zooming can change the DPR, but it seems to report a value that will
// cleanly divide the values into the appropriate subpixels. // cleanly divide the values into the appropriate subpixels.
function roundOffsetsByDPR(_ref) { function roundOffsetsByDPR(_ref, win) {
var x = _ref.x, var x = _ref.x,
y = _ref.y; y = _ref.y;
var win = window;
var dpr = win.devicePixelRatio || 1; var dpr = win.devicePixelRatio || 1;
return { return {
x: round(x * dpr) / dpr || 0, x: round(x * dpr) / dpr || 0,
@ -2244,7 +2242,7 @@
var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
x: x, x: x,
y: y y: y
}) : { }, getWindow(popper)) : {
x: x, x: x,
y: y y: y
}; };
@ -3596,7 +3594,7 @@
super(element, config); super(element, config);
this._popper = null; this._popper = null;
this._parent = this._element.parentNode; // dropdown wrapper this._parent = this._element.parentNode; // dropdown wrapper
// todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
} }
@ -3770,7 +3768,7 @@
// Disable Popper if we have a static display or Dropdown is in Navbar // Disable Popper if we have a static display or Dropdown is in Navbar
if (this._inNavbar || this._config.display === 'static') { if (this._inNavbar || this._config.display === 'static') {
Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove
defaultBsPopperConfig.modifiers = [{ defaultBsPopperConfig.modifiers = [{
name: 'applyStyles', name: 'applyStyles',
enabled: false enabled: false
@ -3852,7 +3850,7 @@
} }
event.preventDefault(); event.preventDefault();
// todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
const instance = Dropdown.getOrCreateInstance(getToggleButton); const instance = Dropdown.getOrCreateInstance(getToggleButton);
if (isUpOrDownEvent) { if (isUpOrDownEvent) {
@ -3889,103 +3887,6 @@
defineJQueryPlugin(Dropdown); defineJQueryPlugin(Dropdown);
/**
* --------------------------------------------------------------------------
* Bootstrap util/scrollBar.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
const SELECTOR_STICKY_CONTENT = '.sticky-top';
const PROPERTY_PADDING = 'padding-right';
const PROPERTY_MARGIN = 'margin-right';
/**
* Class definition
*/
class ScrollBarHelper {
constructor() {
this._element = document.body;
}
// Public
getWidth() {
// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
const documentWidth = document.documentElement.clientWidth;
return Math.abs(window.innerWidth - documentWidth);
}
hide() {
const width = this.getWidth();
this._disableOverFlow();
// give padding to element to balance the hidden scrollbar width
this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
// trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth
this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);
}
reset() {
this._resetElementAttributes(this._element, 'overflow');
this._resetElementAttributes(this._element, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
}
isOverflowing() {
return this.getWidth() > 0;
}
// Private
_disableOverFlow() {
this._saveInitialAttribute(this._element, 'overflow');
this._element.style.overflow = 'hidden';
}
_setElementAttributes(selector, styleProperty, callback) {
const scrollbarWidth = this.getWidth();
const manipulationCallBack = element => {
if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
return;
}
this._saveInitialAttribute(element, styleProperty);
const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_saveInitialAttribute(element, styleProperty) {
const actualValue = element.style.getPropertyValue(styleProperty);
if (actualValue) {
Manipulator.setDataAttribute(element, styleProperty, actualValue);
}
}
_resetElementAttributes(selector, styleProperty) {
const manipulationCallBack = element => {
const value = Manipulator.getDataAttribute(element, styleProperty);
// We only want to remove the property if the value is `null`; the value can also be zero
if (value === null) {
element.style.removeProperty(styleProperty);
return;
}
Manipulator.removeDataAttribute(element, styleProperty);
element.style.setProperty(styleProperty, value);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_applyManipulationCallback(selector, callBack) {
if (isElement$1(selector)) {
callBack(selector);
return;
}
for (const sel of SelectorEngine.find(selector, this._element)) {
callBack(sel);
}
}
}
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap util/backdrop.js * Bootstrap util/backdrop.js
@ -4208,6 +4109,103 @@
} }
} }
/**
* --------------------------------------------------------------------------
* Bootstrap util/scrollBar.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
const SELECTOR_STICKY_CONTENT = '.sticky-top';
const PROPERTY_PADDING = 'padding-right';
const PROPERTY_MARGIN = 'margin-right';
/**
* Class definition
*/
class ScrollBarHelper {
constructor() {
this._element = document.body;
}
// Public
getWidth() {
// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
const documentWidth = document.documentElement.clientWidth;
return Math.abs(window.innerWidth - documentWidth);
}
hide() {
const width = this.getWidth();
this._disableOverFlow();
// give padding to element to balance the hidden scrollbar width
this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
// trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth
this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);
}
reset() {
this._resetElementAttributes(this._element, 'overflow');
this._resetElementAttributes(this._element, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
}
isOverflowing() {
return this.getWidth() > 0;
}
// Private
_disableOverFlow() {
this._saveInitialAttribute(this._element, 'overflow');
this._element.style.overflow = 'hidden';
}
_setElementAttributes(selector, styleProperty, callback) {
const scrollbarWidth = this.getWidth();
const manipulationCallBack = element => {
if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
return;
}
this._saveInitialAttribute(element, styleProperty);
const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_saveInitialAttribute(element, styleProperty) {
const actualValue = element.style.getPropertyValue(styleProperty);
if (actualValue) {
Manipulator.setDataAttribute(element, styleProperty, actualValue);
}
}
_resetElementAttributes(selector, styleProperty) {
const manipulationCallBack = element => {
const value = Manipulator.getDataAttribute(element, styleProperty);
// We only want to remove the property if the value is `null`; the value can also be zero
if (value === null) {
element.style.removeProperty(styleProperty);
return;
}
Manipulator.removeDataAttribute(element, styleProperty);
element.style.setProperty(styleProperty, value);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_applyManipulationCallback(selector, callBack) {
if (isElement$1(selector)) {
callBack(selector);
return;
}
for (const sel of SelectorEngine.find(selector, this._element)) {
callBack(sel);
}
}
}
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap modal.js * Bootstrap modal.js
@ -4316,9 +4314,8 @@
this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
} }
dispose() { dispose() {
for (const htmlElement of [window, this._dialog]) { EventHandler.off(window, EVENT_KEY$4);
EventHandler.off(htmlElement, EVENT_KEY$4); EventHandler.off(this._dialog, EVENT_KEY$4);
}
this._backdrop.dispose(); this._backdrop.dispose();
this._focustrap.deactivate(); this._focustrap.deactivate();
super.dispose(); super.dispose();
@ -4751,7 +4748,6 @@
*/ */
const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
/** /**
* A pattern that recognizes a commonly useful subset of URLs that are safe. * A pattern that recognizes a commonly useful subset of URLs that are safe.
@ -4778,6 +4774,9 @@
// Check if a regular expression validates the attribute. // Check if a regular expression validates the attribute.
return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName)); return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
}; };
// js-docs-start allow-list
const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
const DefaultAllowlist = { const DefaultAllowlist = {
// Global attributes allowed on any supplied element below. // Global attributes allowed on any supplied element below.
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
@ -4811,6 +4810,8 @@
u: [], u: [],
ul: [] ul: []
}; };
// js-docs-end allow-list
function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
if (!unsafeHtml.length) { if (!unsafeHtml.length) {
return unsafeHtml; return unsafeHtml;
@ -5022,7 +5023,7 @@
delay: 0, delay: 0,
fallbackPlacements: ['top', 'right', 'bottom', 'left'], fallbackPlacements: ['top', 'right', 'bottom', 'left'],
html: false, html: false,
offset: [0, 0], offset: [0, 6],
placement: 'top', placement: 'top',
popperConfig: null, popperConfig: null,
sanitize: true, sanitize: true,
@ -5135,7 +5136,7 @@
return; return;
} }
// todo v6 remove this OR make it optional // TODO: v6 remove this or make it optional
this._disposePopper(); this._disposePopper();
const tip = this._getTipElement(); const tip = this._getTipElement();
this._element.setAttribute('aria-describedby', tip.getAttribute('id')); this._element.setAttribute('aria-describedby', tip.getAttribute('id'));
@ -5221,12 +5222,12 @@
_createTipElement(content) { _createTipElement(content) {
const tip = this._getTemplateFactory(content).toHtml(); const tip = this._getTemplateFactory(content).toHtml();
// todo: remove this check on v6 // TODO: remove this check in v6
if (!tip) { if (!tip) {
return null; return null;
} }
tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
// todo: on v6 the following can be achieved with CSS only // TODO: v6 the following can be achieved with CSS only
tip.classList.add(`bs-${this.constructor.NAME}-auto`); tip.classList.add(`bs-${this.constructor.NAME}-auto`);
const tipId = getUID(this.constructor.NAME).toString(); const tipId = getUID(this.constructor.NAME).toString();
tip.setAttribute('id', tipId); tip.setAttribute('id', tipId);
@ -5858,7 +5859,7 @@
const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
const SELECTOR_OUTER = '.nav-item, .list-group-item'; const SELECTOR_OUTER = '.nav-item, .list-group-item';
const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // todo:v6: could be only `tab` const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // TODO: could only be `tab` in v6
const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
@ -5872,7 +5873,7 @@
this._parent = this._element.closest(SELECTOR_TAB_PANEL); this._parent = this._element.closest(SELECTOR_TAB_PANEL);
if (!this._parent) { if (!this._parent) {
return; return;
// todo: should Throw exception on v6 // TODO: should throw exception in v6
// throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`) // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,58 @@
/*! /*!
* Bootstrap v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
import * as Popper from '@popperjs/core'; import * as Popper from '@popperjs/core';
/**
* --------------------------------------------------------------------------
* Bootstrap dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const elementMap = new Map();
const Data = {
set(element, key, instance) {
if (!elementMap.has(element)) {
elementMap.set(element, new Map());
}
const instanceMap = elementMap.get(element);
// make it clear we only want one instance per element
// can be removed later when multiple key/instances are fine to be used
if (!instanceMap.has(key) && instanceMap.size !== 0) {
// eslint-disable-next-line no-console
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
return;
}
instanceMap.set(key, instance);
},
get(element, key) {
if (elementMap.has(element)) {
return elementMap.get(element).get(key) || null;
}
return null;
},
remove(element, key) {
if (!elementMap.has(element)) {
return;
}
const instanceMap = elementMap.get(element);
instanceMap.delete(key);
// free up element references if there are no instances left for an element
if (instanceMap.size === 0) {
elementMap.delete(element);
}
}
};
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap util/index.js * Bootstrap util/index.js
@ -324,7 +372,7 @@ function findHandler(events, callable, delegationSelector = null) {
} }
function normalizeParameters(originalTypeEvent, handler, delegationFunction) { function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
const isDelegated = typeof handler === 'string'; const isDelegated = typeof handler === 'string';
// todo: tooltip passes `false` instead of selector, so we need to check // TODO: tooltip passes `false` instead of selector, so we need to check
const callable = isDelegated ? delegationFunction : handler || delegationFunction; const callable = isDelegated ? delegationFunction : handler || delegationFunction;
let typeEvent = getTypeEvent(originalTypeEvent); let typeEvent = getTypeEvent(originalTypeEvent);
if (!nativeEvents.has(typeEvent)) { if (!nativeEvents.has(typeEvent)) {
@ -441,11 +489,10 @@ const EventHandler = {
nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
defaultPrevented = jQueryEvent.isDefaultPrevented(); defaultPrevented = jQueryEvent.isDefaultPrevented();
} }
let evt = new Event(event, { const evt = hydrateObj(new Event(event, {
bubbles, bubbles,
cancelable: true cancelable: true
}); }), args);
evt = hydrateObj(evt, args);
if (defaultPrevented) { if (defaultPrevented) {
evt.preventDefault(); evt.preventDefault();
} }
@ -474,54 +521,6 @@ function hydrateObj(obj, meta = {}) {
return obj; return obj;
} }
/**
* --------------------------------------------------------------------------
* Bootstrap dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const elementMap = new Map();
const Data = {
set(element, key, instance) {
if (!elementMap.has(element)) {
elementMap.set(element, new Map());
}
const instanceMap = elementMap.get(element);
// make it clear we only want one instance per element
// can be removed later when multiple key/instances are fine to be used
if (!instanceMap.has(key) && instanceMap.size !== 0) {
// eslint-disable-next-line no-console
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
return;
}
instanceMap.set(key, instance);
},
get(element, key) {
if (elementMap.has(element)) {
return elementMap.get(element).get(key) || null;
}
return null;
},
remove(element, key) {
if (!elementMap.has(element)) {
return;
}
const instanceMap = elementMap.get(element);
instanceMap.delete(key);
// free up element references if there are no instances left for an element
if (instanceMap.size === 0) {
elementMap.delete(element);
}
}
};
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap dom/manipulator.js * Bootstrap dom/manipulator.js
@ -1329,7 +1328,7 @@ class Carousel extends BaseComponent {
} }
if (!activeElement || !nextElement) { if (!activeElement || !nextElement) {
// Some weirdness is happening, so we bail // Some weirdness is happening, so we bail
// todo: change tests that use empty divs to avoid this check // TODO: change tests that use empty divs to avoid this check
return; return;
} }
const isCycling = Boolean(this._interval); const isCycling = Boolean(this._interval);
@ -1746,7 +1745,7 @@ class Dropdown extends BaseComponent {
super(element, config); super(element, config);
this._popper = null; this._popper = null;
this._parent = this._element.parentNode; // dropdown wrapper this._parent = this._element.parentNode; // dropdown wrapper
// todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
} }
@ -1920,7 +1919,7 @@ class Dropdown extends BaseComponent {
// Disable Popper if we have a static display or Dropdown is in Navbar // Disable Popper if we have a static display or Dropdown is in Navbar
if (this._inNavbar || this._config.display === 'static') { if (this._inNavbar || this._config.display === 'static') {
Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove
defaultBsPopperConfig.modifiers = [{ defaultBsPopperConfig.modifiers = [{
name: 'applyStyles', name: 'applyStyles',
enabled: false enabled: false
@ -2002,7 +2001,7 @@ class Dropdown extends BaseComponent {
} }
event.preventDefault(); event.preventDefault();
// todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
const instance = Dropdown.getOrCreateInstance(getToggleButton); const instance = Dropdown.getOrCreateInstance(getToggleButton);
if (isUpOrDownEvent) { if (isUpOrDownEvent) {
@ -2039,103 +2038,6 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, functi
defineJQueryPlugin(Dropdown); defineJQueryPlugin(Dropdown);
/**
* --------------------------------------------------------------------------
* Bootstrap util/scrollBar.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
const SELECTOR_STICKY_CONTENT = '.sticky-top';
const PROPERTY_PADDING = 'padding-right';
const PROPERTY_MARGIN = 'margin-right';
/**
* Class definition
*/
class ScrollBarHelper {
constructor() {
this._element = document.body;
}
// Public
getWidth() {
// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
const documentWidth = document.documentElement.clientWidth;
return Math.abs(window.innerWidth - documentWidth);
}
hide() {
const width = this.getWidth();
this._disableOverFlow();
// give padding to element to balance the hidden scrollbar width
this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
// trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth
this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);
}
reset() {
this._resetElementAttributes(this._element, 'overflow');
this._resetElementAttributes(this._element, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
}
isOverflowing() {
return this.getWidth() > 0;
}
// Private
_disableOverFlow() {
this._saveInitialAttribute(this._element, 'overflow');
this._element.style.overflow = 'hidden';
}
_setElementAttributes(selector, styleProperty, callback) {
const scrollbarWidth = this.getWidth();
const manipulationCallBack = element => {
if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
return;
}
this._saveInitialAttribute(element, styleProperty);
const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_saveInitialAttribute(element, styleProperty) {
const actualValue = element.style.getPropertyValue(styleProperty);
if (actualValue) {
Manipulator.setDataAttribute(element, styleProperty, actualValue);
}
}
_resetElementAttributes(selector, styleProperty) {
const manipulationCallBack = element => {
const value = Manipulator.getDataAttribute(element, styleProperty);
// We only want to remove the property if the value is `null`; the value can also be zero
if (value === null) {
element.style.removeProperty(styleProperty);
return;
}
Manipulator.removeDataAttribute(element, styleProperty);
element.style.setProperty(styleProperty, value);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_applyManipulationCallback(selector, callBack) {
if (isElement(selector)) {
callBack(selector);
return;
}
for (const sel of SelectorEngine.find(selector, this._element)) {
callBack(sel);
}
}
}
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap util/backdrop.js * Bootstrap util/backdrop.js
@ -2358,6 +2260,103 @@ class FocusTrap extends Config {
} }
} }
/**
* --------------------------------------------------------------------------
* Bootstrap util/scrollBar.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
const SELECTOR_STICKY_CONTENT = '.sticky-top';
const PROPERTY_PADDING = 'padding-right';
const PROPERTY_MARGIN = 'margin-right';
/**
* Class definition
*/
class ScrollBarHelper {
constructor() {
this._element = document.body;
}
// Public
getWidth() {
// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
const documentWidth = document.documentElement.clientWidth;
return Math.abs(window.innerWidth - documentWidth);
}
hide() {
const width = this.getWidth();
this._disableOverFlow();
// give padding to element to balance the hidden scrollbar width
this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
// trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth
this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);
}
reset() {
this._resetElementAttributes(this._element, 'overflow');
this._resetElementAttributes(this._element, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
}
isOverflowing() {
return this.getWidth() > 0;
}
// Private
_disableOverFlow() {
this._saveInitialAttribute(this._element, 'overflow');
this._element.style.overflow = 'hidden';
}
_setElementAttributes(selector, styleProperty, callback) {
const scrollbarWidth = this.getWidth();
const manipulationCallBack = element => {
if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
return;
}
this._saveInitialAttribute(element, styleProperty);
const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_saveInitialAttribute(element, styleProperty) {
const actualValue = element.style.getPropertyValue(styleProperty);
if (actualValue) {
Manipulator.setDataAttribute(element, styleProperty, actualValue);
}
}
_resetElementAttributes(selector, styleProperty) {
const manipulationCallBack = element => {
const value = Manipulator.getDataAttribute(element, styleProperty);
// We only want to remove the property if the value is `null`; the value can also be zero
if (value === null) {
element.style.removeProperty(styleProperty);
return;
}
Manipulator.removeDataAttribute(element, styleProperty);
element.style.setProperty(styleProperty, value);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_applyManipulationCallback(selector, callBack) {
if (isElement(selector)) {
callBack(selector);
return;
}
for (const sel of SelectorEngine.find(selector, this._element)) {
callBack(sel);
}
}
}
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap modal.js * Bootstrap modal.js
@ -2466,9 +2465,8 @@ class Modal extends BaseComponent {
this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
} }
dispose() { dispose() {
for (const htmlElement of [window, this._dialog]) { EventHandler.off(window, EVENT_KEY$4);
EventHandler.off(htmlElement, EVENT_KEY$4); EventHandler.off(this._dialog, EVENT_KEY$4);
}
this._backdrop.dispose(); this._backdrop.dispose();
this._focustrap.deactivate(); this._focustrap.deactivate();
super.dispose(); super.dispose();
@ -2901,7 +2899,6 @@ defineJQueryPlugin(Offcanvas);
*/ */
const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
/** /**
* A pattern that recognizes a commonly useful subset of URLs that are safe. * A pattern that recognizes a commonly useful subset of URLs that are safe.
@ -2928,6 +2925,9 @@ const allowedAttribute = (attribute, allowedAttributeList) => {
// Check if a regular expression validates the attribute. // Check if a regular expression validates the attribute.
return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName)); return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
}; };
// js-docs-start allow-list
const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
const DefaultAllowlist = { const DefaultAllowlist = {
// Global attributes allowed on any supplied element below. // Global attributes allowed on any supplied element below.
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
@ -2961,6 +2961,8 @@ const DefaultAllowlist = {
u: [], u: [],
ul: [] ul: []
}; };
// js-docs-end allow-list
function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
if (!unsafeHtml.length) { if (!unsafeHtml.length) {
return unsafeHtml; return unsafeHtml;
@ -3172,7 +3174,7 @@ const Default$3 = {
delay: 0, delay: 0,
fallbackPlacements: ['top', 'right', 'bottom', 'left'], fallbackPlacements: ['top', 'right', 'bottom', 'left'],
html: false, html: false,
offset: [0, 0], offset: [0, 6],
placement: 'top', placement: 'top',
popperConfig: null, popperConfig: null,
sanitize: true, sanitize: true,
@ -3285,7 +3287,7 @@ class Tooltip extends BaseComponent {
return; return;
} }
// todo v6 remove this OR make it optional // TODO: v6 remove this or make it optional
this._disposePopper(); this._disposePopper();
const tip = this._getTipElement(); const tip = this._getTipElement();
this._element.setAttribute('aria-describedby', tip.getAttribute('id')); this._element.setAttribute('aria-describedby', tip.getAttribute('id'));
@ -3371,12 +3373,12 @@ class Tooltip extends BaseComponent {
_createTipElement(content) { _createTipElement(content) {
const tip = this._getTemplateFactory(content).toHtml(); const tip = this._getTemplateFactory(content).toHtml();
// todo: remove this check on v6 // TODO: remove this check in v6
if (!tip) { if (!tip) {
return null; return null;
} }
tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
// todo: on v6 the following can be achieved with CSS only // TODO: v6 the following can be achieved with CSS only
tip.classList.add(`bs-${this.constructor.NAME}-auto`); tip.classList.add(`bs-${this.constructor.NAME}-auto`);
const tipId = getUID(this.constructor.NAME).toString(); const tipId = getUID(this.constructor.NAME).toString();
tip.setAttribute('id', tipId); tip.setAttribute('id', tipId);
@ -4008,7 +4010,7 @@ const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';
const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
const SELECTOR_OUTER = '.nav-item, .list-group-item'; const SELECTOR_OUTER = '.nav-item, .list-group-item';
const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // todo:v6: could be only `tab` const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // TODO: could only be `tab` in v6
const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
@ -4022,7 +4024,7 @@ class Tab extends BaseComponent {
this._parent = this._element.closest(SELECTOR_TAB_PANEL); this._parent = this._element.closest(SELECTOR_TAB_PANEL);
if (!this._parent) { if (!this._parent) {
return; return;
// todo: should Throw exception on v6 // TODO: should throw exception in v6
// throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`) // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap v5.3.0-alpha2 (https://getbootstrap.com/) * Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -28,6 +28,54 @@
const Popper__namespace = /*#__PURE__*/_interopNamespaceDefault(Popper); const Popper__namespace = /*#__PURE__*/_interopNamespaceDefault(Popper);
/**
* --------------------------------------------------------------------------
* Bootstrap dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const elementMap = new Map();
const Data = {
set(element, key, instance) {
if (!elementMap.has(element)) {
elementMap.set(element, new Map());
}
const instanceMap = elementMap.get(element);
// make it clear we only want one instance per element
// can be removed later when multiple key/instances are fine to be used
if (!instanceMap.has(key) && instanceMap.size !== 0) {
// eslint-disable-next-line no-console
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
return;
}
instanceMap.set(key, instance);
},
get(element, key) {
if (elementMap.has(element)) {
return elementMap.get(element).get(key) || null;
}
return null;
},
remove(element, key) {
if (!elementMap.has(element)) {
return;
}
const instanceMap = elementMap.get(element);
instanceMap.delete(key);
// free up element references if there are no instances left for an element
if (instanceMap.size === 0) {
elementMap.delete(element);
}
}
};
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap util/index.js * Bootstrap util/index.js
@ -347,7 +395,7 @@
} }
function normalizeParameters(originalTypeEvent, handler, delegationFunction) { function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
const isDelegated = typeof handler === 'string'; const isDelegated = typeof handler === 'string';
// todo: tooltip passes `false` instead of selector, so we need to check // TODO: tooltip passes `false` instead of selector, so we need to check
const callable = isDelegated ? delegationFunction : handler || delegationFunction; const callable = isDelegated ? delegationFunction : handler || delegationFunction;
let typeEvent = getTypeEvent(originalTypeEvent); let typeEvent = getTypeEvent(originalTypeEvent);
if (!nativeEvents.has(typeEvent)) { if (!nativeEvents.has(typeEvent)) {
@ -464,11 +512,10 @@
nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
defaultPrevented = jQueryEvent.isDefaultPrevented(); defaultPrevented = jQueryEvent.isDefaultPrevented();
} }
let evt = new Event(event, { const evt = hydrateObj(new Event(event, {
bubbles, bubbles,
cancelable: true cancelable: true
}); }), args);
evt = hydrateObj(evt, args);
if (defaultPrevented) { if (defaultPrevented) {
evt.preventDefault(); evt.preventDefault();
} }
@ -497,54 +544,6 @@
return obj; return obj;
} }
/**
* --------------------------------------------------------------------------
* Bootstrap dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const elementMap = new Map();
const Data = {
set(element, key, instance) {
if (!elementMap.has(element)) {
elementMap.set(element, new Map());
}
const instanceMap = elementMap.get(element);
// make it clear we only want one instance per element
// can be removed later when multiple key/instances are fine to be used
if (!instanceMap.has(key) && instanceMap.size !== 0) {
// eslint-disable-next-line no-console
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
return;
}
instanceMap.set(key, instance);
},
get(element, key) {
if (elementMap.has(element)) {
return elementMap.get(element).get(key) || null;
}
return null;
},
remove(element, key) {
if (!elementMap.has(element)) {
return;
}
const instanceMap = elementMap.get(element);
instanceMap.delete(key);
// free up element references if there are no instances left for an element
if (instanceMap.size === 0) {
elementMap.delete(element);
}
}
};
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap dom/manipulator.js * Bootstrap dom/manipulator.js
@ -1352,7 +1351,7 @@
} }
if (!activeElement || !nextElement) { if (!activeElement || !nextElement) {
// Some weirdness is happening, so we bail // Some weirdness is happening, so we bail
// todo: change tests that use empty divs to avoid this check // TODO: change tests that use empty divs to avoid this check
return; return;
} }
const isCycling = Boolean(this._interval); const isCycling = Boolean(this._interval);
@ -1769,7 +1768,7 @@
super(element, config); super(element, config);
this._popper = null; this._popper = null;
this._parent = this._element.parentNode; // dropdown wrapper this._parent = this._element.parentNode; // dropdown wrapper
// todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
} }
@ -1943,7 +1942,7 @@
// Disable Popper if we have a static display or Dropdown is in Navbar // Disable Popper if we have a static display or Dropdown is in Navbar
if (this._inNavbar || this._config.display === 'static') { if (this._inNavbar || this._config.display === 'static') {
Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove
defaultBsPopperConfig.modifiers = [{ defaultBsPopperConfig.modifiers = [{
name: 'applyStyles', name: 'applyStyles',
enabled: false enabled: false
@ -2025,7 +2024,7 @@
} }
event.preventDefault(); event.preventDefault();
// todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/ // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
const instance = Dropdown.getOrCreateInstance(getToggleButton); const instance = Dropdown.getOrCreateInstance(getToggleButton);
if (isUpOrDownEvent) { if (isUpOrDownEvent) {
@ -2062,103 +2061,6 @@
defineJQueryPlugin(Dropdown); defineJQueryPlugin(Dropdown);
/**
* --------------------------------------------------------------------------
* Bootstrap util/scrollBar.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
const SELECTOR_STICKY_CONTENT = '.sticky-top';
const PROPERTY_PADDING = 'padding-right';
const PROPERTY_MARGIN = 'margin-right';
/**
* Class definition
*/
class ScrollBarHelper {
constructor() {
this._element = document.body;
}
// Public
getWidth() {
// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
const documentWidth = document.documentElement.clientWidth;
return Math.abs(window.innerWidth - documentWidth);
}
hide() {
const width = this.getWidth();
this._disableOverFlow();
// give padding to element to balance the hidden scrollbar width
this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
// trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth
this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);
}
reset() {
this._resetElementAttributes(this._element, 'overflow');
this._resetElementAttributes(this._element, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
}
isOverflowing() {
return this.getWidth() > 0;
}
// Private
_disableOverFlow() {
this._saveInitialAttribute(this._element, 'overflow');
this._element.style.overflow = 'hidden';
}
_setElementAttributes(selector, styleProperty, callback) {
const scrollbarWidth = this.getWidth();
const manipulationCallBack = element => {
if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
return;
}
this._saveInitialAttribute(element, styleProperty);
const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_saveInitialAttribute(element, styleProperty) {
const actualValue = element.style.getPropertyValue(styleProperty);
if (actualValue) {
Manipulator.setDataAttribute(element, styleProperty, actualValue);
}
}
_resetElementAttributes(selector, styleProperty) {
const manipulationCallBack = element => {
const value = Manipulator.getDataAttribute(element, styleProperty);
// We only want to remove the property if the value is `null`; the value can also be zero
if (value === null) {
element.style.removeProperty(styleProperty);
return;
}
Manipulator.removeDataAttribute(element, styleProperty);
element.style.setProperty(styleProperty, value);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_applyManipulationCallback(selector, callBack) {
if (isElement(selector)) {
callBack(selector);
return;
}
for (const sel of SelectorEngine.find(selector, this._element)) {
callBack(sel);
}
}
}
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap util/backdrop.js * Bootstrap util/backdrop.js
@ -2381,6 +2283,103 @@
} }
} }
/**
* --------------------------------------------------------------------------
* Bootstrap util/scrollBar.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
/**
* Constants
*/
const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
const SELECTOR_STICKY_CONTENT = '.sticky-top';
const PROPERTY_PADDING = 'padding-right';
const PROPERTY_MARGIN = 'margin-right';
/**
* Class definition
*/
class ScrollBarHelper {
constructor() {
this._element = document.body;
}
// Public
getWidth() {
// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
const documentWidth = document.documentElement.clientWidth;
return Math.abs(window.innerWidth - documentWidth);
}
hide() {
const width = this.getWidth();
this._disableOverFlow();
// give padding to element to balance the hidden scrollbar width
this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
// trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth
this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);
}
reset() {
this._resetElementAttributes(this._element, 'overflow');
this._resetElementAttributes(this._element, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
}
isOverflowing() {
return this.getWidth() > 0;
}
// Private
_disableOverFlow() {
this._saveInitialAttribute(this._element, 'overflow');
this._element.style.overflow = 'hidden';
}
_setElementAttributes(selector, styleProperty, callback) {
const scrollbarWidth = this.getWidth();
const manipulationCallBack = element => {
if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
return;
}
this._saveInitialAttribute(element, styleProperty);
const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_saveInitialAttribute(element, styleProperty) {
const actualValue = element.style.getPropertyValue(styleProperty);
if (actualValue) {
Manipulator.setDataAttribute(element, styleProperty, actualValue);
}
}
_resetElementAttributes(selector, styleProperty) {
const manipulationCallBack = element => {
const value = Manipulator.getDataAttribute(element, styleProperty);
// We only want to remove the property if the value is `null`; the value can also be zero
if (value === null) {
element.style.removeProperty(styleProperty);
return;
}
Manipulator.removeDataAttribute(element, styleProperty);
element.style.setProperty(styleProperty, value);
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_applyManipulationCallback(selector, callBack) {
if (isElement(selector)) {
callBack(selector);
return;
}
for (const sel of SelectorEngine.find(selector, this._element)) {
callBack(sel);
}
}
}
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap modal.js * Bootstrap modal.js
@ -2489,9 +2488,8 @@
this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
} }
dispose() { dispose() {
for (const htmlElement of [window, this._dialog]) { EventHandler.off(window, EVENT_KEY$4);
EventHandler.off(htmlElement, EVENT_KEY$4); EventHandler.off(this._dialog, EVENT_KEY$4);
}
this._backdrop.dispose(); this._backdrop.dispose();
this._focustrap.deactivate(); this._focustrap.deactivate();
super.dispose(); super.dispose();
@ -2924,7 +2922,6 @@
*/ */
const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
/** /**
* A pattern that recognizes a commonly useful subset of URLs that are safe. * A pattern that recognizes a commonly useful subset of URLs that are safe.
@ -2951,6 +2948,9 @@
// Check if a regular expression validates the attribute. // Check if a regular expression validates the attribute.
return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName)); return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
}; };
// js-docs-start allow-list
const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
const DefaultAllowlist = { const DefaultAllowlist = {
// Global attributes allowed on any supplied element below. // Global attributes allowed on any supplied element below.
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
@ -2984,6 +2984,8 @@
u: [], u: [],
ul: [] ul: []
}; };
// js-docs-end allow-list
function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
if (!unsafeHtml.length) { if (!unsafeHtml.length) {
return unsafeHtml; return unsafeHtml;
@ -3195,7 +3197,7 @@
delay: 0, delay: 0,
fallbackPlacements: ['top', 'right', 'bottom', 'left'], fallbackPlacements: ['top', 'right', 'bottom', 'left'],
html: false, html: false,
offset: [0, 0], offset: [0, 6],
placement: 'top', placement: 'top',
popperConfig: null, popperConfig: null,
sanitize: true, sanitize: true,
@ -3308,7 +3310,7 @@
return; return;
} }
// todo v6 remove this OR make it optional // TODO: v6 remove this or make it optional
this._disposePopper(); this._disposePopper();
const tip = this._getTipElement(); const tip = this._getTipElement();
this._element.setAttribute('aria-describedby', tip.getAttribute('id')); this._element.setAttribute('aria-describedby', tip.getAttribute('id'));
@ -3394,12 +3396,12 @@
_createTipElement(content) { _createTipElement(content) {
const tip = this._getTemplateFactory(content).toHtml(); const tip = this._getTemplateFactory(content).toHtml();
// todo: remove this check on v6 // TODO: remove this check in v6
if (!tip) { if (!tip) {
return null; return null;
} }
tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
// todo: on v6 the following can be achieved with CSS only // TODO: v6 the following can be achieved with CSS only
tip.classList.add(`bs-${this.constructor.NAME}-auto`); tip.classList.add(`bs-${this.constructor.NAME}-auto`);
const tipId = getUID(this.constructor.NAME).toString(); const tipId = getUID(this.constructor.NAME).toString();
tip.setAttribute('id', tipId); tip.setAttribute('id', tipId);
@ -4031,7 +4033,7 @@
const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
const SELECTOR_OUTER = '.nav-item, .list-group-item'; const SELECTOR_OUTER = '.nav-item, .list-group-item';
const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // todo:v6: could be only `tab` const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // TODO: could only be `tab` in v6
const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
@ -4045,7 +4047,7 @@
this._parent = this._element.closest(SELECTOR_TAB_PANEL); this._parent = this._element.closest(SELECTOR_TAB_PANEL);
if (!this._parent) { if (!this._parent) {
return; return;
// todo: should Throw exception on v6 // TODO: should throw exception in v6
// throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`) // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet" integrity="sha384-5/ZcxA7Dub2FNG09dHw8CHmPN7Fz6ASlweagj0nuXjmMyupgH9n9F5Hd926zsu3/" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet" integrity="sha384-T5m5WERuXcjgzF8DAb7tRkByEZQGcpraRTinjpywg37AO96WoYN9+hrhDVoM6CaT" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
@ -361,7 +361,7 @@
</footer> </footer>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</body> </body>

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
@ -361,7 +361,7 @@
</footer> </footer>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</body> </body>

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
@ -301,7 +301,7 @@
</div> </div>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</body> </body>

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet" integrity="sha384-5/ZcxA7Dub2FNG09dHw8CHmPN7Fz6ASlweagj0nuXjmMyupgH9n9F5Hd926zsu3/" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet" integrity="sha384-T5m5WERuXcjgzF8DAb7tRkByEZQGcpraRTinjpywg37AO96WoYN9+hrhDVoM6CaT" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
@ -240,7 +240,7 @@
<div class="b-example-divider"></div> <div class="b-example-divider"></div>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</body> </body>

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
@ -240,7 +240,7 @@
<div class="b-example-divider"></div> <div class="b-example-divider"></div>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</body> </body>

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet" integrity="sha384-5/ZcxA7Dub2FNG09dHw8CHmPN7Fz6ASlweagj0nuXjmMyupgH9n9F5Hd926zsu3/" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet" integrity="sha384-T5m5WERuXcjgzF8DAb7tRkByEZQGcpraRTinjpywg37AO96WoYN9+hrhDVoM6CaT" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
@ -319,7 +319,7 @@
</main> </main>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</body> </body>

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
@ -319,7 +319,7 @@
</main> </main>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</body> </body>

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet" integrity="sha384-5/ZcxA7Dub2FNG09dHw8CHmPN7Fz6ASlweagj0nuXjmMyupgH9n9F5Hd926zsu3/" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet" integrity="sha384-T5m5WERuXcjgzF8DAb7tRkByEZQGcpraRTinjpywg37AO96WoYN9+hrhDVoM6CaT" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
@ -1939,7 +1939,7 @@
</div> </div>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
<script src="../cheatsheet/cheatsheet.js"></script> <script src="../cheatsheet/cheatsheet.js"></script>
</body> </body>

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
@ -1924,7 +1924,7 @@
</div> </div>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
<script src="cheatsheet.js"></script> <script src="cheatsheet.js"></script>
</body> </body>

View File

@ -15,7 +15,7 @@
<link href="/docs/5.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet" integrity="sha384-5/ZcxA7Dub2FNG09dHw8CHmPN7Fz6ASlweagj0nuXjmMyupgH9n9F5Hd926zsu3/" crossorigin="anonymous"> <link href="/docs/5.3/dist/css/bootstrap.rtl.min.css" rel="stylesheet" integrity="sha384-T5m5WERuXcjgzF8DAb7tRkByEZQGcpraRTinjpywg37AO96WoYN9+hrhDVoM6CaT" crossorigin="anonymous">
<!-- Favicons --> <!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180"> <link rel="apple-touch-icon" href="/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
@ -381,7 +381,7 @@
</div> </div>
<script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> <script src="/docs/5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
<script src="../checkout/checkout.js"></script> <script src="../checkout/checkout.js"></script>
</body> </body>

Some files were not shown because too many files have changed in this diff Show More