bootstrap 5.1.3 → 5.2.1

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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -4
  3. data/assets/javascripts/bootstrap/alert.js +11 -146
  4. data/assets/javascripts/bootstrap/base-component.js +37 -120
  5. data/assets/javascripts/bootstrap/button.js +10 -74
  6. data/assets/javascripts/bootstrap/carousel.js +213 -485
  7. data/assets/javascripts/bootstrap/collapse.js +65 -249
  8. data/assets/javascripts/bootstrap/dom/data.js +3 -5
  9. data/assets/javascripts/bootstrap/dom/event-handler.js +94 -132
  10. data/assets/javascripts/bootstrap/dom/manipulator.js +23 -27
  11. data/assets/javascripts/bootstrap/dom/selector-engine.js +16 -58
  12. data/assets/javascripts/bootstrap/dropdown.js +103 -317
  13. data/assets/javascripts/bootstrap/modal.js +107 -749
  14. data/assets/javascripts/bootstrap/offcanvas.js +90 -659
  15. data/assets/javascripts/bootstrap/popover.js +36 -118
  16. data/assets/javascripts/bootstrap/scrollspy.js +183 -262
  17. data/assets/javascripts/bootstrap/tab.js +215 -214
  18. data/assets/javascripts/bootstrap/toast.js +28 -214
  19. data/assets/javascripts/bootstrap/tooltip.js +272 -611
  20. data/assets/javascripts/bootstrap/util/backdrop.js +165 -0
  21. data/assets/javascripts/bootstrap/util/component-functions.js +46 -0
  22. data/assets/javascripts/bootstrap/util/config.js +79 -0
  23. data/assets/javascripts/bootstrap/util/focustrap.js +129 -0
  24. data/assets/javascripts/bootstrap/util/index.js +350 -0
  25. data/assets/javascripts/bootstrap/util/sanitizer.js +122 -0
  26. data/assets/javascripts/bootstrap/util/scrollbar.js +138 -0
  27. data/assets/javascripts/bootstrap/util/swipe.js +155 -0
  28. data/assets/javascripts/bootstrap/util/template-factory.js +177 -0
  29. data/assets/javascripts/bootstrap-global-this-define.js +1 -1
  30. data/assets/javascripts/bootstrap-sprockets.js +10 -1
  31. data/assets/javascripts/bootstrap.js +2077 -1859
  32. data/assets/javascripts/bootstrap.min.js +3 -3
  33. data/assets/stylesheets/_bootstrap-grid.scss +3 -6
  34. data/assets/stylesheets/_bootstrap-reboot.scss +3 -7
  35. data/assets/stylesheets/_bootstrap.scss +4 -6
  36. data/assets/stylesheets/bootstrap/_accordion.scss +56 -25
  37. data/assets/stylesheets/bootstrap/_alert.scss +18 -4
  38. data/assets/stylesheets/bootstrap/_badge.scss +14 -5
  39. data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -10
  40. data/assets/stylesheets/bootstrap/_button-group.scss +4 -1
  41. data/assets/stylesheets/bootstrap/_buttons.scss +120 -30
  42. data/assets/stylesheets/bootstrap/_card.scss +55 -37
  43. data/assets/stylesheets/bootstrap/_close.scss +1 -1
  44. data/assets/stylesheets/bootstrap/_containers.scss +1 -1
  45. data/assets/stylesheets/bootstrap/_dropdown.scss +85 -76
  46. data/assets/stylesheets/bootstrap/_functions.scss +8 -8
  47. data/assets/stylesheets/bootstrap/_grid.scss +3 -3
  48. data/assets/stylesheets/bootstrap/_helpers.scss +1 -0
  49. data/assets/stylesheets/bootstrap/_list-group.scss +48 -30
  50. data/assets/stylesheets/bootstrap/_maps.scss +54 -0
  51. data/assets/stylesheets/bootstrap/_modal.scss +71 -43
  52. data/assets/stylesheets/bootstrap/_nav.scss +53 -20
  53. data/assets/stylesheets/bootstrap/_navbar.scss +93 -150
  54. data/assets/stylesheets/bootstrap/_offcanvas.scss +120 -59
  55. data/assets/stylesheets/bootstrap/_pagination.scss +66 -21
  56. data/assets/stylesheets/bootstrap/_placeholders.scss +1 -1
  57. data/assets/stylesheets/bootstrap/_popover.scss +90 -52
  58. data/assets/stylesheets/bootstrap/_progress.scss +20 -9
  59. data/assets/stylesheets/bootstrap/_reboot.scss +25 -40
  60. data/assets/stylesheets/bootstrap/_root.scss +40 -21
  61. data/assets/stylesheets/bootstrap/_spinners.scss +38 -22
  62. data/assets/stylesheets/bootstrap/_tables.scss +32 -23
  63. data/assets/stylesheets/bootstrap/_toasts.scss +36 -16
  64. data/assets/stylesheets/bootstrap/_tooltip.scss +61 -56
  65. data/assets/stylesheets/bootstrap/_type.scss +2 -0
  66. data/assets/stylesheets/bootstrap/_utilities.scss +43 -26
  67. data/assets/stylesheets/bootstrap/_variables.scss +128 -135
  68. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +3 -6
  69. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +15 -3
  70. data/assets/stylesheets/bootstrap/forms/_form-check.scss +28 -5
  71. data/assets/stylesheets/bootstrap/forms/_form-control.scss +12 -37
  72. data/assets/stylesheets/bootstrap/forms/_form-select.scss +0 -1
  73. data/assets/stylesheets/bootstrap/forms/_input-group.scss +19 -8
  74. data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +10 -0
  75. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +2 -2
  76. data/assets/stylesheets/bootstrap/helpers/_position.scss +7 -1
  77. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +2 -2
  78. data/assets/stylesheets/bootstrap/helpers/_vr.scss +1 -1
  79. data/assets/stylesheets/bootstrap/mixins/_alert.scss +7 -3
  80. data/assets/stylesheets/bootstrap/mixins/_banner.scss +9 -0
  81. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +8 -8
  82. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +32 -95
  83. data/assets/stylesheets/bootstrap/mixins/_container.scss +4 -2
  84. data/assets/stylesheets/bootstrap/mixins/_forms.scss +18 -10
  85. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
  86. data/assets/stylesheets/bootstrap/mixins/_grid.scss +12 -12
  87. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +4 -25
  88. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  89. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +12 -9
  90. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +13 -5
  91. data/bootstrap.gemspec +1 -1
  92. data/lib/bootstrap/version.rb +2 -2
  93. data/tasks/updater/js.rb +10 -5
  94. metadata +16 -4
@@ -0,0 +1,155 @@
1
+ /*!
2
+ * Bootstrap swipe.js v5.2.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./config'), require('../dom/event-handler'), require('./index')) :
8
+ typeof define === 'function' && define.amd ? define(['./config', '../dom/event-handler', './index'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Swipe = factory(global.Config, global.EventHandler, global.Index));
10
+ })(this, (function (Config, EventHandler, index) { 'use strict';
11
+
12
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
+
14
+ const Config__default = /*#__PURE__*/_interopDefaultLegacy(Config);
15
+ const EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
16
+
17
+ /**
18
+ * --------------------------------------------------------------------------
19
+ * Bootstrap (v5.2.1): util/swipe.js
20
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
21
+ * --------------------------------------------------------------------------
22
+ */
23
+ /**
24
+ * Constants
25
+ */
26
+
27
+ const NAME = 'swipe';
28
+ const EVENT_KEY = '.bs.swipe';
29
+ const EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`;
30
+ const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`;
31
+ const EVENT_TOUCHEND = `touchend${EVENT_KEY}`;
32
+ const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`;
33
+ const EVENT_POINTERUP = `pointerup${EVENT_KEY}`;
34
+ const POINTER_TYPE_TOUCH = 'touch';
35
+ const POINTER_TYPE_PEN = 'pen';
36
+ const CLASS_NAME_POINTER_EVENT = 'pointer-event';
37
+ const SWIPE_THRESHOLD = 40;
38
+ const Default = {
39
+ endCallback: null,
40
+ leftCallback: null,
41
+ rightCallback: null
42
+ };
43
+ const DefaultType = {
44
+ endCallback: '(function|null)',
45
+ leftCallback: '(function|null)',
46
+ rightCallback: '(function|null)'
47
+ };
48
+ /**
49
+ * Class definition
50
+ */
51
+
52
+ class Swipe extends Config__default.default {
53
+ constructor(element, config) {
54
+ super();
55
+ this._element = element;
56
+
57
+ if (!element || !Swipe.isSupported()) {
58
+ return;
59
+ }
60
+
61
+ this._config = this._getConfig(config);
62
+ this._deltaX = 0;
63
+ this._supportPointerEvents = Boolean(window.PointerEvent);
64
+
65
+ this._initEvents();
66
+ } // Getters
67
+
68
+
69
+ static get Default() {
70
+ return Default;
71
+ }
72
+
73
+ static get DefaultType() {
74
+ return DefaultType;
75
+ }
76
+
77
+ static get NAME() {
78
+ return NAME;
79
+ } // Public
80
+
81
+
82
+ dispose() {
83
+ EventHandler__default.default.off(this._element, EVENT_KEY);
84
+ } // Private
85
+
86
+
87
+ _start(event) {
88
+ if (!this._supportPointerEvents) {
89
+ this._deltaX = event.touches[0].clientX;
90
+ return;
91
+ }
92
+
93
+ if (this._eventIsPointerPenTouch(event)) {
94
+ this._deltaX = event.clientX;
95
+ }
96
+ }
97
+
98
+ _end(event) {
99
+ if (this._eventIsPointerPenTouch(event)) {
100
+ this._deltaX = event.clientX - this._deltaX;
101
+ }
102
+
103
+ this._handleSwipe();
104
+
105
+ index.execute(this._config.endCallback);
106
+ }
107
+
108
+ _move(event) {
109
+ this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;
110
+ }
111
+
112
+ _handleSwipe() {
113
+ const absDeltaX = Math.abs(this._deltaX);
114
+
115
+ if (absDeltaX <= SWIPE_THRESHOLD) {
116
+ return;
117
+ }
118
+
119
+ const direction = absDeltaX / this._deltaX;
120
+ this._deltaX = 0;
121
+
122
+ if (!direction) {
123
+ return;
124
+ }
125
+
126
+ index.execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
127
+ }
128
+
129
+ _initEvents() {
130
+ if (this._supportPointerEvents) {
131
+ EventHandler__default.default.on(this._element, EVENT_POINTERDOWN, event => this._start(event));
132
+ EventHandler__default.default.on(this._element, EVENT_POINTERUP, event => this._end(event));
133
+
134
+ this._element.classList.add(CLASS_NAME_POINTER_EVENT);
135
+ } else {
136
+ EventHandler__default.default.on(this._element, EVENT_TOUCHSTART, event => this._start(event));
137
+ EventHandler__default.default.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));
138
+ EventHandler__default.default.on(this._element, EVENT_TOUCHEND, event => this._end(event));
139
+ }
140
+ }
141
+
142
+ _eventIsPointerPenTouch(event) {
143
+ return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
144
+ } // Static
145
+
146
+
147
+ static isSupported() {
148
+ return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
149
+ }
150
+
151
+ }
152
+
153
+ return Swipe;
154
+
155
+ }));
@@ -0,0 +1,177 @@
1
+ /*!
2
+ * Bootstrap template-factory.js v5.2.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ */
6
+ (function (global, factory) {
7
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./sanitizer'), require('./index'), require('../dom/selector-engine'), require('./config')) :
8
+ typeof define === 'function' && define.amd ? define(['./sanitizer', './index', '../dom/selector-engine', './config'], factory) :
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.TemplateFactory = factory(global.Sanitizer, global.Index, global.SelectorEngine, global.Config));
10
+ })(this, (function (sanitizer, index, SelectorEngine, Config) { 'use strict';
11
+
12
+ const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e };
13
+
14
+ const SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
15
+ const Config__default = /*#__PURE__*/_interopDefaultLegacy(Config);
16
+
17
+ /**
18
+ * --------------------------------------------------------------------------
19
+ * Bootstrap (v5.2.1): util/template-factory.js
20
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
21
+ * --------------------------------------------------------------------------
22
+ */
23
+ /**
24
+ * Constants
25
+ */
26
+
27
+ const NAME = 'TemplateFactory';
28
+ const Default = {
29
+ allowList: sanitizer.DefaultAllowlist,
30
+ content: {},
31
+ // { selector : text , selector2 : text2 , }
32
+ extraClass: '',
33
+ html: false,
34
+ sanitize: true,
35
+ sanitizeFn: null,
36
+ template: '<div></div>'
37
+ };
38
+ const DefaultType = {
39
+ allowList: 'object',
40
+ content: 'object',
41
+ extraClass: '(string|function)',
42
+ html: 'boolean',
43
+ sanitize: 'boolean',
44
+ sanitizeFn: '(null|function)',
45
+ template: 'string'
46
+ };
47
+ const DefaultContentType = {
48
+ entry: '(string|element|function|null)',
49
+ selector: '(string|element)'
50
+ };
51
+ /**
52
+ * Class definition
53
+ */
54
+
55
+ class TemplateFactory extends Config__default.default {
56
+ constructor(config) {
57
+ super();
58
+ this._config = this._getConfig(config);
59
+ } // Getters
60
+
61
+
62
+ static get Default() {
63
+ return Default;
64
+ }
65
+
66
+ static get DefaultType() {
67
+ return DefaultType;
68
+ }
69
+
70
+ static get NAME() {
71
+ return NAME;
72
+ } // Public
73
+
74
+
75
+ getContent() {
76
+ return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);
77
+ }
78
+
79
+ hasContent() {
80
+ return this.getContent().length > 0;
81
+ }
82
+
83
+ changeContent(content) {
84
+ this._checkContent(content);
85
+
86
+ this._config.content = { ...this._config.content,
87
+ ...content
88
+ };
89
+ return this;
90
+ }
91
+
92
+ toHtml() {
93
+ const templateWrapper = document.createElement('div');
94
+ templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
95
+
96
+ for (const [selector, text] of Object.entries(this._config.content)) {
97
+ this._setContent(templateWrapper, text, selector);
98
+ }
99
+
100
+ const template = templateWrapper.children[0];
101
+
102
+ const extraClass = this._resolvePossibleFunction(this._config.extraClass);
103
+
104
+ if (extraClass) {
105
+ template.classList.add(...extraClass.split(' '));
106
+ }
107
+
108
+ return template;
109
+ } // Private
110
+
111
+
112
+ _typeCheckConfig(config) {
113
+ super._typeCheckConfig(config);
114
+
115
+ this._checkContent(config.content);
116
+ }
117
+
118
+ _checkContent(arg) {
119
+ for (const [selector, content] of Object.entries(arg)) {
120
+ super._typeCheckConfig({
121
+ selector,
122
+ entry: content
123
+ }, DefaultContentType);
124
+ }
125
+ }
126
+
127
+ _setContent(template, content, selector) {
128
+ const templateElement = SelectorEngine__default.default.findOne(selector, template);
129
+
130
+ if (!templateElement) {
131
+ return;
132
+ }
133
+
134
+ content = this._resolvePossibleFunction(content);
135
+
136
+ if (!content) {
137
+ templateElement.remove();
138
+ return;
139
+ }
140
+
141
+ if (index.isElement(content)) {
142
+ this._putElementInTemplate(index.getElement(content), templateElement);
143
+
144
+ return;
145
+ }
146
+
147
+ if (this._config.html) {
148
+ templateElement.innerHTML = this._maybeSanitize(content);
149
+ return;
150
+ }
151
+
152
+ templateElement.textContent = content;
153
+ }
154
+
155
+ _maybeSanitize(arg) {
156
+ return this._config.sanitize ? sanitizer.sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
157
+ }
158
+
159
+ _resolvePossibleFunction(arg) {
160
+ return typeof arg === 'function' ? arg(this) : arg;
161
+ }
162
+
163
+ _putElementInTemplate(element, templateElement) {
164
+ if (this._config.html) {
165
+ templateElement.innerHTML = '';
166
+ templateElement.append(element);
167
+ return;
168
+ }
169
+
170
+ templateElement.textContent = element.textContent;
171
+ }
172
+
173
+ }
174
+
175
+ return TemplateFactory;
176
+
177
+ }));
@@ -1,6 +1,6 @@
1
1
  // Set a `globalThis` so that bootstrap components are defined on window.bootstrap instead of window.
2
2
  window['bootstrap'] = {
3
- Popper: window.Popper,
3
+ "@popperjs/core": window.Popper,
4
4
  _originalGlobalThis: window['globalThis']
5
5
  };
6
6
  window['globalThis'] = window['bootstrap'];
@@ -1,16 +1,25 @@
1
1
  //= require ./bootstrap-global-this-define
2
2
  //= require ./bootstrap/dom/data
3
+ //= require ./bootstrap/util/index
3
4
  //= require ./bootstrap/dom/event-handler
5
+ //= require ./bootstrap/dom/manipulator
6
+ //= require ./bootstrap/util/config
4
7
  //= require ./bootstrap/base-component
8
+ //= require ./bootstrap/util/component-functions
5
9
  //= require ./bootstrap/alert
6
10
  //= require ./bootstrap/button
7
- //= require ./bootstrap/dom/manipulator
8
11
  //= require ./bootstrap/dom/selector-engine
12
+ //= require ./bootstrap/util/swipe
9
13
  //= require ./bootstrap/carousel
10
14
  //= require ./bootstrap/collapse
11
15
  //= require ./bootstrap/dropdown
16
+ //= require ./bootstrap/util/backdrop
17
+ //= require ./bootstrap/util/focustrap
18
+ //= require ./bootstrap/util/scrollbar
12
19
  //= require ./bootstrap/modal
13
20
  //= require ./bootstrap/offcanvas
21
+ //= require ./bootstrap/util/sanitizer
22
+ //= require ./bootstrap/util/template-factory
14
23
  //= require ./bootstrap/tooltip
15
24
  //= require ./bootstrap/popover
16
25
  //= require ./bootstrap/scrollspy