Compare commits

...

12 Commits

Author SHA1 Message Date
David Miller
a749325221 gulp task fix and update dependencies 2019-05-29 14:48:37 -04:00
David Miller
b812173c32 update version and build 2019-05-16 23:04:56 -04:00
David Miller
64ca81c327 run npm install 2019-05-16 23:01:57 -04:00
David Miller
19ced5fa0d Update package-lock.json 2019-05-16 22:59:13 -04:00
David Miller
a372e9afc8 Merge pull request #242 from JohanLopes/master
Use bootstrap variables in borders and backgrounds utilities classes
2019-05-16 22:56:52 -04:00
David Miller
5ad6666a41 Update package-lock.json 2019-05-16 22:54:09 -04:00
David Miller
9324925358 Update package-lock.json 2019-05-16 22:53:07 -04:00
David Miller
14d3962ab6 fix gulp-sass vulnerabilities and update dependencies 2019-05-16 18:13:11 -04:00
Johan Lopes
b6fcd9f6da Use bootstrap variables in borders and backgrounds utilities classes 2019-04-24 17:08:12 +02:00
David Miller
ddfaceb4a8 update dependencies 2019-03-26 02:08:18 -04:00
David Miller
b77570a56e Merge pull request #222 from BlackrockDigital/dev
update bootstrap 4.3.1, update gulpfile, npm start script added, chan…
2019-02-17 03:28:24 -05:00
David Miller
51c9446454 update bootstrap 4.3.1, update gulpfile, npm start script added, change SCSS file names for proper compiling 2019-02-17 03:06:45 -05:00
337 changed files with 39287 additions and 33410 deletions

View File

@@ -29,12 +29,12 @@ To begin using this template, choose one of the following options to get started
## Usage ## Usage
After installation, run `npm install` which will install all third party dependencies into your node modules folder. After this, run `gulp` which will compile the CSS and move some core dependencies into the vendor directory. After installation, run `npm install` and then run `npm start` which will open up a preview of the template in your default browser, watch for changes to core template files, and live reload the browser when changes are saved. You can view the `gulpfile.js` to see which tasks are included with the dev environment.
### Gulp Tasks ### Gulp Tasks
- `gulp` the default task that builds everything - `gulp` the default task that builds everything
- `gulp dev` browserSync opens the project in your default browser and live reloads when changes are made - `gulp watch` browserSync opens the project in your default browser and live reloads when changes are made
- `gulp css` compiles SCSS files into CSS and minifies the compiled CSS - `gulp css` compiles SCSS files into CSS and minifies the compiled CSS
- `gulp js` minifies the themes JS file - `gulp js` minifies the themes JS file
- `gulp vendor` copies dependencies from node_modules to the vendor directory - `gulp vendor` copies dependencies from node_modules to the vendor directory

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,13 +1,19 @@
"use strict";
// Load plugins // Load plugins
const autoprefixer = require("gulp-autoprefixer"); const autoprefixer = require("gulp-autoprefixer");
const browsersync = require("browser-sync").create(); const browsersync = require("browser-sync").create();
const cleanCSS = require("gulp-clean-css"); const cleanCSS = require("gulp-clean-css");
const del = require("del");
const gulp = require("gulp"); const gulp = require("gulp");
const header = require("gulp-header"); const header = require("gulp-header");
const merge = require("merge-stream");
const plumber = require("gulp-plumber"); const plumber = require("gulp-plumber");
const rename = require("gulp-rename"); const rename = require("gulp-rename");
const sass = require("gulp-sass"); const sass = require("gulp-sass");
const uglify = require("gulp-uglify"); const uglify = require("gulp-uglify");
// Load package.json for banner
const pkg = require('./package.json'); const pkg = require('./package.json');
// Set the banner content // Set the banner content
@@ -19,65 +25,69 @@ const banner = ['/*!\n',
'\n' '\n'
].join(''); ].join('');
// Copy third party libraries from /node_modules into /vendor // BrowserSync
gulp.task('vendor', function(cb) { function browserSync(done) {
browsersync.init({
server: {
baseDir: "./"
},
port: 3000
});
done();
}
// BrowserSync reload
function browserSyncReload(done) {
browsersync.reload();
done();
}
// Clean vendor
function clean() {
return del(["./vendor/"]);
}
// Bring third party dependencies from node_modules into vendor directory
function modules() {
// Bootstrap JS // Bootstrap JS
gulp.src([ var bootstrapJS = gulp.src('./node_modules/bootstrap/dist/js/*')
'./node_modules/bootstrap/dist/js/*', .pipe(gulp.dest('./vendor/bootstrap/js'));
])
.pipe(gulp.dest('./vendor/bootstrap/js'))
// Bootstrap SCSS // Bootstrap SCSS
gulp.src([ var bootstrapSCSS = gulp.src('./node_modules/bootstrap/scss/**/*')
'./node_modules/bootstrap/scss/**/*', .pipe(gulp.dest('./vendor/bootstrap/scss'));
])
.pipe(gulp.dest('./vendor/bootstrap/scss'))
// ChartJS // ChartJS
gulp.src([ var chartJS = gulp.src('./node_modules/chart.js/dist/*.js')
'./node_modules/chart.js/dist/*.js' .pipe(gulp.dest('./vendor/chart.js'));
]) // dataTables
.pipe(gulp.dest('./vendor/chart.js')) var dataTables = gulp.src([
// DataTables
gulp.src([
'./node_modules/datatables.net/js/*.js', './node_modules/datatables.net/js/*.js',
'./node_modules/datatables.net-bs4/js/*.js', './node_modules/datatables.net-bs4/js/*.js',
'./node_modules/datatables.net-bs4/css/*.css' './node_modules/datatables.net-bs4/css/*.css'
]) ])
.pipe(gulp.dest('./vendor/datatables/')) .pipe(gulp.dest('./vendor/datatables'));
// Font Awesome // Font Awesome
gulp.src([ var fontAwesome = gulp.src('./node_modules/@fortawesome/**/*')
'./node_modules/@fortawesome/**/*', .pipe(gulp.dest('./vendor'));
]) // jQuery Easing
.pipe(gulp.dest('./vendor')) var jqueryEasing = gulp.src('./node_modules/jquery.easing/*.js')
.pipe(gulp.dest('./vendor/jquery-easing'));
// jQuery // jQuery
gulp.src([ var jquery = gulp.src([
'./node_modules/jquery/dist/*', './node_modules/jquery/dist/*',
'!./node_modules/jquery/dist/core.js' '!./node_modules/jquery/dist/core.js'
]) ])
.pipe(gulp.dest('./vendor/jquery')) .pipe(gulp.dest('./vendor/jquery'));
return merge(bootstrapJS, bootstrapSCSS, chartJS, dataTables, fontAwesome, jquery, jqueryEasing);
// jQuery Easing }
gulp.src([
'./node_modules/jquery.easing/*.js'
])
.pipe(gulp.dest('./vendor/jquery-easing'))
cb();
});
// CSS task // CSS task
function css() { function css() {
return gulp return gulp
.src("./scss/*.scss") .src("./scss/**/*.scss")
.pipe(plumber()) .pipe(plumber())
.pipe(sass({ .pipe(sass({
outputStyle: "expanded" outputStyle: "expanded",
includePaths: "./node_modules",
})) }))
.on("error", sass.logError) .on("error", sass.logError)
.pipe(autoprefixer({ .pipe(autoprefixer({
@@ -101,7 +111,7 @@ function js() {
return gulp return gulp
.src([ .src([
'./js/*.js', './js/*.js',
'!./js/*.min.js' '!./js/*.min.js',
]) ])
.pipe(uglify()) .pipe(uglify())
.pipe(header(banner, { .pipe(header(banner, {
@@ -114,34 +124,23 @@ function js() {
.pipe(browsersync.stream()); .pipe(browsersync.stream());
} }
// Tasks
gulp.task("css", css);
gulp.task("js", js);
// BrowserSync
function browserSync(done) {
browsersync.init({
server: {
baseDir: "./"
}
});
done();
}
// BrowserSync Reload
function browserSyncReload(done) {
browsersync.reload();
done();
}
// Watch files // Watch files
function watchFiles() { function watchFiles() {
gulp.watch("./scss/**/*", css); gulp.watch("./scss/**/*", css);
gulp.watch(["./js/**/*.js", "!./js/*.min.js"], js); gulp.watch(["./js/**/*", "!./js/**/*.min.js"], js);
gulp.watch("./**/*.html", browserSyncReload); gulp.watch("./**/*.html", browserSyncReload);
} }
gulp.task("default", gulp.parallel(css, js)); // Define complex tasks
const vendor = gulp.series(clean, modules);
const build = gulp.series(vendor, gulp.parallel(css, js));
const watch = gulp.series(build, gulp.parallel(watchFiles, browserSync));
// watch // Export tasks
gulp.task("dev", gulp.parallel(watchFiles, browserSync)); exports.css = css;
exports.js = js;
exports.clean = clean;
exports.vendor = vendor;
exports.build = build;
exports.watch = watch;
exports.default = build;

View File

@@ -1,5 +1,5 @@
/*! /*!
* Start Bootstrap - SB Admin 2 v4.0.1 (https://startbootstrap.com/template-overviews/sb-admin-2) * Start Bootstrap - SB Admin 2 v4.0.5 (https://startbootstrap.com/template-overviews/sb-admin-2)
* Copyright 2013-2019 Start Bootstrap * Copyright 2013-2019 Start Bootstrap
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-sb-admin-2/blob/master/LICENSE) * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-sb-admin-2/blob/master/LICENSE)
*/ */

1468
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,10 @@
{ {
"title": "SB Admin 2", "title": "SB Admin 2",
"name": "startbootstrap-sb-admin-2", "name": "startbootstrap-sb-admin-2",
"version": "4.0.1", "version": "4.0.5",
"scripts": {
"start": "gulp watch"
},
"description": "An open source Bootstrap 4 admin theme.", "description": "An open source Bootstrap 4 admin theme.",
"keywords": [ "keywords": [
"css", "css",
@@ -28,22 +31,24 @@
"url": "https://github.com/BlackrockDigital/startbootstrap-sb-admin-2.git" "url": "https://github.com/BlackrockDigital/startbootstrap-sb-admin-2.git"
}, },
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-free": "5.7.2", "@fortawesome/fontawesome-free": "5.8.2",
"bootstrap": "4.3.1", "bootstrap": "4.3.1",
"chart.js": "2.7.3", "chart.js": "2.8.0",
"datatables.net-bs4": "1.10.19", "datatables.net-bs4": "1.10.19",
"jquery": "3.3.1", "jquery": "3.4.1",
"jquery.easing": "^1.4.1" "jquery.easing": "^1.4.1"
}, },
"devDependencies": { "devDependencies": {
"browser-sync": "2.26.3", "browser-sync": "2.26.5",
"gulp": "^4.0.0", "del": "4.1.1",
"gulp-autoprefixer": "6.0.0", "gulp": "4.0.2",
"gulp-clean-css": "4.0.0", "gulp-autoprefixer": "6.1.0",
"gulp-clean-css": "4.2.0",
"gulp-header": "2.0.7", "gulp-header": "2.0.7",
"gulp-plumber": "^1.2.1", "gulp-plumber": "^1.2.1",
"gulp-rename": "1.4.0", "gulp-rename": "1.4.0",
"gulp-sass": "4.0.2", "gulp-sass": "4.0.2",
"gulp-uglify": "3.0.1" "gulp-uglify": "3.0.2",
"merge-stream": "2.0.0"
} }
} }

View File

@@ -1,69 +1,17 @@
// Background Gradient Utilities // Background Gradient Utilities
.bg-gradient-primary { @each $color, $value in $theme-colors {
background-color: $primary; .bg-gradient-#{$color} {
background-image: linear-gradient(180deg, $primary 10%, darken($primary, 15%) 100%); background-color: $value;
background-size: cover; background-image: linear-gradient(180deg, $value 10%, darken($value, 15%) 100%);
} background-size: cover;
}
.bg-gradient-success {
background-color: $success;
background-image: linear-gradient(180deg, $success 10%, darken($success, 15%) 100%);
background-size: cover;
}
.bg-gradient-info {
background-color: $info;
background-image: linear-gradient(180deg, $info 10%, darken($info, 15%) 100%);
background-size: cover;
}
.bg-gradient-warning {
background-color: $warning;
background-image: linear-gradient(180deg, $warning 10%, darken($warning, 15%) 100%);
background-size: cover;
}
.bg-gradient-danger {
background-color: $danger;
background-image: linear-gradient(180deg, $danger 10%, darken($danger, 15%) 100%);
background-size: cover;
} }
// Grayscale Background Utilities // Grayscale Background Utilities
.bg-gray-100 { @each $level, $value in $grays {
background-color: $gray-100 !important; .bg-gray-#{$level} {
} background-color: $value !important;
}
.bg-gray-200 {
background-color: $gray-200 !important;
}
.bg-gray-300 {
background-color: $gray-300 !important;
}
.bg-gray-400 {
background-color: $gray-400 !important;
}
.bg-gray-500 {
background-color: $gray-500 !important;
}
.bg-gray-600 {
background-color: $gray-600 !important;
}
.bg-gray-700 {
background-color: $gray-700 !important;
}
.bg-gray-800 {
background-color: $gray-800 !important;
}
.bg-gray-900 {
background-color: $gray-900 !important;
} }

View File

@@ -1,39 +1,7 @@
.border-left-primary { @each $color, $value in $theme-colors {
border-left: .25rem solid $primary !important; @each $position in ['left', 'bottom'] {
} .border-#{$position}-#{$color} {
border-#{$position}: .25rem solid $value !important;
.border-left-success { }
border-left: .25rem solid $success !important; }
}
.border-left-info {
border-left: .25rem solid $info !important;
}
.border-left-warning {
border-left: .25rem solid $warning !important;
}
.border-left-danger {
border-left: .25rem solid $danger !important;
}
.border-bottom-primary {
border-bottom: .25rem solid $primary !important;
}
.border-bottom-success {
border-bottom: .25rem solid $success !important;
}
.border-bottom-info {
border-bottom: .25rem solid $info !important;
}
.border-bottom-warning {
border-bottom: .25rem solid $warning !important;
}
.border-bottom-danger {
border-bottom: .25rem solid $danger !important;
} }

View File

@@ -1,13 +1,13 @@
/*! /*!
* Bootstrap v4.2.1 (https://getbootstrap.com/) * Bootstrap v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
(function (global, factory) { (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) : typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :
typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) : typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :
(factory((global.bootstrap = {}),global.jQuery)); (global = global || self, factory(global.bootstrap = {}, global.jQuery));
}(this, (function (exports,$) { 'use strict'; }(this, function (exports, $) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $; $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
@@ -69,7 +69,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.2.1): util.js * Bootstrap (v4.3.1): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -145,7 +145,11 @@
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''; selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
} }
return selector && document.querySelector(selector) ? selector : null; try {
return document.querySelector(selector) ? selector : null;
} catch (err) {
return null;
}
}, },
getTransitionDurationFromElement: function getTransitionDurationFromElement(element) { getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
if (!element) { if (!element) {
@@ -225,7 +229,7 @@
*/ */
var NAME = 'alert'; var NAME = 'alert';
var VERSION = '4.2.1'; var VERSION = '4.3.1';
var DATA_KEY = 'bs.alert'; var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@@ -280,8 +284,8 @@
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY); $.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // Private } // Private
;
_proto._getRootElement = function _getRootElement(element) { _proto._getRootElement = function _getRootElement(element) {
var selector = Util.getSelectorFromElement(element); var selector = Util.getSelectorFromElement(element);
@@ -323,8 +327,8 @@
_proto._destroyElement = function _destroyElement(element) { _proto._destroyElement = function _destroyElement(element) {
$(element).detach().trigger(Event.CLOSED).remove(); $(element).detach().trigger(Event.CLOSED).remove();
}; // Static } // Static
;
Alert._jQueryInterface = function _jQueryInterface(config) { Alert._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -390,7 +394,7 @@
*/ */
var NAME$1 = 'button'; var NAME$1 = 'button';
var VERSION$1 = '4.2.1'; var VERSION$1 = '4.3.1';
var DATA_KEY$1 = 'bs.button'; var DATA_KEY$1 = 'bs.button';
var EVENT_KEY$1 = "." + DATA_KEY$1; var EVENT_KEY$1 = "." + DATA_KEY$1;
var DATA_API_KEY$1 = '.data-api'; var DATA_API_KEY$1 = '.data-api';
@@ -476,8 +480,8 @@
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY$1); $.removeData(this._element, DATA_KEY$1);
this._element = null; this._element = null;
}; // Static } // Static
;
Button._jQueryInterface = function _jQueryInterface(config) { Button._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -544,7 +548,7 @@
*/ */
var NAME$2 = 'carousel'; var NAME$2 = 'carousel';
var VERSION$2 = '4.2.1'; var VERSION$2 = '4.3.1';
var DATA_KEY$2 = 'bs.carousel'; var DATA_KEY$2 = 'bs.carousel';
var EVENT_KEY$2 = "." + DATA_KEY$2; var EVENT_KEY$2 = "." + DATA_KEY$2;
var DATA_API_KEY$2 = '.data-api'; var DATA_API_KEY$2 = '.data-api';
@@ -739,8 +743,8 @@
this._isSliding = null; this._isSliding = null;
this._activeElement = null; this._activeElement = null;
this._indicatorsElement = null; this._indicatorsElement = null;
}; // Private } // Private
;
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default, config); config = _objectSpread({}, Default, config);
@@ -784,7 +788,9 @@
}); });
} }
this._addTouchEventListeners(); if (this._config.touch) {
this._addTouchEventListeners();
}
}; };
_proto._addTouchEventListeners = function _addTouchEventListeners() { _proto._addTouchEventListeners = function _addTouchEventListeners() {
@@ -1025,8 +1031,8 @@
if (isCycling) { if (isCycling) {
this.cycle(); this.cycle();
} }
}; // Static } // Static
;
Carousel._jQueryInterface = function _jQueryInterface(config) { Carousel._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -1053,7 +1059,7 @@
} }
data[action](); data[action]();
} else if (_config.interval) { } else if (_config.interval && _config.ride) {
data.pause(); data.pause();
data.cycle(); data.cycle();
} }
@@ -1142,7 +1148,7 @@
*/ */
var NAME$3 = 'collapse'; var NAME$3 = 'collapse';
var VERSION$3 = '4.2.1'; var VERSION$3 = '4.3.1';
var DATA_KEY$3 = 'bs.collapse'; var DATA_KEY$3 = 'bs.collapse';
var EVENT_KEY$3 = "." + DATA_KEY$3; var EVENT_KEY$3 = "." + DATA_KEY$3;
var DATA_API_KEY$3 = '.data-api'; var DATA_API_KEY$3 = '.data-api';
@@ -1364,8 +1370,8 @@
this._element = null; this._element = null;
this._triggerArray = null; this._triggerArray = null;
this._isTransitioning = null; this._isTransitioning = null;
}; // Private } // Private
;
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default$1, config); config = _objectSpread({}, Default$1, config);
@@ -1409,8 +1415,8 @@
if (triggerArray.length) { if (triggerArray.length) {
$(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); $(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
} }
}; // Static } // Static
;
Collapse._getTargetFromElement = function _getTargetFromElement(element) { Collapse._getTargetFromElement = function _getTargetFromElement(element) {
var selector = Util.getSelectorFromElement(element); var selector = Util.getSelectorFromElement(element);
@@ -1497,7 +1503,7 @@
/**! /**!
* @fileOverview Kickass library to create and place poppers near their reference elements. * @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.14.6 * @version 1.14.7
* @license * @license
* Copyright (c) 2016 Federico Zivolo and contributors * Copyright (c) 2016 Federico Zivolo and contributors
* *
@@ -2065,7 +2071,11 @@
if (getStyleComputedProperty(element, 'position') === 'fixed') { if (getStyleComputedProperty(element, 'position') === 'fixed') {
return true; return true;
} }
return isFixed(getParentNode(element)); var parentNode = getParentNode(element);
if (!parentNode) {
return false;
}
return isFixed(parentNode);
} }
/** /**
@@ -2721,18 +2731,23 @@
var _data$offsets = data.offsets, var _data$offsets = data.offsets,
popper = _data$offsets.popper, popper = _data$offsets.popper,
reference = _data$offsets.reference; reference = _data$offsets.reference;
var round = Math.round,
floor = Math.floor;
var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
var isVariation = data.placement.indexOf('-') !== -1;
var sameWidthOddness = reference.width % 2 === popper.width % 2;
var bothOddWidth = reference.width % 2 === 1 && popper.width % 2 === 1;
var noRound = function noRound(v) { var noRound = function noRound(v) {
return v; return v;
}; };
var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthOddness ? Math.round : Math.floor; var referenceWidth = round(reference.width);
var verticalToInteger = !shouldRound ? noRound : Math.round; var popperWidth = round(popper.width);
var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
var isVariation = data.placement.indexOf('-') !== -1;
var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
var verticalToInteger = !shouldRound ? noRound : round;
return { return {
left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left), left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
@@ -4072,7 +4087,7 @@
*/ */
var NAME$4 = 'dropdown'; var NAME$4 = 'dropdown';
var VERSION$4 = '4.2.1'; var VERSION$4 = '4.3.1';
var DATA_KEY$4 = 'bs.dropdown'; var DATA_KEY$4 = 'bs.dropdown';
var EVENT_KEY$4 = "." + DATA_KEY$4; var EVENT_KEY$4 = "." + DATA_KEY$4;
var DATA_API_KEY$4 = '.data-api'; var DATA_API_KEY$4 = '.data-api';
@@ -4301,8 +4316,8 @@
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
}; // Private } // Private
;
_proto._addEventListeners = function _addEventListeners() { _proto._addEventListeners = function _addEventListeners() {
var _this = this; var _this = this;
@@ -4358,24 +4373,28 @@
return $(this._element).closest('.navbar').length > 0; return $(this._element).closest('.navbar').length > 0;
}; };
_proto._getPopperConfig = function _getPopperConfig() { _proto._getOffset = function _getOffset() {
var _this2 = this; var _this2 = this;
var offsetConf = {}; var offset = {};
if (typeof this._config.offset === 'function') { if (typeof this._config.offset === 'function') {
offsetConf.fn = function (data) { offset.fn = function (data) {
data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {}); data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
return data; return data;
}; };
} else { } else {
offsetConf.offset = this._config.offset; offset.offset = this._config.offset;
} }
return offset;
};
_proto._getPopperConfig = function _getPopperConfig() {
var popperConfig = { var popperConfig = {
placement: this._getPlacement(), placement: this._getPlacement(),
modifiers: { modifiers: {
offset: offsetConf, offset: this._getOffset(),
flip: { flip: {
enabled: this._config.flip enabled: this._config.flip
}, },
@@ -4393,8 +4412,8 @@
} }
return popperConfig; return popperConfig;
}; // Static } // Static
;
Dropdown._jQueryInterface = function _jQueryInterface(config) { Dropdown._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -4478,8 +4497,8 @@
} }
return parent || element.parentNode; return parent || element.parentNode;
}; // eslint-disable-next-line complexity } // eslint-disable-next-line complexity
;
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
// If not input/textarea: // If not input/textarea:
@@ -4594,7 +4613,7 @@
*/ */
var NAME$5 = 'modal'; var NAME$5 = 'modal';
var VERSION$5 = '4.2.1'; var VERSION$5 = '4.3.1';
var DATA_KEY$5 = 'bs.modal'; var DATA_KEY$5 = 'bs.modal';
var EVENT_KEY$5 = "." + DATA_KEY$5; var EVENT_KEY$5 = "." + DATA_KEY$5;
var DATA_API_KEY$5 = '.data-api'; var DATA_API_KEY$5 = '.data-api';
@@ -4627,6 +4646,7 @@
CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5 CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5
}; };
var ClassName$5 = { var ClassName$5 = {
SCROLLABLE: 'modal-dialog-scrollable',
SCROLLBAR_MEASURER: 'modal-scrollbar-measure', SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
BACKDROP: 'modal-backdrop', BACKDROP: 'modal-backdrop',
OPEN: 'modal-open', OPEN: 'modal-open',
@@ -4635,6 +4655,7 @@
}; };
var Selector$5 = { var Selector$5 = {
DIALOG: '.modal-dialog', DIALOG: '.modal-dialog',
MODAL_BODY: '.modal-body',
DATA_TOGGLE: '[data-toggle="modal"]', DATA_TOGGLE: '[data-toggle="modal"]',
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',
@@ -4787,8 +4808,8 @@
_proto.handleUpdate = function handleUpdate() { _proto.handleUpdate = function handleUpdate() {
this._adjustDialog(); this._adjustDialog();
}; // Private } // Private
;
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default$3, config); config = _objectSpread({}, Default$3, config);
@@ -4812,7 +4833,11 @@
this._element.setAttribute('aria-modal', true); this._element.setAttribute('aria-modal', true);
this._element.scrollTop = 0; if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {
this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;
} else {
this._element.scrollTop = 0;
}
if (transition) { if (transition) {
Util.reflow(this._element); Util.reflow(this._element);
@@ -4982,11 +5007,11 @@
} else if (callback) { } else if (callback) {
callback(); callback();
} }
}; // ---------------------------------------------------------------------- } // ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals // the following methods are used to handle overflowing modals
// todo (fat): these should probably be refactored out of modal.js // todo (fat): these should probably be refactored out of modal.js
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
;
_proto._adjustDialog = function _adjustDialog() { _proto._adjustDialog = function _adjustDialog() {
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
@@ -5071,8 +5096,8 @@
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv); document.body.removeChild(scrollDiv);
return scrollbarWidth; return scrollbarWidth;
}; // Static } // Static
;
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
return this.each(function () { return this.each(function () {
@@ -5163,6 +5188,127 @@
return Modal._jQueryInterface; return Modal._jQueryInterface;
}; };
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.3.1): tools/sanitizer.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
var DefaultWhitelist = {
// Global attributes allowed on any supplied element below.
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
a: ['target', 'href', 'title', 'rel'],
area: [],
b: [],
br: [],
col: [],
code: [],
div: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ['src', 'alt', 'title', 'width', 'height'],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: []
/**
* A pattern that recognizes a commonly useful subset of URLs that are safe.
*
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
*/
};
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
/**
* A pattern that matches safe data URLs. Only matches image, video and audio types.
*
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
*/
var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
function allowedAttribute(attr, allowedAttributeList) {
var attrName = attr.nodeName.toLowerCase();
if (allowedAttributeList.indexOf(attrName) !== -1) {
if (uriAttrs.indexOf(attrName) !== -1) {
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
}
return true;
}
var regExp = allowedAttributeList.filter(function (attrRegex) {
return attrRegex instanceof RegExp;
}); // Check if a regular expression validates the attribute.
for (var i = 0, l = regExp.length; i < l; i++) {
if (attrName.match(regExp[i])) {
return true;
}
}
return false;
}
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
if (unsafeHtml.length === 0) {
return unsafeHtml;
}
if (sanitizeFn && typeof sanitizeFn === 'function') {
return sanitizeFn(unsafeHtml);
}
var domParser = new window.DOMParser();
var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
var whitelistKeys = Object.keys(whiteList);
var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
var _loop = function _loop(i, len) {
var el = elements[i];
var elName = el.nodeName.toLowerCase();
if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
el.parentNode.removeChild(el);
return "continue";
}
var attributeList = [].slice.call(el.attributes);
var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
attributeList.forEach(function (attr) {
if (!allowedAttribute(attr, whitelistedAttributes)) {
el.removeAttribute(attr.nodeName);
}
});
};
for (var i = 0, len = elements.length; i < len; i++) {
var _ret = _loop(i, len);
if (_ret === "continue") continue;
}
return createdDocument.body.innerHTML;
}
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
@@ -5170,12 +5316,13 @@
*/ */
var NAME$6 = 'tooltip'; var NAME$6 = 'tooltip';
var VERSION$6 = '4.2.1'; var VERSION$6 = '4.3.1';
var DATA_KEY$6 = 'bs.tooltip'; var DATA_KEY$6 = 'bs.tooltip';
var EVENT_KEY$6 = "." + DATA_KEY$6; var EVENT_KEY$6 = "." + DATA_KEY$6;
var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6]; var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];
var CLASS_PREFIX = 'bs-tooltip'; var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
var DefaultType$4 = { var DefaultType$4 = {
animation: 'boolean', animation: 'boolean',
template: 'string', template: 'string',
@@ -5185,10 +5332,13 @@
html: 'boolean', html: 'boolean',
selector: '(string|boolean)', selector: '(string|boolean)',
placement: '(string|function)', placement: '(string|function)',
offset: '(number|string)', offset: '(number|string|function)',
container: '(string|element|boolean)', container: '(string|element|boolean)',
fallbackPlacement: '(string|array)', fallbackPlacement: '(string|array)',
boundary: '(string|element)' boundary: '(string|element)',
sanitize: 'boolean',
sanitizeFn: '(null|function)',
whiteList: 'object'
}; };
var AttachmentMap$1 = { var AttachmentMap$1 = {
AUTO: 'auto', AUTO: 'auto',
@@ -5209,7 +5359,10 @@
offset: 0, offset: 0,
container: false, container: false,
fallbackPlacement: 'flip', fallbackPlacement: 'flip',
boundary: 'scrollParent' boundary: 'scrollParent',
sanitize: true,
sanitizeFn: null,
whiteList: DefaultWhitelist
}; };
var HoverState = { var HoverState = {
SHOW: 'show', SHOW: 'show',
@@ -5394,9 +5547,7 @@
this._popper = new Popper(this.element, tip, { this._popper = new Popper(this.element, tip, {
placement: attachment, placement: attachment,
modifiers: { modifiers: {
offset: { offset: this._getOffset(),
offset: this.config.offset
},
flip: { flip: {
behavior: this.config.fallbackPlacement behavior: this.config.fallbackPlacement
}, },
@@ -5505,8 +5656,8 @@
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
}; // Protected } // Protected
;
_proto.isWithContent = function isWithContent() { _proto.isWithContent = function isWithContent() {
return Boolean(this.getTitle()); return Boolean(this.getTitle());
@@ -5528,19 +5679,27 @@
}; };
_proto.setElementContent = function setElementContent($element, content) { _proto.setElementContent = function setElementContent($element, content) {
var html = this.config.html;
if (typeof content === 'object' && (content.nodeType || content.jquery)) { if (typeof content === 'object' && (content.nodeType || content.jquery)) {
// Content is a DOM node or a jQuery // Content is a DOM node or a jQuery
if (html) { if (this.config.html) {
if (!$(content).parent().is($element)) { if (!$(content).parent().is($element)) {
$element.empty().append(content); $element.empty().append(content);
} }
} else { } else {
$element.text($(content).text()); $element.text($(content).text());
} }
return;
}
if (this.config.html) {
if (this.config.sanitize) {
content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
}
$element.html(content);
} else { } else {
$element[html ? 'html' : 'text'](content); $element.text(content);
} }
}; };
@@ -5552,8 +5711,25 @@
} }
return title; return title;
}; // Private } // Private
;
_proto._getOffset = function _getOffset() {
var _this3 = this;
var offset = {};
if (typeof this.config.offset === 'function') {
offset.fn = function (data) {
data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});
return data;
};
} else {
offset.offset = this.config.offset;
}
return offset;
};
_proto._getContainer = function _getContainer() { _proto._getContainer = function _getContainer() {
if (this.config.container === false) { if (this.config.container === false) {
@@ -5572,27 +5748,27 @@
}; };
_proto._setListeners = function _setListeners() { _proto._setListeners = function _setListeners() {
var _this3 = this; var _this4 = this;
var triggers = this.config.trigger.split(' '); var triggers = this.config.trigger.split(' ');
triggers.forEach(function (trigger) { triggers.forEach(function (trigger) {
if (trigger === 'click') { if (trigger === 'click') {
$(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) { $(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
return _this3.toggle(event); return _this4.toggle(event);
}); });
} else if (trigger !== Trigger.MANUAL) { } else if (trigger !== Trigger.MANUAL) {
var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN; var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;
var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT; var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;
$(_this3.element).on(eventIn, _this3.config.selector, function (event) { $(_this4.element).on(eventIn, _this4.config.selector, function (event) {
return _this3._enter(event); return _this4._enter(event);
}).on(eventOut, _this3.config.selector, function (event) { }).on(eventOut, _this4.config.selector, function (event) {
return _this3._leave(event); return _this4._leave(event);
}); });
} }
}); });
$(this.element).closest('.modal').on('hide.bs.modal', function () { $(this.element).closest('.modal').on('hide.bs.modal', function () {
if (_this3.element) { if (_this4.element) {
_this3.hide(); _this4.hide();
} }
}); });
@@ -5691,7 +5867,13 @@
}; };
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, this.constructor.Default, $(this.element).data(), typeof config === 'object' && config ? config : {}); var dataAttributes = $(this.element).data();
Object.keys(dataAttributes).forEach(function (dataAttr) {
if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
delete dataAttributes[dataAttr];
}
});
config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
if (typeof config.delay === 'number') { if (typeof config.delay === 'number') {
config.delay = { config.delay = {
@@ -5709,6 +5891,11 @@
} }
Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType); Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
if (config.sanitize) {
config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
}
return config; return config;
}; };
@@ -5757,8 +5944,8 @@
this.hide(); this.hide();
this.show(); this.show();
this.config.animation = initConfigAnimation; this.config.animation = initConfigAnimation;
}; // Static } // Static
;
Tooltip._jQueryInterface = function _jQueryInterface(config) { Tooltip._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -5846,7 +6033,7 @@
*/ */
var NAME$7 = 'popover'; var NAME$7 = 'popover';
var VERSION$7 = '4.2.1'; var VERSION$7 = '4.3.1';
var DATA_KEY$7 = 'bs.popover'; var DATA_KEY$7 = 'bs.popover';
var EVENT_KEY$7 = "." + DATA_KEY$7; var EVENT_KEY$7 = "." + DATA_KEY$7;
var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7]; var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];
@@ -5929,8 +6116,8 @@
this.setElementContent($tip.find(Selector$7.CONTENT), content); this.setElementContent($tip.find(Selector$7.CONTENT), content);
$tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW); $tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW);
}; // Private } // Private
;
_proto._getContent = function _getContent() { _proto._getContent = function _getContent() {
return this.element.getAttribute('data-content') || this.config.content; return this.element.getAttribute('data-content') || this.config.content;
@@ -5943,8 +6130,8 @@
if (tabClass !== null && tabClass.length > 0) { if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join('')); $tip.removeClass(tabClass.join(''));
} }
}; // Static } // Static
;
Popover._jQueryInterface = function _jQueryInterface(config) { Popover._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -6033,7 +6220,7 @@
*/ */
var NAME$8 = 'scrollspy'; var NAME$8 = 'scrollspy';
var VERSION$8 = '4.2.1'; var VERSION$8 = '4.3.1';
var DATA_KEY$8 = 'bs.scrollspy'; var DATA_KEY$8 = 'bs.scrollspy';
var EVENT_KEY$8 = "." + DATA_KEY$8; var EVENT_KEY$8 = "." + DATA_KEY$8;
var DATA_API_KEY$6 = '.data-api'; var DATA_API_KEY$6 = '.data-api';
@@ -6156,8 +6343,8 @@
this._targets = null; this._targets = null;
this._activeTarget = null; this._activeTarget = null;
this._scrollHeight = null; this._scrollHeight = null;
}; // Private } // Private
;
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {}); config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});
@@ -6264,8 +6451,8 @@
}).forEach(function (node) { }).forEach(function (node) {
return node.classList.remove(ClassName$8.ACTIVE); return node.classList.remove(ClassName$8.ACTIVE);
}); });
}; // Static } // Static
;
ScrollSpy._jQueryInterface = function _jQueryInterface(config) { ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -6340,7 +6527,7 @@
*/ */
var NAME$9 = 'tab'; var NAME$9 = 'tab';
var VERSION$9 = '4.2.1'; var VERSION$9 = '4.3.1';
var DATA_KEY$9 = 'bs.tab'; var DATA_KEY$9 = 'bs.tab';
var EVENT_KEY$9 = "." + DATA_KEY$9; var EVENT_KEY$9 = "." + DATA_KEY$9;
var DATA_API_KEY$7 = '.data-api'; var DATA_API_KEY$7 = '.data-api';
@@ -6448,8 +6635,8 @@
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY$9); $.removeData(this._element, DATA_KEY$9);
this._element = null; this._element = null;
}; // Private } // Private
;
_proto._activate = function _activate(element, container, callback) { _proto._activate = function _activate(element, container, callback) {
var _this2 = this; var _this2 = this;
@@ -6491,7 +6678,10 @@
} }
Util.reflow(element); Util.reflow(element);
$(element).addClass(ClassName$9.SHOW);
if (element.classList.contains(ClassName$9.FADE)) {
element.classList.add(ClassName$9.SHOW);
}
if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) { if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {
var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0]; var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];
@@ -6507,8 +6697,8 @@
if (callback) { if (callback) {
callback(); callback();
} }
}; // Static } // Static
;
Tab._jQueryInterface = function _jQueryInterface(config) { Tab._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -6572,7 +6762,7 @@
*/ */
var NAME$a = 'toast'; var NAME$a = 'toast';
var VERSION$a = '4.2.1'; var VERSION$a = '4.3.1';
var DATA_KEY$a = 'bs.toast'; var DATA_KEY$a = 'bs.toast';
var EVENT_KEY$a = "." + DATA_KEY$a; var EVENT_KEY$a = "." + DATA_KEY$a;
var JQUERY_NO_CONFLICT$a = $.fn[NAME$a]; var JQUERY_NO_CONFLICT$a = $.fn[NAME$a];
@@ -6687,8 +6877,8 @@
$.removeData(this._element, DATA_KEY$a); $.removeData(this._element, DATA_KEY$a);
this._element = null; this._element = null;
this._config = null; this._config = null;
}; // Private } // Private
;
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {}); config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {});
@@ -6721,8 +6911,8 @@
} else { } else {
complete(); complete();
} }
}; // Static } // Static
;
Toast._jQueryInterface = function _jQueryInterface(config) { Toast._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -6756,6 +6946,11 @@
get: function get() { get: function get() {
return DefaultType$7; return DefaultType$7;
} }
}, {
key: "Default",
get: function get() {
return Default$7;
}
}]); }]);
return Toast; return Toast;
@@ -6777,7 +6972,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.2.1): index.js * Bootstrap (v4.3.1): index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -6814,5 +7009,5 @@
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
}))); }));
//# sourceMappingURL=bootstrap.bundle.js.map //# sourceMappingURL=bootstrap.bundle.js.map

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

@@ -1,16 +1,16 @@
/*! /*!
* Bootstrap v4.2.1 (https://getbootstrap.com/) * Bootstrap v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */
(function (global, factory) { (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('popper.js'), require('jquery')) : typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
typeof define === 'function' && define.amd ? define(['exports', 'popper.js', 'jquery'], factory) : typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
(factory((global.bootstrap = {}),global.Popper,global.jQuery)); (global = global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));
}(this, (function (exports,Popper,$) { 'use strict'; }(this, function (exports, $, Popper) { 'use strict';
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
$ = $ && $.hasOwnProperty('default') ? $['default'] : $; $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
function _defineProperties(target, props) { function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) { for (var i = 0; i < props.length; i++) {
@@ -70,7 +70,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.2.1): util.js * Bootstrap (v4.3.1): util.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -146,7 +146,11 @@
selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''; selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
} }
return selector && document.querySelector(selector) ? selector : null; try {
return document.querySelector(selector) ? selector : null;
} catch (err) {
return null;
}
}, },
getTransitionDurationFromElement: function getTransitionDurationFromElement(element) { getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
if (!element) { if (!element) {
@@ -226,7 +230,7 @@
*/ */
var NAME = 'alert'; var NAME = 'alert';
var VERSION = '4.2.1'; var VERSION = '4.3.1';
var DATA_KEY = 'bs.alert'; var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@@ -281,8 +285,8 @@
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY); $.removeData(this._element, DATA_KEY);
this._element = null; this._element = null;
}; // Private } // Private
;
_proto._getRootElement = function _getRootElement(element) { _proto._getRootElement = function _getRootElement(element) {
var selector = Util.getSelectorFromElement(element); var selector = Util.getSelectorFromElement(element);
@@ -324,8 +328,8 @@
_proto._destroyElement = function _destroyElement(element) { _proto._destroyElement = function _destroyElement(element) {
$(element).detach().trigger(Event.CLOSED).remove(); $(element).detach().trigger(Event.CLOSED).remove();
}; // Static } // Static
;
Alert._jQueryInterface = function _jQueryInterface(config) { Alert._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -391,7 +395,7 @@
*/ */
var NAME$1 = 'button'; var NAME$1 = 'button';
var VERSION$1 = '4.2.1'; var VERSION$1 = '4.3.1';
var DATA_KEY$1 = 'bs.button'; var DATA_KEY$1 = 'bs.button';
var EVENT_KEY$1 = "." + DATA_KEY$1; var EVENT_KEY$1 = "." + DATA_KEY$1;
var DATA_API_KEY$1 = '.data-api'; var DATA_API_KEY$1 = '.data-api';
@@ -477,8 +481,8 @@
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY$1); $.removeData(this._element, DATA_KEY$1);
this._element = null; this._element = null;
}; // Static } // Static
;
Button._jQueryInterface = function _jQueryInterface(config) { Button._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -545,7 +549,7 @@
*/ */
var NAME$2 = 'carousel'; var NAME$2 = 'carousel';
var VERSION$2 = '4.2.1'; var VERSION$2 = '4.3.1';
var DATA_KEY$2 = 'bs.carousel'; var DATA_KEY$2 = 'bs.carousel';
var EVENT_KEY$2 = "." + DATA_KEY$2; var EVENT_KEY$2 = "." + DATA_KEY$2;
var DATA_API_KEY$2 = '.data-api'; var DATA_API_KEY$2 = '.data-api';
@@ -740,8 +744,8 @@
this._isSliding = null; this._isSliding = null;
this._activeElement = null; this._activeElement = null;
this._indicatorsElement = null; this._indicatorsElement = null;
}; // Private } // Private
;
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default, config); config = _objectSpread({}, Default, config);
@@ -785,7 +789,9 @@
}); });
} }
this._addTouchEventListeners(); if (this._config.touch) {
this._addTouchEventListeners();
}
}; };
_proto._addTouchEventListeners = function _addTouchEventListeners() { _proto._addTouchEventListeners = function _addTouchEventListeners() {
@@ -1026,8 +1032,8 @@
if (isCycling) { if (isCycling) {
this.cycle(); this.cycle();
} }
}; // Static } // Static
;
Carousel._jQueryInterface = function _jQueryInterface(config) { Carousel._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -1054,7 +1060,7 @@
} }
data[action](); data[action]();
} else if (_config.interval) { } else if (_config.interval && _config.ride) {
data.pause(); data.pause();
data.cycle(); data.cycle();
} }
@@ -1143,7 +1149,7 @@
*/ */
var NAME$3 = 'collapse'; var NAME$3 = 'collapse';
var VERSION$3 = '4.2.1'; var VERSION$3 = '4.3.1';
var DATA_KEY$3 = 'bs.collapse'; var DATA_KEY$3 = 'bs.collapse';
var EVENT_KEY$3 = "." + DATA_KEY$3; var EVENT_KEY$3 = "." + DATA_KEY$3;
var DATA_API_KEY$3 = '.data-api'; var DATA_API_KEY$3 = '.data-api';
@@ -1365,8 +1371,8 @@
this._element = null; this._element = null;
this._triggerArray = null; this._triggerArray = null;
this._isTransitioning = null; this._isTransitioning = null;
}; // Private } // Private
;
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default$1, config); config = _objectSpread({}, Default$1, config);
@@ -1410,8 +1416,8 @@
if (triggerArray.length) { if (triggerArray.length) {
$(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); $(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
} }
}; // Static } // Static
;
Collapse._getTargetFromElement = function _getTargetFromElement(element) { Collapse._getTargetFromElement = function _getTargetFromElement(element) {
var selector = Util.getSelectorFromElement(element); var selector = Util.getSelectorFromElement(element);
@@ -1503,7 +1509,7 @@
*/ */
var NAME$4 = 'dropdown'; var NAME$4 = 'dropdown';
var VERSION$4 = '4.2.1'; var VERSION$4 = '4.3.1';
var DATA_KEY$4 = 'bs.dropdown'; var DATA_KEY$4 = 'bs.dropdown';
var EVENT_KEY$4 = "." + DATA_KEY$4; var EVENT_KEY$4 = "." + DATA_KEY$4;
var DATA_API_KEY$4 = '.data-api'; var DATA_API_KEY$4 = '.data-api';
@@ -1732,8 +1738,8 @@
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
}; // Private } // Private
;
_proto._addEventListeners = function _addEventListeners() { _proto._addEventListeners = function _addEventListeners() {
var _this = this; var _this = this;
@@ -1789,24 +1795,28 @@
return $(this._element).closest('.navbar').length > 0; return $(this._element).closest('.navbar').length > 0;
}; };
_proto._getPopperConfig = function _getPopperConfig() { _proto._getOffset = function _getOffset() {
var _this2 = this; var _this2 = this;
var offsetConf = {}; var offset = {};
if (typeof this._config.offset === 'function') { if (typeof this._config.offset === 'function') {
offsetConf.fn = function (data) { offset.fn = function (data) {
data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {}); data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
return data; return data;
}; };
} else { } else {
offsetConf.offset = this._config.offset; offset.offset = this._config.offset;
} }
return offset;
};
_proto._getPopperConfig = function _getPopperConfig() {
var popperConfig = { var popperConfig = {
placement: this._getPlacement(), placement: this._getPlacement(),
modifiers: { modifiers: {
offset: offsetConf, offset: this._getOffset(),
flip: { flip: {
enabled: this._config.flip enabled: this._config.flip
}, },
@@ -1824,8 +1834,8 @@
} }
return popperConfig; return popperConfig;
}; // Static } // Static
;
Dropdown._jQueryInterface = function _jQueryInterface(config) { Dropdown._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -1909,8 +1919,8 @@
} }
return parent || element.parentNode; return parent || element.parentNode;
}; // eslint-disable-next-line complexity } // eslint-disable-next-line complexity
;
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
// If not input/textarea: // If not input/textarea:
@@ -2025,7 +2035,7 @@
*/ */
var NAME$5 = 'modal'; var NAME$5 = 'modal';
var VERSION$5 = '4.2.1'; var VERSION$5 = '4.3.1';
var DATA_KEY$5 = 'bs.modal'; var DATA_KEY$5 = 'bs.modal';
var EVENT_KEY$5 = "." + DATA_KEY$5; var EVENT_KEY$5 = "." + DATA_KEY$5;
var DATA_API_KEY$5 = '.data-api'; var DATA_API_KEY$5 = '.data-api';
@@ -2058,6 +2068,7 @@
CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5 CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5
}; };
var ClassName$5 = { var ClassName$5 = {
SCROLLABLE: 'modal-dialog-scrollable',
SCROLLBAR_MEASURER: 'modal-scrollbar-measure', SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
BACKDROP: 'modal-backdrop', BACKDROP: 'modal-backdrop',
OPEN: 'modal-open', OPEN: 'modal-open',
@@ -2066,6 +2077,7 @@
}; };
var Selector$5 = { var Selector$5 = {
DIALOG: '.modal-dialog', DIALOG: '.modal-dialog',
MODAL_BODY: '.modal-body',
DATA_TOGGLE: '[data-toggle="modal"]', DATA_TOGGLE: '[data-toggle="modal"]',
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',
@@ -2218,8 +2230,8 @@
_proto.handleUpdate = function handleUpdate() { _proto.handleUpdate = function handleUpdate() {
this._adjustDialog(); this._adjustDialog();
}; // Private } // Private
;
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default$3, config); config = _objectSpread({}, Default$3, config);
@@ -2243,7 +2255,11 @@
this._element.setAttribute('aria-modal', true); this._element.setAttribute('aria-modal', true);
this._element.scrollTop = 0; if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {
this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;
} else {
this._element.scrollTop = 0;
}
if (transition) { if (transition) {
Util.reflow(this._element); Util.reflow(this._element);
@@ -2413,11 +2429,11 @@
} else if (callback) { } else if (callback) {
callback(); callback();
} }
}; // ---------------------------------------------------------------------- } // ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals // the following methods are used to handle overflowing modals
// todo (fat): these should probably be refactored out of modal.js // todo (fat): these should probably be refactored out of modal.js
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
;
_proto._adjustDialog = function _adjustDialog() { _proto._adjustDialog = function _adjustDialog() {
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
@@ -2502,8 +2518,8 @@
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv); document.body.removeChild(scrollDiv);
return scrollbarWidth; return scrollbarWidth;
}; // Static } // Static
;
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
return this.each(function () { return this.each(function () {
@@ -2594,6 +2610,127 @@
return Modal._jQueryInterface; return Modal._jQueryInterface;
}; };
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.3.1): tools/sanitizer.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
var DefaultWhitelist = {
// Global attributes allowed on any supplied element below.
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
a: ['target', 'href', 'title', 'rel'],
area: [],
b: [],
br: [],
col: [],
code: [],
div: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ['src', 'alt', 'title', 'width', 'height'],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: []
/**
* A pattern that recognizes a commonly useful subset of URLs that are safe.
*
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
*/
};
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
/**
* A pattern that matches safe data URLs. Only matches image, video and audio types.
*
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
*/
var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
function allowedAttribute(attr, allowedAttributeList) {
var attrName = attr.nodeName.toLowerCase();
if (allowedAttributeList.indexOf(attrName) !== -1) {
if (uriAttrs.indexOf(attrName) !== -1) {
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
}
return true;
}
var regExp = allowedAttributeList.filter(function (attrRegex) {
return attrRegex instanceof RegExp;
}); // Check if a regular expression validates the attribute.
for (var i = 0, l = regExp.length; i < l; i++) {
if (attrName.match(regExp[i])) {
return true;
}
}
return false;
}
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
if (unsafeHtml.length === 0) {
return unsafeHtml;
}
if (sanitizeFn && typeof sanitizeFn === 'function') {
return sanitizeFn(unsafeHtml);
}
var domParser = new window.DOMParser();
var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
var whitelistKeys = Object.keys(whiteList);
var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
var _loop = function _loop(i, len) {
var el = elements[i];
var elName = el.nodeName.toLowerCase();
if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
el.parentNode.removeChild(el);
return "continue";
}
var attributeList = [].slice.call(el.attributes);
var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
attributeList.forEach(function (attr) {
if (!allowedAttribute(attr, whitelistedAttributes)) {
el.removeAttribute(attr.nodeName);
}
});
};
for (var i = 0, len = elements.length; i < len; i++) {
var _ret = _loop(i, len);
if (_ret === "continue") continue;
}
return createdDocument.body.innerHTML;
}
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
@@ -2601,12 +2738,13 @@
*/ */
var NAME$6 = 'tooltip'; var NAME$6 = 'tooltip';
var VERSION$6 = '4.2.1'; var VERSION$6 = '4.3.1';
var DATA_KEY$6 = 'bs.tooltip'; var DATA_KEY$6 = 'bs.tooltip';
var EVENT_KEY$6 = "." + DATA_KEY$6; var EVENT_KEY$6 = "." + DATA_KEY$6;
var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6]; var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];
var CLASS_PREFIX = 'bs-tooltip'; var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
var DefaultType$4 = { var DefaultType$4 = {
animation: 'boolean', animation: 'boolean',
template: 'string', template: 'string',
@@ -2616,10 +2754,13 @@
html: 'boolean', html: 'boolean',
selector: '(string|boolean)', selector: '(string|boolean)',
placement: '(string|function)', placement: '(string|function)',
offset: '(number|string)', offset: '(number|string|function)',
container: '(string|element|boolean)', container: '(string|element|boolean)',
fallbackPlacement: '(string|array)', fallbackPlacement: '(string|array)',
boundary: '(string|element)' boundary: '(string|element)',
sanitize: 'boolean',
sanitizeFn: '(null|function)',
whiteList: 'object'
}; };
var AttachmentMap$1 = { var AttachmentMap$1 = {
AUTO: 'auto', AUTO: 'auto',
@@ -2640,7 +2781,10 @@
offset: 0, offset: 0,
container: false, container: false,
fallbackPlacement: 'flip', fallbackPlacement: 'flip',
boundary: 'scrollParent' boundary: 'scrollParent',
sanitize: true,
sanitizeFn: null,
whiteList: DefaultWhitelist
}; };
var HoverState = { var HoverState = {
SHOW: 'show', SHOW: 'show',
@@ -2825,9 +2969,7 @@
this._popper = new Popper(this.element, tip, { this._popper = new Popper(this.element, tip, {
placement: attachment, placement: attachment,
modifiers: { modifiers: {
offset: { offset: this._getOffset(),
offset: this.config.offset
},
flip: { flip: {
behavior: this.config.fallbackPlacement behavior: this.config.fallbackPlacement
}, },
@@ -2936,8 +3078,8 @@
if (this._popper !== null) { if (this._popper !== null) {
this._popper.scheduleUpdate(); this._popper.scheduleUpdate();
} }
}; // Protected } // Protected
;
_proto.isWithContent = function isWithContent() { _proto.isWithContent = function isWithContent() {
return Boolean(this.getTitle()); return Boolean(this.getTitle());
@@ -2959,19 +3101,27 @@
}; };
_proto.setElementContent = function setElementContent($element, content) { _proto.setElementContent = function setElementContent($element, content) {
var html = this.config.html;
if (typeof content === 'object' && (content.nodeType || content.jquery)) { if (typeof content === 'object' && (content.nodeType || content.jquery)) {
// Content is a DOM node or a jQuery // Content is a DOM node or a jQuery
if (html) { if (this.config.html) {
if (!$(content).parent().is($element)) { if (!$(content).parent().is($element)) {
$element.empty().append(content); $element.empty().append(content);
} }
} else { } else {
$element.text($(content).text()); $element.text($(content).text());
} }
return;
}
if (this.config.html) {
if (this.config.sanitize) {
content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
}
$element.html(content);
} else { } else {
$element[html ? 'html' : 'text'](content); $element.text(content);
} }
}; };
@@ -2983,8 +3133,25 @@
} }
return title; return title;
}; // Private } // Private
;
_proto._getOffset = function _getOffset() {
var _this3 = this;
var offset = {};
if (typeof this.config.offset === 'function') {
offset.fn = function (data) {
data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});
return data;
};
} else {
offset.offset = this.config.offset;
}
return offset;
};
_proto._getContainer = function _getContainer() { _proto._getContainer = function _getContainer() {
if (this.config.container === false) { if (this.config.container === false) {
@@ -3003,27 +3170,27 @@
}; };
_proto._setListeners = function _setListeners() { _proto._setListeners = function _setListeners() {
var _this3 = this; var _this4 = this;
var triggers = this.config.trigger.split(' '); var triggers = this.config.trigger.split(' ');
triggers.forEach(function (trigger) { triggers.forEach(function (trigger) {
if (trigger === 'click') { if (trigger === 'click') {
$(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) { $(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
return _this3.toggle(event); return _this4.toggle(event);
}); });
} else if (trigger !== Trigger.MANUAL) { } else if (trigger !== Trigger.MANUAL) {
var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN; var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;
var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT; var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;
$(_this3.element).on(eventIn, _this3.config.selector, function (event) { $(_this4.element).on(eventIn, _this4.config.selector, function (event) {
return _this3._enter(event); return _this4._enter(event);
}).on(eventOut, _this3.config.selector, function (event) { }).on(eventOut, _this4.config.selector, function (event) {
return _this3._leave(event); return _this4._leave(event);
}); });
} }
}); });
$(this.element).closest('.modal').on('hide.bs.modal', function () { $(this.element).closest('.modal').on('hide.bs.modal', function () {
if (_this3.element) { if (_this4.element) {
_this3.hide(); _this4.hide();
} }
}); });
@@ -3122,7 +3289,13 @@
}; };
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, this.constructor.Default, $(this.element).data(), typeof config === 'object' && config ? config : {}); var dataAttributes = $(this.element).data();
Object.keys(dataAttributes).forEach(function (dataAttr) {
if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
delete dataAttributes[dataAttr];
}
});
config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
if (typeof config.delay === 'number') { if (typeof config.delay === 'number') {
config.delay = { config.delay = {
@@ -3140,6 +3313,11 @@
} }
Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType); Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
if (config.sanitize) {
config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
}
return config; return config;
}; };
@@ -3188,8 +3366,8 @@
this.hide(); this.hide();
this.show(); this.show();
this.config.animation = initConfigAnimation; this.config.animation = initConfigAnimation;
}; // Static } // Static
;
Tooltip._jQueryInterface = function _jQueryInterface(config) { Tooltip._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -3277,7 +3455,7 @@
*/ */
var NAME$7 = 'popover'; var NAME$7 = 'popover';
var VERSION$7 = '4.2.1'; var VERSION$7 = '4.3.1';
var DATA_KEY$7 = 'bs.popover'; var DATA_KEY$7 = 'bs.popover';
var EVENT_KEY$7 = "." + DATA_KEY$7; var EVENT_KEY$7 = "." + DATA_KEY$7;
var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7]; var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];
@@ -3360,8 +3538,8 @@
this.setElementContent($tip.find(Selector$7.CONTENT), content); this.setElementContent($tip.find(Selector$7.CONTENT), content);
$tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW); $tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW);
}; // Private } // Private
;
_proto._getContent = function _getContent() { _proto._getContent = function _getContent() {
return this.element.getAttribute('data-content') || this.config.content; return this.element.getAttribute('data-content') || this.config.content;
@@ -3374,8 +3552,8 @@
if (tabClass !== null && tabClass.length > 0) { if (tabClass !== null && tabClass.length > 0) {
$tip.removeClass(tabClass.join('')); $tip.removeClass(tabClass.join(''));
} }
}; // Static } // Static
;
Popover._jQueryInterface = function _jQueryInterface(config) { Popover._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -3464,7 +3642,7 @@
*/ */
var NAME$8 = 'scrollspy'; var NAME$8 = 'scrollspy';
var VERSION$8 = '4.2.1'; var VERSION$8 = '4.3.1';
var DATA_KEY$8 = 'bs.scrollspy'; var DATA_KEY$8 = 'bs.scrollspy';
var EVENT_KEY$8 = "." + DATA_KEY$8; var EVENT_KEY$8 = "." + DATA_KEY$8;
var DATA_API_KEY$6 = '.data-api'; var DATA_API_KEY$6 = '.data-api';
@@ -3587,8 +3765,8 @@
this._targets = null; this._targets = null;
this._activeTarget = null; this._activeTarget = null;
this._scrollHeight = null; this._scrollHeight = null;
}; // Private } // Private
;
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {}); config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});
@@ -3695,8 +3873,8 @@
}).forEach(function (node) { }).forEach(function (node) {
return node.classList.remove(ClassName$8.ACTIVE); return node.classList.remove(ClassName$8.ACTIVE);
}); });
}; // Static } // Static
;
ScrollSpy._jQueryInterface = function _jQueryInterface(config) { ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -3771,7 +3949,7 @@
*/ */
var NAME$9 = 'tab'; var NAME$9 = 'tab';
var VERSION$9 = '4.2.1'; var VERSION$9 = '4.3.1';
var DATA_KEY$9 = 'bs.tab'; var DATA_KEY$9 = 'bs.tab';
var EVENT_KEY$9 = "." + DATA_KEY$9; var EVENT_KEY$9 = "." + DATA_KEY$9;
var DATA_API_KEY$7 = '.data-api'; var DATA_API_KEY$7 = '.data-api';
@@ -3879,8 +4057,8 @@
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
$.removeData(this._element, DATA_KEY$9); $.removeData(this._element, DATA_KEY$9);
this._element = null; this._element = null;
}; // Private } // Private
;
_proto._activate = function _activate(element, container, callback) { _proto._activate = function _activate(element, container, callback) {
var _this2 = this; var _this2 = this;
@@ -3922,7 +4100,10 @@
} }
Util.reflow(element); Util.reflow(element);
$(element).addClass(ClassName$9.SHOW);
if (element.classList.contains(ClassName$9.FADE)) {
element.classList.add(ClassName$9.SHOW);
}
if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) { if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {
var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0]; var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];
@@ -3938,8 +4119,8 @@
if (callback) { if (callback) {
callback(); callback();
} }
}; // Static } // Static
;
Tab._jQueryInterface = function _jQueryInterface(config) { Tab._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -4003,7 +4184,7 @@
*/ */
var NAME$a = 'toast'; var NAME$a = 'toast';
var VERSION$a = '4.2.1'; var VERSION$a = '4.3.1';
var DATA_KEY$a = 'bs.toast'; var DATA_KEY$a = 'bs.toast';
var EVENT_KEY$a = "." + DATA_KEY$a; var EVENT_KEY$a = "." + DATA_KEY$a;
var JQUERY_NO_CONFLICT$a = $.fn[NAME$a]; var JQUERY_NO_CONFLICT$a = $.fn[NAME$a];
@@ -4118,8 +4299,8 @@
$.removeData(this._element, DATA_KEY$a); $.removeData(this._element, DATA_KEY$a);
this._element = null; this._element = null;
this._config = null; this._config = null;
}; // Private } // Private
;
_proto._getConfig = function _getConfig(config) { _proto._getConfig = function _getConfig(config) {
config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {}); config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {});
@@ -4152,8 +4333,8 @@
} else { } else {
complete(); complete();
} }
}; // Static } // Static
;
Toast._jQueryInterface = function _jQueryInterface(config) { Toast._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () { return this.each(function () {
@@ -4187,6 +4368,11 @@
get: function get() { get: function get() {
return DefaultType$7; return DefaultType$7;
} }
}, {
key: "Default",
get: function get() {
return Default$7;
}
}]); }]);
return Toast; return Toast;
@@ -4208,7 +4394,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v4.2.1): index.js * Bootstrap (v4.3.1): index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4245,5 +4431,5 @@
Object.defineProperty(exports, '__esModule', { value: true }); Object.defineProperty(exports, '__esModule', { value: true });
}))); }));
//# sourceMappingURL=bootstrap.js.map //# sourceMappingURL=bootstrap.js.map

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

@@ -6,13 +6,14 @@
.badge { .badge {
display: inline-block; display: inline-block;
padding: $badge-padding-y $badge-padding-x; padding: $badge-padding-y $badge-padding-x;
font-size: $badge-font-size; @include font-size($badge-font-size);
font-weight: $badge-font-weight; font-weight: $badge-font-weight;
line-height: 1; line-height: 1;
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
vertical-align: baseline; vertical-align: baseline;
@include border-radius($badge-border-radius); @include border-radius($badge-border-radius);
@include transition($badge-transition);
@at-root a#{&} { @at-root a#{&} {
@include hover-focus { @include hover-focus {

View File

@@ -6,6 +6,7 @@
.btn { .btn {
display: inline-block; display: inline-block;
font-family: $btn-font-family;
font-weight: $btn-font-weight; font-weight: $btn-font-weight;
color: $body-color; color: $body-color;
text-align: center; text-align: center;
@@ -34,11 +35,6 @@
@include box-shadow(none); @include box-shadow(none);
} }
// Opinionated: add "hand" cursor to non-disabled .btn elements
&:not(:disabled):not(.disabled) {
cursor: pointer;
}
&:not(:disabled):not(.disabled):active, &:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active { &:not(:disabled):not(.disabled).active {
@include box-shadow($btn-active-box-shadow); @include box-shadow($btn-active-box-shadow);
@@ -81,6 +77,7 @@ fieldset:disabled a.btn {
.btn-link { .btn-link {
font-weight: $font-weight-normal; font-weight: $font-weight-normal;
color: $link-color; color: $link-color;
text-decoration: $link-decoration;
@include hover { @include hover {
color: $link-hover-color; color: $link-hover-color;

View File

@@ -6,7 +6,7 @@
position: relative; position: relative;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
min-width: 0; min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
word-wrap: break-word; word-wrap: break-word;
background-color: $card-bg; background-color: $card-bg;
background-clip: border-box; background-clip: border-box;
@@ -36,6 +36,7 @@
// as much space as possible, ensuring footers are aligned to the bottom. // as much space as possible, ensuring footers are aligned to the bottom.
flex: 1 1 auto; flex: 1 1 auto;
padding: $card-spacer-x; padding: $card-spacer-x;
color: $card-color;
} }
.card-title { .card-title {
@@ -195,55 +196,35 @@
// Handle rounded corners // Handle rounded corners
@if $enable-rounded { @if $enable-rounded {
&:first-child { &:not(:last-child) {
@include border-right-radius(0); @include border-right-radius(0);
.card-img-top, .card-img-top,
.card-header { .card-header {
// stylelint-disable-next-line property-blacklist
border-top-right-radius: 0; border-top-right-radius: 0;
} }
.card-img-bottom, .card-img-bottom,
.card-footer { .card-footer {
// stylelint-disable-next-line property-blacklist
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
} }
&:last-child { &:not(:first-child) {
@include border-left-radius(0); @include border-left-radius(0);
.card-img-top, .card-img-top,
.card-header { .card-header {
// stylelint-disable-next-line property-blacklist
border-top-left-radius: 0; border-top-left-radius: 0;
} }
.card-img-bottom, .card-img-bottom,
.card-footer { .card-footer {
// stylelint-disable-next-line property-blacklist
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
} }
&:only-child {
@include border-radius($card-border-radius);
.card-img-top,
.card-header {
@include border-top-radius($card-border-radius);
}
.card-img-bottom,
.card-footer {
@include border-bottom-radius($card-border-radius);
}
}
&:not(:first-child):not(:last-child):not(:only-child) {
@include border-radius(0);
.card-img-top,
.card-img-bottom,
.card-header,
.card-footer {
@include border-radius(0);
}
}
} }
} }
} }
@@ -278,29 +259,27 @@
// //
.accordion { .accordion {
.card { > .card {
overflow: hidden; overflow: hidden;
&:not(:first-of-type) { &:not(:first-of-type) {
.card-header:first-child { .card-header:first-child {
border-radius: 0; @include border-radius(0);
} }
&:not(:last-of-type) { &:not(:last-of-type) {
border-bottom: 0; border-bottom: 0;
border-radius: 0; @include border-radius(0);
} }
} }
&:first-of-type { &:first-of-type {
border-bottom: 0; border-bottom: 0;
border-bottom-right-radius: 0; @include border-bottom-radius(0);
border-bottom-left-radius: 0;
} }
&:last-of-type { &:last-of-type {
border-top-left-radius: 0; @include border-top-radius(0);
border-top-right-radius: 0;
} }
.card-header { .card-header {

View File

@@ -127,8 +127,7 @@
display: inline-block; display: inline-block;
width: $carousel-control-icon-width; width: $carousel-control-icon-width;
height: $carousel-control-icon-width; height: $carousel-control-icon-width;
background: transparent no-repeat center center; background: no-repeat 50% / 100% 100%;
background-size: 100% 100%;
} }
.carousel-control-prev-icon { .carousel-control-prev-icon {
background-image: $carousel-control-prev-icon-bg; background-image: $carousel-control-prev-icon-bg;

View File

@@ -1,6 +1,6 @@
.close { .close {
float: right; float: right;
font-size: $close-font-size; @include font-size($close-font-size);
font-weight: $close-font-weight; font-weight: $close-font-weight;
line-height: 1; line-height: 1;
color: $close-color; color: $close-color;
@@ -17,9 +17,6 @@
@include hover-focus { @include hover-focus {
opacity: .75; opacity: .75;
} }
// Opinionated: add "hand" cursor to non-disabled .close elements
cursor: pointer;
} }
} }

View File

@@ -1,6 +1,6 @@
// Inline code // Inline code
code { code {
font-size: $code-font-size; @include font-size($code-font-size);
color: $code-color; color: $code-color;
word-break: break-word; word-break: break-word;
@@ -13,7 +13,7 @@ code {
// User input typically entered via keyboard // User input typically entered via keyboard
kbd { kbd {
padding: $kbd-padding-y $kbd-padding-x; padding: $kbd-padding-y $kbd-padding-x;
font-size: $kbd-font-size; @include font-size($kbd-font-size);
color: $kbd-color; color: $kbd-color;
background-color: $kbd-bg; background-color: $kbd-bg;
@include border-radius($border-radius-sm); @include border-radius($border-radius-sm);
@@ -21,7 +21,7 @@ kbd {
kbd { kbd {
padding: 0; padding: 0;
font-size: 100%; @include font-size(100%);
font-weight: $nested-kbd-font-weight; font-weight: $nested-kbd-font-weight;
@include box-shadow(none); @include box-shadow(none);
} }
@@ -30,12 +30,12 @@ kbd {
// Blocks of code // Blocks of code
pre { pre {
display: block; display: block;
font-size: $code-font-size; @include font-size($code-font-size);
color: $pre-color; color: $pre-color;
// Account for some code outputs that place code tags in pre tags // Account for some code outputs that place code tags in pre tags
code { code {
font-size: inherit; @include font-size(inherit);
color: inherit; color: inherit;
word-break: normal; word-break: normal;
} }

View File

@@ -95,9 +95,7 @@
width: $custom-control-indicator-size; width: $custom-control-indicator-size;
height: $custom-control-indicator-size; height: $custom-control-indicator-size;
content: ""; content: "";
background-repeat: no-repeat; background: no-repeat 50% / #{$custom-control-indicator-bg-size};
background-position: center center;
background-size: $custom-control-indicator-bg-size;
} }
} }
@@ -144,6 +142,7 @@
.custom-radio { .custom-radio {
.custom-control-label::before { .custom-control-label::before {
// stylelint-disable-next-line property-blacklist
border-radius: $custom-radio-indicator-border-radius; border-radius: $custom-radio-indicator-border-radius;
} }
@@ -173,6 +172,7 @@
left: -($custom-switch-width + $custom-control-gutter); left: -($custom-switch-width + $custom-control-gutter);
width: $custom-switch-width; width: $custom-switch-width;
pointer-events: all; pointer-events: all;
// stylelint-disable-next-line property-blacklist
border-radius: $custom-switch-indicator-border-radius; border-radius: $custom-switch-indicator-border-radius;
} }
@@ -182,6 +182,7 @@
width: $custom-switch-indicator-size; width: $custom-switch-indicator-size;
height: $custom-switch-indicator-size; height: $custom-switch-indicator-size;
background-color: $custom-control-indicator-border-color; background-color: $custom-control-indicator-border-color;
// stylelint-disable-next-line property-blacklist
border-radius: $custom-switch-indicator-border-radius; border-radius: $custom-switch-indicator-border-radius;
@include transition(transform .15s ease-in-out, $custom-forms-transition); @include transition(transform .15s ease-in-out, $custom-forms-transition);
} }
@@ -213,6 +214,8 @@
width: 100%; width: 100%;
height: $custom-select-height; height: $custom-select-height;
padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x; padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
font-family: $custom-select-font-family;
@include font-size($custom-select-font-size);
font-weight: $custom-select-font-weight; font-weight: $custom-select-font-weight;
line-height: $custom-select-line-height; line-height: $custom-select-line-height;
color: $custom-select-color; color: $custom-select-color;
@@ -220,11 +223,7 @@
background: $custom-select-background; background: $custom-select-background;
background-color: $custom-select-bg; background-color: $custom-select-bg;
border: $custom-select-border-width solid $custom-select-border-color; border: $custom-select-border-width solid $custom-select-border-color;
@if $enable-rounded { @include border-radius($custom-select-border-radius, 0);
border-radius: $custom-select-border-radius;
} @else {
border-radius: 0;
}
@include box-shadow($custom-select-box-shadow); @include box-shadow($custom-select-box-shadow);
appearance: none; appearance: none;
@@ -262,7 +261,7 @@
// Hides the default caret in IE11 // Hides the default caret in IE11
&::-ms-expand { &::-ms-expand {
opacity: 0; display: none;
} }
} }
@@ -271,7 +270,7 @@
padding-top: $custom-select-padding-y-sm; padding-top: $custom-select-padding-y-sm;
padding-bottom: $custom-select-padding-y-sm; padding-bottom: $custom-select-padding-y-sm;
padding-left: $custom-select-padding-x-sm; padding-left: $custom-select-padding-x-sm;
font-size: $custom-select-font-size-sm; @include font-size($custom-select-font-size-sm);
} }
.custom-select-lg { .custom-select-lg {
@@ -279,7 +278,7 @@
padding-top: $custom-select-padding-y-lg; padding-top: $custom-select-padding-y-lg;
padding-bottom: $custom-select-padding-y-lg; padding-bottom: $custom-select-padding-y-lg;
padding-left: $custom-select-padding-x-lg; padding-left: $custom-select-padding-x-lg;
font-size: $custom-select-font-size-lg; @include font-size($custom-select-font-size-lg);
} }
@@ -331,6 +330,7 @@
z-index: 1; z-index: 1;
height: $custom-file-height; height: $custom-file-height;
padding: $custom-file-padding-y $custom-file-padding-x; padding: $custom-file-padding-y $custom-file-padding-x;
font-family: $custom-file-font-family;
font-weight: $custom-file-font-weight; font-weight: $custom-file-font-weight;
line-height: $custom-file-line-height; line-height: $custom-file-line-height;
color: $custom-file-color; color: $custom-file-color;

View File

@@ -7,6 +7,8 @@
} }
.dropdown-toggle { .dropdown-toggle {
white-space: nowrap;
// Generate the caret automatically // Generate the caret automatically
@include caret; @include caret;
} }
@@ -22,8 +24,8 @@
min-width: $dropdown-min-width; min-width: $dropdown-min-width;
padding: $dropdown-padding-y 0; padding: $dropdown-padding-y 0;
margin: $dropdown-spacer 0 0; // override default ul margin: $dropdown-spacer 0 0; // override default ul
font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues @include font-size($dropdown-font-size);
color: $body-color; color: $dropdown-color;
text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
list-style: none; list-style: none;
background-color: $dropdown-bg; background-color: $dropdown-bg;
@@ -33,17 +35,6 @@
@include box-shadow($dropdown-box-shadow); @include box-shadow($dropdown-box-shadow);
} }
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
.dropdown-menu#{$infix}-right {
right: 0;
left: auto;
}
}
}
@each $breakpoint in map-keys($grid-breakpoints) { @each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) { @include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints); $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
@@ -52,6 +43,11 @@
right: auto; right: auto;
left: 0; left: 0;
} }
.dropdown-menu#{$infix}-right {
right: 0;
left: auto;
}
} }
} }
@@ -118,7 +114,7 @@
// Dividers (basically an `<hr>`) within the dropdown // Dividers (basically an `<hr>`) within the dropdown
.dropdown-divider { .dropdown-divider {
@include nav-divider($dropdown-divider-bg); @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y);
} }
// Links, buttons, and more within the dropdown menu // Links, buttons, and more within the dropdown menu
@@ -136,12 +132,16 @@
background-color: transparent; // For `<button>`s background-color: transparent; // For `<button>`s
border: 0; // For `<button>`s border: 0; // For `<button>`s
&:first-child { // Prevent dropdown overflow if there's no padding
@include border-top-radius($dropdown-inner-border-radius); // See https://github.com/twbs/bootstrap/pull/27703
} @if $dropdown-padding-y == 0 {
&:first-child {
@include border-top-radius($dropdown-inner-border-radius);
}
&:last-child { &:last-child {
@include border-bottom-radius($dropdown-inner-border-radius); @include border-bottom-radius($dropdown-inner-border-radius);
}
} }
@include hover-focus { @include hover-focus {
@@ -178,7 +178,7 @@
display: block; display: block;
padding: $dropdown-padding-y $dropdown-item-padding-x; padding: $dropdown-padding-y $dropdown-item-padding-x;
margin-bottom: 0; // for use with heading elements margin-bottom: 0; // for use with heading elements
font-size: $font-size-sm; @include font-size($font-size-sm);
color: $dropdown-header-color; color: $dropdown-header-color;
white-space: nowrap; // as with > li > a white-space: nowrap; // as with > li > a
} }

View File

@@ -9,7 +9,8 @@
width: 100%; width: 100%;
height: $input-height; height: $input-height;
padding: $input-padding-y $input-padding-x; padding: $input-padding-y $input-padding-x;
font-size: $input-font-size; font-family: $input-font-family;
@include font-size($input-font-size);
font-weight: $input-font-weight; font-weight: $input-font-weight;
line-height: $input-line-height; line-height: $input-line-height;
color: $input-color; color: $input-color;
@@ -18,13 +19,7 @@
border: $input-border-width solid $input-border-color; border: $input-border-width solid $input-border-color;
// Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS. // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
@if $enable-rounded { @include border-radius($input-border-radius, 0);
// Manually use the if/else instead of the mixin to account for iOS override
border-radius: $input-border-radius;
} @else {
// Otherwise undo the iOS default
border-radius: 0;
}
@include box-shadow($input-box-shadow); @include box-shadow($input-box-shadow);
@include transition($input-transition); @include transition($input-transition);
@@ -88,21 +83,21 @@ select.form-control {
padding-top: calc(#{$input-padding-y} + #{$input-border-width}); padding-top: calc(#{$input-padding-y} + #{$input-border-width});
padding-bottom: calc(#{$input-padding-y} + #{$input-border-width}); padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});
margin-bottom: 0; // Override the `<label>/<legend>` default margin-bottom: 0; // Override the `<label>/<legend>` default
font-size: inherit; // Override the `<legend>` default @include font-size(inherit); // Override the `<legend>` default
line-height: $input-line-height; line-height: $input-line-height;
} }
.col-form-label-lg { .col-form-label-lg {
padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width}); padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});
padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width}); padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});
font-size: $input-font-size-lg; @include font-size($input-font-size-lg);
line-height: $input-line-height-lg; line-height: $input-line-height-lg;
} }
.col-form-label-sm { .col-form-label-sm {
padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width}); padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});
padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width}); padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});
font-size: $input-font-size-sm; @include font-size($input-font-size-sm);
line-height: $input-line-height-sm; line-height: $input-line-height-sm;
} }
@@ -142,7 +137,7 @@ select.form-control {
.form-control-sm { .form-control-sm {
height: $input-height-sm; height: $input-height-sm;
padding: $input-padding-y-sm $input-padding-x-sm; padding: $input-padding-y-sm $input-padding-x-sm;
font-size: $input-font-size-sm; @include font-size($input-font-size-sm);
line-height: $input-line-height-sm; line-height: $input-line-height-sm;
@include border-radius($input-border-radius-sm); @include border-radius($input-border-radius-sm);
} }
@@ -150,7 +145,7 @@ select.form-control {
.form-control-lg { .form-control-lg {
height: $input-height-lg; height: $input-height-lg;
padding: $input-padding-y-lg $input-padding-x-lg; padding: $input-padding-y-lg $input-padding-x-lg;
font-size: $input-font-size-lg; @include font-size($input-font-size-lg);
line-height: $input-line-height-lg; line-height: $input-line-height-lg;
@include border-radius($input-border-radius-lg); @include border-radius($input-border-radius-lg);
} }
@@ -163,7 +158,6 @@ select.form-control {
} }
} }
// stylelint-disable-next-line no-duplicate-selectors
textarea.form-control { textarea.form-control {
height: auto; height: auto;
} }
@@ -248,8 +242,9 @@ textarea.form-control {
// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for // pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
// server side validation. // server side validation.
@include form-validation-state("valid", $form-feedback-valid-color); @each $state, $data in $form-validation-states {
@include form-validation-state("invalid", $form-feedback-invalid-color); @include form-validation-state($state, map-get($data, color), map-get($data, icon));
}
// Inline forms // Inline forms
// //
@@ -318,6 +313,7 @@ textarea.form-control {
} }
.form-check-input { .form-check-input {
position: relative; position: relative;
flex-shrink: 0;
margin-top: 0; margin-top: 0;
margin-right: $form-check-input-margin-x; margin-right: $form-check-input-margin-x;
margin-left: 0; margin-left: 0;

View File

@@ -21,12 +21,12 @@
} }
// Starts at zero // Starts at zero
// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0. // Used to ensure the min-width of the lowest breakpoint starts at 0.
@mixin _assert-starts-at-zero($map) { @mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
$values: map-values($map); $values: map-values($map);
$first-value: nth($values, 1); $first-value: nth($values, 1);
@if $first-value != 0 { @if $first-value != 0 {
@warn "First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}."; @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
} }
} }

View File

@@ -37,6 +37,6 @@
} }
.figure-caption { .figure-caption {
font-size: $figure-caption-font-size; @include font-size($figure-caption-font-size);
color: $figure-caption-color; color: $figure-caption-color;
} }

View File

@@ -104,7 +104,7 @@
align-items: center; align-items: center;
padding: $input-padding-y $input-padding-x; padding: $input-padding-y $input-padding-x;
margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
font-size: $font-size-base; // Match inputs @include font-size($input-font-size); // Match inputs
font-weight: $font-weight-normal; font-weight: $font-weight-normal;
line-height: $input-line-height; line-height: $input-line-height;
color: $input-group-addon-color; color: $input-group-addon-color;
@@ -139,7 +139,7 @@
.input-group-lg > .input-group-prepend > .btn, .input-group-lg > .input-group-prepend > .btn,
.input-group-lg > .input-group-append > .btn { .input-group-lg > .input-group-append > .btn {
padding: $input-padding-y-lg $input-padding-x-lg; padding: $input-padding-y-lg $input-padding-x-lg;
font-size: $input-font-size-lg; @include font-size($input-font-size-lg);
line-height: $input-line-height-lg; line-height: $input-line-height-lg;
@include border-radius($input-border-radius-lg); @include border-radius($input-border-radius-lg);
} }
@@ -156,7 +156,7 @@
.input-group-sm > .input-group-prepend > .btn, .input-group-sm > .input-group-prepend > .btn,
.input-group-sm > .input-group-append > .btn { .input-group-sm > .input-group-append > .btn {
padding: $input-padding-y-sm $input-padding-x-sm; padding: $input-padding-y-sm $input-padding-x-sm;
font-size: $input-font-size-sm; @include font-size($input-font-size-sm);
line-height: $input-line-height-sm; line-height: $input-line-height-sm;
@include border-radius($input-border-radius-sm); @include border-radius($input-border-radius-sm);
} }

View File

@@ -1,6 +1,7 @@
.jumbotron { .jumbotron {
padding: $jumbotron-padding ($jumbotron-padding / 2); padding: $jumbotron-padding ($jumbotron-padding / 2);
margin-bottom: $jumbotron-padding; margin-bottom: $jumbotron-padding;
color: $jumbotron-color;
background-color: $jumbotron-bg; background-color: $jumbotron-bg;
@include border-radius($border-radius-lg); @include border-radius($border-radius-lg);

View File

@@ -24,6 +24,7 @@
// Hover state // Hover state
@include hover-focus { @include hover-focus {
z-index: 1; // Place hover/focus items above their siblings for proper border styling
color: $list-group-action-hover-color; color: $list-group-action-hover-color;
text-decoration: none; text-decoration: none;
background-color: $list-group-hover-bg; background-color: $list-group-hover-bg;
@@ -46,6 +47,7 @@
padding: $list-group-item-padding-y $list-group-item-padding-x; padding: $list-group-item-padding-y $list-group-item-padding-x;
// Place the border on the list items and negative margin up for better styling // Place the border on the list items and negative margin up for better styling
margin-bottom: -$list-group-border-width; margin-bottom: -$list-group-border-width;
color: $list-group-color;
background-color: $list-group-bg; background-color: $list-group-bg;
border: $list-group-border-width solid $list-group-border-color; border: $list-group-border-width solid $list-group-border-color;
@@ -58,11 +60,6 @@
@include border-bottom-radius($list-group-border-radius); @include border-bottom-radius($list-group-border-radius);
} }
@include hover-focus {
z-index: 1; // Place hover/active items above their siblings for proper border styling
text-decoration: none;
}
&.disabled, &.disabled,
&:disabled { &:disabled {
color: $list-group-disabled-color; color: $list-group-disabled-color;
@@ -80,6 +77,37 @@
} }
// Horizontal
//
// Change the layout of list group items from vertical (default) to horizontal.
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
.list-group-horizontal#{$infix} {
flex-direction: row;
.list-group-item {
margin-right: -$list-group-border-width;
margin-bottom: 0;
&:first-child {
@include border-left-radius($list-group-border-radius);
@include border-top-right-radius(0);
}
&:last-child {
margin-right: 0;
@include border-right-radius($list-group-border-radius);
@include border-bottom-left-radius(0);
}
}
}
}
}
// Flush list items // Flush list items
// //
// Remove borders and border-radius to keep list group items edge-to-edge. Most // Remove borders and border-radius to keep list group items edge-to-edge. Most

View File

@@ -2,6 +2,12 @@
// //
// Used in conjunction with global variables to enable certain theme features. // Used in conjunction with global variables to enable certain theme features.
// Vendor
@import "vendor/rfs";
// Deprecate
@import "mixins/deprecate";
// Utilities // Utilities
@import "mixins/breakpoints"; @import "mixins/breakpoints";
@import "mixins/hover"; @import "mixins/hover";

View File

@@ -50,17 +50,51 @@
} }
} }
.modal-dialog-scrollable {
display: flex; // IE10/11
max-height: calc(100% - #{$modal-dialog-margin * 2});
.modal-content {
max-height: calc(100vh - #{$modal-dialog-margin * 2}); // IE10/11
overflow: hidden;
}
.modal-header,
.modal-footer {
flex-shrink: 0;
}
.modal-body {
overflow-y: auto;
}
}
.modal-dialog-centered { .modal-dialog-centered {
display: flex; display: flex;
align-items: center; align-items: center;
min-height: calc(100% - (#{$modal-dialog-margin} * 2)); min-height: calc(100% - #{$modal-dialog-margin * 2});
// Ensure `modal-dialog-centered` extends the full height of the view (IE10/11) // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)
&::before { &::before {
display: block; // IE10 display: block; // IE10
height: calc(100vh - (#{$modal-dialog-margin} * 2)); height: calc(100vh - #{$modal-dialog-margin * 2});
content: ""; content: "";
} }
// Ensure `.modal-body` shows scrollbar (IE10/11)
&.modal-dialog-scrollable {
flex-direction: column;
justify-content: center;
height: 100%;
.modal-content {
max-height: none;
}
&::before {
content: none;
}
}
} }
// Actual modal // Actual modal
@@ -70,6 +104,7 @@
flex-direction: column; flex-direction: column;
width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog` width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`
// counteract the pointer-events: none; in the .modal-dialog // counteract the pointer-events: none; in the .modal-dialog
color: $modal-content-color;
pointer-events: auto; pointer-events: auto;
background-color: $modal-content-bg; background-color: $modal-content-bg;
background-clip: padding-box; background-clip: padding-box;
@@ -159,11 +194,19 @@
margin: $modal-dialog-margin-y-sm-up auto; margin: $modal-dialog-margin-y-sm-up auto;
} }
.modal-dialog-scrollable {
max-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});
.modal-content {
max-height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});
}
}
.modal-dialog-centered { .modal-dialog-centered {
min-height: calc(100% - (#{$modal-dialog-margin-y-sm-up} * 2)); min-height: calc(100% - #{$modal-dialog-margin-y-sm-up * 2});
&::before { &::before {
height: calc(100vh - (#{$modal-dialog-margin-y-sm-up} * 2)); height: calc(100vh - #{$modal-dialog-margin-y-sm-up * 2});
} }
} }

View File

@@ -44,7 +44,7 @@
padding-top: $navbar-brand-padding-y; padding-top: $navbar-brand-padding-y;
padding-bottom: $navbar-brand-padding-y; padding-bottom: $navbar-brand-padding-y;
margin-right: $navbar-padding-x; margin-right: $navbar-padding-x;
font-size: $navbar-brand-font-size; @include font-size($navbar-brand-font-size);
line-height: inherit; line-height: inherit;
white-space: nowrap; white-space: nowrap;
@@ -107,7 +107,7 @@
// Button for toggling the navbar when in its collapsed state // Button for toggling the navbar when in its collapsed state
.navbar-toggler { .navbar-toggler {
padding: $navbar-toggler-padding-y $navbar-toggler-padding-x; padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
font-size: $navbar-toggler-font-size; @include font-size($navbar-toggler-font-size);
line-height: 1; line-height: 1;
background-color: transparent; // remove default button style background-color: transparent; // remove default button style
border: $border-width solid transparent; // remove default button style border: $border-width solid transparent; // remove default button style
@@ -116,11 +116,6 @@
@include hover-focus { @include hover-focus {
text-decoration: none; text-decoration: none;
} }
// Opinionated: add "hand" cursor to non-disabled .navbar-toggler elements
&:not(:disabled):not(.disabled) {
cursor: pointer;
}
} }
// Keep as a separate element so folks can easily override it with another icon // Keep as a separate element so folks can easily override it with another icon
@@ -175,7 +170,7 @@
} }
.navbar-collapse { .navbar-collapse {
display: flex !important; // stylelint-disable-line declaration-no-important display: flex !important; // stylelint-disable-line declaration-no-important
// Changes flex-bases to auto because of an IE10 bug // Changes flex-bases to auto because of an IE10 bug
flex-basis: auto; flex-basis: auto;

View File

@@ -27,11 +27,6 @@
outline: $pagination-focus-outline; outline: $pagination-focus-outline;
box-shadow: $pagination-focus-box-shadow; box-shadow: $pagination-focus-box-shadow;
} }
// Opinionated: add "hand" cursor to non-disabled .page-link elements
&:not(:disabled):not(.disabled) {
cursor: pointer;
}
} }
.page-item { .page-item {

View File

@@ -8,7 +8,7 @@
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values. // So reset our font and text properties to avoid inheriting weird values.
@include reset-text(); @include reset-text();
font-size: $popover-font-size; @include font-size($popover-font-size);
// Allow breaking very long words so they don't overflow the popover's bounds // Allow breaking very long words so they don't overflow the popover's bounds
word-wrap: break-word; word-wrap: break-word;
background-color: $popover-bg; background-color: $popover-bg;
@@ -38,72 +38,63 @@
.bs-popover-top { .bs-popover-top {
margin-bottom: $popover-arrow-height; margin-bottom: $popover-arrow-height;
.arrow { > .arrow {
bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1); bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
}
.arrow::before, &::before {
.arrow::after { bottom: 0;
border-width: $popover-arrow-height ($popover-arrow-width / 2) 0; border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
} border-top-color: $popover-arrow-outer-color;
}
.arrow::before { &::after {
bottom: 0; bottom: $popover-border-width;
border-top-color: $popover-arrow-outer-color; border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
} border-top-color: $popover-arrow-color;
}
.arrow::after {
bottom: $popover-border-width;
border-top-color: $popover-arrow-color;
} }
} }
.bs-popover-right { .bs-popover-right {
margin-left: $popover-arrow-height; margin-left: $popover-arrow-height;
.arrow { > .arrow {
left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1); left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
width: $popover-arrow-height; width: $popover-arrow-height;
height: $popover-arrow-width; height: $popover-arrow-width;
margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners
}
.arrow::before, &::before {
.arrow::after { left: 0;
border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0; border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
} border-right-color: $popover-arrow-outer-color;
}
.arrow::before { &::after {
left: 0; left: $popover-border-width;
border-right-color: $popover-arrow-outer-color; border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
} border-right-color: $popover-arrow-color;
}
.arrow::after {
left: $popover-border-width;
border-right-color: $popover-arrow-color;
} }
} }
.bs-popover-bottom { .bs-popover-bottom {
margin-top: $popover-arrow-height; margin-top: $popover-arrow-height;
.arrow { > .arrow {
top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1); top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
}
.arrow::before, &::before {
.arrow::after { top: 0;
border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2); border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
} border-bottom-color: $popover-arrow-outer-color;
}
.arrow::before { &::after {
top: 0; top: $popover-border-width;
border-bottom-color: $popover-arrow-outer-color; border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
} border-bottom-color: $popover-arrow-color;
}
.arrow::after {
top: $popover-border-width;
border-bottom-color: $popover-arrow-color;
} }
// This will remove the popover-header's border just below the arrow // This will remove the popover-header's border just below the arrow
@@ -122,26 +113,23 @@
.bs-popover-left { .bs-popover-left {
margin-right: $popover-arrow-height; margin-right: $popover-arrow-height;
.arrow { > .arrow {
right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1); right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
width: $popover-arrow-height; width: $popover-arrow-height;
height: $popover-arrow-width; height: $popover-arrow-width;
margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners
}
.arrow::before, &::before {
.arrow::after { right: 0;
border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height; border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
} border-left-color: $popover-arrow-outer-color;
}
.arrow::before { &::after {
right: 0; right: $popover-border-width;
border-left-color: $popover-arrow-outer-color; border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
} border-left-color: $popover-arrow-color;
}
.arrow::after {
right: $popover-border-width;
border-left-color: $popover-arrow-color;
} }
} }
@@ -165,7 +153,7 @@
.popover-header { .popover-header {
padding: $popover-header-padding-y $popover-header-padding-x; padding: $popover-header-padding-y $popover-header-padding-x;
margin-bottom: 0; // Reset the default from Reboot margin-bottom: 0; // Reset the default from Reboot
font-size: $font-size-base; @include font-size($font-size-base);
color: $popover-header-color; color: $popover-header-color;
background-color: $popover-header-bg; background-color: $popover-header-bg;
border-bottom: $popover-border-width solid darken($popover-header-bg, 5%); border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);

View File

@@ -51,7 +51,7 @@
} }
pre, pre,
blockquote { blockquote {
border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px
page-break-inside: avoid; page-break-inside: avoid;
} }

View File

@@ -1,13 +1,16 @@
@keyframes progress-bar-stripes { // Disable animation if transitions are disabled
from { background-position: $progress-height 0; } @if $enable-transitions {
to { background-position: 0 0; } @keyframes progress-bar-stripes {
from { background-position: $progress-height 0; }
to { background-position: 0 0; }
}
} }
.progress { .progress {
display: flex; display: flex;
height: $progress-height; height: $progress-height;
overflow: hidden; // force rounded corners by cropping it overflow: hidden; // force rounded corners by cropping it
font-size: $progress-font-size; @include font-size($progress-font-size);
background-color: $progress-bg; background-color: $progress-bg;
@include border-radius($progress-border-radius); @include border-radius($progress-border-radius);
@include box-shadow($progress-box-shadow); @include box-shadow($progress-box-shadow);
@@ -29,6 +32,12 @@
background-size: $progress-height $progress-height; background-size: $progress-height $progress-height;
} }
.progress-bar-animated { @if $enable-transitions {
animation: progress-bar-stripes $progress-bar-animation-timing; .progress-bar-animated {
animation: progress-bar-stripes $progress-bar-animation-timing;
@media (prefers-reduced-motion: reduce) {
animation: none;
}
}
} }

View File

@@ -46,7 +46,7 @@ article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
body { body {
margin: 0; // 1 margin: 0; // 1
font-family: $font-family-base; font-family: $font-family-base;
font-size: $font-size-base; @include font-size($font-size-base);
font-weight: $font-weight-base; font-weight: $font-weight-base;
line-height: $line-height-base; line-height: $line-height-base;
color: $body-color; color: $body-color;
@@ -155,7 +155,7 @@ strong {
} }
small { small {
font-size: 80%; // Add the correct font size in all browsers @include font-size(80%); // Add the correct font size in all browsers
} }
// //
@@ -166,7 +166,7 @@ small {
sub, sub,
sup { sup {
position: relative; position: relative;
font-size: 75%; @include font-size(75%);
line-height: 0; line-height: 0;
vertical-align: baseline; vertical-align: baseline;
} }
@@ -220,7 +220,7 @@ code,
kbd, kbd,
samp { samp {
font-family: $font-family-monospace; font-family: $font-family-monospace;
font-size: 1em; // Correct the odd `em` font sizing in all browsers. @include font-size(1em); // Correct the odd `em` font sizing in all browsers.
} }
pre { pre {
@@ -297,6 +297,7 @@ label {
// //
// Details at https://github.com/twbs/bootstrap/issues/24093 // Details at https://github.com/twbs/bootstrap/issues/24093
button { button {
// stylelint-disable-next-line property-blacklist
border-radius: 0; border-radius: 0;
} }
@@ -316,7 +317,7 @@ optgroup,
textarea { textarea {
margin: 0; // Remove the margin in Firefox and Safari margin: 0; // Remove the margin in Firefox and Safari
font-family: inherit; font-family: inherit;
font-size: inherit; @include font-size(inherit);
line-height: inherit; line-height: inherit;
} }
@@ -330,6 +331,14 @@ select {
text-transform: none; // Remove the inheritance of text transform in Firefox text-transform: none; // Remove the inheritance of text transform in Firefox
} }
// Remove the inheritance of word-wrap in Safari.
//
// Details at https://github.com/twbs/bootstrap/issues/24990
select {
word-wrap: normal;
}
// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
// controls in Android 4. // controls in Android 4.
// 2. Correct the inability to style clickable types in iOS and Safari. // 2. Correct the inability to style clickable types in iOS and Safari.
@@ -340,6 +349,18 @@ button,
-webkit-appearance: button; // 2 -webkit-appearance: button; // 2
} }
// Opinionated: add "hand" cursor to non-disabled button elements.
@if $enable-pointer-cursor-for-buttons {
button,
[type="button"],
[type="reset"],
[type="submit"] {
&:not(:disabled) {
cursor: pointer;
}
}
}
// Remove inner border and padding from Firefox, but don't restore the outline like Normalize. // Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
button::-moz-focus-inner, button::-moz-focus-inner,
[type="button"]::-moz-focus-inner, [type="button"]::-moz-focus-inner,
@@ -395,7 +416,7 @@ legend {
max-width: 100%; // 1 max-width: 100%; // 1
padding: 0; padding: 0;
margin-bottom: .5rem; margin-bottom: .5rem;
font-size: 1.5rem; @include font-size(1.5rem);
line-height: inherit; line-height: inherit;
color: inherit; // 2 color: inherit; // 2
white-space: normal; // 1 white-space: normal; // 1
@@ -421,7 +442,7 @@ progress {
} }
// //
// Remove the inner padding and cancel buttons in Chrome and Safari on macOS. // Remove the inner padding in Chrome and Safari on macOS.
// //
[type="search"]::-webkit-search-decoration { [type="search"]::-webkit-search-decoration {

View File

@@ -13,6 +13,7 @@
vertical-align: text-bottom; vertical-align: text-bottom;
border: $spinner-border-width solid currentColor; border: $spinner-border-width solid currentColor;
border-right-color: transparent; border-right-color: transparent;
// stylelint-disable-next-line property-blacklist
border-radius: 50%; border-radius: 50%;
animation: spinner-border .75s linear infinite; animation: spinner-border .75s linear infinite;
} }
@@ -42,6 +43,7 @@
height: $spinner-height; height: $spinner-height;
vertical-align: text-bottom; vertical-align: text-bottom;
background-color: currentColor; background-color: currentColor;
// stylelint-disable-next-line property-blacklist
border-radius: 50%; border-radius: 50%;
opacity: 0; opacity: 0;
animation: spinner-grow .75s linear infinite; animation: spinner-grow .75s linear infinite;

View File

@@ -5,6 +5,7 @@
.table { .table {
width: 100%; width: 100%;
margin-bottom: $spacer; margin-bottom: $spacer;
color: $table-color;
background-color: $table-bg; // Reset for nesting within parents with `background-color`. background-color: $table-bg; // Reset for nesting within parents with `background-color`.
th, th,
@@ -22,10 +23,6 @@
tbody + tbody { tbody + tbody {
border-top: (2 * $table-border-width) solid $table-border-color; border-top: (2 * $table-border-width) solid $table-border-color;
} }
.table {
background-color: $body-bg;
}
} }
@@ -88,6 +85,7 @@
.table-hover { .table-hover {
tbody tr { tbody tr {
@include hover { @include hover {
color: $table-hover-color;
background-color: $table-hover-bg; background-color: $table-hover-bg;
} }
} }
@@ -152,6 +150,7 @@
&.table-hover { &.table-hover {
tbody tr { tbody tr {
@include hover { @include hover {
color: $table-dark-hover-color;
background-color: $table-dark-hover-bg; background-color: $table-dark-hover-bg;
} }
} }
@@ -175,7 +174,6 @@
width: 100%; width: 100%;
overflow-x: auto; overflow-x: auto;
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
// Prevent double border on horizontal scroll due to use of `display: block;` // Prevent double border on horizontal scroll due to use of `display: block;`
> .table-bordered { > .table-bordered {

View File

@@ -1,14 +1,15 @@
.toast { .toast {
max-width: $toast-max-width; max-width: $toast-max-width;
overflow: hidden; // cheap rounded corners on nested items overflow: hidden; // cheap rounded corners on nested items
font-size: $toast-font-size; // knock it down to 14px @include font-size($toast-font-size);
color: $toast-color;
background-color: $toast-background-color; background-color: $toast-background-color;
background-clip: padding-box; background-clip: padding-box;
border: $toast-border-width solid $toast-border-color; border: $toast-border-width solid $toast-border-color;
border-radius: $toast-border-radius;
box-shadow: $toast-box-shadow; box-shadow: $toast-box-shadow;
backdrop-filter: blur(10px); backdrop-filter: blur(10px);
opacity: 0; opacity: 0;
@include border-radius($toast-border-radius);
&:not(:last-child) { &:not(:last-child) {
margin-bottom: $toast-padding-x; margin-bottom: $toast-padding-x;

View File

@@ -7,7 +7,7 @@
// Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
// So reset our font and text properties to avoid inheriting weird values. // So reset our font and text properties to avoid inheriting weird values.
@include reset-text(); @include reset-text();
font-size: $tooltip-font-size; @include font-size($tooltip-font-size);
// Allow breaking very long words so they don't overflow the tooltip's bounds // Allow breaking very long words so they don't overflow the tooltip's bounds
word-wrap: break-word; word-wrap: break-word;
opacity: 0; opacity: 0;

View File

@@ -1,5 +1,3 @@
// stylelint-disable selector-no-qualifying-type
.fade { .fade {
@include transition($transition-fade); @include transition($transition-fade);

View File

@@ -13,36 +13,36 @@ h1, h2, h3, h4, h5, h6,
color: $headings-color; color: $headings-color;
} }
h1, .h1 { font-size: $h1-font-size; } h1, .h1 { @include font-size($h1-font-size); }
h2, .h2 { font-size: $h2-font-size; } h2, .h2 { @include font-size($h2-font-size); }
h3, .h3 { font-size: $h3-font-size; } h3, .h3 { @include font-size($h3-font-size); }
h4, .h4 { font-size: $h4-font-size; } h4, .h4 { @include font-size($h4-font-size); }
h5, .h5 { font-size: $h5-font-size; } h5, .h5 { @include font-size($h5-font-size); }
h6, .h6 { font-size: $h6-font-size; } h6, .h6 { @include font-size($h6-font-size); }
.lead { .lead {
font-size: $lead-font-size; @include font-size($lead-font-size);
font-weight: $lead-font-weight; font-weight: $lead-font-weight;
} }
// Type display classes // Type display classes
.display-1 { .display-1 {
font-size: $display1-size; @include font-size($display1-size);
font-weight: $display1-weight; font-weight: $display1-weight;
line-height: $display-line-height; line-height: $display-line-height;
} }
.display-2 { .display-2 {
font-size: $display2-size; @include font-size($display2-size);
font-weight: $display2-weight; font-weight: $display2-weight;
line-height: $display-line-height; line-height: $display-line-height;
} }
.display-3 { .display-3 {
font-size: $display3-size; @include font-size($display3-size);
font-weight: $display3-weight; font-weight: $display3-weight;
line-height: $display-line-height; line-height: $display-line-height;
} }
.display-4 { .display-4 {
font-size: $display4-size; @include font-size($display4-size);
font-weight: $display4-weight; font-weight: $display4-weight;
line-height: $display-line-height; line-height: $display-line-height;
} }
@@ -66,7 +66,7 @@ hr {
small, small,
.small { .small {
font-size: $small-font-size; @include font-size($small-font-size);
font-weight: $font-weight-normal; font-weight: $font-weight-normal;
} }
@@ -104,19 +104,19 @@ mark,
// Builds on `abbr` // Builds on `abbr`
.initialism { .initialism {
font-size: 90%; @include font-size(90%);
text-transform: uppercase; text-transform: uppercase;
} }
// Blockquotes // Blockquotes
.blockquote { .blockquote {
margin-bottom: $spacer; margin-bottom: $spacer;
font-size: $blockquote-font-size; @include font-size($blockquote-font-size);
} }
.blockquote-footer { .blockquote-footer {
display: block; display: block;
font-size: $blockquote-small-font-size; @include font-size($blockquote-small-font-size);
color: $blockquote-small-color; color: $blockquote-small-color;
&::before { &::before {

View File

@@ -11,6 +11,7 @@
@import "utilities/screenreaders"; @import "utilities/screenreaders";
@import "utilities/shadows"; @import "utilities/shadows";
@import "utilities/sizing"; @import "utilities/sizing";
@import "utilities/stretched-link";
@import "utilities/spacing"; @import "utilities/spacing";
@import "utilities/text"; @import "utilities/text";
@import "utilities/visibility"; @import "utilities/visibility";

View File

@@ -114,8 +114,11 @@ $enable-transitions: true !default;
$enable-prefers-reduced-motion-media-query: true !default; $enable-prefers-reduced-motion-media-query: true !default;
$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS $enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
$enable-grid-classes: true !default; $enable-grid-classes: true !default;
$enable-pointer-cursor-for-buttons: true !default;
$enable-print-styles: true !default; $enable-print-styles: true !default;
$enable-responsive-font-sizes: false !default;
$enable-validation-icons: true !default; $enable-validation-icons: true !default;
$enable-deprecation-messages: true !default;
// Spacing // Spacing
@@ -185,38 +188,28 @@ $paragraph-margin-bottom: 1rem !default;
// Define the minimum dimensions at which your layout will change, // Define the minimum dimensions at which your layout will change,
// adapting to different screen sizes, for use in media queries. // adapting to different screen sizes, for use in media queries.
$grid-breakpoints: () !default; $grid-breakpoints: (
// stylelint-disable-next-line scss/dollar-variable-default xs: 0,
$grid-breakpoints: map-merge( sm: 576px,
( md: 768px,
xs: 0, lg: 992px,
sm: 576px, xl: 1200px
md: 768px, ) !default;
lg: 992px,
xl: 1200px
),
$grid-breakpoints
);
@include _assert-ascending($grid-breakpoints, "$grid-breakpoints"); @include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
@include _assert-starts-at-zero($grid-breakpoints); @include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");
// Grid containers // Grid containers
// //
// Define the maximum width of `.container` for different screen sizes. // Define the maximum width of `.container` for different screen sizes.
$container-max-widths: () !default; $container-max-widths: (
// stylelint-disable-next-line scss/dollar-variable-default sm: 540px,
$container-max-widths: map-merge( md: 720px,
( lg: 960px,
sm: 540px, xl: 1140px
md: 720px, ) !default;
lg: 960px,
xl: 1140px
),
$container-max-widths
);
@include _assert-ascending($container-max-widths, "$container-max-widths"); @include _assert-ascending($container-max-widths, "$container-max-widths");
@@ -253,6 +246,8 @@ $component-active-color: $white !default;
$component-active-bg: theme-color("primary") !default; $component-active-bg: theme-color("primary") !default;
$caret-width: .3em !default; $caret-width: .3em !default;
$caret-vertical-align: $caret-width * .85 !default;
$caret-spacing: $caret-width * .85 !default;
$transition-base: all .2s ease-in-out !default; $transition-base: all .2s ease-in-out !default;
$transition-fade: opacity .15s linear !default; $transition-fade: opacity .15s linear !default;
@@ -264,13 +259,13 @@ $embed-responsive-aspect-ratios: join(
( (
(21 9), (21 9),
(16 9), (16 9),
(3 4), (4 3),
(1 1), (1 1),
), ),
$embed-responsive-aspect-ratios $embed-responsive-aspect-ratios
); );
// Fonts // Typography
// //
// Font, line-height, and color for body text, headings, and more. // Font, line-height, and color for body text, headings, and more.
@@ -281,8 +276,8 @@ $font-family-base: $font-family-sans-serif !default;
// stylelint-enable value-keyword-case // stylelint-enable value-keyword-case
$font-size-base: 1rem !default; // Assumes the browser default, typically `16px` $font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
$font-size-lg: ($font-size-base * 1.25) !default; $font-size-lg: $font-size-base * 1.25 !default;
$font-size-sm: ($font-size-base * .875) !default; $font-size-sm: $font-size-base * .875 !default;
$font-weight-lighter: lighter !default; $font-weight-lighter: lighter !default;
$font-weight-light: 300 !default; $font-weight-light: 300 !default;
@@ -301,10 +296,10 @@ $h5-font-size: $font-size-base * 1.25 !default;
$h6-font-size: $font-size-base !default; $h6-font-size: $font-size-base !default;
$headings-margin-bottom: $spacer / 2 !default; $headings-margin-bottom: $spacer / 2 !default;
$headings-font-family: inherit !default; $headings-font-family: null !default;
$headings-font-weight: 500 !default; $headings-font-weight: 500 !default;
$headings-line-height: 1.2 !default; $headings-line-height: 1.2 !default;
$headings-color: inherit !default; $headings-color: null !default;
$display1-size: 6rem !default; $display1-size: 6rem !default;
$display2-size: 5.5rem !default; $display2-size: 5.5rem !default;
@@ -317,7 +312,7 @@ $display3-weight: 300 !default;
$display4-weight: 300 !default; $display4-weight: 300 !default;
$display-line-height: $headings-line-height !default; $display-line-height: $headings-line-height !default;
$lead-font-size: ($font-size-base * 1.25) !default; $lead-font-size: $font-size-base * 1.25 !default;
$lead-font-weight: 300 !default; $lead-font-weight: 300 !default;
$small-font-size: 80% !default; $small-font-size: 80% !default;
@@ -326,7 +321,7 @@ $text-muted: $gray-600 !default;
$blockquote-small-color: $gray-600 !default; $blockquote-small-color: $gray-600 !default;
$blockquote-small-font-size: $small-font-size !default; $blockquote-small-font-size: $small-font-size !default;
$blockquote-font-size: ($font-size-base * 1.25) !default; $blockquote-font-size: $font-size-base * 1.25 !default;
$hr-border-color: rgba($black, .1) !default; $hr-border-color: rgba($black, .1) !default;
$hr-border-width: $border-width !default; $hr-border-width: $border-width !default;
@@ -352,21 +347,25 @@ $hr-margin-y: $spacer !default;
$table-cell-padding: .75rem !default; $table-cell-padding: .75rem !default;
$table-cell-padding-sm: .3rem !default; $table-cell-padding-sm: .3rem !default;
$table-bg: transparent !default; $table-color: $body-color !default;
$table-bg: null !default;
$table-accent-bg: rgba($black, .05) !default; $table-accent-bg: rgba($black, .05) !default;
$table-hover-color: $table-color !default;
$table-hover-bg: rgba($black, .075) !default; $table-hover-bg: rgba($black, .075) !default;
$table-active-bg: $table-hover-bg !default; $table-active-bg: $table-hover-bg !default;
$table-border-width: $border-width !default; $table-border-width: $border-width !default;
$table-border-color: $gray-300 !default; $table-border-color: $border-color !default;
$table-head-bg: $gray-200 !default; $table-head-bg: $gray-200 !default;
$table-head-color: $gray-700 !default; $table-head-color: $gray-700 !default;
$table-dark-bg: $gray-900 !default; $table-dark-color: $white !default;
$table-dark-bg: $gray-800 !default;
$table-dark-accent-bg: rgba($white, .05) !default; $table-dark-accent-bg: rgba($white, .05) !default;
$table-dark-hover-color: $table-dark-color !default;
$table-dark-hover-bg: rgba($white, .075) !default; $table-dark-hover-bg: rgba($white, .075) !default;
$table-dark-border-color: lighten($gray-900, 7.5%) !default; $table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;
$table-dark-color: $white !default; $table-dark-color: $white !default;
$table-striped-order: odd !default; $table-striped-order: odd !default;
@@ -383,6 +382,7 @@ $table-border-level: -6 !default;
$input-btn-padding-y: .375rem !default; $input-btn-padding-y: .375rem !default;
$input-btn-padding-x: .75rem !default; $input-btn-padding-x: .75rem !default;
$input-btn-font-family: null !default;
$input-btn-font-size: $font-size-base !default; $input-btn-font-size: $font-size-base !default;
$input-btn-line-height: $line-height-base !default; $input-btn-line-height: $line-height-base !default;
@@ -409,6 +409,7 @@ $input-btn-border-width: $border-width !default;
$btn-padding-y: $input-btn-padding-y !default; $btn-padding-y: $input-btn-padding-y !default;
$btn-padding-x: $input-btn-padding-x !default; $btn-padding-x: $input-btn-padding-x !default;
$btn-font-family: $input-btn-font-family !default;
$btn-font-size: $input-btn-font-size !default; $btn-font-size: $input-btn-font-size !default;
$btn-line-height: $input-btn-line-height !default; $btn-line-height: $input-btn-line-height !default;
@@ -449,6 +450,7 @@ $label-margin-bottom: .5rem !default;
$input-padding-y: $input-btn-padding-y !default; $input-padding-y: $input-btn-padding-y !default;
$input-padding-x: $input-btn-padding-x !default; $input-padding-x: $input-btn-padding-x !default;
$input-font-family: $input-btn-font-family !default;
$input-font-size: $input-btn-font-size !default; $input-font-size: $input-btn-font-size !default;
$input-font-weight: $font-weight-base !default; $input-font-weight: $font-weight-base !default;
$input-line-height: $input-btn-line-height !default; $input-line-height: $input-btn-line-height !default;
@@ -486,14 +488,13 @@ $input-plaintext-color: $body-color !default;
$input-height-border: $input-border-width * 2 !default; $input-height-border: $input-border-width * 2 !default;
$input-height-inner: ($input-btn-font-size * $input-btn-line-height) + ($input-btn-padding-y * 2) !default; $input-height-inner: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;
$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default; $input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;
$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;
$input-height-inner-sm: ($input-btn-font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default; $input-height: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;
$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default; $input-height-sm: calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;
$input-height-lg: calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;
$input-height-inner-lg: ($input-btn-font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;
$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;
$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; $input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
@@ -535,7 +536,7 @@ $custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5)
$custom-control-indicator-checked-box-shadow: none !default; $custom-control-indicator-checked-box-shadow: none !default;
$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default; $custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;
$custom-control-indicator-focus-box-shadow: $input-btn-focus-box-shadow !default; $custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;
$custom-control-indicator-focus-border-color: $input-focus-border-color !default; $custom-control-indicator-focus-border-color: $input-focus-border-color !default;
$custom-control-indicator-active-color: $component-active-color !default; $custom-control-indicator-active-color: $component-active-color !default;
@@ -559,8 +560,10 @@ $custom-switch-width: $custom-control-indicator-size *
$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default; $custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;
$custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default; $custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;
$custom-select-padding-y: $input-btn-padding-y !default; $custom-select-padding-y: $input-padding-y !default;
$custom-select-padding-x: $input-btn-padding-x !default; $custom-select-padding-x: $input-padding-x !default;
$custom-select-font-family: $input-font-family !default;
$custom-select-font-size: $input-font-size !default;
$custom-select-height: $input-height !default; $custom-select-height: $input-height !default;
$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator $custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator
$custom-select-font-weight: $input-font-weight !default; $custom-select-font-weight: $input-font-weight !default;
@@ -574,9 +577,9 @@ $custom-select-indicator-color: $gray-800 !default;
$custom-select-indicator: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e"), "#", "%23") !default; $custom-select-indicator: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e"), "#", "%23") !default;
$custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon) $custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)
$custom-select-feedback-icon-padding-right: $input-height-inner * 3 / 4 + $custom-select-padding-x + $custom-select-indicator-padding !default; $custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;
$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default; $custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;
$custom-select-feedback-icon-size: ($input-height-inner / 2) ($input-height-inner / 2) !default; $custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
$custom-select-border-width: $input-border-width !default; $custom-select-border-width: $input-border-width !default;
$custom-select-border-color: $input-border-color !default; $custom-select-border-color: $input-border-color !default;
@@ -585,16 +588,16 @@ $custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;
$custom-select-focus-border-color: $input-focus-border-color !default; $custom-select-focus-border-color: $input-focus-border-color !default;
$custom-select-focus-width: $input-focus-width !default; $custom-select-focus-width: $input-focus-width !default;
$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width rgba($custom-select-focus-border-color, .5) !default; $custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;
$custom-select-padding-y-sm: $input-padding-y-sm !default; $custom-select-padding-y-sm: $input-padding-y-sm !default;
$custom-select-padding-x-sm: $input-padding-x-sm !default; $custom-select-padding-x-sm: $input-padding-x-sm !default;
$custom-select-font-size-sm: $input-btn-font-size-sm !default; $custom-select-font-size-sm: $input-font-size-sm !default;
$custom-select-height-sm: $input-height-sm !default; $custom-select-height-sm: $input-height-sm !default;
$custom-select-padding-y-lg: $input-padding-y-lg !default; $custom-select-padding-y-lg: $input-padding-y-lg !default;
$custom-select-padding-x-lg: $input-padding-x-lg !default; $custom-select-padding-x-lg: $input-padding-x-lg !default;
$custom-select-font-size-lg: $input-btn-font-size-lg !default; $custom-select-font-size-lg: $input-font-size-lg !default;
$custom-select-height-lg: $input-height-lg !default; $custom-select-height-lg: $input-height-lg !default;
$custom-range-track-width: 100% !default; $custom-range-track-width: 100% !default;
@@ -624,6 +627,7 @@ $custom-file-disabled-bg: $input-disabled-bg !default;
$custom-file-padding-y: $input-padding-y !default; $custom-file-padding-y: $input-padding-y !default;
$custom-file-padding-x: $input-padding-x !default; $custom-file-padding-x: $input-padding-x !default;
$custom-file-line-height: $input-line-height !default; $custom-file-line-height: $input-line-height !default;
$custom-file-font-family: $input-font-family !default;
$custom-file-font-weight: $input-font-weight !default; $custom-file-font-weight: $input-font-weight !default;
$custom-file-color: $input-color !default; $custom-file-color: $input-color !default;
$custom-file-bg: $input-bg !default; $custom-file-bg: $input-bg !default;
@@ -648,38 +652,23 @@ $form-feedback-invalid-color: theme-color("danger") !default;
$form-feedback-icon-valid-color: $form-feedback-valid-color !default; $form-feedback-icon-valid-color: $form-feedback-valid-color !default;
$form-feedback-icon-valid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"), "#", "%23") !default; $form-feedback-icon-valid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"), "#", "%23") !default;
$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default; $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
$form-feedback-icon-invalid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"), "#", "%23") !default; $form-feedback-icon-invalid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"), "#", "%23") !default;
// Dropdowns
//
// Dropdown menu container and contents.
$dropdown-min-width: 10rem !default;
$dropdown-padding-y: .5rem !default;
$dropdown-spacer: .125rem !default;
$dropdown-bg: $white !default;
$dropdown-border-color: rgba($black, .15) !default;
$dropdown-border-radius: $border-radius !default;
$dropdown-border-width: $border-width !default;
$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;
$dropdown-divider-bg: $gray-200 !default;
$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
$dropdown-link-color: $gray-900 !default;
$dropdown-link-hover-color: darken($gray-900, 5%) !default;
$dropdown-link-hover-bg: $gray-100 !default;
$dropdown-link-active-color: $component-active-color !default;
$dropdown-link-active-bg: $component-active-bg !default;
$dropdown-link-disabled-color: $gray-600 !default;
$dropdown-item-padding-y: .25rem !default;
$dropdown-item-padding-x: 1.5rem !default;
$dropdown-header-color: $gray-600 !default;
$form-validation-states: () !default;
// stylelint-disable-next-line scss/dollar-variable-default
$form-validation-states: map-merge(
(
"valid": (
"color": $form-feedback-valid-color,
"icon": $form-feedback-icon-valid
),
"invalid": (
"color": $form-feedback-invalid-color,
"icon": $form-feedback-icon-invalid
),
),
$form-validation-states
);
// Z-index master list // Z-index master list
// //
@@ -755,6 +744,39 @@ $navbar-dark-brand-color: $navbar-dark-active-color !default;
$navbar-dark-brand-hover-color: $navbar-dark-active-color !default; $navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
// Dropdowns
//
// Dropdown menu container and contents.
$dropdown-min-width: 10rem !default;
$dropdown-padding-y: .5rem !default;
$dropdown-spacer: .125rem !default;
$dropdown-font-size: $font-size-base !default;
$dropdown-color: $body-color !default;
$dropdown-bg: $white !default;
$dropdown-border-color: rgba($black, .15) !default;
$dropdown-border-radius: $border-radius !default;
$dropdown-border-width: $border-width !default;
$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;
$dropdown-divider-bg: $gray-200 !default;
$dropdown-divider-margin-y: $nav-divider-margin-y !default;
$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
$dropdown-link-color: $gray-900 !default;
$dropdown-link-hover-color: darken($gray-900, 5%) !default;
$dropdown-link-hover-bg: $gray-100 !default;
$dropdown-link-active-color: $component-active-color !default;
$dropdown-link-active-bg: $component-active-bg !default;
$dropdown-link-disabled-color: $gray-600 !default;
$dropdown-item-padding-y: .25rem !default;
$dropdown-item-padding-x: 1.5rem !default;
$dropdown-header-color: $gray-600 !default;
// Pagination // Pagination
$pagination-padding-y: .5rem !default; $pagination-padding-y: .5rem !default;
@@ -789,6 +811,7 @@ $pagination-disabled-border-color: $gray-300 !default;
// Jumbotron // Jumbotron
$jumbotron-padding: 2rem !default; $jumbotron-padding: 2rem !default;
$jumbotron-color: null !default;
$jumbotron-bg: $gray-200 !default; $jumbotron-bg: $gray-200 !default;
@@ -801,7 +824,8 @@ $card-border-radius: $border-radius !default;
$card-border-color: rgba($black, .125) !default; $card-border-color: rgba($black, .125) !default;
$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default; $card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;
$card-cap-bg: rgba($black, .03) !default; $card-cap-bg: rgba($black, .03) !default;
$card-cap-color: inherit !default; $card-cap-color: null !default;
$card-color: null !default;
$card-bg: $white !default; $card-bg: $white !default;
$card-img-overlay-padding: 1.25rem !default; $card-img-overlay-padding: 1.25rem !default;
@@ -866,19 +890,21 @@ $popover-arrow-outer-color: fade-in($popover-border-color, .05) !default
// Toasts // Toasts
$toast-max-width: 350px !default;
$toast-padding-x: .75rem !default;
$toast-padding-y: .25rem !default;
$toast-font-size: .875rem !default;
$toast-background-color: rgba($white, .85) !default;
$toast-border-width: 1px !default;
$toast-border-color: rgba(0, 0, 0, .1) !default;
$toast-border-radius: .25rem !default;
$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;
$toast-header-color: $gray-600 !default; $toast-max-width: 350px !default;
$toast-header-background-color: rgba($white, .85) !default; $toast-padding-x: .75rem !default;
$toast-header-border-color: rgba(0, 0, 0, .05) !default; $toast-padding-y: .25rem !default;
$toast-font-size: .875rem !default;
$toast-color: null !default;
$toast-background-color: rgba($white, .85) !default;
$toast-border-width: 1px !default;
$toast-border-color: rgba(0, 0, 0, .1) !default;
$toast-border-radius: .25rem !default;
$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;
$toast-header-color: $gray-600 !default;
$toast-header-background-color: rgba($white, .85) !default;
$toast-header-border-color: rgba(0, 0, 0, .05) !default;
// Badges // Badges
@@ -889,6 +915,9 @@ $badge-padding-y: .25em !default;
$badge-padding-x: .4em !default; $badge-padding-x: .4em !default;
$badge-border-radius: $border-radius !default; $badge-border-radius: $border-radius !default;
$badge-transition: $btn-transition !default;
$badge-focus-width: $input-btn-focus-width !default;
$badge-pill-padding-x: .6em !default; $badge-pill-padding-x: .6em !default;
// Use a higher than normal value to ensure completely rounded edges when // Use a higher than normal value to ensure completely rounded edges when
// customizing padding or font-size on labels. // customizing padding or font-size on labels.
@@ -905,6 +934,7 @@ $modal-dialog-margin-y-sm-up: 1.75rem !default;
$modal-title-line-height: $line-height-base !default; $modal-title-line-height: $line-height-base !default;
$modal-content-color: null !default;
$modal-content-bg: $white !default; $modal-content-bg: $white !default;
$modal-content-border-color: rgba($black, .2) !default; $modal-content-border-color: rgba($black, .2) !default;
$modal-content-border-width: $border-width !default; $modal-content-border-width: $border-width !default;
@@ -914,7 +944,7 @@ $modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;
$modal-backdrop-bg: $black !default; $modal-backdrop-bg: $black !default;
$modal-backdrop-opacity: .5 !default; $modal-backdrop-opacity: .5 !default;
$modal-header-border-color: $gray-200 !default; $modal-header-border-color: $border-color !default;
$modal-footer-border-color: $modal-header-border-color !default; $modal-footer-border-color: $modal-header-border-color !default;
$modal-header-border-width: $modal-content-border-width !default; $modal-header-border-width: $modal-content-border-width !default;
$modal-footer-border-width: $modal-header-border-width !default; $modal-footer-border-width: $modal-header-border-width !default;
@@ -951,7 +981,7 @@ $alert-color-level: 6 !default;
// Progress bars // Progress bars
$progress-height: 1rem !default; $progress-height: 1rem !default;
$progress-font-size: ($font-size-base * .75) !default; $progress-font-size: $font-size-base * .75 !default;
$progress-bg: $gray-200 !default; $progress-bg: $gray-200 !default;
$progress-border-radius: $border-radius !default; $progress-border-radius: $border-radius !default;
$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default; $progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;
@@ -963,6 +993,7 @@ $progress-bar-transition: width .6s ease !default;
// List group // List group
$list-group-color: null !default;
$list-group-bg: $white !default; $list-group-bg: $white !default;
$list-group-border-color: rgba($black, .125) !default; $list-group-border-color: rgba($black, .125) !default;
$list-group-border-width: $border-width !default; $list-group-border-width: $border-width !default;
@@ -1081,6 +1112,7 @@ $pre-scrollable-max-height: 340px !default;
// Utilities // Utilities
$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;
$overflows: auto, hidden !default; $overflows: auto, hidden !default;
$positions: static, relative, absolute, fixed, sticky !default; $positions: static, relative, absolute, fixed, sticky !default;

View File

@@ -1,7 +1,7 @@
/*! /*!
* Bootstrap Grid v4.2.1 (https://getbootstrap.com/) * Bootstrap Grid v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors * Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc. * Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */

View File

@@ -1,7 +1,7 @@
/*! /*!
* Bootstrap Reboot v4.2.1 (https://getbootstrap.com/) * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors * Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc. * Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/ */

View File

@@ -1,7 +1,7 @@
/*! /*!
* Bootstrap v4.2.1 (https://getbootstrap.com/) * Bootstrap v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors * Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc. * Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/ */

View File

@@ -7,5 +7,11 @@
color: color-yiq($bg); color: color-yiq($bg);
background-color: darken($bg, 10%); background-color: darken($bg, 10%);
} }
&:focus,
&.focus {
outline: 0;
box-shadow: 0 0 0 $badge-focus-width rgba($bg, .5);
}
} }
} }

View File

@@ -1,9 +1,13 @@
// stylelint-disable property-blacklist
// Single side border-radius // Single side border-radius
@mixin border-radius($radius: $border-radius) { @mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
@if $enable-rounded { @if $enable-rounded {
border-radius: $radius; border-radius: $radius;
} }
@else if $fallback-border-radius != false {
border-radius: $fallback-border-radius;
}
} }
@mixin border-top-radius($radius) { @mixin border-top-radius($radius) {
@@ -33,3 +37,27 @@
border-bottom-left-radius: $radius; border-bottom-left-radius: $radius;
} }
} }
@mixin border-top-left-radius($radius) {
@if $enable-rounded {
border-top-left-radius: $radius;
}
}
@mixin border-top-right-radius($radius) {
@if $enable-rounded {
border-top-right-radius: $radius;
}
}
@mixin border-bottom-right-radius($radius) {
@if $enable-rounded {
border-bottom-right-radius: $radius;
}
}
@mixin border-bottom-left-radius($radius) {
@if $enable-rounded {
border-bottom-left-radius: $radius;
}
}

View File

@@ -1,5 +1,20 @@
@mixin box-shadow($shadow...) { @mixin box-shadow($shadow...) {
@if $enable-shadows { @if $enable-shadows {
box-shadow: $shadow; $result: ();
@if (length($shadow) == 1) {
// We can pass `@include box-shadow(none);`
$result: $shadow;
} @else {
// Filter to avoid invalid properties for example `box-shadow: none, 1px 1px black;`
@for $i from 1 through length($shadow) {
@if nth($shadow, $i) != "none" {
$result: append($result, nth($shadow, $i), "comma");
}
}
}
@if (length($result) > 0) {
box-shadow: $result;
}
} }
} }

View File

@@ -49,7 +49,7 @@
&:focus { &:focus {
// Avoid using mixin so we can pass custom focus shadow properly // Avoid using mixin so we can pass custom focus shadow properly
@if $enable-shadows { @if $enable-shadows and $btn-active-box-shadow != none {
box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5); box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
} @else { } @else {
box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5); box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
@@ -100,12 +100,8 @@
// Button sizes // Button sizes
@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) { @mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
padding: $padding-y $padding-x; padding: $padding-y $padding-x;
font-size: $font-size; @include font-size($font-size);
line-height: $line-height; line-height: $line-height;
// Manually declare to provide an override to the browser default // Manually declare to provide an override to the browser default
@if $enable-rounded { @include border-radius($border-radius, 0);
border-radius: $border-radius;
} @else {
border-radius: 0;
}
} }

View File

@@ -29,8 +29,8 @@
@if $enable-caret { @if $enable-caret {
&::after { &::after {
display: inline-block; display: inline-block;
margin-left: $caret-width * .85; margin-left: $caret-spacing;
vertical-align: $caret-width * .85; vertical-align: $caret-vertical-align;
content: ""; content: "";
@if $direction == down { @if $direction == down {
@include caret-down; @include caret-down;
@@ -48,8 +48,8 @@
&::before { &::before {
display: inline-block; display: inline-block;
margin-right: $caret-width * .85; margin-right: $caret-spacing;
vertical-align: $caret-width * .85; vertical-align: $caret-vertical-align;
content: ""; content: "";
@include caret-left; @include caret-left;
} }

View File

@@ -0,0 +1,10 @@
// Deprecate mixin
//
// This mixin can be used to deprecate mixins or functions.
// `$enable-deprecation-messages` is a global variable, `$ignore-warning` is a variable that can be passed to
// some deprecated mixins to suppress the warning (for example if the mixin is still be used in the current version of Bootstrap)
@mixin deprecate($name, $deprecate-version, $remove-version, $ignore-warning: false) {
@if ($enable-deprecation-messages != false and $ignore-warning != true) {
@warn "#{$name} has been deprecated as of #{$deprecate-version}. It will be removed entirely in #{$remove-version}.";
}
}

View File

@@ -2,10 +2,13 @@
@mixin float-left { @mixin float-left {
float: left !important; float: left !important;
@include deprecate("The `float-left` mixin", "v4.3.0", "v5");
} }
@mixin float-right { @mixin float-right {
float: right !important; float: right !important;
@include deprecate("The `float-right` mixin", "v4.3.0", "v5");
} }
@mixin float-none { @mixin float-none {
float: none !important; float: none !important;
@include deprecate("The `float-none` mixin", "v4.3.0", "v5");
} }

View File

@@ -26,12 +26,12 @@
} }
@mixin form-validation-state($state, $color) { @mixin form-validation-state($state, $color, $icon) {
.#{$state}-feedback { .#{$state}-feedback {
display: none; display: none;
width: 100%; width: 100%;
margin-top: $form-feedback-margin-top; margin-top: $form-feedback-margin-top;
font-size: $form-feedback-font-size; @include font-size($form-feedback-font-size);
color: $color; color: $color;
} }
@@ -43,7 +43,7 @@
max-width: 100%; // Contain to parent when possible max-width: 100%; // Contain to parent when possible
padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x; padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
margin-top: .1rem; margin-top: .1rem;
font-size: $form-feedback-tooltip-font-size; @include font-size($form-feedback-tooltip-font-size);
line-height: $form-feedback-tooltip-line-height; line-height: $form-feedback-tooltip-line-height;
color: color-yiq($color); color: color-yiq($color);
background-color: rgba($color, $form-feedback-tooltip-opacity); background-color: rgba($color, $form-feedback-tooltip-opacity);
@@ -57,15 +57,10 @@
@if $enable-validation-icons { @if $enable-validation-icons {
padding-right: $input-height-inner; padding-right: $input-height-inner;
background-image: $icon;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center right calc(#{$input-height-inner} / 4); background-position: center right $input-height-inner-quarter;
background-size: calc(#{$input-height-inner} / 2) calc(#{$input-height-inner} / 2); background-size: $input-height-inner-half $input-height-inner-half;
@if $state == "valid" {
background-image: $form-feedback-icon-valid;
} @else {
background-image: $form-feedback-icon-invalid;
}
} }
&:focus { &:focus {
@@ -86,7 +81,7 @@
&.is-#{$state} { &.is-#{$state} {
@if $enable-validation-icons { @if $enable-validation-icons {
padding-right: $input-height-inner; padding-right: $input-height-inner;
background-position: top calc(#{$input-height-inner} / 4) right calc(#{$input-height-inner} / 4); background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
} }
} }
} }
@@ -97,9 +92,8 @@
border-color: $color; border-color: $color;
@if $enable-validation-icons { @if $enable-validation-icons {
$form-feedback-icon: if($state == "valid", $form-feedback-icon-valid, $form-feedback-icon-invalid);
padding-right: $custom-select-feedback-icon-padding-right; padding-right: $custom-select-feedback-icon-padding-right;
background: $custom-select-background, $form-feedback-icon no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size; background: $custom-select-background, $icon $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;
} }
&:focus { &:focus {

View File

@@ -20,7 +20,6 @@
// //
// Short retina mixin for setting background-image and -size. // Short retina mixin for setting background-image and -size.
// stylelint-disable indentation, media-query-list-comma-newline-after
@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) { @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
background-image: url($file-1x); background-image: url($file-1x);
@@ -29,8 +28,9 @@
// There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard. // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
// Compatibility info: https://caniuse.com/#feat=css-media-resolution // Compatibility info: https://caniuse.com/#feat=css-media-resolution
@media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
only screen and (min-resolution: 2dppx) { // Standardized only screen and (min-resolution: 2dppx) { // Standardized
background-image: url($file-2x); background-image: url($file-2x);
background-size: $width-1x $height-1x; background-size: $width-1x $height-1x;
} }
@include deprecate("`img-retina()`", "v4.3.0", "v5");
} }

View File

@@ -3,7 +3,7 @@
@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) { @mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
.page-link { .page-link {
padding: $padding-y $padding-x; padding: $padding-y $padding-x;
font-size: $font-size; @include font-size($font-size);
line-height: $line-height; line-height: $line-height;
} }

View File

@@ -5,7 +5,7 @@
font-weight: $font-weight-normal; font-weight: $font-weight-normal;
line-height: $line-height-base; line-height: $line-height-base;
text-align: left; // Fallback for where `start` is not supported text-align: left; // Fallback for where `start` is not supported
text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties text-align: start;
text-decoration: none; text-decoration: none;
text-shadow: none; text-shadow: none;
text-transform: none; text-transform: none;

View File

@@ -3,4 +3,5 @@
@mixin size($width, $height: $width) { @mixin size($width, $height: $width) {
width: $width; width: $width;
height: $height; height: $height;
@include deprecate("`size()`", "v4.3.0", "v5");
} }

View File

@@ -6,9 +6,11 @@
#{$parent} { #{$parent} {
color: $color !important; color: $color !important;
} }
a#{$parent} { @if $emphasized-link-hover-darken-percentage != 0 {
@include hover-focus { a#{$parent} {
color: darken($color, $emphasized-link-hover-darken-percentage) !important; @include hover-focus {
color: darken($color, $emphasized-link-hover-darken-percentage) !important;
}
} }
} }
} }

View File

@@ -7,7 +7,5 @@
background-color: transparent; background-color: transparent;
border: 0; border: 0;
@if ($ignore-warning != true) { @include deprecate("`text-hide()`", "v4.1.0", "v5", $ignore-warning);
@warn "The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5.";
}
} }

View File

@@ -9,7 +9,7 @@
} }
@if $enable-prefers-reduced-motion-media-query { @if $enable-prefers-reduced-motion-media-query {
@media screen and (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
transition: none; transition: none;
} }
} }

View File

@@ -4,4 +4,5 @@
@mixin invisible($visibility) { @mixin invisible($visibility) {
visibility: $visibility !important; visibility: $visibility !important;
@include deprecate("`invisible()`", "v4.3.0", "v5");
} }

View File

@@ -1,4 +1,4 @@
// stylelint-disable declaration-no-important // stylelint-disable property-blacklist, declaration-no-important
// //
// Border // Border
@@ -30,26 +30,38 @@
// Border-radius // Border-radius
// //
.rounded-sm {
border-radius: $border-radius-sm !important;
}
.rounded { .rounded {
border-radius: $border-radius !important; border-radius: $border-radius !important;
} }
.rounded-top { .rounded-top {
border-top-left-radius: $border-radius !important; border-top-left-radius: $border-radius !important;
border-top-right-radius: $border-radius !important; border-top-right-radius: $border-radius !important;
} }
.rounded-right { .rounded-right {
border-top-right-radius: $border-radius !important; border-top-right-radius: $border-radius !important;
border-bottom-right-radius: $border-radius !important; border-bottom-right-radius: $border-radius !important;
} }
.rounded-bottom { .rounded-bottom {
border-bottom-right-radius: $border-radius !important; border-bottom-right-radius: $border-radius !important;
border-bottom-left-radius: $border-radius !important; border-bottom-left-radius: $border-radius !important;
} }
.rounded-left { .rounded-left {
border-top-left-radius: $border-radius !important; border-top-left-radius: $border-radius !important;
border-bottom-left-radius: $border-radius !important; border-bottom-left-radius: $border-radius !important;
} }
.rounded-lg {
border-radius: $border-radius-lg !important;
}
.rounded-circle { .rounded-circle {
border-radius: 50% !important; border-radius: 50% !important;
} }

View File

@@ -8,15 +8,9 @@
@include media-breakpoint-up($breakpoint) { @include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints); $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
.d#{$infix}-none { display: none !important; } @each $value in $displays {
.d#{$infix}-inline { display: inline !important; } .d#{$infix}-#{$value} { display: $value !important; }
.d#{$infix}-inline-block { display: inline-block !important; } }
.d#{$infix}-block { display: block !important; }
.d#{$infix}-table { display: table !important; }
.d#{$infix}-table-row { display: table-row !important; }
.d#{$infix}-table-cell { display: table-cell !important; }
.d#{$infix}-flex { display: flex !important; }
.d#{$infix}-inline-flex { display: inline-flex !important; }
} }
} }
@@ -26,13 +20,7 @@
// //
@media print { @media print {
.d-print-none { display: none !important; } @each $value in $displays {
.d-print-inline { display: inline !important; } .d-print-#{$value} { display: $value !important; }
.d-print-inline-block { display: inline-block !important; } }
.d-print-block { display: block !important; }
.d-print-table { display: table !important; }
.d-print-table-row { display: table-row !important; }
.d-print-table-cell { display: table-cell !important; }
.d-print-flex { display: flex !important; }
.d-print-inline-flex { display: inline-flex !important; }
} }

View File

@@ -1,9 +1,11 @@
// stylelint-disable declaration-no-important
@each $breakpoint in map-keys($grid-breakpoints) { @each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) { @include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints); $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
.float#{$infix}-left { @include float-left; } .float#{$infix}-left { float: left !important; }
.float#{$infix}-right { @include float-right; } .float#{$infix}-right { float: right !important; }
.float#{$infix}-none { @include float-none; } .float#{$infix}-none { float: none !important; }
} }
} }

View File

@@ -0,0 +1,19 @@
//
// Stretched link
//
.stretched-link {
&::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
// Just in case `pointer-events: none` is set on a parent
pointer-events: auto;
content: "";
// IE10 bugfix, see https://stackoverflow.com/questions/16947967/ie10-hover-pseudo-class-doesnt-work-without-background-color
background-color: rgba(0, 0, 0, 0);
}
}

View File

@@ -4,7 +4,7 @@
// Text // Text
// //
.text-monospace { font-family: $font-family-monospace; } .text-monospace { font-family: $font-family-monospace !important; }
// Alignment // Alignment
@@ -62,6 +62,11 @@
.text-decoration-none { text-decoration: none !important; } .text-decoration-none { text-decoration: none !important; }
.text-break {
word-break: break-word !important; // IE & < Edge 18
overflow-wrap: break-word !important;
}
// Reset // Reset
.text-reset { color: inherit !important; } .text-reset { color: inherit !important; }

View File

@@ -1,11 +1,13 @@
// stylelint-disable declaration-no-important
// //
// Visibility utilities // Visibility utilities
// //
.visible { .visible {
@include invisible(visible); visibility: visible !important;
} }
.invisible { .invisible {
@include invisible(hidden); visibility: hidden !important;
} }

204
vendor/bootstrap/scss/vendor/_rfs.scss vendored Normal file
View File

@@ -0,0 +1,204 @@
// stylelint-disable property-blacklist, scss/dollar-variable-default
// SCSS RFS mixin
//
// Automated font-resizing
//
// See https://github.com/twbs/rfs
// Configuration
// Base font size
$rfs-base-font-size: 1.25rem !default;
$rfs-font-size-unit: rem !default;
// Breakpoint at where font-size starts decreasing if screen width is smaller
$rfs-breakpoint: 1200px !default;
$rfs-breakpoint-unit: px !default;
// Resize font-size based on screen height and width
$rfs-two-dimensional: false !default;
// Factor of decrease
$rfs-factor: 10 !default;
@if type-of($rfs-factor) != "number" or $rfs-factor <= 1 {
@error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";
}
// Generate enable or disable classes. Possibilities: false, "enable" or "disable"
$rfs-class: false !default;
// 1 rem = $rfs-rem-value px
$rfs-rem-value: 16 !default;
// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
$rfs-safari-iframe-resize-bug-fix: false !default;
// Disable RFS by setting $enable-responsive-font-sizes to false
$enable-responsive-font-sizes: true !default;
// Cache $rfs-base-font-size unit
$rfs-base-font-size-unit: unit($rfs-base-font-size);
// Remove px-unit from $rfs-base-font-size for calculations
@if $rfs-base-font-size-unit == "px" {
$rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);
}
@else if $rfs-base-font-size-unit == "rem" {
$rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);
}
// Cache $rfs-breakpoint unit to prevent multiple calls
$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
// Remove unit from $rfs-breakpoint for calculations
@if $rfs-breakpoint-unit-cache == "px" {
$rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);
}
@else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" {
$rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);
}
// Responsive font-size mixin
@mixin rfs($fs, $important: false) {
// Cache $fs unit
$fs-unit: if(type-of($fs) == "number", unit($fs), false);
// Add !important suffix if needed
$rfs-suffix: if($important, " !important", "");
// If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
@if not $fs-unit or $fs-unit != "" and $fs-unit != "px" and $fs-unit != "rem" or $fs == 0 {
font-size: #{$fs}#{$rfs-suffix};
}
@else {
// Variables for storing static and fluid rescaling
$rfs-static: null;
$rfs-fluid: null;
// Remove px-unit from $fs for calculations
@if $fs-unit == "px" {
$fs: $fs / ($fs * 0 + 1);
}
@else if $fs-unit == "rem" {
$fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);
}
// Set default font-size
@if $rfs-font-size-unit == rem {
$rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};
}
@else if $rfs-font-size-unit == px {
$rfs-static: #{$fs}px#{$rfs-suffix};
}
@else {
@error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
}
// Only add media query if font-size is bigger as the minimum font-size
// If $rfs-factor == 1, no rescaling will take place
@if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {
$min-width: null;
$variable-unit: null;
// Calculate minimum font-size for given font-size
$fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;
// Calculate difference between given font-size and minimum font-size for given font-size
$fs-diff: $fs - $fs-min;
// Base font-size formatting
// No need to check if the unit is valid, because we did that before
$min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);
// If two-dimensional, use smallest of screen width and height
$variable-unit: if($rfs-two-dimensional, vmin, vw);
// Calculate the variable width between 0 and $rfs-breakpoint
$variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};
// Set the calculated font-size.
$rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};
}
// Rendering
@if $rfs-fluid == null {
// Only render static font-size if no fluid font-size is available
font-size: $rfs-static;
}
@else {
$mq-value: null;
// RFS breakpoint formatting
@if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {
$mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};
}
@else if $rfs-breakpoint-unit == px {
$mq-value: #{$rfs-breakpoint}px;
}
@else {
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
}
@if $rfs-class == "disable" {
// Adding an extra class increases specificity,
// which prevents the media query to override the font size
&,
.disable-responsive-font-size &,
&.disable-responsive-font-size {
font-size: $rfs-static;
}
}
@else {
font-size: $rfs-static;
}
@if $rfs-two-dimensional {
@media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
@if $rfs-class == "enable" {
.enable-responsive-font-size &,
&.enable-responsive-font-size {
font-size: $rfs-fluid;
}
}
@else {
font-size: $rfs-fluid;
}
@if $rfs-safari-iframe-resize-bug-fix {
// stylelint-disable-next-line length-zero-no-unit
min-width: 0vw;
}
}
}
@else {
@media (max-width: #{$mq-value}) {
@if $rfs-class == "enable" {
.enable-responsive-font-size &,
&.enable-responsive-font-size {
font-size: $rfs-fluid;
}
}
@else {
font-size: $rfs-fluid;
}
@if $rfs-safari-iframe-resize-bug-fix {
// stylelint-disable-next-line length-zero-no-unit
min-width: 0vw;
}
}
}
}
}
}
// The font-size & responsive-font-size mixin uses RFS to rescale font sizes
@mixin font-size($fs, $important: false) {
@include rfs($fs, $important);
}
@mixin responsive-font-size($fs, $important: false) {
@include rfs($fs, $important);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

22840
vendor/chart.js/Chart.js vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,38 +0,0 @@
# @fortawesome/fontawesome-free - The Official Font Awesome 5 NPM package
> "I came here to chew bubblegum and install Font Awesome 5 - and I'm all out of bubblegum"
[![npm](https://img.shields.io/npm/v/@fortawesome/fontawesome-free.svg?style=flat-square)](https://www.npmjs.com/package/@fortawesome/fontawesome-free)
## Installation
```
$ npm i --save @fortawesome/fontawesome-free
```
Or
```
$ yarn add @fortawesome/fontawesome-free
```
## What's included?
**This package includes all the same files available through our Free and Pro CDN.**
* /js - All JavaScript files associated with Font Awesome 5 SVG with JS
* /css - All CSS using the classic Web Fonts with CSS implementation
* /sprites - SVG icons packaged in a convenient sprite
* /scss, /less - CSS Pre-processor files for Web Fonts with CSS
* /webfonts - Accompanying files for Web Fonts with CSS
* /svg - Individual icon files in SVG format
## Documentation
Get started [here](https://fontawesome.com/get-started). Continue your journey [here](https://fontawesome.com/how-to-use).
Or go straight to the [API documentation](https://fontawesome.com/how-to-use/with-the-api).
## Issues and support
Start with [GitHub issues](https://github.com/FortAwesome/Font-Awesome/issues) and ping us on [Twitter](https://twitter.com/fontawesome) if you need to.

View File

@@ -1,5 +1,5 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
.fa, .fa,
@@ -148,7 +148,7 @@
-webkit-transform: scale(1, -1); -webkit-transform: scale(1, -1);
transform: scale(1, -1); } transform: scale(1, -1); }
.fa-flip-horizontal.fa-flip-vertical { .fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1); -webkit-transform: scale(-1, -1);
transform: scale(-1, -1); } transform: scale(-1, -1); }
@@ -157,7 +157,8 @@
:root .fa-rotate-180, :root .fa-rotate-180,
:root .fa-rotate-270, :root .fa-rotate-270,
:root .fa-flip-horizontal, :root .fa-flip-horizontal,
:root .fa-flip-vertical { :root .fa-flip-vertical,
:root .fa-flip-both {
-webkit-filter: none; -webkit-filter: none;
filter: none; } filter: none; }
@@ -226,6 +227,9 @@ readers do not read off random characters that represent icons */
.fa-air-freshener:before { .fa-air-freshener:before {
content: "\f5d0"; } content: "\f5d0"; }
.fa-airbnb:before {
content: "\f834"; }
.fa-algolia:before { .fa-algolia:before {
content: "\f36c"; } content: "\f36c"; }
@@ -433,6 +437,9 @@ readers do not read off random characters that represent icons */
.fa-backward:before { .fa-backward:before {
content: "\f04a"; } content: "\f04a"; }
.fa-bacon:before {
content: "\f7e5"; }
.fa-balance-scale:before { .fa-balance-scale:before {
content: "\f24e"; } content: "\f24e"; }
@@ -475,6 +482,9 @@ readers do not read off random characters that represent icons */
.fa-battery-three-quarters:before { .fa-battery-three-quarters:before {
content: "\f241"; } content: "\f241"; }
.fa-battle-net:before {
content: "\f835"; }
.fa-bed:before { .fa-bed:before {
content: "\f236"; } content: "\f236"; }
@@ -574,6 +584,9 @@ readers do not read off random characters that represent icons */
.fa-book-dead:before { .fa-book-dead:before {
content: "\f6b7"; } content: "\f6b7"; }
.fa-book-medical:before {
content: "\f7e6"; }
.fa-book-open:before { .fa-book-open:before {
content: "\f518"; } content: "\f518"; }
@@ -583,6 +596,9 @@ readers do not read off random characters that represent icons */
.fa-bookmark:before { .fa-bookmark:before {
content: "\f02e"; } content: "\f02e"; }
.fa-bootstrap:before {
content: "\f836"; }
.fa-bowling-ball:before { .fa-bowling-ball:before {
content: "\f436"; } content: "\f436"; }
@@ -601,6 +617,9 @@ readers do not read off random characters that represent icons */
.fa-brain:before { .fa-brain:before {
content: "\f5dc"; } content: "\f5dc"; }
.fa-bread-slice:before {
content: "\f7ec"; }
.fa-briefcase:before { .fa-briefcase:before {
content: "\f0b1"; } content: "\f0b1"; }
@@ -619,6 +638,9 @@ readers do not read off random characters that represent icons */
.fa-btc:before { .fa-btc:before {
content: "\f15a"; } content: "\f15a"; }
.fa-buffer:before {
content: "\f837"; }
.fa-bug:before { .fa-bug:before {
content: "\f188"; } content: "\f188"; }
@@ -826,6 +848,9 @@ readers do not read off random characters that represent icons */
.fa-check-square:before { .fa-check-square:before {
content: "\f14a"; } content: "\f14a"; }
.fa-cheese:before {
content: "\f7ef"; }
.fa-chess:before { .fa-chess:before {
content: "\f439"; } content: "\f439"; }
@@ -880,6 +905,9 @@ readers do not read off random characters that represent icons */
.fa-chrome:before { .fa-chrome:before {
content: "\f268"; } content: "\f268"; }
.fa-chromecast:before {
content: "\f838"; }
.fa-church:before { .fa-church:before {
content: "\f51d"; } content: "\f51d"; }
@@ -892,6 +920,9 @@ readers do not read off random characters that represent icons */
.fa-city:before { .fa-city:before {
content: "\f64f"; } content: "\f64f"; }
.fa-clinic-medical:before {
content: "\f7f2"; }
.fa-clipboard:before { .fa-clipboard:before {
content: "\f328"; } content: "\f328"; }
@@ -991,6 +1022,9 @@ readers do not read off random characters that represent icons */
.fa-comment-dots:before { .fa-comment-dots:before {
content: "\f4ad"; } content: "\f4ad"; }
.fa-comment-medical:before {
content: "\f7f5"; }
.fa-comment-slash:before { .fa-comment-slash:before {
content: "\f4b3"; } content: "\f4b3"; }
@@ -1108,6 +1142,9 @@ readers do not read off random characters that represent icons */
.fa-crown:before { .fa-crown:before {
content: "\f521"; } content: "\f521"; }
.fa-crutch:before {
content: "\f7f7"; }
.fa-css3:before { .fa-css3:before {
content: "\f13c"; } content: "\f13c"; }
@@ -1324,6 +1361,9 @@ readers do not read off random characters that represent icons */
.fa-edit:before { .fa-edit:before {
content: "\f044"; } content: "\f044"; }
.fa-egg:before {
content: "\f7fb"; }
.fa-eject:before { .fa-eject:before {
content: "\f052"; } content: "\f052"; }
@@ -1381,6 +1421,9 @@ readers do not read off random characters that represent icons */
.fa-euro-sign:before { .fa-euro-sign:before {
content: "\f153"; } content: "\f153"; }
.fa-evernote:before {
content: "\f839"; }
.fa-exchange-alt:before { .fa-exchange-alt:before {
content: "\f362"; } content: "\f362"; }
@@ -1717,6 +1760,9 @@ readers do not read off random characters that represent icons */
.fa-git:before { .fa-git:before {
content: "\f1d3"; } content: "\f1d3"; }
.fa-git-alt:before {
content: "\f841"; }
.fa-git-square:before { .fa-git-square:before {
content: "\f1d2"; } content: "\f1d2"; }
@@ -1903,6 +1949,9 @@ readers do not read off random characters that represent icons */
.fa-hackerrank:before { .fa-hackerrank:before {
content: "\f5f7"; } content: "\f5f7"; }
.fa-hamburger:before {
content: "\f805"; }
.fa-hammer:before { .fa-hammer:before {
content: "\f6e3"; } content: "\f6e3"; }
@@ -1921,6 +1970,9 @@ readers do not read off random characters that represent icons */
.fa-hand-lizard:before { .fa-hand-lizard:before {
content: "\f258"; } content: "\f258"; }
.fa-hand-middle-finger:before {
content: "\f806"; }
.fa-hand-paper:before { .fa-hand-paper:before {
content: "\f256"; } content: "\f256"; }
@@ -1963,6 +2015,9 @@ readers do not read off random characters that represent icons */
.fa-hanukiah:before { .fa-hanukiah:before {
content: "\f6e6"; } content: "\f6e6"; }
.fa-hard-hat:before {
content: "\f807"; }
.fa-hashtag:before { .fa-hashtag:before {
content: "\f292"; } content: "\f292"; }
@@ -2050,6 +2105,9 @@ readers do not read off random characters that represent icons */
.fa-hot-tub:before { .fa-hot-tub:before {
content: "\f593"; } content: "\f593"; }
.fa-hotdog:before {
content: "\f80f"; }
.fa-hotel:before { .fa-hotel:before {
content: "\f594"; } content: "\f594"; }
@@ -2086,6 +2144,9 @@ readers do not read off random characters that represent icons */
.fa-i-cursor:before { .fa-i-cursor:before {
content: "\f246"; } content: "\f246"; }
.fa-ice-cream:before {
content: "\f810"; }
.fa-icicles:before { .fa-icicles:before {
content: "\f7ad"; } content: "\f7ad"; }
@@ -2146,6 +2207,9 @@ readers do not read off random characters that represent icons */
.fa-italic:before { .fa-italic:before {
content: "\f033"; } content: "\f033"; }
.fa-itch-io:before {
content: "\f83a"; }
.fa-itunes:before { .fa-itunes:before {
content: "\f3b4"; } content: "\f3b4"; }
@@ -2242,6 +2306,9 @@ readers do not read off random characters that represent icons */
.fa-laptop-code:before { .fa-laptop-code:before {
content: "\f5fc"; } content: "\f5fc"; }
.fa-laptop-medical:before {
content: "\f812"; }
.fa-laravel:before { .fa-laravel:before {
content: "\f3bd"; } content: "\f3bd"; }
@@ -2668,6 +2735,9 @@ readers do not read off random characters that represent icons */
.fa-pagelines:before { .fa-pagelines:before {
content: "\f18c"; } content: "\f18c"; }
.fa-pager:before {
content: "\f815"; }
.fa-paint-brush:before { .fa-paint-brush:before {
content: "\f1fc"; } content: "\f1fc"; }
@@ -2752,6 +2822,9 @@ readers do not read off random characters that represent icons */
.fa-people-carry:before { .fa-people-carry:before {
content: "\f4ce"; } content: "\f4ce"; }
.fa-pepper-hot:before {
content: "\f816"; }
.fa-percent:before { .fa-percent:before {
content: "\f295"; } content: "\f295"; }
@@ -2815,6 +2888,9 @@ readers do not read off random characters that represent icons */
.fa-pinterest-square:before { .fa-pinterest-square:before {
content: "\f0d3"; } content: "\f0d3"; }
.fa-pizza-slice:before {
content: "\f818"; }
.fa-place-of-worship:before { .fa-place-of-worship:before {
content: "\f67f"; } content: "\f67f"; }
@@ -3094,6 +3170,9 @@ readers do not read off random characters that represent icons */
.fa-safari:before { .fa-safari:before {
content: "\f267"; } content: "\f267"; }
.fa-salesforce:before {
content: "\f83b"; }
.fa-sass:before { .fa-sass:before {
content: "\f41e"; } content: "\f41e"; }
@@ -3373,6 +3452,9 @@ readers do not read off random characters that represent icons */
.fa-speakap:before { .fa-speakap:before {
content: "\f3f3"; } content: "\f3f3"; }
.fa-speaker-deck:before {
content: "\f83c"; }
.fa-spider:before { .fa-spider:before {
content: "\f717"; } content: "\f717"; }
@@ -3406,6 +3488,9 @@ readers do not read off random characters that represent icons */
.fa-stack-overflow:before { .fa-stack-overflow:before {
content: "\f16c"; } content: "\f16c"; }
.fa-stackpath:before {
content: "\f842"; }
.fa-stamp:before { .fa-stamp:before {
content: "\f5bf"; } content: "\f5bf"; }
@@ -3538,6 +3623,9 @@ readers do not read off random characters that represent icons */
.fa-swimming-pool:before { .fa-swimming-pool:before {
content: "\f5c5"; } content: "\f5c5"; }
.fa-symfony:before {
content: "\f83d"; }
.fa-synagogue:before { .fa-synagogue:before {
content: "\f69b"; } content: "\f69b"; }
@@ -3745,6 +3833,12 @@ readers do not read off random characters that represent icons */
.fa-trash-alt:before { .fa-trash-alt:before {
content: "\f2ed"; } content: "\f2ed"; }
.fa-trash-restore:before {
content: "\f829"; }
.fa-trash-restore-alt:before {
content: "\f82a"; }
.fa-tree:before { .fa-tree:before {
content: "\f1bb"; } content: "\f1bb"; }
@@ -3901,6 +3995,9 @@ readers do not read off random characters that represent icons */
.fa-user-ninja:before { .fa-user-ninja:before {
content: "\f504"; } content: "\f504"; }
.fa-user-nurse:before {
content: "\f82f"; }
.fa-user-plus:before { .fa-user-plus:before {
content: "\f234"; } content: "\f234"; }
@@ -4036,6 +4133,12 @@ readers do not read off random characters that represent icons */
.fa-water:before { .fa-water:before {
content: "\f773"; } content: "\f773"; }
.fa-wave-square:before {
content: "\f83e"; }
.fa-waze:before {
content: "\f83f"; }
.fa-weebly:before { .fa-weebly:before {
content: "\f5cc"; } content: "\f5cc"; }
@@ -4147,6 +4250,9 @@ readers do not read off random characters that represent icons */
.fa-yahoo:before { .fa-yahoo:before {
content: "\f19e"; } content: "\f19e"; }
.fa-yammer:before {
content: "\f840"; }
.fa-yandex:before { .fa-yandex:before {
content: "\f413"; } content: "\f413"; }
@@ -4198,6 +4304,7 @@ readers do not read off random characters that represent icons */
font-family: 'Font Awesome 5 Brands'; font-family: 'Font Awesome 5 Brands';
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;
font-display: auto;
src: url("../webfonts/fa-brands-400.eot"); src: url("../webfonts/fa-brands-400.eot");
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
@@ -4207,6 +4314,7 @@ readers do not read off random characters that represent icons */
font-family: 'Font Awesome 5 Free'; font-family: 'Font Awesome 5 Free';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
font-display: auto;
src: url("../webfonts/fa-regular-400.eot"); src: url("../webfonts/fa-regular-400.eot");
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
@@ -4217,6 +4325,7 @@ readers do not read off random characters that represent icons */
font-family: 'Font Awesome 5 Free'; font-family: 'Font Awesome 5 Free';
font-style: normal; font-style: normal;
font-weight: 900; font-weight: 900;
font-display: auto;
src: url("../webfonts/fa-solid-900.eot"); src: url("../webfonts/fa-solid-900.eot");
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }

File diff suppressed because one or more lines are too long

View File

@@ -1,11 +1,12 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
@font-face { @font-face {
font-family: 'Font Awesome 5 Brands'; font-family: 'Font Awesome 5 Brands';
font-style: normal; font-style: normal;
font-weight: normal; font-weight: normal;
font-display: auto;
src: url("../webfonts/fa-brands-400.eot"); src: url("../webfonts/fa-brands-400.eot");
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }

View File

@@ -1,5 +1,5 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"} @font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}

View File

@@ -1,5 +1,5 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
.fa, .fa,
@@ -148,7 +148,7 @@
-webkit-transform: scale(1, -1); -webkit-transform: scale(1, -1);
transform: scale(1, -1); } transform: scale(1, -1); }
.fa-flip-horizontal.fa-flip-vertical { .fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1); -webkit-transform: scale(-1, -1);
transform: scale(-1, -1); } transform: scale(-1, -1); }
@@ -157,7 +157,8 @@
:root .fa-rotate-180, :root .fa-rotate-180,
:root .fa-rotate-270, :root .fa-rotate-270,
:root .fa-flip-horizontal, :root .fa-flip-horizontal,
:root .fa-flip-vertical { :root .fa-flip-vertical,
:root .fa-flip-both {
-webkit-filter: none; -webkit-filter: none;
filter: none; } filter: none; }
@@ -226,6 +227,9 @@ readers do not read off random characters that represent icons */
.fa-air-freshener:before { .fa-air-freshener:before {
content: "\f5d0"; } content: "\f5d0"; }
.fa-airbnb:before {
content: "\f834"; }
.fa-algolia:before { .fa-algolia:before {
content: "\f36c"; } content: "\f36c"; }
@@ -433,6 +437,9 @@ readers do not read off random characters that represent icons */
.fa-backward:before { .fa-backward:before {
content: "\f04a"; } content: "\f04a"; }
.fa-bacon:before {
content: "\f7e5"; }
.fa-balance-scale:before { .fa-balance-scale:before {
content: "\f24e"; } content: "\f24e"; }
@@ -475,6 +482,9 @@ readers do not read off random characters that represent icons */
.fa-battery-three-quarters:before { .fa-battery-three-quarters:before {
content: "\f241"; } content: "\f241"; }
.fa-battle-net:before {
content: "\f835"; }
.fa-bed:before { .fa-bed:before {
content: "\f236"; } content: "\f236"; }
@@ -574,6 +584,9 @@ readers do not read off random characters that represent icons */
.fa-book-dead:before { .fa-book-dead:before {
content: "\f6b7"; } content: "\f6b7"; }
.fa-book-medical:before {
content: "\f7e6"; }
.fa-book-open:before { .fa-book-open:before {
content: "\f518"; } content: "\f518"; }
@@ -583,6 +596,9 @@ readers do not read off random characters that represent icons */
.fa-bookmark:before { .fa-bookmark:before {
content: "\f02e"; } content: "\f02e"; }
.fa-bootstrap:before {
content: "\f836"; }
.fa-bowling-ball:before { .fa-bowling-ball:before {
content: "\f436"; } content: "\f436"; }
@@ -601,6 +617,9 @@ readers do not read off random characters that represent icons */
.fa-brain:before { .fa-brain:before {
content: "\f5dc"; } content: "\f5dc"; }
.fa-bread-slice:before {
content: "\f7ec"; }
.fa-briefcase:before { .fa-briefcase:before {
content: "\f0b1"; } content: "\f0b1"; }
@@ -619,6 +638,9 @@ readers do not read off random characters that represent icons */
.fa-btc:before { .fa-btc:before {
content: "\f15a"; } content: "\f15a"; }
.fa-buffer:before {
content: "\f837"; }
.fa-bug:before { .fa-bug:before {
content: "\f188"; } content: "\f188"; }
@@ -826,6 +848,9 @@ readers do not read off random characters that represent icons */
.fa-check-square:before { .fa-check-square:before {
content: "\f14a"; } content: "\f14a"; }
.fa-cheese:before {
content: "\f7ef"; }
.fa-chess:before { .fa-chess:before {
content: "\f439"; } content: "\f439"; }
@@ -880,6 +905,9 @@ readers do not read off random characters that represent icons */
.fa-chrome:before { .fa-chrome:before {
content: "\f268"; } content: "\f268"; }
.fa-chromecast:before {
content: "\f838"; }
.fa-church:before { .fa-church:before {
content: "\f51d"; } content: "\f51d"; }
@@ -892,6 +920,9 @@ readers do not read off random characters that represent icons */
.fa-city:before { .fa-city:before {
content: "\f64f"; } content: "\f64f"; }
.fa-clinic-medical:before {
content: "\f7f2"; }
.fa-clipboard:before { .fa-clipboard:before {
content: "\f328"; } content: "\f328"; }
@@ -991,6 +1022,9 @@ readers do not read off random characters that represent icons */
.fa-comment-dots:before { .fa-comment-dots:before {
content: "\f4ad"; } content: "\f4ad"; }
.fa-comment-medical:before {
content: "\f7f5"; }
.fa-comment-slash:before { .fa-comment-slash:before {
content: "\f4b3"; } content: "\f4b3"; }
@@ -1108,6 +1142,9 @@ readers do not read off random characters that represent icons */
.fa-crown:before { .fa-crown:before {
content: "\f521"; } content: "\f521"; }
.fa-crutch:before {
content: "\f7f7"; }
.fa-css3:before { .fa-css3:before {
content: "\f13c"; } content: "\f13c"; }
@@ -1324,6 +1361,9 @@ readers do not read off random characters that represent icons */
.fa-edit:before { .fa-edit:before {
content: "\f044"; } content: "\f044"; }
.fa-egg:before {
content: "\f7fb"; }
.fa-eject:before { .fa-eject:before {
content: "\f052"; } content: "\f052"; }
@@ -1381,6 +1421,9 @@ readers do not read off random characters that represent icons */
.fa-euro-sign:before { .fa-euro-sign:before {
content: "\f153"; } content: "\f153"; }
.fa-evernote:before {
content: "\f839"; }
.fa-exchange-alt:before { .fa-exchange-alt:before {
content: "\f362"; } content: "\f362"; }
@@ -1717,6 +1760,9 @@ readers do not read off random characters that represent icons */
.fa-git:before { .fa-git:before {
content: "\f1d3"; } content: "\f1d3"; }
.fa-git-alt:before {
content: "\f841"; }
.fa-git-square:before { .fa-git-square:before {
content: "\f1d2"; } content: "\f1d2"; }
@@ -1903,6 +1949,9 @@ readers do not read off random characters that represent icons */
.fa-hackerrank:before { .fa-hackerrank:before {
content: "\f5f7"; } content: "\f5f7"; }
.fa-hamburger:before {
content: "\f805"; }
.fa-hammer:before { .fa-hammer:before {
content: "\f6e3"; } content: "\f6e3"; }
@@ -1921,6 +1970,9 @@ readers do not read off random characters that represent icons */
.fa-hand-lizard:before { .fa-hand-lizard:before {
content: "\f258"; } content: "\f258"; }
.fa-hand-middle-finger:before {
content: "\f806"; }
.fa-hand-paper:before { .fa-hand-paper:before {
content: "\f256"; } content: "\f256"; }
@@ -1963,6 +2015,9 @@ readers do not read off random characters that represent icons */
.fa-hanukiah:before { .fa-hanukiah:before {
content: "\f6e6"; } content: "\f6e6"; }
.fa-hard-hat:before {
content: "\f807"; }
.fa-hashtag:before { .fa-hashtag:before {
content: "\f292"; } content: "\f292"; }
@@ -2050,6 +2105,9 @@ readers do not read off random characters that represent icons */
.fa-hot-tub:before { .fa-hot-tub:before {
content: "\f593"; } content: "\f593"; }
.fa-hotdog:before {
content: "\f80f"; }
.fa-hotel:before { .fa-hotel:before {
content: "\f594"; } content: "\f594"; }
@@ -2086,6 +2144,9 @@ readers do not read off random characters that represent icons */
.fa-i-cursor:before { .fa-i-cursor:before {
content: "\f246"; } content: "\f246"; }
.fa-ice-cream:before {
content: "\f810"; }
.fa-icicles:before { .fa-icicles:before {
content: "\f7ad"; } content: "\f7ad"; }
@@ -2146,6 +2207,9 @@ readers do not read off random characters that represent icons */
.fa-italic:before { .fa-italic:before {
content: "\f033"; } content: "\f033"; }
.fa-itch-io:before {
content: "\f83a"; }
.fa-itunes:before { .fa-itunes:before {
content: "\f3b4"; } content: "\f3b4"; }
@@ -2242,6 +2306,9 @@ readers do not read off random characters that represent icons */
.fa-laptop-code:before { .fa-laptop-code:before {
content: "\f5fc"; } content: "\f5fc"; }
.fa-laptop-medical:before {
content: "\f812"; }
.fa-laravel:before { .fa-laravel:before {
content: "\f3bd"; } content: "\f3bd"; }
@@ -2668,6 +2735,9 @@ readers do not read off random characters that represent icons */
.fa-pagelines:before { .fa-pagelines:before {
content: "\f18c"; } content: "\f18c"; }
.fa-pager:before {
content: "\f815"; }
.fa-paint-brush:before { .fa-paint-brush:before {
content: "\f1fc"; } content: "\f1fc"; }
@@ -2752,6 +2822,9 @@ readers do not read off random characters that represent icons */
.fa-people-carry:before { .fa-people-carry:before {
content: "\f4ce"; } content: "\f4ce"; }
.fa-pepper-hot:before {
content: "\f816"; }
.fa-percent:before { .fa-percent:before {
content: "\f295"; } content: "\f295"; }
@@ -2815,6 +2888,9 @@ readers do not read off random characters that represent icons */
.fa-pinterest-square:before { .fa-pinterest-square:before {
content: "\f0d3"; } content: "\f0d3"; }
.fa-pizza-slice:before {
content: "\f818"; }
.fa-place-of-worship:before { .fa-place-of-worship:before {
content: "\f67f"; } content: "\f67f"; }
@@ -3094,6 +3170,9 @@ readers do not read off random characters that represent icons */
.fa-safari:before { .fa-safari:before {
content: "\f267"; } content: "\f267"; }
.fa-salesforce:before {
content: "\f83b"; }
.fa-sass:before { .fa-sass:before {
content: "\f41e"; } content: "\f41e"; }
@@ -3373,6 +3452,9 @@ readers do not read off random characters that represent icons */
.fa-speakap:before { .fa-speakap:before {
content: "\f3f3"; } content: "\f3f3"; }
.fa-speaker-deck:before {
content: "\f83c"; }
.fa-spider:before { .fa-spider:before {
content: "\f717"; } content: "\f717"; }
@@ -3406,6 +3488,9 @@ readers do not read off random characters that represent icons */
.fa-stack-overflow:before { .fa-stack-overflow:before {
content: "\f16c"; } content: "\f16c"; }
.fa-stackpath:before {
content: "\f842"; }
.fa-stamp:before { .fa-stamp:before {
content: "\f5bf"; } content: "\f5bf"; }
@@ -3538,6 +3623,9 @@ readers do not read off random characters that represent icons */
.fa-swimming-pool:before { .fa-swimming-pool:before {
content: "\f5c5"; } content: "\f5c5"; }
.fa-symfony:before {
content: "\f83d"; }
.fa-synagogue:before { .fa-synagogue:before {
content: "\f69b"; } content: "\f69b"; }
@@ -3745,6 +3833,12 @@ readers do not read off random characters that represent icons */
.fa-trash-alt:before { .fa-trash-alt:before {
content: "\f2ed"; } content: "\f2ed"; }
.fa-trash-restore:before {
content: "\f829"; }
.fa-trash-restore-alt:before {
content: "\f82a"; }
.fa-tree:before { .fa-tree:before {
content: "\f1bb"; } content: "\f1bb"; }
@@ -3901,6 +3995,9 @@ readers do not read off random characters that represent icons */
.fa-user-ninja:before { .fa-user-ninja:before {
content: "\f504"; } content: "\f504"; }
.fa-user-nurse:before {
content: "\f82f"; }
.fa-user-plus:before { .fa-user-plus:before {
content: "\f234"; } content: "\f234"; }
@@ -4036,6 +4133,12 @@ readers do not read off random characters that represent icons */
.fa-water:before { .fa-water:before {
content: "\f773"; } content: "\f773"; }
.fa-wave-square:before {
content: "\f83e"; }
.fa-waze:before {
content: "\f83f"; }
.fa-weebly:before { .fa-weebly:before {
content: "\f5cc"; } content: "\f5cc"; }
@@ -4147,6 +4250,9 @@ readers do not read off random characters that represent icons */
.fa-yahoo:before { .fa-yahoo:before {
content: "\f19e"; } content: "\f19e"; }
.fa-yammer:before {
content: "\f840"; }
.fa-yandex:before { .fa-yandex:before {
content: "\f413"; } content: "\f413"; }

File diff suppressed because one or more lines are too long

View File

@@ -1,11 +1,12 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
@font-face { @font-face {
font-family: 'Font Awesome 5 Free'; font-family: 'Font Awesome 5 Free';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
font-display: auto;
src: url("../webfonts/fa-regular-400.eot"); src: url("../webfonts/fa-regular-400.eot");
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }

View File

@@ -1,5 +1,5 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400} @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}

View File

@@ -1,11 +1,12 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
@font-face { @font-face {
font-family: 'Font Awesome 5 Free'; font-family: 'Font Awesome 5 Free';
font-style: normal; font-style: normal;
font-weight: 900; font-weight: 900;
font-display: auto;
src: url("../webfonts/fa-solid-900.eot"); src: url("../webfonts/fa-solid-900.eot");
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }

View File

@@ -1,5 +1,5 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900} @font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}

View File

@@ -1,5 +1,5 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
svg:not(:root).svg-inline--fa { svg:not(:root).svg-inline--fa {
@@ -287,7 +287,7 @@ svg:not(:root).svg-inline--fa {
-webkit-transform: scale(1, -1); -webkit-transform: scale(1, -1);
transform: scale(1, -1); } transform: scale(1, -1); }
.fa-flip-horizontal.fa-flip-vertical { .fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1); -webkit-transform: scale(-1, -1);
transform: scale(-1, -1); } transform: scale(-1, -1); }
@@ -296,7 +296,8 @@ svg:not(:root).svg-inline--fa {
:root .fa-rotate-180, :root .fa-rotate-180,
:root .fa-rotate-270, :root .fa-rotate-270,
:root .fa-flip-horizontal, :root .fa-flip-horizontal,
:root .fa-flip-vertical { :root .fa-flip-vertical,
:root .fa-flip-both {
-webkit-filter: none; -webkit-filter: none;
filter: none; } filter: none; }

View File

@@ -1,5 +1,5 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
.svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;transform:scale(.25);transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;transform:scale(.25);transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;transform:scale(.25);transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto} .svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;transform:scale(.25);transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;transform:scale(.25);transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;transform:scale(.25);transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;transform:scale(.25);transform-origin:top left}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}

View File

@@ -1,5 +1,5 @@
/*! /*!
* Font Awesome Free 5.6.3 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
.fa.fa-glass:before { .fa.fa-glass:before {

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

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

Some files were not shown because too many files have changed in this diff Show More