bootstrap 5.1.3 → 5.2.2

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 +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 +36 -218
  19. data/assets/javascripts/bootstrap/tooltip.js +280 -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 +17 -8
  31. data/assets/javascripts/bootstrap.js +2093 -1881
  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 +125 -29
  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 +38 -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. data/tasks/updater.rb +2 -2
  95. metadata +16 -4
@@ -0,0 +1,155 @@
1
+ /*!
2
+ * Bootstrap swipe.js v5.2.2 (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.2): 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.2 (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.2): 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
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
- //= require ./bootstrap/button
7
- //= require ./bootstrap/dom/manipulator
8
10
  //= require ./bootstrap/dom/selector-engine
9
- //= require ./bootstrap/carousel
10
- //= require ./bootstrap/collapse
11
- //= require ./bootstrap/dropdown
12
- //= require ./bootstrap/modal
13
- //= require ./bootstrap/offcanvas
11
+ //= require ./bootstrap/util/focustrap
12
+ //= require ./bootstrap/util/sanitizer
13
+ //= require ./bootstrap/util/template-factory
14
14
  //= require ./bootstrap/tooltip
15
15
  //= require ./bootstrap/popover
16
+ //= require ./bootstrap/util/scrollbar
17
+ //= require ./bootstrap/util/swipe
18
+ //= require ./bootstrap/util/backdrop
19
+ //= require ./bootstrap/button
20
+ //= require ./bootstrap/modal
21
+ //= require ./bootstrap/toast
22
+ //= require ./bootstrap/offcanvas
23
+ //= require ./bootstrap/collapse
16
24
  //= require ./bootstrap/scrollspy
25
+ //= require ./bootstrap/carousel
17
26
  //= require ./bootstrap/tab
18
- //= require ./bootstrap/toast
27
+ //= require ./bootstrap/dropdown
19
28
  //= require ./bootstrap-global-this-undefine