bootstrap 5.1.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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +56 -0
  3. data/CHANGELOG.md +9 -0
  4. data/Gemfile +1 -0
  5. data/README.md +35 -14
  6. data/Rakefile +16 -5
  7. data/assets/javascripts/bootstrap/alert.js +22 -167
  8. data/assets/javascripts/bootstrap/base-component.js +35 -132
  9. data/assets/javascripts/bootstrap/button.js +19 -86
  10. data/assets/javascripts/bootstrap/carousel.js +209 -564
  11. data/assets/javascripts/bootstrap/collapse.js +78 -324
  12. data/assets/javascripts/bootstrap/dom/data.js +8 -14
  13. data/assets/javascripts/bootstrap/dom/event-handler.js +89 -174
  14. data/assets/javascripts/bootstrap/dom/manipulator.js +22 -39
  15. data/assets/javascripts/bootstrap/dom/selector-engine.js +47 -71
  16. data/assets/javascripts/bootstrap/dropdown.js +135 -420
  17. data/assets/javascripts/bootstrap/modal.js +115 -837
  18. data/assets/javascripts/bootstrap/offcanvas.js +93 -714
  19. data/assets/javascripts/bootstrap/popover.js +42 -130
  20. data/assets/javascripts/bootstrap/scrollspy.js +180 -296
  21. data/assets/javascripts/bootstrap/tab.js +197 -245
  22. data/assets/javascripts/bootstrap/toast.js +51 -276
  23. data/assets/javascripts/bootstrap/tooltip.js +284 -744
  24. data/assets/javascripts/bootstrap/util/backdrop.js +138 -0
  25. data/assets/javascripts/bootstrap/util/component-functions.js +41 -0
  26. data/assets/javascripts/bootstrap/util/config.js +67 -0
  27. data/assets/javascripts/bootstrap/util/focustrap.js +112 -0
  28. data/assets/javascripts/bootstrap/util/index.js +280 -0
  29. data/assets/javascripts/bootstrap/util/sanitizer.js +112 -0
  30. data/assets/javascripts/bootstrap/util/scrollbar.js +112 -0
  31. data/assets/javascripts/bootstrap/util/swipe.js +134 -0
  32. data/assets/javascripts/bootstrap/util/template-factory.js +150 -0
  33. data/assets/javascripts/bootstrap-global-this-define.js +1 -1
  34. data/assets/javascripts/bootstrap-sprockets.js +18 -9
  35. data/assets/javascripts/bootstrap.js +2279 -2831
  36. data/assets/javascripts/bootstrap.min.js +3 -3
  37. data/assets/stylesheets/_bootstrap-grid.scss +4 -9
  38. data/assets/stylesheets/_bootstrap-reboot.scss +4 -7
  39. data/assets/stylesheets/_bootstrap-utilities.scss +19 -0
  40. data/assets/stylesheets/_bootstrap.scss +5 -6
  41. data/assets/stylesheets/bootstrap/_accordion.scss +68 -33
  42. data/assets/stylesheets/bootstrap/_alert.scss +25 -14
  43. data/assets/stylesheets/bootstrap/_badge.scss +14 -5
  44. data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -10
  45. data/assets/stylesheets/bootstrap/_button-group.scss +12 -4
  46. data/assets/stylesheets/bootstrap/_buttons.scss +133 -28
  47. data/assets/stylesheets/bootstrap/_card.scss +69 -47
  48. data/assets/stylesheets/bootstrap/_carousel.scss +22 -25
  49. data/assets/stylesheets/bootstrap/_close.scss +36 -10
  50. data/assets/stylesheets/bootstrap/_containers.scss +1 -1
  51. data/assets/stylesheets/bootstrap/_dropdown.scss +86 -76
  52. data/assets/stylesheets/bootstrap/_functions.scss +11 -11
  53. data/assets/stylesheets/bootstrap/_grid.scss +9 -3
  54. data/assets/stylesheets/bootstrap/_helpers.scss +3 -0
  55. data/assets/stylesheets/bootstrap/_list-group.scss +81 -56
  56. data/assets/stylesheets/bootstrap/_maps.scss +174 -0
  57. data/assets/stylesheets/bootstrap/_mixins.scss +1 -2
  58. data/assets/stylesheets/bootstrap/_modal.scss +76 -45
  59. data/assets/stylesheets/bootstrap/_nav.scss +87 -29
  60. data/assets/stylesheets/bootstrap/_navbar.scss +102 -148
  61. data/assets/stylesheets/bootstrap/_offcanvas.scss +125 -61
  62. data/assets/stylesheets/bootstrap/_pagination.scss +66 -21
  63. data/assets/stylesheets/bootstrap/_placeholders.scss +1 -1
  64. data/assets/stylesheets/bootstrap/_popover.scss +90 -52
  65. data/assets/stylesheets/bootstrap/_progress.scss +31 -11
  66. data/assets/stylesheets/bootstrap/_reboot.scss +38 -46
  67. data/assets/stylesheets/bootstrap/_root.scss +155 -22
  68. data/assets/stylesheets/bootstrap/_spinners.scss +39 -22
  69. data/assets/stylesheets/bootstrap/_tables.scss +40 -24
  70. data/assets/stylesheets/bootstrap/_toasts.scss +38 -16
  71. data/assets/stylesheets/bootstrap/_tooltip.scss +60 -56
  72. data/assets/stylesheets/bootstrap/_type.scss +3 -1
  73. data/assets/stylesheets/bootstrap/_utilities.scss +209 -33
  74. data/assets/stylesheets/bootstrap/_variables-dark.scss +102 -0
  75. data/assets/stylesheets/bootstrap/_variables.scss +415 -303
  76. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +39 -5
  77. data/assets/stylesheets/bootstrap/forms/_form-check.scss +51 -14
  78. data/assets/stylesheets/bootstrap/forms/_form-control.scss +36 -41
  79. data/assets/stylesheets/bootstrap/forms/_form-range.scss +3 -3
  80. data/assets/stylesheets/bootstrap/forms/_form-select.scss +12 -4
  81. data/assets/stylesheets/bootstrap/forms/_input-group.scss +20 -9
  82. data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +7 -0
  83. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +20 -2
  84. data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
  85. data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
  86. data/assets/stylesheets/bootstrap/helpers/_position.scss +7 -1
  87. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +2 -2
  88. data/assets/stylesheets/bootstrap/helpers/_vr.scss +2 -2
  89. data/assets/stylesheets/bootstrap/mixins/_alert.scss +11 -4
  90. data/assets/stylesheets/bootstrap/mixins/_banner.scss +7 -0
  91. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +11 -5
  92. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +8 -8
  93. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +32 -95
  94. data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -25
  95. data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
  96. data/assets/stylesheets/bootstrap/mixins/_container.scss +4 -2
  97. data/assets/stylesheets/bootstrap/mixins/_forms.scss +38 -19
  98. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
  99. data/assets/stylesheets/bootstrap/mixins/_grid.scss +15 -15
  100. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
  101. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +4 -25
  102. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  103. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +12 -9
  104. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +14 -6
  105. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +11 -2
  106. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +23 -29
  107. data/bootstrap.gemspec +4 -4
  108. data/lib/bootstrap/engine.rb +17 -2
  109. data/lib/bootstrap/version.rb +2 -2
  110. data/tasks/updater/js.rb +10 -5
  111. data/tasks/updater/network.rb +2 -2
  112. data/tasks/updater/scss.rb +2 -2
  113. data/tasks/updater.rb +2 -2
  114. data/test/dummy_rails/config/application.rb +0 -2
  115. data/test/dummy_rails/public/favicon.ico +0 -0
  116. data/test/gemfiles/rails_4_2.gemfile +2 -1
  117. data/test/gemfiles/rails_5_0.gemfile +1 -2
  118. data/test/gemfiles/rails_5_1.gemfile +1 -2
  119. data/test/gemfiles/rails_5_2.gemfile +7 -0
  120. data/test/gemfiles/rails_6_0.gemfile +9 -1
  121. data/test/gemfiles/rails_6_1.gemfile +9 -1
  122. data/test/gemfiles/rails_7_0_dartsass.gemfile +15 -0
  123. data/test/gemfiles/rails_7_0_sassc.gemfile +15 -0
  124. data/test/rails_test.rb +0 -5
  125. data/test/test_helper.rb +7 -4
  126. metadata +57 -27
  127. data/.travis.yml +0 -32
  128. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +0 -18
@@ -1,84 +1,24 @@
1
1
  /*!
2
- * Bootstrap button.js v5.1.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2021 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) {
7
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/event-handler.js'), require('./base-component.js')) :
8
- typeof define === 'function' && define.amd ? define(['./dom/event-handler', './base-component'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.EventHandler, global.Base));
10
- })(this, (function (EventHandler, BaseComponent) { 'use strict';
11
-
12
- const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
-
14
- const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
15
- const BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./base-component.js'), require('./dom/event-handler.js'), require('./util/index.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './util/index'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.BaseComponent, global.EventHandler, global.Index));
10
+ })(this, (function (BaseComponent, EventHandler, index_js) { 'use strict';
16
11
 
17
12
  /**
18
13
  * --------------------------------------------------------------------------
19
- * Bootstrap (v5.1.3): util/index.js
14
+ * Bootstrap button.js
20
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
21
16
  * --------------------------------------------------------------------------
22
17
  */
23
18
 
24
- const getjQuery = () => {
25
- const {
26
- jQuery
27
- } = window;
28
-
29
- if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
30
- return jQuery;
31
- }
32
-
33
- return null;
34
- };
35
-
36
- const DOMContentLoadedCallbacks = [];
37
-
38
- const onDOMContentLoaded = callback => {
39
- if (document.readyState === 'loading') {
40
- // add listener on the first call when the document is in loading state
41
- if (!DOMContentLoadedCallbacks.length) {
42
- document.addEventListener('DOMContentLoaded', () => {
43
- DOMContentLoadedCallbacks.forEach(callback => callback());
44
- });
45
- }
46
-
47
- DOMContentLoadedCallbacks.push(callback);
48
- } else {
49
- callback();
50
- }
51
- };
52
-
53
- const defineJQueryPlugin = plugin => {
54
- onDOMContentLoaded(() => {
55
- const $ = getjQuery();
56
- /* istanbul ignore if */
57
-
58
- if ($) {
59
- const name = plugin.NAME;
60
- const JQUERY_NO_CONFLICT = $.fn[name];
61
- $.fn[name] = plugin.jQueryInterface;
62
- $.fn[name].Constructor = plugin;
63
-
64
- $.fn[name].noConflict = () => {
65
- $.fn[name] = JQUERY_NO_CONFLICT;
66
- return plugin.jQueryInterface;
67
- };
68
- }
69
- });
70
- };
71
19
 
72
20
  /**
73
- * --------------------------------------------------------------------------
74
- * Bootstrap (v5.1.3): button.js
75
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
76
- * --------------------------------------------------------------------------
77
- */
78
- /**
79
- * ------------------------------------------------------------------------
80
21
  * Constants
81
- * ------------------------------------------------------------------------
82
22
  */
83
23
 
84
24
  const NAME = 'button';
@@ -88,57 +28,50 @@
88
28
  const CLASS_NAME_ACTIVE = 'active';
89
29
  const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
90
30
  const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
31
+
91
32
  /**
92
- * ------------------------------------------------------------------------
93
- * Class Definition
94
- * ------------------------------------------------------------------------
33
+ * Class definition
95
34
  */
96
35
 
97
- class Button extends BaseComponent__default.default {
36
+ class Button extends BaseComponent {
98
37
  // Getters
99
38
  static get NAME() {
100
39
  return NAME;
101
- } // Public
102
-
40
+ }
103
41
 
42
+ // Public
104
43
  toggle() {
105
44
  // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
106
45
  this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
107
- } // Static
108
-
46
+ }
109
47
 
48
+ // Static
110
49
  static jQueryInterface(config) {
111
50
  return this.each(function () {
112
51
  const data = Button.getOrCreateInstance(this);
113
-
114
52
  if (config === 'toggle') {
115
53
  data[config]();
116
54
  }
117
55
  });
118
56
  }
119
-
120
57
  }
58
+
121
59
  /**
122
- * ------------------------------------------------------------------------
123
- * Data Api implementation
124
- * ------------------------------------------------------------------------
60
+ * Data API implementation
125
61
  */
126
62
 
127
-
128
- EventHandler__default.default.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
63
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
129
64
  event.preventDefault();
130
65
  const button = event.target.closest(SELECTOR_DATA_TOGGLE);
131
66
  const data = Button.getOrCreateInstance(button);
132
67
  data.toggle();
133
68
  });
69
+
134
70
  /**
135
- * ------------------------------------------------------------------------
136
71
  * jQuery
137
- * ------------------------------------------------------------------------
138
- * add .Button to jQuery only if jQuery is present
139
72
  */
140
73
 
141
- defineJQueryPlugin(Button);
74
+ index_js.defineJQueryPlugin(Button);
142
75
 
143
76
  return Button;
144
77