bootstrap 4.5.2 → 5.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap-sprockets.js +12 -8
  4. data/assets/javascripts/bootstrap.js +1876 -1220
  5. data/assets/javascripts/bootstrap.min.js +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +133 -48
  7. data/assets/javascripts/bootstrap/button.js +56 -123
  8. data/assets/javascripts/bootstrap/carousel.js +268 -129
  9. data/assets/javascripts/bootstrap/collapse.js +285 -106
  10. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  11. data/assets/javascripts/bootstrap/dom/event-handler.js +311 -0
  12. data/assets/javascripts/bootstrap/dom/manipulator.js +100 -0
  13. data/assets/javascripts/bootstrap/dom/polyfill.js +110 -0
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  15. data/assets/javascripts/bootstrap/dropdown.js +235 -161
  16. data/assets/javascripts/bootstrap/modal.js +322 -193
  17. data/assets/javascripts/bootstrap/popover.js +72 -41
  18. data/assets/javascripts/bootstrap/scrollspy.js +151 -56
  19. data/assets/javascripts/bootstrap/tab.js +151 -64
  20. data/assets/javascripts/bootstrap/toast.js +163 -65
  21. data/assets/javascripts/bootstrap/tooltip.js +336 -155
  22. data/assets/stylesheets/_bootstrap-grid.scss +51 -15
  23. data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
  24. data/assets/stylesheets/_bootstrap.scss +14 -8
  25. data/assets/stylesheets/bootstrap/_alert.scss +3 -3
  26. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  27. data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -17
  28. data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
  29. data/assets/stylesheets/bootstrap/_buttons.scss +27 -45
  30. data/assets/stylesheets/bootstrap/_card.scss +18 -64
  31. data/assets/stylesheets/bootstrap/_carousel.scss +13 -15
  32. data/assets/stylesheets/bootstrap/_close.scss +9 -13
  33. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  34. data/assets/stylesheets/bootstrap/_dropdown.scss +10 -7
  35. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  36. data/assets/stylesheets/bootstrap/_functions.scss +82 -20
  37. data/assets/stylesheets/bootstrap/_grid.scss +3 -54
  38. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  39. data/assets/stylesheets/bootstrap/_list-group.scss +6 -3
  40. data/assets/stylesheets/bootstrap/_mixins.scss +6 -12
  41. data/assets/stylesheets/bootstrap/_modal.scss +34 -39
  42. data/assets/stylesheets/bootstrap/_nav.scss +8 -8
  43. data/assets/stylesheets/bootstrap/_navbar.scss +42 -74
  44. data/assets/stylesheets/bootstrap/_pagination.scss +7 -20
  45. data/assets/stylesheets/bootstrap/_popover.scss +5 -5
  46. data/assets/stylesheets/bootstrap/_progress.scss +2 -4
  47. data/assets/stylesheets/bootstrap/_reboot.scss +300 -164
  48. data/assets/stylesheets/bootstrap/_root.scss +5 -9
  49. data/assets/stylesheets/bootstrap/_spinners.scss +2 -2
  50. data/assets/stylesheets/bootstrap/_tables.scss +80 -114
  51. data/assets/stylesheets/bootstrap/_toasts.scss +2 -4
  52. data/assets/stylesheets/bootstrap/_tooltip.scss +5 -5
  53. data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
  54. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  55. data/assets/stylesheets/bootstrap/_utilities.scss +503 -18
  56. data/assets/stylesheets/bootstrap/_variables.scss +544 -424
  57. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  58. data/assets/stylesheets/bootstrap/forms/_form-check.scss +142 -0
  59. data/assets/stylesheets/bootstrap/forms/_form-control.scss +116 -0
  60. data/assets/stylesheets/bootstrap/forms/_form-file.scss +91 -0
  61. data/assets/stylesheets/bootstrap/forms/_form-range.scss +136 -0
  62. data/assets/stylesheets/bootstrap/forms/_form-select.scss +82 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  64. data/assets/stylesheets/bootstrap/forms/_input-group.scss +140 -0
  65. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  66. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  67. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  68. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  69. data/assets/stylesheets/bootstrap/helpers/_embed.scss +31 -0
  70. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  71. data/assets/stylesheets/bootstrap/helpers/_screenreaders.scss +8 -0
  72. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  73. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  74. data/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -4
  75. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -8
  76. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +62 -47
  77. data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
  78. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  79. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  80. data/assets/stylesheets/bootstrap/mixins/_forms.scss +22 -67
  81. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
  82. data/assets/stylesheets/bootstrap/mixins/_grid.scss +84 -32
  83. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  84. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -1
  85. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  86. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
  87. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  88. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +16 -22
  89. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  90. data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
  91. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
  92. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  93. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
  94. data/lib/bootstrap/version.rb +2 -2
  95. data/tasks/updater/js.rb +3 -3
  96. metadata +31 -39
  97. data/assets/javascripts/bootstrap/util.js +0 -192
  98. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  99. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -523
  100. data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
  101. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  102. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  103. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  104. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  105. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  106. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  107. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  108. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  109. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  110. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  111. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  112. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  113. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  114. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  115. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  116. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  117. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  118. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  119. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  120. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  121. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  122. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  123. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  124. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  125. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  126. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  127. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  128. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  129. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  130. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  131. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bootstrap
4
- VERSION = '4.5.2'
5
- BOOTSTRAP_SHA = '5f2480a90ab911babc53039835fe78c6fc12646d'
4
+ VERSION = '5.0.0.alpha1'
5
+ BOOTSTRAP_SHA = 'a1708ec2a38d331c4c9eacac08ce9c9839649476'
6
6
  end
@@ -29,13 +29,13 @@ class Updater
29
29
 
30
30
  def bootstrap_js_files
31
31
  @bootstrap_js_files ||= begin
32
- src_files = get_paths_by_type('js/src', /\.js$/) - %w[index.js tools/sanitizer.js]
32
+ src_files = get_paths_by_type('js/src', /\.js$/) - %w[util/index.js util/sanitizer.js]
33
33
  imports = Deps.new
34
34
  # Get the imports from the ES6 files to order requires correctly.
35
35
  read_files('js/src', src_files).each do |name, content|
36
36
  imports.add name,
37
- *content.scan(%r{import [a-zA-Z]* from '\./(\w+)})
38
- .flatten(1).map { |f| "#{f}.js" }
37
+ *content.scan(%r{import [a-zA-Z]* from '\./([\w/-]+)})
38
+ .flatten(1).map { |f| "#{f}.js" }.uniq
39
39
  end
40
40
  imports.tsort
41
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.2
4
+ version: 5.0.0.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Twitter, Inc.
@@ -247,6 +247,11 @@ files:
247
247
  - assets/javascripts/bootstrap/button.js
248
248
  - assets/javascripts/bootstrap/carousel.js
249
249
  - assets/javascripts/bootstrap/collapse.js
250
+ - assets/javascripts/bootstrap/dom/data.js
251
+ - assets/javascripts/bootstrap/dom/event-handler.js
252
+ - assets/javascripts/bootstrap/dom/manipulator.js
253
+ - assets/javascripts/bootstrap/dom/polyfill.js
254
+ - assets/javascripts/bootstrap/dom/selector-engine.js
250
255
  - assets/javascripts/bootstrap/dropdown.js
251
256
  - assets/javascripts/bootstrap/modal.js
252
257
  - assets/javascripts/bootstrap/popover.js
@@ -254,7 +259,6 @@ files:
254
259
  - assets/javascripts/bootstrap/tab.js
255
260
  - assets/javascripts/bootstrap/toast.js
256
261
  - assets/javascripts/bootstrap/tooltip.js
257
- - assets/javascripts/bootstrap/util.js
258
262
  - assets/stylesheets/_bootstrap-grid.scss
259
263
  - assets/stylesheets/_bootstrap-reboot.scss
260
264
  - assets/stylesheets/_bootstrap.scss
@@ -266,24 +270,20 @@ files:
266
270
  - assets/stylesheets/bootstrap/_card.scss
267
271
  - assets/stylesheets/bootstrap/_carousel.scss
268
272
  - assets/stylesheets/bootstrap/_close.scss
269
- - assets/stylesheets/bootstrap/_code.scss
270
- - assets/stylesheets/bootstrap/_custom-forms.scss
273
+ - assets/stylesheets/bootstrap/_containers.scss
271
274
  - assets/stylesheets/bootstrap/_dropdown.scss
272
275
  - assets/stylesheets/bootstrap/_forms.scss
273
276
  - assets/stylesheets/bootstrap/_functions.scss
274
277
  - assets/stylesheets/bootstrap/_grid.scss
278
+ - assets/stylesheets/bootstrap/_helpers.scss
275
279
  - assets/stylesheets/bootstrap/_images.scss
276
- - assets/stylesheets/bootstrap/_input-group.scss
277
- - assets/stylesheets/bootstrap/_jumbotron.scss
278
280
  - assets/stylesheets/bootstrap/_list-group.scss
279
- - assets/stylesheets/bootstrap/_media.scss
280
281
  - assets/stylesheets/bootstrap/_mixins.scss
281
282
  - assets/stylesheets/bootstrap/_modal.scss
282
283
  - assets/stylesheets/bootstrap/_nav.scss
283
284
  - assets/stylesheets/bootstrap/_navbar.scss
284
285
  - assets/stylesheets/bootstrap/_pagination.scss
285
286
  - assets/stylesheets/bootstrap/_popover.scss
286
- - assets/stylesheets/bootstrap/_print.scss
287
287
  - assets/stylesheets/bootstrap/_progress.scss
288
288
  - assets/stylesheets/bootstrap/_reboot.scss
289
289
  - assets/stylesheets/bootstrap/_root.scss
@@ -295,55 +295,47 @@ files:
295
295
  - assets/stylesheets/bootstrap/_type.scss
296
296
  - assets/stylesheets/bootstrap/_utilities.scss
297
297
  - assets/stylesheets/bootstrap/_variables.scss
298
+ - assets/stylesheets/bootstrap/bootstrap-utilities.scss
299
+ - assets/stylesheets/bootstrap/forms/_form-check.scss
300
+ - assets/stylesheets/bootstrap/forms/_form-control.scss
301
+ - assets/stylesheets/bootstrap/forms/_form-file.scss
302
+ - assets/stylesheets/bootstrap/forms/_form-range.scss
303
+ - assets/stylesheets/bootstrap/forms/_form-select.scss
304
+ - assets/stylesheets/bootstrap/forms/_form-text.scss
305
+ - assets/stylesheets/bootstrap/forms/_input-group.scss
306
+ - assets/stylesheets/bootstrap/forms/_labels.scss
307
+ - assets/stylesheets/bootstrap/forms/_validation.scss
308
+ - assets/stylesheets/bootstrap/helpers/_clearfix.scss
309
+ - assets/stylesheets/bootstrap/helpers/_colored-links.scss
310
+ - assets/stylesheets/bootstrap/helpers/_embed.scss
311
+ - assets/stylesheets/bootstrap/helpers/_position.scss
312
+ - assets/stylesheets/bootstrap/helpers/_screenreaders.scss
313
+ - assets/stylesheets/bootstrap/helpers/_stretched-link.scss
314
+ - assets/stylesheets/bootstrap/helpers/_text-truncation.scss
298
315
  - assets/stylesheets/bootstrap/mixins/_alert.scss
299
- - assets/stylesheets/bootstrap/mixins/_background-variant.scss
300
- - assets/stylesheets/bootstrap/mixins/_badge.scss
301
316
  - assets/stylesheets/bootstrap/mixins/_border-radius.scss
302
317
  - assets/stylesheets/bootstrap/mixins/_box-shadow.scss
303
318
  - assets/stylesheets/bootstrap/mixins/_breakpoints.scss
304
319
  - assets/stylesheets/bootstrap/mixins/_buttons.scss
305
320
  - assets/stylesheets/bootstrap/mixins/_caret.scss
306
321
  - assets/stylesheets/bootstrap/mixins/_clearfix.scss
322
+ - assets/stylesheets/bootstrap/mixins/_container.scss
307
323
  - assets/stylesheets/bootstrap/mixins/_deprecate.scss
308
- - assets/stylesheets/bootstrap/mixins/_float.scss
309
324
  - assets/stylesheets/bootstrap/mixins/_forms.scss
310
325
  - assets/stylesheets/bootstrap/mixins/_gradients.scss
311
- - assets/stylesheets/bootstrap/mixins/_grid-framework.scss
312
326
  - assets/stylesheets/bootstrap/mixins/_grid.scss
313
- - assets/stylesheets/bootstrap/mixins/_hover.scss
314
327
  - assets/stylesheets/bootstrap/mixins/_image.scss
315
328
  - assets/stylesheets/bootstrap/mixins/_list-group.scss
316
329
  - assets/stylesheets/bootstrap/mixins/_lists.scss
317
- - assets/stylesheets/bootstrap/mixins/_nav-divider.scss
318
330
  - assets/stylesheets/bootstrap/mixins/_pagination.scss
319
331
  - assets/stylesheets/bootstrap/mixins/_reset-text.scss
320
332
  - assets/stylesheets/bootstrap/mixins/_resize.scss
321
333
  - assets/stylesheets/bootstrap/mixins/_screen-reader.scss
322
- - assets/stylesheets/bootstrap/mixins/_size.scss
323
- - assets/stylesheets/bootstrap/mixins/_table-row.scss
324
- - assets/stylesheets/bootstrap/mixins/_text-emphasis.scss
325
- - assets/stylesheets/bootstrap/mixins/_text-hide.scss
334
+ - assets/stylesheets/bootstrap/mixins/_table-variants.scss
326
335
  - assets/stylesheets/bootstrap/mixins/_text-truncate.scss
327
336
  - assets/stylesheets/bootstrap/mixins/_transition.scss
328
- - assets/stylesheets/bootstrap/mixins/_visibility.scss
329
- - assets/stylesheets/bootstrap/utilities/_align.scss
330
- - assets/stylesheets/bootstrap/utilities/_background.scss
331
- - assets/stylesheets/bootstrap/utilities/_borders.scss
332
- - assets/stylesheets/bootstrap/utilities/_clearfix.scss
333
- - assets/stylesheets/bootstrap/utilities/_display.scss
334
- - assets/stylesheets/bootstrap/utilities/_embed.scss
335
- - assets/stylesheets/bootstrap/utilities/_flex.scss
336
- - assets/stylesheets/bootstrap/utilities/_float.scss
337
- - assets/stylesheets/bootstrap/utilities/_interactions.scss
338
- - assets/stylesheets/bootstrap/utilities/_overflow.scss
339
- - assets/stylesheets/bootstrap/utilities/_position.scss
340
- - assets/stylesheets/bootstrap/utilities/_screenreaders.scss
341
- - assets/stylesheets/bootstrap/utilities/_shadows.scss
342
- - assets/stylesheets/bootstrap/utilities/_sizing.scss
343
- - assets/stylesheets/bootstrap/utilities/_spacing.scss
344
- - assets/stylesheets/bootstrap/utilities/_stretched-link.scss
345
- - assets/stylesheets/bootstrap/utilities/_text.scss
346
- - assets/stylesheets/bootstrap/utilities/_visibility.scss
337
+ - assets/stylesheets/bootstrap/mixins/_utilities.scss
338
+ - assets/stylesheets/bootstrap/utilities/_api.scss
347
339
  - assets/stylesheets/bootstrap/vendor/_rfs.scss
348
340
  - bootstrap.gemspec
349
341
  - lib/bootstrap.rb
@@ -408,9 +400,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
408
400
  version: 2.3.3
409
401
  required_rubygems_version: !ruby/object:Gem::Requirement
410
402
  requirements:
411
- - - ">="
403
+ - - ">"
412
404
  - !ruby/object:Gem::Version
413
- version: '0'
405
+ version: 1.3.1
414
406
  requirements: []
415
407
  rubygems_version: 3.1.2
416
408
  signing_key:
@@ -1,192 +0,0 @@
1
- /*!
2
- * Bootstrap util.js v4.5.2 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 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('jquery')) :
8
- typeof define === 'function' && define.amd ? define(['jquery'], factory) :
9
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Util = factory(global.jQuery));
10
- }(this, (function ($) { 'use strict';
11
-
12
- $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;
13
-
14
- /**
15
- * --------------------------------------------------------------------------
16
- * Bootstrap (v4.5.2): util.js
17
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
18
- * --------------------------------------------------------------------------
19
- */
20
- /**
21
- * ------------------------------------------------------------------------
22
- * Private TransitionEnd Helpers
23
- * ------------------------------------------------------------------------
24
- */
25
-
26
- var TRANSITION_END = 'transitionend';
27
- var MAX_UID = 1000000;
28
- var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
29
-
30
- function toType(obj) {
31
- if (obj === null || typeof obj === 'undefined') {
32
- return "" + obj;
33
- }
34
-
35
- return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
36
- }
37
-
38
- function getSpecialTransitionEndEvent() {
39
- return {
40
- bindType: TRANSITION_END,
41
- delegateType: TRANSITION_END,
42
- handle: function handle(event) {
43
- if ($(event.target).is(this)) {
44
- return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
45
- }
46
-
47
- return undefined;
48
- }
49
- };
50
- }
51
-
52
- function transitionEndEmulator(duration) {
53
- var _this = this;
54
-
55
- var called = false;
56
- $(this).one(Util.TRANSITION_END, function () {
57
- called = true;
58
- });
59
- setTimeout(function () {
60
- if (!called) {
61
- Util.triggerTransitionEnd(_this);
62
- }
63
- }, duration);
64
- return this;
65
- }
66
-
67
- function setTransitionEndSupport() {
68
- $.fn.emulateTransitionEnd = transitionEndEmulator;
69
- $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
70
- }
71
- /**
72
- * --------------------------------------------------------------------------
73
- * Public Util Api
74
- * --------------------------------------------------------------------------
75
- */
76
-
77
-
78
- var Util = {
79
- TRANSITION_END: 'bsTransitionEnd',
80
- getUID: function getUID(prefix) {
81
- do {
82
- // eslint-disable-next-line no-bitwise
83
- prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
84
- } while (document.getElementById(prefix));
85
-
86
- return prefix;
87
- },
88
- getSelectorFromElement: function getSelectorFromElement(element) {
89
- var selector = element.getAttribute('data-target');
90
-
91
- if (!selector || selector === '#') {
92
- var hrefAttr = element.getAttribute('href');
93
- selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
94
- }
95
-
96
- try {
97
- return document.querySelector(selector) ? selector : null;
98
- } catch (err) {
99
- return null;
100
- }
101
- },
102
- getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
103
- if (!element) {
104
- return 0;
105
- } // Get transition-duration of the element
106
-
107
-
108
- var transitionDuration = $(element).css('transition-duration');
109
- var transitionDelay = $(element).css('transition-delay');
110
- var floatTransitionDuration = parseFloat(transitionDuration);
111
- var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
112
-
113
- if (!floatTransitionDuration && !floatTransitionDelay) {
114
- return 0;
115
- } // If multiple durations are defined, take the first
116
-
117
-
118
- transitionDuration = transitionDuration.split(',')[0];
119
- transitionDelay = transitionDelay.split(',')[0];
120
- return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
121
- },
122
- reflow: function reflow(element) {
123
- return element.offsetHeight;
124
- },
125
- triggerTransitionEnd: function triggerTransitionEnd(element) {
126
- $(element).trigger(TRANSITION_END);
127
- },
128
- // TODO: Remove in v5
129
- supportsTransitionEnd: function supportsTransitionEnd() {
130
- return Boolean(TRANSITION_END);
131
- },
132
- isElement: function isElement(obj) {
133
- return (obj[0] || obj).nodeType;
134
- },
135
- typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
136
- for (var property in configTypes) {
137
- if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
138
- var expectedTypes = configTypes[property];
139
- var value = config[property];
140
- var valueType = value && Util.isElement(value) ? 'element' : toType(value);
141
-
142
- if (!new RegExp(expectedTypes).test(valueType)) {
143
- throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
144
- }
145
- }
146
- }
147
- },
148
- findShadowRoot: function findShadowRoot(element) {
149
- if (!document.documentElement.attachShadow) {
150
- return null;
151
- } // Can find the shadow root otherwise it'll return the document
152
-
153
-
154
- if (typeof element.getRootNode === 'function') {
155
- var root = element.getRootNode();
156
- return root instanceof ShadowRoot ? root : null;
157
- }
158
-
159
- if (element instanceof ShadowRoot) {
160
- return element;
161
- } // when we don't find a shadow root
162
-
163
-
164
- if (!element.parentNode) {
165
- return null;
166
- }
167
-
168
- return Util.findShadowRoot(element.parentNode);
169
- },
170
- jQueryDetection: function jQueryDetection() {
171
- if (typeof $ === 'undefined') {
172
- throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
173
- }
174
-
175
- var version = $.fn.jquery.split(' ')[0].split('.');
176
- var minMajor = 1;
177
- var ltMajor = 2;
178
- var minMinor = 9;
179
- var minPatch = 1;
180
- var maxMajor = 4;
181
-
182
- if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
183
- throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
184
- }
185
- }
186
- };
187
- Util.jQueryDetection();
188
- setTransitionEndSupport();
189
-
190
- return Util;
191
-
192
- })));
@@ -1,48 +0,0 @@
1
- // Inline code
2
- code {
3
- @include font-size($code-font-size);
4
- color: $code-color;
5
- word-wrap: break-word;
6
-
7
- // Streamline the style when inside anchors to avoid broken underline and more
8
- a > & {
9
- color: inherit;
10
- }
11
- }
12
-
13
- // User input typically entered via keyboard
14
- kbd {
15
- padding: $kbd-padding-y $kbd-padding-x;
16
- @include font-size($kbd-font-size);
17
- color: $kbd-color;
18
- background-color: $kbd-bg;
19
- @include border-radius($border-radius-sm);
20
- @include box-shadow($kbd-box-shadow);
21
-
22
- kbd {
23
- padding: 0;
24
- @include font-size(100%);
25
- font-weight: $nested-kbd-font-weight;
26
- @include box-shadow(none);
27
- }
28
- }
29
-
30
- // Blocks of code
31
- pre {
32
- display: block;
33
- @include font-size($code-font-size);
34
- color: $pre-color;
35
-
36
- // Account for some code outputs that place code tags in pre tags
37
- code {
38
- @include font-size(inherit);
39
- color: inherit;
40
- word-break: normal;
41
- }
42
- }
43
-
44
- // Enable scrollable blocks of code
45
- .pre-scrollable {
46
- max-height: $pre-scrollable-max-height;
47
- overflow-y: scroll;
48
- }
@@ -1,523 +0,0 @@
1
- // Embedded icons from Open Iconic.
2
- // Released under MIT and copyright 2014 Waybury.
3
- // https://useiconic.com/open
4
-
5
-
6
- // Checkboxes and radios
7
- //
8
- // Base class takes care of all the key behavioral aspects.
9
-
10
- .custom-control {
11
- position: relative;
12
- z-index: 1;
13
- display: block;
14
- min-height: $font-size-base * $line-height-base;
15
- padding-left: $custom-control-gutter + $custom-control-indicator-size;
16
- }
17
-
18
- .custom-control-inline {
19
- display: inline-flex;
20
- margin-right: $custom-control-spacer-x;
21
- }
22
-
23
- .custom-control-input {
24
- position: absolute;
25
- left: 0;
26
- z-index: -1; // Put the input behind the label so it doesn't overlay text
27
- width: $custom-control-indicator-size;
28
- height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2;
29
- opacity: 0;
30
-
31
- &:checked ~ .custom-control-label::before {
32
- color: $custom-control-indicator-checked-color;
33
- border-color: $custom-control-indicator-checked-border-color;
34
- @include gradient-bg($custom-control-indicator-checked-bg);
35
- @include box-shadow($custom-control-indicator-checked-box-shadow);
36
- }
37
-
38
- &:focus ~ .custom-control-label::before {
39
- // the mixin is not used here to make sure there is feedback
40
- @if $enable-shadows {
41
- box-shadow: $input-box-shadow, $input-focus-box-shadow;
42
- } @else {
43
- box-shadow: $custom-control-indicator-focus-box-shadow;
44
- }
45
- }
46
-
47
- &:focus:not(:checked) ~ .custom-control-label::before {
48
- border-color: $custom-control-indicator-focus-border-color;
49
- }
50
-
51
- &:not(:disabled):active ~ .custom-control-label::before {
52
- color: $custom-control-indicator-active-color;
53
- background-color: $custom-control-indicator-active-bg;
54
- border-color: $custom-control-indicator-active-border-color;
55
- @include box-shadow($custom-control-indicator-active-box-shadow);
56
- }
57
-
58
- // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247
59
- &[disabled],
60
- &:disabled {
61
- ~ .custom-control-label {
62
- color: $custom-control-label-disabled-color;
63
-
64
- &::before {
65
- background-color: $custom-control-indicator-disabled-bg;
66
- }
67
- }
68
- }
69
- }
70
-
71
- // Custom control indicators
72
- //
73
- // Build the custom controls out of pseudo-elements.
74
-
75
- .custom-control-label {
76
- position: relative;
77
- margin-bottom: 0;
78
- color: $custom-control-label-color;
79
- vertical-align: top;
80
- cursor: $custom-control-cursor;
81
-
82
- // Background-color and (when enabled) gradient
83
- &::before {
84
- position: absolute;
85
- top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;
86
- left: -($custom-control-gutter + $custom-control-indicator-size);
87
- display: block;
88
- width: $custom-control-indicator-size;
89
- height: $custom-control-indicator-size;
90
- pointer-events: none;
91
- content: "";
92
- background-color: $custom-control-indicator-bg;
93
- border: $custom-control-indicator-border-color solid $custom-control-indicator-border-width;
94
- @include box-shadow($custom-control-indicator-box-shadow);
95
- }
96
-
97
- // Foreground (icon)
98
- &::after {
99
- position: absolute;
100
- top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;
101
- left: -($custom-control-gutter + $custom-control-indicator-size);
102
- display: block;
103
- width: $custom-control-indicator-size;
104
- height: $custom-control-indicator-size;
105
- content: "";
106
- background: no-repeat 50% / #{$custom-control-indicator-bg-size};
107
- }
108
- }
109
-
110
-
111
- // Checkboxes
112
- //
113
- // Tweak just a few things for checkboxes.
114
-
115
- .custom-checkbox {
116
- .custom-control-label::before {
117
- @include border-radius($custom-checkbox-indicator-border-radius);
118
- }
119
-
120
- .custom-control-input:checked ~ .custom-control-label {
121
- &::after {
122
- background-image: escape-svg($custom-checkbox-indicator-icon-checked);
123
- }
124
- }
125
-
126
- .custom-control-input:indeterminate ~ .custom-control-label {
127
- &::before {
128
- border-color: $custom-checkbox-indicator-indeterminate-border-color;
129
- @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);
130
- @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);
131
- }
132
- &::after {
133
- background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);
134
- }
135
- }
136
-
137
- .custom-control-input:disabled {
138
- &:checked ~ .custom-control-label::before {
139
- @include gradient-bg($custom-control-indicator-checked-disabled-bg);
140
- }
141
- &:indeterminate ~ .custom-control-label::before {
142
- @include gradient-bg($custom-control-indicator-checked-disabled-bg);
143
- }
144
- }
145
- }
146
-
147
- // Radios
148
- //
149
- // Tweak just a few things for radios.
150
-
151
- .custom-radio {
152
- .custom-control-label::before {
153
- // stylelint-disable-next-line property-blacklist
154
- border-radius: $custom-radio-indicator-border-radius;
155
- }
156
-
157
- .custom-control-input:checked ~ .custom-control-label {
158
- &::after {
159
- background-image: escape-svg($custom-radio-indicator-icon-checked);
160
- }
161
- }
162
-
163
- .custom-control-input:disabled {
164
- &:checked ~ .custom-control-label::before {
165
- @include gradient-bg($custom-control-indicator-checked-disabled-bg);
166
- }
167
- }
168
- }
169
-
170
-
171
- // switches
172
- //
173
- // Tweak a few things for switches
174
-
175
- .custom-switch {
176
- padding-left: $custom-switch-width + $custom-control-gutter;
177
-
178
- .custom-control-label {
179
- &::before {
180
- left: -($custom-switch-width + $custom-control-gutter);
181
- width: $custom-switch-width;
182
- pointer-events: all;
183
- // stylelint-disable-next-line property-blacklist
184
- border-radius: $custom-switch-indicator-border-radius;
185
- }
186
-
187
- &::after {
188
- top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2);
189
- left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);
190
- width: $custom-switch-indicator-size;
191
- height: $custom-switch-indicator-size;
192
- background-color: $custom-control-indicator-border-color;
193
- // stylelint-disable-next-line property-blacklist
194
- border-radius: $custom-switch-indicator-border-radius;
195
- @include transition(transform .15s ease-in-out, $custom-forms-transition);
196
- }
197
- }
198
-
199
- .custom-control-input:checked ~ .custom-control-label {
200
- &::after {
201
- background-color: $custom-control-indicator-bg;
202
- transform: translateX($custom-switch-width - $custom-control-indicator-size);
203
- }
204
- }
205
-
206
- .custom-control-input:disabled {
207
- &:checked ~ .custom-control-label::before {
208
- @include gradient-bg($custom-control-indicator-checked-disabled-bg);
209
- }
210
- }
211
- }
212
-
213
-
214
- // Select
215
- //
216
- // Replaces the browser default select with a custom one, mostly pulled from
217
- // https://primer.github.io/.
218
- //
219
-
220
- .custom-select {
221
- display: inline-block;
222
- width: 100%;
223
- height: $custom-select-height;
224
- padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
225
- font-family: $custom-select-font-family;
226
- @include font-size($custom-select-font-size);
227
- font-weight: $custom-select-font-weight;
228
- line-height: $custom-select-line-height;
229
- color: $custom-select-color;
230
- vertical-align: middle;
231
- background: $custom-select-bg $custom-select-background;
232
- border: $custom-select-border-width solid $custom-select-border-color;
233
- @include border-radius($custom-select-border-radius, 0);
234
- @include box-shadow($custom-select-box-shadow);
235
- appearance: none;
236
-
237
- &:focus {
238
- border-color: $custom-select-focus-border-color;
239
- outline: 0;
240
- @if $enable-shadows {
241
- @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);
242
- } @else {
243
- // Avoid using mixin so we can pass custom focus shadow properly
244
- box-shadow: $custom-select-focus-box-shadow;
245
- }
246
-
247
- &::-ms-value {
248
- // For visual consistency with other platforms/browsers,
249
- // suppress the default white text on blue background highlight given to
250
- // the selected option text when the (still closed) <select> receives focus
251
- // in IE and (under certain conditions) Edge.
252
- // See https://github.com/twbs/bootstrap/issues/19398.
253
- color: $input-color;
254
- background-color: $input-bg;
255
- }
256
- }
257
-
258
- &[multiple],
259
- &[size]:not([size="1"]) {
260
- height: auto;
261
- padding-right: $custom-select-padding-x;
262
- background-image: none;
263
- }
264
-
265
- &:disabled {
266
- color: $custom-select-disabled-color;
267
- background-color: $custom-select-disabled-bg;
268
- }
269
-
270
- // Hides the default caret in IE11
271
- &::-ms-expand {
272
- display: none;
273
- }
274
-
275
- // Remove outline from select box in FF
276
- &:-moz-focusring {
277
- color: transparent;
278
- text-shadow: 0 0 0 $custom-select-color;
279
- }
280
- }
281
-
282
- .custom-select-sm {
283
- height: $custom-select-height-sm;
284
- padding-top: $custom-select-padding-y-sm;
285
- padding-bottom: $custom-select-padding-y-sm;
286
- padding-left: $custom-select-padding-x-sm;
287
- @include font-size($custom-select-font-size-sm);
288
- }
289
-
290
- .custom-select-lg {
291
- height: $custom-select-height-lg;
292
- padding-top: $custom-select-padding-y-lg;
293
- padding-bottom: $custom-select-padding-y-lg;
294
- padding-left: $custom-select-padding-x-lg;
295
- @include font-size($custom-select-font-size-lg);
296
- }
297
-
298
-
299
- // File
300
- //
301
- // Custom file input.
302
-
303
- .custom-file {
304
- position: relative;
305
- display: inline-block;
306
- width: 100%;
307
- height: $custom-file-height;
308
- margin-bottom: 0;
309
- }
310
-
311
- .custom-file-input {
312
- position: relative;
313
- z-index: 2;
314
- width: 100%;
315
- height: $custom-file-height;
316
- margin: 0;
317
- opacity: 0;
318
-
319
- &:focus ~ .custom-file-label {
320
- border-color: $custom-file-focus-border-color;
321
- box-shadow: $custom-file-focus-box-shadow;
322
- }
323
-
324
- // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247
325
- &[disabled] ~ .custom-file-label,
326
- &:disabled ~ .custom-file-label {
327
- background-color: $custom-file-disabled-bg;
328
- }
329
-
330
- @each $lang, $value in $custom-file-text {
331
- &:lang(#{$lang}) ~ .custom-file-label::after {
332
- content: $value;
333
- }
334
- }
335
-
336
- ~ .custom-file-label[data-browse]::after {
337
- content: attr(data-browse);
338
- }
339
- }
340
-
341
- .custom-file-label {
342
- position: absolute;
343
- top: 0;
344
- right: 0;
345
- left: 0;
346
- z-index: 1;
347
- height: $custom-file-height;
348
- padding: $custom-file-padding-y $custom-file-padding-x;
349
- font-family: $custom-file-font-family;
350
- font-weight: $custom-file-font-weight;
351
- line-height: $custom-file-line-height;
352
- color: $custom-file-color;
353
- background-color: $custom-file-bg;
354
- border: $custom-file-border-width solid $custom-file-border-color;
355
- @include border-radius($custom-file-border-radius);
356
- @include box-shadow($custom-file-box-shadow);
357
-
358
- &::after {
359
- position: absolute;
360
- top: 0;
361
- right: 0;
362
- bottom: 0;
363
- z-index: 3;
364
- display: block;
365
- height: $custom-file-height-inner;
366
- padding: $custom-file-padding-y $custom-file-padding-x;
367
- line-height: $custom-file-line-height;
368
- color: $custom-file-button-color;
369
- content: "Browse";
370
- @include gradient-bg($custom-file-button-bg);
371
- border-left: inherit;
372
- @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);
373
- }
374
- }
375
-
376
- // Range
377
- //
378
- // Style range inputs the same across browsers. Vendor-specific rules for pseudo
379
- // elements cannot be mixed. As such, there are no shared styles for focus or
380
- // active states on prefixed selectors.
381
-
382
- .custom-range {
383
- width: 100%;
384
- height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);
385
- padding: 0; // Need to reset padding
386
- background-color: transparent;
387
- appearance: none;
388
-
389
- &:focus {
390
- outline: none;
391
-
392
- // Pseudo-elements must be split across multiple rulesets to have an effect.
393
- // No box-shadow() mixin for focus accessibility.
394
- &::-webkit-slider-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }
395
- &::-moz-range-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }
396
- &::-ms-thumb { box-shadow: $custom-range-thumb-focus-box-shadow; }
397
- }
398
-
399
- &::-moz-focus-outer {
400
- border: 0;
401
- }
402
-
403
- &::-webkit-slider-thumb {
404
- width: $custom-range-thumb-width;
405
- height: $custom-range-thumb-height;
406
- margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific
407
- @include gradient-bg($custom-range-thumb-bg);
408
- border: $custom-range-thumb-border;
409
- @include border-radius($custom-range-thumb-border-radius);
410
- @include box-shadow($custom-range-thumb-box-shadow);
411
- @include transition($custom-forms-transition);
412
- appearance: none;
413
-
414
- &:active {
415
- @include gradient-bg($custom-range-thumb-active-bg);
416
- }
417
- }
418
-
419
- &::-webkit-slider-runnable-track {
420
- width: $custom-range-track-width;
421
- height: $custom-range-track-height;
422
- color: transparent; // Why?
423
- cursor: $custom-range-track-cursor;
424
- background-color: $custom-range-track-bg;
425
- border-color: transparent;
426
- @include border-radius($custom-range-track-border-radius);
427
- @include box-shadow($custom-range-track-box-shadow);
428
- }
429
-
430
- &::-moz-range-thumb {
431
- width: $custom-range-thumb-width;
432
- height: $custom-range-thumb-height;
433
- @include gradient-bg($custom-range-thumb-bg);
434
- border: $custom-range-thumb-border;
435
- @include border-radius($custom-range-thumb-border-radius);
436
- @include box-shadow($custom-range-thumb-box-shadow);
437
- @include transition($custom-forms-transition);
438
- appearance: none;
439
-
440
- &:active {
441
- @include gradient-bg($custom-range-thumb-active-bg);
442
- }
443
- }
444
-
445
- &::-moz-range-track {
446
- width: $custom-range-track-width;
447
- height: $custom-range-track-height;
448
- color: transparent;
449
- cursor: $custom-range-track-cursor;
450
- background-color: $custom-range-track-bg;
451
- border-color: transparent; // Firefox specific?
452
- @include border-radius($custom-range-track-border-radius);
453
- @include box-shadow($custom-range-track-box-shadow);
454
- }
455
-
456
- &::-ms-thumb {
457
- width: $custom-range-thumb-width;
458
- height: $custom-range-thumb-height;
459
- margin-top: 0; // Edge specific
460
- margin-right: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
461
- margin-left: $custom-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
462
- @include gradient-bg($custom-range-thumb-bg);
463
- border: $custom-range-thumb-border;
464
- @include border-radius($custom-range-thumb-border-radius);
465
- @include box-shadow($custom-range-thumb-box-shadow);
466
- @include transition($custom-forms-transition);
467
- appearance: none;
468
-
469
- &:active {
470
- @include gradient-bg($custom-range-thumb-active-bg);
471
- }
472
- }
473
-
474
- &::-ms-track {
475
- width: $custom-range-track-width;
476
- height: $custom-range-track-height;
477
- color: transparent;
478
- cursor: $custom-range-track-cursor;
479
- background-color: transparent;
480
- border-color: transparent;
481
- border-width: $custom-range-thumb-height / 2;
482
- @include box-shadow($custom-range-track-box-shadow);
483
- }
484
-
485
- &::-ms-fill-lower {
486
- background-color: $custom-range-track-bg;
487
- @include border-radius($custom-range-track-border-radius);
488
- }
489
-
490
- &::-ms-fill-upper {
491
- margin-right: 15px; // arbitrary?
492
- background-color: $custom-range-track-bg;
493
- @include border-radius($custom-range-track-border-radius);
494
- }
495
-
496
- &:disabled {
497
- &::-webkit-slider-thumb {
498
- background-color: $custom-range-thumb-disabled-bg;
499
- }
500
-
501
- &::-webkit-slider-runnable-track {
502
- cursor: default;
503
- }
504
-
505
- &::-moz-range-thumb {
506
- background-color: $custom-range-thumb-disabled-bg;
507
- }
508
-
509
- &::-moz-range-track {
510
- cursor: default;
511
- }
512
-
513
- &::-ms-thumb {
514
- background-color: $custom-range-thumb-disabled-bg;
515
- }
516
- }
517
- }
518
-
519
- .custom-control-label::before,
520
- .custom-file-label,
521
- .custom-select {
522
- @include transition($custom-forms-transition);
523
- }