Compare commits

..

39 Commits

Author SHA1 Message Date
Mark Otto 971cb70c40 Add text-wrap balance and pretty to complement existing white-space utils. In v6 we'll replace with all text-wrap utilities. 2025-05-23 15:28:18 -07:00
Maxime Lardenois 374c8a1e1f Docs: fix typo in Masonry example (#41486)
Co-authored-by: Julien Déramond <juderamond@gmail.com>
2025-05-23 11:14:11 +02:00
Louis-Maxime Piton a749136ce2 Docs: enhance 'On this page' ToC accessibility (#41483)
Co-authored-by: Julien Déramond <juderamond@gmail.com>
2025-05-23 11:06:18 +02:00
Louis-Maxime Piton 1c3b53bc0b Docs: ensure stackblitz.js loads conditionally as intended (#41482)
Co-authored-by: Vincent Prothais <vincent.prothais@orange.com>
Co-authored-by: Julien Déramond <juderamond@gmail.com>
2025-05-23 09:47:55 +02:00
Bardi Harborow eeb12099b6 Docs: Refine sanitizer documentation (#41434)
Co-authored-by: Julien Déramond <juderamond@gmail.com>
2025-05-22 21:48:52 +02:00
dependabot[bot] c85346d0bc Build(deps-dev): Bump the development-dependencies group with 6 updates (#41478)
Bumps the development-dependencies group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) | `5.7.12` | `5.7.13` |
| [eslint-plugin-html](https://github.com/BenoitZugmeyer/eslint-plugin-html) | `8.1.2` | `8.1.3` |
| [npm-run-all2](https://github.com/bcomnes/npm-run-all2) | `8.0.1` | `8.0.2` |
| [rollup](https://github.com/rollup/rollup) | `4.40.2` | `4.41.0` |
| [terser](https://github.com/terser/terser) | `5.39.1` | `5.39.2` |
| [zod](https://github.com/colinhacks/zod) | `3.24.4` | `3.25.7` |


Updates `astro` from 5.7.12 to 5.7.13
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@5.7.13/packages/astro)

Updates `eslint-plugin-html` from 8.1.2 to 8.1.3
- [Changelog](https://github.com/BenoitZugmeyer/eslint-plugin-html/blob/main/CHANGELOG.md)
- [Commits](https://github.com/BenoitZugmeyer/eslint-plugin-html/compare/v8.1.2...v8.1.3)

Updates `npm-run-all2` from 8.0.1 to 8.0.2
- [Release notes](https://github.com/bcomnes/npm-run-all2/releases)
- [Changelog](https://github.com/bcomnes/npm-run-all2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bcomnes/npm-run-all2/compare/v8.0.1...v8.0.2)

Updates `rollup` from 4.40.2 to 4.41.0
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.40.2...v4.41.0)

Updates `terser` from 5.39.1 to 5.39.2
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/compare/v5.39.1...v5.39.2)

Updates `zod` from 3.24.4 to 3.25.7
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/commits)

---
updated-dependencies:
- dependency-name: astro
  dependency-version: 5.7.13
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: eslint-plugin-html
  dependency-version: 8.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: npm-run-all2
  dependency-version: 8.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: rollup
  dependency-version: 4.41.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
- dependency-name: terser
  dependency-version: 5.39.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: zod
  dependency-version: 3.25.7
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-20 19:17:43 +02:00
Julien Déramond 7f946d4241 Consolidate multiple 'none' values in box-shadow Sass mixin (#41469) 2025-05-19 20:53:18 -07:00
Julien Déramond e5b9f37149 Fix HTML head content built from 'Download examples' button (#41468) 2025-05-19 12:52:34 -07:00
dependabot[bot] 0a005b3604 Build(deps-dev): Bump terser from 5.39.0 to 5.39.1 (#41467)
Bumps the development-dependencies group with 1 update in the / directory: [terser](https://github.com/terser/terser).


Updates `terser` from 5.39.0 to 5.39.1
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/compare/v5.39.0...v5.39.1)

---
updated-dependencies:
- dependency-name: terser
  dependency-version: 5.39.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-13 21:43:32 +02:00
Julien Déramond e4720759c0 Update devDependencies (#41464) 2025-05-13 21:02:04 +02:00
dependabot[bot] a74579119a Build(deps): Bump streetsidesoftware/cspell-action from 6 to 7 (#41462)
Bumps [streetsidesoftware/cspell-action](https://github.com/streetsidesoftware/cspell-action) from 6 to 7.
- [Release notes](https://github.com/streetsidesoftware/cspell-action/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: streetsidesoftware/cspell-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-13 20:39:39 +02:00
Julien Déramond 03f6129e6f Realign package.json dev deps versions from lock file (#41461) 2025-05-12 22:55:38 +02:00
Julien Déramond ac0e962d32 Drop ununsed @types/google.analytics dev dependency and bump @types dev dependencies (#41456)
Co-authored-by: Christian Oliff <christianoliff@pm.me>
2025-05-09 18:57:35 +02:00
Julien Déramond 0f19b06745 Update devDependencies (#41450) 2025-05-07 17:24:20 +02:00
Julien Déramond 06f4e79cc7 Update devDependencies (#41445) 2025-05-06 19:09:11 +02:00
Julien Déramond 33b1b0e7b8 Update devDependencies (#41443) 2025-05-06 18:55:23 +02:00
Julien Déramond 6fb43fb737 Add re-synchronization of gh-pages branch in 'docs-prep.sh' 2025-05-06 16:58:08 +02:00
AlexKoala cababca0b9 Docs: fix broken "View on GitHub" URLs (#41440) 2025-05-06 16:46:51 +02:00
Mark Otto f849680d16 Release v5.3.6 (#41406)
* Update to v5.3.6

* Rebuild

* Rebuild
2025-05-05 12:21:55 -07:00
Mark Otto dddd792ffe Add docs release prep script (#41435)
* Add docs release prep script

* Fix indentation

* Add argument

* Remote empty site dir, update completion text
2025-05-05 12:07:30 -07:00
Gaël Poupard c5bec4ea7b fix(visually-hidden): prevent overflowing children to become focusable (#41286) 2025-05-04 13:21:30 -07:00
Julien Déramond 4c98145482 Update devDependencies and regenerate package-lock.json (#41425) 2025-05-01 20:56:40 +02:00
MarkoOleksiyenko ba5b5a6300 docs(pagination): put current page on link element for a11y (#41154)
* docs(pagination): put current page on link element for a11y

* Reorganize and rewrite

* Update pagination.mdx

---------

Co-authored-by: Mark Otto <markdotto@gmail.com>
2025-04-29 09:40:45 -07:00
chris 1184417397 remove link to sunset resource on accessibility.mdx (#41418) 2025-04-28 21:02:46 -07:00
Mohamad Salman 7bbbc492ef Removed line break between // Private comment and function (#41218) 2025-04-25 10:22:58 -07:00
Mohamad Salman 3bb3c95188 Move _isShown() method to private section (#41220) 2025-04-25 10:21:47 -07:00
Christian Oliff a03a9d6696 Docs: Remove some unneeded Twitter/X metatags (#41408) 2025-04-24 15:00:05 +02:00
Julien Déramond 9f4d383046 Remove files configuration from .cspell.json (#41400) 2025-04-22 09:16:54 +02:00
Jason Dent a4b37547a3 Spell check .md and .mdx files (#41398)
Co-authored-by: Julien Déramond <juderamond@gmail.com>
2025-04-22 08:54:19 +02:00
Julien Déramond bd09d21ed6 Fix typos and code indentation in Forms > Checks and radios (#41399) 2025-04-22 08:44:44 +02:00
Mark Otto 24305e7b18 Attempt to return focus explicitly to dropdown trigger (#41365)
Co-authored-by: Mark Otto <mdo@heypierre.app>
2025-04-21 21:20:09 -07:00
Tommaso Allegretti 1d441c7c7f Docs: add Usage section with JavaScript guide for Accordion component (#40768)
Co-authored-by: Julien Déramond <juderamond@gmail.com>
Co-authored-by: Tommaso Allegretti <tommasoallegretti@users.noreply.github.com>
2025-04-21 21:04:20 -07:00
Mark Otto 1a6175a1c6 Alternate for #41142, disabled list group items (#41397) 2025-04-21 21:03:10 -07:00
Mohamad Salman 5c5f2913df Add private comment to BaseComponent Class (#41254) 2025-04-21 20:33:04 -07:00
Mark Otto dd4e14499f Add switch attribute to docs for switch checkbox (#41396)
* Add switch attribute to docs for switch checkbox

* tweak

* AI says this is the way

* fix
2025-04-21 20:32:40 -07:00
Julien Déramond ed36faae9d Bump image-size from 1.0.2 to 2.0.2 (#41384) 2025-04-15 21:18:13 +02:00
Julien Déramond d01e66f5f7 Update devDependencies (#41383) 2025-04-15 21:09:29 +02:00
XhmikosR 2b55a457ce Update dependabot.yml 2025-04-15 20:56:27 +03:00
Julien Déramond a8ab19955b Docs: migration from Hugo to Astro (#41251)
Co-authored-by: HiDeoo <494699+HiDeoo@users.noreply.github.com>
Co-authored-by: Mark Otto <markdotto@gmail.com>
2025-04-15 18:37:47 +02:00
119 changed files with 2235 additions and 2268 deletions
-3
View File
@@ -120,9 +120,6 @@
"zindex"
],
"language": "en-US",
"files": [
"**/*.md"
],
"ignorePaths": [
".cspell.json",
"dist/",
+1
View File
@@ -95,6 +95,7 @@
"unicorn/prefer-array-flat": "off",
"unicorn/prefer-at": "off",
"unicorn/prefer-dom-node-dataset": "off",
"unicorn/prefer-global-this": "off",
"unicorn/prefer-module": "off",
"unicorn/prefer-query-selector": "off",
"unicorn/prefer-spread": "off",
-2
View File
@@ -9,8 +9,6 @@ updates:
timezone: Europe/Athens
- package-ecosystem: npm
directory: "/"
reviewers:
- XhmikosR
labels:
- dependencies
- v5
+2 -2
View File
@@ -28,9 +28,9 @@ jobs:
persist-credentials: false
- name: Run cspell
uses: streetsidesoftware/cspell-action@v6
uses: streetsidesoftware/cspell-action@v7
with:
config: ".cspell.json"
files: "**/*.md"
files: "**/*.{md,mdx}"
inline: error
incremental_files_only: false
-4
View File
@@ -44,7 +44,3 @@ Thumbs.db
/site/node_modules
/site/.astro
/site/public
# TODO(Astro migration): temporary files and directories during the migration
resources/
.hugo_build.lock
+5 -5
View File
@@ -46,12 +46,12 @@ 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.5.zip)
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.3.6.zip)
- Clone the repo: `git clone https://github.com/twbs/bootstrap.git`
- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@v5.3.5`
- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@v5.3.5`
- Install with [Bun](https://bun.sh/): `bun add bootstrap@v5.3.5`
- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.3.5`
- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@v5.3.6`
- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@v5.3.6`
- Install with [Bun](https://bun.sh/): `bun add bootstrap@v5.3.6`
- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.3.6`
- 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.
+181
View File
@@ -0,0 +1,181 @@
#!/bin/bash
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Default branch suffix
BRANCH_SUFFIX="release"
# Check if a custom version parameter was provided
if [ $# -eq 1 ]; then
BRANCH_SUFFIX="$1"
fi
# Branch name to create
NEW_BRANCH="gh-pages-${BRANCH_SUFFIX}"
# Function to print colored messages
print_success() {
echo -e "${GREEN}$1${NC}"
}
print_error() {
echo -e "${RED}$1${NC}"
exit 1
}
print_info() {
echo -e "${BLUE} $1${NC}"
}
print_warning() {
echo -e "${YELLOW}$1${NC}"
}
# Function to execute command with error handling
execute() {
print_info "Running: $1"
eval $1
if [ $? -ne 0 ]; then
print_error "Failed to execute: $1"
else
print_success "Successfully executed: $1"
fi
}
# Check if /tmp/_site directory exists from a previous run
if [ -d "/tmp/_site" ]; then
print_warning "Found existing /tmp/_site directory. Removing it…"
rm -rf /tmp/_site
fi
# Main process
print_info "Starting documentation deployment process…"
# Step 1: Build documentation
print_info "Building documentation with npm run docs…"
npm run docs
if [ $? -ne 0 ]; then
print_error "Documentation build failed!"
fi
print_success "Documentation built successfully"
# Step 2: Move _site to /tmp/
print_info "Moving _site to temporary location…"
execute "mv _site /tmp/"
# Step 3: Switch to gh-pages branch
print_info "Checking out gh-pages branch…"
git checkout gh-pages
if [ $? -ne 0 ]; then
print_error "Failed to checkout gh-pages branch. Make sure it exists."
fi
print_success "Switched to gh-pages branch"
git reset --hard origin/gh-pages
if [ $? -ne 0 ]; then
print_error "Failed to reset to origin/gh-pages. Check your git configuration."
fi
print_success "Reset to origin/gh-pages"
git pull origin gh-pages
if [ $? -ne 0 ]; then
print_error "Failed to pull from origin/gh-pages. Check your network connection and git configuration."
fi
print_success "Pulled latest changes from origin/gh-pages"
# Step 4: Create a new branch for the update
print_info "Creating new branch ${NEW_BRANCH}"
execute "git checkout -b ${NEW_BRANCH}"
# Step 5: Move root files
print_info "Moving root files from temporary location…"
ROOT_FILES=("404.html" "CNAME" "apple-touch-icon.png" "favicon.ico" "index.html" "robots.txt" "sitemap-0.xml" "sitemap-index.xml" "sw.js")
for file in "${ROOT_FILES[@]}"; do
if [ -f "/tmp/_site/$file" ]; then
execute "mv /tmp/_site/$file ."
else
print_warning "File /tmp/_site/$file not found. Skipping."
fi
done
# Step 6: Move directories with cleanup
print_info "Moving directories from temporary location…"
DIRS=("about" "components" "docsref" "examples" "getting-started" "migration")
for dir in "${DIRS[@]}"; do
if [ -d "/tmp/_site/$dir" ]; then
if [ -d "$dir" ]; then
execute "rm -rf $dir"
fi
execute "mv /tmp/_site/$dir ."
else
print_warning "Directory /tmp/_site/$dir not found. Skipping."
fi
done
# Step 7: Handle special doc directories
print_info "Handling special documentation directories…"
SPECIAL_DOCS=("docs/getting-started" "docs/versions")
for dir in "${SPECIAL_DOCS[@]}"; do
if [ -d "/tmp/_site/$dir" ]; then
if [ -d "$dir" ]; then
execute "rm -rf $dir"
fi
# Make sure parent directory exists
parent_dir=$(dirname "$dir")
mkdir -p "$parent_dir"
execute "mv /tmp/_site/$dir $parent_dir/"
else
print_warning "Directory /tmp/_site/$dir not found. Skipping."
fi
done
# Step 8: Move docs index.html
if [ -f "/tmp/_site/docs/index.html" ]; then
execute "mv /tmp/_site/docs/index.html docs/index.html"
else
print_warning "File /tmp/_site/docs/index.html not found. Skipping."
fi
# Step 9: Handle docs/5.3
if [ -d "/tmp/_site/docs/5.3" ]; then
if [ -d "docs/5.3" ]; then
execute "rm -rf docs/5.3"
fi
execute "mv /tmp/_site/docs/5.3 docs/"
else
print_warning "Directory /tmp/_site/docs/5.3 not found. Skipping."
fi
# Clean up remaining files in /tmp/_site if any
if [ -d "/tmp/_site" ]; then
remaining_files=$(find /tmp/_site -type f | wc -l)
remaining_dirs=$(find /tmp/_site -type d | wc -l)
if [ $remaining_files -gt 0 ] || [ $remaining_dirs -gt 1 ]; then
print_warning "There are still some files or directories in /tmp/_site that weren't moved."
print_warning "You may want to inspect /tmp/_site to see if anything important was missed."
else
print_info "Cleaning up temporary directory…"
rm -rf /tmp/_site
print_success "Temporary directory cleaned up"
fi
fi
# Step 10: Remove empty site directory if it exists
if [ -d "site" ]; then
print_info "Removing empty site directory…"
execute "rm -rf site"
fi
print_success "Docs prep complete!"
print_info "Review changes before committing and pushing."
print_info "Next steps:"
print_info " 1. Run a local server to review changes"
print_info " 2. Check browser and web inspector for any errors"
print_info " 3. git add ."
print_info " 4. git commit -m \"Update documentation\""
print_info " 5. git push origin ${NEW_BRANCH}"
+3 -1
View File
@@ -35,7 +35,9 @@ execFile('java', ['-version'], (error, stdout, stderr) => {
'Attribute “is:raw” is not serializable as XML 1.0.',
'Attribute “is:raw” not allowed on element “code” at this point.',
// Astro's expecting trailing slashes on HTML tags such as <br />
'Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.'
'Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.',
// Allow `switch` attribute.
'Attribute “switch” not allowed on element “input” at this point.'
].join('|')
const args = [
+3 -3
View File
@@ -88,9 +88,9 @@ for (const file of sh.find(`${distFolder}/**/*.html`)) {
.toString()
.replace(new RegExp(`"/docs/${versionShort}/`, 'g'), '"../')
.replace(/"..\/dist\//g, '"../assets/dist/')
.replace(/(<link href="\.\.\/.*) integrity=".*>/g, '$1>')
.replace(/(<script src="\.\.\/.*) integrity=".*>/g, '$1></script>')
.replace(/( +)<!-- favicons(.|\n)+<style>/i, ' <style>')
.replace(/(<link href="\.\.\/[^"]*"[^>]*) integrity="[^"]*"/g, '$1')
.replace(/<link[^>]*href="\.\.\/assets\/img\/favicons\/[^"]*"[^>]*>/g, '')
.replace(/(<script src="\.\.\/[^"]*"[^>]*) integrity="[^"]*"/g, '$1')
new sh.ShellString(fileContents).to(file)
}
+13 -13
View File
@@ -7,8 +7,8 @@ subtitle: "The most popular HTML, CSS, and JS library in the world
description: "Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins."
authors: "Mark Otto, Jacob Thornton, and Bootstrap contributors"
current_version: "5.3.5"
current_ruby_version: "5.3.5"
current_version: "5.3.6"
current_ruby_version: "5.3.6"
docs_version: "5.3"
rfs_version: "v10.0.0"
github_org: "https://github.com/twbs"
@@ -29,20 +29,20 @@ algolia:
index_name: "bootstrap"
download:
source: "https://github.com/twbs/bootstrap/archive/v5.3.5.zip"
dist: "https://github.com/twbs/bootstrap/releases/download/v5.3.5/bootstrap-5.3.5-dist.zip"
dist_examples: "https://github.com/twbs/bootstrap/releases/download/v5.3.5/bootstrap-5.3.5-examples.zip"
source: "https://github.com/twbs/bootstrap/archive/v5.3.6.zip"
dist: "https://github.com/twbs/bootstrap/releases/download/v5.3.6/bootstrap-5.3.6-dist.zip"
dist_examples: "https://github.com/twbs/bootstrap/releases/download/v5.3.6/bootstrap-5.3.6-examples.zip"
cdn:
# See https://www.srihash.org for info on how to generate the hashes
css: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/css/bootstrap.min.css"
css_hash: "sha384-SgOJa3DmI69IUzQ2PVdRZhwQ+dy64/BUtbMJw1MZ8t5HZApcHrRKUc4W0kG879m7"
css_rtl: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/css/bootstrap.rtl.min.css"
css_rtl_hash: "sha384-q8+l9TmX3RaSz3HKGBmqP2u5MkgeN7HrfOJBLcTgZsQsbrx8WqqxdA5PuwUV9WIx"
js: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/js/bootstrap.min.js"
js_hash: "sha384-VQqxDN0EQCkWoxt/0vsQvZswzTHUVOImccYmSyhJTp7kGtPed0Qcx8rK9h9YEgx+"
js_bundle: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/js/bootstrap.bundle.min.js"
js_bundle_hash: "sha384-k6d4wzSIapyDyv1kpU366/PK5hCdSbCRGRCMv+eplOQJWyd1fbcAu9OCUj5zNLiq"
css: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.6/dist/css/bootstrap.min.css"
css_hash: "sha384-4Q6Gf2aSP4eDXB8Miphtr37CMZZQ5oXLH2yaXMJ2w8e2ZtHTl7GptT4jmndRuHDT"
css_rtl: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.6/dist/css/bootstrap.rtl.min.css"
css_rtl_hash: "sha384-MdqCcafa5BLgxBDJ3d/4D292geNL64JyRtSGjEszRUQX9rhL1QkcnId+OT7Yw+D+"
js: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.6/dist/js/bootstrap.min.js"
js_hash: "sha384-RuyvpeZCxMJCqVUGFI0Do1mQrods/hhxYlcVfGPOfQtPJh0JCw12tUAZ/Mv10S7D"
js_bundle: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.6/dist/js/bootstrap.bundle.min.js"
js_bundle_hash: "sha384-j1CDi7MgGQ12Z7Qab0qlWQ/Qqz24Gc6BM0thvEMVjHnfYGF0rmFCozFSxQBxwHKO"
popper: "https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
popper_hash: "sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
popper_esm: "https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/esm/popper.min.js"
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap Grid v5.3.5 (https://getbootstrap.com/)
* Bootstrap Grid v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap Grid v5.3.5 (https://getbootstrap.com/)
* Bootstrap Grid v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap Reboot v5.3.5 (https://getbootstrap.com/)
* Bootstrap Reboot v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap Reboot v5.3.5 (https://getbootstrap.com/)
* Bootstrap Reboot v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+5 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap Utilities v5.3.5 (https://getbootstrap.com/)
* Bootstrap Utilities v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -519,6 +519,10 @@
.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
position: absolute !important;
}
.visually-hidden *,
.visually-hidden-focusable:not(:focus):not(:focus-within) * {
overflow: hidden !important;
}
.stretched-link::after {
position: absolute;
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
+5 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap Utilities v5.3.5 (https://getbootstrap.com/)
* Bootstrap Utilities v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -519,6 +519,10 @@
.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
position: absolute !important;
}
.visually-hidden *,
.visually-hidden-focusable:not(:focus):not(:focus-within) * {
overflow: hidden !important;
}
.stretched-link::after {
position: absolute;
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
+13 -9
View File
@@ -1,6 +1,6 @@
@charset "UTF-8";
/*!
* Bootstrap v5.3.5 (https://getbootstrap.com/)
* Bootstrap v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -4517,24 +4517,24 @@ textarea.form-control-lg {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.card-group > .card:not(:last-child) .card-img-top,
.card-group > .card:not(:last-child) .card-header {
.card-group > .card:not(:last-child) > .card-img-top,
.card-group > .card:not(:last-child) > .card-header {
border-top-right-radius: 0;
}
.card-group > .card:not(:last-child) .card-img-bottom,
.card-group > .card:not(:last-child) .card-footer {
.card-group > .card:not(:last-child) > .card-img-bottom,
.card-group > .card:not(:last-child) > .card-footer {
border-bottom-right-radius: 0;
}
.card-group > .card:not(:first-child) {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.card-group > .card:not(:first-child) .card-img-top,
.card-group > .card:not(:first-child) .card-header {
.card-group > .card:not(:first-child) > .card-img-top,
.card-group > .card:not(:first-child) > .card-header {
border-top-left-radius: 0;
}
.card-group > .card:not(:first-child) .card-img-bottom,
.card-group > .card:not(:first-child) .card-footer {
.card-group > .card:not(:first-child) > .card-img-bottom,
.card-group > .card:not(:first-child) > .card-footer {
border-bottom-left-radius: 0;
}
}
@@ -7156,6 +7156,10 @@ textarea.form-control-lg {
.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
position: absolute !important;
}
.visually-hidden *,
.visually-hidden-focusable:not(:focus):not(:focus-within) * {
overflow: hidden !important;
}
.stretched-link::after {
position: absolute;
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+13 -9
View File
@@ -1,6 +1,6 @@
@charset "UTF-8";
/*!
* Bootstrap v5.3.5 (https://getbootstrap.com/)
* Bootstrap v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -4515,24 +4515,24 @@ textarea.form-control-lg {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.card-group > .card:not(:last-child) .card-img-top,
.card-group > .card:not(:last-child) .card-header {
.card-group > .card:not(:last-child) > .card-img-top,
.card-group > .card:not(:last-child) > .card-header {
border-top-left-radius: 0;
}
.card-group > .card:not(:last-child) .card-img-bottom,
.card-group > .card:not(:last-child) .card-footer {
.card-group > .card:not(:last-child) > .card-img-bottom,
.card-group > .card:not(:last-child) > .card-footer {
border-bottom-left-radius: 0;
}
.card-group > .card:not(:first-child) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.card-group > .card:not(:first-child) .card-img-top,
.card-group > .card:not(:first-child) .card-header {
.card-group > .card:not(:first-child) > .card-img-top,
.card-group > .card:not(:first-child) > .card-header {
border-top-right-radius: 0;
}
.card-group > .card:not(:first-child) .card-img-bottom,
.card-group > .card:not(:first-child) .card-footer {
.card-group > .card:not(:first-child) > .card-img-bottom,
.card-group > .card:not(:first-child) > .card-footer {
border-bottom-right-radius: 0;
}
}
@@ -7138,6 +7138,10 @@ textarea.form-control-lg {
.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
position: absolute !important;
}
.visually-hidden *,
.visually-hidden-focusable:not(:focus):not(:focus-within) * {
overflow: hidden !important;
}
.stretched-link::after {
position: absolute;
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+9 -5
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v5.3.5 (https://getbootstrap.com/)
* Bootstrap v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -647,7 +647,7 @@
* Constants
*/
const VERSION = '5.3.5';
const VERSION = '5.3.6';
/**
* Class definition
@@ -673,6 +673,8 @@
this[propertyName] = null;
}
}
// Private
_queueCallback(callback, element, isAnimated = true) {
executeAfterTransition(callback, element, isAnimated);
}
@@ -1604,11 +1606,11 @@
this._element.style[dimension] = '';
this._queueCallback(complete, this._element, true);
}
// Private
_isShown(element = this._element) {
return element.classList.contains(CLASS_NAME_SHOW$7);
}
// Private
_configAfterMerge(config) {
config.toggle = Boolean(config.toggle); // Coerce string values
config.parent = getElement(config.parent);
@@ -3688,6 +3690,9 @@
this._element.setAttribute('aria-expanded', 'false');
Manipulator.removeDataAttribute(this._menu, 'popper');
EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
// Explicitly return focus to the trigger element
this._element.focus();
}
_getConfig(config) {
config = super._getConfig(config);
@@ -6209,7 +6214,6 @@
}
// Private
_maybeScheduleHide() {
if (!this._config.autohide) {
return;
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+9 -5
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v5.3.5 (https://getbootstrap.com/)
* Bootstrap v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -643,7 +643,7 @@ class Config {
* Constants
*/
const VERSION = '5.3.5';
const VERSION = '5.3.6';
/**
* Class definition
@@ -669,6 +669,8 @@ class BaseComponent extends Config {
this[propertyName] = null;
}
}
// Private
_queueCallback(callback, element, isAnimated = true) {
executeAfterTransition(callback, element, isAnimated);
}
@@ -1600,11 +1602,11 @@ class Collapse extends BaseComponent {
this._element.style[dimension] = '';
this._queueCallback(complete, this._element, true);
}
// Private
_isShown(element = this._element) {
return element.classList.contains(CLASS_NAME_SHOW$7);
}
// Private
_configAfterMerge(config) {
config.toggle = Boolean(config.toggle); // Coerce string values
config.parent = getElement(config.parent);
@@ -1847,6 +1849,9 @@ class Dropdown extends BaseComponent {
this._element.setAttribute('aria-expanded', 'false');
Manipulator.removeDataAttribute(this._menu, 'popper');
EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
// Explicitly return focus to the trigger element
this._element.focus();
}
_getConfig(config) {
config = super._getConfig(config);
@@ -4368,7 +4373,6 @@ class Toast extends BaseComponent {
}
// Private
_maybeScheduleHide() {
if (!this._config.autohide) {
return;
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+9 -5
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v5.3.5 (https://getbootstrap.com/)
* Bootstrap v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -666,7 +666,7 @@
* Constants
*/
const VERSION = '5.3.5';
const VERSION = '5.3.6';
/**
* Class definition
@@ -692,6 +692,8 @@
this[propertyName] = null;
}
}
// Private
_queueCallback(callback, element, isAnimated = true) {
executeAfterTransition(callback, element, isAnimated);
}
@@ -1623,11 +1625,11 @@
this._element.style[dimension] = '';
this._queueCallback(complete, this._element, true);
}
// Private
_isShown(element = this._element) {
return element.classList.contains(CLASS_NAME_SHOW$7);
}
// Private
_configAfterMerge(config) {
config.toggle = Boolean(config.toggle); // Coerce string values
config.parent = getElement(config.parent);
@@ -1870,6 +1872,9 @@
this._element.setAttribute('aria-expanded', 'false');
Manipulator.removeDataAttribute(this._menu, 'popper');
EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
// Explicitly return focus to the trigger element
this._element.focus();
}
_getConfig(config) {
config = super._getConfig(config);
@@ -4391,7 +4396,6 @@
}
// Private
_maybeScheduleHide() {
if (!this._config.autohide) {
return;
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap alert.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap alert.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+4 -2
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap base-component.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap base-component.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -21,7 +21,7 @@
* Constants
*/
const VERSION = '5.3.5';
const VERSION = '5.3.6';
/**
* Class definition
@@ -47,6 +47,8 @@
this[propertyName] = null;
}
}
// Private
_queueCallback(callback, element, isAnimated = true) {
index_js.executeAfterTransition(callback, element, isAnimated);
}
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"base-component.js","sources":["../src/base-component.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.5'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n"],"names":["VERSION","BaseComponent","Config","constructor","element","config","getElement","_element","_config","_getConfig","Data","set","DATA_KEY","dispose","remove","EventHandler","off","EVENT_KEY","propertyName","Object","getOwnPropertyNames","_queueCallback","callback","isAnimated","executeAfterTransition","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","getInstance","get","getOrCreateInstance","NAME","eventName","name"],"mappings":";;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;;;EAOA;EACA;EACA;;EAEA,MAAMA,OAAO,GAAG,OAAO;;EAEvB;EACA;EACA;;EAEA,MAAMC,aAAa,SAASC,MAAM,CAAC;EACjCC,EAAAA,WAAWA,CAACC,OAAO,EAAEC,MAAM,EAAE;EAC3B,IAAA,KAAK,EAAE;EAEPD,IAAAA,OAAO,GAAGE,mBAAU,CAACF,OAAO,CAAC;MAC7B,IAAI,CAACA,OAAO,EAAE;EACZ,MAAA;EACF;MAEA,IAAI,CAACG,QAAQ,GAAGH,OAAO;MACvB,IAAI,CAACI,OAAO,GAAG,IAAI,CAACC,UAAU,CAACJ,MAAM,CAAC;EAEtCK,IAAAA,IAAI,CAACC,GAAG,CAAC,IAAI,CAACJ,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACS,QAAQ,EAAE,IAAI,CAAC;EAC1D;;EAEA;EACAC,EAAAA,OAAOA,GAAG;EACRH,IAAAA,IAAI,CAACI,MAAM,CAAC,IAAI,CAACP,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACS,QAAQ,CAAC;EACrDG,IAAAA,YAAY,CAACC,GAAG,CAAC,IAAI,CAACT,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACc,SAAS,CAAC;MAE3D,KAAK,MAAMC,YAAY,IAAIC,MAAM,CAACC,mBAAmB,CAAC,IAAI,CAAC,EAAE;EAC3D,MAAA,IAAI,CAACF,YAAY,CAAC,GAAG,IAAI;EAC3B;EACF;IAEAG,cAAcA,CAACC,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,GAAG,IAAI,EAAE;EACnDC,IAAAA,+BAAsB,CAACF,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,CAAC;EACvD;IAEAd,UAAUA,CAACJ,MAAM,EAAE;MACjBA,MAAM,GAAG,IAAI,CAACoB,eAAe,CAACpB,MAAM,EAAE,IAAI,CAACE,QAAQ,CAAC;EACpDF,IAAAA,MAAM,GAAG,IAAI,CAACqB,iBAAiB,CAACrB,MAAM,CAAC;EACvC,IAAA,IAAI,CAACsB,gBAAgB,CAACtB,MAAM,CAAC;EAC7B,IAAA,OAAOA,MAAM;EACf;;EAEA;IACA,OAAOuB,WAAWA,CAACxB,OAAO,EAAE;EAC1B,IAAA,OAAOM,IAAI,CAACmB,GAAG,CAACvB,mBAAU,CAACF,OAAO,CAAC,EAAE,IAAI,CAACQ,QAAQ,CAAC;EACrD;IAEA,OAAOkB,mBAAmBA,CAAC1B,OAAO,EAAEC,MAAM,GAAG,EAAE,EAAE;MAC/C,OAAO,IAAI,CAACuB,WAAW,CAACxB,OAAO,CAAC,IAAI,IAAI,IAAI,CAACA,OAAO,EAAE,OAAOC,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAG,IAAI,CAAC;EACnG;IAEA,WAAWL,OAAOA,GAAG;EACnB,IAAA,OAAOA,OAAO;EAChB;IAEA,WAAWY,QAAQA,GAAG;EACpB,IAAA,OAAO,CAAM,GAAA,EAAA,IAAI,CAACmB,IAAI,CAAE,CAAA;EAC1B;IAEA,WAAWd,SAASA,GAAG;EACrB,IAAA,OAAO,CAAI,CAAA,EAAA,IAAI,CAACL,QAAQ,CAAE,CAAA;EAC5B;IAEA,OAAOoB,SAASA,CAACC,IAAI,EAAE;EACrB,IAAA,OAAO,GAAGA,IAAI,CAAA,EAAG,IAAI,CAAChB,SAAS,CAAE,CAAA;EACnC;EACF;;;;;;;;"}
{"version":3,"file":"base-component.js","sources":["../src/base-component.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.6'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n // Private\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n"],"names":["VERSION","BaseComponent","Config","constructor","element","config","getElement","_element","_config","_getConfig","Data","set","DATA_KEY","dispose","remove","EventHandler","off","EVENT_KEY","propertyName","Object","getOwnPropertyNames","_queueCallback","callback","isAnimated","executeAfterTransition","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","getInstance","get","getOrCreateInstance","NAME","eventName","name"],"mappings":";;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;;;EAOA;EACA;EACA;;EAEA,MAAMA,OAAO,GAAG,OAAO;;EAEvB;EACA;EACA;;EAEA,MAAMC,aAAa,SAASC,MAAM,CAAC;EACjCC,EAAAA,WAAWA,CAACC,OAAO,EAAEC,MAAM,EAAE;EAC3B,IAAA,KAAK,EAAE;EAEPD,IAAAA,OAAO,GAAGE,mBAAU,CAACF,OAAO,CAAC;MAC7B,IAAI,CAACA,OAAO,EAAE;EACZ,MAAA;EACF;MAEA,IAAI,CAACG,QAAQ,GAAGH,OAAO;MACvB,IAAI,CAACI,OAAO,GAAG,IAAI,CAACC,UAAU,CAACJ,MAAM,CAAC;EAEtCK,IAAAA,IAAI,CAACC,GAAG,CAAC,IAAI,CAACJ,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACS,QAAQ,EAAE,IAAI,CAAC;EAC1D;;EAEA;EACAC,EAAAA,OAAOA,GAAG;EACRH,IAAAA,IAAI,CAACI,MAAM,CAAC,IAAI,CAACP,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACS,QAAQ,CAAC;EACrDG,IAAAA,YAAY,CAACC,GAAG,CAAC,IAAI,CAACT,QAAQ,EAAE,IAAI,CAACJ,WAAW,CAACc,SAAS,CAAC;MAE3D,KAAK,MAAMC,YAAY,IAAIC,MAAM,CAACC,mBAAmB,CAAC,IAAI,CAAC,EAAE;EAC3D,MAAA,IAAI,CAACF,YAAY,CAAC,GAAG,IAAI;EAC3B;EACF;;EAEA;IACAG,cAAcA,CAACC,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,GAAG,IAAI,EAAE;EACnDC,IAAAA,+BAAsB,CAACF,QAAQ,EAAElB,OAAO,EAAEmB,UAAU,CAAC;EACvD;IAEAd,UAAUA,CAACJ,MAAM,EAAE;MACjBA,MAAM,GAAG,IAAI,CAACoB,eAAe,CAACpB,MAAM,EAAE,IAAI,CAACE,QAAQ,CAAC;EACpDF,IAAAA,MAAM,GAAG,IAAI,CAACqB,iBAAiB,CAACrB,MAAM,CAAC;EACvC,IAAA,IAAI,CAACsB,gBAAgB,CAACtB,MAAM,CAAC;EAC7B,IAAA,OAAOA,MAAM;EACf;;EAEA;IACA,OAAOuB,WAAWA,CAACxB,OAAO,EAAE;EAC1B,IAAA,OAAOM,IAAI,CAACmB,GAAG,CAACvB,mBAAU,CAACF,OAAO,CAAC,EAAE,IAAI,CAACQ,QAAQ,CAAC;EACrD;IAEA,OAAOkB,mBAAmBA,CAAC1B,OAAO,EAAEC,MAAM,GAAG,EAAE,EAAE;MAC/C,OAAO,IAAI,CAACuB,WAAW,CAACxB,OAAO,CAAC,IAAI,IAAI,IAAI,CAACA,OAAO,EAAE,OAAOC,MAAM,KAAK,QAAQ,GAAGA,MAAM,GAAG,IAAI,CAAC;EACnG;IAEA,WAAWL,OAAOA,GAAG;EACnB,IAAA,OAAOA,OAAO;EAChB;IAEA,WAAWY,QAAQA,GAAG;EACpB,IAAA,OAAO,CAAM,GAAA,EAAA,IAAI,CAACmB,IAAI,CAAE,CAAA;EAC1B;IAEA,WAAWd,SAASA,GAAG;EACrB,IAAA,OAAO,CAAI,CAAA,EAAA,IAAI,CAACL,QAAQ,CAAE,CAAA;EAC5B;IAEA,OAAOoB,SAASA,CAACC,IAAI,EAAE;EACrB,IAAA,OAAO,GAAGA,IAAI,CAAA,EAAG,IAAI,CAAChB,SAAS,CAAE,CAAA;EACnC;EACF;;;;;;;;"}
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap button.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap button.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap carousel.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap carousel.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+3 -3
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap collapse.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap collapse.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -163,11 +163,11 @@
this._element.style[dimension] = '';
this._queueCallback(complete, this._element, true);
}
// Private
_isShown(element = this._element) {
return element.classList.contains(CLASS_NAME_SHOW);
}
// Private
_configAfterMerge(config) {
config.toggle = Boolean(config.toggle); // Coerce string values
config.parent = index_js.getElement(config.parent);
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap data.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap data.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap event-handler.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap event-handler.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap manipulator.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap manipulator.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap selector-engine.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap selector-engine.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+4 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap dropdown.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap dropdown.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -195,6 +195,9 @@
this._element.setAttribute('aria-expanded', 'false');
Manipulator.removeDataAttribute(this._menu, 'popper');
EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget);
// Explicitly return focus to the trigger element
this._element.focus();
}
_getConfig(config) {
config = super._getConfig(config);
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap modal.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap modal.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap offcanvas.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap offcanvas.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap popover.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap popover.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap scrollspy.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap scrollspy.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap tab.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap tab.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -2
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap toast.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap toast.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
@@ -119,7 +119,6 @@
}
// Private
_maybeScheduleHide() {
if (!this._config.autohide) {
return;
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap tooltip.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap tooltip.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap backdrop.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap backdrop.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap component-functions.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap component-functions.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap config.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap config.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap focustrap.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap focustrap.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap index.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap index.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap sanitizer.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap sanitizer.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap scrollbar.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap scrollbar.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap swipe.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap swipe.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap template-factory.js v5.3.5 (https://getbootstrap.com/)
* Bootstrap template-factory.js v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+2 -1
View File
@@ -14,7 +14,7 @@ import { executeAfterTransition, getElement } from './util/index.js'
* Constants
*/
const VERSION = '5.3.5'
const VERSION = '5.3.6'
/**
* Class definition
@@ -45,6 +45,7 @@ class BaseComponent extends Config {
}
}
// Private
_queueCallback(callback, element, isAnimated = true) {
executeAfterTransition(callback, element, isAnimated)
}
+1 -1
View File
@@ -204,11 +204,11 @@ class Collapse extends BaseComponent {
this._queueCallback(complete, this._element, true)
}
// Private
_isShown(element = this._element) {
return element.classList.contains(CLASS_NAME_SHOW)
}
// Private
_configAfterMerge(config) {
config.toggle = Boolean(config.toggle) // Coerce string values
config.parent = getElement(config.parent)
+3
View File
@@ -207,6 +207,9 @@ class Dropdown extends BaseComponent {
this._element.setAttribute('aria-expanded', 'false')
Manipulator.removeDataAttribute(this._menu, 'popper')
EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)
// Explicitly return focus to the trigger element
this._element.focus()
}
_getConfig(config) {
-1
View File
@@ -135,7 +135,6 @@ class Toast extends BaseComponent {
}
// Private
_maybeScheduleHide() {
if (!this._config.autohide) {
return
-1
View File
@@ -63,7 +63,6 @@ const uriAttributes = new Set([
*
* 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) => {
+1439 -1820
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -5,7 +5,7 @@
Package.describe({
name: 'twbs:bootstrap', // https://atmospherejs.com/twbs/bootstrap
summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
version: '5.3.5',
version: '5.3.6',
git: 'https://github.com/twbs/bootstrap.git'
})
+32 -33
View File
@@ -1,7 +1,7 @@
{
"name": "bootstrap",
"description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
"version": "5.3.5",
"version": "5.3.6",
"config": {
"version_short": "5.3"
},
@@ -84,7 +84,7 @@
"docs-serve": "npm run astro-dev",
"docs-serve-only": "npx sirv-cli _site --port 9001",
"lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json",
"update-deps": "ncu -u -x eslint,eslint-config-xo,karma-browserstack-launcher,karma-rollup-preprocessor,sass",
"update-deps": "ncu -u -x eslint,eslint-config-xo,eslint-plugin-unicorn,karma-browserstack-launcher,karma-rollup-preprocessor,sass",
"release": "npm-run-all dist release-sri docs-build release-zip*",
"release-sri": "node build/generate-sri.mjs",
"release-version": "node build/change-version.mjs",
@@ -110,12 +110,12 @@
"devDependencies": {
"@astrojs/check": "^0.9.4",
"@astrojs/markdown-remark": "^6.3.1",
"@astrojs/mdx": "^4.2.3",
"@astrojs/mdx": "^4.2.6",
"@astrojs/prism": "^3.2.0",
"@astrojs/sitemap": "^3.3.0",
"@babel/cli": "^7.27.0",
"@babel/core": "^7.26.10",
"@babel/preset-env": "^7.26.9",
"@astrojs/sitemap": "^3.4.0",
"@babel/cli": "^7.27.2",
"@babel/core": "^7.27.1",
"@babel/preset-env": "^7.27.2",
"@docsearch/js": "^3.9.0",
"@popperjs/core": "^2.11.8",
"@rollup/plugin-babel": "^6.0.4",
@@ -123,31 +123,30 @@
"@rollup/plugin-node-resolve": "^16.0.1",
"@rollup/plugin-replace": "^6.0.2",
"@stackblitz/sdk": "^1.11.0",
"@types/google.analytics": "^0.0.42",
"@types/js-yaml": "^4.0.5",
"@types/mime": "^3.0.1",
"@types/prismjs": "^1.26.0",
"astro": "^5.6.1",
"@types/js-yaml": "^4.0.9",
"@types/mime": "^3.0.4",
"@types/prismjs": "^1.26.5",
"astro": "^5.7.13",
"astro-auto-import": "^0.4.4",
"autoprefixer": "^10.4.21",
"bundlewatch": "^0.4.0",
"bundlewatch": "^0.4.1",
"clean-css-cli": "^5.6.3",
"clipboard": "^2.0.11",
"cross-env": "^7.0.3",
"eslint": "^8.57.1",
"eslint-config-xo": "^0.45.0",
"eslint-plugin-html": "^8.1.2",
"eslint": "8.57.1",
"eslint-config-xo": "0.45.0",
"eslint-plugin-html": "^8.1.3",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-markdown": "^5.1.0",
"eslint-plugin-unicorn": "^55.0.0",
"eslint-plugin-unicorn": "56.0.1",
"find-unused-sass-variables": "^6.1.0",
"github-slugger": "^2.0.0",
"globby": "^14.1.0",
"hammer-simulator": "0.0.1",
"htmlparser2": "^8.0.1",
"image-size": "^1.0.2",
"htmlparser2": "^10.0.0",
"image-size": "^2.0.2",
"ip": "^2.0.1",
"jasmine": "^5.6.0",
"jasmine": "^5.7.0",
"jquery": "^3.7.1",
"js-yaml": "^4.1.0",
"karma": "^6.4.4",
@@ -159,29 +158,29 @@
"karma-jasmine": "^5.1.0",
"karma-jasmine-html-reporter": "^2.1.0",
"karma-rollup-preprocessor": "7.0.7",
"lockfile-lint": "^4.14.0",
"mime": "^3.0.0",
"nodemon": "^3.1.9",
"npm-run-all2": "^7.0.2",
"lockfile-lint": "^4.14.1",
"mime": "^4.0.7",
"nodemon": "^3.1.10",
"npm-run-all2": "^8.0.2",
"postcss": "^8.5.3",
"postcss-cli": "^11.0.1",
"prettier": "^2.8.4",
"prettier-plugin-astro": "^0.8.0",
"rehype-autolink-headings": "^6.1.1",
"prettier": "^3.5.3",
"prettier-plugin-astro": "^0.14.1",
"rehype-autolink-headings": "^7.1.0",
"remark": "^15.0.1",
"remark-html": "^16.0.1",
"rollup": "^4.38.0",
"rollup": "^4.41.0",
"rollup-plugin-istanbul": "^5.0.0",
"rtlcss": "^4.3.0",
"sass": "1.78.0",
"sass-true": "^8.1.0",
"shelljs": "^0.9.2",
"stylelint": "^16.17.0",
"shelljs": "^0.10.0",
"stylelint": "^16.19.1",
"stylelint-config-twbs-bootstrap": "^16.0.0",
"terser": "^5.39.0",
"unist-util-visit": "^4.1.2",
"terser": "^5.39.2",
"unist-util-visit": "^5.0.0",
"vnu-jar": "24.10.17",
"zod": "^3.20.6"
"zod": "^3.25.7"
},
"files": [
"dist/{css,js}/*.{css,js,map}",
+8
View File
@@ -565,6 +565,14 @@ $utilities: map-merge(
nowrap: nowrap,
)
),
"text-wrap": (
property: text-wrap,
class: text,
values: (
balance: balance,
pretty: pretty,
)
),
"word-wrap": (
property: word-wrap word-break,
class: text,
+1 -1
View File
@@ -1,6 +1,6 @@
@mixin bsBanner($file) {
/*!
* Bootstrap #{$file} v5.3.5 (https://getbootstrap.com/)
* Bootstrap #{$file} v5.3.6 (https://getbootstrap.com/)
* Copyright 2011-2025 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
+11 -5
View File
@@ -1,17 +1,23 @@
@mixin box-shadow($shadow...) {
@if $enable-shadows {
$result: ();
$has-single-value: false;
$single-value: null;
@each $value in $shadow {
@if $value != null {
$result: append($result, $value, "comma");
}
@if $value == none and length($shadow) > 1 {
@warn "The keyword 'none' must be used as a single argument.";
@if $value == none or $value == initial or $value == inherit or $value == unset {
$has-single-value: true;
$single-value: $value;
} @else {
$result: append($result, $value, "comma");
}
}
}
@if (length($result) > 0) {
@if $has-single-value {
box-shadow: $single-value;
} @else if (length($result) > 0) {
box-shadow: $result;
}
}
+5
View File
@@ -19,6 +19,11 @@
&:not(caption) {
position: absolute !important;
}
// Fix to prevent overflowing children to become focusable
* {
overflow: hidden !important;
}
}
// Use to only display content when it's focused, or one of its child elements is focused
+188
View File
@@ -0,0 +1,188 @@
@import "../../functions";
@import "../../variables";
@import "../../mixins";
// Store original value
$original-enable-shadows: $enable-shadows;
// Enable shadows for all tests
$enable-shadows: true !global;
@include describe("box-shadow mixin") {
@include it("handles single none value") {
@include assert() {
@include output() {
.test {
@include box-shadow(none);
}
}
@include expect() {
.test {
box-shadow: none;
}
}
}
}
@include it("handles multiple none values by consolidating them") {
@include assert() {
@include output() {
.test {
@include box-shadow(none, none, none);
}
}
@include expect() {
.test {
box-shadow: none;
}
}
}
}
@include it("handles other single-value keywords (initial, inherit, unset)") {
@include assert() {
@include output() {
.test-initial {
@include box-shadow(initial);
}
.test-inherit {
@include box-shadow(inherit);
}
.test-unset {
@include box-shadow(unset);
}
}
@include expect() {
.test-initial {
box-shadow: initial;
}
.test-inherit {
box-shadow: inherit;
}
.test-unset {
box-shadow: unset;
}
}
}
}
@include it("handles multiple single-value keywords by using the last one") {
@include assert() {
@include output() {
.test {
@include box-shadow(initial, inherit, unset);
}
}
@include expect() {
.test {
box-shadow: unset;
}
}
}
}
@include it("handles regular box-shadow values") {
@include assert() {
@include output() {
.test {
@include box-shadow(0 0 10px rgba(0, 0, 0, .5));
}
}
@include expect() {
.test {
box-shadow: 0 0 10px rgba(0, 0, 0, .5);
}
}
}
}
@include it("handles multiple regular box-shadow values") {
@include assert() {
@include output() {
.test {
@include box-shadow(0 0 10px rgba(0, 0, 0, .5), 0 0 20px rgba(0, 0, 0, .3));
}
}
@include expect() {
.test {
box-shadow: 0 0 10px rgba(0, 0, 0, .5), 0 0 20px rgba(0, 0, 0, .3);
}
}
}
}
@include it("handles null values by ignoring them") {
@include assert() {
@include output() {
.test {
@include box-shadow(null, 0 0 10px rgba(0, 0, 0, .5), null);
}
}
@include expect() {
.test {
box-shadow: 0 0 10px rgba(0, 0, 0, .5);
}
}
}
}
@include it("handles mixed values with keywords and regular shadows") {
@include assert() {
@include output() {
.test {
@include box-shadow(none, 0 0 10px rgba(0, 0, 0, .5));
}
}
@include expect() {
.test {
box-shadow: none;
}
}
}
}
@include it("handles empty input") {
@include assert() {
@include output() {
.test {
@include box-shadow();
}
}
@include expect() {
.test { // stylelint-disable-line block-no-empty
}
}
}
}
@include it("respects $enable-shadows variable") {
$enable-shadows: false !global;
@include assert() {
@include output() {
.test {
@include box-shadow(0 0 10px rgba(0, 0, 0, .5));
}
}
@include expect() {
.test { // stylelint-disable-line block-no-empty
}
}
}
$enable-shadows: true !global;
}
}
// Restore original value
$enable-shadows: $original-enable-shadows !global;
+4 -4
View File
@@ -11,10 +11,10 @@ const site = isDev
? // In development mode, use the local dev server.
'http://localhost:4321'
: process.env.DEPLOY_PRIME_URL !== undefined
? // If deploying on Netlify, use the `DEPLOY_PRIME_URL` environment variable.
process.env.DEPLOY_PRIME_URL
: // Otherwise, use the `baseURL` value defined in the `config.yml` file.
getConfig().baseURL
? // If deploying on Netlify, use the `DEPLOY_PRIME_URL` environment variable.
process.env.DEPLOY_PRIME_URL
: // Otherwise, use the `baseURL` value defined in the `config.yml` file.
getConfig().baseURL
// https://astro.build/config
export default defineConfig({
+1 -1
View File
@@ -48,7 +48,7 @@
- group: v5.x
baseurl: 'https://getbootstrap.com/docs'
description: 'Current major release. Last update was v5.3.5.'
description: 'Current major release. Last update was v5.3.6.'
versions:
- '5.0'
- '5.1'
-1
View File
@@ -6,7 +6,6 @@
icon_color: indigo
pages:
- title: Introduction
- title: Install
- title: Download
- title: Contents
- title: Browsers & devices

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