nex-bootstrap 4.6.3
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.
- checksums.yaml +7 -0
- data/.gitattributes +14 -0
- data/.gitignore +19 -0
- data/.travis.yml +31 -0
- data/CHANGELOG.md +25 -0
- data/Gemfile +11 -0
- data/LICENSE +21 -0
- data/README.md +109 -0
- data/Rakefile +63 -0
- data/assets/javascripts/bootstrap/alert.js +183 -0
- data/assets/javascripts/bootstrap/button.js +225 -0
- data/assets/javascripts/bootstrap/carousel.js +640 -0
- data/assets/javascripts/bootstrap/collapse.js +394 -0
- data/assets/javascripts/bootstrap/dropdown.js +557 -0
- data/assets/javascripts/bootstrap/modal.js +660 -0
- data/assets/javascripts/bootstrap/popover.js +243 -0
- data/assets/javascripts/bootstrap/scrollspy.js +337 -0
- data/assets/javascripts/bootstrap/tab.js +259 -0
- data/assets/javascripts/bootstrap/toast.js +265 -0
- data/assets/javascripts/bootstrap/tooltip.js +886 -0
- data/assets/javascripts/bootstrap/util.js +189 -0
- data/assets/javascripts/bootstrap-sprockets.js +12 -0
- data/assets/javascripts/bootstrap.js +4356 -0
- data/assets/javascripts/bootstrap.min.js +6 -0
- data/assets/stylesheets/_bootstrap-grid.scss +30 -0
- data/assets/stylesheets/_bootstrap-reboot.scss +12 -0
- data/assets/stylesheets/_bootstrap.scss +44 -0
- data/assets/stylesheets/bootstrap/_alert.scss +52 -0
- data/assets/stylesheets/bootstrap/_badge.scss +54 -0
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +42 -0
- data/assets/stylesheets/bootstrap/_button-group.scss +163 -0
- data/assets/stylesheets/bootstrap/_buttons.scss +142 -0
- data/assets/stylesheets/bootstrap/_card.scss +286 -0
- data/assets/stylesheets/bootstrap/_carousel.scss +200 -0
- data/assets/stylesheets/bootstrap/_close.scss +40 -0
- data/assets/stylesheets/bootstrap/_code.scss +48 -0
- data/assets/stylesheets/bootstrap/_custom-forms.scss +526 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +192 -0
- data/assets/stylesheets/bootstrap/_forms.scss +347 -0
- data/assets/stylesheets/bootstrap/_functions.scss +190 -0
- data/assets/stylesheets/bootstrap/_grid.scss +73 -0
- data/assets/stylesheets/bootstrap/_images.scss +42 -0
- data/assets/stylesheets/bootstrap/_input-group.scss +211 -0
- data/assets/stylesheets/bootstrap/_jumbotron.scss +17 -0
- data/assets/stylesheets/bootstrap/_list-group.scss +154 -0
- data/assets/stylesheets/bootstrap/_media.scss +8 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +47 -0
- data/assets/stylesheets/bootstrap/_modal.scss +240 -0
- data/assets/stylesheets/bootstrap/_nav.scss +125 -0
- data/assets/stylesheets/bootstrap/_navbar.scss +332 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +74 -0
- data/assets/stylesheets/bootstrap/_popover.scss +170 -0
- data/assets/stylesheets/bootstrap/_print.scss +132 -0
- data/assets/stylesheets/bootstrap/_progress.scss +47 -0
- data/assets/stylesheets/bootstrap/_reboot.scss +484 -0
- data/assets/stylesheets/bootstrap/_root.scss +19 -0
- data/assets/stylesheets/bootstrap/_spinners.scss +65 -0
- data/assets/stylesheets/bootstrap/_tables.scss +185 -0
- data/assets/stylesheets/bootstrap/_toasts.scss +46 -0
- data/assets/stylesheets/bootstrap/_tooltip.scss +115 -0
- data/assets/stylesheets/bootstrap/_transitions.scss +26 -0
- data/assets/stylesheets/bootstrap/_type.scss +125 -0
- data/assets/stylesheets/bootstrap/_utilities.scss +18 -0
- data/assets/stylesheets/bootstrap/_variables.scss +1149 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +13 -0
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +23 -0
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +17 -0
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +76 -0
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +20 -0
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +123 -0
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +110 -0
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +62 -0
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
- data/assets/stylesheets/bootstrap/mixins/_float.scss +14 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +195 -0
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +45 -0
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +80 -0
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +69 -0
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +37 -0
- data/assets/stylesheets/bootstrap/mixins/_image.scss +36 -0
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +11 -0
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +22 -0
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +17 -0
- data/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +34 -0
- data/assets/stylesheets/bootstrap/mixins/_size.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +39 -0
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +17 -0
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +11 -0
- data/assets/stylesheets/bootstrap/mixins/_text-truncate.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +26 -0
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +8 -0
- data/assets/stylesheets/bootstrap/utilities/_align.scss +8 -0
- data/assets/stylesheets/bootstrap/utilities/_background.scss +19 -0
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +75 -0
- data/assets/stylesheets/bootstrap/utilities/_clearfix.scss +3 -0
- data/assets/stylesheets/bootstrap/utilities/_display.scss +26 -0
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +39 -0
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +51 -0
- data/assets/stylesheets/bootstrap/utilities/_float.scss +11 -0
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_position.scss +32 -0
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +11 -0
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +20 -0
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +73 -0
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +72 -0
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +13 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +228 -0
- data/bootstrap.gemspec +38 -0
- data/lib/bootstrap/engine.rb +15 -0
- data/lib/bootstrap/version.rb +6 -0
- data/lib/bootstrap.rb +75 -0
- data/tasks/updater/js.rb +68 -0
- data/tasks/updater/logger.rb +57 -0
- data/tasks/updater/network.rb +103 -0
- data/tasks/updater/scss.rb +26 -0
- data/tasks/updater.rb +67 -0
- data/test/dummy_rails/README.rdoc +3 -0
- data/test/dummy_rails/Rakefile +6 -0
- data/test/dummy_rails/app/assets/config/manifest.js +3 -0
- data/test/dummy_rails/app/assets/images/.keep +0 -0
- data/test/dummy_rails/app/assets/javascripts/application.js +7 -0
- data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
- data/test/dummy_rails/app/assets/stylesheets/application.sass +4 -0
- data/test/dummy_rails/app/controllers/application_controller.rb +5 -0
- data/test/dummy_rails/app/controllers/pages_controller.rb +4 -0
- data/test/dummy_rails/app/helpers/application_helper.rb +2 -0
- data/test/dummy_rails/app/views/layouts/application.html.erb +14 -0
- data/test/dummy_rails/app/views/pages/root.html.slim +58 -0
- data/test/dummy_rails/config/application.rb +35 -0
- data/test/dummy_rails/config/boot.rb +5 -0
- data/test/dummy_rails/config/environment.rb +5 -0
- data/test/dummy_rails/config/environments/development.rb +23 -0
- data/test/dummy_rails/config/environments/production.rb +82 -0
- data/test/dummy_rails/config/environments/test.rb +38 -0
- data/test/dummy_rails/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy_rails/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy_rails/config/initializers/inflections.rb +16 -0
- data/test/dummy_rails/config/initializers/mime_types.rb +5 -0
- data/test/dummy_rails/config/initializers/secret_token.rb +18 -0
- data/test/dummy_rails/config/initializers/session_store.rb +3 -0
- data/test/dummy_rails/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy_rails/config/locales/en.yml +3 -0
- data/test/dummy_rails/config/locales/es.yml +3 -0
- data/test/dummy_rails/config/routes.rb +3 -0
- data/test/dummy_rails/config.ru +4 -0
- data/test/dummy_rails/log/.keep +0 -0
- data/test/gemfiles/rails_4_2.gemfile +7 -0
- data/test/gemfiles/rails_5_0.gemfile +8 -0
- data/test/gemfiles/rails_5_1.gemfile +8 -0
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- data/test/rails_test.rb +24 -0
- data/test/support/dummy_rails_integration.rb +31 -0
- data/test/support/reporting.rb +27 -0
- data/test/test_helper.rb +41 -0
- data/test/test_helper_rails.rb +6 -0
- metadata +445 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: '0182e09be6076176e63856a8bb2143b0fb606141814de2ed1df5cc6776f9ce10'
|
|
4
|
+
data.tar.gz: 261ac174109484e5292a2ec61037b0a538f6b57db11582b89364770b63735946
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 384d52641fbf577fb0319453bf9280716b0b1d041d11688d6d035a263cfa662b3e95df01a944d7888eee6006e5fa2ddbb28fd893d09e143909420addcd7e8996
|
|
7
|
+
data.tar.gz: dff9e55a7919d0b6da736e050217a9c1d7d2eafd6d1b1e5e1deb63b1aa1d16ad35df10e060a30799042e23b6e0fd7f5392ead48bd49d4c3159acd7ccac131bf7
|
data/.gitattributes
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
.* text eol=lf
|
|
2
|
+
Gemfile text eol=lf
|
|
3
|
+
LICENSE text eol=lf
|
|
4
|
+
Rakefile text eol=lf
|
|
5
|
+
*.gemfile text eol=lf
|
|
6
|
+
*.gemspec text eol=lf
|
|
7
|
+
*.html.erb text eol=lf
|
|
8
|
+
*.html.slim text eol=lf
|
|
9
|
+
*.js text eol=lf
|
|
10
|
+
*.rb text eol=lf
|
|
11
|
+
*.ru text eol=lf
|
|
12
|
+
*.sass text eol=lf
|
|
13
|
+
*.scss text eol=lf
|
|
14
|
+
*.yml text eol=lf
|
data/.gitignore
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
*.gem
|
|
2
|
+
.sass-cache
|
|
3
|
+
bootstrap.css
|
|
4
|
+
bootstrap-responsive.css
|
|
5
|
+
Gemfile.lock
|
|
6
|
+
*.gemfile.lock
|
|
7
|
+
.rvmrc
|
|
8
|
+
.rbenv-version
|
|
9
|
+
|
|
10
|
+
# Ignore bundler config
|
|
11
|
+
/.bundle
|
|
12
|
+
/vendor/cache
|
|
13
|
+
/vendor/bundle
|
|
14
|
+
tmp/
|
|
15
|
+
test/screenshots/
|
|
16
|
+
test/dummy_rails/log/*.log
|
|
17
|
+
test/dummy_rails/public/assets/
|
|
18
|
+
.DS_Store
|
|
19
|
+
node_modules
|
data/.travis.yml
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
language: ruby
|
|
2
|
+
sudo: false
|
|
3
|
+
addons:
|
|
4
|
+
apt:
|
|
5
|
+
packages:
|
|
6
|
+
- chromium-browser
|
|
7
|
+
rvm:
|
|
8
|
+
- 2.5
|
|
9
|
+
- 2.6
|
|
10
|
+
- 2.7
|
|
11
|
+
|
|
12
|
+
gemfile:
|
|
13
|
+
- test/gemfiles/rails_4_2.gemfile
|
|
14
|
+
- test/gemfiles/rails_5_0.gemfile
|
|
15
|
+
- test/gemfiles/rails_5_1.gemfile
|
|
16
|
+
- test/gemfiles/rails_6_0.gemfile
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
exclude:
|
|
20
|
+
rvm: 2.7
|
|
21
|
+
gemfile: test/gemfiles/rails_4_2.gemfile
|
|
22
|
+
|
|
23
|
+
cache: bundler
|
|
24
|
+
bundler_args: --path ../../vendor/bundle --without debug
|
|
25
|
+
notifications:
|
|
26
|
+
slack: heybb:3n88HHilXn76ji9vV4gL819Y
|
|
27
|
+
env:
|
|
28
|
+
global:
|
|
29
|
+
- VERBOSE=1
|
|
30
|
+
script:
|
|
31
|
+
bundle exec rake --trace
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
The changelog is tracked here but also in [the Releases section of the GitHub project](https://github.com/twbs/bootstrap-rubygem/releases).
|
|
4
|
+
The changelog only includes changes specific to the RubyGem.
|
|
5
|
+
|
|
6
|
+
The Bootstrap framework changes can be found in [the Releases section of twbs/bootstrap](https://github.com/twbs/bootstrap/releases).
|
|
7
|
+
Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release of Bootstrap.
|
|
8
|
+
|
|
9
|
+
# 4.2.1
|
|
10
|
+
|
|
11
|
+
* Bootstrap rubygem now depends on SassC instead of Sass.
|
|
12
|
+
|
|
13
|
+
# 4.0.0.beta2.1
|
|
14
|
+
|
|
15
|
+
Fixes an extraneous `sourceMappingURL` in `bootstrap.js`.
|
|
16
|
+
[#124](https://github.com/twbs/bootstrap-rubygem/issues/124)
|
|
17
|
+
|
|
18
|
+
# 4.0.0.beta2
|
|
19
|
+
|
|
20
|
+
Compass is no longer supported. Minimum required Sass version is now v3.5.2.
|
|
21
|
+
[#122](https://github.com/twbs/bootstrap-rubygem/pull/122)
|
|
22
|
+
|
|
23
|
+
# 4.0.0.alpha3.1
|
|
24
|
+
|
|
25
|
+
This release corresponds to the upstream Bootstrap 4 Alpha 3.
|
data/Gemfile
ADDED
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2013-2016 Twitter, Inc
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
This is a fork of the [Bootstrap 4][bootstrap-home] ruby gem for Ruby on Rails (Sprockets) and Hanami (formerly Lotus), which removes the sassc-rails dependency.
|
|
2
|
+
|
|
3
|
+
For Sass versions of Bootstrap 3 and 2 see [bootstrap-sass](https://github.com/twbs/bootstrap-sass) instead.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Please see the appropriate guide for your environment of choice:
|
|
8
|
+
|
|
9
|
+
* [Ruby on Rails 4+](#a-ruby-on-rails) or other Sprockets environment.
|
|
10
|
+
* [Other Ruby frameworks](#b-other-ruby-frameworks) not on Rails.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### a. Ruby on Rails
|
|
14
|
+
|
|
15
|
+
Add `bootstrap` to your Gemfile:
|
|
16
|
+
|
|
17
|
+
```ruby
|
|
18
|
+
gem 'bootstrap', '~> 4.6.1'
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Ensure that `sprockets-rails` is at least v2.3.2.
|
|
22
|
+
|
|
23
|
+
`bundle install` and restart your server to make the files available through the pipeline.
|
|
24
|
+
|
|
25
|
+
Import Bootstrap styles in `app/assets/stylesheets/application.scss`:
|
|
26
|
+
|
|
27
|
+
```scss
|
|
28
|
+
// Custom bootstrap variables must be set or imported *before* bootstrap.
|
|
29
|
+
@import "bootstrap";
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The available variables can be found [here](assets/stylesheets/bootstrap/_variables.scss).
|
|
33
|
+
|
|
34
|
+
Make sure the file has `.scss` extension (or `.sass` for Sass syntax). If you have just generated a new Rails app,
|
|
35
|
+
it may come with a `.css` file instead. If this file exists, it will be served instead of Sass, so rename it:
|
|
36
|
+
|
|
37
|
+
```console
|
|
38
|
+
$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Then, remove all the `*= require` and `*= require_tree` statements from the Sass file. Instead, use `@import` to import Sass files.
|
|
42
|
+
|
|
43
|
+
Do not use `*= require` in Sass or your other stylesheets will not be able to access the Bootstrap mixins and variables.
|
|
44
|
+
|
|
45
|
+
Bootstrap JavaScript depends on jQuery.
|
|
46
|
+
If you're using Rails 5.1+, add the `jquery-rails` gem to your Gemfile:
|
|
47
|
+
|
|
48
|
+
```ruby
|
|
49
|
+
gem 'jquery-rails'
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Bootstrap tooltips and popovers depend on [popper.js] for positioning.
|
|
53
|
+
The `bootstrap` gem already depends on the
|
|
54
|
+
[popper_js](https://github.com/glebm/popper_js-rubygem) gem.
|
|
55
|
+
|
|
56
|
+
Add Bootstrap dependencies and Bootstrap to your `application.js`:
|
|
57
|
+
|
|
58
|
+
```js
|
|
59
|
+
//= require jquery3
|
|
60
|
+
//= require popper
|
|
61
|
+
//= require bootstrap-sprockets
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
While `bootstrap-sprockets` provides individual Bootstrap components
|
|
65
|
+
for ease of debugging, you may alternatively require
|
|
66
|
+
the concatenated `bootstrap` for faster compilation:
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
//= require jquery3
|
|
70
|
+
//= require popper
|
|
71
|
+
//= require bootstrap
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### b. Other Ruby frameworks
|
|
75
|
+
|
|
76
|
+
If your framework uses Sprockets or Hanami,
|
|
77
|
+
the assets will be registered with Sprockets when the gem is required,
|
|
78
|
+
and you can use them as per the Rails section of the guide.
|
|
79
|
+
|
|
80
|
+
Otherwise you may need to register the assets manually.
|
|
81
|
+
Refer to your framework's documentation on the subject.
|
|
82
|
+
|
|
83
|
+
## Configuration
|
|
84
|
+
|
|
85
|
+
### Sass: Autoprefixer
|
|
86
|
+
|
|
87
|
+
Bootstrap requires the use of [Autoprefixer][autoprefixer].
|
|
88
|
+
[Autoprefixer][autoprefixer] adds vendor prefixes to CSS rules using values from [Can I Use](http://caniuse.com/).
|
|
89
|
+
|
|
90
|
+
If you are using bootstrap with Rails, autoprefixer is set up for you automatically.
|
|
91
|
+
Otherwise, please consult the [Autoprefixer documentation][autoprefixer].
|
|
92
|
+
|
|
93
|
+
### Sass: Individual components
|
|
94
|
+
|
|
95
|
+
By default all of Bootstrap is imported.
|
|
96
|
+
|
|
97
|
+
You can also import components explicitly. To start with a full list of modules copy
|
|
98
|
+
[`_bootstrap.scss`](assets/stylesheets/_bootstrap.scss) file into your assets as `_bootstrap-custom.scss`.
|
|
99
|
+
Then comment out components you do not want from `_bootstrap-custom`.
|
|
100
|
+
In the application Sass file, replace `@import 'bootstrap'` with:
|
|
101
|
+
|
|
102
|
+
```scss
|
|
103
|
+
@import 'bootstrap-custom';
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
[bootstrap-home]: https://getbootstrap.com
|
|
107
|
+
[bootstrap-variables.scss]: https://github.com/twbs/bootstrap-rubygem/blob/master/templates/project/_bootstrap-variables.scss
|
|
108
|
+
[autoprefixer]: https://github.com/ai/autoprefixer
|
|
109
|
+
[popper.js]: https://popper.js.org
|
data/Rakefile
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
require 'bundler/gem_tasks'
|
|
2
|
+
|
|
3
|
+
lib_path = File.join(File.dirname(__FILE__), 'lib')
|
|
4
|
+
$:.unshift(lib_path) unless $:.include?(lib_path)
|
|
5
|
+
|
|
6
|
+
require 'rake/testtask'
|
|
7
|
+
Rake::TestTask.new do |t|
|
|
8
|
+
t.libs << 'test'
|
|
9
|
+
t.test_files = FileList['test/**/*_test.rb']
|
|
10
|
+
t.verbose = false
|
|
11
|
+
t.warning = false
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
desc 'Test all Gemfiles from test/*.gemfile'
|
|
15
|
+
task :test_all_gemfiles do
|
|
16
|
+
require 'term/ansicolor'
|
|
17
|
+
require 'pty'
|
|
18
|
+
require 'shellwords'
|
|
19
|
+
cmd = 'bundle install --quiet && bundle exec rake --trace'
|
|
20
|
+
statuses = Dir.glob('./test/gemfiles/*{[!.lock]}').map do |gemfile|
|
|
21
|
+
env = {'BUNDLE_GEMFILE' => gemfile}
|
|
22
|
+
cmd_with_env = " (#{env.map { |k, v| "export #{k}=#{Shellwords.escape v}" } * ' '}; #{cmd})"
|
|
23
|
+
$stderr.puts Term::ANSIColor.cyan("Testing\n#{cmd_with_env}")
|
|
24
|
+
Bundler.with_clean_env do
|
|
25
|
+
PTY.spawn(env, cmd) do |r, _w, pid|
|
|
26
|
+
begin
|
|
27
|
+
r.each_line { |l| puts l }
|
|
28
|
+
rescue Errno::EIO
|
|
29
|
+
# Errno:EIO error means that the process has finished giving output.
|
|
30
|
+
ensure
|
|
31
|
+
::Process.wait pid
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
[$? && $?.exitstatus == 0, cmd_with_env]
|
|
36
|
+
end
|
|
37
|
+
failed_cmds = statuses.reject(&:first).map { |(_status, cmd_with_env)| cmd_with_env }
|
|
38
|
+
if failed_cmds.empty?
|
|
39
|
+
$stderr.puts Term::ANSIColor.green('Tests pass with all gemfiles')
|
|
40
|
+
else
|
|
41
|
+
$stderr.puts Term::ANSIColor.red("Failing (#{failed_cmds.size} / #{statuses.size})\n#{failed_cmds * "\n"}")
|
|
42
|
+
exit 1
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
desc 'Update bootstrap from upstream'
|
|
47
|
+
task :update, :branch do |t, args|
|
|
48
|
+
require './tasks/updater'
|
|
49
|
+
Updater.new(branch: args[:branch]).update_bootstrap
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
desc 'Start a dummy Rails app server'
|
|
53
|
+
task :rails_server do
|
|
54
|
+
require 'rack'
|
|
55
|
+
require 'term/ansicolor'
|
|
56
|
+
port = ENV['PORT'] || 9292
|
|
57
|
+
puts %Q(Starting on #{Term::ANSIColor.cyan "http://localhost:#{port}"})
|
|
58
|
+
Rack::Server.start(
|
|
59
|
+
config: 'test/dummy_rails/config.ru',
|
|
60
|
+
Port: port)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
task default: :test
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap alert.js v4.6.1 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2021 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'), require('./util.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['jquery', './util'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.jQuery, global.Util));
|
|
10
|
+
})(this, (function ($, Util) { 'use strict';
|
|
11
|
+
|
|
12
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
|
+
|
|
14
|
+
var $__default = /*#__PURE__*/_interopDefaultLegacy($);
|
|
15
|
+
var Util__default = /*#__PURE__*/_interopDefaultLegacy(Util);
|
|
16
|
+
|
|
17
|
+
function _defineProperties(target, props) {
|
|
18
|
+
for (var i = 0; i < props.length; i++) {
|
|
19
|
+
var descriptor = props[i];
|
|
20
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
21
|
+
descriptor.configurable = true;
|
|
22
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
23
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function _createClass(Constructor, protoProps, staticProps) {
|
|
28
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
29
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
30
|
+
return Constructor;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Constants
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
var NAME = 'alert';
|
|
38
|
+
var VERSION = '4.6.1';
|
|
39
|
+
var DATA_KEY = 'bs.alert';
|
|
40
|
+
var EVENT_KEY = "." + DATA_KEY;
|
|
41
|
+
var DATA_API_KEY = '.data-api';
|
|
42
|
+
var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
|
|
43
|
+
var CLASS_NAME_ALERT = 'alert';
|
|
44
|
+
var CLASS_NAME_FADE = 'fade';
|
|
45
|
+
var CLASS_NAME_SHOW = 'show';
|
|
46
|
+
var EVENT_CLOSE = "close" + EVENT_KEY;
|
|
47
|
+
var EVENT_CLOSED = "closed" + EVENT_KEY;
|
|
48
|
+
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
49
|
+
var SELECTOR_DISMISS = '[data-dismiss="alert"]';
|
|
50
|
+
/**
|
|
51
|
+
* Class definition
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
var Alert = /*#__PURE__*/function () {
|
|
55
|
+
function Alert(element) {
|
|
56
|
+
this._element = element;
|
|
57
|
+
} // Getters
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
var _proto = Alert.prototype;
|
|
61
|
+
|
|
62
|
+
// Public
|
|
63
|
+
_proto.close = function close(element) {
|
|
64
|
+
var rootElement = this._element;
|
|
65
|
+
|
|
66
|
+
if (element) {
|
|
67
|
+
rootElement = this._getRootElement(element);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
var customEvent = this._triggerCloseEvent(rootElement);
|
|
71
|
+
|
|
72
|
+
if (customEvent.isDefaultPrevented()) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
this._removeElement(rootElement);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
_proto.dispose = function dispose() {
|
|
80
|
+
$__default["default"].removeData(this._element, DATA_KEY);
|
|
81
|
+
this._element = null;
|
|
82
|
+
} // Private
|
|
83
|
+
;
|
|
84
|
+
|
|
85
|
+
_proto._getRootElement = function _getRootElement(element) {
|
|
86
|
+
var selector = Util__default["default"].getSelectorFromElement(element);
|
|
87
|
+
var parent = false;
|
|
88
|
+
|
|
89
|
+
if (selector) {
|
|
90
|
+
parent = document.querySelector(selector);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (!parent) {
|
|
94
|
+
parent = $__default["default"](element).closest("." + CLASS_NAME_ALERT)[0];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return parent;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
_proto._triggerCloseEvent = function _triggerCloseEvent(element) {
|
|
101
|
+
var closeEvent = $__default["default"].Event(EVENT_CLOSE);
|
|
102
|
+
$__default["default"](element).trigger(closeEvent);
|
|
103
|
+
return closeEvent;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
_proto._removeElement = function _removeElement(element) {
|
|
107
|
+
var _this = this;
|
|
108
|
+
|
|
109
|
+
$__default["default"](element).removeClass(CLASS_NAME_SHOW);
|
|
110
|
+
|
|
111
|
+
if (!$__default["default"](element).hasClass(CLASS_NAME_FADE)) {
|
|
112
|
+
this._destroyElement(element);
|
|
113
|
+
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
var transitionDuration = Util__default["default"].getTransitionDurationFromElement(element);
|
|
118
|
+
$__default["default"](element).one(Util__default["default"].TRANSITION_END, function (event) {
|
|
119
|
+
return _this._destroyElement(element, event);
|
|
120
|
+
}).emulateTransitionEnd(transitionDuration);
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
_proto._destroyElement = function _destroyElement(element) {
|
|
124
|
+
$__default["default"](element).detach().trigger(EVENT_CLOSED).remove();
|
|
125
|
+
} // Static
|
|
126
|
+
;
|
|
127
|
+
|
|
128
|
+
Alert._jQueryInterface = function _jQueryInterface(config) {
|
|
129
|
+
return this.each(function () {
|
|
130
|
+
var $element = $__default["default"](this);
|
|
131
|
+
var data = $element.data(DATA_KEY);
|
|
132
|
+
|
|
133
|
+
if (!data) {
|
|
134
|
+
data = new Alert(this);
|
|
135
|
+
$element.data(DATA_KEY, data);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (config === 'close') {
|
|
139
|
+
data[config](this);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
Alert._handleDismiss = function _handleDismiss(alertInstance) {
|
|
145
|
+
return function (event) {
|
|
146
|
+
if (event) {
|
|
147
|
+
event.preventDefault();
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
alertInstance.close(this);
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
_createClass(Alert, null, [{
|
|
155
|
+
key: "VERSION",
|
|
156
|
+
get: function get() {
|
|
157
|
+
return VERSION;
|
|
158
|
+
}
|
|
159
|
+
}]);
|
|
160
|
+
|
|
161
|
+
return Alert;
|
|
162
|
+
}();
|
|
163
|
+
/**
|
|
164
|
+
* Data API implementation
|
|
165
|
+
*/
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
$__default["default"](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));
|
|
169
|
+
/**
|
|
170
|
+
* jQuery
|
|
171
|
+
*/
|
|
172
|
+
|
|
173
|
+
$__default["default"].fn[NAME] = Alert._jQueryInterface;
|
|
174
|
+
$__default["default"].fn[NAME].Constructor = Alert;
|
|
175
|
+
|
|
176
|
+
$__default["default"].fn[NAME].noConflict = function () {
|
|
177
|
+
$__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
|
|
178
|
+
return Alert._jQueryInterface;
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
return Alert;
|
|
182
|
+
|
|
183
|
+
}));
|