bootstrap 4.3.1 → 4.6.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.
Potentially problematic release.
This version of bootstrap might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +15 -1
- data/CHANGELOG.md +2 -14
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +7 -7
- data/assets/javascripts/bootstrap.js +1073 -1076
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/javascripts/bootstrap/alert.js +42 -49
- data/assets/javascripts/bootstrap/button.js +111 -64
- data/assets/javascripts/bootstrap/carousel.js +162 -177
- data/assets/javascripts/bootstrap/collapse.js +97 -122
- data/assets/javascripts/bootstrap/dropdown.js +163 -189
- data/assets/javascripts/bootstrap/modal.js +213 -194
- data/assets/javascripts/bootstrap/popover.js +51 -72
- data/assets/javascripts/bootstrap/scrollspy.js +80 -109
- data/assets/javascripts/bootstrap/tab.js +72 -79
- data/assets/javascripts/bootstrap/toast.js +96 -107
- data/assets/javascripts/bootstrap/tooltip.js +186 -201
- data/assets/javascripts/bootstrap/util.js +41 -20
- data/assets/stylesheets/_bootstrap-grid.scss +5 -4
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
- data/assets/stylesheets/_bootstrap.scss +4 -4
- data/assets/stylesheets/bootstrap/_alert.scss +1 -0
- data/assets/stylesheets/bootstrap/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -2
- data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
- data/assets/stylesheets/bootstrap/_card.scss +42 -45
- data/assets/stylesheets/bootstrap/_carousel.scss +7 -7
- data/assets/stylesheets/bootstrap/_close.scss +2 -3
- data/assets/stylesheets/bootstrap/_code.scss +1 -1
- data/assets/stylesheets/bootstrap/_custom-forms.scss +38 -19
- data/assets/stylesheets/bootstrap/_dropdown.scss +7 -6
- data/assets/stylesheets/bootstrap/_forms.scss +26 -9
- data/assets/stylesheets/bootstrap/_functions.scss +63 -5
- data/assets/stylesheets/bootstrap/_grid.scss +32 -11
- data/assets/stylesheets/bootstrap/_images.scss +2 -2
- data/assets/stylesheets/bootstrap/_input-group.scss +21 -6
- data/assets/stylesheets/bootstrap/_list-group.scss +36 -31
- data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
- data/assets/stylesheets/bootstrap/_modal.scss +26 -15
- data/assets/stylesheets/bootstrap/_nav.scss +7 -7
- data/assets/stylesheets/bootstrap/_navbar.scss +55 -17
- data/assets/stylesheets/bootstrap/_pagination.scss +5 -4
- data/assets/stylesheets/bootstrap/_popover.scss +8 -9
- data/assets/stylesheets/bootstrap/_print.scss +2 -2
- data/assets/stylesheets/bootstrap/_progress.scss +7 -3
- data/assets/stylesheets/bootstrap/_reboot.scss +39 -38
- data/assets/stylesheets/bootstrap/_spinners.scss +14 -4
- data/assets/stylesheets/bootstrap/_tables.scss +3 -3
- data/assets/stylesheets/bootstrap/_toasts.scss +4 -2
- data/assets/stylesheets/bootstrap/_type.scss +3 -3
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +58 -35
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +27 -14
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +11 -8
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +42 -49
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +29 -15
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +25 -7
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_image.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +4 -3
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +18 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +1 -1
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +4 -4
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/network.rb +2 -2
- data/test/dummy_rails/app/assets/config/manifest.js +3 -0
- data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +18 -13
- metadata +11 -5
| @@ -10,6 +10,12 @@ | |
| 10 10 | 
             
              margin-left: auto;
         | 
| 11 11 | 
             
            }
         | 
| 12 12 |  | 
| 13 | 
            +
            @mixin make-row($gutter: $grid-gutter-width) {
         | 
| 14 | 
            +
              display: flex;
         | 
| 15 | 
            +
              flex-wrap: wrap;
         | 
| 16 | 
            +
              margin-right: -$gutter / 2;
         | 
| 17 | 
            +
              margin-left: -$gutter / 2;
         | 
| 18 | 
            +
            }
         | 
| 13 19 |  | 
| 14 20 | 
             
            // For each breakpoint, define the maximum width of the container in a media query
         | 
| 15 21 | 
             
            @mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
         | 
| @@ -18,13 +24,7 @@ | |
| 18 24 | 
             
                  max-width: $container-max-width;
         | 
| 19 25 | 
             
                }
         | 
| 20 26 | 
             
              }
         | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
            @mixin make-row($gutter: $grid-gutter-width) {
         | 
| 24 | 
            -
              display: flex;
         | 
| 25 | 
            -
              flex-wrap: wrap;
         | 
| 26 | 
            -
              margin-right: -$gutter / 2;
         | 
| 27 | 
            -
              margin-left: -$gutter / 2;
         | 
| 27 | 
            +
              @include deprecate("The `make-container-max-widths` mixin", "v4.5.2", "v5");
         | 
| 28 28 | 
             
            }
         | 
| 29 29 |  | 
| 30 30 | 
             
            @mixin make-col-ready($gutter: $grid-gutter-width) {
         | 
| @@ -45,7 +45,25 @@ | |
| 45 45 | 
             
              max-width: percentage($size / $columns);
         | 
| 46 46 | 
             
            }
         | 
| 47 47 |  | 
| 48 | 
            +
            @mixin make-col-auto() {
         | 
| 49 | 
            +
              flex: 0 0 auto;
         | 
| 50 | 
            +
              width: auto;
         | 
| 51 | 
            +
              max-width: 100%; // Reset earlier grid tiers
         | 
| 52 | 
            +
            }
         | 
| 53 | 
            +
             | 
| 48 54 | 
             
            @mixin make-col-offset($size, $columns: $grid-columns) {
         | 
| 49 55 | 
             
              $num: $size / $columns;
         | 
| 50 56 | 
             
              margin-left: if($num == 0, 0, percentage($num));
         | 
| 51 57 | 
             
            }
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            // Row columns
         | 
| 60 | 
            +
            //
         | 
| 61 | 
            +
            // Specify on a parent element(e.g., .row) to force immediate children into NN
         | 
| 62 | 
            +
            // numberof columns. Supports wrapping to new lines, but does not do a Masonry
         | 
| 63 | 
            +
            // style grid.
         | 
| 64 | 
            +
            @mixin row-cols($count) {
         | 
| 65 | 
            +
              > * {
         | 
| 66 | 
            +
                flex: 0 0 100% / $count;
         | 
| 67 | 
            +
                max-width: 100% / $count;
         | 
| 68 | 
            +
              }
         | 
| 69 | 
            +
            }
         | 
| @@ -9,18 +9,18 @@ | |
| 9 9 | 
             
            //
         | 
| 10 10 | 
             
            // Issue: https://github.com/twbs/bootstrap/issues/25195
         | 
| 11 11 |  | 
| 12 | 
            -
            @mixin hover {
         | 
| 12 | 
            +
            @mixin hover() {
         | 
| 13 13 | 
             
              &:hover { @content; }
         | 
| 14 14 | 
             
            }
         | 
| 15 15 |  | 
| 16 | 
            -
            @mixin hover-focus {
         | 
| 16 | 
            +
            @mixin hover-focus() {
         | 
| 17 17 | 
             
              &:hover,
         | 
| 18 18 | 
             
              &:focus {
         | 
| 19 19 | 
             
                @content;
         | 
| 20 20 | 
             
              }
         | 
| 21 21 | 
             
            }
         | 
| 22 22 |  | 
| 23 | 
            -
            @mixin plain-hover-focus {
         | 
| 23 | 
            +
            @mixin plain-hover-focus() {
         | 
| 24 24 | 
             
              &,
         | 
| 25 25 | 
             
              &:hover,
         | 
| 26 26 | 
             
              &:focus {
         | 
| @@ -28,7 +28,7 @@ | |
| 28 28 | 
             
              }
         | 
| 29 29 | 
             
            }
         | 
| 30 30 |  | 
| 31 | 
            -
            @mixin hover-focus-active {
         | 
| 31 | 
            +
            @mixin hover-focus-active() {
         | 
| 32 32 | 
             
              &:hover,
         | 
| 33 33 | 
             
              &:focus,
         | 
| 34 34 | 
             
              &:active {
         | 
| @@ -7,7 +7,7 @@ | |
| 7 7 | 
             
            //
         | 
| 8 8 | 
             
            // Keep images from scaling beyond the width of their parents.
         | 
| 9 9 |  | 
| 10 | 
            -
            @mixin img-fluid {
         | 
| 10 | 
            +
            @mixin img-fluid() {
         | 
| 11 11 | 
             
              // Part 1: Set a maximum relative to the parent
         | 
| 12 12 | 
             
              max-width: 100%;
         | 
| 13 13 | 
             
              // Part 2: Override the height to auto, otherwise images will be stretched
         | 
| @@ -26,7 +26,7 @@ | |
| 26 26 | 
             
              // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
         | 
| 27 27 | 
             
              // but doesn't convert dppx=>dpi.
         | 
| 28 28 | 
             
              // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
         | 
| 29 | 
            -
              // Compatibility info: https://caniuse.com | 
| 29 | 
            +
              // Compatibility info: https://caniuse.com/css-media-resolution
         | 
| 30 30 | 
             
              @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
         | 
| 31 31 | 
             
                only screen and (min-resolution: 2dppx) { // Standardized
         | 
| 32 32 | 
             
                background-image: url($file-2x);
         | 
| @@ -2,9 +2,10 @@ | |
| 2 2 | 
             
            //
         | 
| 3 3 | 
             
            // Dividers (basically an hr) within dropdowns and nav lists
         | 
| 4 4 |  | 
| 5 | 
            -
            @mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {
         | 
| 5 | 
            +
            @mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y, $ignore-warning: false) {
         | 
| 6 6 | 
             
              height: 0;
         | 
| 7 7 | 
             
              margin: $margin-y 0;
         | 
| 8 8 | 
             
              overflow: hidden;
         | 
| 9 9 | 
             
              border-top: 1px solid $color;
         | 
| 10 | 
            +
              @include deprecate("The `nav-divider()` mixin", "v4.4.0", "v5", $ignore-warning);
         | 
| 10 11 | 
             
            }
         | 
| @@ -1,13 +1,14 @@ | |
| 1 1 | 
             
            // Only display content to screen readers
         | 
| 2 2 | 
             
            //
         | 
| 3 | 
            -
            // See: https://a11yproject.com/posts/how-to-hide-content/
         | 
| 3 | 
            +
            // See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
         | 
| 4 4 | 
             
            // See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
         | 
| 5 5 |  | 
| 6 | 
            -
            @mixin sr-only {
         | 
| 6 | 
            +
            @mixin sr-only() {
         | 
| 7 7 | 
             
              position: absolute;
         | 
| 8 8 | 
             
              width: 1px;
         | 
| 9 9 | 
             
              height: 1px;
         | 
| 10 10 | 
             
              padding: 0;
         | 
| 11 | 
            +
              margin: -1px; // Fix for https://github.com/twbs/bootstrap/issues/25686
         | 
| 11 12 | 
             
              overflow: hidden;
         | 
| 12 13 | 
             
              clip: rect(0, 0, 0, 0);
         | 
| 13 14 | 
             
              white-space: nowrap;
         | 
| @@ -20,7 +21,7 @@ | |
| 20 21 | 
             
            //
         | 
| 21 22 | 
             
            // Credit: HTML5 Boilerplate
         | 
| 22 23 |  | 
| 23 | 
            -
            @mixin sr-only-focusable {
         | 
| 24 | 
            +
            @mixin sr-only-focusable() {
         | 
| 24 25 | 
             
              &:active,
         | 
| 25 26 | 
             
              &:focus {
         | 
| 26 27 | 
             
                position: static;
         | 
| @@ -2,15 +2,16 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            // Typography
         | 
| 4 4 |  | 
| 5 | 
            -
            @mixin text-emphasis-variant($parent, $color) {
         | 
| 5 | 
            +
            @mixin text-emphasis-variant($parent, $color, $ignore-warning: false) {
         | 
| 6 6 | 
             
              #{$parent} {
         | 
| 7 7 | 
             
                color: $color !important;
         | 
| 8 8 | 
             
              }
         | 
| 9 9 | 
             
              @if $emphasized-link-hover-darken-percentage != 0 {
         | 
| 10 10 | 
             
                a#{$parent} {
         | 
| 11 | 
            -
                  @include hover-focus {
         | 
| 11 | 
            +
                  @include hover-focus() {
         | 
| 12 12 | 
             
                    color: darken($color, $emphasized-link-hover-darken-percentage) !important;
         | 
| 13 13 | 
             
                  }
         | 
| 14 14 | 
             
                }
         | 
| 15 15 | 
             
              }
         | 
| 16 | 
            +
              @include deprecate("`text-emphasis-variant()`", "v4.4.0", "v5", $ignore-warning);
         | 
| 16 17 | 
             
            }
         | 
| @@ -1,16 +1,26 @@ | |
| 1 | 
            -
            // stylelint-disable property- | 
| 1 | 
            +
            // stylelint-disable property-disallowed-list
         | 
| 2 2 | 
             
            @mixin transition($transition...) {
         | 
| 3 | 
            +
              @if length($transition) == 0 {
         | 
| 4 | 
            +
                $transition: $transition-base;
         | 
| 5 | 
            +
              }
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              @if length($transition) > 1 {
         | 
| 8 | 
            +
                @each $value in $transition {
         | 
| 9 | 
            +
                  @if $value == null or $value == none {
         | 
| 10 | 
            +
                    @warn "The keyword 'none' or 'null' must be used as a single argument.";
         | 
| 11 | 
            +
                  }
         | 
| 12 | 
            +
                }
         | 
| 13 | 
            +
              }
         | 
| 14 | 
            +
             | 
| 3 15 | 
             
              @if $enable-transitions {
         | 
| 4 | 
            -
                @if  | 
| 5 | 
            -
                  transition: $transition-base;
         | 
| 6 | 
            -
                } @else {
         | 
| 16 | 
            +
                @if nth($transition, 1) != null {
         | 
| 7 17 | 
             
                  transition: $transition;
         | 
| 8 18 | 
             
                }
         | 
| 9 | 
            -
              }
         | 
| 10 19 |  | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 20 | 
            +
                @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {
         | 
| 21 | 
            +
                  @media (prefers-reduced-motion: reduce) {
         | 
| 22 | 
            +
                    transition: none;
         | 
| 23 | 
            +
                  }
         | 
| 14 24 | 
             
                }
         | 
| 15 25 | 
             
              }
         | 
| 16 26 | 
             
            }
         | 
| @@ -1,12 +1,12 @@ | |
| 1 1 | 
             
            // stylelint-disable declaration-no-important
         | 
| 2 2 |  | 
| 3 3 | 
             
            @each $color, $value in $theme-colors {
         | 
| 4 | 
            -
              @include bg-variant(".bg-#{$color}", $value);
         | 
| 4 | 
            +
              @include bg-variant(".bg-#{$color}", $value, true);
         | 
| 5 5 | 
             
            }
         | 
| 6 6 |  | 
| 7 7 | 
             
            @if $enable-gradients {
         | 
| 8 8 | 
             
              @each $color, $value in $theme-colors {
         | 
| 9 | 
            -
                @include bg-gradient-variant(".bg-gradient-#{$color}", $value);
         | 
| 9 | 
            +
                @include bg-gradient-variant(".bg-gradient-#{$color}", $value, true);
         | 
| 10 10 | 
             
              }
         | 
| 11 11 | 
             
            }
         | 
| 12 12 |  | 
| @@ -11,7 +11,7 @@ | |
| 11 11 | 
             
            .text-justify  { text-align: justify !important; }
         | 
| 12 12 | 
             
            .text-wrap     { white-space: normal !important; }
         | 
| 13 13 | 
             
            .text-nowrap   { white-space: nowrap !important; }
         | 
| 14 | 
            -
            .text-truncate { @include text-truncate; }
         | 
| 14 | 
            +
            .text-truncate { @include text-truncate(); }
         | 
| 15 15 |  | 
| 16 16 | 
             
            // Responsive alignment
         | 
| 17 17 |  | 
| @@ -45,7 +45,7 @@ | |
| 45 45 | 
             
            .text-white { color: $white !important; }
         | 
| 46 46 |  | 
| 47 47 | 
             
            @each $color, $value in $theme-colors {
         | 
| 48 | 
            -
              @include text-emphasis-variant(".text-#{$color}", $value);
         | 
| 48 | 
            +
              @include text-emphasis-variant(".text-#{$color}", $value, true);
         | 
| 49 49 | 
             
            }
         | 
| 50 50 |  | 
| 51 51 | 
             
            .text-body { color: $body-color !important; }
         | 
| @@ -63,8 +63,8 @@ | |
| 63 63 | 
             
            .text-decoration-none { text-decoration: none !important; }
         | 
| 64 64 |  | 
| 65 65 | 
             
            .text-break {
         | 
| 66 | 
            -
              word-break: break-word !important; //  | 
| 67 | 
            -
               | 
| 66 | 
            +
              word-break: break-word !important; // Deprecated, but avoids issues with flex containers
         | 
| 67 | 
            +
              word-wrap: break-word !important; // Used instead of `overflow-wrap` for IE & Edge Legacy
         | 
| 68 68 | 
             
            }
         | 
| 69 69 |  | 
| 70 70 | 
             
            // Reset
         | 
    
        data/bootstrap.gemspec
    CHANGED
    
    | @@ -25,7 +25,7 @@ Gem::Specification.new do |s| | |
| 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 ' | 
| 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'
         | 
    
        data/lib/bootstrap/version.rb
    CHANGED
    
    
    
        data/tasks/updater/network.rb
    CHANGED
    
    | @@ -25,7 +25,7 @@ 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 | 
            +
                      contents[name] = URI.open("#{path_url}/#{name}").read
         | 
| 29 29 | 
             
                      WRITE_FILES_MUTEX.synchronize { write_cached_files path, name => contents[name] }
         | 
| 30 30 | 
             
                    }
         | 
| 31 31 | 
             
                  end.each(&:join)
         | 
| @@ -62,7 +62,7 @@ class Updater | |
| 62 62 | 
             
                    File.read(cache_path, mode: 'rb')
         | 
| 63 63 | 
             
                  else
         | 
| 64 64 | 
             
                    log_http_get_file url, false
         | 
| 65 | 
            -
                    content = open(url).read
         | 
| 65 | 
            +
                    content = URI.open(url).read
         | 
| 66 66 | 
             
                    File.open(cache_path, 'wb') { |f| f.write content }
         | 
| 67 67 | 
             
                    content
         | 
| 68 68 | 
             
                  end
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            Chrome >= 25
         | 
| @@ -17,7 +17,9 @@ module DummyRailsIntegration | |
| 17 17 |  | 
| 18 18 | 
             
              def screenshot!
         | 
| 19 19 | 
             
                path = "tmp/#{name}.png"
         | 
| 20 | 
            -
                 | 
| 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 | 
| 16 | 
            -
            require 'capybara/ | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
               | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 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 = : | 
| 32 | 
            -
              config.javascript_driver = : | 
| 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. | 
| 4 | 
            +
              version: 4.6.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:  | 
| 11 | 
            +
            date: 2021-01-26 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: popper_js
         | 
| @@ -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:  | 
| 118 | 
            +
              name: cuprite
         | 
| 119 119 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 120 120 | 
             
                requirements:
         | 
| 121 121 | 
             
                - - ">="
         | 
| @@ -334,6 +334,7 @@ files: | |
| 334 334 | 
             
            - assets/stylesheets/bootstrap/utilities/_embed.scss
         | 
| 335 335 | 
             
            - assets/stylesheets/bootstrap/utilities/_flex.scss
         | 
| 336 336 | 
             
            - assets/stylesheets/bootstrap/utilities/_float.scss
         | 
| 337 | 
            +
            - assets/stylesheets/bootstrap/utilities/_interactions.scss
         | 
| 337 338 | 
             
            - assets/stylesheets/bootstrap/utilities/_overflow.scss
         | 
| 338 339 | 
             
            - assets/stylesheets/bootstrap/utilities/_position.scss
         | 
| 339 340 | 
             
            - assets/stylesheets/bootstrap/utilities/_screenreaders.scss
         | 
| @@ -355,8 +356,10 @@ files: | |
| 355 356 | 
             
            - tasks/updater/scss.rb
         | 
| 356 357 | 
             
            - test/dummy_rails/README.rdoc
         | 
| 357 358 | 
             
            - test/dummy_rails/Rakefile
         | 
| 359 | 
            +
            - test/dummy_rails/app/assets/config/manifest.js
         | 
| 358 360 | 
             
            - test/dummy_rails/app/assets/images/.keep
         | 
| 359 361 | 
             
            - test/dummy_rails/app/assets/javascripts/application.js
         | 
| 362 | 
            +
            - test/dummy_rails/app/assets/stylesheets/.browserslistrc
         | 
| 360 363 | 
             
            - test/dummy_rails/app/assets/stylesheets/application.sass
         | 
| 361 364 | 
             
            - test/dummy_rails/app/controllers/application_controller.rb
         | 
| 362 365 | 
             
            - test/dummy_rails/app/controllers/pages_controller.rb
         | 
| @@ -384,6 +387,7 @@ files: | |
| 384 387 | 
             
            - test/gemfiles/rails_4_2.gemfile
         | 
| 385 388 | 
             
            - test/gemfiles/rails_5_0.gemfile
         | 
| 386 389 | 
             
            - test/gemfiles/rails_5_1.gemfile
         | 
| 390 | 
            +
            - test/gemfiles/rails_6_0.gemfile
         | 
| 387 391 | 
             
            - test/rails_test.rb
         | 
| 388 392 | 
             
            - test/support/dummy_rails_integration.rb
         | 
| 389 393 | 
             
            - test/support/reporting.rb
         | 
| @@ -408,8 +412,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 408 412 | 
             
                - !ruby/object:Gem::Version
         | 
| 409 413 | 
             
                  version: '0'
         | 
| 410 414 | 
             
            requirements: []
         | 
| 411 | 
            -
             | 
| 412 | 
            -
            rubygems_version: 2.7.8
         | 
| 415 | 
            +
            rubygems_version: 3.1.2
         | 
| 413 416 | 
             
            signing_key: 
         | 
| 414 417 | 
             
            specification_version: 4
         | 
| 415 418 | 
             
            summary: The most popular HTML, CSS, and JavaScript framework for developing responsive,
         | 
| @@ -417,8 +420,10 @@ summary: The most popular HTML, CSS, and JavaScript framework for developing res | |
| 417 420 | 
             
            test_files:
         | 
| 418 421 | 
             
            - test/dummy_rails/README.rdoc
         | 
| 419 422 | 
             
            - test/dummy_rails/Rakefile
         | 
| 423 | 
            +
            - test/dummy_rails/app/assets/config/manifest.js
         | 
| 420 424 | 
             
            - test/dummy_rails/app/assets/images/.keep
         | 
| 421 425 | 
             
            - test/dummy_rails/app/assets/javascripts/application.js
         | 
| 426 | 
            +
            - test/dummy_rails/app/assets/stylesheets/.browserslistrc
         | 
| 422 427 | 
             
            - test/dummy_rails/app/assets/stylesheets/application.sass
         | 
| 423 428 | 
             
            - test/dummy_rails/app/controllers/application_controller.rb
         | 
| 424 429 | 
             
            - test/dummy_rails/app/controllers/pages_controller.rb
         | 
| @@ -446,6 +451,7 @@ test_files: | |
| 446 451 | 
             
            - test/gemfiles/rails_4_2.gemfile
         | 
| 447 452 | 
             
            - test/gemfiles/rails_5_0.gemfile
         | 
| 448 453 | 
             
            - test/gemfiles/rails_5_1.gemfile
         | 
| 454 | 
            +
            - test/gemfiles/rails_6_0.gemfile
         | 
| 449 455 | 
             
            - test/rails_test.rb
         | 
| 450 456 | 
             
            - test/support/dummy_rails_integration.rb
         | 
| 451 457 | 
             
            - test/support/reporting.rb
         |