bootstrap 4.6.0 → 5.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +61 -0
- data/Gemfile +1 -0
- data/README.md +33 -6
- data/Rakefile +10 -1
- data/assets/javascripts/bootstrap/alert.js +53 -155
- data/assets/javascripts/bootstrap/base-component.js +83 -0
- data/assets/javascripts/bootstrap/button.js +43 -198
- data/assets/javascripts/bootstrap/carousel.js +285 -550
- data/assets/javascripts/bootstrap/collapse.js +169 -323
- data/assets/javascripts/bootstrap/dom/data.js +62 -0
- data/assets/javascripts/bootstrap/dom/event-handler.js +236 -0
- data/assets/javascripts/bootstrap/dom/manipulator.js +71 -0
- data/assets/javascripts/bootstrap/dom/selector-engine.js +103 -0
- data/assets/javascripts/bootstrap/dropdown.js +300 -467
- data/assets/javascripts/bootstrap/modal.js +226 -575
- data/assets/javascripts/bootstrap/offcanvas.js +245 -0
- data/assets/javascripts/bootstrap/popover.js +61 -205
- data/assets/javascripts/bootstrap/scrollspy.js +216 -287
- data/assets/javascripts/bootstrap/tab.js +226 -203
- data/assets/javascripts/bootstrap/toast.js +136 -209
- data/assets/javascripts/bootstrap/tooltip.js +411 -757
- data/assets/javascripts/bootstrap/util/backdrop.js +139 -0
- data/assets/javascripts/bootstrap/util/component-functions.js +41 -0
- data/assets/javascripts/bootstrap/util/config.js +67 -0
- data/assets/javascripts/bootstrap/util/focustrap.js +113 -0
- data/assets/javascripts/bootstrap/util/index.js +281 -0
- data/assets/javascripts/bootstrap/util/sanitizer.js +110 -0
- data/assets/javascripts/bootstrap/util/scrollbar.js +112 -0
- data/assets/javascripts/bootstrap/util/swipe.js +134 -0
- data/assets/javascripts/bootstrap/util/template-factory.js +150 -0
- data/assets/javascripts/bootstrap-global-this-define.js +6 -0
- data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
- data/assets/javascripts/bootstrap-sprockets.js +23 -7
- data/assets/javascripts/bootstrap.js +3649 -3587
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +53 -21
- data/assets/stylesheets/_bootstrap-reboot.scss +5 -7
- data/assets/stylesheets/_bootstrap-utilities.scss +19 -0
- data/assets/stylesheets/_bootstrap.scss +21 -13
- data/assets/stylesheets/bootstrap/_accordion.scss +158 -0
- data/assets/stylesheets/bootstrap/_alert.scss +32 -16
- data/assets/stylesheets/bootstrap/_badge.scss +15 -31
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -24
- data/assets/stylesheets/bootstrap/_button-group.scss +27 -48
- data/assets/stylesheets/bootstrap/_buttons.scss +136 -71
- data/assets/stylesheets/bootstrap/_card.scss +66 -113
- data/assets/stylesheets/bootstrap/_carousel.scss +83 -36
- data/assets/stylesheets/bootstrap/_close.scss +51 -28
- data/assets/stylesheets/bootstrap/_containers.scss +41 -0
- data/assets/stylesheets/bootstrap/_dropdown.scss +129 -71
- data/assets/stylesheets/bootstrap/_forms.scss +9 -347
- data/assets/stylesheets/bootstrap/_functions.scss +181 -23
- data/assets/stylesheets/bootstrap/_grid.scss +18 -52
- data/assets/stylesheets/bootstrap/_helpers.scss +12 -0
- data/assets/stylesheets/bootstrap/_images.scss +1 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +77 -34
- data/assets/stylesheets/bootstrap/_maps.scss +174 -0
- data/assets/stylesheets/bootstrap/_mixins.scss +10 -15
- data/assets/stylesheets/bootstrap/_modal.scss +107 -110
- data/assets/stylesheets/bootstrap/_nav.scss +102 -25
- data/assets/stylesheets/bootstrap/_navbar.scss +129 -172
- data/assets/stylesheets/bootstrap/_offcanvas.scss +146 -0
- data/assets/stylesheets/bootstrap/_pagination.scss +72 -37
- data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
- data/assets/stylesheets/bootstrap/_popover.scss +99 -73
- data/assets/stylesheets/bootstrap/_progress.scss +35 -14
- data/assets/stylesheets/bootstrap/_reboot.scss +319 -192
- data/assets/stylesheets/bootstrap/_root.scss +177 -9
- data/assets/stylesheets/bootstrap/_spinners.scss +44 -24
- data/assets/stylesheets/bootstrap/_tables.scss +101 -115
- data/assets/stylesheets/bootstrap/_toasts.scss +54 -27
- data/assets/stylesheets/bootstrap/_tooltip.scss +67 -63
- data/assets/stylesheets/bootstrap/_transitions.scss +8 -1
- data/assets/stylesheets/bootstrap/_type.scss +40 -59
- data/assets/stylesheets/bootstrap/_utilities.scss +806 -18
- data/assets/stylesheets/bootstrap/_variables-dark.scss +87 -0
- data/assets/stylesheets/bootstrap/_variables.scss +1216 -615
- data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +95 -0
- data/assets/stylesheets/bootstrap/forms/_form-check.scss +189 -0
- data/assets/stylesheets/bootstrap/forms/_form-control.scss +214 -0
- data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
- data/assets/stylesheets/bootstrap/forms/_form-select.scss +80 -0
- data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
- data/assets/stylesheets/bootstrap/forms/_input-group.scss +132 -0
- data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
- data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
- data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +30 -0
- data/assets/stylesheets/bootstrap/helpers/_focus-ring.scss +5 -0
- data/assets/stylesheets/bootstrap/helpers/_icon-link.scss +25 -0
- data/assets/stylesheets/bootstrap/helpers/_position.scss +36 -0
- data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
- data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
- data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
- data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
- data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
- data/assets/stylesheets/bootstrap/mixins/_alert.scss +11 -6
- data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
- data/assets/stylesheets/bootstrap/mixins/_banner.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +10 -8
- data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +20 -16
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +60 -100
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +34 -27
- data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
- data/assets/stylesheets/bootstrap/mixins/_color-mode.scss +21 -0
- data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
- data/assets/stylesheets/bootstrap/mixins/_container.scss +11 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +53 -85
- data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +119 -37
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +7 -2
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_pagination.scss +7 -19
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +24 -0
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_utilities.scss +97 -0
- data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +33 -0
- data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +276 -132
- data/bootstrap.gemspec +6 -7
- data/lib/bootstrap/engine.rb +7 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +31 -7
- data/tasks/updater/network.rb +9 -3
- data/tasks/updater/scss.rb +2 -2
- data/tasks/updater.rb +2 -2
- data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
- data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
- data/test/dummy_rails/app/views/pages/root.html +89 -0
- data/test/dummy_rails/config/application.rb +0 -3
- data/test/gemfiles/rails_4_2.gemfile +1 -1
- data/test/gemfiles/rails_5_0.gemfile +1 -1
- data/test/gemfiles/rails_5_1.gemfile +1 -1
- data/test/gemfiles/rails_5_2.gemfile +8 -0
- data/test/gemfiles/rails_6_0.gemfile +1 -0
- data/test/gemfiles/rails_6_1.gemfile +8 -0
- data/test/gemfiles/rails_7_0_dartsass.gemfile +8 -0
- data/test/gemfiles/rails_7_0_sassc.gemfile +8 -0
- data/test/test_helper.rb +3 -2
- metadata +97 -85
- data/.travis.yml +0 -31
- data/assets/javascripts/bootstrap/util.js +0 -192
- data/assets/stylesheets/bootstrap/_code.scss +0 -48
- data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
- data/assets/stylesheets/bootstrap/_input-group.scss +0 -208
- data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
- data/assets/stylesheets/bootstrap/_media.scss +0 -8
- data/assets/stylesheets/bootstrap/_print.scss +0 -141
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
- data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
- data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
- data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
- data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
- data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
- data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
- data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
- data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
- data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
- data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
- data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
- data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
- data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
- /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9cc8c9361e6004e1f33ea619081fc68672a49d7f20e8a6bcf53ac8ec12e4c662
|
|
4
|
+
data.tar.gz: e65b879fec0203e16027ed41093bc20d276e202168abec214b9295a04ac0b3a8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 94d62cb6112a90a4a97ae631e3895f18650217e67f872565b26efa6a5a3228d223782e0f82a722efc8f0881b60f409c7ba320b2069962436952eeaf0c6b2431d
|
|
7
|
+
data.tar.gz: 8e0c37862c25003c9ba9a8892614050b4d8e82bdb4b902060f3aeb7f7af1dbcb89f89934e43a3f724a672b29eac7c87d2f789435283f9068c238719692159f2d
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
- push
|
|
5
|
+
- pull_request
|
|
6
|
+
- workflow_dispatch
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
env:
|
|
11
|
+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
|
12
|
+
strategy:
|
|
13
|
+
fail-fast: false
|
|
14
|
+
matrix:
|
|
15
|
+
ruby_version: ['2.5', '2.6', '2.7', '3.0', '3.1']
|
|
16
|
+
gemfile:
|
|
17
|
+
- test/gemfiles/rails_5_0.gemfile
|
|
18
|
+
- test/gemfiles/rails_5_1.gemfile
|
|
19
|
+
- test/gemfiles/rails_5_2.gemfile
|
|
20
|
+
- test/gemfiles/rails_6_0.gemfile
|
|
21
|
+
- test/gemfiles/rails_6_1.gemfile
|
|
22
|
+
- test/gemfiles/rails_7_0_sassc.gemfile
|
|
23
|
+
- test/gemfiles/rails_7_0_dartsass.gemfile
|
|
24
|
+
include:
|
|
25
|
+
- ruby_version: '2.5'
|
|
26
|
+
gemfile: test/gemfiles/rails_4_2.gemfile
|
|
27
|
+
- ruby_version: '2.6'
|
|
28
|
+
gemfile: test/gemfiles/rails_4_2.gemfile
|
|
29
|
+
exclude:
|
|
30
|
+
- ruby_version: '2.5'
|
|
31
|
+
gemfile: test/gemfiles/rails_7_0_sassc.gemfile
|
|
32
|
+
- ruby_version: '2.5'
|
|
33
|
+
gemfile: test/gemfiles/rails_7_0_dartsass.gemfile
|
|
34
|
+
- ruby_version: '2.6'
|
|
35
|
+
gemfile: test/gemfiles/rails_7_0_sassc.gemfile
|
|
36
|
+
- ruby_version: '2.6'
|
|
37
|
+
gemfile: test/gemfiles/rails_7_0_dartsass.gemfile
|
|
38
|
+
- ruby_version: '3.0'
|
|
39
|
+
gemfile: test/gemfiles/rails_5_0.gemfile
|
|
40
|
+
- ruby_version: '3.0'
|
|
41
|
+
gemfile: test/gemfiles/rails_5_1.gemfile
|
|
42
|
+
- ruby_version: '3.0'
|
|
43
|
+
gemfile: test/gemfiles/rails_5_2.gemfile
|
|
44
|
+
- ruby_version: '3.1'
|
|
45
|
+
gemfile: test/gemfiles/rails_5_0.gemfile
|
|
46
|
+
- ruby_version: '3.1'
|
|
47
|
+
gemfile: test/gemfiles/rails_5_1.gemfile
|
|
48
|
+
- ruby_version: '3.1'
|
|
49
|
+
gemfile: test/gemfiles/rails_5_2.gemfile
|
|
50
|
+
- ruby_version: '3.1'
|
|
51
|
+
gemfile: test/gemfiles/rails_6_0.gemfile
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
steps:
|
|
54
|
+
- uses: actions/checkout@v3
|
|
55
|
+
- name: Set up Ruby
|
|
56
|
+
uses: ruby/setup-ruby@v1
|
|
57
|
+
with:
|
|
58
|
+
ruby-version: ${{ matrix.ruby_version }}
|
|
59
|
+
bundler-cache: true # 'bundle install' and cache
|
|
60
|
+
- name: Build and test with Rake
|
|
61
|
+
run: bundle exec rake --trace
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
# Bootstrap Ruby Gem [](https://github.com/twbs/bootstrap-rubygem/actions/workflows/ci.yml) [](https://rubygems.org/gems/bootstrap)
|
|
2
2
|
|
|
3
|
-
[Bootstrap
|
|
3
|
+
[Bootstrap 5][bootstrap-home] ruby gem for Ruby on Rails (*Sprockets*/*Importmaps*) and Hanami (formerly Lotus).
|
|
4
4
|
|
|
5
5
|
For Sass versions of Bootstrap 3 and 2 see [bootstrap-sass](https://github.com/twbs/bootstrap-sass) instead.
|
|
6
6
|
|
|
7
|
+
**Ruby on Rails Note**: Newer releases of Rails have added additional ways for
|
|
8
|
+
assets to be processed. The `twbs/bootstrap-rubygem` is for use with Importmaps
|
|
9
|
+
or Sprockets, but not Webpack.
|
|
10
|
+
|
|
7
11
|
## Installation
|
|
8
12
|
|
|
9
13
|
Please see the appropriate guide for your environment of choice:
|
|
@@ -17,10 +21,14 @@ Please see the appropriate guide for your environment of choice:
|
|
|
17
21
|
Add `bootstrap` to your Gemfile:
|
|
18
22
|
|
|
19
23
|
```ruby
|
|
20
|
-
gem 'bootstrap', '~>
|
|
24
|
+
gem 'bootstrap', '~> 5.3.2'
|
|
21
25
|
```
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
This gem requires a Sass engine, so make sure you have **one** of these two gems in your Gemfile:
|
|
28
|
+
- [`dartsass-sprockets`](https://github.com/tablecheck/dartsass-sprockets): Dart Sass engine, recommended but only works for Ruby 2.6+ and Rails 5+
|
|
29
|
+
- [`sassc-rails`](https://github.com/sass/sassc-rails): SassC engine, deprecated but compatible with Ruby 2.3+ and Rails 4
|
|
30
|
+
|
|
31
|
+
Also ensure that `sprockets-rails` is at least v2.3.2.
|
|
24
32
|
|
|
25
33
|
`bundle install` and restart your server to make the files available through the pipeline.
|
|
26
34
|
|
|
@@ -44,8 +52,8 @@ Then, remove all the `*= require` and `*= require_tree` statements from the Sass
|
|
|
44
52
|
|
|
45
53
|
Do not use `*= require` in Sass or your other stylesheets will not be able to access the Bootstrap mixins and variables.
|
|
46
54
|
|
|
47
|
-
Bootstrap JavaScript
|
|
48
|
-
If you're using Rails 5.1+, add the `jquery-rails` gem to your Gemfile:
|
|
55
|
+
Bootstrap JavaScript can optionally use jQuery.
|
|
56
|
+
If you're using Rails 5.1+, you can add the `jquery-rails` gem to your Gemfile:
|
|
49
57
|
|
|
50
58
|
```ruby
|
|
51
59
|
gem 'jquery-rails'
|
|
@@ -55,6 +63,25 @@ Bootstrap tooltips and popovers depend on [popper.js] for positioning.
|
|
|
55
63
|
The `bootstrap` gem already depends on the
|
|
56
64
|
[popper_js](https://github.com/glebm/popper_js-rubygem) gem.
|
|
57
65
|
|
|
66
|
+
#### Importmaps
|
|
67
|
+
|
|
68
|
+
You can pin either `bootstrap.js` or `bootstrap.min.js` in `config/importmap.rb`
|
|
69
|
+
as well as `popper.js`:
|
|
70
|
+
|
|
71
|
+
```ruby
|
|
72
|
+
pin "bootstrap", to: "bootstrap.min.js", preload: true
|
|
73
|
+
pin "@popperjs/core", to: "popper.js", preload: true
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Whichever files you pin will need to be added to `config.assets.precompile`:
|
|
77
|
+
|
|
78
|
+
```ruby
|
|
79
|
+
# config/initializers/assets.rb
|
|
80
|
+
Rails.application.config.assets.precompile += %w(bootstrap.min.js popper.js)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### Sprockets
|
|
84
|
+
|
|
58
85
|
Add Bootstrap dependencies and Bootstrap to your `application.js`:
|
|
59
86
|
|
|
60
87
|
```js
|
data/Rakefile
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'bundler/gem_tasks'
|
|
2
|
+
require 'bundler/setup'
|
|
2
3
|
|
|
3
4
|
lib_path = File.join(File.dirname(__FILE__), 'lib')
|
|
4
5
|
$:.unshift(lib_path) unless $:.include?(lib_path)
|
|
@@ -45,12 +46,20 @@ end
|
|
|
45
46
|
|
|
46
47
|
desc 'Dumps output to a CSS file for testing'
|
|
47
48
|
task :debug do
|
|
48
|
-
|
|
49
|
+
begin
|
|
50
|
+
require 'dartsass-ruby'
|
|
51
|
+
rescue LoadError
|
|
52
|
+
require 'sassc'
|
|
53
|
+
rescue LoadError
|
|
54
|
+
raise LoadError.new("bootstrap-rubygem requires a Sass engine. Please add dartsass-sprockets or sassc-rails to your dependencies.")
|
|
55
|
+
end
|
|
49
56
|
require './lib/bootstrap'
|
|
50
57
|
require 'term/ansicolor'
|
|
51
58
|
require 'autoprefixer-rails'
|
|
52
59
|
path = Bootstrap.stylesheets_path
|
|
53
60
|
%w(_bootstrap _bootstrap-reboot _bootstrap-grid).each do |file|
|
|
61
|
+
# For ease of upgrading, the root namespace ::SassC is still used by dartsass-sprockets.
|
|
62
|
+
# This is planned to be renamed in a future major version release.
|
|
54
63
|
engine = SassC::Engine.new(File.read("#{path}/#{file}.scss"), syntax: :scss, load_paths: [path])
|
|
55
64
|
out = File.join('tmp', "#{file[1..-1]}.css")
|
|
56
65
|
css = engine.render
|
|
@@ -1,191 +1,89 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Bootstrap alert.js
|
|
3
|
-
* Copyright 2011-
|
|
2
|
+
* Bootstrap alert.js v5.3.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
4
4
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
5
5
|
*/
|
|
6
6
|
(function (global, factory) {
|
|
7
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('
|
|
8
|
-
typeof define === 'function' && define.amd ? define(['
|
|
9
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.
|
|
10
|
-
}(this, (function (
|
|
7
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./base-component.js'), require('./dom/event-handler.js'), require('./util/component-functions.js'), require('./util/index.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './util/component-functions', './util/index'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.BaseComponent, global.EventHandler, global.ComponentFunctions, global.Index));
|
|
10
|
+
})(this, (function (BaseComponent, EventHandler, componentFunctions_js, index_js) { 'use strict';
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
/**
|
|
13
|
+
* --------------------------------------------------------------------------
|
|
14
|
+
* Bootstrap alert.js
|
|
15
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
16
|
+
* --------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
16
18
|
|
|
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
19
|
|
|
33
20
|
/**
|
|
34
|
-
* ------------------------------------------------------------------------
|
|
35
21
|
* Constants
|
|
36
|
-
* ------------------------------------------------------------------------
|
|
37
22
|
*/
|
|
38
23
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var EVENT_CLOSED = "closed" + EVENT_KEY;
|
|
48
|
-
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
|
|
49
|
-
var CLASS_NAME_ALERT = 'alert';
|
|
50
|
-
var CLASS_NAME_FADE = 'fade';
|
|
51
|
-
var CLASS_NAME_SHOW = 'show';
|
|
24
|
+
const NAME = 'alert';
|
|
25
|
+
const DATA_KEY = 'bs.alert';
|
|
26
|
+
const EVENT_KEY = `.${DATA_KEY}`;
|
|
27
|
+
const EVENT_CLOSE = `close${EVENT_KEY}`;
|
|
28
|
+
const EVENT_CLOSED = `closed${EVENT_KEY}`;
|
|
29
|
+
const CLASS_NAME_FADE = 'fade';
|
|
30
|
+
const CLASS_NAME_SHOW = 'show';
|
|
31
|
+
|
|
52
32
|
/**
|
|
53
|
-
*
|
|
54
|
-
* Class Definition
|
|
55
|
-
* ------------------------------------------------------------------------
|
|
33
|
+
* Class definition
|
|
56
34
|
*/
|
|
57
35
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
var _proto = Alert.prototype;
|
|
36
|
+
class Alert extends BaseComponent {
|
|
37
|
+
// Getters
|
|
38
|
+
static get NAME() {
|
|
39
|
+
return NAME;
|
|
40
|
+
}
|
|
65
41
|
|
|
66
42
|
// Public
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (element) {
|
|
71
|
-
rootElement = this._getRootElement(element);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
var customEvent = this._triggerCloseEvent(rootElement);
|
|
75
|
-
|
|
76
|
-
if (customEvent.isDefaultPrevented()) {
|
|
43
|
+
close() {
|
|
44
|
+
const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);
|
|
45
|
+
if (closeEvent.defaultPrevented) {
|
|
77
46
|
return;
|
|
78
47
|
}
|
|
48
|
+
this._element.classList.remove(CLASS_NAME_SHOW);
|
|
49
|
+
const isAnimated = this._element.classList.contains(CLASS_NAME_FADE);
|
|
50
|
+
this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
|
|
51
|
+
}
|
|
79
52
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
} // Private
|
|
87
|
-
;
|
|
88
|
-
|
|
89
|
-
_proto._getRootElement = function _getRootElement(element) {
|
|
90
|
-
var selector = Util__default['default'].getSelectorFromElement(element);
|
|
91
|
-
var parent = false;
|
|
92
|
-
|
|
93
|
-
if (selector) {
|
|
94
|
-
parent = document.querySelector(selector);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (!parent) {
|
|
98
|
-
parent = $__default['default'](element).closest("." + CLASS_NAME_ALERT)[0];
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return parent;
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
_proto._triggerCloseEvent = function _triggerCloseEvent(element) {
|
|
105
|
-
var closeEvent = $__default['default'].Event(EVENT_CLOSE);
|
|
106
|
-
$__default['default'](element).trigger(closeEvent);
|
|
107
|
-
return closeEvent;
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
_proto._removeElement = function _removeElement(element) {
|
|
111
|
-
var _this = this;
|
|
112
|
-
|
|
113
|
-
$__default['default'](element).removeClass(CLASS_NAME_SHOW);
|
|
114
|
-
|
|
115
|
-
if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) {
|
|
116
|
-
this._destroyElement(element);
|
|
117
|
-
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
var transitionDuration = Util__default['default'].getTransitionDurationFromElement(element);
|
|
122
|
-
$__default['default'](element).one(Util__default['default'].TRANSITION_END, function (event) {
|
|
123
|
-
return _this._destroyElement(element, event);
|
|
124
|
-
}).emulateTransitionEnd(transitionDuration);
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
_proto._destroyElement = function _destroyElement(element) {
|
|
128
|
-
$__default['default'](element).detach().trigger(EVENT_CLOSED).remove();
|
|
129
|
-
} // Static
|
|
130
|
-
;
|
|
53
|
+
// Private
|
|
54
|
+
_destroyElement() {
|
|
55
|
+
this._element.remove();
|
|
56
|
+
EventHandler.trigger(this._element, EVENT_CLOSED);
|
|
57
|
+
this.dispose();
|
|
58
|
+
}
|
|
131
59
|
|
|
132
|
-
|
|
60
|
+
// Static
|
|
61
|
+
static jQueryInterface(config) {
|
|
133
62
|
return this.each(function () {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if (!data) {
|
|
138
|
-
data = new Alert(this);
|
|
139
|
-
$element.data(DATA_KEY, data);
|
|
63
|
+
const data = Alert.getOrCreateInstance(this);
|
|
64
|
+
if (typeof config !== 'string') {
|
|
65
|
+
return;
|
|
140
66
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
data[config](this);
|
|
67
|
+
if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
|
|
68
|
+
throw new TypeError(`No method named "${config}"`);
|
|
144
69
|
}
|
|
70
|
+
data[config](this);
|
|
145
71
|
});
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
Alert._handleDismiss = function _handleDismiss(alertInstance) {
|
|
149
|
-
return function (event) {
|
|
150
|
-
if (event) {
|
|
151
|
-
event.preventDefault();
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
alertInstance.close(this);
|
|
155
|
-
};
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
_createClass(Alert, null, [{
|
|
159
|
-
key: "VERSION",
|
|
160
|
-
get: function get() {
|
|
161
|
-
return VERSION;
|
|
162
|
-
}
|
|
163
|
-
}]);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
164
74
|
|
|
165
|
-
return Alert;
|
|
166
|
-
}();
|
|
167
75
|
/**
|
|
168
|
-
*
|
|
169
|
-
* Data Api implementation
|
|
170
|
-
* ------------------------------------------------------------------------
|
|
76
|
+
* Data API implementation
|
|
171
77
|
*/
|
|
172
78
|
|
|
79
|
+
componentFunctions_js.enableDismissTrigger(Alert, 'close');
|
|
173
80
|
|
|
174
|
-
$__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));
|
|
175
81
|
/**
|
|
176
|
-
* ------------------------------------------------------------------------
|
|
177
82
|
* jQuery
|
|
178
|
-
* ------------------------------------------------------------------------
|
|
179
83
|
*/
|
|
180
84
|
|
|
181
|
-
|
|
182
|
-
$__default['default'].fn[NAME].Constructor = Alert;
|
|
183
|
-
|
|
184
|
-
$__default['default'].fn[NAME].noConflict = function () {
|
|
185
|
-
$__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;
|
|
186
|
-
return Alert._jQueryInterface;
|
|
187
|
-
};
|
|
85
|
+
index_js.defineJQueryPlugin(Alert);
|
|
188
86
|
|
|
189
87
|
return Alert;
|
|
190
88
|
|
|
191
|
-
}))
|
|
89
|
+
}));
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Bootstrap base-component.js v5.3.2 (https://getbootstrap.com/)
|
|
3
|
+
* Copyright 2011-2023 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('./dom/data.js'), require('./dom/event-handler.js'), require('./util/config.js'), require('./util/index.js')) :
|
|
8
|
+
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './util/config', './util/index'], factory) :
|
|
9
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.BaseComponent = factory(global.Data, global.EventHandler, global.Config, global.Index));
|
|
10
|
+
})(this, (function (Data, EventHandler, Config, index_js) { 'use strict';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* --------------------------------------------------------------------------
|
|
14
|
+
* Bootstrap base-component.js
|
|
15
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
16
|
+
* --------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Constants
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
const VERSION = '5.3.2';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Class definition
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
class BaseComponent extends Config {
|
|
31
|
+
constructor(element, config) {
|
|
32
|
+
super();
|
|
33
|
+
element = index_js.getElement(element);
|
|
34
|
+
if (!element) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this._element = element;
|
|
38
|
+
this._config = this._getConfig(config);
|
|
39
|
+
Data.set(this._element, this.constructor.DATA_KEY, this);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Public
|
|
43
|
+
dispose() {
|
|
44
|
+
Data.remove(this._element, this.constructor.DATA_KEY);
|
|
45
|
+
EventHandler.off(this._element, this.constructor.EVENT_KEY);
|
|
46
|
+
for (const propertyName of Object.getOwnPropertyNames(this)) {
|
|
47
|
+
this[propertyName] = null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
_queueCallback(callback, element, isAnimated = true) {
|
|
51
|
+
index_js.executeAfterTransition(callback, element, isAnimated);
|
|
52
|
+
}
|
|
53
|
+
_getConfig(config) {
|
|
54
|
+
config = this._mergeConfigObj(config, this._element);
|
|
55
|
+
config = this._configAfterMerge(config);
|
|
56
|
+
this._typeCheckConfig(config);
|
|
57
|
+
return config;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Static
|
|
61
|
+
static getInstance(element) {
|
|
62
|
+
return Data.get(index_js.getElement(element), this.DATA_KEY);
|
|
63
|
+
}
|
|
64
|
+
static getOrCreateInstance(element, config = {}) {
|
|
65
|
+
return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);
|
|
66
|
+
}
|
|
67
|
+
static get VERSION() {
|
|
68
|
+
return VERSION;
|
|
69
|
+
}
|
|
70
|
+
static get DATA_KEY() {
|
|
71
|
+
return `bs.${this.NAME}`;
|
|
72
|
+
}
|
|
73
|
+
static get EVENT_KEY() {
|
|
74
|
+
return `.${this.DATA_KEY}`;
|
|
75
|
+
}
|
|
76
|
+
static eventName(name) {
|
|
77
|
+
return `${name}${this.EVENT_KEY}`;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return BaseComponent;
|
|
82
|
+
|
|
83
|
+
}));
|