0
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-03-15 15:29:22 +01:00

Merge branch 'v4-dev' of https://github.com/twbs/bootstrap into v4-dev

This commit is contained in:
Mark Otto 2017-08-13 16:47:45 -07:00
commit 0f2acc4b9e
45 changed files with 294 additions and 258 deletions

View File

@ -7,7 +7,7 @@ GEM
ffi (1.9.18) ffi (1.9.18)
ffi (1.9.18-x64-mingw32) ffi (1.9.18-x64-mingw32)
forwardable-extended (2.6.0) forwardable-extended (2.6.0)
jekyll (3.5.1) jekyll (3.5.2)
addressable (~> 2.4) addressable (~> 2.4)
colorator (~> 1.0) colorator (~> 1.0)
jekyll-sass-converter (~> 1.0) jekyll-sass-converter (~> 1.0)

View File

@ -96,9 +96,10 @@ Documentation search is powered by [Algolia's DocSearch](https://community.algol
### Running documentation locally ### Running documentation locally
1. Run through the [tooling setup](https://github.com/twbs/bootstrap/blob/v4-dev/docs/4.0/getting-started/build-tools.md#tooling-setup) to install Jekyll (the site builder) and other Ruby dependencies with `bundle install`. 1. Run through the [tooling setup](https://github.com/twbs/bootstrap/blob/v4-dev/docs/4.0/getting-started/build-tools.md#tooling-setup) to install Jekyll (the site builder) and other Ruby dependencies with `bundle install`.
2. Run `npm run test` (or a specific NPM script) to rebuild distributed CSS and JavaScript files, as well as our docs assets. 2. Run `npm install` to install Node.js dependencies.
3. From the root `/bootstrap` directory, run `bundle exec jekyll serve` in the command line. 3. Run `npm run test` (or a specific NPM script) to rebuild distributed CSS and JavaScript files, as well as our docs assets.
4. Open <http://localhost:9001> in your browser, and voilà. 4. From the root `/bootstrap` directory, run `bundle exec jekyll serve` in the command line.
5. Open <http://localhost:9001> in your browser, and voilà.
Learn more about using Jekyll by reading its [documentation](https://jekyllrb.com/docs/home/). Learn more about using Jekyll by reading its [documentation](https://jekyllrb.com/docs/home/).

View File

@ -1,5 +1,6 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Jekyll v{{ jekyll.version }}">
<title> <title>
{% if page.title %} {% if page.title %}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -392,16 +392,26 @@
.highlight { .highlight {
padding: 1rem; padding: 1rem;
margin: 1rem (-$grid-gutter-width / 2); margin-top: 1rem;
margin-bottom: 1rem;
background-color: #f7f7f9; background-color: #f7f7f9;
-ms-overflow-style: -ms-autohiding-scrollbar; -ms-overflow-style: -ms-autohiding-scrollbar;
@include media-breakpoint-up(sm) { @include media-breakpoint-up(sm) {
padding: 1.5rem; padding: 1.5rem;
}
}
.bd-content .highlight {
margin-right: (-$grid-gutter-width / 2);
margin-left: (-$grid-gutter-width / 2);
@include media-breakpoint-up(sm) {
margin-right: 0; margin-right: 0;
margin-left: 0; margin-left: 0;
} }
} }
.highlight pre { .highlight pre {
padding: 0; padding: 0;
margin-top: 0; margin-top: 0;

View File

@ -1772,14 +1772,14 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
} }
.was-validated .form-control:valid ~ .invalid-feedback, .was-validated .form-control:valid ~ .valid-feedback,
.was-validated .form-control:valid ~ .invalid-tooltip, .form-control.is-valid ~ .invalid-feedback, .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
.form-control.is-valid ~ .invalid-tooltip, .was-validated .form-control.is-valid ~ .valid-tooltip, .was-validated
.custom-select:valid ~ .invalid-feedback, .custom-select:valid ~ .valid-feedback,
.was-validated .was-validated
.custom-select:valid ~ .invalid-tooltip, .custom-select:valid ~ .valid-tooltip,
.custom-select.is-valid ~ .invalid-feedback, .custom-select.is-valid ~ .valid-feedback,
.custom-select.is-valid ~ .invalid-tooltip { .custom-select.is-valid ~ .valid-tooltip {
display: block; display: block;
} }
@ -2813,6 +2813,8 @@ tbody.collapse.show {
position: relative; position: relative;
display: -ms-flexbox; display: -ms-flexbox;
display: flex; display: flex;
-ms-flex-align: center;
align-items: center;
width: 100%; width: 100%;
} }
@ -2829,15 +2831,6 @@ tbody.collapse.show {
z-index: 3; z-index: 3;
} }
.input-group-addon,
.input-group-btn,
.input-group .form-control {
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
}
.input-group-addon:not(:first-child):not(:last-child), .input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) { .input-group .form-control:not(:first-child):not(:last-child) {
@ -2847,7 +2840,6 @@ tbody.collapse.show {
.input-group-addon, .input-group-addon,
.input-group-btn { .input-group-btn {
white-space: nowrap; white-space: nowrap;
vertical-align: middle;
} }
.input-group-addon { .input-group-addon {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -50,9 +50,10 @@ var Util = function ($) {
MozTransition: 'transitionend', MozTransition: 'transitionend',
OTransition: 'oTransitionEnd otransitionend', OTransition: 'oTransitionEnd otransitionend',
transition: 'transitionend' transition: 'transitionend'
};
// shoutout AngusCroll (https://goo.gl/pxwQGp) // shoutout AngusCroll (https://goo.gl/pxwQGp)
};function toType(obj) { function toType(obj) {
return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
} }
@ -215,14 +216,14 @@ var Alert = function ($) {
ALERT: 'alert', ALERT: 'alert',
FADE: 'fade', FADE: 'fade',
SHOW: 'show' SHOW: 'show'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Alert = function () { var Alert = function () {
function Alert(element) { function Alert(element) {
_classCallCheck(this, Alert); _classCallCheck(this, Alert);
@ -396,14 +397,14 @@ var Button = function ($) {
var Event = { var Event = {
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY, CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY) FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY)
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Button = function () { var Button = function () {
function Button(element) { function Button(element) {
_classCallCheck(this, Button); _classCallCheck(this, Button);
@ -606,14 +607,14 @@ var Carousel = function ($) {
INDICATORS: '.carousel-indicators', INDICATORS: '.carousel-indicators',
DATA_SLIDE: '[data-slide], [data-slide-to]', DATA_SLIDE: '[data-slide], [data-slide-to]',
DATA_RIDE: '[data-ride="carousel"]' DATA_RIDE: '[data-ride="carousel"]'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Carousel = function () { var Carousel = function () {
function Carousel(element, config) { function Carousel(element, config) {
_classCallCheck(this, Carousel); _classCallCheck(this, Carousel);
@ -1090,14 +1091,14 @@ var Collapse = function ($) {
var Selector = { var Selector = {
ACTIVES: '.show, .collapsing', ACTIVES: '.show, .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]' DATA_TOGGLE: '[data-toggle="collapse"]'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Collapse = function () { var Collapse = function () {
function Collapse(element, config) { function Collapse(element, config) {
_classCallCheck(this, Collapse); _classCallCheck(this, Collapse);
@ -1478,14 +1479,14 @@ var Dropdown = function ($) {
placement: 'string', placement: 'string',
offset: '(number|string)', offset: '(number|string)',
flip: 'boolean' flip: 'boolean'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Dropdown = function () { var Dropdown = function () {
function Dropdown(element, config) { function Dropdown(element, config) {
_classCallCheck(this, Dropdown); _classCallCheck(this, Dropdown);
@ -1634,9 +1635,10 @@ var Dropdown = function ($) {
enabled: this._config.flip enabled: this._config.flip
} }
} }
};
// Disable Popper.js for Dropdown in Navbar // Disable Popper.js for Dropdown in Navbar
};if (this._inNavbar) { if (this._inNavbar) {
popperConfig.modifiers.applyStyle = { popperConfig.modifiers.applyStyle = {
enabled: !this._inNavbar enabled: !this._inNavbar
}; };
@ -1889,14 +1891,14 @@ var Modal = function ($) {
DATA_DISMISS: '[data-dismiss="modal"]', DATA_DISMISS: '[data-dismiss="modal"]',
FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
NAVBAR_TOGGLER: '.navbar-toggler' NAVBAR_TOGGLER: '.navbar-toggler'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Modal = function () { var Modal = function () {
function Modal(element, config) { function Modal(element, config) {
_classCallCheck(this, Modal); _classCallCheck(this, Modal);
@ -2453,14 +2455,14 @@ var ScrollSpy = function ($) {
var OffsetMethod = { var OffsetMethod = {
OFFSET: 'offset', OFFSET: 'offset',
POSITION: 'position' POSITION: 'position'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var ScrollSpy = function () { var ScrollSpy = function () {
function ScrollSpy(element, config) { function ScrollSpy(element, config) {
var _this20 = this; var _this20 = this;
@ -2750,17 +2752,18 @@ var Tab = function ($) {
DROPDOWN: '.dropdown', DROPDOWN: '.dropdown',
NAV_LIST_GROUP: '.nav, .list-group', NAV_LIST_GROUP: '.nav, .list-group',
ACTIVE: '.active', ACTIVE: '.active',
ACTIVE_UL: '> li > .active',
DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
DROPDOWN_TOGGLE: '.dropdown-toggle', DROPDOWN_TOGGLE: '.dropdown-toggle',
DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active' DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Tab = function () { var Tab = function () {
function Tab(element) { function Tab(element) {
_classCallCheck(this, Tab); _classCallCheck(this, Tab);
@ -2785,7 +2788,8 @@ var Tab = function ($) {
var selector = Util.getSelectorFromElement(this._element); var selector = Util.getSelectorFromElement(this._element);
if (listElement) { if (listElement) {
previous = $.makeArray($(listElement).find(Selector.ACTIVE)); var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
previous = $.makeArray($(listElement).find(itemSelector));
previous = previous[previous.length - 1]; previous = previous[previous.length - 1];
} }
@ -2843,7 +2847,14 @@ var Tab = function ($) {
Tab.prototype._activate = function _activate(element, container, callback) { Tab.prototype._activate = function _activate(element, container, callback) {
var _this23 = this; var _this23 = this;
var active = $(container).find(Selector.ACTIVE)[0]; var activeElements = void 0;
if (container.nodeName === 'UL') {
activeElements = $(container).find(Selector.ACTIVE_UL);
} else {
activeElements = $(container).children(Selector.ACTIVE);
}
var active = activeElements[0];
var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE); var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
var complete = function complete() { var complete = function complete() {
@ -3061,14 +3072,14 @@ var Tooltip = function ($) {
FOCUS: 'focus', FOCUS: 'focus',
CLICK: 'click', CLICK: 'click',
MANUAL: 'manual' MANUAL: 'manual'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Tooltip = function () { var Tooltip = function () {
function Tooltip(element, config) { function Tooltip(element, config) {
_classCallCheck(this, Tooltip); _classCallCheck(this, Tooltip);
@ -3687,14 +3698,14 @@ var Popover = function ($) {
FOCUSOUT: 'focusout' + EVENT_KEY, FOCUSOUT: 'focusout' + EVENT_KEY,
MOUSEENTER: 'mouseenter' + EVENT_KEY, MOUSEENTER: 'mouseenter' + EVENT_KEY,
MOUSELEAVE: 'mouseleave' + EVENT_KEY MOUSELEAVE: 'mouseleave' + EVENT_KEY
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Popover = function (_Tooltip) { var Popover = function (_Tooltip) {
_inherits(Popover, _Tooltip); _inherits(Popover, _Tooltip);

File diff suppressed because one or more lines are too long

View File

@ -109,7 +109,7 @@
</div><!-- /.blog-main --> </div><!-- /.blog-main -->
<div class="col-sm-3 offset-sm-1 blog-sidebar"> <div class="col-sm-3 ml-sm-auto blog-sidebar">
<div class="sidebar-module sidebar-module-inset"> <div class="sidebar-module sidebar-module-inset">
<h4>About</h4> <h4>About</h4>
<p>Etiam porta <em>sem malesuada magna</em> mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur.</p> <p>Etiam porta <em>sem malesuada magna</em> mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur.</p>

14
js/dist/alert.js vendored
View File

@ -39,14 +39,14 @@ var Alert = function ($) {
ALERT: 'alert', ALERT: 'alert',
FADE: 'fade', FADE: 'fade',
SHOW: 'show' SHOW: 'show'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Alert = function () { var Alert = function () {
function Alert(element) { function Alert(element) {
_classCallCheck(this, Alert); _classCallCheck(this, Alert);

File diff suppressed because one or more lines are too long

14
js/dist/button.js vendored
View File

@ -41,14 +41,14 @@ var Button = function ($) {
var Event = { var Event = {
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY, CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY) FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY)
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Button = function () { var Button = function () {
function Button(element) { function Button(element) {
_classCallCheck(this, Button); _classCallCheck(this, Button);

File diff suppressed because one or more lines are too long

14
js/dist/carousel.js vendored
View File

@ -83,14 +83,14 @@ var Carousel = function ($) {
INDICATORS: '.carousel-indicators', INDICATORS: '.carousel-indicators',
DATA_SLIDE: '[data-slide], [data-slide-to]', DATA_SLIDE: '[data-slide], [data-slide-to]',
DATA_RIDE: '[data-ride="carousel"]' DATA_RIDE: '[data-ride="carousel"]'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Carousel = function () { var Carousel = function () {
function Carousel(element, config) { function Carousel(element, config) {
_classCallCheck(this, Carousel); _classCallCheck(this, Carousel);

File diff suppressed because one or more lines are too long

14
js/dist/collapse.js vendored
View File

@ -60,14 +60,14 @@ var Collapse = function ($) {
var Selector = { var Selector = {
ACTIVES: '.show, .collapsing', ACTIVES: '.show, .collapsing',
DATA_TOGGLE: '[data-toggle="collapse"]' DATA_TOGGLE: '[data-toggle="collapse"]'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Collapse = function () { var Collapse = function () {
function Collapse(element, config) { function Collapse(element, config) {
_classCallCheck(this, Collapse); _classCallCheck(this, Collapse);

File diff suppressed because one or more lines are too long

19
js/dist/dropdown.js vendored
View File

@ -85,14 +85,14 @@ var Dropdown = function ($) {
placement: 'string', placement: 'string',
offset: '(number|string)', offset: '(number|string)',
flip: 'boolean' flip: 'boolean'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Dropdown = function () { var Dropdown = function () {
function Dropdown(element, config) { function Dropdown(element, config) {
_classCallCheck(this, Dropdown); _classCallCheck(this, Dropdown);
@ -241,9 +241,10 @@ var Dropdown = function ($) {
enabled: this._config.flip enabled: this._config.flip
} }
} }
};
// Disable Popper.js for Dropdown in Navbar // Disable Popper.js for Dropdown in Navbar
};if (this._inNavbar) { if (this._inNavbar) {
popperConfig.modifiers.applyStyle = { popperConfig.modifiers.applyStyle = {
enabled: !this._inNavbar enabled: !this._inNavbar
}; };

File diff suppressed because one or more lines are too long

14
js/dist/modal.js vendored
View File

@ -71,14 +71,14 @@ var Modal = function ($) {
DATA_DISMISS: '[data-dismiss="modal"]', DATA_DISMISS: '[data-dismiss="modal"]',
FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
NAVBAR_TOGGLER: '.navbar-toggler' NAVBAR_TOGGLER: '.navbar-toggler'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Modal = function () { var Modal = function () {
function Modal(element, config) { function Modal(element, config) {
_classCallCheck(this, Modal); _classCallCheck(this, Modal);

File diff suppressed because one or more lines are too long

14
js/dist/popover.js vendored
View File

@ -63,14 +63,14 @@ var Popover = function ($) {
FOCUSOUT: 'focusout' + EVENT_KEY, FOCUSOUT: 'focusout' + EVENT_KEY,
MOUSEENTER: 'mouseenter' + EVENT_KEY, MOUSEENTER: 'mouseenter' + EVENT_KEY,
MOUSELEAVE: 'mouseleave' + EVENT_KEY MOUSELEAVE: 'mouseleave' + EVENT_KEY
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Popover = function (_Tooltip) { var Popover = function (_Tooltip) {
_inherits(Popover, _Tooltip); _inherits(Popover, _Tooltip);

File diff suppressed because one or more lines are too long

14
js/dist/scrollspy.js vendored
View File

@ -64,14 +64,14 @@ var ScrollSpy = function ($) {
var OffsetMethod = { var OffsetMethod = {
OFFSET: 'offset', OFFSET: 'offset',
POSITION: 'position' POSITION: 'position'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var ScrollSpy = function () { var ScrollSpy = function () {
function ScrollSpy(element, config) { function ScrollSpy(element, config) {
var _this = this; var _this = this;

File diff suppressed because one or more lines are too long

27
js/dist/tab.js vendored
View File

@ -45,17 +45,18 @@ var Tab = function ($) {
DROPDOWN: '.dropdown', DROPDOWN: '.dropdown',
NAV_LIST_GROUP: '.nav, .list-group', NAV_LIST_GROUP: '.nav, .list-group',
ACTIVE: '.active', ACTIVE: '.active',
ACTIVE_UL: '> li > .active',
DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
DROPDOWN_TOGGLE: '.dropdown-toggle', DROPDOWN_TOGGLE: '.dropdown-toggle',
DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active' DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Tab = function () { var Tab = function () {
function Tab(element) { function Tab(element) {
_classCallCheck(this, Tab); _classCallCheck(this, Tab);
@ -80,7 +81,8 @@ var Tab = function ($) {
var selector = Util.getSelectorFromElement(this._element); var selector = Util.getSelectorFromElement(this._element);
if (listElement) { if (listElement) {
previous = $.makeArray($(listElement).find(Selector.ACTIVE)); var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
previous = $.makeArray($(listElement).find(itemSelector));
previous = previous[previous.length - 1]; previous = previous[previous.length - 1];
} }
@ -138,7 +140,14 @@ var Tab = function ($) {
Tab.prototype._activate = function _activate(element, container, callback) { Tab.prototype._activate = function _activate(element, container, callback) {
var _this2 = this; var _this2 = this;
var active = $(container).find(Selector.ACTIVE)[0]; var activeElements = void 0;
if (container.nodeName === 'UL') {
activeElements = $(container).find(Selector.ACTIVE_UL);
} else {
activeElements = $(container).children(Selector.ACTIVE);
}
var active = activeElements[0];
var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE); var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
var complete = function complete() { var complete = function complete() {

2
js/dist/tab.js.map vendored

File diff suppressed because one or more lines are too long

14
js/dist/tooltip.js vendored
View File

@ -106,14 +106,14 @@ var Tooltip = function ($) {
FOCUS: 'focus', FOCUS: 'focus',
CLICK: 'click', CLICK: 'click',
MANUAL: 'manual' MANUAL: 'manual'
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
}; };
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Tooltip = function () { var Tooltip = function () {
function Tooltip(element, config) { function Tooltip(element, config) {
_classCallCheck(this, Tooltip); _classCallCheck(this, Tooltip);

File diff suppressed because one or more lines are too long

5
js/dist/util.js vendored
View File

@ -22,9 +22,10 @@ var Util = function ($) {
MozTransition: 'transitionend', MozTransition: 'transitionend',
OTransition: 'oTransitionEnd otransitionend', OTransition: 'oTransitionEnd otransitionend',
transition: 'transitionend' transition: 'transitionend'
};
// shoutout AngusCroll (https://goo.gl/pxwQGp) // shoutout AngusCroll (https://goo.gl/pxwQGp)
};function toType(obj) { function toType(obj) {
return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase(); return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
} }

2
js/dist/util.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -50,9 +50,9 @@
"release-zip": "cd dist/ && zip -r9 bootstrap-$npm_package_version-dist.zip * && shx mv bootstrap-$npm_package_version-dist.zip ..", "release-zip": "cd dist/ && zip -r9 bootstrap-$npm_package_version-dist.zip * && shx mv bootstrap-$npm_package_version-dist.zip ..",
"dist": "npm-run-all --parallel css js css-docs", "dist": "npm-run-all --parallel css js css-docs",
"test": "npm-run-all dist js-test docs", "test": "npm-run-all dist js-test docs",
"watch": "npm-run-all --parallel watch-css watch-js",
"watch-css": "nodemon --ignore js/ --ignore dist/ -e scss -x \"npm run css && npm run css-docs\"", "watch-css": "nodemon --ignore js/ --ignore dist/ -e scss -x \"npm run css && npm run css-docs\"",
"watch-js": "nodemon --ignore scss/ --ignore js/dist/ --ignore dist/ -e js -x \"npm run js-compile-plugins\"", "watch-js": "nodemon --ignore scss/ --ignore js/dist/ --ignore dist/ -e js -x \"npm run js-compile-plugins\""
"watch": "npm-run-all --parallel watch-css watch-js"
}, },
"style": "dist/css/bootstrap.css", "style": "dist/css/bootstrap.css",
"sass": "scss/bootstrap.scss", "sass": "scss/bootstrap.scss",

View File

@ -10,7 +10,6 @@
> .btn { > .btn {
position: relative; position: relative;
flex: 0 1 auto; flex: 0 1 auto;
margin-bottom: 0;
// Bring the hover, focused, and "active" buttons to the front to overlay // Bring the hover, focused, and "active" buttons to the front to overlay
// the borders properly // the borders properly
@ -66,15 +65,18 @@
.btn-group > .btn-group { .btn-group > .btn-group {
float: left; float: left;
} }
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0; border-radius: 0;
} }
.btn-group > .btn-group:first-child:not(:last-child) { .btn-group > .btn-group:first-child:not(:last-child) {
> .btn:last-child, > .btn:last-child,
> .dropdown-toggle { > .dropdown-toggle {
@include border-right-radius(0); @include border-right-radius(0);
} }
} }
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
@include border-left-radius(0); @include border-left-radius(0);
} }
@ -129,7 +131,6 @@
// //
.btn-group-vertical { .btn-group-vertical {
display: inline-flex;
flex-direction: column; flex-direction: column;
align-items: flex-start; align-items: flex-start;
justify-content: center; justify-content: center;
@ -146,30 +147,35 @@
margin-top: -$input-btn-border-width; margin-top: -$input-btn-border-width;
margin-left: 0; margin-left: 0;
} }
}
.btn-group-vertical > .btn { > .btn {
&:not(:first-child):not(:last-child) { &:not(:first-child):not(:last-child) {
border-radius: 0; border-radius: 0;
}
} }
&:first-child:not(:last-child) { &:first-child:not(:last-child) {
@include border-bottom-radius(0); @include border-bottom-radius(0);
} }
&:last-child:not(:first-child) { &:last-child:not(:first-child) {
@include border-top-radius(0); @include border-top-radius(0);
} }
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0; border-radius: 0;
} }
.btn-group-vertical > .btn-group:first-child:not(:last-child) {
> .btn:last-child, > .btn-group:first-child:not(:last-child) {
> .dropdown-toggle { > .btn:last-child,
@include border-bottom-radius(0); > .dropdown-toggle {
@include border-bottom-radius(0);
}
}
> .btn-group:last-child:not(:first-child) > .btn:first-child {
@include border-top-radius(0);
} }
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
@include border-top-radius(0);
} }

View File

@ -71,36 +71,28 @@ fieldset[disabled] a.btn {
.btn-link { .btn-link {
font-weight: $font-weight-normal; font-weight: $font-weight-normal;
color: $link-color; color: $link-color;
background-color: transparent;
border-radius: 0; border-radius: 0;
&,
&:active,
&.active,
&:disabled {
background-color: transparent;
@include box-shadow(none);
}
&,
&:focus,
&:active {
border-color: transparent;
box-shadow: none;
}
@include hover { @include hover {
border-color: transparent;
}
@include hover-focus {
color: $link-hover-color; color: $link-hover-color;
text-decoration: $link-hover-decoration; text-decoration: $link-hover-decoration;
background-color: transparent; background-color: transparent;
border-color: transparent;
} }
&:disabled {
color: $btn-link-disabled-color;
@include hover-focus { &:focus,
text-decoration: none; &.focus {
} border-color: transparent;
box-shadow: none;
} }
&:disabled,
&.disabled {
color: $btn-link-disabled-color;
}
// No need for an active state here
} }

View File

@ -130,9 +130,15 @@
// Card deck // Card deck
@include media-breakpoint-up(sm) { .card-deck {
.card-deck { display: flex;
display: flex; flex-direction: column;
.card {
margin-bottom: $card-deck-margin;
}
@include media-breakpoint-up(sm) {
flex-flow: row wrap; flex-flow: row wrap;
margin-right: -$card-deck-margin; margin-right: -$card-deck-margin;
margin-left: -$card-deck-margin; margin-left: -$card-deck-margin;
@ -142,6 +148,7 @@
flex: 1 0 0%; flex: 1 0 0%;
flex-direction: column; flex-direction: column;
margin-right: $card-deck-margin; margin-right: $card-deck-margin;
margin-bottom: 0; // Override the default
margin-left: $card-deck-margin; margin-left: $card-deck-margin;
} }
} }
@ -152,15 +159,22 @@
// Card groups // Card groups
// //
@include media-breakpoint-up(sm) { .card-group {
.card-group { display: flex;
display: flex; flex-direction: column;
.card {
margin-bottom: $card-group-margin;
}
@include media-breakpoint-up(sm) {
flex-flow: row wrap; flex-flow: row wrap;
.card { .card {
flex: 1 0 0%; flex: 1 0 0%;
+ .card { + .card {
margin-bottom: 0;
margin-left: 0; margin-left: 0;
border-left: 0; border-left: 0;
} }
@ -177,6 +191,7 @@
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
} }
&:last-child { &:last-child {
@include border-left-radius(0); @include border-left-radius(0);

View File

@ -241,14 +241,11 @@ select.form-control-lg {
// Radios and checkboxes on same line // Radios and checkboxes on same line
.form-check-inline { .form-check-inline {
display: inline-block; display: inline-block;
margin-right: $form-check-inline-margin-x;
.form-check-label { .form-check-label {
vertical-align: middle; vertical-align: middle;
} }
+ .form-check-inline {
margin-left: $form-check-inline-margin-x;
}
} }

View File

@ -5,6 +5,7 @@
.input-group { .input-group {
position: relative; position: relative;
display: flex; display: flex;
align-items: center;
width: 100%; width: 100%;
.form-control { .form-control {
@ -28,10 +29,6 @@
.input-group-addon, .input-group-addon,
.input-group-btn, .input-group-btn,
.input-group .form-control { .input-group .form-control {
// Vertically centers the content of the addons within the input group
display: flex;
align-items: center;
&:not(:first-child):not(:last-child) { &:not(:first-child):not(:last-child) {
@include border-radius(0); @include border-radius(0);
} }
@ -40,7 +37,6 @@
.input-group-addon, .input-group-addon,
.input-group-btn { .input-group-btn {
white-space: nowrap; white-space: nowrap;
vertical-align: middle; // Match the inputs
} }

View File

@ -61,7 +61,8 @@ $gray-800: #343a40 !default;
$gray-900: #212529 !default; $gray-900: #212529 !default;
$black: #000 !default; $black: #000 !default;
$grays: ( $grays: () !default;
$grays: map-merge((
100: $gray-100, 100: $gray-100,
200: $gray-200, 200: $gray-200,
300: $gray-300, 300: $gray-300,
@ -71,7 +72,7 @@ $grays: (
700: $gray-700, 700: $gray-700,
800: $gray-800, 800: $gray-800,
900: $gray-900 900: $gray-900
) !default; ), $grays);
$blue: #007bff !default; $blue: #007bff !default;
$indigo: #6610f2 !default; $indigo: #6610f2 !default;
@ -84,7 +85,8 @@ $green: #28a745 !default;
$teal: #20c997 !default; $teal: #20c997 !default;
$cyan: #17a2b8 !default; $cyan: #17a2b8 !default;
$colors: ( $colors: () !default;
$colors: map-merge((
blue: $blue, blue: $blue,
indigo: $indigo, indigo: $indigo,
purple: $purple, purple: $purple,
@ -98,9 +100,10 @@ $colors: (
white: $white, white: $white,
gray: $gray-600, gray: $gray-600,
gray-dark: $gray-800 gray-dark: $gray-800
) !default; ), $colors);
$theme-colors: ( $theme-colors: () !default;
$theme-colors: map-merge((
primary: $blue, primary: $blue,
secondary: $gray-600, secondary: $gray-600,
success: $green, success: $green,
@ -109,7 +112,7 @@ $theme-colors: (
danger: $red, danger: $red,
light: $gray-100, light: $gray-100,
dark: $gray-800 dark: $gray-800
) !default; ), $theme-colors);
// Set a specific jump point for requesting color jumps // Set a specific jump point for requesting color jumps
$theme-color-interval: 8% !default; $theme-color-interval: 8% !default;
@ -632,7 +635,8 @@ $card-bg: $white !default;
$card-img-overlay-padding: 1.25rem !default; $card-img-overlay-padding: 1.25rem !default;
$card-deck-margin: ($grid-gutter-width / 2) !default; $card-group-margin: ($grid-gutter-width / 2) !default;
$card-deck-margin: $card-group-margin !default;
$card-columns-count: 3 !default; $card-columns-count: 3 !default;
$card-columns-gap: 1.25rem !default; $card-columns-gap: 1.25rem !default;

View File

@ -9,7 +9,7 @@
border-color: $border; border-color: $border;
@include box-shadow($btn-box-shadow); @include box-shadow($btn-box-shadow);
&:hover { @include hover {
@include color-yiq($background); @include color-yiq($background);
background-color: $active-background; background-color: $active-background;
border-color: $active-border; border-color: $active-border;

View File

@ -33,8 +33,8 @@
box-shadow: 0 0 0 .2rem rgba($color,.25); box-shadow: 0 0 0 .2rem rgba($color,.25);
} }
~ .invalid-feedback, ~ .#{$state}-feedback,
~ .invalid-tooltip { ~ .#{$state}-tooltip {
display: block; display: block;
} }
} }

View File

@ -3,11 +3,11 @@
// Generate semantic grid columns with these mixins. // Generate semantic grid columns with these mixins.
@mixin make-container() { @mixin make-container() {
width: 100%;
margin-right: auto; margin-right: auto;
margin-left: auto; margin-left: auto;
padding-right: ($grid-gutter-width / 2); padding-right: ($grid-gutter-width / 2);
padding-left: ($grid-gutter-width / 2); padding-left: ($grid-gutter-width / 2);
width: 100%;
} }