bootstrap 5.1.1 → 5.2.0

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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap/alert.js +18 -153
  4. data/assets/javascripts/bootstrap/base-component.js +44 -127
  5. data/assets/javascripts/bootstrap/button.js +16 -80
  6. data/assets/javascripts/bootstrap/carousel.js +225 -497
  7. data/assets/javascripts/bootstrap/collapse.js +79 -262
  8. data/assets/javascripts/bootstrap/dom/data.js +6 -8
  9. data/assets/javascripts/bootstrap/dom/event-handler.js +95 -133
  10. data/assets/javascripts/bootstrap/dom/manipulator.js +25 -29
  11. data/assets/javascripts/bootstrap/dom/selector-engine.js +17 -59
  12. data/assets/javascripts/bootstrap/dropdown.js +124 -342
  13. data/assets/javascripts/bootstrap/modal.js +122 -767
  14. data/assets/javascripts/bootstrap/offcanvas.js +102 -671
  15. data/assets/javascripts/bootstrap/popover.js +42 -124
  16. data/assets/javascripts/bootstrap/scrollspy.js +186 -269
  17. data/assets/javascripts/bootstrap/tab.js +222 -221
  18. data/assets/javascripts/bootstrap/toast.js +41 -227
  19. data/assets/javascripts/bootstrap/tooltip.js +283 -629
  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 +16 -7
  31. data/assets/javascripts/bootstrap.js +2094 -1891
  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 +52 -24
  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 +3 -0
  41. data/assets/stylesheets/bootstrap/_buttons.scss +97 -22
  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 +83 -75
  46. data/assets/stylesheets/bootstrap/_functions.scss +7 -7
  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 +44 -27
  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 +91 -150
  54. data/assets/stylesheets/bootstrap/_offcanvas.scss +119 -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 +38 -25
  63. data/assets/stylesheets/bootstrap/_toasts.scss +35 -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 +118 -124
  68. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +3 -6
  69. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +14 -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 +2 -1
  73. data/assets/stylesheets/bootstrap/forms/_input-group.scss +15 -7
  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 +8 -0
  85. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
  86. data/assets/stylesheets/bootstrap/mixins/_grid.scss +13 -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 +12 -4
  91. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +1 -1
  92. data/bootstrap.gemspec +1 -1
  93. data/lib/bootstrap/version.rb +2 -2
  94. data/tasks/updater/js.rb +9 -4
  95. metadata +16 -4
@@ -0,0 +1,155 @@
1
+ /*!
2
+ * Bootstrap swipe.js v5.2.0 (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.0): 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.0 (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.0): 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,19 +1,28 @@
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
4
- //= require ./bootstrap/base-component
5
5
  //= require ./bootstrap/dom/manipulator
6
+ //= require ./bootstrap/util/config
7
+ //= require ./bootstrap/base-component
8
+ //= require ./bootstrap/util/component-functions
9
+ //= require ./bootstrap/alert
10
+ //= require ./bootstrap/button
6
11
  //= require ./bootstrap/dom/selector-engine
7
- //= require ./bootstrap/scrollspy
12
+ //= require ./bootstrap/util/swipe
8
13
  //= require ./bootstrap/carousel
9
- //= require ./bootstrap/alert
14
+ //= require ./bootstrap/collapse
15
+ //= require ./bootstrap/dropdown
16
+ //= require ./bootstrap/util/backdrop
17
+ //= require ./bootstrap/util/focustrap
18
+ //= require ./bootstrap/util/scrollbar
10
19
  //= require ./bootstrap/modal
20
+ //= require ./bootstrap/offcanvas
21
+ //= require ./bootstrap/util/sanitizer
22
+ //= require ./bootstrap/util/template-factory
11
23
  //= require ./bootstrap/tooltip
12
24
  //= require ./bootstrap/popover
13
- //= require ./bootstrap/button
14
- //= require ./bootstrap/collapse
25
+ //= require ./bootstrap/scrollspy
15
26
  //= require ./bootstrap/tab
16
- //= require ./bootstrap/offcanvas
17
- //= require ./bootstrap/dropdown
18
27
  //= require ./bootstrap/toast
19
28
  //= require ./bootstrap-global-this-undefine