1
0
Fork 0

Update bootstrap

This commit is contained in:
Owen Ryan 2024-04-17 16:54:41 -04:00
parent 65ec3ec18f
commit e40877c34d
45 changed files with 884 additions and 870 deletions

5
Makefile Normal file
View file

@ -0,0 +1,5 @@
serve:
bundle exec jekyll serve --watch
build:
bundle exec jekyll build

View file

@ -1,6 +1,6 @@
/*! /*!
* Bootstrap Grid v5.3.0-alpha3 (https://getbootstrap.com/) * Bootstrap Grid v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2024 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)
*/ */
.container, .container,
@ -93,7 +93,7 @@
.row-cols-3 > * { .row-cols-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-4 > * { .row-cols-4 > * {
@ -108,7 +108,7 @@
.row-cols-6 > * { .row-cols-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-auto { .col-auto {
@ -298,7 +298,7 @@
} }
.row-cols-sm-3 > * { .row-cols-sm-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-sm-4 > * { .row-cols-sm-4 > * {
flex: 0 0 auto; flex: 0 0 auto;
@ -310,7 +310,7 @@
} }
.row-cols-sm-6 > * { .row-cols-sm-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-sm-auto { .col-sm-auto {
flex: 0 0 auto; flex: 0 0 auto;
@ -467,7 +467,7 @@
} }
.row-cols-md-3 > * { .row-cols-md-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-md-4 > * { .row-cols-md-4 > * {
flex: 0 0 auto; flex: 0 0 auto;
@ -479,7 +479,7 @@
} }
.row-cols-md-6 > * { .row-cols-md-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-md-auto { .col-md-auto {
flex: 0 0 auto; flex: 0 0 auto;
@ -636,7 +636,7 @@
} }
.row-cols-lg-3 > * { .row-cols-lg-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-lg-4 > * { .row-cols-lg-4 > * {
flex: 0 0 auto; flex: 0 0 auto;
@ -648,7 +648,7 @@
} }
.row-cols-lg-6 > * { .row-cols-lg-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-lg-auto { .col-lg-auto {
flex: 0 0 auto; flex: 0 0 auto;
@ -805,7 +805,7 @@
} }
.row-cols-xl-3 > * { .row-cols-xl-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-xl-4 > * { .row-cols-xl-4 > * {
flex: 0 0 auto; flex: 0 0 auto;
@ -817,7 +817,7 @@
} }
.row-cols-xl-6 > * { .row-cols-xl-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-xl-auto { .col-xl-auto {
flex: 0 0 auto; flex: 0 0 auto;
@ -974,7 +974,7 @@
} }
.row-cols-xxl-3 > * { .row-cols-xxl-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-xxl-4 > * { .row-cols-xxl-4 > * {
flex: 0 0 auto; flex: 0 0 auto;
@ -986,7 +986,7 @@
} }
.row-cols-xxl-6 > * { .row-cols-xxl-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-xxl-auto { .col-xxl-auto {
flex: 0 0 auto; flex: 0 0 auto;

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 @@
/*! /*!
* Bootstrap Grid v5.3.0-alpha3 (https://getbootstrap.com/) * Bootstrap Grid v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2024 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)
*/ */
.container, .container,
@ -93,7 +93,7 @@
.row-cols-3 > * { .row-cols-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-4 > * { .row-cols-4 > * {
@ -108,7 +108,7 @@
.row-cols-6 > * { .row-cols-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-auto { .col-auto {
@ -298,7 +298,7 @@
} }
.row-cols-sm-3 > * { .row-cols-sm-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-sm-4 > * { .row-cols-sm-4 > * {
flex: 0 0 auto; flex: 0 0 auto;
@ -310,7 +310,7 @@
} }
.row-cols-sm-6 > * { .row-cols-sm-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-sm-auto { .col-sm-auto {
flex: 0 0 auto; flex: 0 0 auto;
@ -467,7 +467,7 @@
} }
.row-cols-md-3 > * { .row-cols-md-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-md-4 > * { .row-cols-md-4 > * {
flex: 0 0 auto; flex: 0 0 auto;
@ -479,7 +479,7 @@
} }
.row-cols-md-6 > * { .row-cols-md-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-md-auto { .col-md-auto {
flex: 0 0 auto; flex: 0 0 auto;
@ -636,7 +636,7 @@
} }
.row-cols-lg-3 > * { .row-cols-lg-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-lg-4 > * { .row-cols-lg-4 > * {
flex: 0 0 auto; flex: 0 0 auto;
@ -648,7 +648,7 @@
} }
.row-cols-lg-6 > * { .row-cols-lg-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-lg-auto { .col-lg-auto {
flex: 0 0 auto; flex: 0 0 auto;
@ -805,7 +805,7 @@
} }
.row-cols-xl-3 > * { .row-cols-xl-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-xl-4 > * { .row-cols-xl-4 > * {
flex: 0 0 auto; flex: 0 0 auto;
@ -817,7 +817,7 @@
} }
.row-cols-xl-6 > * { .row-cols-xl-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-xl-auto { .col-xl-auto {
flex: 0 0 auto; flex: 0 0 auto;
@ -974,7 +974,7 @@
} }
.row-cols-xxl-3 > * { .row-cols-xxl-3 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 33.3333333333%; width: 33.33333333%;
} }
.row-cols-xxl-4 > * { .row-cols-xxl-4 > * {
flex: 0 0 auto; flex: 0 0 auto;
@ -986,7 +986,7 @@
} }
.row-cols-xxl-6 > * { .row-cols-xxl-6 > * {
flex: 0 0 auto; flex: 0 0 auto;
width: 16.6666666667%; width: 16.66666667%;
} }
.col-xxl-auto { .col-xxl-auto {
flex: 0 0 auto; flex: 0 0 auto;

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 @@
/*! /*!
* Bootstrap Reboot v5.3.0-alpha3 (https://getbootstrap.com/) * Bootstrap Reboot v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2024 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)
*/ */
:root, :root,
@ -91,12 +91,14 @@
--bs-tertiary-color-rgb: 33, 37, 41; --bs-tertiary-color-rgb: 33, 37, 41;
--bs-tertiary-bg: #f8f9fa; --bs-tertiary-bg: #f8f9fa;
--bs-tertiary-bg-rgb: 248, 249, 250; --bs-tertiary-bg-rgb: 248, 249, 250;
--bs-heading-color: inherit;
--bs-link-color: #0d6efd; --bs-link-color: #0d6efd;
--bs-link-color-rgb: 13, 110, 253; --bs-link-color-rgb: 13, 110, 253;
--bs-link-decoration: underline; --bs-link-decoration: underline;
--bs-link-hover-color: #0a58ca; --bs-link-hover-color: #0a58ca;
--bs-link-hover-color-rgb: 10, 88, 202; --bs-link-hover-color-rgb: 10, 88, 202;
--bs-code-color: #d63384; --bs-code-color: #d63384;
--bs-highlight-color: #212529;
--bs-highlight-bg: #fff3cd; --bs-highlight-bg: #fff3cd;
--bs-border-width: 1px; --bs-border-width: 1px;
--bs-border-style: solid; --bs-border-style: solid;
@ -124,18 +126,18 @@
[data-bs-theme=dark] { [data-bs-theme=dark] {
color-scheme: dark; color-scheme: dark;
--bs-body-color: #adb5bd; --bs-body-color: #dee2e6;
--bs-body-color-rgb: 173, 181, 189; --bs-body-color-rgb: 222, 226, 230;
--bs-body-bg: #212529; --bs-body-bg: #212529;
--bs-body-bg-rgb: 33, 37, 41; --bs-body-bg-rgb: 33, 37, 41;
--bs-emphasis-color: #fff; --bs-emphasis-color: #fff;
--bs-emphasis-color-rgb: 255, 255, 255; --bs-emphasis-color-rgb: 255, 255, 255;
--bs-secondary-color: rgba(173, 181, 189, 0.75); --bs-secondary-color: rgba(222, 226, 230, 0.75);
--bs-secondary-color-rgb: 173, 181, 189; --bs-secondary-color-rgb: 222, 226, 230;
--bs-secondary-bg: #343a40; --bs-secondary-bg: #343a40;
--bs-secondary-bg-rgb: 52, 58, 64; --bs-secondary-bg-rgb: 52, 58, 64;
--bs-tertiary-color: rgba(173, 181, 189, 0.5); --bs-tertiary-color: rgba(222, 226, 230, 0.5);
--bs-tertiary-color-rgb: 173, 181, 189; --bs-tertiary-color-rgb: 222, 226, 230;
--bs-tertiary-bg: #2b3035; --bs-tertiary-bg: #2b3035;
--bs-tertiary-bg-rgb: 43, 48, 53; --bs-tertiary-bg-rgb: 43, 48, 53;
--bs-primary-text-emphasis: #6ea8fe; --bs-primary-text-emphasis: #6ea8fe;
@ -162,11 +164,14 @@
--bs-danger-border-subtle: #842029; --bs-danger-border-subtle: #842029;
--bs-light-border-subtle: #495057; --bs-light-border-subtle: #495057;
--bs-dark-border-subtle: #343a40; --bs-dark-border-subtle: #343a40;
--bs-heading-color: inherit;
--bs-link-color: #6ea8fe; --bs-link-color: #6ea8fe;
--bs-link-hover-color: #8bb9fe; --bs-link-hover-color: #8bb9fe;
--bs-link-color-rgb: 110, 168, 254; --bs-link-color-rgb: 110, 168, 254;
--bs-link-hover-color-rgb: 139, 185, 254; --bs-link-hover-color-rgb: 139, 185, 254;
--bs-code-color: #e685b5; --bs-code-color: #e685b5;
--bs-highlight-color: #dee2e6;
--bs-highlight-bg: #664d03;
--bs-border-color: #495057; --bs-border-color: #495057;
--bs-border-color-translucent: rgba(255, 255, 255, 0.15); --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
--bs-form-valid-color: #75b798; --bs-form-valid-color: #75b798;
@ -213,7 +218,7 @@ h6, h5, h4, h3, h2, h1 {
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
font-weight: 500; font-weight: 500;
line-height: 1.2; line-height: 1.2;
color: var(--bs-heading-color, inherit); color: var(--bs-heading-color);
} }
h1 { h1 {
@ -322,6 +327,7 @@ small {
mark { mark {
padding: 0.1875em; padding: 0.1875em;
color: var(--bs-highlight-color);
background-color: var(--bs-highlight-bg); background-color: var(--bs-highlight-bg);
} }
@ -537,8 +543,8 @@ legend + * {
} }
[type=search] { [type=search] {
outline-offset: -2px;
-webkit-appearance: textfield; -webkit-appearance: textfield;
outline-offset: -2px;
} }
/* rtl:raw: /* rtl:raw:

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 @@
/*! /*!
* Bootstrap Reboot v5.3.0-alpha3 (https://getbootstrap.com/) * Bootstrap Reboot v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2024 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)
*/ */
:root, :root,
@ -91,12 +91,14 @@
--bs-tertiary-color-rgb: 33, 37, 41; --bs-tertiary-color-rgb: 33, 37, 41;
--bs-tertiary-bg: #f8f9fa; --bs-tertiary-bg: #f8f9fa;
--bs-tertiary-bg-rgb: 248, 249, 250; --bs-tertiary-bg-rgb: 248, 249, 250;
--bs-heading-color: inherit;
--bs-link-color: #0d6efd; --bs-link-color: #0d6efd;
--bs-link-color-rgb: 13, 110, 253; --bs-link-color-rgb: 13, 110, 253;
--bs-link-decoration: underline; --bs-link-decoration: underline;
--bs-link-hover-color: #0a58ca; --bs-link-hover-color: #0a58ca;
--bs-link-hover-color-rgb: 10, 88, 202; --bs-link-hover-color-rgb: 10, 88, 202;
--bs-code-color: #d63384; --bs-code-color: #d63384;
--bs-highlight-color: #212529;
--bs-highlight-bg: #fff3cd; --bs-highlight-bg: #fff3cd;
--bs-border-width: 1px; --bs-border-width: 1px;
--bs-border-style: solid; --bs-border-style: solid;
@ -124,18 +126,18 @@
[data-bs-theme=dark] { [data-bs-theme=dark] {
color-scheme: dark; color-scheme: dark;
--bs-body-color: #adb5bd; --bs-body-color: #dee2e6;
--bs-body-color-rgb: 173, 181, 189; --bs-body-color-rgb: 222, 226, 230;
--bs-body-bg: #212529; --bs-body-bg: #212529;
--bs-body-bg-rgb: 33, 37, 41; --bs-body-bg-rgb: 33, 37, 41;
--bs-emphasis-color: #fff; --bs-emphasis-color: #fff;
--bs-emphasis-color-rgb: 255, 255, 255; --bs-emphasis-color-rgb: 255, 255, 255;
--bs-secondary-color: rgba(173, 181, 189, 0.75); --bs-secondary-color: rgba(222, 226, 230, 0.75);
--bs-secondary-color-rgb: 173, 181, 189; --bs-secondary-color-rgb: 222, 226, 230;
--bs-secondary-bg: #343a40; --bs-secondary-bg: #343a40;
--bs-secondary-bg-rgb: 52, 58, 64; --bs-secondary-bg-rgb: 52, 58, 64;
--bs-tertiary-color: rgba(173, 181, 189, 0.5); --bs-tertiary-color: rgba(222, 226, 230, 0.5);
--bs-tertiary-color-rgb: 173, 181, 189; --bs-tertiary-color-rgb: 222, 226, 230;
--bs-tertiary-bg: #2b3035; --bs-tertiary-bg: #2b3035;
--bs-tertiary-bg-rgb: 43, 48, 53; --bs-tertiary-bg-rgb: 43, 48, 53;
--bs-primary-text-emphasis: #6ea8fe; --bs-primary-text-emphasis: #6ea8fe;
@ -162,11 +164,14 @@
--bs-danger-border-subtle: #842029; --bs-danger-border-subtle: #842029;
--bs-light-border-subtle: #495057; --bs-light-border-subtle: #495057;
--bs-dark-border-subtle: #343a40; --bs-dark-border-subtle: #343a40;
--bs-heading-color: inherit;
--bs-link-color: #6ea8fe; --bs-link-color: #6ea8fe;
--bs-link-hover-color: #8bb9fe; --bs-link-hover-color: #8bb9fe;
--bs-link-color-rgb: 110, 168, 254; --bs-link-color-rgb: 110, 168, 254;
--bs-link-hover-color-rgb: 139, 185, 254; --bs-link-hover-color-rgb: 139, 185, 254;
--bs-code-color: #e685b5; --bs-code-color: #e685b5;
--bs-highlight-color: #dee2e6;
--bs-highlight-bg: #664d03;
--bs-border-color: #495057; --bs-border-color: #495057;
--bs-border-color-translucent: rgba(255, 255, 255, 0.15); --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
--bs-form-valid-color: #75b798; --bs-form-valid-color: #75b798;
@ -213,7 +218,7 @@ h6, h5, h4, h3, h2, h1 {
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
font-weight: 500; font-weight: 500;
line-height: 1.2; line-height: 1.2;
color: var(--bs-heading-color, inherit); color: var(--bs-heading-color);
} }
h1 { h1 {
@ -322,6 +327,7 @@ small {
mark { mark {
padding: 0.1875em; padding: 0.1875em;
color: var(--bs-highlight-color);
background-color: var(--bs-highlight-bg); background-color: var(--bs-highlight-bg);
} }
@ -537,8 +543,8 @@ legend + * {
} }
[type=search] { [type=search] {
outline-offset: -2px;
-webkit-appearance: textfield; -webkit-appearance: textfield;
outline-offset: -2px;
} }
[type="tel"], [type="tel"],

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 @@
/*! /*!
* Bootstrap Utilities v5.3.0-alpha3 (https://getbootstrap.com/) * Bootstrap Utilities v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2024 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)
*/ */
:root, :root,
@ -91,12 +91,14 @@
--bs-tertiary-color-rgb: 33, 37, 41; --bs-tertiary-color-rgb: 33, 37, 41;
--bs-tertiary-bg: #f8f9fa; --bs-tertiary-bg: #f8f9fa;
--bs-tertiary-bg-rgb: 248, 249, 250; --bs-tertiary-bg-rgb: 248, 249, 250;
--bs-heading-color: inherit;
--bs-link-color: #0d6efd; --bs-link-color: #0d6efd;
--bs-link-color-rgb: 13, 110, 253; --bs-link-color-rgb: 13, 110, 253;
--bs-link-decoration: underline; --bs-link-decoration: underline;
--bs-link-hover-color: #0a58ca; --bs-link-hover-color: #0a58ca;
--bs-link-hover-color-rgb: 10, 88, 202; --bs-link-hover-color-rgb: 10, 88, 202;
--bs-code-color: #d63384; --bs-code-color: #d63384;
--bs-highlight-color: #212529;
--bs-highlight-bg: #fff3cd; --bs-highlight-bg: #fff3cd;
--bs-border-width: 1px; --bs-border-width: 1px;
--bs-border-style: solid; --bs-border-style: solid;
@ -124,18 +126,18 @@
[data-bs-theme=dark] { [data-bs-theme=dark] {
color-scheme: dark; color-scheme: dark;
--bs-body-color: #adb5bd; --bs-body-color: #dee2e6;
--bs-body-color-rgb: 173, 181, 189; --bs-body-color-rgb: 222, 226, 230;
--bs-body-bg: #212529; --bs-body-bg: #212529;
--bs-body-bg-rgb: 33, 37, 41; --bs-body-bg-rgb: 33, 37, 41;
--bs-emphasis-color: #fff; --bs-emphasis-color: #fff;
--bs-emphasis-color-rgb: 255, 255, 255; --bs-emphasis-color-rgb: 255, 255, 255;
--bs-secondary-color: rgba(173, 181, 189, 0.75); --bs-secondary-color: rgba(222, 226, 230, 0.75);
--bs-secondary-color-rgb: 173, 181, 189; --bs-secondary-color-rgb: 222, 226, 230;
--bs-secondary-bg: #343a40; --bs-secondary-bg: #343a40;
--bs-secondary-bg-rgb: 52, 58, 64; --bs-secondary-bg-rgb: 52, 58, 64;
--bs-tertiary-color: rgba(173, 181, 189, 0.5); --bs-tertiary-color: rgba(222, 226, 230, 0.5);
--bs-tertiary-color-rgb: 173, 181, 189; --bs-tertiary-color-rgb: 222, 226, 230;
--bs-tertiary-bg: #2b3035; --bs-tertiary-bg: #2b3035;
--bs-tertiary-bg-rgb: 43, 48, 53; --bs-tertiary-bg-rgb: 43, 48, 53;
--bs-primary-text-emphasis: #6ea8fe; --bs-primary-text-emphasis: #6ea8fe;
@ -162,11 +164,14 @@
--bs-danger-border-subtle: #842029; --bs-danger-border-subtle: #842029;
--bs-light-border-subtle: #495057; --bs-light-border-subtle: #495057;
--bs-dark-border-subtle: #343a40; --bs-dark-border-subtle: #343a40;
--bs-heading-color: inherit;
--bs-link-color: #6ea8fe; --bs-link-color: #6ea8fe;
--bs-link-hover-color: #8bb9fe; --bs-link-hover-color: #8bb9fe;
--bs-link-color-rgb: 110, 168, 254; --bs-link-color-rgb: 110, 168, 254;
--bs-link-hover-color-rgb: 139, 185, 254; --bs-link-hover-color-rgb: 139, 185, 254;
--bs-code-color: #e685b5; --bs-code-color: #e685b5;
--bs-highlight-color: #dee2e6;
--bs-highlight-bg: #664d03;
--bs-border-color: #495057; --bs-border-color: #495057;
--bs-border-color-translucent: rgba(255, 255, 255, 0.15); --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
--bs-form-valid-color: #75b798; --bs-form-valid-color: #75b798;
@ -183,141 +188,141 @@
.text-bg-primary { .text-bg-primary {
color: #fff !important; color: #fff !important;
background-color: RGBA(13, 110, 253, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-secondary { .text-bg-secondary {
color: #fff !important; color: #fff !important;
background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-success { .text-bg-success {
color: #fff !important; color: #fff !important;
background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-info { .text-bg-info {
color: #000 !important; color: #000 !important;
background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-warning { .text-bg-warning {
color: #000 !important; color: #000 !important;
background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-danger { .text-bg-danger {
color: #fff !important; color: #fff !important;
background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-light { .text-bg-light {
color: #000 !important; color: #000 !important;
background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-dark { .text-bg-dark {
color: #fff !important; color: #fff !important;
background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.link-primary { .link-primary {
color: RGBA(var(--bs-primary-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-primary:hover, .link-primary:focus { .link-primary:hover, .link-primary:focus {
color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)); color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-secondary { .link-secondary {
color: RGBA(var(--bs-secondary-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-secondary:hover, .link-secondary:focus { .link-secondary:hover, .link-secondary:focus {
color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)); color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-success { .link-success {
color: RGBA(var(--bs-success-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-success:hover, .link-success:focus { .link-success:hover, .link-success:focus {
color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)); color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-info { .link-info {
color: RGBA(var(--bs-info-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-info:hover, .link-info:focus { .link-info:hover, .link-info:focus {
color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)); color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-warning { .link-warning {
color: RGBA(var(--bs-warning-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-warning:hover, .link-warning:focus { .link-warning:hover, .link-warning:focus {
color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)); color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-danger { .link-danger {
color: RGBA(var(--bs-danger-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-danger:hover, .link-danger:focus { .link-danger:hover, .link-danger:focus {
color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)); color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-light { .link-light {
color: RGBA(var(--bs-light-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-light:hover, .link-light:focus { .link-light:hover, .link-light:focus {
color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)); color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-dark { .link-dark {
color: RGBA(var(--bs-dark-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-dark:hover, .link-dark:focus { .link-dark:hover, .link-dark:focus {
color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)); color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-body-emphasis { .link-body-emphasis {
color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)); color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-body-emphasis:hover, .link-body-emphasis:focus { .link-body-emphasis:hover, .link-body-emphasis:focus {
color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)); color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)); -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;
text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)); text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;
} }
.focus-ring:focus { .focus-ring:focus {
@ -534,7 +539,7 @@
.vr { .vr {
display: inline-block; display: inline-block;
align-self: stretch; align-self: stretch;
width: 1px; width: var(--bs-border-width);
min-height: 1em; min-height: 1em;
background-color: currentcolor; background-color: currentcolor;
opacity: 0.25; opacity: 0.25;
@ -714,15 +719,15 @@
} }
.shadow { .shadow {
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; box-shadow: var(--bs-box-shadow) !important;
} }
.shadow-sm { .shadow-sm {
box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; box-shadow: var(--bs-box-shadow-sm) !important;
} }
.shadow-lg { .shadow-lg {
box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; box-shadow: var(--bs-box-shadow-lg) !important;
} }
.shadow-none { .shadow-none {

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 @@
/*! /*!
* Bootstrap Utilities v5.3.0-alpha3 (https://getbootstrap.com/) * Bootstrap Utilities v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors * Copyright 2011-2024 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)
*/ */
:root, :root,
@ -91,12 +91,14 @@
--bs-tertiary-color-rgb: 33, 37, 41; --bs-tertiary-color-rgb: 33, 37, 41;
--bs-tertiary-bg: #f8f9fa; --bs-tertiary-bg: #f8f9fa;
--bs-tertiary-bg-rgb: 248, 249, 250; --bs-tertiary-bg-rgb: 248, 249, 250;
--bs-heading-color: inherit;
--bs-link-color: #0d6efd; --bs-link-color: #0d6efd;
--bs-link-color-rgb: 13, 110, 253; --bs-link-color-rgb: 13, 110, 253;
--bs-link-decoration: underline; --bs-link-decoration: underline;
--bs-link-hover-color: #0a58ca; --bs-link-hover-color: #0a58ca;
--bs-link-hover-color-rgb: 10, 88, 202; --bs-link-hover-color-rgb: 10, 88, 202;
--bs-code-color: #d63384; --bs-code-color: #d63384;
--bs-highlight-color: #212529;
--bs-highlight-bg: #fff3cd; --bs-highlight-bg: #fff3cd;
--bs-border-width: 1px; --bs-border-width: 1px;
--bs-border-style: solid; --bs-border-style: solid;
@ -124,18 +126,18 @@
[data-bs-theme=dark] { [data-bs-theme=dark] {
color-scheme: dark; color-scheme: dark;
--bs-body-color: #adb5bd; --bs-body-color: #dee2e6;
--bs-body-color-rgb: 173, 181, 189; --bs-body-color-rgb: 222, 226, 230;
--bs-body-bg: #212529; --bs-body-bg: #212529;
--bs-body-bg-rgb: 33, 37, 41; --bs-body-bg-rgb: 33, 37, 41;
--bs-emphasis-color: #fff; --bs-emphasis-color: #fff;
--bs-emphasis-color-rgb: 255, 255, 255; --bs-emphasis-color-rgb: 255, 255, 255;
--bs-secondary-color: rgba(173, 181, 189, 0.75); --bs-secondary-color: rgba(222, 226, 230, 0.75);
--bs-secondary-color-rgb: 173, 181, 189; --bs-secondary-color-rgb: 222, 226, 230;
--bs-secondary-bg: #343a40; --bs-secondary-bg: #343a40;
--bs-secondary-bg-rgb: 52, 58, 64; --bs-secondary-bg-rgb: 52, 58, 64;
--bs-tertiary-color: rgba(173, 181, 189, 0.5); --bs-tertiary-color: rgba(222, 226, 230, 0.5);
--bs-tertiary-color-rgb: 173, 181, 189; --bs-tertiary-color-rgb: 222, 226, 230;
--bs-tertiary-bg: #2b3035; --bs-tertiary-bg: #2b3035;
--bs-tertiary-bg-rgb: 43, 48, 53; --bs-tertiary-bg-rgb: 43, 48, 53;
--bs-primary-text-emphasis: #6ea8fe; --bs-primary-text-emphasis: #6ea8fe;
@ -162,11 +164,14 @@
--bs-danger-border-subtle: #842029; --bs-danger-border-subtle: #842029;
--bs-light-border-subtle: #495057; --bs-light-border-subtle: #495057;
--bs-dark-border-subtle: #343a40; --bs-dark-border-subtle: #343a40;
--bs-heading-color: inherit;
--bs-link-color: #6ea8fe; --bs-link-color: #6ea8fe;
--bs-link-hover-color: #8bb9fe; --bs-link-hover-color: #8bb9fe;
--bs-link-color-rgb: 110, 168, 254; --bs-link-color-rgb: 110, 168, 254;
--bs-link-hover-color-rgb: 139, 185, 254; --bs-link-hover-color-rgb: 139, 185, 254;
--bs-code-color: #e685b5; --bs-code-color: #e685b5;
--bs-highlight-color: #dee2e6;
--bs-highlight-bg: #664d03;
--bs-border-color: #495057; --bs-border-color: #495057;
--bs-border-color-translucent: rgba(255, 255, 255, 0.15); --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
--bs-form-valid-color: #75b798; --bs-form-valid-color: #75b798;
@ -183,141 +188,141 @@
.text-bg-primary { .text-bg-primary {
color: #fff !important; color: #fff !important;
background-color: RGBA(13, 110, 253, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-secondary { .text-bg-secondary {
color: #fff !important; color: #fff !important;
background-color: RGBA(108, 117, 125, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-success { .text-bg-success {
color: #fff !important; color: #fff !important;
background-color: RGBA(25, 135, 84, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-info { .text-bg-info {
color: #000 !important; color: #000 !important;
background-color: RGBA(13, 202, 240, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-warning { .text-bg-warning {
color: #000 !important; color: #000 !important;
background-color: RGBA(255, 193, 7, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-danger { .text-bg-danger {
color: #fff !important; color: #fff !important;
background-color: RGBA(220, 53, 69, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-light { .text-bg-light {
color: #000 !important; color: #000 !important;
background-color: RGBA(248, 249, 250, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.text-bg-dark { .text-bg-dark {
color: #fff !important; color: #fff !important;
background-color: RGBA(33, 37, 41, var(--bs-bg-opacity, 1)) !important; background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important;
} }
.link-primary { .link-primary {
color: RGBA(var(--bs-primary-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-primary:hover, .link-primary:focus { .link-primary:hover, .link-primary:focus {
color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)); color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-secondary { .link-secondary {
color: RGBA(var(--bs-secondary-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-secondary:hover, .link-secondary:focus { .link-secondary:hover, .link-secondary:focus {
color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)); color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-success { .link-success {
color: RGBA(var(--bs-success-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-success:hover, .link-success:focus { .link-success:hover, .link-success:focus {
color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)); color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-info { .link-info {
color: RGBA(var(--bs-info-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-info:hover, .link-info:focus { .link-info:hover, .link-info:focus {
color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)); color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-warning { .link-warning {
color: RGBA(var(--bs-warning-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-warning:hover, .link-warning:focus { .link-warning:hover, .link-warning:focus {
color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)); color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-danger { .link-danger {
color: RGBA(var(--bs-danger-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-danger:hover, .link-danger:focus { .link-danger:hover, .link-danger:focus {
color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)); color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-light { .link-light {
color: RGBA(var(--bs-light-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-light:hover, .link-light:focus { .link-light:hover, .link-light:focus {
color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)); color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-dark { .link-dark {
color: RGBA(var(--bs-dark-rgb, var(--bs-link-opacity, 1))); color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-dark:hover, .link-dark:focus { .link-dark:hover, .link-dark:focus {
color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)); color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;
} }
.link-body-emphasis { .link-body-emphasis {
color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)); color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)); -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)); text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;
} }
.link-body-emphasis:hover, .link-body-emphasis:focus { .link-body-emphasis:hover, .link-body-emphasis:focus {
color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)); color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;
-webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)); -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;
text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)); text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;
} }
.focus-ring:focus { .focus-ring:focus {
@ -534,7 +539,7 @@
.vr { .vr {
display: inline-block; display: inline-block;
align-self: stretch; align-self: stretch;
width: 1px; width: var(--bs-border-width);
min-height: 1em; min-height: 1em;
background-color: currentcolor; background-color: currentcolor;
opacity: 0.25; opacity: 0.25;
@ -714,15 +719,15 @@
} }
.shadow { .shadow {
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; box-shadow: var(--bs-box-shadow) !important;
} }
.shadow-sm { .shadow-sm {
box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; box-shadow: var(--bs-box-shadow-sm) !important;
} }
.shadow-lg { .shadow-lg {
box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; box-shadow: var(--bs-box-shadow-lg) !important;
} }
.shadow-none { .shadow-none {

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 it is too large Load diff

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 it is too large Load diff

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 @@
/*! /*!
* Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/) * Bootstrap v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2024 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)
*/ */
(function (global, factory) { (function (global, factory) {
@ -210,7 +210,6 @@
const reflow = element => { const reflow = element => {
element.offsetHeight; // eslint-disable-line no-unused-expressions element.offsetHeight; // eslint-disable-line no-unused-expressions
}; };
const getjQuery = () => { const getjQuery = () => {
if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return window.jQuery; return window.jQuery;
@ -311,6 +310,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -589,6 +589,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Class definition * Class definition
*/ */
@ -641,11 +642,12 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
const VERSION = '5.3.0-alpha2'; const VERSION = '5.3.3';
/** /**
* Class definition * Class definition
@ -708,6 +710,7 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const getSelector = element => { const getSelector = element => {
let selector = element.getAttribute('data-bs-target'); let selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
@ -727,7 +730,7 @@
} }
selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null; selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;
} }
return parseSelector(selector); return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;
}; };
const SelectorEngine = { const SelectorEngine = {
find(selector, element = document.documentElement) { find(selector, element = document.documentElement) {
@ -796,6 +799,7 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const enableDismissTrigger = (component, method = 'hide') => { const enableDismissTrigger = (component, method = 'hide') => {
const clickEvent = `click.dismiss${component.EVENT_KEY}`; const clickEvent = `click.dismiss${component.EVENT_KEY}`;
const name = component.NAME; const name = component.NAME;
@ -821,6 +825,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -895,6 +900,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -958,6 +964,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -1077,6 +1084,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -1449,6 +1457,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2126,7 +2135,6 @@
} }
if (!contains(state.elements.popper, arrowElement)) { if (!contains(state.elements.popper, arrowElement)) {
return; return;
} }
@ -2268,7 +2276,6 @@
adaptive = _options$adaptive === void 0 ? true : _options$adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
_options$roundOffsets = options.roundOffsets, _options$roundOffsets = options.roundOffsets,
roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
var commonStyles = { var commonStyles = {
placement: getBasePlacement(state.placement), placement: getBasePlacement(state.placement),
variation: getVariation(state.placement), variation: getVariation(state.placement),
@ -3336,8 +3343,7 @@
state.orderedModifiers = orderedModifiers.filter(function (m) { state.orderedModifiers = orderedModifiers.filter(function (m) {
return m.enabled; return m.enabled;
}); // Validate the provided modifiers so that the consumer will get warned });
runModifierEffects(); runModifierEffects();
return instance.update(); return instance.update();
}, },
@ -3357,7 +3363,6 @@
// anymore // anymore
if (!areValidElements(reference, popper)) { if (!areValidElements(reference, popper)) {
return; return;
} // Store the reference and popper rects to be read by modifiers } // Store the reference and popper rects to be read by modifiers
@ -3382,7 +3387,6 @@
}); });
for (var index = 0; index < state.orderedModifiers.length; index++) { for (var index = 0; index < state.orderedModifiers.length; index++) {
if (state.reset === true) { if (state.reset === true) {
state.reset = false; state.reset = false;
index = -1; index = -1;
@ -3420,7 +3424,6 @@
}; };
if (!areValidElements(reference, popper)) { if (!areValidElements(reference, popper)) {
return instance; return instance;
} }
@ -3435,11 +3438,11 @@
// one. // one.
function runModifierEffects() { function runModifierEffects() {
state.orderedModifiers.forEach(function (_ref3) { state.orderedModifiers.forEach(function (_ref) {
var name = _ref3.name, var name = _ref.name,
_ref3$options = _ref3.options, _ref$options = _ref.options,
options = _ref3$options === void 0 ? {} : _ref3$options, options = _ref$options === void 0 ? {} : _ref$options,
effect = _ref3.effect; effect = _ref.effect;
if (typeof effect === 'function') { if (typeof effect === 'function') {
var cleanupFn = effect({ var cleanupFn = effect({
@ -3527,6 +3530,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -3894,6 +3898,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -3910,7 +3915,6 @@
// if false, we use the backdrop helper without adding any element to the dom // if false, we use the backdrop helper without adding any element to the dom
rootElement: 'body' // give the choice to place backdrop under different elements rootElement: 'body' // give the choice to place backdrop under different elements
}; };
const DefaultType$8 = { const DefaultType$8 = {
className: 'string', className: 'string',
clickCallback: '(function|null)', clickCallback: '(function|null)',
@ -4018,6 +4022,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -4034,7 +4039,6 @@
autofocus: true, autofocus: true,
trapElement: null // The element to trap focus inside of trapElement: null // The element to trap focus inside of
}; };
const DefaultType$7 = { const DefaultType$7 = {
autofocus: 'boolean', autofocus: 'boolean',
trapElement: 'element' trapElement: 'element'
@ -4116,6 +4120,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -4213,6 +4218,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -4517,6 +4523,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -4747,34 +4754,6 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
/**
* A pattern that recognizes a commonly useful subset of URLs that are safe.
*
* Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
*/
const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
/**
* A pattern that matches safe data URLs. Only matches image, video and audio types.
*
* Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
*/
const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
const allowedAttribute = (attribute, allowedAttributeList) => {
const attributeName = attribute.nodeName.toLowerCase();
if (allowedAttributeList.includes(attributeName)) {
if (uriAttributes.has(attributeName)) {
return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));
}
return true;
}
// Check if a regular expression validates the attribute.
return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
};
// js-docs-start allow-list // js-docs-start allow-list
const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
const DefaultAllowlist = { const DefaultAllowlist = {
@ -4786,7 +4765,10 @@
br: [], br: [],
col: [], col: [],
code: [], code: [],
dd: [],
div: [], div: [],
dl: [],
dt: [],
em: [], em: [],
hr: [], hr: [],
h1: [], h1: [],
@ -4812,6 +4794,28 @@
}; };
// js-docs-end allow-list // js-docs-end allow-list
const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
/**
* A pattern that recognizes URLs that are safe wrt. XSS in URL navigation
* contexts.
*
* Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38
*/
// eslint-disable-next-line unicorn/better-regex
const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
const allowedAttribute = (attribute, allowedAttributeList) => {
const attributeName = attribute.nodeName.toLowerCase();
if (allowedAttributeList.includes(attributeName)) {
if (uriAttributes.has(attributeName)) {
return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
}
return true;
}
// Check if a regular expression validates the attribute.
return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
};
function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
if (!unsafeHtml.length) { if (!unsafeHtml.length) {
return unsafeHtml; return unsafeHtml;
@ -4846,6 +4850,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -4981,6 +4986,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -5492,6 +5498,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -5572,6 +5579,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -5750,11 +5758,11 @@
if (!anchor.hash || isDisabled(anchor)) { if (!anchor.hash || isDisabled(anchor)) {
continue; continue;
} }
const observableSection = SelectorEngine.findOne(anchor.hash, this._element); const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
// ensure that the observableSection exists & is visible // ensure that the observableSection exists & is visible
if (isVisible(observableSection)) { if (isVisible(observableSection)) {
this._targetLinks.set(anchor.hash, anchor); this._targetLinks.set(decodeURI(anchor.hash), anchor);
this._observableSections.set(anchor.hash, observableSection); this._observableSections.set(anchor.hash, observableSection);
} }
} }
@ -5831,6 +5839,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -5849,13 +5858,15 @@
const ARROW_RIGHT_KEY = 'ArrowRight'; const ARROW_RIGHT_KEY = 'ArrowRight';
const ARROW_UP_KEY = 'ArrowUp'; const ARROW_UP_KEY = 'ArrowUp';
const ARROW_DOWN_KEY = 'ArrowDown'; const ARROW_DOWN_KEY = 'ArrowDown';
const HOME_KEY = 'Home';
const END_KEY = 'End';
const CLASS_NAME_ACTIVE = 'active'; const CLASS_NAME_ACTIVE = 'active';
const CLASS_NAME_FADE$1 = 'fade'; const CLASS_NAME_FADE$1 = 'fade';
const CLASS_NAME_SHOW$1 = 'show'; const CLASS_NAME_SHOW$1 = 'show';
const CLASS_DROPDOWN = 'dropdown'; const CLASS_DROPDOWN = 'dropdown';
const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'; const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_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}`;
@ -5955,13 +5966,19 @@
this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
} }
_keydown(event) { _keydown(event) {
if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) { if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {
return; return;
} }
event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
event.preventDefault(); event.preventDefault();
const children = this._getChildren().filter(element => !isDisabled(element));
let nextActiveElement;
if ([HOME_KEY, END_KEY].includes(event.key)) {
nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];
} else {
const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); nextActiveElement = getNextActiveElement(children, event.target, isNext, true);
}
if (nextActiveElement) { if (nextActiveElement) {
nextActiveElement.focus({ nextActiveElement.focus({
preventScroll: true preventScroll: true
@ -6092,6 +6109,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -6274,6 +6292,7 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const index_umd = { const index_umd = {
Alert, Alert,
Button, Button,

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 @@
/*! /*!
* Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/) * Bootstrap v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2024 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';
@ -206,7 +206,6 @@ const noop = () => {};
const reflow = element => { const reflow = element => {
element.offsetHeight; // eslint-disable-line no-unused-expressions element.offsetHeight; // eslint-disable-line no-unused-expressions
}; };
const getjQuery = () => { const getjQuery = () => {
if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return window.jQuery; return window.jQuery;
@ -307,6 +306,7 @@ const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -585,6 +585,7 @@ const Manipulator = {
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Class definition * Class definition
*/ */
@ -637,11 +638,12 @@ class Config {
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
const VERSION = '5.3.0-alpha2'; const VERSION = '5.3.3';
/** /**
* Class definition * Class definition
@ -704,6 +706,7 @@ class BaseComponent extends Config {
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const getSelector = element => { const getSelector = element => {
let selector = element.getAttribute('data-bs-target'); let selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
@ -723,7 +726,7 @@ const getSelector = element => {
} }
selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null; selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;
} }
return parseSelector(selector); return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;
}; };
const SelectorEngine = { const SelectorEngine = {
find(selector, element = document.documentElement) { find(selector, element = document.documentElement) {
@ -792,6 +795,7 @@ const SelectorEngine = {
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const enableDismissTrigger = (component, method = 'hide') => { const enableDismissTrigger = (component, method = 'hide') => {
const clickEvent = `click.dismiss${component.EVENT_KEY}`; const clickEvent = `click.dismiss${component.EVENT_KEY}`;
const name = component.NAME; const name = component.NAME;
@ -817,6 +821,7 @@ const enableDismissTrigger = (component, method = 'hide') => {
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -891,6 +896,7 @@ defineJQueryPlugin(Alert);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -954,6 +960,7 @@ defineJQueryPlugin(Button);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -1073,6 +1080,7 @@ class Swipe extends Config {
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -1445,6 +1453,7 @@ defineJQueryPlugin(Carousel);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -1678,6 +1687,7 @@ defineJQueryPlugin(Collapse);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2045,6 +2055,7 @@ defineJQueryPlugin(Dropdown);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2061,7 +2072,6 @@ const Default$8 = {
// if false, we use the backdrop helper without adding any element to the dom // if false, we use the backdrop helper without adding any element to the dom
rootElement: 'body' // give the choice to place backdrop under different elements rootElement: 'body' // give the choice to place backdrop under different elements
}; };
const DefaultType$8 = { const DefaultType$8 = {
className: 'string', className: 'string',
clickCallback: '(function|null)', clickCallback: '(function|null)',
@ -2169,6 +2179,7 @@ class Backdrop extends Config {
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2185,7 +2196,6 @@ const Default$7 = {
autofocus: true, autofocus: true,
trapElement: null // The element to trap focus inside of trapElement: null // The element to trap focus inside of
}; };
const DefaultType$7 = { const DefaultType$7 = {
autofocus: 'boolean', autofocus: 'boolean',
trapElement: 'element' trapElement: 'element'
@ -2267,6 +2277,7 @@ class FocusTrap extends Config {
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2364,6 +2375,7 @@ class ScrollBarHelper {
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2668,6 +2680,7 @@ defineJQueryPlugin(Modal);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2898,34 +2911,6 @@ defineJQueryPlugin(Offcanvas);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
/**
* A pattern that recognizes a commonly useful subset of URLs that are safe.
*
* Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
*/
const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
/**
* A pattern that matches safe data URLs. Only matches image, video and audio types.
*
* Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
*/
const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
const allowedAttribute = (attribute, allowedAttributeList) => {
const attributeName = attribute.nodeName.toLowerCase();
if (allowedAttributeList.includes(attributeName)) {
if (uriAttributes.has(attributeName)) {
return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));
}
return true;
}
// Check if a regular expression validates the attribute.
return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
};
// js-docs-start allow-list // js-docs-start allow-list
const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
const DefaultAllowlist = { const DefaultAllowlist = {
@ -2937,7 +2922,10 @@ const DefaultAllowlist = {
br: [], br: [],
col: [], col: [],
code: [], code: [],
dd: [],
div: [], div: [],
dl: [],
dt: [],
em: [], em: [],
hr: [], hr: [],
h1: [], h1: [],
@ -2963,6 +2951,28 @@ const DefaultAllowlist = {
}; };
// js-docs-end allow-list // js-docs-end allow-list
const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
/**
* A pattern that recognizes URLs that are safe wrt. XSS in URL navigation
* contexts.
*
* Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38
*/
// eslint-disable-next-line unicorn/better-regex
const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
const allowedAttribute = (attribute, allowedAttributeList) => {
const attributeName = attribute.nodeName.toLowerCase();
if (allowedAttributeList.includes(attributeName)) {
if (uriAttributes.has(attributeName)) {
return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
}
return true;
}
// Check if a regular expression validates the attribute.
return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
};
function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
if (!unsafeHtml.length) { if (!unsafeHtml.length) {
return unsafeHtml; return unsafeHtml;
@ -2997,6 +3007,7 @@ function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -3132,6 +3143,7 @@ class TemplateFactory extends Config {
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -3643,6 +3655,7 @@ defineJQueryPlugin(Tooltip);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -3723,6 +3736,7 @@ defineJQueryPlugin(Popover);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -3901,11 +3915,11 @@ class ScrollSpy extends BaseComponent {
if (!anchor.hash || isDisabled(anchor)) { if (!anchor.hash || isDisabled(anchor)) {
continue; continue;
} }
const observableSection = SelectorEngine.findOne(anchor.hash, this._element); const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
// ensure that the observableSection exists & is visible // ensure that the observableSection exists & is visible
if (isVisible(observableSection)) { if (isVisible(observableSection)) {
this._targetLinks.set(anchor.hash, anchor); this._targetLinks.set(decodeURI(anchor.hash), anchor);
this._observableSections.set(anchor.hash, observableSection); this._observableSections.set(anchor.hash, observableSection);
} }
} }
@ -3982,6 +3996,7 @@ defineJQueryPlugin(ScrollSpy);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -4000,13 +4015,15 @@ const ARROW_LEFT_KEY = 'ArrowLeft';
const ARROW_RIGHT_KEY = 'ArrowRight'; const ARROW_RIGHT_KEY = 'ArrowRight';
const ARROW_UP_KEY = 'ArrowUp'; const ARROW_UP_KEY = 'ArrowUp';
const ARROW_DOWN_KEY = 'ArrowDown'; const ARROW_DOWN_KEY = 'ArrowDown';
const HOME_KEY = 'Home';
const END_KEY = 'End';
const CLASS_NAME_ACTIVE = 'active'; const CLASS_NAME_ACTIVE = 'active';
const CLASS_NAME_FADE$1 = 'fade'; const CLASS_NAME_FADE$1 = 'fade';
const CLASS_NAME_SHOW$1 = 'show'; const CLASS_NAME_SHOW$1 = 'show';
const CLASS_DROPDOWN = 'dropdown'; const CLASS_DROPDOWN = 'dropdown';
const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'; const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_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}`;
@ -4106,13 +4123,19 @@ class Tab extends BaseComponent {
this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
} }
_keydown(event) { _keydown(event) {
if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) { if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {
return; return;
} }
event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
event.preventDefault(); event.preventDefault();
const children = this._getChildren().filter(element => !isDisabled(element));
let nextActiveElement;
if ([HOME_KEY, END_KEY].includes(event.key)) {
nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];
} else {
const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); nextActiveElement = getNextActiveElement(children, event.target, isNext, true);
}
if (nextActiveElement) { if (nextActiveElement) {
nextActiveElement.focus({ nextActiveElement.focus({
preventScroll: true preventScroll: true
@ -4243,6 +4266,7 @@ defineJQueryPlugin(Tab);
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */

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 @@
/*! /*!
* Bootstrap v5.3.0-alpha3 (https://getbootstrap.com/) * Bootstrap v5.3.3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2024 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)
*/ */
(function (global, factory) { (function (global, factory) {
@ -229,7 +229,6 @@
const reflow = element => { const reflow = element => {
element.offsetHeight; // eslint-disable-line no-unused-expressions element.offsetHeight; // eslint-disable-line no-unused-expressions
}; };
const getjQuery = () => { const getjQuery = () => {
if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return window.jQuery; return window.jQuery;
@ -330,6 +329,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -608,6 +608,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Class definition * Class definition
*/ */
@ -660,11 +661,12 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
const VERSION = '5.3.0-alpha2'; const VERSION = '5.3.3';
/** /**
* Class definition * Class definition
@ -727,6 +729,7 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const getSelector = element => { const getSelector = element => {
let selector = element.getAttribute('data-bs-target'); let selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
@ -746,7 +749,7 @@
} }
selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null; selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;
} }
return parseSelector(selector); return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;
}; };
const SelectorEngine = { const SelectorEngine = {
find(selector, element = document.documentElement) { find(selector, element = document.documentElement) {
@ -815,6 +818,7 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const enableDismissTrigger = (component, method = 'hide') => { const enableDismissTrigger = (component, method = 'hide') => {
const clickEvent = `click.dismiss${component.EVENT_KEY}`; const clickEvent = `click.dismiss${component.EVENT_KEY}`;
const name = component.NAME; const name = component.NAME;
@ -840,6 +844,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -914,6 +919,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -977,6 +983,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -1096,6 +1103,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -1468,6 +1476,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -1701,6 +1710,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2068,6 +2078,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2084,7 +2095,6 @@
// if false, we use the backdrop helper without adding any element to the dom // if false, we use the backdrop helper without adding any element to the dom
rootElement: 'body' // give the choice to place backdrop under different elements rootElement: 'body' // give the choice to place backdrop under different elements
}; };
const DefaultType$8 = { const DefaultType$8 = {
className: 'string', className: 'string',
clickCallback: '(function|null)', clickCallback: '(function|null)',
@ -2192,6 +2202,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2208,7 +2219,6 @@
autofocus: true, autofocus: true,
trapElement: null // The element to trap focus inside of trapElement: null // The element to trap focus inside of
}; };
const DefaultType$7 = { const DefaultType$7 = {
autofocus: 'boolean', autofocus: 'boolean',
trapElement: 'element' trapElement: 'element'
@ -2290,6 +2300,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2387,6 +2398,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2691,6 +2703,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -2921,34 +2934,6 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
/**
* A pattern that recognizes a commonly useful subset of URLs that are safe.
*
* Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
*/
const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
/**
* A pattern that matches safe data URLs. Only matches image, video and audio types.
*
* Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
*/
const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
const allowedAttribute = (attribute, allowedAttributeList) => {
const attributeName = attribute.nodeName.toLowerCase();
if (allowedAttributeList.includes(attributeName)) {
if (uriAttributes.has(attributeName)) {
return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));
}
return true;
}
// Check if a regular expression validates the attribute.
return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
};
// js-docs-start allow-list // js-docs-start allow-list
const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
const DefaultAllowlist = { const DefaultAllowlist = {
@ -2960,7 +2945,10 @@
br: [], br: [],
col: [], col: [],
code: [], code: [],
dd: [],
div: [], div: [],
dl: [],
dt: [],
em: [], em: [],
hr: [], hr: [],
h1: [], h1: [],
@ -2986,6 +2974,28 @@
}; };
// js-docs-end allow-list // js-docs-end allow-list
const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
/**
* A pattern that recognizes URLs that are safe wrt. XSS in URL navigation
* contexts.
*
* Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38
*/
// eslint-disable-next-line unicorn/better-regex
const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
const allowedAttribute = (attribute, allowedAttributeList) => {
const attributeName = attribute.nodeName.toLowerCase();
if (allowedAttributeList.includes(attributeName)) {
if (uriAttributes.has(attributeName)) {
return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
}
return true;
}
// Check if a regular expression validates the attribute.
return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
};
function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
if (!unsafeHtml.length) { if (!unsafeHtml.length) {
return unsafeHtml; return unsafeHtml;
@ -3020,6 +3030,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -3155,6 +3166,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -3666,6 +3678,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -3746,6 +3759,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -3924,11 +3938,11 @@
if (!anchor.hash || isDisabled(anchor)) { if (!anchor.hash || isDisabled(anchor)) {
continue; continue;
} }
const observableSection = SelectorEngine.findOne(anchor.hash, this._element); const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
// ensure that the observableSection exists & is visible // ensure that the observableSection exists & is visible
if (isVisible(observableSection)) { if (isVisible(observableSection)) {
this._targetLinks.set(anchor.hash, anchor); this._targetLinks.set(decodeURI(anchor.hash), anchor);
this._observableSections.set(anchor.hash, observableSection); this._observableSections.set(anchor.hash, observableSection);
} }
} }
@ -4005,6 +4019,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -4023,13 +4038,15 @@
const ARROW_RIGHT_KEY = 'ArrowRight'; const ARROW_RIGHT_KEY = 'ArrowRight';
const ARROW_UP_KEY = 'ArrowUp'; const ARROW_UP_KEY = 'ArrowUp';
const ARROW_DOWN_KEY = 'ArrowDown'; const ARROW_DOWN_KEY = 'ArrowDown';
const HOME_KEY = 'Home';
const END_KEY = 'End';
const CLASS_NAME_ACTIVE = 'active'; const CLASS_NAME_ACTIVE = 'active';
const CLASS_NAME_FADE$1 = 'fade'; const CLASS_NAME_FADE$1 = 'fade';
const CLASS_NAME_SHOW$1 = 'show'; const CLASS_NAME_SHOW$1 = 'show';
const CLASS_DROPDOWN = 'dropdown'; const CLASS_DROPDOWN = 'dropdown';
const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'; const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_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}`;
@ -4129,13 +4146,19 @@
this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
} }
_keydown(event) { _keydown(event) {
if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) { if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {
return; return;
} }
event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
event.preventDefault(); event.preventDefault();
const children = this._getChildren().filter(element => !isDisabled(element));
let nextActiveElement;
if ([HOME_KEY, END_KEY].includes(event.key)) {
nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];
} else {
const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); nextActiveElement = getNextActiveElement(children, event.target, isNext, true);
}
if (nextActiveElement) { if (nextActiveElement) {
nextActiveElement.focus({ nextActiveElement.focus({
preventScroll: true preventScroll: true
@ -4266,6 +4289,7 @@
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* Constants * Constants
*/ */
@ -4448,6 +4472,7 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
const index_umd = { const index_umd = {
Alert, Alert,
Button, Button,

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