bootstrap 5.1.3 → 5.3.5

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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +61 -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 +34 -133
  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 +52 -276
  23. data/assets/javascripts/bootstrap/tooltip.js +283 -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 +113 -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 +15 -6
  35. data/assets/javascripts/bootstrap.js +2278 -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 +61 -39
  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 +10 -10
  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 +32 -46
  67. data/assets/stylesheets/bootstrap/_root.scss +155 -22
  68. data/assets/stylesheets/bootstrap/_spinners.scss +38 -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/_breakpoints.scss +8 -8
  92. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +32 -95
  93. data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -25
  94. data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
  95. data/assets/stylesheets/bootstrap/mixins/_container.scss +4 -2
  96. data/assets/stylesheets/bootstrap/mixins/_forms.scss +38 -19
  97. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
  98. data/assets/stylesheets/bootstrap/mixins/_grid.scss +15 -15
  99. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -0
  100. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +4 -25
  101. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  102. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +12 -9
  103. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +14 -6
  104. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +6 -2
  105. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +23 -29
  106. data/bootstrap.gemspec +3 -3
  107. data/lib/bootstrap/engine.rb +17 -2
  108. data/lib/bootstrap/version.rb +2 -2
  109. data/tasks/updater/js.rb +10 -5
  110. data/tasks/updater/network.rb +2 -2
  111. data/tasks/updater/scss.rb +2 -2
  112. data/tasks/updater.rb +2 -2
  113. data/test/dummy_rails/config/application.rb +0 -2
  114. data/test/dummy_rails/public/favicon.ico +0 -0
  115. data/test/gemfiles/rails_4_2.gemfile +2 -1
  116. data/test/gemfiles/rails_5_0.gemfile +1 -2
  117. data/test/gemfiles/rails_5_1.gemfile +1 -2
  118. data/test/gemfiles/rails_5_2.gemfile +7 -0
  119. data/test/gemfiles/rails_6_0.gemfile +1 -1
  120. data/test/gemfiles/rails_6_1.gemfile +1 -1
  121. data/test/gemfiles/rails_7_0_dartsass.gemfile +7 -0
  122. data/test/gemfiles/rails_7_0_sassc.gemfile +7 -0
  123. data/test/rails_test.rb +0 -5
  124. data/test/test_helper.rb +3 -2
  125. metadata +49 -29
  126. data/.travis.yml +0 -32
  127. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +0 -18
@@ -1,182 +1,94 @@
1
1
  /*!
2
- * Bootstrap popover.js v5.1.3 (https://getbootstrap.com/)
3
- * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
2
+ * Bootstrap popover.js v5.3.5 (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('./tooltip.js')) :
8
- typeof define === 'function' && define.amd ? define(['./tooltip'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Tooltip));
10
- })(this, (function (Tooltip) { 'use strict';
11
-
12
- const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
-
14
- const Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./tooltip.js'), require('./util/index.js')) :
8
+ typeof define === 'function' && define.amd ? define(['./tooltip', './util/index'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Tooltip, global.Index));
10
+ })(this, (function (Tooltip, index_js) { 'use strict';
15
11
 
16
12
  /**
17
13
  * --------------------------------------------------------------------------
18
- * Bootstrap (v5.1.3): util/index.js
14
+ * Bootstrap popover.js
19
15
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
20
16
  * --------------------------------------------------------------------------
21
17
  */
22
18
 
23
- const getjQuery = () => {
24
- const {
25
- jQuery
26
- } = window;
27
-
28
- if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
29
- return jQuery;
30
- }
31
-
32
- return null;
33
- };
34
-
35
- const DOMContentLoadedCallbacks = [];
36
-
37
- const onDOMContentLoaded = callback => {
38
- if (document.readyState === 'loading') {
39
- // add listener on the first call when the document is in loading state
40
- if (!DOMContentLoadedCallbacks.length) {
41
- document.addEventListener('DOMContentLoaded', () => {
42
- DOMContentLoadedCallbacks.forEach(callback => callback());
43
- });
44
- }
45
-
46
- DOMContentLoadedCallbacks.push(callback);
47
- } else {
48
- callback();
49
- }
50
- };
51
-
52
- const defineJQueryPlugin = plugin => {
53
- onDOMContentLoaded(() => {
54
- const $ = getjQuery();
55
- /* istanbul ignore if */
56
-
57
- if ($) {
58
- const name = plugin.NAME;
59
- const JQUERY_NO_CONFLICT = $.fn[name];
60
- $.fn[name] = plugin.jQueryInterface;
61
- $.fn[name].Constructor = plugin;
62
19
 
63
- $.fn[name].noConflict = () => {
64
- $.fn[name] = JQUERY_NO_CONFLICT;
65
- return plugin.jQueryInterface;
66
- };
67
- }
68
- });
69
- };
70
-
71
- /**
72
- * --------------------------------------------------------------------------
73
- * Bootstrap (v5.1.3): popover.js
74
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
75
- * --------------------------------------------------------------------------
76
- */
77
20
  /**
78
- * ------------------------------------------------------------------------
79
21
  * Constants
80
- * ------------------------------------------------------------------------
81
22
  */
82
23
 
83
24
  const NAME = 'popover';
84
- const DATA_KEY = 'bs.popover';
85
- const EVENT_KEY = `.${DATA_KEY}`;
86
- const CLASS_PREFIX = 'bs-popover';
87
- const Default = { ...Tooltip__default.default.Default,
88
- placement: 'right',
89
- offset: [0, 8],
90
- trigger: 'click',
25
+ const SELECTOR_TITLE = '.popover-header';
26
+ const SELECTOR_CONTENT = '.popover-body';
27
+ const Default = {
28
+ ...Tooltip.Default,
91
29
  content: '',
92
- template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
93
- };
94
- const DefaultType = { ...Tooltip__default.default.DefaultType,
95
- content: '(string|element|function)'
30
+ offset: [0, 8],
31
+ placement: 'right',
32
+ template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>',
33
+ trigger: 'click'
96
34
  };
97
- const Event = {
98
- HIDE: `hide${EVENT_KEY}`,
99
- HIDDEN: `hidden${EVENT_KEY}`,
100
- SHOW: `show${EVENT_KEY}`,
101
- SHOWN: `shown${EVENT_KEY}`,
102
- INSERTED: `inserted${EVENT_KEY}`,
103
- CLICK: `click${EVENT_KEY}`,
104
- FOCUSIN: `focusin${EVENT_KEY}`,
105
- FOCUSOUT: `focusout${EVENT_KEY}`,
106
- MOUSEENTER: `mouseenter${EVENT_KEY}`,
107
- MOUSELEAVE: `mouseleave${EVENT_KEY}`
35
+ const DefaultType = {
36
+ ...Tooltip.DefaultType,
37
+ content: '(null|string|element|function)'
108
38
  };
109
- const SELECTOR_TITLE = '.popover-header';
110
- const SELECTOR_CONTENT = '.popover-body';
39
+
111
40
  /**
112
- * ------------------------------------------------------------------------
113
- * Class Definition
114
- * ------------------------------------------------------------------------
41
+ * Class definition
115
42
  */
116
43
 
117
- class Popover extends Tooltip__default.default {
44
+ class Popover extends Tooltip {
118
45
  // Getters
119
46
  static get Default() {
120
47
  return Default;
121
48
  }
122
-
49
+ static get DefaultType() {
50
+ return DefaultType;
51
+ }
123
52
  static get NAME() {
124
53
  return NAME;
125
54
  }
126
55
 
127
- static get Event() {
128
- return Event;
56
+ // Overrides
57
+ _isWithContent() {
58
+ return this._getTitle() || this._getContent();
129
59
  }
130
60
 
131
- static get DefaultType() {
132
- return DefaultType;
133
- } // Overrides
134
-
135
-
136
- isWithContent() {
137
- return this.getTitle() || this._getContent();
61
+ // Private
62
+ _getContentForTemplate() {
63
+ return {
64
+ [SELECTOR_TITLE]: this._getTitle(),
65
+ [SELECTOR_CONTENT]: this._getContent()
66
+ };
138
67
  }
139
-
140
- setContent(tip) {
141
- this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE);
142
-
143
- this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT);
144
- } // Private
145
-
146
-
147
68
  _getContent() {
148
69
  return this._resolvePossibleFunction(this._config.content);
149
70
  }
150
71
 
151
- _getBasicClassPrefix() {
152
- return CLASS_PREFIX;
153
- } // Static
154
-
155
-
72
+ // Static
156
73
  static jQueryInterface(config) {
157
74
  return this.each(function () {
158
75
  const data = Popover.getOrCreateInstance(this, config);
159
-
160
- if (typeof config === 'string') {
161
- if (typeof data[config] === 'undefined') {
162
- throw new TypeError(`No method named "${config}"`);
163
- }
164
-
165
- data[config]();
76
+ if (typeof config !== 'string') {
77
+ return;
78
+ }
79
+ if (typeof data[config] === 'undefined') {
80
+ throw new TypeError(`No method named "${config}"`);
166
81
  }
82
+ data[config]();
167
83
  });
168
84
  }
169
-
170
85
  }
86
+
171
87
  /**
172
- * ------------------------------------------------------------------------
173
88
  * jQuery
174
- * ------------------------------------------------------------------------
175
- * add .Popover to jQuery only if jQuery is present
176
89
  */
177
90
 
178
-
179
- defineJQueryPlugin(Popover);
91
+ index_js.defineJQueryPlugin(Popover);
180
92
 
181
93
  return Popover;
182
94