aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorXhmikosR <[email protected]>2021-08-26 19:23:46 +0300
committerXhmikosR <[email protected]>2021-09-28 19:19:29 +0300
commitf2541d132e80a14d00bd4db9cb325e1f400639fc (patch)
tree8e49cfea81882f854de7f50bdc196ef4dec72649 /js
parent21c2f18e8f949416f08e5a5c85778c412bb4c3d9 (diff)
downloadbootstrap-main-xmr-xo.tar.xz
bootstrap-main-xmr-xo.zip
Fix `import/extensions` issuesmain-xmr-xo
Diffstat (limited to 'js')
-rw-r--r--js/index.esm.js24
-rw-r--r--js/index.umd.js24
-rw-r--r--js/src/alert.js8
-rw-r--r--js/src/base-component.js6
-rw-r--r--js/src/button.js6
-rw-r--r--js/src/carousel.js10
-rw-r--r--js/src/collapse.js12
-rw-r--r--js/src/dom/event-handler.js2
-rw-r--r--js/src/dom/selector-engine.js2
-rw-r--r--js/src/dropdown.js10
-rw-r--r--js/src/modal.js18
-rw-r--r--js/src/offcanvas.js18
-rw-r--r--js/src/popover.js4
-rw-r--r--js/src/scrollspy.js10
-rw-r--r--js/src/tab.js8
-rw-r--r--js/src/toast.js10
-rw-r--r--js/src/tooltip.js14
-rw-r--r--js/src/util/backdrop.js4
-rw-r--r--js/src/util/component-functions.js4
-rw-r--r--js/src/util/focustrap.js6
-rw-r--r--js/src/util/scrollbar.js6
-rw-r--r--js/tests/integration/bundle-modularity.js4
-rw-r--r--js/tests/integration/rollup.bundle-modularity.js2
-rw-r--r--js/tests/karma.conf.js2
-rw-r--r--js/tests/unit/alert.spec.js8
-rw-r--r--js/tests/unit/base-component.spec.js8
-rw-r--r--js/tests/unit/button.spec.js10
-rw-r--r--js/tests/unit/carousel.spec.js12
-rw-r--r--js/tests/unit/collapse.spec.js8
-rw-r--r--js/tests/unit/dom/data.spec.js6
-rw-r--r--js/tests/unit/dom/event-handler.spec.js6
-rw-r--r--js/tests/unit/dom/manipulator.spec.js6
-rw-r--r--js/tests/unit/dom/selector-engine.spec.js6
-rw-r--r--js/tests/unit/dropdown.spec.js10
-rw-r--r--js/tests/unit/jquery.spec.js29
-rw-r--r--js/tests/unit/modal.spec.js10
-rw-r--r--js/tests/unit/offcanvas.spec.js12
-rw-r--r--js/tests/unit/popover.spec.js6
-rw-r--r--js/tests/unit/scrollspy.spec.js8
-rw-r--r--js/tests/unit/tab.spec.js6
-rw-r--r--js/tests/unit/toast.spec.js6
-rw-r--r--js/tests/unit/tooltip.spec.js10
-rw-r--r--js/tests/unit/util/backdrop.spec.js6
-rw-r--r--js/tests/unit/util/component-functions.spec.js6
-rw-r--r--js/tests/unit/util/focustrap.spec.js8
-rw-r--r--js/tests/unit/util/index.spec.js6
-rw-r--r--js/tests/unit/util/sanitizer.spec.js2
-rw-r--r--js/tests/unit/util/scrollbar.spec.js6
48 files changed, 188 insertions, 227 deletions
diff --git a/js/index.esm.js b/js/index.esm.js
index d885a49e8..d537e4be7 100644
--- a/js/index.esm.js
+++ b/js/index.esm.js
@@ -5,18 +5,18 @@
* --------------------------------------------------------------------------
*/
-import Alert from './src/alert'
-import Button from './src/button'
-import Carousel from './src/carousel'
-import Collapse from './src/collapse'
-import Dropdown from './src/dropdown'
-import Modal from './src/modal'
-import Offcanvas from './src/offcanvas'
-import Popover from './src/popover'
-import ScrollSpy from './src/scrollspy'
-import Tab from './src/tab'
-import Toast from './src/toast'
-import Tooltip from './src/tooltip'
+import Alert from './src/alert.js'
+import Button from './src/button.js'
+import Carousel from './src/carousel.js'
+import Collapse from './src/collapse.js'
+import Dropdown from './src/dropdown.js'
+import Modal from './src/modal.js'
+import Offcanvas from './src/offcanvas.js'
+import Popover from './src/popover.js'
+import ScrollSpy from './src/scrollspy.js'
+import Tab from './src/tab.js'
+import Toast from './src/toast.js'
+import Tooltip from './src/tooltip.js'
export {
Alert,
diff --git a/js/index.umd.js b/js/index.umd.js
index 349b4a0e6..1ba16562d 100644
--- a/js/index.umd.js
+++ b/js/index.umd.js
@@ -5,18 +5,18 @@
* --------------------------------------------------------------------------
*/
-import Alert from './src/alert'
-import Button from './src/button'
-import Carousel from './src/carousel'
-import Collapse from './src/collapse'
-import Dropdown from './src/dropdown'
-import Modal from './src/modal'
-import Offcanvas from './src/offcanvas'
-import Popover from './src/popover'
-import ScrollSpy from './src/scrollspy'
-import Tab from './src/tab'
-import Toast from './src/toast'
-import Tooltip from './src/tooltip'
+import Alert from './src/alert.js'
+import Button from './src/button.js'
+import Carousel from './src/carousel.js'
+import Collapse from './src/collapse.js'
+import Dropdown from './src/dropdown.js'
+import Modal from './src/modal.js'
+import Offcanvas from './src/offcanvas.js'
+import Popover from './src/popover.js'
+import ScrollSpy from './src/scrollspy.js'
+import Tab from './src/tab.js'
+import Toast from './src/toast.js'
+import Tooltip from './src/tooltip.js'
// eslint-disable-next-line import/no-anonymous-default-export
export default {
diff --git a/js/src/alert.js b/js/src/alert.js
index 97b305138..74d96d5cd 100644
--- a/js/src/alert.js
+++ b/js/src/alert.js
@@ -5,10 +5,10 @@
* --------------------------------------------------------------------------
*/
-import { defineJQueryPlugin } from './util/index'
-import EventHandler from './dom/event-handler'
-import BaseComponent from './base-component'
-import { enableDismissTrigger } from './util/component-functions'
+import { defineJQueryPlugin } from './util/index.js'
+import EventHandler from './dom/event-handler.js'
+import BaseComponent from './base-component.js'
+import { enableDismissTrigger } from './util/component-functions.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/base-component.js b/js/src/base-component.js
index cb65bed8e..fbbb244bb 100644
--- a/js/src/base-component.js
+++ b/js/src/base-component.js
@@ -5,12 +5,12 @@
* --------------------------------------------------------------------------
*/
-import Data from './dom/data'
+import Data from './dom/data.js'
import {
executeAfterTransition,
getElement
-} from './util/index'
-import EventHandler from './dom/event-handler'
+} from './util/index.js'
+import EventHandler from './dom/event-handler.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/button.js b/js/src/button.js
index 0578ed6b9..8ba9853fd 100644
--- a/js/src/button.js
+++ b/js/src/button.js
@@ -5,9 +5,9 @@
* --------------------------------------------------------------------------
*/
-import { defineJQueryPlugin } from './util/index'
-import EventHandler from './dom/event-handler'
-import BaseComponent from './base-component'
+import { defineJQueryPlugin } from './util/index.js'
+import EventHandler from './dom/event-handler.js'
+import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/carousel.js b/js/src/carousel.js
index 86daa0795..4949f80e1 100644
--- a/js/src/carousel.js
+++ b/js/src/carousel.js
@@ -14,11 +14,11 @@ import {
reflow,
triggerTransitionEnd,
typeCheckConfig
-} from './util/index'
-import EventHandler from './dom/event-handler'
-import Manipulator from './dom/manipulator'
-import SelectorEngine from './dom/selector-engine'
-import BaseComponent from './base-component'
+} from './util/index.js'
+import EventHandler from './dom/event-handler.js'
+import Manipulator from './dom/manipulator.js'
+import SelectorEngine from './dom/selector-engine.js'
+import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/collapse.js b/js/src/collapse.js
index edfc7ea85..00b690815 100644
--- a/js/src/collapse.js
+++ b/js/src/collapse.js
@@ -12,12 +12,12 @@ import {
getElementFromSelector,
reflow,
typeCheckConfig
-} from './util/index'
-import Data from './dom/data'
-import EventHandler from './dom/event-handler'
-import Manipulator from './dom/manipulator'
-import SelectorEngine from './dom/selector-engine'
-import BaseComponent from './base-component'
+} from './util/index.js'
+import Data from './dom/data.js'
+import EventHandler from './dom/event-handler.js'
+import Manipulator from './dom/manipulator.js'
+import SelectorEngine from './dom/selector-engine.js'
+import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/dom/event-handler.js b/js/src/dom/event-handler.js
index bf895dc6e..5e3008c6f 100644
--- a/js/src/dom/event-handler.js
+++ b/js/src/dom/event-handler.js
@@ -5,7 +5,7 @@
* --------------------------------------------------------------------------
*/
-import { getjQuery } from '../util/index'
+import { getjQuery } from '../util/index.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/dom/selector-engine.js b/js/src/dom/selector-engine.js
index 19e45c205..0229cd613 100644
--- a/js/src/dom/selector-engine.js
+++ b/js/src/dom/selector-engine.js
@@ -11,7 +11,7 @@
* ------------------------------------------------------------------------
*/
-import { isDisabled, isVisible } from '../util/index'
+import { isDisabled, isVisible } from '../util/index.js'
const NODE_TEXT = 3
diff --git a/js/src/dropdown.js b/js/src/dropdown.js
index 874cf907b..e83f6ab32 100644
--- a/js/src/dropdown.js
+++ b/js/src/dropdown.js
@@ -18,11 +18,11 @@ import {
isVisible,
noop,
typeCheckConfig
-} from './util/index'
-import EventHandler from './dom/event-handler'
-import Manipulator from './dom/manipulator'
-import SelectorEngine from './dom/selector-engine'
-import BaseComponent from './base-component'
+} from './util/index.js'
+import EventHandler from './dom/event-handler.js'
+import Manipulator from './dom/manipulator.js'
+import SelectorEngine from './dom/selector-engine.js'
+import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/modal.js b/js/src/modal.js
index b4700f02a..f7fda0ede 100644
--- a/js/src/modal.js
+++ b/js/src/modal.js
@@ -12,15 +12,15 @@ import {
isVisible,
reflow,
typeCheckConfig
-} from './util/index'
-import EventHandler from './dom/event-handler'
-import Manipulator from './dom/manipulator'
-import SelectorEngine from './dom/selector-engine'
-import ScrollBarHelper from './util/scrollbar'
-import BaseComponent from './base-component'
-import Backdrop from './util/backdrop'
-import FocusTrap from './util/focustrap'
-import { enableDismissTrigger } from './util/component-functions'
+} from './util/index.js'
+import EventHandler from './dom/event-handler.js'
+import Manipulator from './dom/manipulator.js'
+import SelectorEngine from './dom/selector-engine.js'
+import ScrollBarHelper from './util/scrollbar.js'
+import BaseComponent from './base-component.js'
+import Backdrop from './util/backdrop.js'
+import FocusTrap from './util/focustrap.js'
+import { enableDismissTrigger } from './util/component-functions.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/offcanvas.js b/js/src/offcanvas.js
index ba809cdf2..28d4d44f6 100644
--- a/js/src/offcanvas.js
+++ b/js/src/offcanvas.js
@@ -11,15 +11,15 @@ import {
isDisabled,
isVisible,
typeCheckConfig
-} from './util/index'
-import ScrollBarHelper from './util/scrollbar'
-import EventHandler from './dom/event-handler'
-import BaseComponent from './base-component'
-import SelectorEngine from './dom/selector-engine'
-import Manipulator from './dom/manipulator'
-import Backdrop from './util/backdrop'
-import FocusTrap from './util/focustrap'
-import { enableDismissTrigger } from './util/component-functions'
+} from './util/index.js'
+import ScrollBarHelper from './util/scrollbar.js'
+import EventHandler from './dom/event-handler.js'
+import BaseComponent from './base-component.js'
+import SelectorEngine from './dom/selector-engine.js'
+import Manipulator from './dom/manipulator.js'
+import Backdrop from './util/backdrop.js'
+import FocusTrap from './util/focustrap.js'
+import { enableDismissTrigger } from './util/component-functions.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/popover.js b/js/src/popover.js
index 71c50daf9..5945ff98f 100644
--- a/js/src/popover.js
+++ b/js/src/popover.js
@@ -5,8 +5,8 @@
* --------------------------------------------------------------------------
*/
-import { defineJQueryPlugin } from './util/index'
-import Tooltip from './tooltip'
+import { defineJQueryPlugin } from './util/index.js'
+import Tooltip from './tooltip.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/scrollspy.js b/js/src/scrollspy.js
index 6ac00fedd..027ab5bc2 100644
--- a/js/src/scrollspy.js
+++ b/js/src/scrollspy.js
@@ -10,11 +10,11 @@ import {
getElement,
getSelectorFromElement,
typeCheckConfig
-} from './util/index'
-import EventHandler from './dom/event-handler'
-import Manipulator from './dom/manipulator'
-import SelectorEngine from './dom/selector-engine'
-import BaseComponent from './base-component'
+} from './util/index.js'
+import EventHandler from './dom/event-handler.js'
+import Manipulator from './dom/manipulator.js'
+import SelectorEngine from './dom/selector-engine.js'
+import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/tab.js b/js/src/tab.js
index 161bccbca..ee01fb018 100644
--- a/js/src/tab.js
+++ b/js/src/tab.js
@@ -10,10 +10,10 @@ import {
getElementFromSelector,
isDisabled,
reflow
-} from './util/index'
-import EventHandler from './dom/event-handler'
-import SelectorEngine from './dom/selector-engine'
-import BaseComponent from './base-component'
+} from './util/index.js'
+import EventHandler from './dom/event-handler.js'
+import SelectorEngine from './dom/selector-engine.js'
+import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/toast.js b/js/src/toast.js
index 8a7fcdc71..b7f600ee2 100644
--- a/js/src/toast.js
+++ b/js/src/toast.js
@@ -9,11 +9,11 @@ import {
defineJQueryPlugin,
reflow,
typeCheckConfig
-} from './util/index'
-import EventHandler from './dom/event-handler'
-import Manipulator from './dom/manipulator'
-import BaseComponent from './base-component'
-import { enableDismissTrigger } from './util/component-functions'
+} from './util/index.js'
+import EventHandler from './dom/event-handler.js'
+import Manipulator from './dom/manipulator.js'
+import BaseComponent from './base-component.js'
+import { enableDismissTrigger } from './util/component-functions.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/tooltip.js b/js/src/tooltip.js
index 747555411..7dd520242 100644
--- a/js/src/tooltip.js
+++ b/js/src/tooltip.js
@@ -16,13 +16,13 @@ import {
isRTL,
noop,
typeCheckConfig
-} from './util/index'
-import { DefaultAllowlist, sanitizeHtml } from './util/sanitizer'
-import Data from './dom/data'
-import EventHandler from './dom/event-handler'
-import Manipulator from './dom/manipulator'
-import SelectorEngine from './dom/selector-engine'
-import BaseComponent from './base-component'
+} from './util/index.js'
+import { DefaultAllowlist, sanitizeHtml } from './util/sanitizer.js'
+import Data from './dom/data.js'
+import EventHandler from './dom/event-handler.js'
+import Manipulator from './dom/manipulator.js'
+import SelectorEngine from './dom/selector-engine.js'
+import BaseComponent from './base-component.js'
/**
* ------------------------------------------------------------------------
diff --git a/js/src/util/backdrop.js b/js/src/util/backdrop.js
index 80628c38d..ee6c2019c 100644
--- a/js/src/util/backdrop.js
+++ b/js/src/util/backdrop.js
@@ -5,8 +5,8 @@
* --------------------------------------------------------------------------
*/
-import EventHandler from '../dom/event-handler'
-import { execute, executeAfterTransition, getElement, reflow, typeCheckConfig } from './index'
+import EventHandler from '../dom/event-handler.js'
+import { execute, executeAfterTransition, getElement, reflow, typeCheckConfig } from './index.js'
const Default = {
className: 'modal-backdrop',
diff --git a/js/src/util/component-functions.js b/js/src/util/component-functions.js
index ff9d87ee6..90d91a9f5 100644
--- a/js/src/util/component-functions.js
+++ b/js/src/util/component-functions.js
@@ -5,8 +5,8 @@
* --------------------------------------------------------------------------
*/
-import EventHandler from '../dom/event-handler'
-import { getElementFromSelector, isDisabled } from './index'
+import EventHandler from '../dom/event-handler.js'
+import { getElementFromSelector, isDisabled } from './index.js'
const enableDismissTrigger = (component, method = 'hide') => {
const clickEvent = `click.dismiss${component.EVENT_KEY}`
diff --git a/js/src/util/focustrap.js b/js/src/util/focustrap.js
index d51942246..98d36cefd 100644
--- a/js/src/util/focustrap.js
+++ b/js/src/util/focustrap.js
@@ -5,9 +5,9 @@
* --------------------------------------------------------------------------
*/
-import EventHandler from '../dom/event-handler'
-import SelectorEngine from '../dom/selector-engine'
-import { typeCheckConfig } from './index'
+import EventHandler from '../dom/event-handler.js'
+import SelectorEngine from '../dom/selector-engine.js'
+import { typeCheckConfig } from './index.js'
const Default = {
trapElement: null, // The element to trap focus inside of
diff --git a/js/src/util/scrollbar.js b/js/src/util/scrollbar.js
index 73c28254e..d0c7f84b7 100644
--- a/js/src/util/scrollbar.js
+++ b/js/src/util/scrollbar.js
@@ -5,9 +5,9 @@
* --------------------------------------------------------------------------
*/
-import SelectorEngine from '../dom/selector-engine'
-import Manipulator from '../dom/manipulator'
-import { isElement } from './index'
+import SelectorEngine from '../dom/selector-engine.js'
+import Manipulator from '../dom/manipulator.js'
+import { isElement } from './index.js'
const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'
const SELECTOR_STICKY_CONTENT = '.sticky-top'
diff --git a/js/tests/integration/bundle-modularity.js b/js/tests/integration/bundle-modularity.js
index 80761d64a..d8f6fc0df 100644
--- a/js/tests/integration/bundle-modularity.js
+++ b/js/tests/integration/bundle-modularity.js
@@ -1,5 +1,5 @@
-import Tooltip from '../../dist/tooltip'
-import '../../dist/carousel' // eslint-disable-line import/no-unassigned-import
+import Tooltip from '../../dist/tooltip.js'
+import '../../dist/carousel.js' // eslint-disable-line import/no-unassigned-import
window.addEventListener('load', () => {
[].concat(...document.querySelectorAll('[data-bs-toggle="tooltip"]'))
diff --git a/js/tests/integration/rollup.bundle-modularity.js b/js/tests/integration/rollup.bundle-modularity.js
index a8670ca8c..ff3f315b5 100644
--- a/js/tests/integration/rollup.bundle-modularity.js
+++ b/js/tests/integration/rollup.bundle-modularity.js
@@ -1,7 +1,7 @@
/* eslint-env node */
const commonjs = require('@rollup/plugin-commonjs')
-const configRollup = require('./rollup.bundle')
+const configRollup = require('./rollup.bundle.js')
const config = {
...configRollup,
diff --git a/js/tests/karma.conf.js b/js/tests/karma.conf.js
index d0cd17e23..fcf4ccd7f 100644
--- a/js/tests/karma.conf.js
+++ b/js/tests/karma.conf.js
@@ -13,7 +13,7 @@ const replace = require('@rollup/plugin-replace')
const {
browsers,
browsersKeys
-} = require('./browsers')
+} = require('./browsers.js')
const ENV = process.env
const BROWSERSTACK = Boolean(ENV.BROWSERSTACK)
diff --git a/js/tests/unit/alert.spec.js b/js/tests/unit/alert.spec.js
index 72cd23d89..36a4151ee 100644
--- a/js/tests/unit/alert.spec.js
+++ b/js/tests/unit/alert.spec.js
@@ -1,8 +1,6 @@
-import Alert from '../../src/alert'
-import { getTransitionDurationFromElement } from '../../src/util/index'
-
-/** Test helpers */
-import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture'
+import Alert from '../../src/alert.js'
+import { getTransitionDurationFromElement } from '../../src/util/index.js'
+import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture.js'
describe('Alert', () => {
let fixtureEl
diff --git a/js/tests/unit/base-component.spec.js b/js/tests/unit/base-component.spec.js
index b8ec83f12..c2cde3ce1 100644
--- a/js/tests/unit/base-component.spec.js
+++ b/js/tests/unit/base-component.spec.js
@@ -1,7 +1,7 @@
-import BaseComponent from '../../src/base-component'
-import { clearFixture, getFixture } from '../helpers/fixture'
-import EventHandler from '../../src/dom/event-handler'
-import { noop } from '../../src/util'
+import BaseComponent from '../../src/base-component.js'
+import { clearFixture, getFixture } from '../helpers/fixture.js'
+import EventHandler from '../../src/dom/event-handler.js'
+import { noop } from '../../src/util/index.js'
class DummyClass extends BaseComponent {
constructor(element) {
diff --git a/js/tests/unit/button.spec.js b/js/tests/unit/button.spec.js
index be99177e8..03506b92d 100644
--- a/js/tests/unit/button.spec.js
+++ b/js/tests/unit/button.spec.js
@@ -1,11 +1,5 @@
-import Button from '../../src/button'
-
-/** Test helpers */
-import {
- getFixture,
- clearFixture,
- jQueryMock
-} from '../helpers/fixture'
+import Button from '../../src/button.js'
+import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture.js'
describe('Button', () => {
let fixtureEl
diff --git a/js/tests/unit/carousel.spec.js b/js/tests/unit/carousel.spec.js
index 83ba28912..7f6ce2dc0 100644
--- a/js/tests/unit/carousel.spec.js
+++ b/js/tests/unit/carousel.spec.js
@@ -1,9 +1,7 @@
-import Carousel from '../../src/carousel'
-import EventHandler from '../../src/dom/event-handler'
-
-/** Test helpers */
-import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
-import * as util from '../../src/util'
+import Carousel from '../../src/carousel.js'
+import EventHandler from '../../src/dom/event-handler.js'
+import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
+import { isRTL } from '../../src/util/index.js'
describe('Carousel', () => {
const { Simulator, PointerEvent } = window
@@ -1175,7 +1173,7 @@ describe('Carousel', () => {
const carouselEl = fixtureEl.querySelector('div')
const carousel = new Carousel(carouselEl, {})
- expect(util.isRTL()).toEqual(true, 'rtl has to be true')
+ expect(isRTL()).toEqual(true, 'rtl has to be true')
expect(carousel._directionToOrder('left')).toEqual('prev')
expect(carousel._directionToOrder('prev')).toEqual('prev')
diff --git a/js/tests/unit/collapse.spec.js b/js/tests/unit/collapse.spec.js
index da709bb85..df759dc23 100644
--- a/js/tests/unit/collapse.spec.js
+++ b/js/tests/unit/collapse.spec.js
@@ -1,8 +1,6 @@
-import Collapse from '../../src/collapse'
-import EventHandler from '../../src/dom/event-handler'
-
-/** Test helpers */
-import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture'
+import Collapse from '../../src/collapse.js'
+import EventHandler from '../../src/dom/event-handler.js'
+import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture.js'
describe('Collapse', () => {
let fixtureEl
diff --git a/js/tests/unit/dom/data.spec.js b/js/tests/unit/dom/data.spec.js
index d2dbe486b..bd4cdb389 100644
--- a/js/tests/unit/dom/data.spec.js
+++ b/js/tests/unit/dom/data.spec.js
@@ -1,7 +1,5 @@
-import Data from '../../../src/dom/data'
-
-/** Test helpers */
-import { getFixture, clearFixture } from '../../helpers/fixture'
+import Data from '../../../src/dom/data.js'
+import { getFixture, clearFixture } from '../../helpers/fixture.js'
describe('Data', () => {
const TEST_KEY = 'bs.test'
diff --git a/js/tests/unit/dom/event-handler.spec.js b/js/tests/unit/dom/event-handler.spec.js
index 45f2d6e55..cd1003bc9 100644
--- a/js/tests/unit/dom/event-handler.spec.js
+++ b/js/tests/unit/dom/event-handler.spec.js
@@ -1,7 +1,5 @@
-import EventHandler from '../../../src/dom/event-handler'
-
-/** Test helpers */
-import { getFixture, clearFixture } from '../../helpers/fixture'
+import EventHandler from '../../../src/dom/event-handler.js'
+import { getFixture, clearFixture } from '../../helpers/fixture.js'
describe('EventHandler', () => {
let fixtureEl
diff --git a/js/tests/unit/dom/manipulator.spec.js b/js/tests/unit/dom/manipulator.spec.js
index 13d0c3d17..50c59836e 100644
--- a/js/tests/unit/dom/manipulator.spec.js
+++ b/js/tests/unit/dom/manipulator.spec.js
@@ -1,7 +1,5 @@
-import Manipulator from '../../../src/dom/manipulator'
-
-/** Test helpers */
-import { getFixture, clearFixture } from '../../helpers/fixture'
+import Manipulator from '../../../src/dom/manipulator.js'
+import { getFixture, clearFixture } from '../../helpers/fixture.js'
describe('Manipulator', () => {
let fixtureEl
diff --git a/js/tests/unit/dom/selector-engine.spec.js b/js/tests/unit/dom/selector-engine.spec.js
index 08c3ae818..a783948f1 100644
--- a/js/tests/unit/dom/selector-engine.spec.js
+++ b/js/tests/unit/dom/selector-engine.spec.js
@@ -1,7 +1,5 @@
-import SelectorEngine from '../../../src/dom/selector-engine'
-
-/** Test helpers */
-import { getFixture, clearFixture } from '../../helpers/fixture'
+import SelectorEngine from '../../../src/dom/selector-engine.js'
+import { getFixture, clearFixture } from '../../helpers/fixture.js'
describe('SelectorEngine', () => {
let fixtureEl
diff --git a/js/tests/unit/dropdown.spec.js b/js/tests/unit/dropdown.spec.js
index a3c60ff65..6064ef600 100644
--- a/js/tests/unit/dropdown.spec.js
+++ b/js/tests/unit/dropdown.spec.js
@@ -1,9 +1,7 @@
-import Dropdown from '../../src/dropdown'
-import EventHandler from '../../src/dom/event-handler'
-import { noop } from '../../src/util'
-
-/** Test helpers */
-import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
+import Dropdown from '../../src/dropdown.js'
+import EventHandler from '../../src/dom/event-handler.js'
+import { noop } from '../../src/util/index.js'
+import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
describe('Dropdown', () => {
let fixtureEl
diff --git a/js/tests/unit/jquery.spec.js b/js/tests/unit/jquery.spec.js
index 7513341a4..3a19f0566 100644
--- a/js/tests/unit/jquery.spec.js
+++ b/js/tests/unit/jquery.spec.js
@@ -1,19 +1,18 @@
/* eslint-env jquery */
-import Alert from '../../src/alert'
-import Button from '../../src/button'
-import Carousel from '../../src/carousel'
-import Collapse from '../../src/collapse'
-import Dropdown from '../../src/dropdown'
-import Modal from '../../src/modal'
-import Offcanvas from '../../src/offcanvas'
-import Popover from '../../src/popover'
-import ScrollSpy from '../../src/scrollspy'
-import Tab from '../../src/tab'
-import Toast from '../../src/toast'
-import Tooltip from '../../src/tooltip'
-
-/** Test helpers */
-import { getFixture, clearFixture } from '../helpers/fixture'
+
+import Alert from '../../src/alert.js'
+import Button from '../../src/button.js'
+import Carousel from '../../src/carousel.js'
+import Collapse from '../../src/collapse.js'
+import Dropdown from '../../src/dropdown.js'
+import Modal from '../../src/modal.js'
+import Offcanvas from '../../src/offcanvas.js'
+import Popover from '../../src/popover.js'
+import ScrollSpy from '../../src/scrollspy.js'
+import Tab from '../../src/tab.js'
+import Toast from '../../src/toast.js'
+import Tooltip from '../../src/tooltip.js'
+import { getFixture, clearFixture } from '../helpers/fixture.js'
describe('jQuery', () => {
let fixtureEl
diff --git a/js/tests/unit/modal.spec.js b/js/tests/unit/modal.spec.js
index 9632fa6cf..7e942992d 100644
--- a/js/tests/unit/modal.spec.js
+++ b/js/tests/unit/modal.spec.js
@@ -1,9 +1,7 @@
-import Modal from '../../src/modal'
-import EventHandler from '../../src/dom/event-handler'
-import ScrollBarHelper from '../../src/util/scrollbar'
-
-/** Test helpers */
-import { clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
+import Modal from '../../src/modal.js'
+import EventHandler from '../../src/dom/event-handler.js'
+import ScrollBarHelper from '../../src/util/scrollbar.js'
+import { clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
describe('Modal', () => {
let fixtureEl
diff --git a/js/tests/unit/offcanvas.spec.js b/js/tests/unit/offcanvas.spec.js
index 877d2e7f3..1ba99ce4d 100644
--- a/js/tests/unit/offcanvas.spec.js
+++ b/js/tests/unit/offcanvas.spec.js
@@ -1,10 +1,8 @@
-import Offcanvas from '../../src/offcanvas'
-import EventHandler from '../../src/dom/event-handler'
-
-/** Test helpers */
-import { clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
-import { isVisible } from '../../src/util'
-import ScrollBarHelper from '../../src/util/scrollbar'
+import Offcanvas from '../../src/offcanvas.js'
+import EventHandler from '../../src/dom/event-handler.js'
+import { clearBodyAndDocument, clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
+import { isVisible } from '../../src/util/index.js'
+import ScrollBarHelper from '../../src/util/scrollbar.js'
describe('Offcanvas', () => {
let fixtureEl
diff --git a/js/tests/unit/popover.spec.js b/js/tests/unit/popover.spec.js
index c54fc49ee..d569e9689 100644
--- a/js/tests/unit/popover.spec.js
+++ b/js/tests/unit/popover.spec.js
@@ -1,7 +1,5 @@
-import Popover from '../../src/popover'
-
-/** Test helpers */
-import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture'
+import Popover from '../../src/popover.js'
+import { clearFixture, getFixture, jQueryMock } from '../helpers/fixture.js'
describe('Popover', () => {
let fixtureEl
diff --git a/js/tests/unit/scrollspy.spec.js b/js/tests/unit/scrollspy.spec.js
index ad44d5b3c..fd89c2a01 100644
--- a/js/tests/unit/scrollspy.spec.js
+++ b/js/tests/unit/scrollspy.spec.js
@@ -1,8 +1,6 @@
-import ScrollSpy from '../../src/scrollspy'
-import Manipulator from '../../src/dom/manipulator'
-
-/** Test helpers */
-import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture'
+import ScrollSpy from '../../src/scrollspy.js'
+import Manipulator from '../../src/dom/manipulator.js'
+import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture.js'
describe('ScrollSpy', () => {
let fixtureEl
diff --git a/js/tests/unit/tab.spec.js b/js/tests/unit/tab.spec.js
index 4bd9c7a73..d1c30d58a 100644
--- a/js/tests/unit/tab.spec.js
+++ b/js/tests/unit/tab.spec.js
@@ -1,7 +1,5 @@
-import Tab from '../../src/tab'
-
-/** Test helpers */
-import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture'
+import Tab from '../../src/tab.js'
+import { getFixture, clearFixture, jQueryMock } from '../helpers/fixture.js'
describe('Tab', () => {
let fixtureEl
diff --git a/js/tests/unit/toast.spec.js b/js/tests/unit/toast.spec.js
index c491650b1..6e0b4c4a1 100644
--- a/js/tests/unit/toast.spec.js
+++ b/js/tests/unit/toast.spec.js
@@ -1,7 +1,5 @@
-import Toast from '../../src/toast'
-
-/** Test helpers */
-import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture'
+import Toast from '../../src/toast.js'
+import { getFixture, clearFixture, createEvent, jQueryMock } from '../helpers/fixture.js'
describe('Toast', () => {
let fixtureEl
diff --git a/js/tests/unit/tooltip.spec.js b/js/tests/unit/tooltip.spec.js
index 22a7edd01..a23ac3d34 100644
--- a/js/tests/unit/tooltip.spec.js
+++ b/js/tests/unit/tooltip.spec.js
@@ -1,9 +1,7 @@
-import Tooltip from '../../src/tooltip'
-import EventHandler from '../../src/dom/event-handler'
-import { noop } from '../../src/util/index'
-
-/** Test helpers */
-import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture'
+import Tooltip from '../../src/tooltip.js'
+import EventHandler from '../../src/dom/event-handler.js'
+import { noop } from '../../src/util/index.js'
+import { clearFixture, createEvent, getFixture, jQueryMock } from '../helpers/fixture.js'
describe('Tooltip', () => {
let fixtureEl
diff --git a/js/tests/unit/util/backdrop.spec.js b/js/tests/unit/util/backdrop.spec.js
index b885b60b5..768ba5fe9 100644
--- a/js/tests/unit/util/backdrop.spec.js
+++ b/js/tests/unit/util/backdrop.spec.js
@@ -1,6 +1,6 @@
-import Backdrop from '../../../src/util/backdrop'
-import { getTransitionDurationFromElement } from '../../../src/util/index'
-import { clearFixture, getFixture } from '../../helpers/fixture'
+import Backdrop from '../../../src/util/backdrop.js'
+import { getTransitionDurationFromElement } from '../../../src/util/index.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
const CLASS_BACKDROP = '.modal-backdrop'
const CLASS_NAME_FADE = 'fade'
diff --git a/js/tests/unit/util/component-functions.spec.js b/js/tests/unit/util/component-functions.spec.js
index edaedd32e..feaefec8c 100644
--- a/js/tests/unit/util/component-functions.spec.js
+++ b/js/tests/unit/util/component-functions.spec.js
@@ -1,8 +1,8 @@
/* Test helpers */
-import { clearFixture, createEvent, getFixture } from '../../helpers/fixture'
-import { enableDismissTrigger } from '../../../src/util/component-functions'
-import BaseComponent from '../../../src/base-component'
+import { clearFixture, createEvent, getFixture } from '../../helpers/fixture.js'
+import { enableDismissTrigger } from '../../../src/util/component-functions.js'
+import BaseComponent from '../../../src/base-component.js'
class DummyClass2 extends BaseComponent {
static get NAME() {
diff --git a/js/tests/unit/util/focustrap.spec.js b/js/tests/unit/util/focustrap.spec.js
index 99bc95fca..1718cbba2 100644
--- a/js/tests/unit/util/focustrap.spec.js
+++ b/js/tests/unit/util/focustrap.spec.js
@@ -1,7 +1,7 @@
-import FocusTrap from '../../../src/util/focustrap'
-import EventHandler from '../../../src/dom/event-handler'
-import SelectorEngine from '../../../src/dom/selector-engine'
-import { clearFixture, getFixture, createEvent } from '../../helpers/fixture'
+import FocusTrap from '../../../src/util/focustrap.js'
+import EventHandler from '../../../src/dom/event-handler.js'
+import SelectorEngine from '../../../src/dom/selector-engine.js'
+import { clearFixture, getFixture, createEvent } from '../../helpers/fixture.js'
describe('FocusTrap', () => {
let fixtureEl
diff --git a/js/tests/unit/util/index.spec.js b/js/tests/unit/util/index.spec.js
index 38e94dc6b..968bb5965 100644
--- a/js/tests/unit/util/index.spec.js
+++ b/js/tests/unit/util/index.spec.js
@@ -1,7 +1,5 @@
-import * as Util from '../../../src/util/index'
-
-/** Test helpers */
-import { clearFixture, getFixture } from '../../helpers/fixture'
+import * as Util from '../../../src/util/index.js'
+import { clearFixture, getFixture } from '../../helpers/fixture.js'
describe('Util', () => {
let fixtureEl
diff --git a/js/tests/unit/util/sanitizer.spec.js b/js/tests/unit/util/sanitizer.spec.js
index 7379d221f..806593bb1 100644
--- a/js/tests/unit/util/sanitizer.spec.js
+++ b/js/tests/unit/util/sanitizer.spec.js
@@ -1,4 +1,4 @@
-import { DefaultAllowlist, sanitizeHtml } from '../../../src/util/sanitizer'
+import { DefaultAllowlist, sanitizeHtml } from '../../../src/util/sanitizer.js'
describe('Sanitizer', () => {
describe('sanitizeHtml', () => {
diff --git a/js/tests/unit/util/scrollbar.spec.js b/js/tests/unit/util/scrollbar.spec.js
index 280adb8e5..fa2589160 100644
--- a/js/tests/unit/util/scrollbar.spec.js
+++ b/js/tests/unit/util/scrollbar.spec.js
@@ -1,6 +1,6 @@
-import { clearBodyAndDocument, clearFixture, getFixture } from '../../helpers/fixture'
-import Manipulator from '../../../src/dom/manipulator'
-import ScrollBarHelper from '../../../src/util/scrollbar'
+import { clearBodyAndDocument, clearFixture, getFixture } from '../../helpers/fixture.js'
+import Manipulator from '../../../src/dom/manipulator.js'
+import ScrollBarHelper from '../../../src/util/scrollbar.js'
describe('ScrollBar', () => {
let fixtureEl