From 32f2de17d4faeb7b74b0f1b46c43800e3acedf36 Mon Sep 17 00:00:00 2001 From: Mario Date: Thu, 5 Oct 2023 10:17:07 +0000 Subject: composer update bootstrap --- vendor/twbs/bootstrap/.bundlewatch.config.json | 4 +- vendor/twbs/bootstrap/.cspell.json | 1 + vendor/twbs/bootstrap/.eslintrc.json | 2 +- vendor/twbs/bootstrap/.github/CONTRIBUTING.md | 7 + .../bootstrap/.github/workflows/browserstack.yml | 2 +- .../bootstrap/.github/workflows/bundlewatch.yml | 2 +- .../.github/workflows/calibreapp-image-actions.yml | 8 +- vendor/twbs/bootstrap/.github/workflows/codeql.yml | 2 +- vendor/twbs/bootstrap/.github/workflows/cspell.yml | 4 +- vendor/twbs/bootstrap/.github/workflows/css.yml | 2 +- vendor/twbs/bootstrap/.github/workflows/docs.yml | 2 +- vendor/twbs/bootstrap/.github/workflows/js.yml | 2 +- vendor/twbs/bootstrap/.github/workflows/lint.yml | 2 +- .../twbs/bootstrap/.github/workflows/node-sass.yml | 2 +- vendor/twbs/bootstrap/README.md | 12 +- vendor/twbs/bootstrap/build/banner.js | 15 - vendor/twbs/bootstrap/build/banner.mjs | 20 + vendor/twbs/bootstrap/build/build-plugins.js | 103 - vendor/twbs/bootstrap/build/build-plugins.mjs | 105 + vendor/twbs/bootstrap/build/change-version.js | 101 - vendor/twbs/bootstrap/build/change-version.mjs | 113 + vendor/twbs/bootstrap/build/generate-sri.js | 63 - vendor/twbs/bootstrap/build/generate-sri.mjs | 64 + vendor/twbs/bootstrap/build/postcss.config.js | 19 - vendor/twbs/bootstrap/build/postcss.config.mjs | 17 + vendor/twbs/bootstrap/build/rollup.config.js | 57 - vendor/twbs/bootstrap/build/rollup.config.mjs | 59 + vendor/twbs/bootstrap/build/vnu-jar.js | 61 - vendor/twbs/bootstrap/build/vnu-jar.mjs | 59 + vendor/twbs/bootstrap/build/zip-examples.js | 90 - vendor/twbs/bootstrap/build/zip-examples.mjs | 101 + vendor/twbs/bootstrap/dist/css/bootstrap-grid.css | 26 +- .../twbs/bootstrap/dist/css/bootstrap-grid.css.map | 2 +- .../twbs/bootstrap/dist/css/bootstrap-grid.min.css | 4 +- .../bootstrap/dist/css/bootstrap-grid.min.css.map | 2 +- .../twbs/bootstrap/dist/css/bootstrap-grid.rtl.css | 26 +- .../bootstrap/dist/css/bootstrap-grid.rtl.css.map | 2 +- .../bootstrap/dist/css/bootstrap-grid.rtl.min.css | 4 +- .../dist/css/bootstrap-grid.rtl.min.css.map | 2 +- .../twbs/bootstrap/dist/css/bootstrap-reboot.css | 20 +- .../bootstrap/dist/css/bootstrap-reboot.css.map | 2 +- .../bootstrap/dist/css/bootstrap-reboot.min.css | 4 +- .../dist/css/bootstrap-reboot.min.css.map | 2 +- .../bootstrap/dist/css/bootstrap-reboot.rtl.css | 20 +- .../dist/css/bootstrap-reboot.rtl.css.map | 2 +- .../dist/css/bootstrap-reboot.rtl.min.css | 4 +- .../dist/css/bootstrap-reboot.rtl.min.css.map | 2 +- .../bootstrap/dist/css/bootstrap-utilities.css | 41 +- .../bootstrap/dist/css/bootstrap-utilities.css.map | 2 +- .../bootstrap/dist/css/bootstrap-utilities.min.css | 4 +- .../dist/css/bootstrap-utilities.min.css.map | 2 +- .../bootstrap/dist/css/bootstrap-utilities.rtl.css | 41 +- .../dist/css/bootstrap-utilities.rtl.css.map | 2 +- .../dist/css/bootstrap-utilities.rtl.min.css | 4 +- .../dist/css/bootstrap-utilities.rtl.min.css.map | 2 +- vendor/twbs/bootstrap/dist/css/bootstrap.css | 161 +- vendor/twbs/bootstrap/dist/css/bootstrap.css.map | 2 +- vendor/twbs/bootstrap/dist/css/bootstrap.min.css | 4 +- .../twbs/bootstrap/dist/css/bootstrap.min.css.map | 2 +- vendor/twbs/bootstrap/dist/css/bootstrap.rtl.css | 161 +- .../twbs/bootstrap/dist/css/bootstrap.rtl.css.map | 2 +- .../twbs/bootstrap/dist/css/bootstrap.rtl.min.css | 4 +- .../bootstrap/dist/css/bootstrap.rtl.min.css.map | 2 +- vendor/twbs/bootstrap/dist/js/bootstrap.bundle.js | 24 +- .../twbs/bootstrap/dist/js/bootstrap.bundle.js.map | 2 +- .../twbs/bootstrap/dist/js/bootstrap.bundle.min.js | 4 +- .../bootstrap/dist/js/bootstrap.bundle.min.js.map | 2 +- vendor/twbs/bootstrap/dist/js/bootstrap.esm.js | 24 +- vendor/twbs/bootstrap/dist/js/bootstrap.esm.js.map | 2 +- vendor/twbs/bootstrap/dist/js/bootstrap.esm.min.js | 4 +- .../bootstrap/dist/js/bootstrap.esm.min.js.map | 2 +- vendor/twbs/bootstrap/dist/js/bootstrap.js | 24 +- vendor/twbs/bootstrap/dist/js/bootstrap.js.map | 2 +- vendor/twbs/bootstrap/dist/js/bootstrap.min.js | 4 +- vendor/twbs/bootstrap/dist/js/bootstrap.min.js.map | 2 +- vendor/twbs/bootstrap/hugo.yml | 28 +- vendor/twbs/bootstrap/js/dist/alert.js | 2 +- vendor/twbs/bootstrap/js/dist/base-component.js | 4 +- .../twbs/bootstrap/js/dist/base-component.js.map | 2 +- vendor/twbs/bootstrap/js/dist/button.js | 2 +- vendor/twbs/bootstrap/js/dist/carousel.js | 2 +- vendor/twbs/bootstrap/js/dist/collapse.js | 2 +- vendor/twbs/bootstrap/js/dist/dom/data.js | 2 +- vendor/twbs/bootstrap/js/dist/dom/event-handler.js | 2 +- vendor/twbs/bootstrap/js/dist/dom/manipulator.js | 2 +- .../twbs/bootstrap/js/dist/dom/selector-engine.js | 6 +- .../bootstrap/js/dist/dom/selector-engine.js.map | 2 +- vendor/twbs/bootstrap/js/dist/dropdown.js | 2 +- vendor/twbs/bootstrap/js/dist/modal.js | 2 +- vendor/twbs/bootstrap/js/dist/offcanvas.js | 2 +- vendor/twbs/bootstrap/js/dist/popover.js | 2 +- vendor/twbs/bootstrap/js/dist/scrollspy.js | 2 +- vendor/twbs/bootstrap/js/dist/tab.js | 18 +- vendor/twbs/bootstrap/js/dist/tab.js.map | 2 +- vendor/twbs/bootstrap/js/dist/toast.js | 2 +- vendor/twbs/bootstrap/js/dist/tooltip.js | 2 +- vendor/twbs/bootstrap/js/dist/util/backdrop.js | 2 +- .../bootstrap/js/dist/util/component-functions.js | 2 +- vendor/twbs/bootstrap/js/dist/util/config.js | 2 +- vendor/twbs/bootstrap/js/dist/util/focustrap.js | 2 +- vendor/twbs/bootstrap/js/dist/util/index.js | 2 +- vendor/twbs/bootstrap/js/dist/util/sanitizer.js | 2 +- vendor/twbs/bootstrap/js/dist/util/scrollbar.js | 2 +- vendor/twbs/bootstrap/js/dist/util/swipe.js | 2 +- .../bootstrap/js/dist/util/template-factory.js | 2 +- vendor/twbs/bootstrap/js/src/base-component.js | 2 +- .../twbs/bootstrap/js/src/dom/selector-engine.js | 4 +- vendor/twbs/bootstrap/js/src/tab.js | 18 +- vendor/twbs/bootstrap/package-lock.json | 7728 +++++++++++--------- vendor/twbs/bootstrap/package.js | 2 +- vendor/twbs/bootstrap/package.json | 78 +- vendor/twbs/bootstrap/scss/_buttons.scss | 2 +- vendor/twbs/bootstrap/scss/_nav.scss | 16 +- vendor/twbs/bootstrap/scss/_reboot.scss | 9 +- vendor/twbs/bootstrap/scss/_root.scss | 3 + vendor/twbs/bootstrap/scss/_utilities.scss | 6 +- vendor/twbs/bootstrap/scss/_variables-dark.scss | 4 +- vendor/twbs/bootstrap/scss/_variables.scss | 38 +- .../bootstrap/scss/forms/_floating-labels.scss | 3 +- vendor/twbs/bootstrap/scss/forms/_form-check.scss | 3 +- .../twbs/bootstrap/scss/forms/_form-control.scss | 2 +- vendor/twbs/bootstrap/scss/forms/_form-range.scss | 6 +- vendor/twbs/bootstrap/scss/forms/_form-select.scss | 2 +- vendor/twbs/bootstrap/scss/helpers/_color-bg.scss | 3 +- vendor/twbs/bootstrap/scss/helpers/_vr.scss | 2 +- vendor/twbs/bootstrap/scss/mixins/_banner.scss | 2 +- vendor/twbs/bootstrap/scss/mixins/_grid.scss | 2 +- .../twbs/bootstrap/site/assets/js/code-examples.js | 13 +- .../site/assets/scss/_component-examples.scss | 7 +- .../twbs/bootstrap/site/assets/scss/_navbar.scss | 2 +- .../bootstrap/site/assets/scss/_scrolling.scss | 3 + .../twbs/bootstrap/site/assets/scss/_sidebar.scss | 2 +- .../site/content/docs/5.3/components/alerts.md | 2 +- .../content/docs/5.3/components/button-group.md | 10 +- .../site/content/docs/5.3/components/buttons.md | 36 +- .../site/content/docs/5.3/components/card.md | 4 +- .../site/content/docs/5.3/components/collapse.md | 4 +- .../site/content/docs/5.3/components/dropdowns.md | 2 +- .../site/content/docs/5.3/components/list-group.md | 2 +- .../site/content/docs/5.3/components/navbar.md | 18 +- .../site/content/docs/5.3/components/navs-tabs.md | 38 +- .../content/docs/5.3/components/placeholders.md | 6 +- .../site/content/docs/5.3/components/popovers.md | 2 +- .../site/content/docs/5.3/components/spinners.md | 20 +- .../site/content/docs/5.3/components/tooltips.md | 8 +- .../site/content/docs/5.3/customize/sass.md | 57 +- .../content/docs/5.3/examples/badges/index.html | 2 +- .../content/docs/5.3/examples/blog-rtl/index.html | 4 +- .../site/content/docs/5.3/examples/blog/index.html | 4 +- .../docs/5.3/examples/breadcrumbs/index.html | 2 +- .../content/docs/5.3/examples/buttons/index.html | 10 +- .../docs/5.3/examples/carousel-rtl/index.html | 4 +- .../content/docs/5.3/examples/carousel/index.html | 4 +- .../docs/5.3/examples/cheatsheet-rtl/index.html | 8 +- .../docs/5.3/examples/cheatsheet/cheatsheet.css | 15 +- .../5.3/examples/cheatsheet/cheatsheet.rtl.css | 15 +- .../docs/5.3/examples/cheatsheet/index.html | 8 +- .../docs/5.3/examples/dashboard-rtl/index.html | 10 +- .../content/docs/5.3/examples/dashboard/index.html | 10 +- .../content/docs/5.3/examples/dropdowns/index.html | 2 +- .../content/docs/5.3/examples/features/index.html | 2 +- .../5.3/examples/features/unsplash-photo-1.jpg | Bin 10451 -> 10433 bytes .../5.3/examples/features/unsplash-photo-2.jpg | Bin 113018 -> 113000 bytes .../5.3/examples/features/unsplash-photo-3.jpg | Bin 40607 -> 40589 bytes .../content/docs/5.3/examples/footers/index.html | 2 +- .../content/docs/5.3/examples/headers/index.html | 2 +- .../docs/5.3/examples/heroes/bootstrap-docs.png | Bin 371399 -> 369569 bytes .../docs/5.3/examples/jumbotrons/index.html | 2 +- .../docs/5.3/examples/list-groups/index.html | 2 +- .../content/docs/5.3/examples/modals/index.html | 2 +- .../docs/5.3/examples/navbar-bottom/index.html | 2 +- .../docs/5.3/examples/navbar-fixed/index.html | 2 +- .../docs/5.3/examples/navbar-static/index.html | 2 +- .../content/docs/5.3/examples/navbars/index.html | 24 +- .../content/docs/5.3/examples/pricing/index.html | 2 +- .../content/docs/5.3/examples/product/index.html | 2 +- .../content/docs/5.3/examples/sidebars/index.html | 10 +- .../docs/5.3/examples/starter-template/index.html | 4 +- .../5.3/examples/sticky-footer-navbar/index.html | 2 +- .../site/content/docs/5.3/forms/checks-radios.md | 29 +- .../site/content/docs/5.3/forms/floating-labels.md | 2 +- .../site/content/docs/5.3/forms/form-control.md | 6 +- .../site/content/docs/5.3/forms/select.md | 8 +- .../content/docs/5.3/getting-started/download.md | 18 + .../docs/5.3/getting-started/introduction.md | 13 +- .../content/docs/5.3/getting-started/javascript.md | 7 +- .../content/docs/5.3/getting-started/webpack.md | 2 +- .../site/content/docs/5.3/helpers/stacks.md | 4 +- .../site/content/docs/5.3/helpers/vertical-rule.md | 8 + .../site/content/docs/5.3/layout/gutters.md | 2 +- .../bootstrap/site/content/docs/5.3/migration.md | 75 +- .../site/content/docs/5.3/utilities/float.md | 11 +- .../site/content/docs/5.3/utilities/opacity.md | 2 + .../site/content/docs/5.3/utilities/text.md | 11 +- vendor/twbs/bootstrap/site/data/docs-versions.yml | 6 +- .../bootstrap/site/layouts/_default/examples.html | 7 +- .../warning-color-assistive-technologies.md | 2 +- .../site/layouts/partials/docs-navbar.html | 6 +- .../bootstrap/site/layouts/partials/footer.html | 22 +- .../bootstrap/site/layouts/partials/header.html | 2 - .../site/layouts/partials/home/masthead.html | 2 - .../bootstrap/site/layouts/partials/icons.html | 2 +- .../bootstrap/site/layouts/partials/scripts.html | 3 +- .../site/layouts/partials/stylesheet.html | 2 - .../bootstrap/site/layouts/shortcodes/js-docs.html | 8 +- .../site/layouts/shortcodes/scss-docs.html | 8 +- .../5.3/assets/brand/bootstrap-logo-shadow.png | Bin 48625 -> 46142 bytes .../static/docs/5.3/assets/img/bootstrap-icons.png | Bin 40798 -> 40444 bytes .../5.3/assets/img/bootstrap-themes-collage@2x.png | Bin 244640 -> 244028 bytes .../docs/5.3/assets/img/examples/album@2x.png | Bin 25026 -> 24917 bytes .../docs/5.3/assets/img/examples/badges@2x.png | Bin 14798 -> 14236 bytes .../docs/5.3/assets/img/examples/buttons.png | Bin 4545 -> 4495 bytes .../docs/5.3/assets/img/examples/buttons@2x.png | Bin 9994 -> 9832 bytes .../docs/5.3/assets/img/examples/carousel-rtl.png | Bin 10344 -> 10264 bytes .../5.3/assets/img/examples/carousel-rtl@2x.png | Bin 24460 -> 24421 bytes .../docs/5.3/assets/img/examples/carousel.png | Bin 13219 -> 13178 bytes .../docs/5.3/assets/img/examples/carousel@2x.png | Bin 31320 -> 31276 bytes .../5.3/assets/img/examples/dashboard-rtl@2x.png | Bin 19399 -> 19368 bytes .../docs/5.3/assets/img/examples/headers.png | Bin 5196 -> 5182 bytes .../docs/5.3/assets/img/examples/headers@2x.png | Bin 12639 -> 12566 bytes .../docs/5.3/assets/img/examples/list-groups.png | Bin 7134 -> 7116 bytes .../docs/5.3/assets/img/examples/masonry.png | Bin 15253 -> 15238 bytes .../docs/5.3/assets/img/examples/masonry@2x.png | Bin 37705 -> 37623 bytes .../docs/5.3/assets/img/examples/navbar-bottom.png | Bin 4819 -> 4754 bytes .../5.3/assets/img/examples/navbar-bottom@2x.png | Bin 11666 -> 11603 bytes .../5.3/assets/img/examples/navbars-offcanvas.png | Bin 6850 -> 6821 bytes .../assets/img/examples/navbars-offcanvas@2x.png | Bin 16965 -> 16919 bytes .../5.3/assets/img/examples/offcanvas-navbar.png | Bin 9691 -> 9674 bytes .../assets/img/examples/offcanvas-navbar@2x.png | Bin 23975 -> 23928 bytes .../assets/img/examples/sticky-footer-navbar.png | Bin 6966 -> 6895 bytes .../img/examples/sticky-footer-navbar@2x.png | Bin 15744 -> 15725 bytes .../5.3/assets/img/favicons/apple-touch-icon.png | Bin 7650 -> 7489 bytes .../5.3/assets/img/guides/parcel-dev-server.png | Bin 13933 -> 13694 bytes .../docs/5.3/assets/img/guides/vite-dev-server.png | Bin 13584 -> 13266 bytes .../5.3/assets/img/guides/webpack-dev-server.png | Bin 14197 -> 14001 bytes 235 files changed, 5640 insertions(+), 4824 deletions(-) delete mode 100644 vendor/twbs/bootstrap/build/banner.js create mode 100644 vendor/twbs/bootstrap/build/banner.mjs delete mode 100644 vendor/twbs/bootstrap/build/build-plugins.js create mode 100644 vendor/twbs/bootstrap/build/build-plugins.mjs delete mode 100644 vendor/twbs/bootstrap/build/change-version.js create mode 100644 vendor/twbs/bootstrap/build/change-version.mjs delete mode 100644 vendor/twbs/bootstrap/build/generate-sri.js create mode 100644 vendor/twbs/bootstrap/build/generate-sri.mjs delete mode 100644 vendor/twbs/bootstrap/build/postcss.config.js create mode 100644 vendor/twbs/bootstrap/build/postcss.config.mjs delete mode 100644 vendor/twbs/bootstrap/build/rollup.config.js create mode 100644 vendor/twbs/bootstrap/build/rollup.config.mjs delete mode 100644 vendor/twbs/bootstrap/build/vnu-jar.js create mode 100644 vendor/twbs/bootstrap/build/vnu-jar.mjs delete mode 100644 vendor/twbs/bootstrap/build/zip-examples.js create mode 100644 vendor/twbs/bootstrap/build/zip-examples.mjs (limited to 'vendor/twbs') diff --git a/vendor/twbs/bootstrap/.bundlewatch.config.json b/vendor/twbs/bootstrap/.bundlewatch.config.json index d7e1c8079..bb0a5a85a 100644 --- a/vendor/twbs/bootstrap/.bundlewatch.config.json +++ b/vendor/twbs/bootstrap/.bundlewatch.config.json @@ -38,7 +38,7 @@ }, { "path": "./dist/js/bootstrap.bundle.min.js", - "maxSize": "23.0 kB" + "maxSize": "23.25 kB" }, { "path": "./dist/js/bootstrap.esm.js", @@ -54,7 +54,7 @@ }, { "path": "./dist/js/bootstrap.min.js", - "maxSize": "16.0 kB" + "maxSize": "16.25 kB" } ], "ci": { diff --git a/vendor/twbs/bootstrap/.cspell.json b/vendor/twbs/bootstrap/.cspell.json index e477ef83d..484af2af5 100644 --- a/vendor/twbs/bootstrap/.cspell.json +++ b/vendor/twbs/bootstrap/.cspell.json @@ -40,6 +40,7 @@ "dropright", "dropstart", "dropup", + "dgst", "errorf", "favicon", "favicons", diff --git a/vendor/twbs/bootstrap/.eslintrc.json b/vendor/twbs/bootstrap/.eslintrc.json index 055acc706..6c9c24d46 100644 --- a/vendor/twbs/bootstrap/.eslintrc.json +++ b/vendor/twbs/bootstrap/.eslintrc.json @@ -108,7 +108,7 @@ "node": true }, "parserOptions": { - "sourceType": "script" + "sourceType": "module" }, "rules": { "no-console": "off", diff --git a/vendor/twbs/bootstrap/.github/CONTRIBUTING.md b/vendor/twbs/bootstrap/.github/CONTRIBUTING.md index 446344580..d18210b28 100644 --- a/vendor/twbs/bootstrap/.github/CONTRIBUTING.md +++ b/vendor/twbs/bootstrap/.github/CONTRIBUTING.md @@ -31,6 +31,13 @@ restrictions: Instead, please email any questions or feedback regarding those themes to `themes AT getbootstrap DOT com`. +## Issues assignment + +The core team will be looking at the open issues, analyze them, and provide guidance on how to proceed. **Issues won't be assigned to anyone outside the core team.** However, contributors are welcome to participate in the discussion and provide their input on how to best solve the issue, and even submit a PR if they want to. Please wait that the issue is ready to be worked on before submitting a PR, we don't want to waste your time. + +Please keep in mind that the core team is small, has limited resources and that we are not always able to respond immediately. We will try to provide feedback as soon as possible, but please be patient. If you don't get a response immediately, it doesn't mean that we are ignoring you or that we don't care about your issue or PR. We will get back to you as soon as we can. + + ## Issues and labels Our bug tracker utilizes several labels to help organize and identify issues. Here's what they represent and how we use them: diff --git a/vendor/twbs/bootstrap/.github/workflows/browserstack.yml b/vendor/twbs/bootstrap/.github/workflows/browserstack.yml index e545d628a..8d8cb1c34 100644 --- a/vendor/twbs/bootstrap/.github/workflows/browserstack.yml +++ b/vendor/twbs/bootstrap/.github/workflows/browserstack.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false diff --git a/vendor/twbs/bootstrap/.github/workflows/bundlewatch.yml b/vendor/twbs/bootstrap/.github/workflows/bundlewatch.yml index c02a37ed9..7f58b245f 100644 --- a/vendor/twbs/bootstrap/.github/workflows/bundlewatch.yml +++ b/vendor/twbs/bootstrap/.github/workflows/bundlewatch.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false diff --git a/vendor/twbs/bootstrap/.github/workflows/calibreapp-image-actions.yml b/vendor/twbs/bootstrap/.github/workflows/calibreapp-image-actions.yml index 21df1f626..f4aeb871a 100644 --- a/vendor/twbs/bootstrap/.github/workflows/calibreapp-image-actions.yml +++ b/vendor/twbs/bootstrap/.github/workflows/calibreapp-image-actions.yml @@ -8,15 +8,21 @@ on: - '**.png' - '**.webp' +permissions: + contents: read + jobs: build: # Only run on Pull Requests within the same repository, and not from forks. if: github.event.pull_request.head.repo.full_name == github.repository name: calibreapp/image-actions runs-on: ubuntu-latest + permissions: + # allow calibreapp/image-actions to update PRs + pull-requests: write steps: - name: Checkout Repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false diff --git a/vendor/twbs/bootstrap/.github/workflows/codeql.yml b/vendor/twbs/bootstrap/.github/workflows/codeql.yml index b1780ee34..6d5f77897 100644 --- a/vendor/twbs/bootstrap/.github/workflows/codeql.yml +++ b/vendor/twbs/bootstrap/.github/workflows/codeql.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false diff --git a/vendor/twbs/bootstrap/.github/workflows/cspell.yml b/vendor/twbs/bootstrap/.github/workflows/cspell.yml index 11788e3cc..3e7902e39 100644 --- a/vendor/twbs/bootstrap/.github/workflows/cspell.yml +++ b/vendor/twbs/bootstrap/.github/workflows/cspell.yml @@ -23,12 +23,12 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false - name: Run cspell - uses: streetsidesoftware/cspell-action@v2 + uses: streetsidesoftware/cspell-action@v3 with: config: ".cspell.json" files: "**/*.md" diff --git a/vendor/twbs/bootstrap/.github/workflows/css.yml b/vendor/twbs/bootstrap/.github/workflows/css.yml index 66112a96c..d859c45eb 100644 --- a/vendor/twbs/bootstrap/.github/workflows/css.yml +++ b/vendor/twbs/bootstrap/.github/workflows/css.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false diff --git a/vendor/twbs/bootstrap/.github/workflows/docs.yml b/vendor/twbs/bootstrap/.github/workflows/docs.yml index 2a684f618..278b099c1 100644 --- a/vendor/twbs/bootstrap/.github/workflows/docs.yml +++ b/vendor/twbs/bootstrap/.github/workflows/docs.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false diff --git a/vendor/twbs/bootstrap/.github/workflows/js.yml b/vendor/twbs/bootstrap/.github/workflows/js.yml index 805b1b7b1..e123e982f 100644 --- a/vendor/twbs/bootstrap/.github/workflows/js.yml +++ b/vendor/twbs/bootstrap/.github/workflows/js.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false diff --git a/vendor/twbs/bootstrap/.github/workflows/lint.yml b/vendor/twbs/bootstrap/.github/workflows/lint.yml index fd62b418b..7c88ddc96 100644 --- a/vendor/twbs/bootstrap/.github/workflows/lint.yml +++ b/vendor/twbs/bootstrap/.github/workflows/lint.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false diff --git a/vendor/twbs/bootstrap/.github/workflows/node-sass.yml b/vendor/twbs/bootstrap/.github/workflows/node-sass.yml index c558e447a..51ea6bff6 100644 --- a/vendor/twbs/bootstrap/.github/workflows/node-sass.yml +++ b/vendor/twbs/bootstrap/.github/workflows/node-sass.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Clone repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: persist-credentials: false diff --git a/vendor/twbs/bootstrap/README.md b/vendor/twbs/bootstrap/README.md index 529b0d5c0..982629393 100644 --- a/vendor/twbs/bootstrap/README.md +++ b/vendor/twbs/bootstrap/README.md @@ -46,11 +46,11 @@ Our default branch is for development of our Bootstrap 5 release. Head to the [` Several quick start options are available: -- [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.3.0.zip) +- [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.3.2.zip) - Clone the repo: `git clone https://github.com/twbs/bootstrap.git` -- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@v5.3.0` -- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@v5.3.0` -- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.3.0` +- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@v5.3.2` +- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@v5.3.2` +- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.3.2` - Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap` Sass: `Install-Package bootstrap.sass` Read the [Getting started page](https://getbootstrap.com/docs/5.3/getting-started/introduction/) for information on the framework contents, templates, examples, and more. @@ -69,7 +69,6 @@ Read the [Getting started page](https://getbootstrap.com/docs/5.3/getting-starte [![CSS Brotli size](https://img.badgesize.io/twbs/bootstrap/main/dist/css/bootstrap.min.css?compression=brotli&label=CSS%20Brotli%20size)](https://github.com/twbs/bootstrap/blob/main/dist/css/bootstrap.min.css) [![JS gzip size](https://img.badgesize.io/twbs/bootstrap/main/dist/js/bootstrap.min.js?compression=gzip&label=JS%20gzip%20size)](https://github.com/twbs/bootstrap/blob/main/dist/js/bootstrap.min.js) [![JS Brotli size](https://img.badgesize.io/twbs/bootstrap/main/dist/js/bootstrap.min.js?compression=brotli&label=JS%20Brotli%20size)](https://github.com/twbs/bootstrap/blob/main/dist/js/bootstrap.min.js) -[![BrowserStack Status](https://www.browserstack.com/automate/badge.svg?badge_key=SkxZcStBeExEdVJqQ2hWYnlWckpkNmNEY213SFp6WHFETWk2bGFuY3pCbz0tLXhqbHJsVlZhQnRBdEpod3NLSDMzaHc9PQ==--3d0b75245708616eb93113221beece33e680b229)](https://www.browserstack.com/automate/public-build/SkxZcStBeExEdVJqQ2hWYnlWckpkNmNEY213SFp6WHFETWk2bGFuY3pCbz0tLXhqbHJsVlZhQnRBdEpod3NLSDMzaHc9PQ==--3d0b75245708616eb93113221beece33e680b229) [![Backers on Open Collective](https://img.shields.io/opencollective/backers/bootstrap?logo=opencollective&logoColor=fff)](#backers) [![Sponsors on Open Collective](https://img.shields.io/opencollective/sponsors/bootstrap?logo=opencollective&logoColor=fff)](#sponsors) @@ -177,7 +176,8 @@ Get updates on Bootstrap's development and chat with the project maintainers and - Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap). - Read and subscribe to [The Official Bootstrap Blog](https://blog.getbootstrap.com/). -- Ask and explore [our GitHub Discussions](https://github.com/twbs/bootstrap/discussions). +- Ask questions and explore [our GitHub Discussions](https://github.com/twbs/bootstrap/discussions). +- Discuss, ask questions, and more on [the community Discord](https://discord.gg/bZUvakRU3M) or [Bootstrap subreddit](https://reddit.com/r/bootstrap). - Chat with fellow Bootstrappers in IRC. On the `irc.libera.chat` server, in the `#bootstrap` channel. - Implementation help may be found at Stack Overflow (tagged [`bootstrap-5`](https://stackoverflow.com/questions/tagged/bootstrap-5)). - Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability. diff --git a/vendor/twbs/bootstrap/build/banner.js b/vendor/twbs/bootstrap/build/banner.js deleted file mode 100644 index a022f1c48..000000000 --- a/vendor/twbs/bootstrap/build/banner.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict' - -const pkg = require('../package.json') - -const year = new Date().getFullYear() - -function getBanner(pluginFilename) { - return `/*! - * Bootstrap${pluginFilename ? ` ${pluginFilename}` : ''} v${pkg.version} (${pkg.homepage}) - * Copyright 2011-${year} ${pkg.author} - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */` -} - -module.exports = getBanner diff --git a/vendor/twbs/bootstrap/build/banner.mjs b/vendor/twbs/bootstrap/build/banner.mjs new file mode 100644 index 000000000..3fea93c8f --- /dev/null +++ b/vendor/twbs/bootstrap/build/banner.mjs @@ -0,0 +1,20 @@ +import fs from 'node:fs/promises' +import path from 'node:path' +import { fileURLToPath } from 'node:url' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +const pkgJson = path.join(__dirname, '../package.json') +const pkg = JSON.parse(await fs.readFile(pkgJson, 'utf8')) + +const year = new Date().getFullYear() + +function getBanner(pluginFilename) { + return `/*! + * Bootstrap${pluginFilename ? ` ${pluginFilename}` : ''} v${pkg.version} (${pkg.homepage}) + * Copyright 2011-${year} ${pkg.author} + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */` +} + +export default getBanner diff --git a/vendor/twbs/bootstrap/build/build-plugins.js b/vendor/twbs/bootstrap/build/build-plugins.js deleted file mode 100644 index b2833a3fb..000000000 --- a/vendor/twbs/bootstrap/build/build-plugins.js +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env node - -/*! - * Script to build our plugins to use them separately. - * Copyright 2020-2023 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ - -'use strict' - -const path = require('node:path') -const rollup = require('rollup') -const globby = require('globby') -const { babel } = require('@rollup/plugin-babel') -const banner = require('./banner.js') - -const sourcePath = path.resolve(__dirname, '../js/src/').replace(/\\/g, '/') -const jsFiles = globby.sync(`${sourcePath}/**/*.js`) - -// Array which holds the resolved plugins -const resolvedPlugins = [] - -// Trims the "js" extension and uppercases => first letter, hyphens, backslashes & slashes -const filenameToEntity = filename => filename.replace('.js', '') - .replace(/(?:^|-|\/|\\)[a-z]/g, str => str.slice(-1).toUpperCase()) - -for (const file of jsFiles) { - resolvedPlugins.push({ - src: file, - dist: file.replace('src', 'dist'), - fileName: path.basename(file), - className: filenameToEntity(path.basename(file)) - // safeClassName: filenameToEntity(path.relative(sourcePath, file)) - }) -} - -const build = async plugin => { - const globals = {} - - const bundle = await rollup.rollup({ - input: plugin.src, - plugins: [ - babel({ - // Only transpile our source code - exclude: 'node_modules/**', - // Include the helpers in each file, at most one copy of each - babelHelpers: 'bundled' - }) - ], - external(source) { - // Pattern to identify local files - const pattern = /^(\.{1,2})\// - - // It's not a local file, e.g a Node.js package - if (!pattern.test(source)) { - globals[source] = source - return true - } - - const usedPlugin = resolvedPlugins.find(plugin => { - return plugin.src.includes(source.replace(pattern, '')) - }) - - if (!usedPlugin) { - throw new Error(`Source ${source} is not mapped!`) - } - - // We can change `Index` with `UtilIndex` etc if we use - // `safeClassName` instead of `className` everywhere - globals[path.normalize(usedPlugin.src)] = usedPlugin.className - return true - } - }) - - await bundle.write({ - banner: banner(plugin.fileName), - format: 'umd', - name: plugin.className, - sourcemap: true, - globals, - generatedCode: 'es2015', - file: plugin.dist - }) - - console.log(`Built ${plugin.className}`) -} - -(async () => { - try { - const basename = path.basename(__filename) - const timeLabel = `[${basename}] finished` - - console.log('Building individual plugins...') - console.time(timeLabel) - - await Promise.all(Object.values(resolvedPlugins).map(plugin => build(plugin))) - - console.timeEnd(timeLabel) - } catch (error) { - console.error(error) - process.exit(1) - } -})() diff --git a/vendor/twbs/bootstrap/build/build-plugins.mjs b/vendor/twbs/bootstrap/build/build-plugins.mjs new file mode 100644 index 000000000..77e63070c --- /dev/null +++ b/vendor/twbs/bootstrap/build/build-plugins.mjs @@ -0,0 +1,105 @@ +#!/usr/bin/env node + +/*! + * Script to build our plugins to use them separately. + * Copyright 2020-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ + +import path from 'node:path' +import { fileURLToPath } from 'node:url' +import { babel } from '@rollup/plugin-babel' +import globby from 'globby' +import { rollup } from 'rollup' +import banner from './banner.mjs' + +const __filename = fileURLToPath(import.meta.url) +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +const sourcePath = path.resolve(__dirname, '../js/src/').replace(/\\/g, '/') +const jsFiles = globby.sync(`${sourcePath}/**/*.js`) + +// Array which holds the resolved plugins +const resolvedPlugins = [] + +// Trims the "js" extension and uppercases => first letter, hyphens, backslashes & slashes +const filenameToEntity = filename => filename.replace('.js', '') + .replace(/(?:^|-|\/|\\)[a-z]/g, str => str.slice(-1).toUpperCase()) + +for (const file of jsFiles) { + resolvedPlugins.push({ + src: file, + dist: file.replace('src', 'dist'), + fileName: path.basename(file), + className: filenameToEntity(path.basename(file)) + // safeClassName: filenameToEntity(path.relative(sourcePath, file)) + }) +} + +const build = async plugin => { + const globals = {} + + const bundle = await rollup({ + input: plugin.src, + plugins: [ + babel({ + // Only transpile our source code + exclude: 'node_modules/**', + // Include the helpers in each file, at most one copy of each + babelHelpers: 'bundled' + }) + ], + external(source) { + // Pattern to identify local files + const pattern = /^(\.{1,2})\// + + // It's not a local file, e.g a Node.js package + if (!pattern.test(source)) { + globals[source] = source + return true + } + + const usedPlugin = resolvedPlugins.find(plugin => { + return plugin.src.includes(source.replace(pattern, '')) + }) + + if (!usedPlugin) { + throw new Error(`Source ${source} is not mapped!`) + } + + // We can change `Index` with `UtilIndex` etc if we use + // `safeClassName` instead of `className` everywhere + globals[path.normalize(usedPlugin.src)] = usedPlugin.className + return true + } + }) + + await bundle.write({ + banner: banner(plugin.fileName), + format: 'umd', + name: plugin.className, + sourcemap: true, + globals, + generatedCode: 'es2015', + file: plugin.dist + }) + + console.log(`Built ${plugin.className}`) +} + +(async () => { + try { + const basename = path.basename(__filename) + const timeLabel = `[${basename}] finished` + + console.log('Building individual plugins...') + console.time(timeLabel) + + await Promise.all(Object.values(resolvedPlugins).map(plugin => build(plugin))) + + console.timeEnd(timeLabel) + } catch (error) { + console.error(error) + process.exit(1) + } +})() diff --git a/vendor/twbs/bootstrap/build/change-version.js b/vendor/twbs/bootstrap/build/change-version.js deleted file mode 100644 index 9685df589..000000000 --- a/vendor/twbs/bootstrap/build/change-version.js +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env node - -/*! - * Script to update version number references in the project. - * Copyright 2017-2023 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ - -'use strict' - -const fs = require('node:fs').promises -const path = require('node:path') -const globby = require('globby') - -const VERBOSE = process.argv.includes('--verbose') -const DRY_RUN = process.argv.includes('--dry') || process.argv.includes('--dry-run') - -// These are the filetypes we only care about replacing the version -const GLOB = [ - '**/*.{css,html,js,json,md,scss,txt,yml}' -] -const GLOBBY_OPTIONS = { - cwd: path.join(__dirname, '..'), - gitignore: true -} - -// Blame TC39... https://github.com/benjamingr/RegExp.escape/issues/37 -function regExpQuote(string) { - return string.replace(/[$()*+-.?[\\\]^{|}]/g, '\\$&') -} - -function regExpQuoteReplacement(string) { - return string.replace(/\$/g, '$$') -} - -async function replaceRecursively(file, oldVersion, newVersion) { - const originalString = await fs.readFile(file, 'utf8') - const newString = originalString - .replace( - new RegExp(regExpQuote(oldVersion), 'g'), - regExpQuoteReplacement(newVersion) - ) - // Also replace the version used by the rubygem, - // which is using periods (`.`) instead of hyphens (`-`) - .replace( - new RegExp(regExpQuote(oldVersion.replace(/-/g, '.')), 'g'), - regExpQuoteReplacement(newVersion.replace(/-/g, '.')) - ) - - // No need to move any further if the strings are identical - if (originalString === newString) { - return - } - - if (VERBOSE) { - console.log(`FILE: ${file}`) - } - - if (DRY_RUN) { - return - } - - await fs.writeFile(file, newString, 'utf8') -} - -function showUsage(args) { - console.error('USAGE: change-version old_version new_version [--verbose] [--dry[-run]]') - console.error('Got arguments:', args) - process.exit(1) -} - -async function main(args) { - let [oldVersion, newVersion] = args - - if (!oldVersion || !newVersion) { - showUsage(args) - } - - // Strip any leading `v` from arguments because - // otherwise we will end up with duplicate `v`s - [oldVersion, newVersion] = [oldVersion, newVersion].map(arg => { - return arg.startsWith('v') ? arg.slice(1) : arg - }) - - if (oldVersion === newVersion) { - showUsage(args) - } - - try { - const files = await globby(GLOB, GLOBBY_OPTIONS) - - await Promise.all( - files.map(file => replaceRecursively(file, oldVersion, newVersion)) - ) - } catch (error) { - console.error(error) - process.exit(1) - } -} - -main(process.argv.slice(2)) diff --git a/vendor/twbs/bootstrap/build/change-version.mjs b/vendor/twbs/bootstrap/build/change-version.mjs new file mode 100644 index 000000000..3c1e70668 --- /dev/null +++ b/vendor/twbs/bootstrap/build/change-version.mjs @@ -0,0 +1,113 @@ +#!/usr/bin/env node + +/*! + * Script to update version number references in the project. + * Copyright 2017-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ + +import { execFile } from 'node:child_process' +import fs from 'node:fs/promises' +import process from 'node:process' + +const VERBOSE = process.argv.includes('--verbose') +const DRY_RUN = process.argv.includes('--dry') || process.argv.includes('--dry-run') + +// These are the files we only care about replacing the version +const FILES = [ + 'README.md', + 'hugo.yml', + 'js/src/base-component.js', + 'package.js', + 'scss/mixins/_banner.scss', + 'site/data/docs-versions.yml' +] + +// Blame TC39... https://github.com/benjamingr/RegExp.escape/issues/37 +function regExpQuote(string) { + return string.replace(/[$()*+-.?[\\\]^{|}]/g, '\\$&') +} + +function regExpQuoteReplacement(string) { + return string.replace(/\$/g, '$$') +} + +async function replaceRecursively(file, oldVersion, newVersion) { + const originalString = await fs.readFile(file, 'utf8') + const newString = originalString + .replace( + new RegExp(regExpQuote(oldVersion), 'g'), + regExpQuoteReplacement(newVersion) + ) + // Also replace the version used by the rubygem, + // which is using periods (`.`) instead of hyphens (`-`) + .replace( + new RegExp(regExpQuote(oldVersion.replace(/-/g, '.')), 'g'), + regExpQuoteReplacement(newVersion.replace(/-/g, '.')) + ) + + // No need to move any further if the strings are identical + if (originalString === newString) { + return + } + + if (VERBOSE) { + console.log(`Found ${oldVersion} in ${file}`) + } + + if (DRY_RUN) { + return + } + + await fs.writeFile(file, newString, 'utf8') +} + +function bumpNpmVersion(newVersion) { + if (DRY_RUN) { + return + } + + execFile('npm', ['version', newVersion, '--no-git-tag'], { shell: true }, error => { + if (error) { + console.error(error) + process.exit(1) + } + }) +} + +function showUsage(args) { + console.error('USAGE: change-version old_version new_version [--verbose] [--dry[-run]]') + console.error('Got arguments:', args) + process.exit(1) +} + +async function main(args) { + let [oldVersion, newVersion] = args + + if (!oldVersion || !newVersion) { + showUsage(args) + } + + // Strip any leading `v` from arguments because + // otherwise we will end up with duplicate `v`s + [oldVersion, newVersion] = [oldVersion, newVersion].map(arg => { + return arg.startsWith('v') ? arg.slice(1) : arg + }) + + if (oldVersion === newVersion) { + showUsage(args) + } + + bumpNpmVersion(newVersion) + + try { + await Promise.all( + FILES.map(file => replaceRecursively(file, oldVersion, newVersion)) + ) + } catch (error) { + console.error(error) + process.exit(1) + } +} + +main(process.argv.slice(2)) diff --git a/vendor/twbs/bootstrap/build/generate-sri.js b/vendor/twbs/bootstrap/build/generate-sri.js deleted file mode 100644 index 2e2292475..000000000 --- a/vendor/twbs/bootstrap/build/generate-sri.js +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env node - -/*! - * Script to generate SRI hashes for use in our docs. - * Remember to use the same vendor files as the CDN ones, - * otherwise the hashes won't match! - * - * Copyright 2017-2023 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ - -'use strict' - -const crypto = require('node:crypto') -const fs = require('node:fs') -const path = require('node:path') -const sh = require('shelljs') - -sh.config.fatal = true - -const configFile = path.join(__dirname, '../hugo.yml') - -// Array of objects which holds the files to generate SRI hashes for. -// `file` is the path from the root folder -// `configPropertyName` is the hugo.yml variable's name of the file -const files = [ - { - file: 'dist/css/bootstrap.min.css', - configPropertyName: 'css_hash' - }, - { - file: 'dist/css/bootstrap.rtl.min.css', - configPropertyName: 'css_rtl_hash' - }, - { - file: 'dist/js/bootstrap.min.js', - configPropertyName: 'js_hash' - }, - { - file: 'dist/js/bootstrap.bundle.min.js', - configPropertyName: 'js_bundle_hash' - }, - { - file: 'node_modules/@popperjs/core/dist/umd/popper.min.js', - configPropertyName: 'popper_hash' - } -] - -for (const { file, configPropertyName } of files) { - fs.readFile(file, 'utf8', (error, data) => { - if (error) { - throw error - } - - const algo = 'sha384' - const hash = crypto.createHash(algo).update(data, 'utf8').digest('base64') - const integrity = `${algo}-${hash}` - - console.log(`${configPropertyName}: ${integrity}`) - - sh.sed('-i', new RegExp(`^(\\s+${configPropertyName}:\\s+["'])\\S*(["'])`), `$1${integrity}$2`, configFile) - }) -} diff --git a/vendor/twbs/bootstrap/build/generate-sri.mjs b/vendor/twbs/bootstrap/build/generate-sri.mjs new file mode 100644 index 000000000..e2b1554f1 --- /dev/null +++ b/vendor/twbs/bootstrap/build/generate-sri.mjs @@ -0,0 +1,64 @@ +#!/usr/bin/env node + +/*! + * Script to generate SRI hashes for use in our docs. + * Remember to use the same vendor files as the CDN ones, + * otherwise the hashes won't match! + * + * Copyright 2017-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ + +import crypto from 'node:crypto' +import fs from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' +import sh from 'shelljs' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +sh.config.fatal = true + +const configFile = path.join(__dirname, '../hugo.yml') + +// Array of objects which holds the files to generate SRI hashes for. +// `file` is the path from the root folder +// `configPropertyName` is the hugo.yml variable's name of the file +const files = [ + { + file: 'dist/css/bootstrap.min.css', + configPropertyName: 'css_hash' + }, + { + file: 'dist/css/bootstrap.rtl.min.css', + configPropertyName: 'css_rtl_hash' + }, + { + file: 'dist/js/bootstrap.min.js', + configPropertyName: 'js_hash' + }, + { + file: 'dist/js/bootstrap.bundle.min.js', + configPropertyName: 'js_bundle_hash' + }, + { + file: 'node_modules/@popperjs/core/dist/umd/popper.min.js', + configPropertyName: 'popper_hash' + } +] + +for (const { file, configPropertyName } of files) { + fs.readFile(file, 'utf8', (error, data) => { + if (error) { + throw error + } + + const algorithm = 'sha384' + const hash = crypto.createHash(algorithm).update(data, 'utf8').digest('base64') + const integrity = `${algorithm}-${hash}` + + console.log(`${configPropertyName}: ${integrity}`) + + sh.sed('-i', new RegExp(`^(\\s+${configPropertyName}:\\s+["'])\\S*(["'])`), `$1${integrity}$2`, configFile) + }) +} diff --git a/vendor/twbs/bootstrap/build/postcss.config.js b/vendor/twbs/bootstrap/build/postcss.config.js deleted file mode 100644 index 7f8186d10..000000000 --- a/vendor/twbs/bootstrap/build/postcss.config.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict' - -const mapConfig = { - inline: false, - annotation: true, - sourcesContent: true -} - -module.exports = context => { - return { - map: context.file.dirname.includes('examples') ? false : mapConfig, - plugins: { - autoprefixer: { - cascade: false - }, - rtlcss: context.env === 'RTL' - } - } -} diff --git a/vendor/twbs/bootstrap/build/postcss.config.mjs b/vendor/twbs/bootstrap/build/postcss.config.mjs new file mode 100644 index 000000000..7717cfc3f --- /dev/null +++ b/vendor/twbs/bootstrap/build/postcss.config.mjs @@ -0,0 +1,17 @@ +const mapConfig = { + inline: false, + annotation: true, + sourcesContent: true +} + +export default context => { + return { + map: context.file.dirname.includes('examples') ? false : mapConfig, + plugins: { + autoprefixer: { + cascade: false + }, + rtlcss: context.env === 'RTL' + } + } +} diff --git a/vendor/twbs/bootstrap/build/rollup.config.js b/vendor/twbs/bootstrap/build/rollup.config.js deleted file mode 100644 index f01918ebf..000000000 --- a/vendor/twbs/bootstrap/build/rollup.config.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict' - -const path = require('node:path') -const { babel } = require('@rollup/plugin-babel') -const { nodeResolve } = require('@rollup/plugin-node-resolve') -const replace = require('@rollup/plugin-replace') -const banner = require('./banner.js') - -const BUNDLE = process.env.BUNDLE === 'true' -const ESM = process.env.ESM === 'true' - -let fileDestination = `bootstrap${ESM ? '.esm' : ''}` -const external = ['@popperjs/core'] -const plugins = [ - babel({ - // Only transpile our source code - exclude: 'node_modules/**', - // Include the helpers in the bundle, at most one copy of each - babelHelpers: 'bundled' - }) -] -const globals = { - '@popperjs/core': 'Popper' -} - -if (BUNDLE) { - fileDestination += '.bundle' - // Remove last entry in external array to bundle Popper - external.pop() - delete globals['@popperjs/core'] - plugins.push( - replace({ - 'process.env.NODE_ENV': '"production"', - preventAssignment: true - }), - nodeResolve() - ) -} - -const rollupConfig = { - input: path.resolve(__dirname, `../js/index.${ESM ? 'esm' : 'umd'}.js`), - output: { - banner: banner(), - file: path.resolve(__dirname, `../dist/js/${fileDestination}.js`), - format: ESM ? 'esm' : 'umd', - globals, - generatedCode: 'es2015' - }, - external, - plugins -} - -if (!ESM) { - rollupConfig.output.name = 'bootstrap' -} - -module.exports = rollupConfig diff --git a/vendor/twbs/bootstrap/build/rollup.config.mjs b/vendor/twbs/bootstrap/build/rollup.config.mjs new file mode 100644 index 000000000..dd6c7d13e --- /dev/null +++ b/vendor/twbs/bootstrap/build/rollup.config.mjs @@ -0,0 +1,59 @@ +import path from 'node:path' +import process from 'node:process' +import { fileURLToPath } from 'node:url' +import { babel } from '@rollup/plugin-babel' +import { nodeResolve } from '@rollup/plugin-node-resolve' +import replace from '@rollup/plugin-replace' +import banner from './banner.mjs' + +const __dirname = path.dirname(fileURLToPath(import.meta.url)) + +const BUNDLE = process.env.BUNDLE === 'true' +const ESM = process.env.ESM === 'true' + +let destinationFile = `bootstrap${ESM ? '.esm' : ''}` +const external = ['@popperjs/core'] +const plugins = [ + babel({ + // Only transpile our source code + exclude: 'node_modules/**', + // Include the helpers in the bundle, at most one copy of each + babelHelpers: 'bundled' + }) +] +const globals = { + '@popperjs/core': 'Popper' +} + +if (BUNDLE) { + destinationFile += '.bundle' + // Remove last entry in external array to bundle Popper + external.pop() + delete globals['@popperjs/core'] + plugins.push( + replace({ + 'process.env.NODE_ENV': '"production"', + preventAssignment: true + }), + nodeResolve() + ) +} + +const rollupConfig = { + input: path.resolve(__dirname, `../js/index.${ESM ? 'esm' : 'umd'}.js`), + output: { + banner: banner(), + file: path.resolve(__dirname, `../dist/js/${destinationFile}.js`), + format: ESM ? 'esm' : 'umd', + globals, + generatedCode: 'es2015' + }, + external, + plugins +} + +if (!ESM) { + rollupConfig.output.name = 'bootstrap' +} + +export default rollupConfig diff --git a/vendor/twbs/bootstrap/build/vnu-jar.js b/vendor/twbs/bootstrap/build/vnu-jar.js deleted file mode 100644 index 22956cb7e..000000000 --- a/vendor/twbs/bootstrap/build/vnu-jar.js +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env node - -/*! - * Script to run vnu-jar if Java is available. - * Copyright 2017-2023 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ - -'use strict' - -const { execFile, spawn } = require('node:child_process') -const vnu = require('vnu-jar') - -execFile('java', ['-version'], (error, stdout, stderr) => { - if (error) { - console.error('Skipping vnu-jar test; Java is probably missing.') - console.error(error) - return - } - - console.log('Running vnu-jar validation...') - - const is32bitJava = !/64-Bit/.test(stderr) - - // vnu-jar accepts multiple ignores joined with a `|`. - // Also note that the ignores are string regular expressions. - const ignores = [ - // "autocomplete" is included in ', - ' ', + '
', + ' ', + '
', '' ].join('') // Wrap programmatically code blocks and add copy btn. document.querySelectorAll('.highlight') .forEach(element => { - if (!element.closest('.bd-example-snippet')) { // Ignore examples made be shortcode + // Ignore examples made by shortcode + if (!element.closest('.bd-example-snippet')) { element.insertAdjacentHTML('beforebegin', btnHtml) element.previousElementSibling.append(element) } diff --git a/vendor/twbs/bootstrap/site/assets/scss/_component-examples.scss b/vendor/twbs/bootstrap/site/assets/scss/_component-examples.scss index 0f1018b06..1d8caed66 100644 --- a/vendor/twbs/bootstrap/site/assets/scss/_component-examples.scss +++ b/vendor/twbs/bootstrap/site/assets/scss/_component-examples.scss @@ -220,15 +220,16 @@ // scss-docs-start custom-tooltip .custom-tooltip { - --bs-tooltip-bg: var(--bs-primary); + --bs-tooltip-bg: var(--bd-violet-bg); + --bs-tooltip-color: var(--bs-white); } // scss-docs-end custom-tooltip // scss-docs-start custom-popovers .custom-popover { --bs-popover-max-width: 200px; - --bs-popover-border-color: var(--bs-primary); - --bs-popover-header-bg: var(--bs-primary); + --bs-popover-border-color: var(--bd-violet-bg); + --bs-popover-header-bg: var(--bd-violet-bg); --bs-popover-header-color: var(--bs-white); --bs-popover-body-padding-x: 1rem; --bs-popover-body-padding-y: .5rem; diff --git a/vendor/twbs/bootstrap/site/assets/scss/_navbar.scss b/vendor/twbs/bootstrap/site/assets/scss/_navbar.scss index 110797b98..2b598bf67 100644 --- a/vendor/twbs/bootstrap/site/assets/scss/_navbar.scss +++ b/vendor/twbs/bootstrap/site/assets/scss/_navbar.scss @@ -73,7 +73,7 @@ border-left: 0; @include media-breakpoint-down(lg) { - box-shadow: $box-shadow-lg; + box-shadow: var(--bs-box-shadow-lg); } } diff --git a/vendor/twbs/bootstrap/site/assets/scss/_scrolling.scss b/vendor/twbs/bootstrap/site/assets/scss/_scrolling.scss index 201796003..0aaf7444e 100644 --- a/vendor/twbs/bootstrap/site/assets/scss/_scrolling.scss +++ b/vendor/twbs/bootstrap/site/assets/scss/_scrolling.scss @@ -3,6 +3,9 @@ main { a, button, + input, + select, + textarea, h2, h3, h4, diff --git a/vendor/twbs/bootstrap/site/assets/scss/_sidebar.scss b/vendor/twbs/bootstrap/site/assets/scss/_sidebar.scss index 6f1ef292f..598da3d5b 100644 --- a/vendor/twbs/bootstrap/site/assets/scss/_sidebar.scss +++ b/vendor/twbs/bootstrap/site/assets/scss/_sidebar.scss @@ -15,7 +15,7 @@ @include media-breakpoint-down(lg) { .offcanvas-lg { border-right-color: var(--bs-border-color); - box-shadow: $box-shadow-lg; + box-shadow: var(--bs-box-shadow-lg); } } } diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/alerts.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/alerts.md index d634ce2d1..9eb64dfe3 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/alerts.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/alerts.md @@ -84,7 +84,7 @@ Similarly, you can use [flexbox utilities]({{< docsref "/utilities/flex" >}}) an Need more than one icon for your alerts? Consider using more Bootstrap Icons and making a local SVG sprite like so to easily reference the same icons repeatedly. {{< example >}} - + diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/button-group.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/button-group.md index 9c6356249..9f26a9181 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/button-group.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/button-group.md @@ -190,8 +190,6 @@ Make a set of buttons appear vertically stacked rather than horizontally. **Spli - - {{< /example >}} @@ -208,9 +206,7 @@ Make a set of buttons appear vertically stacked rather than horizontally. **Spli
  • Dropdown link
  • - - -
    +
    @@ -219,7 +215,7 @@ Make a set of buttons appear vertically stacked rather than horizontally. **Spli
  • Dropdown link
  • -
    +
    @@ -228,7 +224,7 @@ Make a set of buttons appear vertically stacked rather than horizontally. **Spli
  • Dropdown link
  • -
    +
    diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/buttons.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/buttons.md index ae58fca9a..83a61382a 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/buttons.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/buttons.md @@ -129,7 +129,7 @@ To cover cases where you have to keep the `href` attribute on a disabled link, t ## Block buttons -Create responsive stacks of full-width, "block buttons" like those in Bootstrap 4 with a mix of our display and gap utilities. By using utilities instead of button specific classes, we have much greater control over spacing, alignment, and responsive behaviors. +Create responsive stacks of full-width, "block buttons" like those in Bootstrap 4 with a mix of our display and gap utilities. By using utilities instead of button-specific classes, we have much greater control over spacing, alignment, and responsive behaviors. {{< example >}}
    @@ -156,7 +156,7 @@ You can adjust the width of your block buttons with grid column width classes. F
    {{< /example >}} -Additional utilities can be used to adjust the alignment of buttons when horizontal. Here we've taken our previous responsive example and added some flex utilities and a margin utility on the button to right align the buttons when they're no longer stacked. +Additional utilities can be used to adjust the alignment of buttons when horizontal. Here we've taken our previous responsive example and added some flex utilities and a margin utility on the button to right-align the buttons when they're no longer stacked. {{< example >}}
    @@ -178,15 +178,29 @@ Visually, these toggle buttons are identical to the [checkbox toggle buttons]({{ Add `data-bs-toggle="button"` to toggle a button's `active` state. If you're pre-toggling a button, you must manually add the `.active` class **and** `aria-pressed="true"` to ensure that it is conveyed appropriately to assistive technologies. {{< example >}} - - - +

    + + + +

    +

    + + + +

    {{< /example >}} {{< example >}} -Toggle link -Active toggle link -Disabled toggle link +

    + Toggle link + Active toggle link + Disabled toggle link +

    +

    + Toggle link + Active toggle link + Disabled toggle link +

    {{< /example >}} ### Methods @@ -201,8 +215,8 @@ const bsButton = new bootstrap.Button('#myButton') | Method | Description | | --- | --- | | `dispose` | Destroys an element's button. (Removes stored data on the DOM element) | -| `getInstance` | Static method which allows you to get the button instance associated to a DOM element, you can use it like this: `bootstrap.Button.getInstance(element)`. | -| `getOrCreateInstance` | Static method which returns a button instance associated to a DOM element or create a new one in case it wasn't initialized. You can use it like this: `bootstrap.Button.getOrCreateInstance(element)`. | +| `getInstance` | Static method which allows you to get the button instance associated with a DOM element, you can use it like this: `bootstrap.Button.getInstance(element)`. | +| `getOrCreateInstance` | Static method which returns a button instance associated with a DOM element or creates a new one in case it wasn't initialized. You can use it like this: `bootstrap.Button.getOrCreateInstance(element)`. | | `toggle` | Toggles push state. Gives the button the appearance that it has been activated. | {{< /bs-table >}} @@ -227,7 +241,7 @@ As part of Bootstrap's evolving CSS variables approach, buttons now use local CS Each `.btn-*` modifier class updates the appropriate CSS variables to minimize additional CSS rules with our `button-variant()`, `button-outline-variant()`, and `button-size()` mixins. -Here's an example of building a custom `.btn-*` modifier class like we do for the buttons unique to our docs by reassigning Bootstrap's CSS variables with a mixture of our own CSS and Sass variables. +Here's an example of building a custom `.btn-*` modifier class as we do for the buttons unique to our docs by reassigning Bootstrap's CSS variables with a mixture of our own CSS and Sass variables.
    diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/card.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/card.md index 2ad32b470..6138c3d92 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/card.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/card.md @@ -309,7 +309,7 @@ Add some navigation to a card's header (or block) with Bootstrap's [nav componen Link
    @@ -332,7 +332,7 @@ Add some navigation to a card's header (or block) with Bootstrap's [nav componen Link
    diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/collapse.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/collapse.md index 21b9c3e06..d5171151b 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/collapse.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/collapse.md @@ -25,7 +25,7 @@ Click the buttons below to show and hide another element via class changes: Generally, we recommend using a ` diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/dropdowns.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/dropdowns.md index 098882064..6e3811f1f 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/dropdowns.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/dropdowns.md @@ -661,7 +661,7 @@ Add `.disabled` to items in the dropdown to **style them as disabled**. {{< example >}} {{< /example >}} diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/list-group.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/list-group.md index 6c22809f9..598bb38d6 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/list-group.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/list-group.md @@ -62,7 +62,7 @@ Be sure to **not use the standard `.btn` classes here**. A second link item A third link item A fourth link item - A disabled link item + A disabled link item
    {{< /example >}} diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/navbar.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/navbar.md index 9b9f86a4d..ab6c2305c 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/navbar.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/navbar.md @@ -63,7 +63,7 @@ Here's an example of all the sub-components included in a responsive light-theme
    @@ -179,7 +179,7 @@ And because we use classes for our navs, you can avoid the list-based approach e Home Features Pricing - Disabled + Disabled
    @@ -331,7 +331,7 @@ Mix and match with other components and utilities as needed. Navbar themes are easier than ever thanks to Bootstrap's combination of Sass and CSS variables. The default is our "light navbar" for use with light background colors, but you can also apply `data-bs-theme="dark"` to the `.navbar` parent for dark background colors. Then, customize with `.bg-*` and additional utilities.
    - {{< /example >}} @@ -294,7 +294,7 @@ Add dropdown menus with a little extra HTML and the [dropdowns JavaScript plugin Link {{< /example >}} @@ -320,7 +320,7 @@ Add dropdown menus with a little extra HTML and the [dropdowns JavaScript plugin Link {{< /example >}} @@ -567,7 +567,7 @@ And with vertical pills. Ideally, for vertical tabs, you should also add `aria-o Dynamic tabbed interfaces, as described in the [ARIA Authoring Practices Guide tabs pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/), require `role="tablist"`, `role="tab"`, `role="tabpanel"`, and additional `aria-` attributes in order to convey their structure, functionality, and current state to users of assistive technologies (such as screen readers). As a best practice, we recommend using `
    @@ -67,7 +67,7 @@ In the example below, we take a typical card component and recreate it with plac

    - + ``` @@ -83,7 +83,7 @@ We apply additional styling to `.btn`s via `::before` to ensure the `height` is

    - + {{< /example >}} {{< callout info >}} diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/popovers.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/popovers.md index 0a2138db9..685d2c3c6 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/popovers.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/popovers.md @@ -198,7 +198,7 @@ Note that for security reasons the `sanitize`, `sanitizeFn`, and `allowList` opt | `sanitize` | boolean | `true` | Enable or disable the sanitization. If activated `'template'`, `'content'` and `'title'` options will be sanitized. | | `sanitizeFn` | null, function | `null` | Here you can supply your own sanitize function. This can be useful if you prefer to use a dedicated library to perform sanitization. | | `selector` | string, false | `false` | If a selector is provided, popover objects will be delegated to the specified targets. In practice, this is used to also apply popovers to dynamically added DOM elements (`jQuery.on` support). See [this issue]({{< param repo >}}/issues/4215) and [an informative example](https://codepen.io/Johann-S/pen/djJYPb). **Note**: `title` attribute must not be used as a selector. | -| `template` | string | `'
    '` | Base HTML to use when creating the popover. The popover's `title` will be injected into the `.popover-inner`. `.popover-arrow` will become the popover's arrow. The outermost wrapper element should have the `.popover` class and `role="popover"`. | +| `template` | string | `''` | Base HTML to use when creating the popover. The popover's `title` will be injected into the `.popover-inner`. `.popover-arrow` will become the popover's arrow. The outermost wrapper element should have the `.popover` class and `role="tooltip"`. | | `title` | string, element, function | `''` | The popover title. If a function is given, it will be called with its `this` reference set to the element that the popover is attached to. | | `trigger` | string | `'hover focus'` | How popover is triggered: click, hover, focus, manual. You may pass multiple triggers; separate them with a space. `'manual'` indicates that the popover will be triggered programmatically via the `.popover('show')`, `.popover('hide')` and `.popover('toggle')` methods; this value cannot be combined with any other trigger. `'hover'` on its own will result in popovers that cannot be triggered via the keyboard, and should only be used if alternative methods for conveying the same information for keyboard users is present. | {{< /bs-table >}} diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/spinners.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/spinners.md index f2635c63e..977257dd0 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/spinners.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/spinners.md @@ -96,8 +96,8 @@ Use [flexbox utilities][flex], [float utilities][float], or [text alignment][tex {{< example >}}
    - Loading... - + Loading... +
    {{< /example >}} @@ -151,23 +151,23 @@ Use spinners within buttons to indicate an action is currently processing or tak {{< example >}} {{< /example >}} {{< example >}} {{< /example >}} diff --git a/vendor/twbs/bootstrap/site/content/docs/5.3/components/tooltips.md b/vendor/twbs/bootstrap/site/content/docs/5.3/components/tooltips.md index cf628e344..91adacc7f 100644 --- a/vendor/twbs/bootstrap/site/content/docs/5.3/components/tooltips.md +++ b/vendor/twbs/bootstrap/site/content/docs/5.3/components/tooltips.md @@ -157,7 +157,7 @@ const tooltip = new bootstrap.Tooltip('#example', { The required markup for a tooltip is only a `data` attribute and `title` on the HTML element you wish to have a tooltip. The generated markup of a tooltip is rather simple, though it does require a position (by default, set to `top` by the plugin). {{< callout warning >}} -**Keep tooltips accessible to keyboard and assistive technology users** by only adding them to HTML elements that are traditionally keyboard-focusable and interactive (such as links or form controls). While other HTML elements can be made focusable by adding `tabindex="0"`, this can create annoying and confusing tab stops on non-interactive elements for keyboard users, and most assistive technologies currently do not announce tooltips in this situation. Additionally, do not rely solely on `hover` as the trigger for your tooltips as this will make theme impossible to trigger for keyboard users. +**Keep tooltips accessible to keyboard and assistive technology users** by only adding them to HTML elements that are traditionally keyboard-focusable and interactive (such as links or form controls). While other HTML elements can be made focusable by adding `tabindex="0"`, this can create annoying and confusing tab stops on non-interactive elements for keyboard users, and most assistive technologies currently do not announce tooltips in this situation. Additionally, do not rely solely on `hover` as the trigger for your tooltips as this will make them impossible to trigger for keyboard users. {{< /callout >}} ```html @@ -165,7 +165,7 @@ The required markup for a tooltip is only a `data` attribute and `title` on the Hover over me -