Compare commits

..

No commits in common. "4e35f64fdc96e505fa659a41ee2e1c1cc87df0d8" and "52cc9342cb5df6b13ea421deb75477a73419745b" have entirely different histories.

20 changed files with 639 additions and 828 deletions

View File

@ -51,7 +51,6 @@
"SwitchCase": 1 "SwitchCase": 1
} }
], ],
"logical-assignment-operators": "off",
"max-params": [ "max-params": [
"warn", "warn",
5 5
@ -76,7 +75,6 @@
"error", "error",
"after" "after"
], ],
"prefer-object-has-own": "off",
"prefer-template": "error", "prefer-template": "error",
"semi": [ "semi": [
"error", "error",

View File

@ -18,6 +18,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository == 'twbs/bootstrap' if: github.repository == 'twbs/bootstrap'
steps: steps:
- uses: release-drafter/release-drafter@v6 - uses: release-drafter/release-drafter@v5
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -11,9 +11,7 @@ import SelectorEngine from './dom/selector-engine.js'
import Backdrop from './util/backdrop.js' import Backdrop from './util/backdrop.js'
import { enableDismissTrigger } from './util/component-functions.js' import { enableDismissTrigger } from './util/component-functions.js'
import FocusTrap from './util/focustrap.js' import FocusTrap from './util/focustrap.js'
import { import { defineJQueryPlugin, isRTL, isVisible, reflow } from './util/index.js'
defineJQueryPlugin, isRTL, isVisible, reflow
} from './util/index.js'
import ScrollBarHelper from './util/scrollbar.js' import ScrollBarHelper from './util/scrollbar.js'
/** /**

View File

@ -8,9 +8,7 @@
import BaseComponent from './base-component.js' import BaseComponent from './base-component.js'
import EventHandler from './dom/event-handler.js' import EventHandler from './dom/event-handler.js'
import SelectorEngine from './dom/selector-engine.js' import SelectorEngine from './dom/selector-engine.js'
import { import { defineJQueryPlugin, getElement, isDisabled, isVisible } from './util/index.js'
defineJQueryPlugin, getElement, isDisabled, isVisible
} from './util/index.js'
/** /**
* Constants * Constants

View File

@ -9,9 +9,7 @@ import * as Popper from '@popperjs/core'
import BaseComponent from './base-component.js' import BaseComponent from './base-component.js'
import EventHandler from './dom/event-handler.js' import EventHandler from './dom/event-handler.js'
import Manipulator from './dom/manipulator.js' import Manipulator from './dom/manipulator.js'
import { import { defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop } from './util/index.js'
defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop
} from './util/index.js'
import { DefaultAllowlist } from './util/sanitizer.js' import { DefaultAllowlist } from './util/sanitizer.js'
import TemplateFactory from './util/template-factory.js' import TemplateFactory from './util/template-factory.js'

View File

@ -7,9 +7,7 @@
import EventHandler from '../dom/event-handler.js' import EventHandler from '../dom/event-handler.js'
import Config from './config.js' import Config from './config.js'
import { import { execute, executeAfterTransition, getElement, reflow } from './index.js'
execute, executeAfterTransition, getElement, reflow
} from './index.js'
/** /**
* Constants * Constants

View File

@ -2,9 +2,7 @@ import Carousel from '../../src/carousel.js'
import EventHandler from '../../src/dom/event-handler.js' import EventHandler from '../../src/dom/event-handler.js'
import { isRTL, noop } from '../../src/util/index.js' import { isRTL, noop } from '../../src/util/index.js'
import Swipe from '../../src/util/swipe.js' import Swipe from '../../src/util/swipe.js'
import { import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
clearFixture, createEvent, getFixture, jQueryMock
} from '../helpers/fixture.js'
describe('Carousel', () => { describe('Carousel', () => {
const { Simulator, PointerEvent } = window const { Simulator, PointerEvent } = window

View File

@ -1,9 +1,7 @@
import EventHandler from '../../src/dom/event-handler.js' import EventHandler from '../../src/dom/event-handler.js'
import Dropdown from '../../src/dropdown.js' import Dropdown from '../../src/dropdown.js'
import { noop } from '../../src/util/index.js' import { noop } from '../../src/util/index.js'
import { import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
clearFixture, createEvent, getFixture, jQueryMock
} from '../helpers/fixture.js'
describe('Dropdown', () => { describe('Dropdown', () => {
let fixtureEl let fixtureEl

View File

@ -1,9 +1,7 @@
import EventHandler from '../../src/dom/event-handler.js' import EventHandler from '../../src/dom/event-handler.js'
import Modal from '../../src/modal.js' import Modal from '../../src/modal.js'
import ScrollBarHelper from '../../src/util/scrollbar.js' import ScrollBarHelper from '../../src/util/scrollbar.js'
import { import { clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock
} from '../helpers/fixture.js'
describe('Modal', () => { describe('Modal', () => {
let fixtureEl let fixtureEl

View File

@ -2,9 +2,7 @@ import EventHandler from '../../src/dom/event-handler.js'
import Offcanvas from '../../src/offcanvas.js' import Offcanvas from '../../src/offcanvas.js'
import { isVisible } from '../../src/util/index.js' import { isVisible } from '../../src/util/index.js'
import ScrollBarHelper from '../../src/util/scrollbar.js' import ScrollBarHelper from '../../src/util/scrollbar.js'
import { import { clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock
} from '../helpers/fixture.js'
describe('Offcanvas', () => { describe('Offcanvas', () => {
let fixtureEl let fixtureEl

View File

@ -1,8 +1,6 @@
import EventHandler from '../../src/dom/event-handler.js' import EventHandler from '../../src/dom/event-handler.js'
import ScrollSpy from '../../src/scrollspy.js' import ScrollSpy from '../../src/scrollspy.js'
import { import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
clearFixture, createEvent, getFixture, jQueryMock
} from '../helpers/fixture.js'
describe('ScrollSpy', () => { describe('ScrollSpy', () => {
let fixtureEl let fixtureEl

View File

@ -1,7 +1,5 @@
import Tab from '../../src/tab.js' import Tab from '../../src/tab.js'
import { import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
clearFixture, createEvent, getFixture, jQueryMock
} from '../helpers/fixture.js'
describe('Tab', () => { describe('Tab', () => {
let fixtureEl let fixtureEl

View File

@ -1,7 +1,5 @@
import Toast from '../../src/toast.js' import Toast from '../../src/toast.js'
import { import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
clearFixture, createEvent, getFixture, jQueryMock
} from '../helpers/fixture.js'
describe('Toast', () => { describe('Toast', () => {
let fixtureEl let fixtureEl

View File

@ -1,9 +1,7 @@
import EventHandler from '../../src/dom/event-handler.js' import EventHandler from '../../src/dom/event-handler.js'
import Tooltip from '../../src/tooltip.js' import Tooltip from '../../src/tooltip.js'
import { noop } from '../../src/util/index.js' import { noop } from '../../src/util/index.js'
import { import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
clearFixture, createEvent, getFixture, jQueryMock
} from '../helpers/fixture.js'
describe('Tooltip', () => { describe('Tooltip', () => {
let fixtureEl let fixtureEl

1378
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -116,17 +116,17 @@
"clean-css-cli": "^5.6.3", "clean-css-cli": "^5.6.3",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"eslint": "^8.56.0", "eslint": "^8.56.0",
"eslint-config-xo": "^0.44.0", "eslint-config-xo": "^0.43.1",
"eslint-plugin-html": "^7.1.0", "eslint-plugin-html": "^7.1.0",
"eslint-plugin-import": "^2.29.1", "eslint-plugin-import": "^2.29.1",
"eslint-plugin-markdown": "^3.0.1", "eslint-plugin-markdown": "^3.0.1",
"eslint-plugin-unicorn": "^51.0.0", "eslint-plugin-unicorn": "^50.0.1",
"find-unused-sass-variables": "^5.0.0", "find-unused-sass-variables": "^5.0.0",
"globby": "^11.1.0", "globby": "^11.1.0",
"hammer-simulator": "0.0.1", "hammer-simulator": "0.0.1",
"hugo-bin": "^0.119.0", "hugo-bin": "^0.119.0",
"ip": "^2.0.0", "ip": "^2.0.0",
"jasmine": "^5.1.0", "jasmine": "^4.6.0",
"jquery": "^3.7.1", "jquery": "^3.7.1",
"karma": "^6.4.2", "karma": "^6.4.2",
"karma-browserstack-launcher": "1.4.0", "karma-browserstack-launcher": "1.4.0",
@ -140,7 +140,7 @@
"lockfile-lint": "^4.12.1", "lockfile-lint": "^4.12.1",
"nodemon": "^3.0.3", "nodemon": "^3.0.3",
"npm-run-all2": "^6.1.2", "npm-run-all2": "^6.1.2",
"postcss": "^8.4.34", "postcss": "^8.4.33",
"postcss-cli": "^11.0.0", "postcss-cli": "^11.0.0",
"rollup": "^4.9.6", "rollup": "^4.9.6",
"rollup-plugin-istanbul": "^5.0.0", "rollup-plugin-istanbul": "^5.0.0",
@ -149,7 +149,7 @@
"sass-true": "^7.0.1", "sass-true": "^7.0.1",
"shelljs": "^0.8.5", "shelljs": "^0.8.5",
"stylelint": "^16.2.1", "stylelint": "^16.2.1",
"stylelint-config-twbs-bootstrap": "^14.0.0", "stylelint-config-twbs-bootstrap": "^13.0.0",
"terser": "^5.27.0", "terser": "^5.27.0",
"vnu-jar": "23.4.11" "vnu-jar": "23.4.11"
}, },

View File

@ -20,6 +20,7 @@
--#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform}; --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform};
--#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition}; --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition};
--#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)}; --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};
--#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};
--#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow}; --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
--#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x}; --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x};
--#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y}; --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y};
@ -73,6 +74,7 @@
&:focus { &:focus {
z-index: 3; z-index: 3;
border-color: var(--#{$prefix}accordion-btn-focus-border-color);
outline: 0; outline: 0;
box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow); box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow);
} }

View File

@ -100,15 +100,6 @@
} }
} }
.btn-check:checked:focus-visible + & {
// Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows {
box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow);
} @else {
box-shadow: var(--#{$prefix}btn-focus-box-shadow);
}
}
&:disabled, &:disabled,
&.disabled, &.disabled,
fieldset:disabled & { fieldset:disabled & {

View File

@ -132,11 +132,19 @@
background-size: 100% 100%; background-size: 100% 100%;
} }
/* rtl:options: {
"autoRename": true,
"stringMap":[ {
"name" : "prev-next",
"search" : "prev",
"replace" : "next"
} ]
} */
.carousel-control-prev-icon { .carousel-control-prev-icon {
background-image: escape-svg($carousel-control-prev-icon-bg) #{"/*rtl:" + escape-svg($carousel-control-next-icon-bg) + "*/"}; background-image: escape-svg($carousel-control-prev-icon-bg);
} }
.carousel-control-next-icon { .carousel-control-next-icon {
background-image: escape-svg($carousel-control-next-icon-bg) #{"/*rtl:" + escape-svg($carousel-control-prev-icon-bg) + "*/"}; background-image: escape-svg($carousel-control-next-icon-bg);
} }
// Optional indicator pips/controls // Optional indicator pips/controls

View File

@ -1383,9 +1383,7 @@ $accordion-transition: $btn-transition, border-radius .15s ea
$accordion-button-active-bg: var(--#{$prefix}primary-bg-subtle) !default; $accordion-button-active-bg: var(--#{$prefix}primary-bg-subtle) !default;
$accordion-button-active-color: var(--#{$prefix}primary-text-emphasis) !default; $accordion-button-active-color: var(--#{$prefix}primary-text-emphasis) !default;
// fusv-disable $accordion-button-focus-border-color: $input-focus-border-color !default;
$accordion-button-focus-border-color: $input-focus-border-color !default; // Deprecated in v5.3.3
// fusv-enable
$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default; $accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;
$accordion-icon-width: 1.25rem !default; $accordion-icon-width: 1.25rem !default;