bootstrap 4.3.0 → 5.1.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 (158) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +17 -2
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +7 -4
  5. data/assets/javascripts/bootstrap/alert.js +173 -137
  6. data/assets/javascripts/bootstrap/base-component.js +182 -0
  7. data/assets/javascripts/bootstrap/button.js +102 -143
  8. data/assets/javascripts/bootstrap/carousel.js +481 -410
  9. data/assets/javascripts/bootstrap/collapse.js +340 -274
  10. data/assets/javascripts/bootstrap/dom/data.js +68 -0
  11. data/assets/javascripts/bootstrap/dom/event-handler.js +322 -0
  12. data/assets/javascripts/bootstrap/dom/manipulator.js +88 -0
  13. data/assets/javascripts/bootstrap/dom/selector-engine.js +127 -0
  14. data/assets/javascripts/bootstrap/dropdown.js +494 -400
  15. data/assets/javascripts/bootstrap/modal.js +834 -450
  16. data/assets/javascripts/bootstrap/offcanvas.js +866 -0
  17. data/assets/javascripts/bootstrap/popover.js +122 -199
  18. data/assets/javascripts/bootstrap/scrollspy.js +257 -241
  19. data/assets/javascripts/bootstrap/tab.js +219 -155
  20. data/assets/javascripts/bootstrap/toast.js +330 -190
  21. data/assets/javascripts/bootstrap/tooltip.js +710 -472
  22. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  23. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  24. data/assets/javascripts/bootstrap-sprockets.js +8 -1
  25. data/assets/javascripts/bootstrap.js +3547 -2809
  26. data/assets/javascripts/bootstrap.min.js +4 -4
  27. data/assets/stylesheets/_bootstrap-grid.scss +54 -18
  28. data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
  29. data/assets/stylesheets/_bootstrap.scss +20 -11
  30. data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
  31. data/assets/stylesheets/bootstrap/_alert.scss +15 -9
  32. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  33. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -18
  34. data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
  35. data/assets/stylesheets/bootstrap/_buttons.scss +28 -54
  36. data/assets/stylesheets/bootstrap/_card.scss +52 -125
  37. data/assets/stylesheets/bootstrap/_carousel.scss +70 -38
  38. data/assets/stylesheets/bootstrap/_close.scss +30 -31
  39. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  40. data/assets/stylesheets/bootstrap/_dropdown.scss +88 -39
  41. data/assets/stylesheets/bootstrap/_forms.scss +9 -330
  42. data/assets/stylesheets/bootstrap/_functions.scss +237 -27
  43. data/assets/stylesheets/bootstrap/_grid.scss +14 -33
  44. data/assets/stylesheets/bootstrap/_helpers.scss +9 -0
  45. data/assets/stylesheets/bootstrap/_images.scss +3 -3
  46. data/assets/stylesheets/bootstrap/_list-group.scss +61 -36
  47. data/assets/stylesheets/bootstrap/_mixins.scss +12 -16
  48. data/assets/stylesheets/bootstrap/_modal.scss +64 -84
  49. data/assets/stylesheets/bootstrap/_nav.scss +29 -10
  50. data/assets/stylesheets/bootstrap/_navbar.scss +93 -52
  51. data/assets/stylesheets/bootstrap/_offcanvas.scss +83 -0
  52. data/assets/stylesheets/bootstrap/_pagination.scss +13 -22
  53. data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
  54. data/assets/stylesheets/bootstrap/_popover.scss +29 -42
  55. data/assets/stylesheets/bootstrap/_progress.scss +10 -5
  56. data/assets/stylesheets/bootstrap/_reboot.scss +350 -208
  57. data/assets/stylesheets/bootstrap/_root.scss +42 -8
  58. data/assets/stylesheets/bootstrap/_spinners.scss +21 -7
  59. data/assets/stylesheets/bootstrap/_tables.scss +80 -114
  60. data/assets/stylesheets/bootstrap/_toasts.scss +21 -14
  61. data/assets/stylesheets/bootstrap/_tooltip.scss +21 -21
  62. data/assets/stylesheets/bootstrap/_transitions.scss +8 -1
  63. data/assets/stylesheets/bootstrap/_type.scss +40 -61
  64. data/assets/stylesheets/bootstrap/_utilities.scss +630 -17
  65. data/assets/stylesheets/bootstrap/_variables.scss +993 -487
  66. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  67. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +63 -0
  68. data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
  69. data/assets/stylesheets/bootstrap/forms/_form-control.scss +219 -0
  70. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  71. data/assets/stylesheets/bootstrap/forms/_form-select.scss +70 -0
  72. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  73. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  74. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  75. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  76. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  77. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  78. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  79. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  80. data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
  81. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  82. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  83. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  84. data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
  85. data/assets/stylesheets/bootstrap/mixins/_alert.scss +3 -5
  86. data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
  87. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +37 -22
  88. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  89. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
  90. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +77 -51
  91. data/assets/stylesheets/bootstrap/mixins/_caret.scss +10 -8
  92. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  93. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  94. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  95. data/assets/stylesheets/bootstrap/mixins/_forms.scss +67 -115
  96. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  97. data/assets/stylesheets/bootstrap/mixins/_grid.scss +131 -32
  98. data/assets/stylesheets/bootstrap/mixins/_image.scss +0 -20
  99. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
  100. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +17 -8
  101. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  102. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  103. data/assets/stylesheets/bootstrap/mixins/_transition.scss +18 -8
  104. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +89 -0
  105. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
  106. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  107. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +274 -132
  108. data/bootstrap.gemspec +4 -6
  109. data/lib/bootstrap/version.rb +2 -2
  110. data/tasks/updater/js.rb +25 -6
  111. data/tasks/updater/network.rb +8 -2
  112. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  113. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  114. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  115. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  116. data/test/dummy_rails/app/views/pages/root.html +89 -0
  117. data/test/dummy_rails/config/application.rb +0 -3
  118. data/test/gemfiles/rails_6_0.gemfile +7 -0
  119. data/test/gemfiles/rails_6_1.gemfile +7 -0
  120. data/test/support/dummy_rails_integration.rb +3 -1
  121. data/test/test_helper.rb +18 -13
  122. metadata +61 -79
  123. data/assets/javascripts/bootstrap/util.js +0 -171
  124. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  125. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -507
  126. data/assets/stylesheets/bootstrap/_input-group.scss +0 -193
  127. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  128. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  129. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  130. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
  131. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  132. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  133. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -66
  134. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  135. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  136. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -33
  137. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  138. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  139. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -16
  140. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  141. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  142. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  143. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  144. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  145. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  146. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  147. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  148. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  149. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  150. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  151. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  152. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  153. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  154. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  155. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  156. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  157. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
  158. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
data/bootstrap.gemspec CHANGED
@@ -14,25 +14,23 @@ Gem::Specification.new do |s|
14
14
  # SassC requires Ruby 2.3.3. Also specify here to make it obvious.
15
15
  s.required_ruby_version = '>= 2.3.3'
16
16
 
17
- s.add_runtime_dependency 'popper_js', '>= 1.14.3', '< 2'
17
+ s.add_runtime_dependency 'popper_js', '>= 2.9.3', '< 3'
18
18
 
19
19
  s.add_runtime_dependency 'sassc-rails', '>= 2.0.0'
20
20
  s.add_runtime_dependency 'autoprefixer-rails', '>= 9.1.0'
21
21
 
22
22
  # Testing dependencies
23
- s.add_development_dependency 'minitest', '~> 5.8.0'
24
- s.add_development_dependency 'minitest-reporters', '~> 1.0.5'
23
+ s.add_development_dependency 'minitest', '~> 5.14.4'
24
+ s.add_development_dependency 'minitest-reporters', '~> 1.4.3'
25
25
  s.add_development_dependency 'term-ansicolor'
26
26
  # Integration testing
27
27
  s.add_development_dependency 'capybara', '>= 2.6.0'
28
- s.add_development_dependency 'poltergeist'
28
+ s.add_development_dependency 'cuprite'
29
29
  # Dummy Rails app dependencies
30
30
  s.add_development_dependency 'actionpack', '>= 4.1.5'
31
31
  s.add_development_dependency 'activesupport', '>= 4.1.5'
32
32
  s.add_development_dependency 'json', '>= 1.8.1'
33
33
  s.add_development_dependency 'sprockets-rails', '>= 2.3.2'
34
- s.add_development_dependency 'jquery-rails', '>= 3.1.0'
35
- s.add_development_dependency 'slim-rails'
36
34
  s.add_development_dependency 'uglifier'
37
35
 
38
36
  s.files = `git ls-files`.split("\n")
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bootstrap
4
- VERSION = '4.3.0'
5
- BOOTSTRAP_SHA = '1ded0d6a4eefb7daca62c44e4e735aec200f0b6f'
4
+ VERSION = '5.1.0'
5
+ BOOTSTRAP_SHA = 'f20fece3a8cdd0e76a42c2737524b7652bf54d26'
6
6
  end
data/tasks/updater/js.rb CHANGED
@@ -2,6 +2,8 @@ require 'tsort'
2
2
 
3
3
  class Updater
4
4
  module Js
5
+ INLINED_SRCS = %w[util/backdrop.js util/component-functions.js util/focustrap.js util/index.js util/sanitizer.js util/scrollbar.js].freeze
6
+
5
7
  def update_javascript_assets
6
8
  log_status 'Updating javascripts...'
7
9
  save_to = @save_to[:js]
@@ -11,13 +13,26 @@ class Updater
11
13
  log_processed "#{bootstrap_js_files * ' '}"
12
14
 
13
15
  log_status 'Updating javascript manifest'
14
- manifest = ''
16
+ manifest = "//= require ./bootstrap-global-this-define\n"
15
17
  bootstrap_js_files.each do |name|
16
18
  name = name.gsub(/\.js$/, '')
17
19
  manifest << "//= require ./bootstrap/#{name}\n"
18
20
  end
21
+ manifest << "//= require ./bootstrap-global-this-undefine\n"
19
22
  dist_js = read_files('dist/js', %w(bootstrap.js bootstrap.min.js))
20
23
  {
24
+ 'assets/javascripts/bootstrap-global-this-define.js' => <<~JS,
25
+ // Set a `globalThis` so that bootstrap components are defined on window.bootstrap instead of window.
26
+ window['bootstrap'] = {
27
+ Popper: window.Popper,
28
+ _originalGlobalThis: window['globalThis']
29
+ };
30
+ window['globalThis'] = window['bootstrap'];
31
+ JS
32
+ 'assets/javascripts/bootstrap-global-this-undefine.js' => <<~JS,
33
+ window['globalThis'] = window['bootstrap']._originalGlobalThis;
34
+ window['bootstrap']._originalGlobalThis = null;
35
+ JS
21
36
  'assets/javascripts/bootstrap-sprockets.js' => manifest,
22
37
  'assets/javascripts/bootstrap.js' => dist_js['bootstrap.js'],
23
38
  'assets/javascripts/bootstrap.min.js' => dist_js['bootstrap.min.js'],
@@ -29,13 +44,13 @@ class Updater
29
44
 
30
45
  def bootstrap_js_files
31
46
  @bootstrap_js_files ||= begin
32
- src_files = get_paths_by_type('js/src', /\.js$/) - %w[index.js]
47
+ src_files = get_paths_by_type('js/src', /\.js$/) - INLINED_SRCS
48
+ puts "src_files: #{src_files.inspect}"
33
49
  imports = Deps.new
34
50
  # Get the imports from the ES6 files to order requires correctly.
35
51
  read_files('js/src', src_files).each do |name, content|
36
- imports.add name,
37
- *content.scan(%r{import [a-zA-Z]* from '\./(\w+)})
38
- .flatten(1).map { |f| "#{f}.js" }
52
+ file_imports = content.scan(%r{import *(?:[a-zA-Z]*|\{[a-zA-Z ,]*\}) *from '\./([\w/-]+)}).flatten(1).map { |f| "#{f}.js" }.uniq
53
+ imports.add name, *(file_imports - INLINED_SRCS)
39
54
  end
40
55
  imports.tsort
41
56
  end
@@ -57,7 +72,11 @@ class Updater
57
72
  end
58
73
 
59
74
  def tsort_each_child(node, &block)
60
- @imports[node].each(&block)
75
+ node_imports = @imports[node]
76
+ if node_imports.nil?
77
+ raise "No imports found for #{node.inspect}"
78
+ end
79
+ node_imports.each(&block)
61
80
  end
62
81
 
63
82
  def tsort_each_node(&block)
@@ -25,7 +25,13 @@ class Updater
25
25
  log_http_get_files files, path_url, false
26
26
  files.map do |name|
27
27
  Thread.start {
28
- contents[name] = open("#{path_url}/#{name}").read
28
+ begin
29
+ url = "#{path_url}/#{name}"
30
+ contents[name] = URI.open(url).read
31
+ rescue Exception => e
32
+ log "Error downloading #{url}: #{e}"
33
+ exit 1
34
+ end
29
35
  WRITE_FILES_MUTEX.synchronize { write_cached_files path, name => contents[name] }
30
36
  }
31
37
  end.each(&:join)
@@ -62,7 +68,7 @@ class Updater
62
68
  File.read(cache_path, mode: 'rb')
63
69
  else
64
70
  log_http_get_file url, false
65
- content = open(url).read
71
+ content = URI.open(url).read
66
72
  File.open(cache_path, 'wb') { |f| f.write content }
67
73
  content
68
74
  end
@@ -0,0 +1,3 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../javascripts .js
3
+ //= link_directory ../stylesheets .css
@@ -1,7 +1,8 @@
1
- //= require jquery
2
1
  //= require popper.js
3
2
  //= require bootstrap-sprockets
4
3
 
5
- jQuery(function ($) {
6
- $('[data-toggle="tooltip"]').tooltip()
4
+ document.addEventListener('DOMContentLoaded', () => {
5
+ for (const tooltipTriggerEl of document.querySelectorAll('[data-bs-toggle="tooltip"]')) {
6
+ new bootstrap.Tooltip(tooltipTriggerEl)
7
+ }
7
8
  });
@@ -0,0 +1 @@
1
+ Chrome >= 25
@@ -1,14 +1,16 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
+ <meta charset="utf-8">
4
5
  <title>bootstrap Dummy App</title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
7
  <%= stylesheet_link_tag 'application', media: "all", 'data-turbolinks-track' => true %>
6
- <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
8
  <%= csrf_meta_tags %>
8
9
  </head>
9
10
 
10
11
  <body>
11
12
  <%= yield %>
13
+ <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
12
14
  </body>
13
15
 
14
16
  </html>
@@ -0,0 +1,89 @@
1
+ <nav class="navbar navbar-expand-lg navbar-light bg-light">
2
+ <div class="container-fluid">
3
+ <a class="navbar-brand" href="#">Navbar</a>
4
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
5
+ aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
6
+ <span class="navbar-toggler-icon"></span>
7
+ </button>
8
+ <div class="collapse navbar-collapse" id="navbarSupportedContent">
9
+ <ul class="navbar-nav me-auto mb-2 mb-lg-0">
10
+ <li class="nav-item">
11
+ <a class="nav-link active" aria-current="page" href="#">Home</a>
12
+ </li>
13
+ <li class="nav-item">
14
+ <a class="nav-link" href="#">Link</a>
15
+ </li>
16
+ <li class="nav-item dropdown">
17
+ <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown"
18
+ aria-expanded="false">
19
+ Dropdown
20
+ </a>
21
+ <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
22
+ <li><a class="dropdown-item" href="#">Action</a></li>
23
+ <li><a class="dropdown-item" href="#">Another action</a></li>
24
+ <li>
25
+ <hr class="dropdown-divider">
26
+ </li>
27
+ <li><a class="dropdown-item" href="#">Something else here</a></li>
28
+ </ul>
29
+ </li>
30
+ <li class="nav-item">
31
+ <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
32
+ </li>
33
+ </ul>
34
+ <form class="d-flex">
35
+ <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
36
+ <button class="btn btn-outline-success" type="submit">Search</button>
37
+ </form>
38
+ </div>
39
+ </div>
40
+ </nav>
41
+
42
+ <div class="container">
43
+ <div class="row">
44
+ <div class="card" style="width: 18rem;">
45
+ <div class="card-body">
46
+ <h5 class="card-title">Card title</h5>
47
+ <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's
48
+ content.</p>
49
+ <a href="#" class="btn btn-primary">Go somewhere</a>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ <div class="row">
54
+ <div class="col-sm">
55
+ <div class="card" style="width: 18rem;">
56
+ <ul class="list-group list-group-flush">
57
+ <li class="list-group-item">An item</li>
58
+ <li class="list-group-item">A second item</li>
59
+ <li class="list-group-item">A third item</li>
60
+ </ul>
61
+ </div>
62
+ </div>
63
+ <div class="col-sm">
64
+ <div class="btn-group" role="group" aria-label="Basic mixed styles example">
65
+ <button type="button" class="btn btn-danger">Left</button>
66
+ <button type="button" class="btn btn-warning">Middle</button>
67
+ <button type="button" class="btn btn-success">Right</button>
68
+ </div>
69
+ </div>
70
+ <div class="col-sm">
71
+ <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top"
72
+ title="Tooltip on top">
73
+ Tooltip on top
74
+ </button>
75
+ <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="right"
76
+ title="Tooltip on right">
77
+ Tooltip on right
78
+ </button>
79
+ <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom"
80
+ title="Tooltip on bottom">
81
+ Tooltip on bottom
82
+ </button>
83
+ <button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left"
84
+ title="Tooltip on left">
85
+ Tooltip on left
86
+ </button>
87
+ </div>
88
+ </div>
89
+ </div>
@@ -11,11 +11,8 @@ require 'rails'
11
11
  end
12
12
 
13
13
  require 'autoprefixer-rails'
14
- require 'slim-rails'
15
14
  require 'uglifier'
16
-
17
15
  require 'bootstrap'
18
- require 'jquery-rails'
19
16
 
20
17
  module Dummy
21
18
  class Application < Rails::Application
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'actionpack', '~> 6.0.3'
4
+ gem 'activesupport', '~> 6.0.3'
5
+ gem 'autoprefixer-rails', '>= 9.7.6'
6
+
7
+ gemspec path: '../../'
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'actionpack', '~> 6.1.3'
4
+ gem 'activesupport', '~> 6.1.3'
5
+ gem 'autoprefixer-rails', '>= 9.7.6'
6
+
7
+ gemspec path: '../../'
@@ -17,7 +17,9 @@ module DummyRailsIntegration
17
17
 
18
18
  def screenshot!
19
19
  path = "tmp/#{name}.png"
20
- page.driver.render(File.join(GEM_PATH, path), full: true)
20
+ full_path = File.join(GEM_PATH, path)
21
+ FileUtils.mkdir_p(File.dirname(full_path))
22
+ page.driver.render(full_path, full: true)
21
23
  STDERR.puts "Screenshot saved to #{path}"
22
24
  end
23
25
 
data/test/test_helper.rb CHANGED
@@ -12,24 +12,29 @@ end
12
12
 
13
13
  GEM_PATH = File.expand_path('../', File.dirname(__FILE__))
14
14
 
15
- #= Capybara + Poltergeist
16
- require 'capybara/poltergeist'
17
-
18
- Capybara.register_driver :poltergeist do |app|
19
- Capybara::Poltergeist::Driver.new(
20
- app,
21
- # inspector: '/Applications/Chromium.app/Contents/MacOS/Chromium', # open in inspector: page.driver.debug
22
- window_size: [1280, 1024],
23
- timeout: 90,
24
- js_errors: true
25
- )
15
+ #= Capybara
16
+ require 'capybara/cuprite'
17
+
18
+ browser_path = ENV['CHROMIUM_BIN'] || %w[
19
+ /usr/bin/chromium-browser
20
+ /snap/bin/chromium
21
+ /Applications/Chromium.app/Contents/MacOS/Chromium
22
+ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
23
+ ].find { |path| File.executable?(path) }
24
+
25
+ Capybara.register_driver :cuprite do |app|
26
+ options = {
27
+ window_size: [1280, 1024]
28
+ }
29
+ options[:browser_path] = browser_path if browser_path
30
+ Capybara::Cuprite::Driver.new(app, options)
26
31
  end
27
32
 
28
33
  Capybara.configure do |config|
29
34
  config.server = :webrick
30
35
  config.app_host = 'http://localhost:7000'
31
- config.default_driver = :poltergeist
32
- config.javascript_driver = :poltergeist
36
+ config.default_driver = :cuprite
37
+ config.javascript_driver = :cuprite
33
38
  config.server_port = 7000
34
39
  config.default_max_wait_time = 10
35
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.0
4
+ version: 5.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Twitter, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-11 00:00:00.000000000 Z
11
+ date: 2021-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: popper_js
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.14.3
19
+ version: 2.9.3
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '2'
22
+ version: '3'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 1.14.3
29
+ version: 2.9.3
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '2'
32
+ version: '3'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: sassc-rails
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -64,28 +64,28 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 5.8.0
67
+ version: 5.14.4
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 5.8.0
74
+ version: 5.14.4
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: minitest-reporters
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: 1.0.5
81
+ version: 1.4.3
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: 1.0.5
88
+ version: 1.4.3
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: term-ansicolor
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -115,7 +115,7 @@ dependencies:
115
115
  - !ruby/object:Gem::Version
116
116
  version: 2.6.0
117
117
  - !ruby/object:Gem::Dependency
118
- name: poltergeist
118
+ name: cuprite
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - ">="
@@ -184,34 +184,6 @@ dependencies:
184
184
  - - ">="
185
185
  - !ruby/object:Gem::Version
186
186
  version: 2.3.2
187
- - !ruby/object:Gem::Dependency
188
- name: jquery-rails
189
- requirement: !ruby/object:Gem::Requirement
190
- requirements:
191
- - - ">="
192
- - !ruby/object:Gem::Version
193
- version: 3.1.0
194
- type: :development
195
- prerelease: false
196
- version_requirements: !ruby/object:Gem::Requirement
197
- requirements:
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- version: 3.1.0
201
- - !ruby/object:Gem::Dependency
202
- name: slim-rails
203
- requirement: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- version: '0'
208
- type: :development
209
- prerelease: false
210
- version_requirements: !ruby/object:Gem::Requirement
211
- requirements:
212
- - - ">="
213
- - !ruby/object:Gem::Version
214
- version: '0'
215
187
  - !ruby/object:Gem::Dependency
216
188
  name: uglifier
217
189
  requirement: !ruby/object:Gem::Requirement
@@ -240,24 +212,32 @@ files:
240
212
  - LICENSE
241
213
  - README.md
242
214
  - Rakefile
215
+ - assets/javascripts/bootstrap-global-this-define.js
216
+ - assets/javascripts/bootstrap-global-this-undefine.js
243
217
  - assets/javascripts/bootstrap-sprockets.js
244
218
  - assets/javascripts/bootstrap.js
245
219
  - assets/javascripts/bootstrap.min.js
246
220
  - assets/javascripts/bootstrap/alert.js
221
+ - assets/javascripts/bootstrap/base-component.js
247
222
  - assets/javascripts/bootstrap/button.js
248
223
  - assets/javascripts/bootstrap/carousel.js
249
224
  - assets/javascripts/bootstrap/collapse.js
225
+ - assets/javascripts/bootstrap/dom/data.js
226
+ - assets/javascripts/bootstrap/dom/event-handler.js
227
+ - assets/javascripts/bootstrap/dom/manipulator.js
228
+ - assets/javascripts/bootstrap/dom/selector-engine.js
250
229
  - assets/javascripts/bootstrap/dropdown.js
251
230
  - assets/javascripts/bootstrap/modal.js
231
+ - assets/javascripts/bootstrap/offcanvas.js
252
232
  - assets/javascripts/bootstrap/popover.js
253
233
  - assets/javascripts/bootstrap/scrollspy.js
254
234
  - assets/javascripts/bootstrap/tab.js
255
235
  - assets/javascripts/bootstrap/toast.js
256
236
  - assets/javascripts/bootstrap/tooltip.js
257
- - assets/javascripts/bootstrap/util.js
258
237
  - assets/stylesheets/_bootstrap-grid.scss
259
238
  - assets/stylesheets/_bootstrap-reboot.scss
260
239
  - assets/stylesheets/_bootstrap.scss
240
+ - assets/stylesheets/bootstrap/_accordion.scss
261
241
  - assets/stylesheets/bootstrap/_alert.scss
262
242
  - assets/stylesheets/bootstrap/_badge.scss
263
243
  - assets/stylesheets/bootstrap/_breadcrumb.scss
@@ -266,24 +246,22 @@ files:
266
246
  - assets/stylesheets/bootstrap/_card.scss
267
247
  - assets/stylesheets/bootstrap/_carousel.scss
268
248
  - assets/stylesheets/bootstrap/_close.scss
269
- - assets/stylesheets/bootstrap/_code.scss
270
- - assets/stylesheets/bootstrap/_custom-forms.scss
249
+ - assets/stylesheets/bootstrap/_containers.scss
271
250
  - assets/stylesheets/bootstrap/_dropdown.scss
272
251
  - assets/stylesheets/bootstrap/_forms.scss
273
252
  - assets/stylesheets/bootstrap/_functions.scss
274
253
  - assets/stylesheets/bootstrap/_grid.scss
254
+ - assets/stylesheets/bootstrap/_helpers.scss
275
255
  - assets/stylesheets/bootstrap/_images.scss
276
- - assets/stylesheets/bootstrap/_input-group.scss
277
- - assets/stylesheets/bootstrap/_jumbotron.scss
278
256
  - assets/stylesheets/bootstrap/_list-group.scss
279
- - assets/stylesheets/bootstrap/_media.scss
280
257
  - assets/stylesheets/bootstrap/_mixins.scss
281
258
  - assets/stylesheets/bootstrap/_modal.scss
282
259
  - assets/stylesheets/bootstrap/_nav.scss
283
260
  - assets/stylesheets/bootstrap/_navbar.scss
261
+ - assets/stylesheets/bootstrap/_offcanvas.scss
284
262
  - assets/stylesheets/bootstrap/_pagination.scss
263
+ - assets/stylesheets/bootstrap/_placeholders.scss
285
264
  - assets/stylesheets/bootstrap/_popover.scss
286
- - assets/stylesheets/bootstrap/_print.scss
287
265
  - assets/stylesheets/bootstrap/_progress.scss
288
266
  - assets/stylesheets/bootstrap/_reboot.scss
289
267
  - assets/stylesheets/bootstrap/_root.scss
@@ -295,54 +273,51 @@ files:
295
273
  - assets/stylesheets/bootstrap/_type.scss
296
274
  - assets/stylesheets/bootstrap/_utilities.scss
297
275
  - assets/stylesheets/bootstrap/_variables.scss
276
+ - assets/stylesheets/bootstrap/bootstrap-utilities.scss
277
+ - assets/stylesheets/bootstrap/forms/_floating-labels.scss
278
+ - assets/stylesheets/bootstrap/forms/_form-check.scss
279
+ - assets/stylesheets/bootstrap/forms/_form-control.scss
280
+ - assets/stylesheets/bootstrap/forms/_form-range.scss
281
+ - assets/stylesheets/bootstrap/forms/_form-select.scss
282
+ - assets/stylesheets/bootstrap/forms/_form-text.scss
283
+ - assets/stylesheets/bootstrap/forms/_input-group.scss
284
+ - assets/stylesheets/bootstrap/forms/_labels.scss
285
+ - assets/stylesheets/bootstrap/forms/_validation.scss
286
+ - assets/stylesheets/bootstrap/helpers/_clearfix.scss
287
+ - assets/stylesheets/bootstrap/helpers/_colored-links.scss
288
+ - assets/stylesheets/bootstrap/helpers/_position.scss
289
+ - assets/stylesheets/bootstrap/helpers/_ratio.scss
290
+ - assets/stylesheets/bootstrap/helpers/_stacks.scss
291
+ - assets/stylesheets/bootstrap/helpers/_stretched-link.scss
292
+ - assets/stylesheets/bootstrap/helpers/_text-truncation.scss
293
+ - assets/stylesheets/bootstrap/helpers/_visually-hidden.scss
294
+ - assets/stylesheets/bootstrap/helpers/_vr.scss
298
295
  - assets/stylesheets/bootstrap/mixins/_alert.scss
299
- - assets/stylesheets/bootstrap/mixins/_background-variant.scss
300
- - assets/stylesheets/bootstrap/mixins/_badge.scss
296
+ - assets/stylesheets/bootstrap/mixins/_backdrop.scss
301
297
  - assets/stylesheets/bootstrap/mixins/_border-radius.scss
302
298
  - assets/stylesheets/bootstrap/mixins/_box-shadow.scss
303
299
  - assets/stylesheets/bootstrap/mixins/_breakpoints.scss
304
300
  - assets/stylesheets/bootstrap/mixins/_buttons.scss
305
301
  - assets/stylesheets/bootstrap/mixins/_caret.scss
306
302
  - assets/stylesheets/bootstrap/mixins/_clearfix.scss
303
+ - assets/stylesheets/bootstrap/mixins/_color-scheme.scss
304
+ - assets/stylesheets/bootstrap/mixins/_container.scss
307
305
  - assets/stylesheets/bootstrap/mixins/_deprecate.scss
308
- - assets/stylesheets/bootstrap/mixins/_float.scss
309
306
  - assets/stylesheets/bootstrap/mixins/_forms.scss
310
307
  - assets/stylesheets/bootstrap/mixins/_gradients.scss
311
- - assets/stylesheets/bootstrap/mixins/_grid-framework.scss
312
308
  - assets/stylesheets/bootstrap/mixins/_grid.scss
313
- - assets/stylesheets/bootstrap/mixins/_hover.scss
314
309
  - assets/stylesheets/bootstrap/mixins/_image.scss
315
310
  - assets/stylesheets/bootstrap/mixins/_list-group.scss
316
311
  - assets/stylesheets/bootstrap/mixins/_lists.scss
317
- - assets/stylesheets/bootstrap/mixins/_nav-divider.scss
318
312
  - assets/stylesheets/bootstrap/mixins/_pagination.scss
319
313
  - assets/stylesheets/bootstrap/mixins/_reset-text.scss
320
314
  - assets/stylesheets/bootstrap/mixins/_resize.scss
321
- - 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
315
+ - assets/stylesheets/bootstrap/mixins/_table-variants.scss
326
316
  - assets/stylesheets/bootstrap/mixins/_text-truncate.scss
327
317
  - 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/_overflow.scss
338
- - assets/stylesheets/bootstrap/utilities/_position.scss
339
- - assets/stylesheets/bootstrap/utilities/_screenreaders.scss
340
- - assets/stylesheets/bootstrap/utilities/_shadows.scss
341
- - assets/stylesheets/bootstrap/utilities/_sizing.scss
342
- - assets/stylesheets/bootstrap/utilities/_spacing.scss
343
- - assets/stylesheets/bootstrap/utilities/_stretched-link.scss
344
- - assets/stylesheets/bootstrap/utilities/_text.scss
345
- - assets/stylesheets/bootstrap/utilities/_visibility.scss
318
+ - assets/stylesheets/bootstrap/mixins/_utilities.scss
319
+ - assets/stylesheets/bootstrap/mixins/_visually-hidden.scss
320
+ - assets/stylesheets/bootstrap/utilities/_api.scss
346
321
  - assets/stylesheets/bootstrap/vendor/_rfs.scss
347
322
  - bootstrap.gemspec
348
323
  - lib/bootstrap.rb
@@ -355,14 +330,16 @@ files:
355
330
  - tasks/updater/scss.rb
356
331
  - test/dummy_rails/README.rdoc
357
332
  - test/dummy_rails/Rakefile
333
+ - test/dummy_rails/app/assets/config/manifest.js
358
334
  - test/dummy_rails/app/assets/images/.keep
359
335
  - test/dummy_rails/app/assets/javascripts/application.js
336
+ - test/dummy_rails/app/assets/stylesheets/.browserslistrc
360
337
  - test/dummy_rails/app/assets/stylesheets/application.sass
361
338
  - test/dummy_rails/app/controllers/application_controller.rb
362
339
  - test/dummy_rails/app/controllers/pages_controller.rb
363
340
  - test/dummy_rails/app/helpers/application_helper.rb
364
341
  - test/dummy_rails/app/views/layouts/application.html.erb
365
- - test/dummy_rails/app/views/pages/root.html.slim
342
+ - test/dummy_rails/app/views/pages/root.html
366
343
  - test/dummy_rails/config.ru
367
344
  - test/dummy_rails/config/application.rb
368
345
  - test/dummy_rails/config/boot.rb
@@ -384,6 +361,8 @@ files:
384
361
  - test/gemfiles/rails_4_2.gemfile
385
362
  - test/gemfiles/rails_5_0.gemfile
386
363
  - test/gemfiles/rails_5_1.gemfile
364
+ - test/gemfiles/rails_6_0.gemfile
365
+ - test/gemfiles/rails_6_1.gemfile
387
366
  - test/rails_test.rb
388
367
  - test/support/dummy_rails_integration.rb
389
368
  - test/support/reporting.rb
@@ -408,8 +387,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
408
387
  - !ruby/object:Gem::Version
409
388
  version: '0'
410
389
  requirements: []
411
- rubyforge_project:
412
- rubygems_version: 2.7.8
390
+ rubygems_version: 3.1.2
413
391
  signing_key:
414
392
  specification_version: 4
415
393
  summary: The most popular HTML, CSS, and JavaScript framework for developing responsive,
@@ -417,14 +395,16 @@ summary: The most popular HTML, CSS, and JavaScript framework for developing res
417
395
  test_files:
418
396
  - test/dummy_rails/README.rdoc
419
397
  - test/dummy_rails/Rakefile
398
+ - test/dummy_rails/app/assets/config/manifest.js
420
399
  - test/dummy_rails/app/assets/images/.keep
421
400
  - test/dummy_rails/app/assets/javascripts/application.js
401
+ - test/dummy_rails/app/assets/stylesheets/.browserslistrc
422
402
  - test/dummy_rails/app/assets/stylesheets/application.sass
423
403
  - test/dummy_rails/app/controllers/application_controller.rb
424
404
  - test/dummy_rails/app/controllers/pages_controller.rb
425
405
  - test/dummy_rails/app/helpers/application_helper.rb
426
406
  - test/dummy_rails/app/views/layouts/application.html.erb
427
- - test/dummy_rails/app/views/pages/root.html.slim
407
+ - test/dummy_rails/app/views/pages/root.html
428
408
  - test/dummy_rails/config.ru
429
409
  - test/dummy_rails/config/application.rb
430
410
  - test/dummy_rails/config/boot.rb
@@ -446,6 +426,8 @@ test_files:
446
426
  - test/gemfiles/rails_4_2.gemfile
447
427
  - test/gemfiles/rails_5_0.gemfile
448
428
  - test/gemfiles/rails_5_1.gemfile
429
+ - test/gemfiles/rails_6_0.gemfile
430
+ - test/gemfiles/rails_6_1.gemfile
449
431
  - test/rails_test.rb
450
432
  - test/support/dummy_rails_integration.rb
451
433
  - test/support/reporting.rb