bootstrap 5.3.3 → 5.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +17 -22
  3. data/CHANGELOG.md +5 -0
  4. data/README.md +5 -10
  5. data/Rakefile +0 -2
  6. data/assets/javascripts/bootstrap/alert.js +2 -2
  7. data/assets/javascripts/bootstrap/base-component.js +5 -3
  8. data/assets/javascripts/bootstrap/button.js +2 -2
  9. data/assets/javascripts/bootstrap/carousel.js +2 -2
  10. data/assets/javascripts/bootstrap/collapse.js +4 -4
  11. data/assets/javascripts/bootstrap/dom/data.js +2 -2
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +2 -2
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +3 -3
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +2 -2
  15. data/assets/javascripts/bootstrap/dropdown.js +4 -4
  16. data/assets/javascripts/bootstrap/modal.js +2 -2
  17. data/assets/javascripts/bootstrap/offcanvas.js +2 -2
  18. data/assets/javascripts/bootstrap/popover.js +2 -2
  19. data/assets/javascripts/bootstrap/scrollspy.js +2 -2
  20. data/assets/javascripts/bootstrap/tab.js +2 -2
  21. data/assets/javascripts/bootstrap/toast.js +2 -3
  22. data/assets/javascripts/bootstrap/tooltip.js +6 -6
  23. data/assets/javascripts/bootstrap/util/backdrop.js +2 -2
  24. data/assets/javascripts/bootstrap/util/component-functions.js +2 -2
  25. data/assets/javascripts/bootstrap/util/config.js +2 -2
  26. data/assets/javascripts/bootstrap/util/focustrap.js +2 -2
  27. data/assets/javascripts/bootstrap/util/index.js +4 -4
  28. data/assets/javascripts/bootstrap/util/sanitizer.js +2 -3
  29. data/assets/javascripts/bootstrap/util/scrollbar.js +2 -2
  30. data/assets/javascripts/bootstrap/util/swipe.js +2 -2
  31. data/assets/javascripts/bootstrap/util/template-factory.js +3 -3
  32. data/assets/javascripts/bootstrap-sprockets.js +12 -12
  33. data/assets/javascripts/bootstrap.js +17 -17
  34. data/assets/javascripts/bootstrap.min.js +3 -3
  35. data/assets/stylesheets/bootstrap/_accordion.scss +4 -9
  36. data/assets/stylesheets/bootstrap/_button-group.scss +8 -3
  37. data/assets/stylesheets/bootstrap/_card.scss +9 -10
  38. data/assets/stylesheets/bootstrap/_carousel.scss +15 -25
  39. data/assets/stylesheets/bootstrap/_close.scss +9 -6
  40. data/assets/stylesheets/bootstrap/_functions.scss +2 -2
  41. data/assets/stylesheets/bootstrap/_list-group.scss +27 -25
  42. data/assets/stylesheets/bootstrap/_modal.scss +6 -2
  43. data/assets/stylesheets/bootstrap/_nav.scss +1 -1
  44. data/assets/stylesheets/bootstrap/_navbar.scss +1 -1
  45. data/assets/stylesheets/bootstrap/_offcanvas.scss +5 -1
  46. data/assets/stylesheets/bootstrap/_pagination.scss +1 -1
  47. data/assets/stylesheets/bootstrap/_progress.scss +1 -1
  48. data/assets/stylesheets/bootstrap/_reboot.scss +7 -1
  49. data/assets/stylesheets/bootstrap/_spinners.scss +1 -0
  50. data/assets/stylesheets/bootstrap/_type.scss +1 -1
  51. data/assets/stylesheets/bootstrap/_variables-dark.scss +17 -2
  52. data/assets/stylesheets/bootstrap/_variables.scss +16 -14
  53. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +18 -16
  54. data/assets/stylesheets/bootstrap/forms/_input-group.scss +1 -1
  55. data/assets/stylesheets/bootstrap/mixins/_banner.scss +2 -2
  56. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +11 -5
  57. data/assets/stylesheets/bootstrap/mixins/_grid.scss +1 -1
  58. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +6 -1
  59. data/bootstrap.gemspec +1 -2
  60. data/lib/bootstrap/engine.rb +0 -1
  61. data/lib/bootstrap/version.rb +2 -2
  62. data/test/dummy_rails/config/application.rb +0 -2
  63. data/test/dummy_rails/public/favicon.ico +0 -0
  64. data/test/gemfiles/rails_5_0.gemfile +0 -1
  65. data/test/gemfiles/rails_5_1.gemfile +0 -1
  66. data/test/gemfiles/rails_5_2.gemfile +0 -1
  67. data/test/gemfiles/rails_6_0.gemfile +8 -1
  68. data/test/gemfiles/rails_6_1.gemfile +8 -1
  69. data/test/gemfiles/rails_7_0_dartsass.gemfile +8 -1
  70. data/test/gemfiles/rails_7_0_sassc.gemfile +8 -1
  71. data/test/rails_test.rb +0 -5
  72. data/test/test_helper.rb +5 -3
  73. metadata +17 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f5f0f95cef4c5b6abf9fd7a3b2721493ed6c929c1a757823f405270124573f6b
4
- data.tar.gz: c3d89d1a7fa09745690ebd7cc1bf258af83bb58eec85ce3dbaf2a0792d9cd9d6
3
+ metadata.gz: 7bfd7dd14412fbe54628ddd5867481f5ba06c9e33a4e9fea5c51d949b4620fde
4
+ data.tar.gz: 858ab6068c88444aa36f1cd1b1e2d0f4aa079ba9bc01cab035cada02623ba315
5
5
  SHA512:
6
- metadata.gz: 03f9c9d2a23faa83d108854e73320bb480c6c6298d3d79fe5c5306ec14d9f67efd82c12a1bc5d9c4458edeef8fc119d61cda59347c660c8e1a3b9cbcc5142a26
7
- data.tar.gz: 37a91ba786b9f36a1a446f3fa5a70abed611a41b37bc55d9992ccbf6c685d61a93d15341423a3114bf7aa18140537b6dd9890105f57bbd196c6dfb9366044967
6
+ metadata.gz: c49f874e85ba00759c24147523cb48b1a49d6dc13baf54d888d8c6098721d1f26ed68dbec81d6a23067414c0bf85b1ecbce0931e5e28d2df08c142d24f8a73c1
7
+ data.tar.gz: 5a64b61bc1fb2b3131a2bfd5285d206f2bd867af4d702fa1e8e8a4f436a356a86493efe6f7039cb5adc95960603638a893df5444d258a37f47e12112ca1319dd
@@ -12,11 +12,8 @@ jobs:
12
12
  strategy:
13
13
  fail-fast: false
14
14
  matrix:
15
- ruby_version: ['2.5', '2.6', '2.7', '3.0', '3.1']
15
+ ruby_version: ['2.7', '3.0', '3.1', '3.2', '3.3', '3.4', '4.0']
16
16
  gemfile:
17
- - test/gemfiles/rails_5_0.gemfile
18
- - test/gemfiles/rails_5_1.gemfile
19
- - test/gemfiles/rails_5_2.gemfile
20
17
  - test/gemfiles/rails_6_0.gemfile
21
18
  - test/gemfiles/rails_6_1.gemfile
22
19
  - test/gemfiles/rails_7_0_sassc.gemfile
@@ -26,36 +23,34 @@ jobs:
26
23
  gemfile: test/gemfiles/rails_4_2.gemfile
27
24
  - ruby_version: '2.6'
28
25
  gemfile: test/gemfiles/rails_4_2.gemfile
29
- exclude:
30
26
  - ruby_version: '2.5'
31
- gemfile: test/gemfiles/rails_7_0_sassc.gemfile
32
- - ruby_version: '2.5'
33
- gemfile: test/gemfiles/rails_7_0_dartsass.gemfile
34
- - ruby_version: '2.6'
35
- gemfile: test/gemfiles/rails_7_0_sassc.gemfile
27
+ gemfile: test/gemfiles/rails_5_0.gemfile
36
28
  - ruby_version: '2.6'
37
- gemfile: test/gemfiles/rails_7_0_dartsass.gemfile
38
- - ruby_version: '3.0'
39
29
  gemfile: test/gemfiles/rails_5_0.gemfile
40
- - ruby_version: '3.0'
41
- gemfile: test/gemfiles/rails_5_1.gemfile
42
- - ruby_version: '3.0'
43
- gemfile: test/gemfiles/rails_5_2.gemfile
44
- - ruby_version: '3.1'
30
+ - ruby_version: '2.7'
45
31
  gemfile: test/gemfiles/rails_5_0.gemfile
46
- - ruby_version: '3.1'
32
+ - ruby_version: '2.5'
47
33
  gemfile: test/gemfiles/rails_5_1.gemfile
48
- - ruby_version: '3.1'
34
+ - ruby_version: '2.6'
35
+ gemfile: test/gemfiles/rails_5_1.gemfile
36
+ - ruby_version: '2.7'
37
+ gemfile: test/gemfiles/rails_5_1.gemfile
38
+ - ruby_version: '2.5'
39
+ gemfile: test/gemfiles/rails_5_2.gemfile
40
+ - ruby_version: '2.6'
41
+ gemfile: test/gemfiles/rails_5_2.gemfile
42
+ - ruby_version: '2.7'
49
43
  gemfile: test/gemfiles/rails_5_2.gemfile
50
- - ruby_version: '3.1'
51
- gemfile: test/gemfiles/rails_6_0.gemfile
52
44
  runs-on: ubuntu-latest
53
45
  steps:
54
- - uses: actions/checkout@v3
46
+ - uses: actions/checkout@v6
55
47
  - name: Set up Ruby
56
48
  uses: ruby/setup-ruby@v1
57
49
  with:
58
50
  ruby-version: ${{ matrix.ruby_version }}
59
51
  bundler-cache: true # 'bundle install' and cache
52
+ - name: Disable AppArmor # https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md
53
+ if: runner.os == 'Linux'
54
+ run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
60
55
  - name: Build and test with Rake
61
56
  run: bundle exec rake --trace
data/CHANGELOG.md CHANGED
@@ -6,6 +6,11 @@ The changelog only includes changes specific to the RubyGem.
6
6
  The Bootstrap framework changes can be found in [the Releases section of twbs/bootstrap](https://github.com/twbs/bootstrap/releases).
7
7
  Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release of Bootstrap.
8
8
 
9
+ # 5.3.4
10
+
11
+ * Autoprefixer is now optional.
12
+ [#283](https://github.com/twbs/bootstrap-rubygem/pull/283)
13
+
9
14
  # 5.3.3
10
15
 
11
16
  * Adds support for other Sass engines: dartsass-sprockets, dartsass-rails, and cssbundling-rails.
data/README.md CHANGED
@@ -21,10 +21,10 @@ Please see the appropriate guide for your environment of choice:
21
21
  Add `bootstrap` to your Gemfile:
22
22
 
23
23
  ```ruby
24
- gem 'bootstrap', '~> 5.3.3'
24
+ gem 'bootstrap', '~> 5.3.8'
25
25
  ```
26
26
 
27
- This gem requires a Sass engine, so make sure you have **one** of these two gems in your Gemfile:
27
+ This gem requires a Sass engine, so make sure you have **one** of these gems in your Gemfile:
28
28
  - [`dartsass-sprockets`](https://github.com/tablecheck/dartsass-sprockets): Dart Sass engine, recommended but only works for Ruby 2.6+ and Rails 5+
29
29
  - [`dartsass-rails`](https://github.com/rails/dartsass-rails): Dart Sass engine, recommended for Rails projects that use Propshaft
30
30
  - [`cssbundling-rails`](https://github.com/rails/cssbundling-rails): External Sass engine
@@ -32,6 +32,9 @@ This gem requires a Sass engine, so make sure you have **one** of these two gems
32
32
 
33
33
  Also ensure that `sprockets-rails` is at least v2.3.2.
34
34
 
35
+ For wider browser compatibility, use [Autoprefixer][autoprefixer].
36
+ If you are using Rails, add the `autoprefixer-rails` gem to your app and ensure you have a JavaScript runtime (e.g. NodeJS).
37
+
35
38
  `bundle install` and restart your server to make the files available through the pipeline.
36
39
 
37
40
  Import Bootstrap styles in `app/assets/stylesheets/application.scss`:
@@ -113,14 +116,6 @@ Refer to your framework's documentation on the subject.
113
116
 
114
117
  ## Configuration
115
118
 
116
- ### Sass: Autoprefixer
117
-
118
- Bootstrap requires the use of [Autoprefixer][autoprefixer].
119
- [Autoprefixer][autoprefixer] adds vendor prefixes to CSS rules using values from [Can I Use](http://caniuse.com/).
120
-
121
- If you are using bootstrap with Rails, autoprefixer is set up for you automatically.
122
- Otherwise, please consult the [Autoprefixer documentation][autoprefixer].
123
-
124
119
  ### Sass: Individual components
125
120
 
126
121
  By default all of Bootstrap is imported.
data/Rakefile CHANGED
@@ -57,7 +57,6 @@ task :debug do
57
57
  end
58
58
  require './lib/bootstrap'
59
59
  require 'term/ansicolor'
60
- require 'autoprefixer-rails'
61
60
  path = Bootstrap.stylesheets_path
62
61
  %w(_bootstrap _bootstrap-reboot _bootstrap-grid).each do |file|
63
62
  filename = "#{path}/#{file}.scss"
@@ -66,7 +65,6 @@ task :debug do
66
65
  else
67
66
  Sass.compile(filename).css
68
67
  end
69
- css = AutoprefixerRails.process(css)
70
68
  out = File.join('tmp', "#{file[1..-1]}.css")
71
69
  File.write(out, css)
72
70
  $stderr.puts Term::ANSIColor.green "Compiled #{out}"
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap alert.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap alert.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap base-component.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap base-component.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -21,7 +21,7 @@
21
21
  * Constants
22
22
  */
23
23
 
24
- const VERSION = '5.3.3';
24
+ const VERSION = '5.3.8';
25
25
 
26
26
  /**
27
27
  * Class definition
@@ -47,6 +47,8 @@
47
47
  this[propertyName] = null;
48
48
  }
49
49
  }
50
+
51
+ // Private
50
52
  _queueCallback(callback, element, isAnimated = true) {
51
53
  index_js.executeAfterTransition(callback, element, isAnimated);
52
54
  }
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap button.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap button.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap carousel.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap carousel.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap collapse.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap collapse.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -163,11 +163,11 @@
163
163
  this._element.style[dimension] = '';
164
164
  this._queueCallback(complete, this._element, true);
165
165
  }
166
+
167
+ // Private
166
168
  _isShown(element = this._element) {
167
169
  return element.classList.contains(CLASS_NAME_SHOW);
168
170
  }
169
-
170
- // Private
171
171
  _configAfterMerge(config) {
172
172
  config.toggle = Boolean(config.toggle); // Coerce string values
173
173
  config.parent = index_js.getElement(config.parent);
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap data.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap data.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap event-handler.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap event-handler.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap manipulator.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap manipulator.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -56,7 +56,7 @@
56
56
  const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));
57
57
  for (const key of bsKeys) {
58
58
  let pureKey = key.replace(/^bs/, '');
59
- pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
59
+ pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1);
60
60
  attributes[pureKey] = normalizeData(element.dataset[key]);
61
61
  }
62
62
  return attributes;
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap selector-engine.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap selector-engine.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap dropdown.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap dropdown.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -206,7 +206,7 @@
206
206
  }
207
207
  _createPopper() {
208
208
  if (typeof Popper__namespace === 'undefined') {
209
- throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
209
+ throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org/docs/v2/)');
210
210
  }
211
211
  let referenceElement = this._element;
212
212
  if (this._config.reference === 'parent') {
@@ -285,7 +285,7 @@
285
285
  }
286
286
  return {
287
287
  ...defaultBsPopperConfig,
288
- ...index_js.execute(this._config.popperConfig, [defaultBsPopperConfig])
288
+ ...index_js.execute(this._config.popperConfig, [undefined, defaultBsPopperConfig])
289
289
  };
290
290
  }
291
291
  _selectMenuItem({
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap modal.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap modal.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap offcanvas.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap offcanvas.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap popover.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap popover.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap scrollspy.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap scrollspy.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap tab.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap tab.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap toast.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap toast.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -119,7 +119,6 @@
119
119
  }
120
120
 
121
121
  // Private
122
-
123
122
  _maybeScheduleHide() {
124
123
  if (!this._config.autohide) {
125
124
  return;
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap tooltip.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap tooltip.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -115,7 +115,7 @@
115
115
  class Tooltip extends BaseComponent {
116
116
  constructor(element, config) {
117
117
  if (typeof Popper__namespace === 'undefined') {
118
- throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
118
+ throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org/docs/v2/)');
119
119
  }
120
120
  super(element, config);
121
121
 
@@ -161,7 +161,6 @@
161
161
  if (!this._isEnabled) {
162
162
  return;
163
163
  }
164
- this._activeTrigger.click = !this._activeTrigger.click;
165
164
  if (this._isShown()) {
166
165
  this._leave();
167
166
  return;
@@ -349,7 +348,7 @@
349
348
  return offset;
350
349
  }
351
350
  _resolvePossibleFunction(arg) {
352
- return index_js.execute(arg, [this._element]);
351
+ return index_js.execute(arg, [this._element, this._element]);
353
352
  }
354
353
  _getPopperConfig(attachment) {
355
354
  const defaultBsPopperConfig = {
@@ -387,7 +386,7 @@
387
386
  };
388
387
  return {
389
388
  ...defaultBsPopperConfig,
390
- ...index_js.execute(this._config.popperConfig, [defaultBsPopperConfig])
389
+ ...index_js.execute(this._config.popperConfig, [undefined, defaultBsPopperConfig])
391
390
  };
392
391
  }
393
392
  _setListeners() {
@@ -396,6 +395,7 @@
396
395
  if (trigger === 'click') {
397
396
  EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {
398
397
  const context = this._initializeOnDelegatedTarget(event);
398
+ context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK]);
399
399
  context.toggle();
400
400
  });
401
401
  } else if (trigger !== TRIGGER_MANUAL) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap backdrop.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap backdrop.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap component-functions.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap component-functions.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap config.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap config.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap focustrap.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap focustrap.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap index.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap index.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -157,7 +157,7 @@
157
157
  * @param {HTMLElement} element
158
158
  * @return void
159
159
  *
160
- * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
160
+ * @see https://www.harrytheo.com/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
161
161
  */
162
162
  const reflow = element => {
163
163
  element.offsetHeight; // eslint-disable-line no-unused-expressions
@@ -202,7 +202,7 @@
202
202
  });
203
203
  };
204
204
  const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
205
- return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;
205
+ return typeof possibleCallback === 'function' ? possibleCallback.call(...args) : defaultValue;
206
206
  };
207
207
  const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
208
208
  if (!waitForTransition) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap sanitizer.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap sanitizer.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -64,7 +64,6 @@
64
64
  *
65
65
  * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38
66
66
  */
67
- // eslint-disable-next-line unicorn/better-regex
68
67
  const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
69
68
  const allowedAttribute = (attribute, allowedAttributeList) => {
70
69
  const attributeName = attribute.nodeName.toLowerCase();
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap scrollbar.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap scrollbar.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap swipe.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap swipe.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * Bootstrap template-factory.js v5.3.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap template-factory.js v5.3.8 (https://getbootstrap.com/)
3
+ * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
@@ -133,7 +133,7 @@
133
133
  return this._config.sanitize ? sanitizer_js.sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
134
134
  }
135
135
  _resolvePossibleFunction(arg) {
136
- return index_js.execute(arg, [this]);
136
+ return index_js.execute(arg, [undefined, this]);
137
137
  }
138
138
  _putElementInTemplate(element, templateElement) {
139
139
  if (this._config.html) {
@@ -5,24 +5,24 @@
5
5
  //= require ./bootstrap/dom/manipulator
6
6
  //= require ./bootstrap/util/config
7
7
  //= require ./bootstrap/base-component
8
- //= require ./bootstrap/dom/selector-engine
9
- //= require ./bootstrap/util/backdrop
10
- //= require ./bootstrap/util/component-functions
11
- //= require ./bootstrap/util/focustrap
12
- //= require ./bootstrap/util/scrollbar
13
- //= require ./bootstrap/offcanvas
14
- //= require ./bootstrap/dropdown
15
8
  //= require ./bootstrap/util/sanitizer
9
+ //= require ./bootstrap/dom/selector-engine
16
10
  //= require ./bootstrap/util/template-factory
17
11
  //= require ./bootstrap/tooltip
18
- //= require ./bootstrap/toast
19
12
  //= require ./bootstrap/popover
20
- //= require ./bootstrap/util/swipe
13
+ //= require ./bootstrap/util/component-functions
21
14
  //= require ./bootstrap/alert
15
+ //= require ./bootstrap/toast
22
16
  //= require ./bootstrap/button
23
- //= require ./bootstrap/carousel
24
- //= require ./bootstrap/modal
25
17
  //= require ./bootstrap/collapse
26
- //= require ./bootstrap/scrollspy
18
+ //= require ./bootstrap/util/scrollbar
27
19
  //= require ./bootstrap/tab
20
+ //= require ./bootstrap/util/focustrap
21
+ //= require ./bootstrap/util/backdrop
22
+ //= require ./bootstrap/scrollspy
23
+ //= require ./bootstrap/modal
24
+ //= require ./bootstrap/offcanvas
25
+ //= require ./bootstrap/util/swipe
26
+ //= require ./bootstrap/carousel
27
+ //= require ./bootstrap/dropdown
28
28
  //= require ./bootstrap-global-this-undefine