Bower modules updated.
This commit is contained in:
parent
5c341e2e5a
commit
1ee78ab657
140 changed files with 7098 additions and 3713 deletions
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "bootstrap-sass",
|
||||
"version": "3.1.1+2",
|
||||
"version": "3.2.0+1",
|
||||
"homepage": "https://github.com/twbs/bootstrap-sass",
|
||||
"authors": [
|
||||
"Thomas McDonald",
|
||||
|
@ -10,23 +10,23 @@
|
|||
],
|
||||
"description": "bootstrap-sass is a Sass-powered version of Bootstrap, ready to drop right into your Sass powered applications.",
|
||||
"main": [
|
||||
"vendor/assets/stylesheets/bootstrap.scss",
|
||||
"vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.eot",
|
||||
"vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.svg",
|
||||
"vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf",
|
||||
"vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff",
|
||||
"vendor/assets/javascripts/bootstrap/affix.js",
|
||||
"vendor/assets/javascripts/bootstrap/alert.js",
|
||||
"vendor/assets/javascripts/bootstrap/button.js",
|
||||
"vendor/assets/javascripts/bootstrap/carousel.js",
|
||||
"vendor/assets/javascripts/bootstrap/collapse.js",
|
||||
"vendor/assets/javascripts/bootstrap/dropdown.js",
|
||||
"vendor/assets/javascripts/bootstrap/tab.js",
|
||||
"vendor/assets/javascripts/bootstrap/transition.js",
|
||||
"vendor/assets/javascripts/bootstrap/scrollspy.js",
|
||||
"vendor/assets/javascripts/bootstrap/modal.js",
|
||||
"vendor/assets/javascripts/bootstrap/tooltip.js",
|
||||
"vendor/assets/javascripts/bootstrap/popover.js"
|
||||
"assets/stylesheets/bootstrap.scss",
|
||||
"assets/fonts/bootstrap/glyphicons-halflings-regular.eot",
|
||||
"assets/fonts/bootstrap/glyphicons-halflings-regular.svg",
|
||||
"assets/fonts/bootstrap/glyphicons-halflings-regular.ttf",
|
||||
"assets/fonts/bootstrap/glyphicons-halflings-regular.woff",
|
||||
"assets/javascripts/bootstrap/affix.js",
|
||||
"assets/javascripts/bootstrap/alert.js",
|
||||
"assets/javascripts/bootstrap/button.js",
|
||||
"assets/javascripts/bootstrap/carousel.js",
|
||||
"assets/javascripts/bootstrap/collapse.js",
|
||||
"assets/javascripts/bootstrap/dropdown.js",
|
||||
"assets/javascripts/bootstrap/tab.js",
|
||||
"assets/javascripts/bootstrap/transition.js",
|
||||
"assets/javascripts/bootstrap/scrollspy.js",
|
||||
"assets/javascripts/bootstrap/modal.js",
|
||||
"assets/javascripts/bootstrap/tooltip.js",
|
||||
"assets/javascripts/bootstrap/popover.js"
|
||||
],
|
||||
"keywords": [
|
||||
"twbs",
|
||||
|
@ -44,13 +44,16 @@
|
|||
"Rakefile",
|
||||
"Gemfile"
|
||||
],
|
||||
"_release": "3.1.1+2",
|
||||
"dependencies": {
|
||||
"jquery": ">= 1.9.0"
|
||||
},
|
||||
"_release": "3.2.0+1",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v3.1.1+2",
|
||||
"commit": "039f08dc011ea5f6be4b9bd2d00789cb440cc358"
|
||||
"tag": "v3.2.0+1",
|
||||
"commit": "6f45298818f454aead771ecd0c6398d7c17d8649"
|
||||
},
|
||||
"_source": "git://github.com/twbs/bootstrap-sass.git",
|
||||
"_target": "~3.1.1",
|
||||
"_target": "~3.2.0",
|
||||
"_originalSource": "bootstrap-sass-official"
|
||||
}
|
|
@ -1,5 +1,16 @@
|
|||
# Changelog
|
||||
|
||||
## 3.2.0.0
|
||||
|
||||
- Assets (Sass, JS, fonts) moved from `vendor/assets` to `assets`. `bootstrap.js` now contains concatenated JS.
|
||||
- Compass generator now copies JS and fonts, and provides a better default `styles.sass`.
|
||||
- Compass, Sprockets, and Mincer asset path helpers are now provided in pure Sass: `bootstrap-compass`, `bootstrap-sprockets`, and `bootstrap-mincer`.
|
||||
Asset path helpers must be imported before `bootstrap`, more in Readme.
|
||||
- Sprockets / Mincer JS manifest has been moved to `bootstrap-sprockets.js`.
|
||||
It can be required without adding Bootstrap JS directory to load path, as it now uses relative paths.
|
||||
- Sprockets: `depend_on_asset` (`glyphicons.scss`) has been changed to `depend_on` to work around an issue with `depend_on_asset`.
|
||||
[More information](https://github.com/twbs/bootstrap-sass/issues/592#issuecomment-46570286).
|
||||
|
||||
## 3.1.1.0
|
||||
|
||||
- Updated Bower docs
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Bootstrap for Sass [](http://travis-ci.org/twbs/bootstrap-sass)
|
||||
# Bootstrap for Sass [](http://badge.fury.io/rb/bootstrap-sass) [](http://badge.fury.io/bo/bootstrap-sass-official) [](http://travis-ci.org/twbs/bootstrap-sass)
|
||||
|
||||
`bootstrap-sass` is a Sass-powered version of [Bootstrap](http://github.com/twbs/bootstrap), ready to drop right into your Sass powered applications.
|
||||
|
||||
|
@ -13,21 +13,39 @@ Please see the appropriate guide for your environment of choice:
|
|||
In your Gemfile you need to add the `bootstrap-sass` gem, and ensure that the `sass-rails` gem is present - it is added to new Rails applications by default.
|
||||
|
||||
```ruby
|
||||
gem 'bootstrap-sass', '~> 3.2.0'
|
||||
gem 'sass-rails', '>= 3.2'
|
||||
gem 'bootstrap-sass', '~> 3.1.1'
|
||||
```
|
||||
|
||||
It is also recommended to use [Autoprefixer](https://github.com/ai/autoprefixer-rails) with Bootstrap
|
||||
to add browser vendor prefixes automatically. Simply add the gem:
|
||||
|
||||
```ruby
|
||||
gem 'autoprefixer-rails'
|
||||
```
|
||||
|
||||
`bundle install` and restart your server to make the files available through the pipeline.
|
||||
|
||||
In `app/assets/stylesheets/application.css.scss`:
|
||||
|
||||
```scss
|
||||
@import "bootstrap-sprockets";
|
||||
@import "bootstrap";
|
||||
```
|
||||
|
||||
Do not use `//= require` in Sass or your other stylesheets will not be [able to access][antirequire] the Bootstrap mixins or variables.
|
||||
|
||||
In `app/assets/javascripts/application.js`:
|
||||
|
||||
```js
|
||||
//= require jquery
|
||||
//= require bootstrap-sprockets
|
||||
```
|
||||
|
||||
#### Rails 3.2.x
|
||||
|
||||
Rails 3.2 is [no longer maintained for bugfixes](http://guides.rubyonrails.org/maintenance_policy.html), and you should upgrade as soon as possible.
|
||||
|
||||
If you must use it, make sure bootstrap-sass is moved out of the `:assets` group.
|
||||
This is because, by default in Rails 3.2, assets group gems are not required in `production`.
|
||||
However, for pre-compilation to succeed in production, `bootstrap-sass` gem must be required.
|
||||
|
||||
Starting with bootstrap-sass v3.1.1.1, due to the structural changes from upstream you will need these
|
||||
backported asset pipeline gems on Rails 3.2. There is more on why this is necessary in
|
||||
https://github.com/twbs/bootstrap-sass/issues/523 and https://github.com/twbs/bootstrap-sass/issues/578.
|
||||
|
@ -53,55 +71,49 @@ require 'bootstrap-sass'
|
|||
```
|
||||
|
||||
```console
|
||||
bundle exec compass install bootstrap
|
||||
$ bundle exec compass install bootstrap
|
||||
```
|
||||
|
||||
If you are creating a new Compass project, you can generate it with bootstrap-sass support:
|
||||
|
||||
```console
|
||||
bundle exec compass create my-new-project -r bootstrap-sass --using bootstrap
|
||||
$ bundle exec compass create my-new-project -r bootstrap-sass --using bootstrap
|
||||
```
|
||||
|
||||
or, alternatively, if you're not using a Gemfile for your dependencies:
|
||||
|
||||
```console
|
||||
compass create my-new-project -r bootstrap-sass --using bootstrap
|
||||
$ compass create my-new-project -r bootstrap-sass --using bootstrap
|
||||
```
|
||||
|
||||
This will create a new Compass project with the following files in it:
|
||||
|
||||
* [_variables.scss](/templates/project/_variables.sass.erb) - all of bootstrap variables (override them here).
|
||||
* [styles.scss](/templates/project/styles.sass) - main project SCSS file, import `variables` and `bootstrap`.
|
||||
* [styles.sass](/templates/project/styles.sass) - main project Sass file, imports Bootstrap and variables.
|
||||
* [_bootstrap-variables.sass](/templates/project/_bootstrap-variables.sass.erb) - all of Bootstrap variables, override them here.
|
||||
|
||||
Some bootstrap-sass mixins may conflict with the Compass ones.
|
||||
If this happens, change the import order so that Compass mixins are loaded later.
|
||||
|
||||
### c. Ruby without Compass / Rails
|
||||
|
||||
Require the gem, and load paths and Sass helpers will be configured automatically:
|
||||
|
||||
```ruby
|
||||
require 'bootstrap-sass'
|
||||
```
|
||||
|
||||
### d. Node.js / Bower
|
||||
### c. Bower
|
||||
|
||||
Using bootstrap-sass as a Bower package is still being tested. It is compatible with node-sass 0.8.3+. You can install it with:
|
||||
|
||||
```bash
|
||||
bower install bootstrap-sass-official
|
||||
```console
|
||||
$ bower install bootstrap-sass-official
|
||||
```
|
||||
|
||||
`bootstrap-sass` is taken so make sure you use the command above.
|
||||
|
||||
Sass, JS, and all other assets are located at [vendor/assets](/vendor/assets).
|
||||
Sass, JS, and all other assets are located at [assets](/assets).
|
||||
|
||||
By default, `bower.json` main field list only the main `bootstrap.scss` and all the static assets (fonts and JS).
|
||||
This is compatible by default with asset managers such as [wiredep](https://github.com/taptapship/wiredep).
|
||||
|
||||
#### Mincer
|
||||
#### Node.js Mincer
|
||||
|
||||
If you use [mincer][mincer] with node-sass, import bootstrap into a `.css.ejs.scss` file like so:
|
||||
If you use [mincer][mincer] with node-sass, import bootstrap into like so:
|
||||
|
||||
In `application.css.ejs.scss` (NB **.css.ejs.css**):
|
||||
|
||||
```scss
|
||||
// Import mincer asset paths helper integration
|
||||
|
@ -109,47 +121,95 @@ If you use [mincer][mincer] with node-sass, import bootstrap into a `.css.ejs.sc
|
|||
@import "bootstrap";
|
||||
```
|
||||
|
||||
In `application.js`:
|
||||
|
||||
```js
|
||||
//= require bootstrap-sprockets
|
||||
```
|
||||
|
||||
See also this [example manifest.js](/test/dummy_node_mincer/manifest.js) for mincer.
|
||||
|
||||
#### Number precision
|
||||
|
||||
### Configuration
|
||||
|
||||
#### Sass
|
||||
|
||||
By default all of Bootstrap is imported.
|
||||
|
||||
You can also import components explicitly. To start with a full list of modules copy
|
||||
[`bootstrap.scss`](assets/stylesheets/bootstrap.scss) file into your assets as `bootstrap-custom.scss`.
|
||||
Then comment out components you do not want from `bootstrap-custom`.
|
||||
In the application Sass file, replace `@import 'bootstrap'` with:
|
||||
|
||||
```scss
|
||||
@import 'bootstrap-custom';
|
||||
```
|
||||
|
||||
#### Sass: Number Precision
|
||||
|
||||
bootstrap-sass [requires](https://github.com/twbs/bootstrap-sass/issues/409) minimum [Sass number precision][sass-precision] of 10 (default is 5).
|
||||
|
||||
When using ruby Sass compiler with the bower version you can enforce the limit with:
|
||||
Precision is set for Rails and Compass automatically.
|
||||
When using ruby Sass compiler standalone or with the Bower version you can set it with:
|
||||
|
||||
```ruby
|
||||
::Sass::Script::Number.precision = [10, ::Sass::Script::Number.precision].max
|
||||
```
|
||||
|
||||
Precision option is now available in libsass, but it has not made into node-sass yet.
|
||||
Note that libsass and node-sass do not currently support the precision option, due to an open bug ([bug #364](https://github.com/sass/libsass/issues/364)) in libsass.
|
||||
|
||||
#### JS and fonts
|
||||
|
||||
Assets are discovered automatically on Rails, Sprockets, Compass, and Node + Mincer, using native asset path helpers.
|
||||
#### Sass: Autoprefixer
|
||||
|
||||
Otherwise the fonts are referenced as:
|
||||
Using [Autoprefixer][autoprefixer] with Bootstrap is recommended.
|
||||
[Autoprefixer][autoprefixer] adds vendor prefixes to CSS rules using values from [Can I Use](http://caniuse.com/).
|
||||
|
||||
```sass
|
||||
#### JavaScript
|
||||
|
||||
[`assets/javascripts/bootstrap.js`](/assets/javascripts/bootstrap.js) contains all of Bootstrap JavaScript,
|
||||
concatenated in the [correct order](/assets/javascripts/bootstrap-sprockets.js).
|
||||
|
||||
|
||||
#### JavaScript with Sprockets or Mincer
|
||||
|
||||
If you use Sprockets or Mincer, you can require `bootstrap-sprockets` instead to load the individual modules:
|
||||
|
||||
```js
|
||||
// Load all Bootstrap JavaScript
|
||||
//= require bootstrap-sprockets
|
||||
```
|
||||
|
||||
You can also load individual modules, provided you also require any dependencies.
|
||||
You can check dependencies in the [Bootstrap JS documentation][jsdocs].
|
||||
|
||||
```js
|
||||
//= require bootstrap/scrollspy
|
||||
//= require bootstrap/modal
|
||||
//= require bootstrap/dropdown
|
||||
```
|
||||
|
||||
#### Fonts
|
||||
|
||||
The fonts are referenced as:
|
||||
|
||||
```scss
|
||||
"#{$icon-font-path}#{$icon-font-name}.eot"
|
||||
```
|
||||
|
||||
`$icon-font-path` defaults to `bootstrap/`.
|
||||
`$icon-font-path` defaults to `bootstrap/` if asset path helpers are used, and `../fonts/bootstrap/` otherwise.
|
||||
|
||||
When not using an asset pipeline, you can copy fonts and JS from bootstrap-sass, they are located at [vendor/assets](/vendor/assets):
|
||||
When using bootstrap-sass with Compass, Sprockets, or Mincer, you **must** import the relevant path helpers before Bootstrap itself, for example:
|
||||
|
||||
```bash
|
||||
mkdir public/fonts
|
||||
cp -r $(bundle show bootstrap-sass)/vendor/assets/fonts/ public/fonts/
|
||||
mkdir public/javascripts
|
||||
cp -r $(bundle show bootstrap-sass)/vendor/assets/javascripts/ public/javascripts/
|
||||
```scss
|
||||
@import "bootstrap-compass";
|
||||
@import "bootstrap";
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Sass
|
||||
|
||||
Import Bootstrap into a Sass file (for example, `application.css.scss`) to get all of Bootstrap's styles, mixins and variables!
|
||||
We recommend against using `//= require` directives, since none of your other stylesheets will be [able to access][antirequire] the Bootstrap mixins or variables.
|
||||
Import Bootstrap into a Sass file (for example, application.css.scss) to get all of Bootstrap's styles, mixins and variables!
|
||||
|
||||
```scss
|
||||
@import "bootstrap";
|
||||
|
@ -171,38 +231,6 @@ $navbar-default-color: $light-orange;
|
|||
@import "bootstrap";
|
||||
```
|
||||
|
||||
You can also import components explicitly. To start with a full list of modules copy this file from the gem:
|
||||
|
||||
```bash
|
||||
cp $(bundle show bootstrap-sass)/vendor/assets/stylesheets/bootstrap.scss \
|
||||
app/assets/stylesheets/bootstrap-custom.scss
|
||||
```
|
||||
Comment out components you do not want from `bootstrap-custom`.
|
||||
|
||||
In `application.sass`, replace `@import 'bootstrap'` with:
|
||||
|
||||
```scss
|
||||
@import 'bootstrap-custom';
|
||||
```
|
||||
|
||||
### Javascript
|
||||
|
||||
We have a helper that includes all Bootstrap javascripts. If you use Rails (or Sprockets separately),
|
||||
put this in your Javascript manifest (usually in `application.js`) to load the files in the [correct order](/vendor/assets/javascripts/bootstrap.js):
|
||||
|
||||
```js
|
||||
// Loads all Bootstrap javascripts
|
||||
//= require bootstrap
|
||||
```
|
||||
|
||||
You can also load individual modules, provided you also require any dependencies. You can check dependencies in the [Bootstrap JS documentation][jsdocs].
|
||||
|
||||
```js
|
||||
//= require bootstrap/scrollspy
|
||||
//= require bootstrap/modal
|
||||
//= require bootstrap/dropdown
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Development and Contributing
|
||||
|
@ -229,9 +257,8 @@ To convert a specific branch or version, pass the branch name or the commit hash
|
|||
The latest converter script is located [here][converter] and does the following:
|
||||
|
||||
* Converts upstream bootstrap LESS files to its matching SCSS file.
|
||||
* Copies all upstream JavaScript into `vendor/assets/javascripts/bootstrap`
|
||||
* Generates a javascript manifest at `vendor/assets/javascripts/bootstrap.js`
|
||||
* Copies all upstream font files into `vendor/assets/fonts/bootstrap`
|
||||
* Copies all upstream JavaScript into `assets/javascripts/bootstrap`, an Sprockets manifest at `assets/javascripts/bootstrap-sprockets.js`, and a concatenation at `assets/javascripts/bootstrap.js`.
|
||||
* Copies all upstream font files into `assets/fonts/bootstrap`.
|
||||
* Sets `Bootstrap::BOOTSTRAP_SHA` in [version.rb][version] to the branch sha.
|
||||
|
||||
This converter fully converts original LESS to SCSS. Conversion is automatic but requires instructions for certain transformations (see converter output).
|
||||
|
@ -262,3 +289,4 @@ Michael Hartl's [Rails Tutorial](http://railstutorial.org/), [gitlabhq](http://g
|
|||
[jsdocs]: http://getbootstrap.com/javascript/#transitions
|
||||
[sass-precision]: http://sass-lang.com/documentation/Sass/Script/Number.html#precision-class_method
|
||||
[mincer]: https://github.com/nodeca/mincer
|
||||
[autoprefixer]: https://github.com/ai/autoprefixer
|
||||
|
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
12
app/bower_components/bootstrap-sass-official/assets/javascripts/bootstrap-sprockets.js
vendored
Normal file
12
app/bower_components/bootstrap-sass-official/assets/javascripts/bootstrap-sprockets.js
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
//= require ./bootstrap/affix
|
||||
//= require ./bootstrap/alert
|
||||
//= require ./bootstrap/button
|
||||
//= require ./bootstrap/carousel
|
||||
//= require ./bootstrap/collapse
|
||||
//= require ./bootstrap/dropdown
|
||||
//= require ./bootstrap/tab
|
||||
//= require ./bootstrap/transition
|
||||
//= require ./bootstrap/scrollspy
|
||||
//= require ./bootstrap/modal
|
||||
//= require ./bootstrap/tooltip
|
||||
//= require ./bootstrap/popover
|
2107
app/bower_components/bootstrap-sass-official/assets/javascripts/bootstrap.js
vendored
Normal file
2107
app/bower_components/bootstrap-sass-official/assets/javascripts/bootstrap.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: affix.js v3.1.1
|
||||
* Bootstrap: affix.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#affix
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -15,7 +15,8 @@
|
|||
|
||||
var Affix = function (element, options) {
|
||||
this.options = $.extend({}, Affix.DEFAULTS, options)
|
||||
this.$window = $(window)
|
||||
|
||||
this.$target = $(this.options.target)
|
||||
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
|
||||
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
|
||||
|
||||
|
@ -27,16 +28,19 @@
|
|||
this.checkPosition()
|
||||
}
|
||||
|
||||
Affix.RESET = 'affix affix-top affix-bottom'
|
||||
Affix.VERSION = '3.2.0'
|
||||
|
||||
Affix.RESET = 'affix affix-top affix-bottom'
|
||||
|
||||
Affix.DEFAULTS = {
|
||||
offset: 0
|
||||
offset: 0,
|
||||
target: window
|
||||
}
|
||||
|
||||
Affix.prototype.getPinnedOffset = function () {
|
||||
if (this.pinnedOffset) return this.pinnedOffset
|
||||
this.$element.removeClass(Affix.RESET).addClass('affix')
|
||||
var scrollTop = this.$window.scrollTop()
|
||||
var scrollTop = this.$target.scrollTop()
|
||||
var position = this.$element.offset()
|
||||
return (this.pinnedOffset = position.top - scrollTop)
|
||||
}
|
||||
|
@ -49,7 +53,7 @@
|
|||
if (!this.$element.is(':visible')) return
|
||||
|
||||
var scrollHeight = $(document).height()
|
||||
var scrollTop = this.$window.scrollTop()
|
||||
var scrollTop = this.$target.scrollTop()
|
||||
var position = this.$element.offset()
|
||||
var offset = this.options.offset
|
||||
var offsetTop = offset.top
|
||||
|
@ -82,7 +86,9 @@
|
|||
.trigger($.Event(affixType.replace('affix', 'affixed')))
|
||||
|
||||
if (affix == 'bottom') {
|
||||
this.$element.offset({ top: position.top })
|
||||
this.$element.offset({
|
||||
top: scrollHeight - this.$element.height() - offsetBottom
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -90,9 +96,7 @@
|
|||
// AFFIX PLUGIN DEFINITION
|
||||
// =======================
|
||||
|
||||
var old = $.fn.affix
|
||||
|
||||
$.fn.affix = function (option) {
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.affix')
|
||||
|
@ -103,6 +107,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.affix
|
||||
|
||||
$.fn.affix = Plugin
|
||||
$.fn.affix.Constructor = Affix
|
||||
|
||||
|
||||
|
@ -128,7 +135,7 @@
|
|||
if (data.offsetBottom) data.offset.bottom = data.offsetBottom
|
||||
if (data.offsetTop) data.offset.top = data.offsetTop
|
||||
|
||||
$spy.affix(data)
|
||||
Plugin.call($spy, data)
|
||||
})
|
||||
})
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: alert.js v3.1.1
|
||||
* Bootstrap: alert.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#alerts
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -18,6 +18,8 @@
|
|||
$(el).on('click', dismiss, this.close)
|
||||
}
|
||||
|
||||
Alert.VERSION = '3.2.0'
|
||||
|
||||
Alert.prototype.close = function (e) {
|
||||
var $this = $(this)
|
||||
var selector = $this.attr('data-target')
|
||||
|
@ -42,12 +44,13 @@
|
|||
$parent.removeClass('in')
|
||||
|
||||
function removeElement() {
|
||||
$parent.trigger('closed.bs.alert').remove()
|
||||
// detach from parent, fire event then clean up data
|
||||
$parent.detach().trigger('closed.bs.alert').remove()
|
||||
}
|
||||
|
||||
$.support.transition && $parent.hasClass('fade') ?
|
||||
$parent
|
||||
.one($.support.transition.end, removeElement)
|
||||
.one('bsTransitionEnd', removeElement)
|
||||
.emulateTransitionEnd(150) :
|
||||
removeElement()
|
||||
}
|
||||
|
@ -56,9 +59,7 @@
|
|||
// ALERT PLUGIN DEFINITION
|
||||
// =======================
|
||||
|
||||
var old = $.fn.alert
|
||||
|
||||
$.fn.alert = function (option) {
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.alert')
|
||||
|
@ -68,6 +69,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.alert
|
||||
|
||||
$.fn.alert = Plugin
|
||||
$.fn.alert.Constructor = Alert
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: button.js v3.1.1
|
||||
* Bootstrap: button.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#buttons
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -19,6 +19,8 @@
|
|||
this.isLoading = false
|
||||
}
|
||||
|
||||
Button.VERSION = '3.2.0'
|
||||
|
||||
Button.DEFAULTS = {
|
||||
loadingText: 'loading...'
|
||||
}
|
||||
|
@ -31,9 +33,9 @@
|
|||
|
||||
state = state + 'Text'
|
||||
|
||||
if (!data.resetText) $el.data('resetText', $el[val]())
|
||||
if (data.resetText == null) $el.data('resetText', $el[val]())
|
||||
|
||||
$el[val](data[state] || this.options[state])
|
||||
$el[val](data[state] == null ? this.options[state] : data[state])
|
||||
|
||||
// push to event loop to allow forms to submit
|
||||
setTimeout($.proxy(function () {
|
||||
|
@ -67,9 +69,7 @@
|
|||
// BUTTON PLUGIN DEFINITION
|
||||
// ========================
|
||||
|
||||
var old = $.fn.button
|
||||
|
||||
$.fn.button = function (option) {
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.button')
|
||||
|
@ -82,6 +82,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.button
|
||||
|
||||
$.fn.button = Plugin
|
||||
$.fn.button.Constructor = Button
|
||||
|
||||
|
||||
|
@ -100,7 +103,7 @@
|
|||
$(document).on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
||||
var $btn = $(e.target)
|
||||
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
||||
$btn.button('toggle')
|
||||
Plugin.call($btn, 'toggle')
|
||||
e.preventDefault()
|
||||
})
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: carousel.js v3.1.1
|
||||
* Bootstrap: carousel.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#carousel
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -14,7 +14,7 @@
|
|||
// =========================
|
||||
|
||||
var Carousel = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))
|
||||
this.$indicators = this.$element.find('.carousel-indicators')
|
||||
this.options = options
|
||||
this.paused =
|
||||
|
@ -24,17 +24,29 @@
|
|||
this.$items = null
|
||||
|
||||
this.options.pause == 'hover' && this.$element
|
||||
.on('mouseenter', $.proxy(this.pause, this))
|
||||
.on('mouseleave', $.proxy(this.cycle, this))
|
||||
.on('mouseenter.bs.carousel', $.proxy(this.pause, this))
|
||||
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
||||
}
|
||||
|
||||
Carousel.VERSION = '3.2.0'
|
||||
|
||||
Carousel.DEFAULTS = {
|
||||
interval: 5000,
|
||||
pause: 'hover',
|
||||
wrap: true
|
||||
}
|
||||
|
||||
Carousel.prototype.cycle = function (e) {
|
||||
Carousel.prototype.keydown = function (e) {
|
||||
switch (e.which) {
|
||||
case 37: this.prev(); break
|
||||
case 39: this.next(); break
|
||||
default: return
|
||||
}
|
||||
|
||||
e.preventDefault()
|
||||
}
|
||||
|
||||
Carousel.prototype.cycle = function (e) {
|
||||
e || (this.paused = false)
|
||||
|
||||
this.interval && clearInterval(this.interval)
|
||||
|
@ -46,20 +58,18 @@
|
|||
return this
|
||||
}
|
||||
|
||||
Carousel.prototype.getActiveIndex = function () {
|
||||
this.$active = this.$element.find('.item.active')
|
||||
this.$items = this.$active.parent().children('.item')
|
||||
|
||||
return this.$items.index(this.$active)
|
||||
Carousel.prototype.getItemIndex = function (item) {
|
||||
this.$items = item.parent().children('.item')
|
||||
return this.$items.index(item || this.$active)
|
||||
}
|
||||
|
||||
Carousel.prototype.to = function (pos) {
|
||||
var that = this
|
||||
var activeIndex = this.getActiveIndex()
|
||||
var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
|
||||
|
||||
if (pos > (this.$items.length - 1) || pos < 0) return
|
||||
|
||||
if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid". not a typo. past tense of "to slide".
|
||||
if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
|
||||
if (activeIndex == pos) return this.pause().cycle()
|
||||
|
||||
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
|
||||
|
@ -101,11 +111,15 @@
|
|||
$next = this.$element.find('.item')[fallback]()
|
||||
}
|
||||
|
||||
if ($next.hasClass('active')) return this.sliding = false
|
||||
if ($next.hasClass('active')) return (this.sliding = false)
|
||||
|
||||
var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
|
||||
this.$element.trigger(e)
|
||||
if (e.isDefaultPrevented()) return
|
||||
var relatedTarget = $next[0]
|
||||
var slideEvent = $.Event('slide.bs.carousel', {
|
||||
relatedTarget: relatedTarget,
|
||||
direction: direction
|
||||
})
|
||||
this.$element.trigger(slideEvent)
|
||||
if (slideEvent.isDefaultPrevented()) return
|
||||
|
||||
this.sliding = true
|
||||
|
||||
|
@ -113,30 +127,31 @@
|
|||
|
||||
if (this.$indicators.length) {
|
||||
this.$indicators.find('.active').removeClass('active')
|
||||
this.$element.one('slid.bs.carousel', function () { // yes, "slid". not a typo. past tense of "to slide".
|
||||
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
|
||||
$nextIndicator && $nextIndicator.addClass('active')
|
||||
})
|
||||
var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
|
||||
$nextIndicator && $nextIndicator.addClass('active')
|
||||
}
|
||||
|
||||
var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
|
||||
if ($.support.transition && this.$element.hasClass('slide')) {
|
||||
$next.addClass(type)
|
||||
$next[0].offsetWidth // force reflow
|
||||
$active.addClass(direction)
|
||||
$next.addClass(direction)
|
||||
$active
|
||||
.one($.support.transition.end, function () {
|
||||
.one('bsTransitionEnd', function () {
|
||||
$next.removeClass([type, direction].join(' ')).addClass('active')
|
||||
$active.removeClass(['active', direction].join(' '))
|
||||
that.sliding = false
|
||||
setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0) // yes, "slid". not a typo. past tense of "to slide".
|
||||
setTimeout(function () {
|
||||
that.$element.trigger(slidEvent)
|
||||
}, 0)
|
||||
})
|
||||
.emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
|
||||
} else {
|
||||
$active.removeClass('active')
|
||||
$next.addClass('active')
|
||||
this.sliding = false
|
||||
this.$element.trigger('slid.bs.carousel') // yes, "slid". not a typo. past tense of "to slide".
|
||||
this.$element.trigger(slidEvent)
|
||||
}
|
||||
|
||||
isCycling && this.cycle()
|
||||
|
@ -148,9 +163,7 @@
|
|||
// CAROUSEL PLUGIN DEFINITION
|
||||
// ==========================
|
||||
|
||||
var old = $.fn.carousel
|
||||
|
||||
$.fn.carousel = function (option) {
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.carousel')
|
||||
|
@ -164,6 +177,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.carousel
|
||||
|
||||
$.fn.carousel = Plugin
|
||||
$.fn.carousel.Constructor = Carousel
|
||||
|
||||
|
||||
|
@ -180,15 +196,17 @@
|
|||
// =================
|
||||
|
||||
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
|
||||
var $this = $(this), href
|
||||
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
||||
var href
|
||||
var $this = $(this)
|
||||
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
|
||||
if (!$target.hasClass('carousel')) return
|
||||
var options = $.extend({}, $target.data(), $this.data())
|
||||
var slideIndex = $this.attr('data-slide-to')
|
||||
if (slideIndex) options.interval = false
|
||||
|
||||
$target.carousel(options)
|
||||
Plugin.call($target, options)
|
||||
|
||||
if (slideIndex = $this.attr('data-slide-to')) {
|
||||
if (slideIndex) {
|
||||
$target.data('bs.carousel').to(slideIndex)
|
||||
}
|
||||
|
||||
|
@ -198,7 +216,7 @@
|
|||
$(window).on('load', function () {
|
||||
$('[data-ride="carousel"]').each(function () {
|
||||
var $carousel = $(this)
|
||||
$carousel.carousel($carousel.data())
|
||||
Plugin.call($carousel, $carousel.data())
|
||||
})
|
||||
})
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: collapse.js v3.1.1
|
||||
* Bootstrap: collapse.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#collapse
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -22,6 +22,8 @@
|
|||
if (this.options.toggle) this.toggle()
|
||||
}
|
||||
|
||||
Collapse.VERSION = '3.2.0'
|
||||
|
||||
Collapse.DEFAULTS = {
|
||||
toggle: true
|
||||
}
|
||||
|
@ -43,7 +45,7 @@
|
|||
if (actives && actives.length) {
|
||||
var hasData = actives.data('bs.collapse')
|
||||
if (hasData && hasData.transitioning) return
|
||||
actives.collapse('hide')
|
||||
Plugin.call(actives, 'hide')
|
||||
hasData || actives.data('bs.collapse', null)
|
||||
}
|
||||
|
||||
|
@ -55,17 +57,13 @@
|
|||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function (e) {
|
||||
if (e && e.target != this.$element[0]) {
|
||||
this.$element
|
||||
.one($.support.transition.end, $.proxy(complete, this))
|
||||
return
|
||||
}
|
||||
var complete = function () {
|
||||
this.$element
|
||||
.removeClass('collapsing')
|
||||
.addClass('collapse in')[dimension]('')
|
||||
this.transitioning = 0
|
||||
this.$element.trigger('shown.bs.collapse')
|
||||
this.$element
|
||||
.trigger('shown.bs.collapse')
|
||||
}
|
||||
|
||||
if (!$.support.transition) return complete.call(this)
|
||||
|
@ -73,7 +71,7 @@
|
|||
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
|
||||
|
||||
this.$element
|
||||
.one($.support.transition.end, $.proxy(complete, this))
|
||||
.one('bsTransitionEnd', $.proxy(complete, this))
|
||||
.emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])
|
||||
}
|
||||
|
||||
|
@ -95,12 +93,7 @@
|
|||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function (e) {
|
||||
if (e && e.target != this.$element[0]) {
|
||||
this.$element
|
||||
.one($.support.transition.end, $.proxy(complete, this))
|
||||
return
|
||||
}
|
||||
var complete = function () {
|
||||
this.transitioning = 0
|
||||
this.$element
|
||||
.trigger('hidden.bs.collapse')
|
||||
|
@ -112,7 +105,7 @@
|
|||
|
||||
this.$element
|
||||
[dimension](0)
|
||||
.one($.support.transition.end, $.proxy(complete, this))
|
||||
.one('bsTransitionEnd', $.proxy(complete, this))
|
||||
.emulateTransitionEnd(350)
|
||||
}
|
||||
|
||||
|
@ -124,9 +117,7 @@
|
|||
// COLLAPSE PLUGIN DEFINITION
|
||||
// ==========================
|
||||
|
||||
var old = $.fn.collapse
|
||||
|
||||
$.fn.collapse = function (option) {
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.collapse')
|
||||
|
@ -138,6 +129,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.collapse
|
||||
|
||||
$.fn.collapse = Plugin
|
||||
$.fn.collapse.Constructor = Collapse
|
||||
|
||||
|
||||
|
@ -154,10 +148,11 @@
|
|||
// =================
|
||||
|
||||
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
|
||||
var $this = $(this), href
|
||||
var href
|
||||
var $this = $(this)
|
||||
var target = $this.attr('data-target')
|
||||
|| e.preventDefault()
|
||||
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|
||||
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
||||
var $target = $(target)
|
||||
var data = $target.data('bs.collapse')
|
||||
var option = data ? 'toggle' : $this.data()
|
||||
|
@ -169,7 +164,7 @@
|
|||
$this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
|
||||
}
|
||||
|
||||
$target.collapse(option)
|
||||
Plugin.call($target, option)
|
||||
})
|
||||
|
||||
}(jQuery);
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: dropdown.js v3.1.1
|
||||
* Bootstrap: dropdown.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#dropdowns
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -19,6 +19,8 @@
|
|||
$(element).on('click.bs.dropdown', this.toggle)
|
||||
}
|
||||
|
||||
Dropdown.VERSION = '3.2.0'
|
||||
|
||||
Dropdown.prototype.toggle = function (e) {
|
||||
var $this = $(this)
|
||||
|
||||
|
@ -100,7 +102,7 @@
|
|||
|
||||
if (!selector) {
|
||||
selector = $this.attr('href')
|
||||
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
||||
}
|
||||
|
||||
var $parent = selector && $(selector)
|
||||
|
@ -112,9 +114,7 @@
|
|||
// DROPDOWN PLUGIN DEFINITION
|
||||
// ==========================
|
||||
|
||||
var old = $.fn.dropdown
|
||||
|
||||
$.fn.dropdown = function (option) {
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.dropdown')
|
||||
|
@ -124,6 +124,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.dropdown
|
||||
|
||||
$.fn.dropdown = Plugin
|
||||
$.fn.dropdown.Constructor = Dropdown
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: modal.js v3.1.1
|
||||
* Bootstrap: modal.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#modals
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -30,6 +30,8 @@
|
|||
}
|
||||
}
|
||||
|
||||
Modal.VERSION = '3.2.0'
|
||||
|
||||
Modal.DEFAULTS = {
|
||||
backdrop: true,
|
||||
keyboard: true,
|
||||
|
@ -83,7 +85,7 @@
|
|||
|
||||
transition ?
|
||||
that.$element.find('.modal-dialog') // wait for modal to slide in
|
||||
.one($.support.transition.end, function () {
|
||||
.one('bsTransitionEnd', function () {
|
||||
that.$element.trigger('focus').trigger(e)
|
||||
})
|
||||
.emulateTransitionEnd(300) :
|
||||
|
@ -116,7 +118,7 @@
|
|||
|
||||
$.support.transition && this.$element.hasClass('fade') ?
|
||||
this.$element
|
||||
.one($.support.transition.end, $.proxy(this.hideModal, this))
|
||||
.one('bsTransitionEnd', $.proxy(this.hideModal, this))
|
||||
.emulateTransitionEnd(300) :
|
||||
this.hideModal()
|
||||
}
|
||||
|
@ -179,20 +181,20 @@
|
|||
|
||||
doAnimate ?
|
||||
this.$backdrop
|
||||
.one($.support.transition.end, callback)
|
||||
.one('bsTransitionEnd', callback)
|
||||
.emulateTransitionEnd(150) :
|
||||
callback()
|
||||
|
||||
} else if (!this.isShown && this.$backdrop) {
|
||||
this.$backdrop.removeClass('in')
|
||||
|
||||
var callbackRemove = function() {
|
||||
var callbackRemove = function () {
|
||||
that.removeBackdrop()
|
||||
callback && callback()
|
||||
}
|
||||
$.support.transition && this.$element.hasClass('fade') ?
|
||||
this.$backdrop
|
||||
.one($.support.transition.end, callbackRemove)
|
||||
.one('bsTransitionEnd', callbackRemove)
|
||||
.emulateTransitionEnd(150) :
|
||||
callbackRemove()
|
||||
|
||||
|
@ -206,8 +208,8 @@
|
|||
this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
|
||||
}
|
||||
|
||||
Modal.prototype.setScrollbar = function () {
|
||||
var bodyPad = parseInt(this.$body.css('padding-right') || 0)
|
||||
Modal.prototype.setScrollbar = function () {
|
||||
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
|
||||
if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
|
||||
}
|
||||
|
||||
|
@ -228,9 +230,7 @@
|
|||
// MODAL PLUGIN DEFINITION
|
||||
// =======================
|
||||
|
||||
var old = $.fn.modal
|
||||
|
||||
$.fn.modal = function (option, _relatedTarget) {
|
||||
function Plugin(option, _relatedTarget) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.modal')
|
||||
|
@ -242,6 +242,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.modal
|
||||
|
||||
$.fn.modal = Plugin
|
||||
$.fn.modal.Constructor = Modal
|
||||
|
||||
|
||||
|
@ -260,16 +263,18 @@
|
|||
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
|
||||
var $this = $(this)
|
||||
var href = $this.attr('href')
|
||||
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
||||
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
|
||||
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
||||
|
||||
if ($this.is('a')) e.preventDefault()
|
||||
|
||||
$target
|
||||
.modal(option, this)
|
||||
.one('hide', function () {
|
||||
$target.one('show.bs.modal', function (showEvent) {
|
||||
if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
|
||||
$target.one('hidden.bs.modal', function () {
|
||||
$this.is(':visible') && $this.trigger('focus')
|
||||
})
|
||||
})
|
||||
Plugin.call($target, option, this)
|
||||
})
|
||||
|
||||
}(jQuery);
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: popover.js v3.1.1
|
||||
* Bootstrap: popover.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#popovers
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -19,11 +19,13 @@
|
|||
|
||||
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
||||
|
||||
Popover.VERSION = '3.2.0'
|
||||
|
||||
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
||||
placement: 'right',
|
||||
trigger: 'click',
|
||||
content: '',
|
||||
template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
||||
template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
||||
})
|
||||
|
||||
|
||||
|
@ -70,7 +72,7 @@
|
|||
}
|
||||
|
||||
Popover.prototype.arrow = function () {
|
||||
return this.$arrow = this.$arrow || this.tip().find('.arrow')
|
||||
return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
|
||||
}
|
||||
|
||||
Popover.prototype.tip = function () {
|
||||
|
@ -82,9 +84,7 @@
|
|||
// POPOVER PLUGIN DEFINITION
|
||||
// =========================
|
||||
|
||||
var old = $.fn.popover
|
||||
|
||||
$.fn.popover = function (option) {
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.popover')
|
||||
|
@ -96,6 +96,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.popover
|
||||
|
||||
$.fn.popover = Plugin
|
||||
$.fn.popover.Constructor = Popover
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: scrollspy.js v3.1.1
|
||||
* Bootstrap: scrollspy.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#scrollspy
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -14,33 +14,44 @@
|
|||
// ==========================
|
||||
|
||||
function ScrollSpy(element, options) {
|
||||
var href
|
||||
var process = $.proxy(this.process, this)
|
||||
|
||||
this.$element = $(element).is('body') ? $(window) : $(element)
|
||||
this.$body = $('body')
|
||||
this.$scrollElement = this.$element.on('scroll.bs.scrollspy', process)
|
||||
this.$scrollElement = $(element).is('body') ? $(window) : $(element)
|
||||
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
|
||||
this.selector = (this.options.target
|
||||
|| ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
||||
|| '') + ' .nav li > a'
|
||||
this.offsets = $([])
|
||||
this.targets = $([])
|
||||
this.selector = (this.options.target || '') + ' .nav li > a'
|
||||
this.offsets = []
|
||||
this.targets = []
|
||||
this.activeTarget = null
|
||||
this.scrollHeight = 0
|
||||
|
||||
this.$scrollElement.on('scroll.bs.scrollspy', process)
|
||||
this.refresh()
|
||||
this.process()
|
||||
}
|
||||
|
||||
ScrollSpy.VERSION = '3.2.0'
|
||||
|
||||
ScrollSpy.DEFAULTS = {
|
||||
offset: 10
|
||||
}
|
||||
|
||||
ScrollSpy.prototype.refresh = function () {
|
||||
var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
|
||||
ScrollSpy.prototype.getScrollHeight = function () {
|
||||
return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
|
||||
}
|
||||
|
||||
this.offsets = $([])
|
||||
this.targets = $([])
|
||||
ScrollSpy.prototype.refresh = function () {
|
||||
var offsetMethod = 'offset'
|
||||
var offsetBase = 0
|
||||
|
||||
if (!$.isWindow(this.$scrollElement[0])) {
|
||||
offsetMethod = 'position'
|
||||
offsetBase = this.$scrollElement.scrollTop()
|
||||
}
|
||||
|
||||
this.offsets = []
|
||||
this.targets = []
|
||||
this.scrollHeight = this.getScrollHeight()
|
||||
|
||||
var self = this
|
||||
|
||||
|
@ -54,7 +65,7 @@
|
|||
return ($href
|
||||
&& $href.length
|
||||
&& $href.is(':visible')
|
||||
&& [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
|
||||
&& [[$href[offsetMethod]().top + offsetBase, href]]) || null
|
||||
})
|
||||
.sort(function (a, b) { return a[0] - b[0] })
|
||||
.each(function () {
|
||||
|
@ -65,15 +76,19 @@
|
|||
|
||||
ScrollSpy.prototype.process = function () {
|
||||
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
|
||||
var scrollHeight = this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
|
||||
var maxScroll = scrollHeight - this.$scrollElement.height()
|
||||
var scrollHeight = this.getScrollHeight()
|
||||
var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
|
||||
var offsets = this.offsets
|
||||
var targets = this.targets
|
||||
var activeTarget = this.activeTarget
|
||||
var i
|
||||
|
||||
if (this.scrollHeight != scrollHeight) {
|
||||
this.refresh()
|
||||
}
|
||||
|
||||
if (scrollTop >= maxScroll) {
|
||||
return activeTarget != (i = targets.last()[0]) && this.activate(i)
|
||||
return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
|
||||
}
|
||||
|
||||
if (activeTarget && scrollTop <= offsets[0]) {
|
||||
|
@ -84,7 +99,7 @@
|
|||
activeTarget != targets[i]
|
||||
&& scrollTop >= offsets[i]
|
||||
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
|
||||
&& this.activate( targets[i] )
|
||||
&& this.activate(targets[i])
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -116,9 +131,7 @@
|
|||
// SCROLLSPY PLUGIN DEFINITION
|
||||
// ===========================
|
||||
|
||||
var old = $.fn.scrollspy
|
||||
|
||||
$.fn.scrollspy = function (option) {
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.scrollspy')
|
||||
|
@ -129,6 +142,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.scrollspy
|
||||
|
||||
$.fn.scrollspy = Plugin
|
||||
$.fn.scrollspy.Constructor = ScrollSpy
|
||||
|
||||
|
||||
|
@ -147,7 +163,7 @@
|
|||
$(window).on('load.bs.scrollspy.data-api', function () {
|
||||
$('[data-spy="scroll"]').each(function () {
|
||||
var $spy = $(this)
|
||||
$spy.scrollspy($spy.data())
|
||||
Plugin.call($spy, $spy.data())
|
||||
})
|
||||
})
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: tab.js v3.1.1
|
||||
* Bootstrap: tab.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#tabs
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -17,6 +17,8 @@
|
|||
this.element = $(element)
|
||||
}
|
||||
|
||||
Tab.VERSION = '3.2.0'
|
||||
|
||||
Tab.prototype.show = function () {
|
||||
var $this = this.element
|
||||
var $ul = $this.closest('ul:not(.dropdown-menu)')
|
||||
|
@ -24,7 +26,7 @@
|
|||
|
||||
if (!selector) {
|
||||
selector = $this.attr('href')
|
||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
||||
}
|
||||
|
||||
if ($this.parent('li').hasClass('active')) return
|
||||
|
@ -40,7 +42,7 @@
|
|||
|
||||
var $target = $(selector)
|
||||
|
||||
this.activate($this.parent('li'), $ul)
|
||||
this.activate($this.closest('li'), $ul)
|
||||
this.activate($target, $target.parent(), function () {
|
||||
$this.trigger({
|
||||
type: 'shown.bs.tab',
|
||||
|
@ -79,7 +81,7 @@
|
|||
|
||||
transition ?
|
||||
$active
|
||||
.one($.support.transition.end, next)
|
||||
.one('bsTransitionEnd', next)
|
||||
.emulateTransitionEnd(150) :
|
||||
next()
|
||||
|
||||
|
@ -90,9 +92,7 @@
|
|||
// TAB PLUGIN DEFINITION
|
||||
// =====================
|
||||
|
||||
var old = $.fn.tab
|
||||
|
||||
$.fn.tab = function ( option ) {
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.tab')
|
||||
|
@ -102,6 +102,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.tab
|
||||
|
||||
$.fn.tab = Plugin
|
||||
$.fn.tab.Constructor = Tab
|
||||
|
||||
|
||||
|
@ -119,7 +122,7 @@
|
|||
|
||||
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
e.preventDefault()
|
||||
$(this).tab('show')
|
||||
Plugin.call($(this), 'show')
|
||||
})
|
||||
|
||||
}(jQuery);
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: tooltip.js v3.1.1
|
||||
* Bootstrap: tooltip.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#tooltip
|
||||
* Inspired by the original jQuery.tipsy by Jason Frame
|
||||
* ========================================================================
|
||||
|
@ -25,6 +25,8 @@
|
|||
this.init('tooltip', element, options)
|
||||
}
|
||||
|
||||
Tooltip.VERSION = '3.2.0'
|
||||
|
||||
Tooltip.DEFAULTS = {
|
||||
animation: true,
|
||||
placement: 'top',
|
||||
|
@ -99,7 +101,12 @@
|
|||
|
||||
Tooltip.prototype.enter = function (obj) {
|
||||
var self = obj instanceof this.constructor ?
|
||||
obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
|
||||
obj : $(obj.currentTarget).data('bs.' + this.type)
|
||||
|
||||
if (!self) {
|
||||
self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
|
||||
$(obj.currentTarget).data('bs.' + this.type, self)
|
||||
}
|
||||
|
||||
clearTimeout(self.timeout)
|
||||
|
||||
|
@ -114,7 +121,12 @@
|
|||
|
||||
Tooltip.prototype.leave = function (obj) {
|
||||
var self = obj instanceof this.constructor ?
|
||||
obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
|
||||
obj : $(obj.currentTarget).data('bs.' + this.type)
|
||||
|
||||
if (!self) {
|
||||
self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
|
||||
$(obj.currentTarget).data('bs.' + this.type, self)
|
||||
}
|
||||
|
||||
clearTimeout(self.timeout)
|
||||
|
||||
|
@ -133,12 +145,17 @@
|
|||
if (this.hasContent() && this.enabled) {
|
||||
this.$element.trigger(e)
|
||||
|
||||
if (e.isDefaultPrevented()) return
|
||||
var that = this;
|
||||
var inDom = $.contains(document.documentElement, this.$element[0])
|
||||
if (e.isDefaultPrevented() || !inDom) return
|
||||
var that = this
|
||||
|
||||
var $tip = this.tip()
|
||||
|
||||
var tipId = this.getUID(this.type)
|
||||
|
||||
this.setContent()
|
||||
$tip.attr('id', tipId)
|
||||
this.$element.attr('aria-describedby', tipId)
|
||||
|
||||
if (this.options.animation) $tip.addClass('fade')
|
||||
|
||||
|
@ -154,6 +171,7 @@
|
|||
.detach()
|
||||
.css({ top: 0, left: 0, display: 'block' })
|
||||
.addClass(placement)
|
||||
.data('bs.' + this.type, this)
|
||||
|
||||
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
|
||||
|
||||
|
@ -180,15 +198,15 @@
|
|||
var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
|
||||
|
||||
this.applyPlacement(calculatedOffset, placement)
|
||||
this.hoverState = null
|
||||
|
||||
var complete = function() {
|
||||
var complete = function () {
|
||||
that.$element.trigger('shown.bs.' + that.type)
|
||||
that.hoverState = null
|
||||
}
|
||||
|
||||
$.support.transition && this.$tip.hasClass('fade') ?
|
||||
$tip
|
||||
.one($.support.transition.end, complete)
|
||||
.one('bsTransitionEnd', complete)
|
||||
.emulateTransitionEnd(150) :
|
||||
complete()
|
||||
}
|
||||
|
@ -261,6 +279,8 @@
|
|||
var $tip = this.tip()
|
||||
var e = $.Event('hide.bs.' + this.type)
|
||||
|
||||
this.$element.removeAttr('aria-describedby')
|
||||
|
||||
function complete() {
|
||||
if (that.hoverState != 'in') $tip.detach()
|
||||
that.$element.trigger('hidden.bs.' + that.type)
|
||||
|
@ -274,7 +294,7 @@
|
|||
|
||||
$.support.transition && this.$tip.hasClass('fade') ?
|
||||
$tip
|
||||
.one($.support.transition.end, complete)
|
||||
.one('bsTransitionEnd', complete)
|
||||
.emulateTransitionEnd(150) :
|
||||
complete()
|
||||
|
||||
|
@ -285,7 +305,7 @@
|
|||
|
||||
Tooltip.prototype.fixTitle = function () {
|
||||
var $e = this.$element
|
||||
if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
|
||||
if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
|
||||
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
|
||||
}
|
||||
}
|
||||
|
@ -302,7 +322,7 @@
|
|||
scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
|
||||
width: isBody ? $(window).width() : $element.outerWidth(),
|
||||
height: isBody ? $(window).height() : $element.outerHeight()
|
||||
}, isBody ? {top: 0, left: 0} : $element.offset())
|
||||
}, isBody ? { top: 0, left: 0 } : $element.offset())
|
||||
}
|
||||
|
||||
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
|
||||
|
@ -352,12 +372,18 @@
|
|||
return title
|
||||
}
|
||||
|
||||
Tooltip.prototype.getUID = function (prefix) {
|
||||
do prefix += ~~(Math.random() * 1000000)
|
||||
while (document.getElementById(prefix))
|
||||
return prefix
|
||||
}
|
||||
|
||||
Tooltip.prototype.tip = function () {
|
||||
return this.$tip = this.$tip || $(this.options.template)
|
||||
return (this.$tip = this.$tip || $(this.options.template))
|
||||
}
|
||||
|
||||
Tooltip.prototype.arrow = function () {
|
||||
return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
|
||||
return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
|
||||
}
|
||||
|
||||
Tooltip.prototype.validate = function () {
|
||||
|
@ -381,7 +407,15 @@
|
|||
}
|
||||
|
||||
Tooltip.prototype.toggle = function (e) {
|
||||
var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
|
||||
var self = this
|
||||
if (e) {
|
||||
self = $(e.currentTarget).data('bs.' + this.type)
|
||||
if (!self) {
|
||||
self = new this.constructor(e.currentTarget, this.getDelegateOptions())
|
||||
$(e.currentTarget).data('bs.' + this.type, self)
|
||||
}
|
||||
}
|
||||
|
||||
self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
|
||||
}
|
||||
|
||||
|
@ -394,9 +428,7 @@
|
|||
// TOOLTIP PLUGIN DEFINITION
|
||||
// =========================
|
||||
|
||||
var old = $.fn.tooltip
|
||||
|
||||
$.fn.tooltip = function (option) {
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.tooltip')
|
||||
|
@ -408,6 +440,9 @@
|
|||
})
|
||||
}
|
||||
|
||||
var old = $.fn.tooltip
|
||||
|
||||
$.fn.tooltip = Plugin
|
||||
$.fn.tooltip.Constructor = Tooltip
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/* ========================================================================
|
||||
* Bootstrap: transition.js v3.1.1
|
||||
* Bootstrap: transition.js v3.2.0
|
||||
* http://getbootstrap.com/javascript/#transitions
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
|
@ -34,8 +34,9 @@
|
|||
|
||||
// http://blog.alexmaccaw.com/css-transitions
|
||||
$.fn.emulateTransitionEnd = function (duration) {
|
||||
var called = false, $el = this
|
||||
$(this).one($.support.transition.end, function () { called = true })
|
||||
var called = false
|
||||
var $el = this
|
||||
$(this).one('bsTransitionEnd', function () { called = true })
|
||||
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
|
||||
setTimeout(callback, duration)
|
||||
return this
|
||||
|
@ -43,6 +44,16 @@
|
|||
|
||||
$(function () {
|
||||
$.support.transition = transitionEnd()
|
||||
|
||||
if (!$.support.transition) return
|
||||
|
||||
$.event.special.bsTransitionEnd = {
|
||||
bindType: $.support.transition.end,
|
||||
delegateType: $.support.transition.end,
|
||||
handle: function (e) {
|
||||
if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
}(jQuery);
|
7
app/bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap-compass.scss
vendored
Normal file
7
app/bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap-compass.scss
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
@function twbs-font-path($path) {
|
||||
@return font-url($path, true);
|
||||
}
|
||||
|
||||
@function twbs-image-path($path) {
|
||||
@return image-url($path, true);
|
||||
}
|
7
app/bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap-sprockets.scss
vendored
Normal file
7
app/bower_components/bootstrap-sass-official/assets/stylesheets/_bootstrap-sprockets.scss
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
@function twbs-font-path($path) {
|
||||
@return font-path($path);
|
||||
}
|
||||
|
||||
@function twbs-image-path($path) {
|
||||
@return image-path($path);
|
||||
}
|
|
@ -33,12 +33,13 @@
|
|||
}
|
||||
}
|
||||
|
||||
// Dismissable alerts
|
||||
// Dismissible alerts
|
||||
//
|
||||
// Expand the right padding and account for the close button's positioning.
|
||||
|
||||
.alert-dismissable {
|
||||
padding-right: ($alert-padding + 20);
|
||||
.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
|
||||
.alert-dismissible {
|
||||
padding-right: ($alert-padding + 20);
|
||||
|
||||
// Adjust close link position
|
||||
.close {
|
|
@ -216,6 +216,10 @@
|
|||
> .btn-group .btn {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
> .btn-group .dropdown-menu {
|
||||
left: auto;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -232,5 +236,5 @@
|
|||
[data-toggle="buttons"] > .btn > input[type="checkbox"] {
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
opacity: 0;
|
||||
@include opacity(0);
|
||||
}
|
|
@ -140,8 +140,6 @@
|
|||
.btn-block {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
// Vertically space out multiple block buttons
|
|
@ -28,7 +28,9 @@
|
|||
|
||||
> .active,
|
||||
> .next,
|
||||
> .prev { display: block; }
|
||||
> .prev {
|
||||
display: block;
|
||||
}
|
||||
|
||||
> .active {
|
||||
left: 0;
|
|
@ -28,6 +28,12 @@ kbd {
|
|||
background-color: $kbd-bg;
|
||||
border-radius: $border-radius-small;
|
||||
box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
|
||||
|
||||
kbd {
|
||||
padding: 0;
|
||||
font-size: 100%;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Blocks of code
|
|
@ -155,6 +155,7 @@
|
|||
font-size: $font-size-small;
|
||||
line-height: $line-height-base;
|
||||
color: $dropdown-header-color;
|
||||
white-space: nowrap; // as with > li > a
|
||||
}
|
||||
|
||||
// Backdrop to catch body clicks on mobile, etc.
|
|
@ -11,7 +11,7 @@ fieldset {
|
|||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
// Chrome and Firefox set a `min-width: -webkit-min-content;` on fieldsets,
|
||||
// Chrome and Firefox set a `min-width: min-content;` on fieldsets,
|
||||
// so we reset that to ensure it behaves more like a standard block element.
|
||||
// See https://github.com/twbs/bootstrap/issues/12359.
|
||||
min-width: 0;
|
||||
|
@ -167,9 +167,11 @@ input[type="search"] {
|
|||
}
|
||||
|
||||
|
||||
// Special styles for iOS date input
|
||||
// Special styles for iOS temporal inputs
|
||||
//
|
||||
// In Mobile Safari, date inputs require a pixel line-height that matches the
|
||||
// In Mobile Safari, setting `display: block` on temporal inputs causes the
|
||||
// text within the input to become vertically misaligned.
|
||||
// As a workaround, we set a pixel line-height that matches the
|
||||
// given height of the input. Since this fucks up everything else, we have to
|
||||
// appropriately reset it for Internet Explorer and the size variations.
|
||||
|
||||
|
@ -206,6 +208,7 @@ input[type="month"] {
|
|||
|
||||
.radio,
|
||||
.checkbox {
|
||||
position: relative;
|
||||
display: block;
|
||||
min-height: $line-height-computed; // clear the floating input if there is no label text
|
||||
margin-top: 10px;
|
||||
|
@ -222,9 +225,11 @@ input[type="month"] {
|
|||
.radio-inline input[type="radio"],
|
||||
.checkbox input[type="checkbox"],
|
||||
.checkbox-inline input[type="checkbox"] {
|
||||
float: left;
|
||||
position: absolute;
|
||||
margin-left: -20px;
|
||||
margin-top: 4px \9;
|
||||
}
|
||||
|
||||
.radio + .radio,
|
||||
.checkbox + .checkbox {
|
||||
margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
|
||||
|
@ -247,19 +252,55 @@ input[type="month"] {
|
|||
}
|
||||
|
||||
// Apply same disabled cursor tweak as for inputs
|
||||
// Some special care is needed because <label>s don't inherit their parent's `cursor`.
|
||||
//
|
||||
// Note: Neither radios nor checkboxes can be readonly.
|
||||
input[type="radio"],
|
||||
input[type="checkbox"],
|
||||
.radio,
|
||||
.radio-inline,
|
||||
.checkbox,
|
||||
.checkbox-inline {
|
||||
input[type="checkbox"] {
|
||||
&[disabled],
|
||||
&.disabled,
|
||||
fieldset[disabled] & {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
// These classes are used directly on <label>s
|
||||
.radio-inline,
|
||||
.checkbox-inline {
|
||||
&.disabled,
|
||||
fieldset[disabled] & {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
// These classes are used on elements with <label> descendants
|
||||
.radio,
|
||||
.checkbox {
|
||||
&.disabled,
|
||||
fieldset[disabled] & {
|
||||
label {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Static form control text
|
||||
//
|
||||
// Apply class to a `p` element to make any string of text align with labels in
|
||||
// a horizontal form layout.
|
||||
|
||||
.form-control-static {
|
||||
// Size it appropriately next to real form controls
|
||||
padding-top: ($padding-base-vertical + 1);
|
||||
padding-bottom: ($padding-base-vertical + 1);
|
||||
// Remove default margin from `p`
|
||||
margin-bottom: 0;
|
||||
|
||||
&.input-lg,
|
||||
&.input-sm {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Form control sizing
|
||||
|
@ -320,13 +361,9 @@ input[type="checkbox"],
|
|||
}
|
||||
|
||||
|
||||
// Static form control text
|
||||
//
|
||||
// Apply class to a `p` element to make any string of text align with labels in
|
||||
// a horizontal form layout.
|
||||
|
||||
.form-control-static {
|
||||
margin-bottom: 0; // Remove default margin from `p`
|
||||
// Reposition feedback icon if label is hidden with "screenreader only" state
|
||||
.has-feedback label.sr-only ~ .form-control-feedback {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -402,12 +439,15 @@ input[type="checkbox"],
|
|||
display: inline-block;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-left: 0;
|
||||
vertical-align: middle;
|
||||
|
||||
label {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
.radio input[type="radio"],
|
||||
.checkbox input[type="checkbox"] {
|
||||
float: none;
|
||||
position: relative;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
|
@ -452,11 +492,6 @@ input[type="checkbox"],
|
|||
@include make-row();
|
||||
}
|
||||
|
||||
.form-control-static {
|
||||
padding-top: ($padding-base-vertical + 1);
|
||||
padding-bottom: ($padding-base-vertical + 1);
|
||||
}
|
||||
|
||||
// Reset spacing and right align labels, but scope to media queries so that
|
||||
// labels on narrow viewports stack the same as a default form example.
|
||||
@media (min-width: $screen-sm-min) {
|
||||
|
@ -475,4 +510,29 @@ input[type="checkbox"],
|
|||
top: 0;
|
||||
right: ($grid-gutter-width / 2);
|
||||
}
|
||||
|
||||
// Form group sizes
|
||||
//
|
||||
// Quick utility class for applying `.input-lg` and `.input-sm` styles to the
|
||||
// inputs and labels within a `.form-group`.
|
||||
.form-group-lg {
|
||||
@media (min-width: $screen-sm-min) {
|
||||
.control-label {
|
||||
padding-top: (($padding-large-vertical * $line-height-large) + 1);
|
||||
}
|
||||
}
|
||||
.form-control {
|
||||
@extend .input-lg;
|
||||
}
|
||||
}
|
||||
.form-group-sm {
|
||||
@media (min-width: $screen-sm-min) {
|
||||
.control-label {
|
||||
padding-top: ($padding-small-vertical + 1);
|
||||
}
|
||||
}
|
||||
.form-control {
|
||||
@extend .input-sm;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
//= depend_on_asset "bootstrap/glyphicons-halflings-regular.eot"
|
||||
//= depend_on_asset "bootstrap/glyphicons-halflings-regular.svg"
|
||||
//= depend_on_asset "bootstrap/glyphicons-halflings-regular.ttf"
|
||||
//= depend_on_asset "bootstrap/glyphicons-halflings-regular.woff"
|
||||
//= depend_on "bootstrap/glyphicons-halflings-regular.eot"
|
||||
//= depend_on "bootstrap/glyphicons-halflings-regular.svg"
|
||||
//= depend_on "bootstrap/glyphicons-halflings-regular.ttf"
|
||||
//= depend_on "bootstrap/glyphicons-halflings-regular.woff"
|
||||
//
|
||||
// Glyphicons for Bootstrap
|
||||
//
|
|
@ -39,10 +39,14 @@
|
|||
|
||||
.input-group-lg > .form-control,
|
||||
.input-group-lg > .input-group-addon,
|
||||
.input-group-lg > .input-group-btn > .btn { @extend .input-lg; }
|
||||
.input-group-lg > .input-group-btn > .btn {
|
||||
@extend .input-lg;
|
||||
}
|
||||
.input-group-sm > .form-control,
|
||||
.input-group-sm > .input-group-addon,
|
||||
.input-group-sm > .input-group-btn > .btn { @extend .input-sm; }
|
||||
.input-group-sm > .input-group-btn > .btn {
|
||||
@extend .input-sm;
|
||||
}
|
||||
|
||||
|
||||
// Display as table-cell
|
|
@ -74,7 +74,8 @@ a.list-group-item {
|
|||
&.disabled:focus {
|
||||
background-color: $list-group-disabled-bg;
|
||||
color: $list-group-disabled-color;
|
||||
|
||||
cursor: not-allowed;
|
||||
|
||||
// Force color to inherit for custom content
|
||||
.list-group-item-heading {
|
||||
color: inherit;
|
||||
|
@ -94,7 +95,9 @@ a.list-group-item {
|
|||
border-color: $list-group-active-border;
|
||||
|
||||
// Force color to inherit for custom content
|
||||
.list-group-item-heading {
|
||||
.list-group-item-heading,
|
||||
.list-group-item-heading > small,
|
||||
.list-group-item-heading > .small {
|
||||
color: inherit;
|
||||
}
|
||||
.list-group-item-text {
|
|
@ -15,8 +15,7 @@
|
|||
// Container that the modal scrolls within
|
||||
.modal {
|
||||
display: none;
|
||||
overflow: auto;
|
||||
overflow-y: scroll;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
|
@ -31,10 +30,14 @@
|
|||
|
||||
// When fading in the modal, animate it to slide down
|
||||
&.fade .modal-dialog {
|
||||
@include translate(0, -25%);
|
||||
@include translate3d(0, -25%, 0);
|
||||
@include transition-transform(0.3s ease-out);
|
||||
}
|
||||
&.in .modal-dialog { @include translate(0, 0)}
|
||||
&.in .modal-dialog { @include translate3d(0, 0, 0) }
|
||||
}
|
||||
.modal-open .modal {
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
// Shell div to position the modal with bottom padding
|
|
@ -141,6 +141,7 @@
|
|||
right: 0;
|
||||
left: 0;
|
||||
z-index: $zindex-navbar-fixed;
|
||||
@include translate3d(0, 0, 0);
|
||||
|
||||
// Undo the rounded corners
|
||||
@media (min-width: $grid-float-breakpoint) {
|
|
@ -162,7 +162,7 @@
|
|||
|
||||
> li {
|
||||
float: none;
|
||||
> a {
|
||||
> a {
|
||||
text-align: center;
|
||||
margin-bottom: 5px;
|
||||
}
|
|
@ -86,7 +86,9 @@
|
|||
border-top-width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.list-group + .panel-footer {
|
||||
border-top-width: 0;
|
||||
}
|
||||
|
||||
// Tables in panels
|
||||
//
|
||||
|
@ -95,7 +97,8 @@
|
|||
|
||||
.panel {
|
||||
> .table,
|
||||
> .table-responsive > .table {
|
||||
> .table-responsive > .table,
|
||||
> .panel-collapse > .table {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
// Add border top radius for first one
|
||||
|
@ -206,7 +209,7 @@
|
|||
|
||||
.panel-heading {
|
||||
border-bottom: 0;
|
||||
+ .panel-collapse .panel-body {
|
||||
+ .panel-collapse > .panel-body {
|
||||
border-top: 1px solid $panel-inner-border;
|
||||
}
|
||||
}
|
|
@ -6,6 +6,13 @@
|
|||
// Bar animations
|
||||
// -------------------------
|
||||
|
||||
// WebKit
|
||||
@-webkit-keyframes progress-bar-stripes {
|
||||
from { background-position: 40px 0; }
|
||||
to { background-position: 0 0; }
|
||||
}
|
||||
|
||||
// Spec and IE10+
|
||||
@keyframes progress-bar-stripes {
|
||||
from { background-position: 40px 0; }
|
||||
to { background-position: 0 0; }
|
||||
|
@ -41,13 +48,22 @@
|
|||
}
|
||||
|
||||
// Striped bars
|
||||
.progress-striped .progress-bar {
|
||||
//
|
||||
// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
|
||||
// `.progress-bar-striped` class, which you just add to an existing
|
||||
// `.progress-bar`.
|
||||
.progress-striped .progress-bar,
|
||||
.progress-bar-striped {
|
||||
@include gradient-striped();
|
||||
background-size: 40px 40px;
|
||||
}
|
||||
|
||||
// Call animation for the active one
|
||||
.progress.active .progress-bar {
|
||||
//
|
||||
// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
|
||||
// `.progress-bar.active` approach.
|
||||
.progress.active .progress-bar,
|
||||
.progress-bar.active {
|
||||
@include animation(progress-bar-stripes 2s linear infinite);
|
||||
}
|
||||
|
|
@ -14,7 +14,8 @@
|
|||
// For more information, see the following:
|
||||
//
|
||||
// Issue: https://github.com/twbs/bootstrap/issues/10497
|
||||
// Docs: http://getbootstrap.com/getting-started/#browsers
|
||||
// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
|
||||
// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
|
||||
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
|
||||
|
||||
@-ms-viewport {
|
|
@ -20,7 +20,7 @@
|
|||
// Body reset
|
||||
|
||||
html {
|
||||
font-size: 62.5%;
|
||||
font-size: 10px;
|
||||
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||
}
|
||||
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
|
||||
table {
|
||||
max-width: 100%;
|
||||
background-color: $table-bg;
|
||||
}
|
||||
th {
|
||||
|
@ -16,6 +15,7 @@ th {
|
|||
|
||||
.table {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
margin-bottom: $line-height-computed;
|
||||
// Cells
|
||||
> thead,
|
||||
|
@ -173,7 +173,7 @@ table {
|
|||
width: 100%;
|
||||
margin-bottom: ($line-height-computed * 0.75);
|
||||
overflow-y: hidden;
|
||||
overflow-x: scroll;
|
||||
overflow-x: auto;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
border: 1px solid $table-border-color;
|
||||
-webkit-overflow-scrolling: touch;
|
|
@ -48,6 +48,12 @@
|
|||
background-color: darken($btn-color, 12%);
|
||||
border-color: darken($btn-color, 14%);
|
||||
}
|
||||
|
||||
&:disabled,
|
||||
&[disabled] {
|
||||
background-color: darken($btn-color, 12%);
|
||||
background-image: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Common styles
|
||||
|
@ -191,6 +197,11 @@
|
|||
.progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); }
|
||||
.progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); }
|
||||
|
||||
// Reset the striped class because our mixins don't do multiple gradients and
|
||||
// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
|
||||
.progress-bar-striped {
|
||||
@include gradient-striped();
|
||||
}
|
||||
|
||||
|
||||
//
|
|
@ -62,7 +62,7 @@ p {
|
|||
.lead {
|
||||
margin-bottom: $line-height-computed;
|
||||
font-size: floor(($font-size-base * 1.15));
|
||||
font-weight: 200;
|
||||
font-weight: 300;
|
||||
line-height: 1.4;
|
||||
|
||||
@media (min-width: $screen-sm-min) {
|
||||
|
@ -74,12 +74,16 @@ p {
|
|||
// Emphasis & misc
|
||||
// -------------------------
|
||||
|
||||
// Ex: 14px base font * 85% = about 12px
|
||||
// Ex: (12px small font / 14px base font) * 100% = about 85%
|
||||
small,
|
||||
.small { font-size: 85%; }
|
||||
.small {
|
||||
font-size: floor((100% * $font-size-small / $font-size-base));
|
||||
}
|
||||
|
||||
// Undo browser default styling
|
||||
cite { font-style: normal; }
|
||||
cite {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
mark,
|
||||
.mark {
|
||||
|
@ -92,6 +96,12 @@ mark,
|
|||
.text-right { text-align: right; }
|
||||
.text-center { text-align: center; }
|
||||
.text-justify { text-align: justify; }
|
||||
.text-nowrap { white-space: nowrap; }
|
||||
|
||||
// Transformation
|
||||
.text-lowercase { text-transform: lowercase; }
|
||||
.text-uppercase { text-transform: uppercase; }
|
||||
.text-capitalize { text-transform: capitalize; }
|
||||
|
||||
// Contextual colors
|
||||
.text-muted {
|
||||
|
@ -200,13 +210,13 @@ dd {
|
|||
@media (min-width: $grid-float-breakpoint) {
|
||||
dt {
|
||||
float: left;
|
||||
width: ($component-offset-horizontal - 20);
|
||||
width: ($dl-horizontal-offset - 20);
|
||||
clear: left;
|
||||
text-align: right;
|
||||
@include text-overflow();
|
||||
}
|
||||
dd {
|
||||
margin-left: $component-offset-horizontal;
|
||||
margin-left: $dl-horizontal-offset;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -53,4 +53,5 @@
|
|||
|
||||
.affix {
|
||||
position: fixed;
|
||||
@include translate3d(0, 0, 0);
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
// a flag to toggle asset pipeline / compass integration
|
||||
// defaults to true if twbs-font-path function is present (no function => twbs-font-path('') parsed as string == right side)
|
||||
// in Sass 3.3 this can be improved with: function-exists(twbs-font-path)
|
||||
// When true, asset path helpers are used, otherwise regular url() is used
|
||||
// When there no function is defined, `fn('')` is parsed as string that equals the right hand side
|
||||
// NB: in Sass 3.3 there is a native function: function-exists(twbs-font-path)
|
||||
$bootstrap-sass-asset-helper: (twbs-font-path("") != unquote('twbs-font-path("")')) !default;
|
||||
|
||||
//
|
||||
// Variables
|
||||
// --------------------------------------------------
|
||||
|
@ -14,7 +15,7 @@ $bootstrap-sass-asset-helper: (twbs-font-path("") != unquote('twbs-font-path("")
|
|||
$gray-darker: lighten(#000, 13.5%) !default; // #222
|
||||
$gray-dark: lighten(#000, 20%) !default; // #333
|
||||
$gray: lighten(#000, 33.5%) !default; // #555
|
||||
$gray-light: lighten(#000, 60%) !default; // #999
|
||||
$gray-light: lighten(#000, 46.7%) !default; // #777
|
||||
$gray-lighter: lighten(#000, 93.5%) !default; // #eee
|
||||
|
||||
$brand-primary: #428bca !default;
|
||||
|
@ -77,7 +78,10 @@ $headings-color: inherit !default;
|
|||
//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
|
||||
|
||||
//** Load fonts from this directory.
|
||||
$icon-font-path: "bootstrap/" !default;
|
||||
|
||||
// [converter] Asset helpers such as Sprockets and Node.js Mincer do not resolve relative paths
|
||||
$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
|
||||
|
||||
//** File name for all font files.
|
||||
$icon-font-name: "glyphicons-halflings-regular" !default;
|
||||
//** Element ID within SVG icon file.
|
||||
|
@ -538,7 +542,7 @@ $popover-arrow-color: #fff !default;
|
|||
//** Popover outer arrow width
|
||||
$popover-arrow-outer-width: ($popover-arrow-width + 1) !default;
|
||||
//** Popover outer arrow color
|
||||
$popover-arrow-outer-color: rgba($popover-border-color, 0.05) !default;
|
||||
$popover-arrow-outer-color: fade_in($popover-border-color, 0.05) !default;
|
||||
//** Popover outer arrow fallback color
|
||||
$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default;
|
||||
|
||||
|
@ -826,6 +830,8 @@ $pre-scrollable-max-height: 340px !default;
|
|||
//
|
||||
//##
|
||||
|
||||
//** Horizontal offset for forms and lists.
|
||||
$component-offset-horizontal: 180px !default;
|
||||
//** Text muted color
|
||||
$text-muted: $gray-light !default;
|
||||
//** Abbreviations and acronyms border color
|
||||
|
@ -840,14 +846,9 @@ $blockquote-font-size: ($font-size-base * 1.25) !default;
|
|||
$blockquote-border-color: $gray-lighter !default;
|
||||
//** Page header border color
|
||||
$page-header-border-color: $gray-lighter !default;
|
||||
|
||||
|
||||
//== Miscellaneous
|
||||
//
|
||||
//##
|
||||
|
||||
//** Width of horizontal description list titles
|
||||
$dl-horizontal-offset: $component-offset-horizontal !default;
|
||||
//** Horizontal line color.
|
||||
$hr-border: $gray-lighter !default;
|
||||
|
||||
//** Horizontal offset for forms and lists.
|
||||
$component-offset-horizontal: 180px !default;
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
// Creates two color stops, start and end, by specifying a color and position for each color stop.
|
||||
// Color stops are not available in IE9 and below.
|
||||
@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
|
||||
background-image: -webkit-linear-gradient(left, color-stop($start-color $start-percent), color-stop($end-color $end-percent)); // Safari 5.1-6, Chrome 10+
|
||||
background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
|
||||
background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12
|
||||
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
|
||||
background-repeat: repeat-x;
|
|
@ -4,10 +4,7 @@
|
|||
// any value of `$grid-columns`.
|
||||
|
||||
// [converter] This is defined recursively in LESS, but Sass supports real loops
|
||||
@mixin make-grid-columns() {
|
||||
$list: '';
|
||||
$i: 1;
|
||||
$list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
|
||||
@mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") {
|
||||
@for $i from (1 + 1) through $grid-columns {
|
||||
$list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
|
||||
}
|
||||
|
@ -23,10 +20,7 @@
|
|||
|
||||
|
||||
// [converter] This is defined recursively in LESS, but Sass supports real loops
|
||||
@mixin float-grid-columns($class) {
|
||||
$list: '';
|
||||
$i: 1;
|
||||
$list: ".col-#{$class}-#{$i}";
|
||||
@mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") {
|
||||
@for $i from (1 + 1) through $grid-columns {
|
||||
$list: "#{$list}, .col-#{$class}-#{$i}";
|
||||
}
|
|
@ -3,11 +3,11 @@
|
|||
// Generate semantic grid columns with these mixins.
|
||||
|
||||
// Centered container element
|
||||
@mixin container-fixed() {
|
||||
@mixin container-fixed($gutter: $grid-gutter-width) {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
padding-left: ($grid-gutter-width / 2);
|
||||
padding-right: ($grid-gutter-width / 2);
|
||||
padding-left: ($gutter / 2);
|
||||
padding-right: ($gutter / 2);
|
||||
@include clearfix();
|
||||
}
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
// Keep images from scaling beyond the width of their parents.
|
||||
@mixin img-responsive($display: block) {
|
||||
display: $display;
|
||||
width: 100% \9; // Force IE10 and below to size SVG images correctly
|
||||
max-width: 100%; // Part 1: Set a maximum relative to the parent
|
||||
height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
|
||||
}
|
|
@ -11,6 +11,10 @@
|
|||
+ .panel-collapse > .panel-body {
|
||||
border-top-color: $border;
|
||||
}
|
||||
.badge {
|
||||
color: $heading-bg-color;
|
||||
background-color: $heading-text-color;
|
||||
}
|
||||
}
|
||||
& > .panel-footer {
|
||||
+ .panel-collapse > .panel-body {
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
@mixin progress-bar-variant($color) {
|
||||
background-color: $color;
|
||||
|
||||
// Deprecated parent class requirement as of v3.2.0
|
||||
.progress-striped & {
|
||||
@include gradient-striped();
|
||||
}
|
|
@ -2,5 +2,5 @@
|
|||
|
||||
@mixin resizable($direction) {
|
||||
resize: $direction; // Options: horizontal, vertical, both
|
||||
overflow: auto; // Safari fix
|
||||
overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
// Vendor Prefixes
|
||||
//
|
||||
// All vendor mixins are deprecated as of v3.2 due to the introduction of
|
||||
// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
|
||||
// Autoprefixer in our Gruntfile. They will be removed in v4.
|
||||
|
||||
// - Animations
|
||||
|
@ -112,12 +112,7 @@
|
|||
-o-transform: scale($ratio);
|
||||
transform: scale($ratio);
|
||||
}
|
||||
@mixin scale($ratioX, $ratioY...) {
|
||||
-webkit-transform: scale($ratioX, $ratioY);
|
||||
-ms-transform: scale($ratioX, $ratioY); // IE9 only
|
||||
-o-transform: scale($ratioX, $ratioY);
|
||||
transform: scale($ratioX, $ratioY);
|
||||
}
|
||||
|
||||
@mixin scaleX($ratio) {
|
||||
-webkit-transform: scaleX($ratio);
|
||||
-ms-transform: scaleX($ratio); // IE9 only
|
||||
|
@ -131,10 +126,10 @@
|
|||
transform: scaleY($ratio);
|
||||
}
|
||||
@mixin skew($x, $y) {
|
||||
-webkit-transform: skew($x, $y);
|
||||
-webkit-transform: skewX($x) skewY($y);
|
||||
-ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
|
||||
-o-transform: skew($x, $y);
|
||||
transform: skew($x, $y);
|
||||
-o-transform: skewX($x) skewY($y);
|
||||
transform: skewX($x) skewY($y);
|
||||
}
|
||||
@mixin translate($x, $y) {
|
||||
-webkit-transform: translate($x, $y);
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "bootstrap-sass",
|
||||
"version": "3.1.1",
|
||||
"version": "3.2.0",
|
||||
"homepage": "https://github.com/twbs/bootstrap-sass",
|
||||
"authors": [
|
||||
"Thomas McDonald",
|
||||
|
@ -10,23 +10,23 @@
|
|||
],
|
||||
"description": "bootstrap-sass is a Sass-powered version of Bootstrap, ready to drop right into your Sass powered applications.",
|
||||
"main": [
|
||||
"vendor/assets/stylesheets/bootstrap.scss",
|
||||
"vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.eot",
|
||||
"vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.svg",
|
||||
"vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf",
|
||||
"vendor/assets/fonts/bootstrap/glyphicons-halflings-regular.woff",
|
||||
"vendor/assets/javascripts/bootstrap/affix.js",
|
||||
"vendor/assets/javascripts/bootstrap/alert.js",
|
||||
"vendor/assets/javascripts/bootstrap/button.js",
|
||||
"vendor/assets/javascripts/bootstrap/carousel.js",
|
||||
"vendor/assets/javascripts/bootstrap/collapse.js",
|
||||
"vendor/assets/javascripts/bootstrap/dropdown.js",
|
||||
"vendor/assets/javascripts/bootstrap/tab.js",
|
||||
"vendor/assets/javascripts/bootstrap/transition.js",
|
||||
"vendor/assets/javascripts/bootstrap/scrollspy.js",
|
||||
"vendor/assets/javascripts/bootstrap/modal.js",
|
||||
"vendor/assets/javascripts/bootstrap/tooltip.js",
|
||||
"vendor/assets/javascripts/bootstrap/popover.js"
|
||||
"assets/stylesheets/bootstrap.scss",
|
||||
"assets/fonts/bootstrap/glyphicons-halflings-regular.eot",
|
||||
"assets/fonts/bootstrap/glyphicons-halflings-regular.svg",
|
||||
"assets/fonts/bootstrap/glyphicons-halflings-regular.ttf",
|
||||
"assets/fonts/bootstrap/glyphicons-halflings-regular.woff",
|
||||
"assets/javascripts/bootstrap/affix.js",
|
||||
"assets/javascripts/bootstrap/alert.js",
|
||||
"assets/javascripts/bootstrap/button.js",
|
||||
"assets/javascripts/bootstrap/carousel.js",
|
||||
"assets/javascripts/bootstrap/collapse.js",
|
||||
"assets/javascripts/bootstrap/dropdown.js",
|
||||
"assets/javascripts/bootstrap/tab.js",
|
||||
"assets/javascripts/bootstrap/transition.js",
|
||||
"assets/javascripts/bootstrap/scrollspy.js",
|
||||
"assets/javascripts/bootstrap/modal.js",
|
||||
"assets/javascripts/bootstrap/tooltip.js",
|
||||
"assets/javascripts/bootstrap/popover.js"
|
||||
],
|
||||
"keywords": [
|
||||
"twbs",
|
||||
|
@ -43,5 +43,8 @@
|
|||
"*.gemspec",
|
||||
"Rakefile",
|
||||
"Gemfile"
|
||||
]
|
||||
],
|
||||
"dependencies": {
|
||||
"jquery": ">= 1.9.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
"license": "MIT",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.1.x-dev"
|
||||
"dev-master": "3.2.x-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "bootstrap-sass",
|
||||
"version": "3.1.1",
|
||||
"version": "3.2.0",
|
||||
"description": "bootstrap-sass is a Sass-powered version of Bootstrap, ready to drop right into your Sass powered applications.",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
|
|
5
app/bower_components/bootstrap-sass-official/sache.json
vendored
Normal file
5
app/bower_components/bootstrap-sass-official/sache.json
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"name": "bootstrap-sass",
|
||||
"description": "bootstrap-sass is a Sass-powered version of Bootstrap, ready to drop right into your Sass powered applications",
|
||||
"tags": ["bootstrap", "grid", "typography", "buttons", "ui", "responsive-web-design"]
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
//= require bootstrap/affix
|
||||
//= require bootstrap/alert
|
||||
//= require bootstrap/button
|
||||
//= require bootstrap/carousel
|
||||
//= require bootstrap/collapse
|
||||
//= require bootstrap/dropdown
|
||||
//= require bootstrap/tab
|
||||
//= require bootstrap/transition
|
||||
//= require bootstrap/scrollspy
|
||||
//= require bootstrap/modal
|
||||
//= require bootstrap/tooltip
|
||||
//= require bootstrap/popover
|
Loading…
Add table
Add a link
Reference in a new issue