diff -Nru twitter-bootstrap4-4.2.1+dfsg2/build/build-plugins.js twitter-bootstrap4-4.3.1+dfsg2/build/build-plugins.js --- twitter-bootstrap4-4.2.1+dfsg2/build/build-plugins.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/build/build-plugins.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,7 +1,7 @@ /*! * Script to build our plugins to use them separately. - * Copyright 2018 The Bootstrap Authors - * Copyright 2018 Twitter, Inc. + * Copyright 2019 The Bootstrap Authors + * Copyright 2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ diff -Nru twitter-bootstrap4-4.2.1+dfsg2/build/change-version.js twitter-bootstrap4-4.3.1+dfsg2/build/change-version.js --- twitter-bootstrap4-4.2.1+dfsg2/build/change-version.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/build/change-version.js 2019-02-13 16:01:40.000000000 +0000 @@ -2,8 +2,8 @@ /*! * Script to update version number references in the project. - * Copyright 2017-2018 The Bootstrap Authors - * Copyright 2017-2018 Twitter, Inc. + * Copyright 2017-2019 The Bootstrap Authors + * Copyright 2017-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ diff -Nru twitter-bootstrap4-4.2.1+dfsg2/build/generate-sri.js twitter-bootstrap4-4.3.1+dfsg2/build/generate-sri.js --- twitter-bootstrap4-4.2.1+dfsg2/build/generate-sri.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/build/generate-sri.js 2019-02-13 16:01:40.000000000 +0000 @@ -5,8 +5,8 @@ * Remember to use the same vendor files as the CDN ones, * otherwise the hashes won't match! * - * Copyright 2017-2018 The Bootstrap Authors - * Copyright 2017-2018 Twitter, Inc. + * Copyright 2017-2019 The Bootstrap Authors + * Copyright 2017-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ @@ -36,14 +36,14 @@ configPropertyName: 'js_hash' }, { - file: `site/docs/${pkg.version_short}/assets/js/vendor/jquery-slim.min.js`, - configPropertyName: 'jquery_hash' - }, - { file: 'dist/js/bootstrap.bundle.min.js', configPropertyName: 'js_bundle_hash' }, { + file: `site/docs/${pkg.version_short}/assets/js/vendor/jquery-slim.min.js`, + configPropertyName: 'jquery_hash' + }, + { file: 'node_modules/popper.js/dist/umd/popper.min.js', configPropertyName: 'popper_hash' } diff -Nru twitter-bootstrap4-4.2.1+dfsg2/build/vnu-jar.js twitter-bootstrap4-4.3.1+dfsg2/build/vnu-jar.js --- twitter-bootstrap4-4.2.1+dfsg2/build/vnu-jar.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/build/vnu-jar.js 2019-02-13 16:01:40.000000000 +0000 @@ -2,8 +2,8 @@ /*! * Script to run vnu-jar if Java is available. - * Copyright 2017-2018 The Bootstrap Authors - * Copyright 2017-2018 Twitter, Inc. + * Copyright 2017-2019 The Bootstrap Authors + * Copyright 2017-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ diff -Nru twitter-bootstrap4-4.2.1+dfsg2/_config.yml twitter-bootstrap4-4.3.1+dfsg2/_config.yml --- twitter-bootstrap4-4.2.1+dfsg2/_config.yml 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/_config.yml 2019-02-13 16:01:40.000000000 +0000 @@ -17,7 +17,7 @@ url: "https://getbootstrap.com" encoding: UTF-8 exclude: - - docs/4.2/assets/scss/ + - docs/4.3/assets/scss/ plugins: - jekyll-redirect-from @@ -29,35 +29,36 @@ description: "The most popular HTML, CSS, and JS library in the world." twitter: getbootstrap authors: "Mark Otto, Jacob Thornton, and Bootstrap contributors" -social_image_path: /docs/4.2/assets/brand/bootstrap-social.png -social_logo_path: /docs/4.2/assets/brand/bootstrap-social-logo.png +social_image_path: /docs/4.3/assets/brand/bootstrap-social.png +social_logo_path: /docs/4.3/assets/brand/bootstrap-social-logo.png # Custom variables -current_version: 4.2.1 -current_ruby_version: 4.2.1 -docs_version: 4.2 +current_version: 4.3.1 +current_ruby_version: 4.3.1 +docs_version: 4.3 repo: "https://github.com/twbs/bootstrap" slack: "https://bootstrap-slack.herokuapp.com" +opencollective: "https://opencollective.com/bootstrap" blog: "https://blog.getbootstrap.com" expo: "https://expo.getbootstrap.com" themes: "https://themes.getbootstrap.com" download: - source: "https://github.com/twbs/bootstrap/archive/v4.2.1.zip" - dist: "https://github.com/twbs/bootstrap/releases/download/v4.2.1/bootstrap-4.2.1-dist.zip" + source: "https://github.com/twbs/bootstrap/archive/v4.3.1.zip" + dist: "https://github.com/twbs/bootstrap/releases/download/v4.3.1/bootstrap-4.3.1-dist.zip" cdn: # See https://www.srihash.org for info on how to generate the hashes - css: "https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" - css_hash: "sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" - js: "https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" - js_hash: "sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" - js_bundle: "https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.bundle.min.js" - js_bundle_hash: "sha384-zDnhMsjVZfS3hiP7oCBRmfjkQC4fzxVxFhBx8Hkz2aZX8gEvA/jsP3eXRCvzTofP" + css: "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" + css_hash: "sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" + js: "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" + js_hash: "sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" + js_bundle: "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js" + js_bundle_hash: "sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o" jquery: "https://code.jquery.com/jquery-3.3.1.slim.min.js" jquery_hash: "sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" - popper: "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" - popper_hash: "sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" + popper: "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" + popper_hash: "sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" toc: min_level: 2 diff -Nru twitter-bootstrap4-4.2.1+dfsg2/debian/changelog twitter-bootstrap4-4.3.1+dfsg2/debian/changelog --- twitter-bootstrap4-4.2.1+dfsg2/debian/changelog 2019-02-07 06:21:41.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/debian/changelog 2019-02-21 15:55:38.000000000 +0000 @@ -1,3 +1,20 @@ +twitter-bootstrap4 (4.3.1+dfsg2-1) unstable; urgency=medium + + [ Xavier Guimard ] + * Filter upstream .gitignore + * New upstream version 4.3.1+dfsg2. Fixes: CVE-2019-8331 + * Update d/copyright + * Update doc install + + [ Jonas Smedegaard ] + * Remove myself as uploader. + + [ Xavier Guimard ] + * Genarate all sources maps + * Change build-dep from node-popper.js to libjs-popper.js + + -- Xavier Guimard Thu, 21 Feb 2019 16:55:38 +0100 + twitter-bootstrap4 (4.2.1+dfsg2-2) unstable; urgency=medium * Add patch to avoid copyright year update during build diff -Nru twitter-bootstrap4-4.2.1+dfsg2/debian/control twitter-bootstrap4-4.3.1+dfsg2/debian/control --- twitter-bootstrap4-4.2.1+dfsg2/debian/control 2019-02-07 06:08:00.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/debian/control 2019-02-21 15:55:38.000000000 +0000 @@ -3,13 +3,12 @@ Priority: optional Maintainer: Debian Javascript Maintainers Uploaders: - Jonas Smedegaard , Xavier Guimard , Build-Depends: debhelper (>= 11), node-less, node-autoprefixer, - node-popper.js, + libjs-popper.js, node-postcss, node-rollup-plugin-buble, node-rollup-plugin-node-resolve, @@ -18,13 +17,13 @@ rollup, sassc Standards-Version: 4.3.0 -Multi-Arch: foreign Homepage: https://getbootstrap.com/ Vcs-Git: https://salsa.debian.org/js-team/twitter-bootstrap4.git Vcs-Browser: https://salsa.debian.org/js-team/twitter-bootstrap4 Package: libjs-bootstrap4 Architecture: all +Multi-Arch: foreign Depends: ${misc:Depends}, libjs-popper.js, diff -Nru twitter-bootstrap4-4.2.1+dfsg2/debian/copyright twitter-bootstrap4-4.3.1+dfsg2/debian/copyright --- twitter-bootstrap4-4.2.1+dfsg2/debian/copyright 2019-02-07 06:08:00.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/debian/copyright 2019-02-21 09:13:05.000000000 +0000 @@ -12,14 +12,14 @@ Files: * Copyright: - 2011-2018, Twitter, Inc - 2011-2018, Bootstrap Authors + 2011-2019, Twitter, Inc + 2011-2019, Bootstrap Authors License: Expat Files: site/docs/* Copyright: - 2011-2018, Twitter, Inc. - 2011-2018, Bootstrap Authors + 2011-2019, Twitter, Inc. + 2011-2019, Bootstrap Authors License: CC-BY-3.0 Files: scss/_custom-forms.scss diff -Nru twitter-bootstrap4-4.2.1+dfsg2/debian/copyright_hints twitter-bootstrap4-4.3.1+dfsg2/debian/copyright_hints --- twitter-bootstrap4-4.2.1+dfsg2/debian/copyright_hints 2019-02-07 06:08:00.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/debian/copyright_hints 2019-02-21 09:11:53.000000000 +0000 @@ -23,25 +23,12 @@ debian/install debian/libjs-bootstrap4.lintian-overrides debian/links + debian/postcss.js debian/rules debian/source/format + debian/tests/control debian/upstream debian/watch - dist/js/bootstrap.js.map - js/dist/alert.js.map - js/dist/button.js.map - js/dist/carousel.js.map - js/dist/collapse.js.map - js/dist/dropdown.js.map - js/dist/index.js - js/dist/index.js.map - js/dist/modal.js.map - js/dist/popover.js.map - js/dist/scrollspy.js.map - js/dist/tab.js.map - js/dist/toast.js.map - js/dist/tooltip.js.map - js/dist/util.js.map js/src/alert.js js/src/button.js js/src/carousel.js @@ -53,6 +40,7 @@ js/src/scrollspy.js js/src/tab.js js/src/toast.js + js/src/tools/sanitizer.js js/src/tooltip.js js/src/util.js js/tests/README.md @@ -135,6 +123,7 @@ scss/mixins/_buttons.scss scss/mixins/_caret.scss scss/mixins/_clearfix.scss + scss/mixins/_deprecate.scss scss/mixins/_float.scss scss/mixins/_forms.scss scss/mixins/_gradients.scss @@ -170,8 +159,10 @@ scss/utilities/_shadows.scss scss/utilities/_sizing.scss scss/utilities/_spacing.scss + scss/utilities/_stretched-link.scss scss/utilities/_text.scss scss/utilities/_visibility.scss + scss/vendor/_rfs.scss site/.eslintrc.json site/_data/breakpoints.yml site/_data/browser-bugs.yml @@ -204,6 +195,7 @@ site/_includes/icons/import.svg site/_includes/icons/lightning.svg site/_includes/icons/menu.svg + site/_includes/icons/opencollective.svg site/_includes/icons/placeholder.svg site/_includes/icons/slack.svg site/_includes/icons/twitter.svg @@ -216,194 +208,194 @@ site/_layouts/examples.html site/_layouts/home.html site/_layouts/simple.html - site/docs/4.2/about/brand.md - site/docs/4.2/about/license.md - site/docs/4.2/about/overview.md - site/docs/4.2/about/team.md - site/docs/4.2/about/translations.md - site/docs/4.2/assets/brand/bootstrap-outline.svg - site/docs/4.2/assets/brand/bootstrap-punchout.svg - site/docs/4.2/assets/brand/bootstrap-social-logo.png - site/docs/4.2/assets/brand/bootstrap-social.png - site/docs/4.2/assets/brand/bootstrap-solid.svg - site/docs/4.2/assets/img/bootstrap-themes.png - site/docs/4.2/assets/img/bootstrap-themes@2x.png - site/docs/4.2/assets/img/examples/album.png - site/docs/4.2/assets/img/examples/album@2x.png - site/docs/4.2/assets/img/examples/blog.png - site/docs/4.2/assets/img/examples/blog@2x.png - site/docs/4.2/assets/img/examples/carousel.png - site/docs/4.2/assets/img/examples/carousel@2x.png - site/docs/4.2/assets/img/examples/checkout.png - site/docs/4.2/assets/img/examples/checkout@2x.png - site/docs/4.2/assets/img/examples/cover.png - site/docs/4.2/assets/img/examples/cover@2x.png - site/docs/4.2/assets/img/examples/dashboard.png - site/docs/4.2/assets/img/examples/dashboard@2x.png - site/docs/4.2/assets/img/examples/floating-labels.png - site/docs/4.2/assets/img/examples/floating-labels@2x.png - site/docs/4.2/assets/img/examples/grid.png - site/docs/4.2/assets/img/examples/grid@2x.png - site/docs/4.2/assets/img/examples/jumbotron.png - site/docs/4.2/assets/img/examples/jumbotron@2x.png - site/docs/4.2/assets/img/examples/navbar-bottom.png - site/docs/4.2/assets/img/examples/navbar-bottom@2x.png - site/docs/4.2/assets/img/examples/navbar-fixed.png - site/docs/4.2/assets/img/examples/navbar-fixed@2x.png - site/docs/4.2/assets/img/examples/navbar-static.png - site/docs/4.2/assets/img/examples/navbar-static@2x.png - site/docs/4.2/assets/img/examples/navbars.png - site/docs/4.2/assets/img/examples/navbars@2x.png - site/docs/4.2/assets/img/examples/offcanvas.png - site/docs/4.2/assets/img/examples/offcanvas@2x.png - site/docs/4.2/assets/img/examples/pricing.png - site/docs/4.2/assets/img/examples/pricing@2x.png - site/docs/4.2/assets/img/examples/product.png - site/docs/4.2/assets/img/examples/product@2x.png - site/docs/4.2/assets/img/examples/sign-in.png - site/docs/4.2/assets/img/examples/sign-in@2x.png - site/docs/4.2/assets/img/examples/starter-template.png - site/docs/4.2/assets/img/examples/starter-template@2x.png - site/docs/4.2/assets/img/examples/sticky-footer-navbar.png - site/docs/4.2/assets/img/examples/sticky-footer-navbar@2x.png - site/docs/4.2/assets/img/examples/sticky-footer.png - site/docs/4.2/assets/img/examples/sticky-footer@2x.png - site/docs/4.2/assets/img/favicons/android-chrome-192x192.png - site/docs/4.2/assets/img/favicons/android-chrome-512x512.png - site/docs/4.2/assets/img/favicons/apple-touch-icon.png - site/docs/4.2/assets/img/favicons/browserconfig.xml - site/docs/4.2/assets/img/favicons/favicon-16x16.png - site/docs/4.2/assets/img/favicons/favicon-32x32.png - site/docs/4.2/assets/img/favicons/manifest.json - site/docs/4.2/assets/img/favicons/mstile-144x144.png - site/docs/4.2/assets/img/favicons/mstile-150x150.png - site/docs/4.2/assets/img/favicons/mstile-310x150.png - site/docs/4.2/assets/img/favicons/mstile-310x310.png - site/docs/4.2/assets/img/favicons/mstile-70x70.png - site/docs/4.2/assets/img/favicons/safari-pinned-tab.svg - site/docs/4.2/assets/js/src/ie-emulation-modes-warning.js - site/docs/4.2/assets/js/src/search.js - site/docs/4.2/assets/scss/_ads.scss - site/docs/4.2/assets/scss/_algolia.scss - site/docs/4.2/assets/scss/_anchor.scss - site/docs/4.2/assets/scss/_brand.scss - site/docs/4.2/assets/scss/_browser-bugs.scss - site/docs/4.2/assets/scss/_buttons.scss - site/docs/4.2/assets/scss/_callouts.scss - site/docs/4.2/assets/scss/_clipboard-js.scss - site/docs/4.2/assets/scss/_colors.scss - site/docs/4.2/assets/scss/_component-examples.scss - site/docs/4.2/assets/scss/_content.scss - site/docs/4.2/assets/scss/_footer.scss - site/docs/4.2/assets/scss/_masthead.scss - site/docs/4.2/assets/scss/_nav.scss - site/docs/4.2/assets/scss/_placeholder-img.scss - site/docs/4.2/assets/scss/_sidebar.scss - site/docs/4.2/assets/scss/_skippy.scss - site/docs/4.2/assets/scss/_syntax.scss - site/docs/4.2/assets/scss/_variables.scss - site/docs/4.2/browser-bugs.md - site/docs/4.2/components/alerts.md - site/docs/4.2/components/badge.md - site/docs/4.2/components/breadcrumb.md - site/docs/4.2/components/button-group.md - site/docs/4.2/components/buttons.md - site/docs/4.2/components/card.md - site/docs/4.2/components/carousel.md - site/docs/4.2/components/collapse.md - site/docs/4.2/components/dropdowns.md - site/docs/4.2/components/forms.md - site/docs/4.2/components/input-group.md - site/docs/4.2/components/jumbotron.md - site/docs/4.2/components/list-group.md - site/docs/4.2/components/media-object.md - site/docs/4.2/components/modal.md - site/docs/4.2/components/navbar.md - site/docs/4.2/components/navs.md - site/docs/4.2/components/pagination.md - site/docs/4.2/components/popovers.md - site/docs/4.2/components/progress.md - site/docs/4.2/components/scrollspy.md - site/docs/4.2/components/spinners.md - site/docs/4.2/components/toasts.md - site/docs/4.2/components/tooltips.md - site/docs/4.2/content/code.md - site/docs/4.2/content/figures.md - site/docs/4.2/content/images.md - site/docs/4.2/content/reboot.md - site/docs/4.2/content/tables.md - site/docs/4.2/content/typography.md - site/docs/4.2/examples/.stylelintrc - site/docs/4.2/examples/album/album.css - site/docs/4.2/examples/blog/blog.css - site/docs/4.2/examples/blog/index.html - site/docs/4.2/examples/carousel/carousel.css - site/docs/4.2/examples/checkout/form-validation.css - site/docs/4.2/examples/checkout/form-validation.js - site/docs/4.2/examples/cover/cover.css - site/docs/4.2/examples/cover/index.html - site/docs/4.2/examples/dashboard/dashboard.css - site/docs/4.2/examples/dashboard/dashboard.js - site/docs/4.2/examples/dashboard/index.html - site/docs/4.2/examples/floating-labels/floating-labels.css - site/docs/4.2/examples/grid/grid.css - site/docs/4.2/examples/grid/index.html - site/docs/4.2/examples/index.html - site/docs/4.2/examples/jumbotron/jumbotron.css - site/docs/4.2/examples/navbar-bottom/index.html - site/docs/4.2/examples/navbar-fixed/index.html - site/docs/4.2/examples/navbar-fixed/navbar-top-fixed.css - site/docs/4.2/examples/navbar-static/index.html - site/docs/4.2/examples/navbar-static/navbar-top.css - site/docs/4.2/examples/navbars/index.html - site/docs/4.2/examples/navbars/navbar.css - site/docs/4.2/examples/offcanvas/index.html - site/docs/4.2/examples/offcanvas/offcanvas.css - site/docs/4.2/examples/offcanvas/offcanvas.js - site/docs/4.2/examples/pricing/pricing.css - site/docs/4.2/examples/product/product.css - site/docs/4.2/examples/sign-in/signin.css - site/docs/4.2/examples/starter-template/index.html - site/docs/4.2/examples/starter-template/starter-template.css - site/docs/4.2/examples/sticky-footer-navbar/index.html - site/docs/4.2/examples/sticky-footer-navbar/sticky-footer-navbar.css - site/docs/4.2/examples/sticky-footer/index.html - site/docs/4.2/examples/sticky-footer/sticky-footer.css - site/docs/4.2/extend/approach.md - site/docs/4.2/extend/icons.md - site/docs/4.2/extend/index.md - site/docs/4.2/getting-started/accessibility.md - site/docs/4.2/getting-started/best-practices.md - site/docs/4.2/getting-started/browsers-devices.md - site/docs/4.2/getting-started/build-tools.md - site/docs/4.2/getting-started/contents.md - site/docs/4.2/getting-started/download.md - site/docs/4.2/getting-started/introduction.md - site/docs/4.2/getting-started/javascript.md - site/docs/4.2/getting-started/theming.md - site/docs/4.2/getting-started/webpack.md - site/docs/4.2/layout/grid.md - site/docs/4.2/layout/overview.md - site/docs/4.2/layout/utilities-for-layout.md - site/docs/4.2/migration.md - site/docs/4.2/utilities/borders.md - site/docs/4.2/utilities/clearfix.md - site/docs/4.2/utilities/close-icon.md - site/docs/4.2/utilities/colors.md - site/docs/4.2/utilities/display.md - site/docs/4.2/utilities/embed.md - site/docs/4.2/utilities/flex.md - site/docs/4.2/utilities/float.md - site/docs/4.2/utilities/image-replacement.md - site/docs/4.2/utilities/overflow.md - site/docs/4.2/utilities/position.md - site/docs/4.2/utilities/screenreaders.md - site/docs/4.2/utilities/shadows.md - site/docs/4.2/utilities/sizing.md - site/docs/4.2/utilities/spacing.md - site/docs/4.2/utilities/text.md - site/docs/4.2/utilities/vertical-align.md - site/docs/4.2/utilities/visibility.md + site/docs/4.3/about/brand.md + site/docs/4.3/about/license.md + site/docs/4.3/about/overview.md + site/docs/4.3/about/team.md + site/docs/4.3/about/translations.md + site/docs/4.3/assets/brand/bootstrap-outline.svg + site/docs/4.3/assets/brand/bootstrap-punchout.svg + site/docs/4.3/assets/brand/bootstrap-social-logo.png + site/docs/4.3/assets/brand/bootstrap-social.png + site/docs/4.3/assets/brand/bootstrap-solid.svg + site/docs/4.3/assets/img/bootstrap-themes.png + site/docs/4.3/assets/img/bootstrap-themes@2x.png + site/docs/4.3/assets/img/examples/album.png + site/docs/4.3/assets/img/examples/album@2x.png + site/docs/4.3/assets/img/examples/blog.png + site/docs/4.3/assets/img/examples/blog@2x.png + site/docs/4.3/assets/img/examples/carousel.png + site/docs/4.3/assets/img/examples/carousel@2x.png + site/docs/4.3/assets/img/examples/checkout.png + site/docs/4.3/assets/img/examples/checkout@2x.png + site/docs/4.3/assets/img/examples/cover.png + site/docs/4.3/assets/img/examples/cover@2x.png + site/docs/4.3/assets/img/examples/dashboard.png + site/docs/4.3/assets/img/examples/dashboard@2x.png + site/docs/4.3/assets/img/examples/floating-labels.png + site/docs/4.3/assets/img/examples/floating-labels@2x.png + site/docs/4.3/assets/img/examples/grid.png + site/docs/4.3/assets/img/examples/grid@2x.png + site/docs/4.3/assets/img/examples/jumbotron.png + site/docs/4.3/assets/img/examples/jumbotron@2x.png + site/docs/4.3/assets/img/examples/navbar-bottom.png + site/docs/4.3/assets/img/examples/navbar-bottom@2x.png + site/docs/4.3/assets/img/examples/navbar-fixed.png + site/docs/4.3/assets/img/examples/navbar-fixed@2x.png + site/docs/4.3/assets/img/examples/navbar-static.png + site/docs/4.3/assets/img/examples/navbar-static@2x.png + site/docs/4.3/assets/img/examples/navbars.png + site/docs/4.3/assets/img/examples/navbars@2x.png + site/docs/4.3/assets/img/examples/offcanvas.png + site/docs/4.3/assets/img/examples/offcanvas@2x.png + site/docs/4.3/assets/img/examples/pricing.png + site/docs/4.3/assets/img/examples/pricing@2x.png + site/docs/4.3/assets/img/examples/product.png + site/docs/4.3/assets/img/examples/product@2x.png + site/docs/4.3/assets/img/examples/sign-in.png + site/docs/4.3/assets/img/examples/sign-in@2x.png + site/docs/4.3/assets/img/examples/starter-template.png + site/docs/4.3/assets/img/examples/starter-template@2x.png + site/docs/4.3/assets/img/examples/sticky-footer-navbar.png + site/docs/4.3/assets/img/examples/sticky-footer-navbar@2x.png + site/docs/4.3/assets/img/examples/sticky-footer.png + site/docs/4.3/assets/img/examples/sticky-footer@2x.png + site/docs/4.3/assets/img/favicons/android-chrome-192x192.png + site/docs/4.3/assets/img/favicons/android-chrome-512x512.png + site/docs/4.3/assets/img/favicons/apple-touch-icon.png + site/docs/4.3/assets/img/favicons/browserconfig.xml + site/docs/4.3/assets/img/favicons/favicon-16x16.png + site/docs/4.3/assets/img/favicons/favicon-32x32.png + site/docs/4.3/assets/img/favicons/manifest.json + site/docs/4.3/assets/img/favicons/mstile-144x144.png + site/docs/4.3/assets/img/favicons/mstile-150x150.png + site/docs/4.3/assets/img/favicons/mstile-310x150.png + site/docs/4.3/assets/img/favicons/mstile-310x310.png + site/docs/4.3/assets/img/favicons/mstile-70x70.png + site/docs/4.3/assets/img/favicons/safari-pinned-tab.svg + site/docs/4.3/assets/js/src/ie-emulation-modes-warning.js + site/docs/4.3/assets/js/src/search.js + site/docs/4.3/assets/scss/_ads.scss + site/docs/4.3/assets/scss/_algolia.scss + site/docs/4.3/assets/scss/_anchor.scss + site/docs/4.3/assets/scss/_brand.scss + site/docs/4.3/assets/scss/_browser-bugs.scss + site/docs/4.3/assets/scss/_buttons.scss + site/docs/4.3/assets/scss/_callouts.scss + site/docs/4.3/assets/scss/_clipboard-js.scss + site/docs/4.3/assets/scss/_colors.scss + site/docs/4.3/assets/scss/_component-examples.scss + site/docs/4.3/assets/scss/_content.scss + site/docs/4.3/assets/scss/_footer.scss + site/docs/4.3/assets/scss/_masthead.scss + site/docs/4.3/assets/scss/_nav.scss + site/docs/4.3/assets/scss/_placeholder-img.scss + site/docs/4.3/assets/scss/_sidebar.scss + site/docs/4.3/assets/scss/_skippy.scss + site/docs/4.3/assets/scss/_syntax.scss + site/docs/4.3/assets/scss/_variables.scss + site/docs/4.3/browser-bugs.md + site/docs/4.3/components/alerts.md + site/docs/4.3/components/badge.md + site/docs/4.3/components/breadcrumb.md + site/docs/4.3/components/button-group.md + site/docs/4.3/components/buttons.md + site/docs/4.3/components/card.md + site/docs/4.3/components/carousel.md + site/docs/4.3/components/collapse.md + site/docs/4.3/components/dropdowns.md + site/docs/4.3/components/forms.md + site/docs/4.3/components/input-group.md + site/docs/4.3/components/jumbotron.md + site/docs/4.3/components/list-group.md + site/docs/4.3/components/media-object.md + site/docs/4.3/components/modal.md + site/docs/4.3/components/navbar.md + site/docs/4.3/components/navs.md + site/docs/4.3/components/pagination.md + site/docs/4.3/components/popovers.md + site/docs/4.3/components/progress.md + site/docs/4.3/components/scrollspy.md + site/docs/4.3/components/spinners.md + site/docs/4.3/components/toasts.md + site/docs/4.3/components/tooltips.md + site/docs/4.3/content/code.md + site/docs/4.3/content/figures.md + site/docs/4.3/content/images.md + site/docs/4.3/content/reboot.md + site/docs/4.3/content/tables.md + site/docs/4.3/content/typography.md + site/docs/4.3/examples/.stylelintrc + site/docs/4.3/examples/album/album.css + site/docs/4.3/examples/blog/blog.css + site/docs/4.3/examples/blog/index.html + site/docs/4.3/examples/carousel/carousel.css + site/docs/4.3/examples/checkout/form-validation.css + site/docs/4.3/examples/checkout/form-validation.js + site/docs/4.3/examples/cover/cover.css + site/docs/4.3/examples/cover/index.html + site/docs/4.3/examples/dashboard/dashboard.css + site/docs/4.3/examples/dashboard/dashboard.js + site/docs/4.3/examples/dashboard/index.html + site/docs/4.3/examples/floating-labels/floating-labels.css + site/docs/4.3/examples/grid/grid.css + site/docs/4.3/examples/grid/index.html + site/docs/4.3/examples/index.html + site/docs/4.3/examples/jumbotron/jumbotron.css + site/docs/4.3/examples/navbar-bottom/index.html + site/docs/4.3/examples/navbar-fixed/index.html + site/docs/4.3/examples/navbar-fixed/navbar-top-fixed.css + site/docs/4.3/examples/navbar-static/index.html + site/docs/4.3/examples/navbar-static/navbar-top.css + site/docs/4.3/examples/navbars/index.html + site/docs/4.3/examples/navbars/navbar.css + site/docs/4.3/examples/offcanvas/index.html + site/docs/4.3/examples/offcanvas/offcanvas.css + site/docs/4.3/examples/offcanvas/offcanvas.js + site/docs/4.3/examples/pricing/pricing.css + site/docs/4.3/examples/product/product.css + site/docs/4.3/examples/sign-in/signin.css + site/docs/4.3/examples/starter-template/index.html + site/docs/4.3/examples/starter-template/starter-template.css + site/docs/4.3/examples/sticky-footer-navbar/index.html + site/docs/4.3/examples/sticky-footer-navbar/sticky-footer-navbar.css + site/docs/4.3/examples/sticky-footer/index.html + site/docs/4.3/examples/sticky-footer/sticky-footer.css + site/docs/4.3/extend/approach.md + site/docs/4.3/extend/icons.md + site/docs/4.3/getting-started/accessibility.md + site/docs/4.3/getting-started/best-practices.md + site/docs/4.3/getting-started/browsers-devices.md + site/docs/4.3/getting-started/build-tools.md + site/docs/4.3/getting-started/contents.md + site/docs/4.3/getting-started/download.md + site/docs/4.3/getting-started/introduction.md + site/docs/4.3/getting-started/javascript.md + site/docs/4.3/getting-started/theming.md + site/docs/4.3/getting-started/webpack.md + site/docs/4.3/layout/grid.md + site/docs/4.3/layout/overview.md + site/docs/4.3/layout/utilities-for-layout.md + site/docs/4.3/migration.md + site/docs/4.3/utilities/borders.md + site/docs/4.3/utilities/clearfix.md + site/docs/4.3/utilities/close-icon.md + site/docs/4.3/utilities/colors.md + site/docs/4.3/utilities/display.md + site/docs/4.3/utilities/embed.md + site/docs/4.3/utilities/flex.md + site/docs/4.3/utilities/float.md + site/docs/4.3/utilities/image-replacement.md + site/docs/4.3/utilities/overflow.md + site/docs/4.3/utilities/position.md + site/docs/4.3/utilities/screen-readers.md + site/docs/4.3/utilities/shadows.md + site/docs/4.3/utilities/sizing.md + site/docs/4.3/utilities/spacing.md + site/docs/4.3/utilities/stretched-link.md + site/docs/4.3/utilities/text.md + site/docs/4.3/utilities/vertical-align.md + site/docs/4.3/utilities/visibility.md site/docs/versions.html site/index.html site/robots.txt @@ -412,63 +404,65 @@ License: UNKNOWN FIXME -Files: dist/js/bootstrap.js - js/dist/alert.js - js/dist/button.js - js/dist/carousel.js - js/dist/collapse.js - js/dist/dropdown.js - js/dist/modal.js - js/dist/popover.js - js/dist/scrollspy.js - js/dist/tab.js - js/dist/toast.js - js/dist/tooltip.js - js/dist/util.js -Copyright: 2011-2018, The Bootstrap Authors (https:github.com/twbs/bootstrap/graphs/contributors) -License: UNKNOWN - FIXME - Files: build/build-plugins.js build/change-version.js build/generate-sri.js build/vnu-jar.js - dist/css/bootstrap-grid.css - dist/css/bootstrap-reboot.css - dist/css/bootstrap.css scss/bootstrap-grid.scss scss/bootstrap-reboot.scss scss/bootstrap.scss -Copyright: 2011-2018, The Bootstrap Authors - 2011-2018, Twitter, Inc. - 2017-2018, The Bootstrap Authors - 2017-2018, Twitter, Inc. - 2018, The Bootstrap Authors - 2018, Twitter, Inc. +Copyright: 2011-2019, The Bootstrap Authors + 2011-2019, Twitter, Inc. + 2017-2019, The Bootstrap Authors + 2017-2019, Twitter, Inc. + 2019, The Bootstrap Authors + 2019, Twitter, Inc. License: UNKNOWN FIXME +Files: site/docs/4.3/assets/css/docs.min.css + site/docs/4.3/assets/js/src/application.js + site/docs/4.3/assets/scss/docs.scss +Copyright: 2011-2019, The Bootstrap Authors + 2011-2019, Twitter, Inc. +License: CC-BY-3.0 + FIXME + Files: nuget/bootstrap.nuspec nuget/bootstrap.sass.nuspec - site/docs/4.2/examples/floating-labels/index.html - site/docs/4.2/examples/pricing/index.html - site/docs/4.2/examples/product/index.html - site/docs/4.2/examples/sign-in/index.html -Copyright: 2017-2018 +Copyright: 2017-2019 License: UNKNOWN FIXME -Files: site/docs/4.2/assets/css/docs.min.css - site/docs/4.2/assets/js/src/application.js - site/docs/4.2/assets/scss/docs.scss -Copyright: 2011-2018, The Bootstrap Authors - 2011-2018, Twitter, Inc. -License: CC-BY-3.0 +Files: site/docs/4.3/examples/floating-labels/index.html + site/docs/4.3/examples/sign-in/index.html +Copyright: 2017, -{{ site.time | date: "%Y" }}

+License: UNKNOWN FIXME -Files: site/docs/4.2/assets/css/docs.min.css.map -Copyright: 2);n background-image: linear-gradient(45deg, #fafafa, #f5f5f5);nn h1 {n line-height: 1;n }nn .btn {n padding: .8rem 2rem;n font-weight: 600;n }nn .carbonad {n margin-top: 0 !important;n margin-bottom: -3rem !important;n }nn @include media-breakpoint-up(sm) {n padding-top: 5rem;n padding-bottom: 5rem;nn .carbonad {n margin-bottom: 0 !important;n }n }nn @include media-breakpoint-up(md) {n h1 {n font-size: 4rem;n }nn .carbonad {n margin-top: 3rem !important;n }n }n}nn.half-rule {n width: 6rem;n margin: 2.5rem 0;n}nn.masthead-followup {n .bd-clipboard { display: none; }nn .highlight {n padding: .5rem 0;n background-color: transparent;n }n}n"," stylelint-disable declaration-no-important, selector-max-idnnn Carbon adsnnn#carbonads {n position: static;n display: block;n max-width: 400px;n padding: 15px 15px 15px 160px;n margin: 2rem 0;n overflow: hidden;n font-size: 13px;n line-height: 1.4;n text-align: left;n background-color: rgba(0, 0, 0, .05);nn a {n color: #333;n text-decoration: none;n }nn @include media-breakpoint-up(sm) {n max-width: 330px;n border-radius: 4px;n }n}nn.carbon-img {n float: left;n margin-left: -145px;n}nn.carbon-poweredby {n display: block;n color: #777 !important;n}n"," stylelint-disable no-duplicate-selectors, selector-max-combinators, selector-max-compound-selectors, selector-max-type, selector-no-qualifying-typennn Automatically style Markdown-based tables like a Bootstrap `.table`.nnn.bd-content {n order: 1;nn Hack the sticky headern > h2[id - 2011-2018, The Bootstrap Authorsn * Copyright 2011-2018 Twitter, Inc.n * Licensed under the Creative Commons Attribution 3.0 Unported License. Forn * details, see https:creativecommons.org/licenses/by/3.0/.n nn Dev notesnn Background information on nomenclature and architecture decisions here.nn - Bootstrap functions, variables, and mixins are included for easy reuse.n Doing so gives us access to the same core utilities provided by Bootstrap.n For example, consistent media queries through those mixins.nn - Bootstrap's **docs variables** are prefixed with `$bd-`.n These custom colors avoid collision with the components Bootstrap provides.nn - Classes are prefixed with `.bd-`.n These classes indicate custom-built or modified components for the designn and layout of the Bootstrap docs. They are not included in our builds.nn Happy Bootstrapping!nn Load Bootstrap variables and mixinsn@import "../../../../../scss/functions";n@import "../../../../../scss/variables";n@import "../../../../../scss/mixins";nn Load docs componentsn@import "variables";n@import "nav";n@import "masthead";n@import "ads";n@import "content";n@import "skippy";n@import "sidebar";n@import "footer";n@import "component-examples";n@import "buttons";n@import "callouts";n@import "browser-bugs";n@import "brand";n@import "colors";n@import "clipboard-js";n@import "placeholder-img";nn Load docs dependenciesn@import "syntax";n@import "anchor";n@import "algolia";n","n Main navbarnnn.bd-navbar {n min-height: 4rem;n background-color: $bd-purple;n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .05), inset 0 -1px 0 rgba(0, 0, 0, .1);nn @include media-breakpoint-down(md) {n padding-right: .5rem;n padding-left: .5rem;nn .navbar-nav-scroll {n max-width: 100%;n height: 2.5rem;n margin-top: .25rem;n overflow: hidden;n font-size: .875rem;nn .navbar-nav {n padding-bottom: 2rem;n overflow-x: auto;n white-space: nowrap;n -webkit-overflow-scrolling: touch;n }n }n }nn @include media-breakpoint-up(md) {n @supports (position: sticky) {n position: sticky;n top: 0;n z-index: 1071; over everything in bootstrapn }n }nn .navbar-nav {n .nav-link {n padding-right: .5rem;n padding-left: .5rem;n color: $bd-purple-light;nn &.active,n &:hover {n color: $white;n background-color: transparent;n }nn &.active {n font-weight: 600;n }n }n }nn .navbar-nav-svg {n display: inline-block;n width: 1rem;n height: 1rem;n vertical-align: text-top;n }nn .dropdown-menu {n font-size: .875rem;n }nn .dropdown-item.active {n font-weight: 600;n color: $gray-900;n background-color: transparent;n background-image: url("data:image/svg+xml,%3csvg xmlns='http:www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' 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");n background-repeat: no-repeat;n background-position: .4rem .6rem;n background-size: .75rem .75rem;n }n}n"," Breakpoint viewport sizes and media queries.nn Breakpoints are defined as a map of (name: minimum width), order from small to large:nn (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)nn The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.nn Name of the next breakpoint, or null for the last breakpoint.nn >> breakpoint-next(sm)n mdn >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))n mdn >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))n mdn@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {n $n: index($breakpoint-names, $name);n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);n}nn Minimum breakpoint width. Null for the smallest (first) breakpoint.nn >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))n 576pxn@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {n $min: map-get($breakpoints, $name);n @return if($min != 0, $min, null);n}nn Maximum breakpoint width. Null for the largest (last) breakpoint.n The maximum value is calculated as the minimum of the next one less 0.02pxn to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.n See https:www.w3.org/TR/mediaqueries-4/#mq-min-maxn Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.n See https:bugs.webkit.org/show_bug.cgi?id=178261nn >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))n 767.98pxn@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {n $next: breakpoint-next($name, $breakpoints);n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);n}nn Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.n Useful for making responsive utilities.nn >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))n "" (Returns a blank string)n >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))n "-sm"n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {n @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");n}nn Media of at least the minimum breakpoint width. No query for the smallest breakpoint.n Makes the @content apply to the given breakpoint and wider.n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {n $min: breakpoint-min($name, $breakpoints);n @if $min {n @media (min-width: $min) {n @content;n }n } @else {n @content;n }n}nn Media of at most the maximum breakpoint width. No query for the largest breakpoint.n Makes the @content apply to the given breakpoint and narrower.n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {n $max: breakpoint-max($name, $breakpoints);n @if $max {n @media (max-width: $max) {n @content;n }n } @else {n @content;n }n}nn Media that spans multiple breakpoint widths.n Makes the @content apply between the min and max breakpointsn@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {n $min: breakpoint-min($lower, $breakpoints);n $max: breakpoint-max($upper, $breakpoints);nn @if $min != null and $max != null {n @media (min-width: $min) and (max-width: $max) {n @content;n }n } @else if $max == null {n @include media-breakpoint-up($lower, $breakpoints) {n @content;n }n } @else if $min == null {n @include media-breakpoint-down($upper, $breakpoints) {n @content;n }n }n}nn Media between the breakpoint's minimum and maximum widths.n No minimum for the smallest breakpoint, and no maximum for the largest one.n Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {n $min: breakpoint-min($name, $breakpoints);n $max: breakpoint-max($name, $breakpoints);nn @if $min != null and $max != null {n @media (min-width: $min) and (max-width: $max) {n @content;n }n } @else if $max == null {n @include media-breakpoint-up($name, $breakpoints) {n @content;n }n } @else if $min == null {n @include media-breakpoint-down($name, $breakpoints) {n @content;n }n }n}n"," stylelint-disable declaration-no-importantnn.bd-masthead {n position: relative;n padding: 3rem ($grid-gutter-width +Files: site/docs/4.3/examples/pricing/index.html + site/docs/4.3/examples/product/index.html +Copyright: 2017, -{{ site.time | date: "%Y" }} +License: UNKNOWN + FIXME + +Files: site/docs/4.3/assets/css/docs.min.css.map +Copyright: $rfs-breakpoint}#{$variable-unit};nn Set the calculated font-size.n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};n }nn Renderingn @if $rfs-fluid == null {n Only render static font-size if no fluid font-size is availablen font-size: $rfs-static;n }n @else {n $mq-value: null;nn RFS breakpoint formattingn @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {n $mq-value: #{$rfs-breakpoint + $rfs-factor;nn Calculate difference between given font-size and minimum font-size for given font-sizen $fs-diff: $fs - $fs-min;nn Base font-size formattingn No need to check if the unit is valid, because we did that beforen $min-width: if($rfs-font-size-unit == rem, #{$fs-min + $rfs-rem-value);n }nn Set default font-sizen @if $rfs-font-size-unit == rem {n $rfs-static: #{$fs + $rfs-rem-value);n}nn Cache $rfs-breakpoint unit to prevent multiple callsn$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);nn Remove unit from $rfs-breakpoint for calculationsn@if $rfs-breakpoint-unit-cache == "px" {n $rfs-breakpoint: $rfs-breakpoint + $rfs-rem-value);n}nn Responsive font-size mixinn@mixin rfs($fs, $important: false) {n Cache $fs unitn $fs-unit: if(type-of($fs) == "number", unit($fs), false);nn Add !important suffix if neededn $rfs-suffix: if($important, " !important", "");nn 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 valuen @if not $fs-unit or $fs-unit != "" and $fs-unit != "px" and $fs-unit != "rem" or $fs == 0 {n font-size: #{$fs}#{$rfs-suffix};n }n @else {n Variables for storing static and fluid rescalingn $rfs-static: null;n $rfs-fluid: null;nn Remove px-unit from $fs for calculationsn @if $fs-unit == "px" {n $fs: $fs + $rfs-rem-value}#{$rfs-breakpoint-unit};n }n @else if $rfs-breakpoint-unit == px {n $mq-value: #{$rfs-breakpoint}px;n }n @else {n @error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";n }nn @if $rfs-class == "disable" {n Adding an extra class increases specificity,n which prevents the media query to override the font sizen &,n .disable-responsive-font-size &,n &.disable-responsive-font-size {n font-size: $rfs-static;n }n }n @else {n font-size: $rfs-static;n }nn @if $rfs-two-dimensional {n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {n @if $rfs-class == "enable" {n .enable-responsive-font-size &,n &.enable-responsive-font-size {n font-size: $rfs-fluid;n }n }n @else {n font-size: $rfs-fluid;n }nn @if $rfs-safari-iframe-resize-bug-fix {n stylelint-disable-next-line length-zero-no-unitn min-width: 0vw;n }n }n }n @else {n @media (max-width: #{$mq-value}) {n @if $rfs-class == "enable" {n .enable-responsive-font-size &,n &.enable-responsive-font-size {n font-size: $rfs-fluid;n }n }n @else {n font-size: $rfs-fluid;n }nn @if $rfs-safari-iframe-resize-bug-fix {n stylelint-disable-next-line length-zero-no-unitn min-width: 0vw;n }n }n }n }n }n}nn The font-size & responsive-font-size mixin uses RFS to rescale font sizesn@mixin font-size($fs, $important: false) {n @include rfs($fs, $important);n}nn@mixin responsive-font-size($fs, $important: false) {n @include rfs($fs, $important);n}n"," stylelint-disable declaration-no-importantnn.bd-masthead {n position: relative;n padding: 3rem ($grid-gutter-width + $rfs-rem-value}rem#{$rfs-suffix};n }n @else if $rfs-font-size-unit == px {n $rfs-static: #{$fs}px#{$rfs-suffix};n }n @else {n @error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";n }nn Only add media query if font-size is bigger as the minimum font-sizen If $rfs-factor == 1, no rescaling will take placen @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {n $min-width: null;n $variable-unit: null;nn Calculate minimum font-size for given font-sizen $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) + $rfs-rem-value}rem, #{$fs-min}px);nn If two-dimensional, use smallest of screen width and heightn $variable-unit: if($rfs-two-dimensional, vmin, vw);nn Calculate the variable width between 0 and $rfs-breakpointn $variable-width: #{$fs-diff * 100 + ($fs * 0 + 1 + ($fs * 0 + 1);n }n @else if $fs-unit == "rem" {n $fs: $fs + ($rfs-base-font-size * 0 + 1 + ($rfs-base-font-size * 0 + 1);n}n@else if $rfs-base-font-size-unit == "rem" {n $rfs-base-font-size: $rfs-base-font-size + ($rfs-breakpoint * 0 + 1 + ($rfs-breakpoint * 0 + 1);n}n@else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" {n $rfs-breakpoint: $rfs-breakpoint + 2);n background-image: linear-gradient(45deg, #fafafa, #f5f5f5);nn h1 {n @include font-size(4rem);n line-height: 1;n }nn .btn {n padding: .8rem 2rem;n font-weight: 600;n @include font-size(1.25rem);n }nn .carbonad {n margin-top: 0 !important;n margin-bottom: -3rem !important;n }nn @include media-breakpoint-up(sm) {n padding-top: 5rem;n padding-bottom: 5rem;nn .carbonad {n margin-bottom: 0 !important;n }n }nn @include media-breakpoint-up(md) {n .carbonad {n margin-top: 3rem !important;n }n }n}nn.half-rule {n width: 6rem;n margin: 2.5rem 0;n}nn.masthead-followup {n .bd-clipboard { display: none; }nn .highlight {n padding: .5rem 0;n background-color: transparent;n }n}n"," stylelint-disable declaration-no-important, selector-max-idnnn Carbon adsnnn#carbonads {n position: static;n display: block;n max-width: 400px;n padding: 15px 15px 15px 160px;n margin: 2rem 0;n overflow: hidden;n @include font-size(.8125rem);n line-height: 1.4;n text-align: left;n background-color: rgba(0, 0, 0, .05);nn a {n color: #333;n text-decoration: none;n }nn @include media-breakpoint-up(sm) {n max-width: 330px;n @include border-radius(4px);n }n}nn.carbon-img {n float: left;n margin-left: -145px;n}nn.carbon-poweredby {n display: block;n color: #777 !important;n}n"," stylelint-disable property-blacklistn Single side border-radiusnn@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {n @if $enable-rounded {n border-radius: $radius;n }n @else if $fallback-border-radius != false {n border-radius: $fallback-border-radius;n }n}nn@mixin border-top-radius($radius) {n @if $enable-rounded {n border-top-left-radius: $radius;n border-top-right-radius: $radius;n }n}nn@mixin border-right-radius($radius) {n @if $enable-rounded {n border-top-right-radius: $radius;n border-bottom-right-radius: $radius;n }n}nn@mixin border-bottom-radius($radius) {n @if $enable-rounded {n border-bottom-right-radius: $radius;n border-bottom-left-radius: $radius;n }n}nn@mixin border-left-radius($radius) {n @if $enable-rounded {n border-top-left-radius: $radius;n border-bottom-left-radius: $radius;n }n}nn@mixin border-top-left-radius($radius) {n @if $enable-rounded {n border-top-left-radius: $radius;n }n}nn@mixin border-top-right-radius($radius) {n @if $enable-rounded {n border-top-right-radius: $radius;n }n}nn@mixin border-bottom-right-radius($radius) {n @if $enable-rounded {n border-bottom-right-radius: $radius;n }n}nn@mixin border-bottom-left-radius($radius) {n @if $enable-rounded {n border-bottom-left-radius: $radius;n }n}n"," stylelint-disable no-duplicate-selectors, selector-max-combinators, selector-max-compound-selectors, selector-max-type, selector-no-qualifying-typennn Automatically style Markdown-based tables like a Bootstrap `.table`.nnn.bd-content {n order: 1;nn Hack the sticky headern > h2[id + 2011-2019, The Bootstrap Authorsn * Copyright 2011-2019 Twitter, Inc.n * Licensed under the Creative Commons Attribution 3.0 Unported License.n * For details, see https:creativecommons.org/licenses/by/3.0/.n nn Dev notesnn Background information on nomenclature and architecture decisions here.nn - Bootstrap functions, variables, and mixins are included for easy reuse.n Doing so gives us access to the same core utilities provided by Bootstrap.n For example, consistent media queries through those mixins.nn - Bootstrap's **docs variables** are prefixed with `$bd-`.n These custom colors avoid collision with the components Bootstrap provides.nn - Classes are prefixed with `.bd-`.n These classes indicate custom-built or modified components for the designn and layout of the Bootstrap docs. They are not included in our builds.nn Happy Bootstrapping!nn Load Bootstrap variables and mixinsn@import "../../../../../scss/functions";n@import "../../../../../scss/variables";n@import "../../../../../scss/mixins";nn Load docs componentsn@import "variables";n@import "nav";n@import "masthead";n@import "ads";n@import "content";n@import "skippy";n@import "sidebar";n@import "footer";n@import "component-examples";n@import "buttons";n@import "callouts";n@import "browser-bugs";n@import "brand";n@import "colors";n@import "clipboard-js";n@import "placeholder-img";nn Load docs dependenciesn@import "syntax";n@import "anchor";n@import "algolia";n","n Main navbarnnn.bd-navbar {n min-height: 4rem;n background-color: $bd-purple;n box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .05), inset 0 -1px 0 rgba(0, 0, 0, .1);nn @include media-breakpoint-down(md) {n padding-right: .5rem;n padding-left: .5rem;nn .navbar-nav-scroll {n max-width: 100%;n height: 2.5rem;n margin-top: .25rem;n overflow: hidden;nn .navbar-nav {n padding-bottom: 2rem;n overflow-x: auto;n white-space: nowrap;n -webkit-overflow-scrolling: touch;n }n }n }nn @include media-breakpoint-up(md) {n @supports (position: sticky) {n position: sticky;n top: 0;n z-index: 1071; over everything in bootstrapn }n }nn .navbar-nav {n .nav-link {n padding-right: .5rem;n padding-left: .5rem;n color: $bd-purple-light;nn &.active,n &:hover {n color: $white;n background-color: transparent;n }nn &.active {n font-weight: 600;n }n }n }nn .navbar-nav-svg {n display: inline-block;n width: 1rem;n height: 1rem;n vertical-align: text-top;n }nn .dropdown-menu {n @include font-size(.875rem);n }nn .dropdown-item.active {n font-weight: 600;n color: $gray-900;n background-color: transparent;n background-image: url("data:image/svg+xml,%3csvg xmlns='http:www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23292b2c' 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");n background-repeat: no-repeat;n background-position: .4rem .6rem;n background-size: .75rem .75rem;n }n}n"," Breakpoint viewport sizes and media queries.nn Breakpoints are defined as a map of (name: minimum width), order from small to large:nn (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)nn The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.nn Name of the next breakpoint, or null for the last breakpoint.nn >> breakpoint-next(sm)n mdn >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))n mdn >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))n mdn@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {n $n: index($breakpoint-names, $name);n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);n}nn Minimum breakpoint width. Null for the smallest (first) breakpoint.nn >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))n 576pxn@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {n $min: map-get($breakpoints, $name);n @return if($min != 0, $min, null);n}nn Maximum breakpoint width. Null for the largest (last) breakpoint.n The maximum value is calculated as the minimum of the next one less 0.02pxn to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.n See https:www.w3.org/TR/mediaqueries-4/#mq-min-maxn Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.n See https:bugs.webkit.org/show_bug.cgi?id=178261nn >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))n 767.98pxn@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {n $next: breakpoint-next($name, $breakpoints);n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);n}nn Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.n Useful for making responsive utilities.nn >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))n "" (Returns a blank string)n >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))n "-sm"n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {n @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");n}nn Media of at least the minimum breakpoint width. No query for the smallest breakpoint.n Makes the @content apply to the given breakpoint and wider.n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {n $min: breakpoint-min($name, $breakpoints);n @if $min {n @media (min-width: $min) {n @content;n }n } @else {n @content;n }n}nn Media of at most the maximum breakpoint width. No query for the largest breakpoint.n Makes the @content apply to the given breakpoint and narrower.n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {n $max: breakpoint-max($name, $breakpoints);n @if $max {n @media (max-width: $max) {n @content;n }n } @else {n @content;n }n}nn Media that spans multiple breakpoint widths.n Makes the @content apply between the min and max breakpointsn@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {n $min: breakpoint-min($lower, $breakpoints);n $max: breakpoint-max($upper, $breakpoints);nn @if $min != null and $max != null {n @media (min-width: $min) and (max-width: $max) {n @content;n }n } @else if $max == null {n @include media-breakpoint-up($lower, $breakpoints) {n @content;n }n } @else if $min == null {n @include media-breakpoint-down($upper, $breakpoints) {n @content;n }n }n}nn Media between the breakpoint's minimum and maximum widths.n No minimum for the smallest breakpoint, and no maximum for the largest one.n Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {n $min: breakpoint-min($name, $breakpoints);n $max: breakpoint-max($name, $breakpoints);nn @if $min != null and $max != null {n @media (min-width: $min) and (max-width: $max) {n @content;n }n } @else if $max == null {n @include media-breakpoint-up($name, $breakpoints) {n @content;n }n } @else if $min == null {n @include media-breakpoint-down($name, $breakpoints) {n @content;n }n }n}n"," stylelint-disable property-blacklist, scss/dollar-variable-defaultnn SCSS RFS mixinnn Automated font-resizingnn See https:github.com/twbs/rfsnn Configurationnn Base font sizen$rfs-base-font-size: 1.25rem !default;n$rfs-font-size-unit: rem !default;nn Breakpoint at where font-size starts decreasing if screen width is smallern$rfs-breakpoint: 1200px !default;n$rfs-breakpoint-unit: px !default;nn Resize font-size based on screen height and widthn$rfs-two-dimensional: false !default;nn Factor of decreasen$rfs-factor: 10 !default;nn@if type-of($rfs-factor) != "number" or $rfs-factor <= 1 {n @error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";n}nn Generate enable or disable classes. Possibilities: false, "enable" or "disable"n$rfs-class: false !default;nn 1 rem = $rfs-rem-value pxn$rfs-rem-value: 16 !default;nn Safari iframe resize bug: https:github.com/twbs/rfs/issues/14n$rfs-safari-iframe-resize-bug-fix: false !default;nn Disable RFS by setting $enable-responsive-font-sizes to falsen$enable-responsive-font-sizes: true !default;nn Cache $rfs-base-font-size unitn$rfs-base-font-size-unit: unit($rfs-base-font-size);nn Remove px-unit from $rfs-base-font-size for calculationsn@if $rfs-base-font-size-unit == "px" {n $rfs-base-font-size: $rfs-base-font-size License: CC-BY-3.0 FIXME @@ -477,15 +471,9 @@ License: CC-BY-3.0 FIXME -Files: dist/js/bootstrap.bundle.js -Copyright: 2011-2018, The Bootstrap Authors (https:github.com/twbs/bootstrap/graphs/contributors) - 2016, Federico Zivolo and contributors -License: Expat - FIXME - Files: LICENSE -Copyright: 2011-2018, The Bootstrap Authors - 2011-2018, Twitter, Inc. +Copyright: 2011-2019, The Bootstrap Authors + 2011-2019, Twitter, Inc. License: Expat FIXME @@ -494,38 +482,25 @@ License: GPL-3+ FIXME -Files: build/banner.js +Files: debian/patches/do-not-update-copyright-year.diff Copyright: 2011, -${year} ${pkg.author} + 2011-2018, ${pkg.author} + year during build License: UNKNOWN FIXME -Files: site/docs/4.2/examples/checkout/index.html -Copyright: 2017-2018, Company Name

-License: UNKNOWN - FIXME - -Files: site/docs/4.2/examples/carousel/index.html -Copyright: 2017-2018, Company, Inc. · Privacy · Terms

-License: UNKNOWN - FIXME - -Files: dist/js/bootstrap.bundle.js.map -Copyright: 2016, Federico Zivolo and contributorsn *n * Permission is hereby granted, free of charge, to any person obtaining a copyn * of this software and associated documentation files (the "Software"), to dealn * in the Software without restriction, including without limitation the rightsn * to use, copy, modify, merge, publish, distribute, sublicense, and/or selln * copies of the Software, and to permit persons to whom the Software isn * furnished to do so, subject to the following conditions:n *n * The above copyright notice and this permission notice shall be included in alln * copies or substantial portions of the Software.n *n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORn * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEn * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERn * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THEn * SOFTWARE.n nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';nnvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox' -License: UNKNOWN - FIXME - -Files: dist/css/bootstrap-reboot.css.map -Copyright: 2011-2018, The Bootstrap Authorsn * Copyright 2011-2018 Twitter, Inc.n * Licensed under MIT (https:github.com/twbs/bootstrap/blob/master/LICENSE)n * Forked from Normalize.css, licensed MIT (https:github.com/necolas/normalize.css/blob/master/LICENSE.md)n nn@import "functions";n@import "variables";n@import "mixins";n@import "reboot";n"," stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefixnn Rebootnn Normalization of HTML elements, manually forked from Normalize.css to removen styles targeting irrelevant browsers while applying new styles.nn Normalize is licensed MIT. https:github.com/necolas/normalize.cssnnn Documentnn 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.n 2. Change the default font family in all browsers.n 3. Correct the line height in all browsers.n 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.n 5. Change the default tap highlight to be completely transparent in iOS.nn*,n*::before,n*::after {n box-sizing: border-box; 1n}nnhtml {n font-family: sans-serif; 2n line-height: 1.15; 3n -webkit-text-size-adjust: 100%; 4n -webkit-tap-highlight-color: rgba($black, 0); 5n}nn Shim for "new" HTML5 structural elements to display correctly (IE10, older browsers)n TODO: remove in v5n stylelint-disable-next-line selector-list-comma-newline-afternarticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {n display: block;n}nn Bodynn 1. Remove the margin in all browsers.n 2. As a best practice, apply a default `background-color`.n 3. Set an explicit initial text-align value so that we can later usen the `inherit` value on things like `` elements.nnbody {n margin: 0; 1n font-family: $font-family-base;n font-size: $font-size-base;n font-weight: $font-weight-base;n line-height: $line-height-base;n color: $body-color;n text-align: left; 3n background-color: $body-bg; 2n}nn Suppress the focus outline on elements that cannot be accessed via keyboard.n This prevents an unwanted focus outline from appearing around elements thatn might still respond to pointer events.nn Credit: https:github.com/suitcss/basen[tabindex="-1" +Files: build/banner.js +Copyright: 2011, -${year} ${pkg.author} License: UNKNOWN FIXME -Files: dist/css/bootstrap.css.map -Copyright: 2011-2018, The Bootstrap Authorsn * Copyright 2011-2018 Twitter, Inc.n * Licensed under MIT (https:github.com/twbs/bootstrap/blob/master/LICENSE)n nn@import "functions";n@import "variables";n@import "mixins";n@import "root";n@import "reboot";n@import "type";n@import "images";n@import "code";n@import "grid";n@import "tables";n@import "forms";n@import "buttons";n@import "transitions";n@import "dropdown";n@import "button-group";n@import "input-group";n@import "custom-forms";n@import "nav";n@import "navbar";n@import "card";n@import "breadcrumb";n@import "pagination";n@import "badge";n@import "jumbotron";n@import "alert";n@import "progress";n@import "media";n@import "list-group";n@import "close";n@import "toasts";n@import "modal";n@import "tooltip";n@import "popover";n@import "carousel";n@import "spinners";n@import "utilities";n@import "print";n",":root {n Custom variable values only support SassScript inside `#{}`.n @each $color, $value in $colors {n --#{$color}: #{$value};n }nn @each $color, $value in $theme-colors {n --#{$color}: #{$value};n }nn @each $bp, $value in $grid-breakpoints {n --breakpoint-#{$bp}: #{$value};n }nn Use `inspect` for lists so that quoted items keep the quotes.n See https:github.com/sass/sass/issues/2383#issuecomment-336349172n --font-family-sans-serif: #{inspect($font-family-sans-serif)};n --font-family-monospace: #{inspect($font-family-monospace)};n}n"," stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefixnn Rebootnn Normalization of HTML elements, manually forked from Normalize.css to removen styles targeting irrelevant browsers while applying new styles.nn Normalize is licensed MIT. https:github.com/necolas/normalize.cssnnn Documentnn 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.n 2. Change the default font family in all browsers.n 3. Correct the line height in all browsers.n 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.n 5. Change the default tap highlight to be completely transparent in iOS.nn*,n*::before,n*::after {n box-sizing: border-box; 1n}nnhtml {n font-family: sans-serif; 2n line-height: 1.15; 3n -webkit-text-size-adjust: 100%; 4n -webkit-tap-highlight-color: rgba($black, 0); 5n}nn Shim for "new" HTML5 structural elements to display correctly (IE10, older browsers)n TODO: remove in v5n stylelint-disable-next-line selector-list-comma-newline-afternarticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {n display: block;n}nn Bodynn 1. Remove the margin in all browsers.n 2. As a best practice, apply a default `background-color`.n 3. Set an explicit initial text-align value so that we can later usen the `inherit` value on things like `` elements.nnbody {n margin: 0; 1n font-family: $font-family-base;n font-size: $font-size-base;n font-weight: $font-weight-base;n line-height: $line-height-base;n color: $body-color;n text-align: left; 3n background-color: $body-bg; 2n}nn Suppress the focus outline on elements that cannot be accessed via keyboard.n This prevents an unwanted focus outline from appearing around elements thatn might still respond to pointer events.nn Credit: https:github.com/suitcss/basen[tabindex="-1" +Files: site/docs/4.3/examples/checkout/index.html +Copyright: 2017, -{{ site.time | date: "%Y" }} Company Name

License: UNKNOWN FIXME -Files: dist/css/bootstrap-grid.css.map -Copyright: 2011-2018, The Bootstrap Authorsn * Copyright 2011-2018 Twitter, Inc.n * Licensed under MIT (https:github.com/twbs/bootstrap/blob/master/LICENSE)n nnhtml {n box-sizing: border-box;n -ms-overflow-style: scrollbar;n}nn*,n*::before,n*::after {n box-sizing: inherit;n}nn@import "functions";n@import "variables";nn@import "mixins/breakpoints";n@import "mixins/grid-framework";n@import "mixins/grid";nn@import "grid";n@import "utilities/display";n@import "utilities/flex";n@import "utilities/spacing";n"," Container widthsnn Set the container width, and override it for fixed navbars in media queries.nn@if $enable-grid-classes {n .container {n @include make-container();n @include make-container-max-widths();n }n}nn Fluid containernn Utilizes the mixin meant for fixed width containers, but with 100% width forn fluid, full width layouts.nn@if $enable-grid-classes {n .container-fluid {n @include make-container();n }n}nn Rownn Rows contain and clear the floats of your columns.nn@if $enable-grid-classes {n .row {n @include make-row();n }nn Remove the negative margin from default .row, then the horizontal paddingn from all immediate children columns (to prevent runaway style inheritance).n .no-gutters {n margin-right: 0;n margin-left: 0;nn > .col,n > [class*="col-" +Files: site/docs/4.3/examples/carousel/index.html +Copyright: 2017, -{{ site.time | date: "%Y" }} Company, Inc. · Privacy · Terms

License: UNKNOWN FIXME @@ -535,17 +510,22 @@ FIXME Files: README.md -Copyright: 2011-2018, the [Bootstrap Authors +Copyright: 2011-2019, the [Bootstrap Authors +License: UNKNOWN + FIXME + +Files: debian/patches/series +Copyright: -year.diff License: UNKNOWN FIXME -Files: site/docs/4.2/examples/album/index.html +Files: site/docs/4.3/examples/album/index.html Copyright: Bootstrap, but please download and customize it for yourself!

License: UNKNOWN FIXME -Files: site/docs/4.2/examples/jumbotron/index.html -Copyright: Company 2017-2018

+Files: site/docs/4.3/examples/jumbotron/index.html +Copyright: Company 2017-{{ site.time | date: "%Y" }}

License: UNKNOWN FIXME @@ -555,3 +535,8 @@ License: UNKNOWN FIXME +Files: debian/patches/build-js-using-buble-instead-of-babel.patch +Copyright: rémy Lal +License: UNKNOWN + FIXME + diff -Nru twitter-bootstrap4-4.2.1+dfsg2/debian/docs twitter-bootstrap4-4.3.1+dfsg2/debian/docs --- twitter-bootstrap4-4.2.1+dfsg2/debian/docs 2019-02-07 06:08:00.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/debian/docs 2019-02-21 09:16:30.000000000 +0000 @@ -1,2 +1,2 @@ README.md -site/docs/4.2/* +site/docs/4.3/* diff -Nru twitter-bootstrap4-4.2.1+dfsg2/debian/gbp.conf twitter-bootstrap4-4.3.1+dfsg2/debian/gbp.conf --- twitter-bootstrap4-4.2.1+dfsg2/debian/gbp.conf 2019-02-07 06:08:00.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/debian/gbp.conf 2019-02-21 09:04:12.000000000 +0000 @@ -4,3 +4,9 @@ pristine-tar = True sign-tags = True filter = */.git* + +[import-orig] +filter = [ '.gitignore', '.travis.yml' ] + +[import-dsc] +filter = [ '.gitignore', '.travis.yml' ] diff -Nru twitter-bootstrap4-4.2.1+dfsg2/debian/patches/do-not-update-copyright-year.diff twitter-bootstrap4-4.3.1+dfsg2/debian/patches/do-not-update-copyright-year.diff --- twitter-bootstrap4-4.2.1+dfsg2/debian/patches/do-not-update-copyright-year.diff 2019-02-07 06:20:27.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/debian/patches/do-not-update-copyright-year.diff 2019-02-21 09:13:08.000000000 +0000 @@ -11,7 +11,7 @@ return `/*! * Bootstrap${pluginFilename ? ` ${pluginFilename}` : ''} v${pkg.version} (${pkg.homepage}) - * Copyright 2011-${year} ${pkg.author} -+ * Copyright 2011-2018 ${pkg.author} ++ * Copyright 2011-2019 ${pkg.author} * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */` } diff -Nru twitter-bootstrap4-4.2.1+dfsg2/debian/rules twitter-bootstrap4-4.3.1+dfsg2/debian/rules --- twitter-bootstrap4-4.2.1+dfsg2/debian/rules 2019-02-07 06:08:00.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/debian/rules 2019-02-21 15:51:52.000000000 +0000 @@ -5,20 +5,20 @@ override_dh_auto_build: mkdir -p dist/css dist/js dist/tmp - sassc scss/bootstrap.scss dist/tmp/bootstrap.css - sassc scss/bootstrap-grid.scss dist/tmp/bootstrap-grid.css - sassc scss/bootstrap-reboot.scss dist/tmp/bootstrap-reboot.css + sassc -m auto scss/bootstrap.scss dist/tmp/bootstrap.css + sassc -m auto scss/bootstrap-grid.scss dist/tmp/bootstrap-grid.css + sassc -m auto scss/bootstrap-reboot.scss dist/tmp/bootstrap-reboot.css node debian/postcss.js - sassc --style compressed dist/tmp/bootstrap.css dist/css/bootstrap.min.css - sassc --style compressed dist/tmp/bootstrap-grid.css dist/css/bootstrap-grid.min.css - sassc --style compressed dist/tmp/bootstrap-reboot.css dist/css/bootstrap-reboot.min.css + sassc -m auto --style compressed dist/tmp/bootstrap.css dist/css/bootstrap.min.css + sassc -m auto --style compressed dist/tmp/bootstrap-grid.css dist/css/bootstrap-grid.min.css + sassc -m auto --style compressed dist/tmp/bootstrap-reboot.css dist/css/bootstrap-reboot.min.css rm -rf dist/tmp node build/build-plugins.js - rollup --environment BUNDLE:true --config build/rollup.config.js - rollup --environment BUNDLE:false --config build/rollup.config.js - uglifyjs --compress --mangle --comments "/^!" --source-map dist/js/bootstrap.js.map -o dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js - uglifyjs --compress --mangle --comments "/^!" --source-map dist/js/bootstrap.js.map -o dist/js/bootstrap.min.js dist/js/bootstrap.js + rollup --sourcemap --environment BUNDLE:true --config build/rollup.config.js + rollup --sourcemap --environment BUNDLE:false --config build/rollup.config.js + uglifyjs --compress --mangle --comments "/^!" --source-map dist/js/bootstrap.min.js.map -o dist/js/bootstrap.bundle.min.js dist/js/bootstrap.bundle.js + uglifyjs --compress --mangle --comments "/^!" --source-map dist/js/bootstrap.min.js.map -o dist/js/bootstrap.min.js dist/js/bootstrap.js override_dh_installdocs: dh_installdocs --exclude license.md diff -Nru twitter-bootstrap4-4.2.1+dfsg2/.eslintignore twitter-bootstrap4-4.3.1+dfsg2/.eslintignore --- twitter-bootstrap4-4.2.1+dfsg2/.eslintignore 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/.eslintignore 2019-02-13 16:01:40.000000000 +0000 @@ -2,3 +2,5 @@ **/dist/ **/vendor/ /_gh_pages/ +/js/coverage/ +/package.js diff -Nru twitter-bootstrap4-4.2.1+dfsg2/Gemfile.lock twitter-bootstrap4-4.3.1+dfsg2/Gemfile.lock --- twitter-bootstrap4-4.2.1+dfsg2/Gemfile.lock 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/Gemfile.lock 2019-02-13 16:01:40.000000000 +0000 @@ -1,17 +1,17 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.5.2) + addressable (2.6.0) public_suffix (>= 2.0.2, < 4.0) colorator (1.1.0) - concurrent-ruby (1.1.3) + concurrent-ruby (1.1.4) em-websocket (0.5.1) eventmachine (>= 0.12.9) http_parser.rb (~> 0.6.0) eventmachine (1.2.7) eventmachine (1.2.7-x64-mingw32) - ffi (1.9.25) - ffi (1.9.25-x64-mingw32) + ffi (1.10.0) + ffi (1.10.0-x64-mingw32) forwardable-extended (2.6.0) http_parser.rb (0.6.0) i18n (0.9.5) @@ -46,21 +46,21 @@ rb-inotify (~> 0.9, >= 0.9.7) ruby_dep (~> 1.2) mercenary (0.3.6) - mini_portile2 (2.3.0) - nokogiri (1.8.5) - mini_portile2 (~> 2.3.0) - nokogiri (1.8.5-x64-mingw32) - mini_portile2 (~> 2.3.0) + mini_portile2 (2.4.0) + nokogiri (1.10.1) + mini_portile2 (~> 2.4.0) + nokogiri (1.10.1-x64-mingw32) + mini_portile2 (~> 2.4.0) pathutil (0.16.2) forwardable-extended (~> 2.6) public_suffix (3.0.3) rb-fsevent (0.10.3) - rb-inotify (0.9.10) - ffi (>= 0.5.0, < 2) + rb-inotify (0.10.0) + ffi (~> 1.0) rouge (3.3.0) ruby_dep (1.5.0) safe_yaml (1.0.4) - sass (3.7.2) + sass (3.7.3) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) @@ -79,4 +79,4 @@ wdm (~> 0.1.1) BUNDLED WITH - 1.17.1 + 1.17.3 diff -Nru twitter-bootstrap4-4.2.1+dfsg2/.gitignore twitter-bootstrap4-4.3.1+dfsg2/.gitignore --- twitter-bootstrap4-4.2.1+dfsg2/.gitignore 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/.gitignore 2019-02-13 16:01:40.000000000 +0000 @@ -1,13 +1,12 @@ # Ignore docs files -_gh_pages -_site -site/docs/**/dist/ - -# Ignore ruby files -.ruby-version -.bundle -vendor/cache -vendor/bundle +/_gh_pages/ +/site/.jekyll-metadata +/site/docs/**/dist/ + +# Ignore ruby/bundler files +/.bundle/ +/vendor/ +/.ruby-version # Numerous always-ignore extensions *.diff @@ -39,9 +38,6 @@ .komodotools *.komodoproject -# Jekyll metadata -docs/.jekyll-metadata - # Folders to ignore -node_modules -js/coverage +/js/coverage/ +/node_modules/ diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/alert.js twitter-bootstrap4-4.3.1+dfsg2/js/src/alert.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/alert.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/alert.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): alert.js + * Bootstrap (v4.3.1): alert.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ */ const NAME = 'alert' -const VERSION = '4.2.1' +const VERSION = '4.3.1' const DATA_KEY = 'bs.alert' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/button.js twitter-bootstrap4-4.3.1+dfsg2/js/src/button.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/button.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/button.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): button.js + * Bootstrap (v4.3.1): button.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -14,7 +14,7 @@ */ const NAME = 'button' -const VERSION = '4.2.1' +const VERSION = '4.3.1' const DATA_KEY = 'bs.button' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/carousel.js twitter-bootstrap4-4.3.1+dfsg2/js/src/carousel.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/carousel.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/carousel.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): carousel.js + * Bootstrap (v4.3.1): carousel.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ */ const NAME = 'carousel' -const VERSION = '4.2.1' +const VERSION = '4.3.1' const DATA_KEY = 'bs.carousel' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' @@ -268,7 +268,9 @@ .on(Event.MOUSELEAVE, (event) => this.cycle(event)) } - this._addTouchEventListeners() + if (this._config.touch) { + this._addTouchEventListeners() + } } _addTouchEventListeners() { @@ -531,7 +533,7 @@ throw new TypeError(`No method named "${action}"`) } data[action]() - } else if (_config.interval) { + } else if (_config.interval && _config.ride) { data.pause() data.cycle() } diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/collapse.js twitter-bootstrap4-4.3.1+dfsg2/js/src/collapse.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/collapse.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/collapse.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): collapse.js + * Bootstrap (v4.3.1): collapse.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ */ const NAME = 'collapse' -const VERSION = '4.2.1' +const VERSION = '4.3.1' const DATA_KEY = 'bs.collapse' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/dropdown.js twitter-bootstrap4-4.3.1+dfsg2/js/src/dropdown.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/dropdown.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/dropdown.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): dropdown.js + * Bootstrap (v4.3.1): dropdown.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -16,7 +16,7 @@ */ const NAME = 'dropdown' -const VERSION = '4.2.1' +const VERSION = '4.3.1' const DATA_KEY = 'bs.dropdown' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' @@ -319,24 +319,30 @@ return $(this._element).closest('.navbar').length > 0 } - _getPopperConfig() { - const offsetConf = {} + _getOffset() { + const offset = {} + if (typeof this._config.offset === 'function') { - offsetConf.fn = (data) => { + offset.fn = (data) => { data.offsets = { ...data.offsets, - ...this._config.offset(data.offsets) || {} + ...this._config.offset(data.offsets, this._element) || {} } + return data } } else { - offsetConf.offset = this._config.offset + offset.offset = this._config.offset } + return offset + } + + _getPopperConfig() { const popperConfig = { placement: this._getPlacement(), modifiers: { - offset: offsetConf, + offset: this._getOffset(), flip: { enabled: this._config.flip }, @@ -352,6 +358,7 @@ enabled: false } } + return popperConfig } diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/index.js twitter-bootstrap4-4.3.1+dfsg2/js/src/index.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/index.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/index.js 2019-02-13 16:01:40.000000000 +0000 @@ -14,7 +14,7 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): index.js + * Bootstrap (v4.3.1): index.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/modal.js twitter-bootstrap4-4.3.1+dfsg2/js/src/modal.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/modal.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/modal.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): modal.js + * Bootstrap (v4.3.1): modal.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ */ const NAME = 'modal' -const VERSION = '4.2.1' +const VERSION = '4.3.1' const DATA_KEY = 'bs.modal' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' @@ -51,6 +51,7 @@ } const ClassName = { + SCROLLABLE : 'modal-dialog-scrollable', SCROLLBAR_MEASURER : 'modal-scrollbar-measure', BACKDROP : 'modal-backdrop', OPEN : 'modal-open', @@ -60,6 +61,7 @@ const Selector = { DIALOG : '.modal-dialog', + MODAL_BODY : '.modal-body', DATA_TOGGLE : '[data-toggle="modal"]', DATA_DISMISS : '[data-dismiss="modal"]', FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', @@ -244,7 +246,12 @@ this._element.style.display = 'block' this._element.removeAttribute('aria-hidden') this._element.setAttribute('aria-modal', true) - this._element.scrollTop = 0 + + if ($(this._dialog).hasClass(ClassName.SCROLLABLE)) { + this._dialog.querySelector(Selector.MODAL_BODY).scrollTop = 0 + } else { + this._element.scrollTop = 0 + } if (transition) { Util.reflow(this._element) diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/popover.js twitter-bootstrap4-4.3.1+dfsg2/js/src/popover.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/popover.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/popover.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): popover.js + * Bootstrap (v4.3.1): popover.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ */ const NAME = 'popover' -const VERSION = '4.2.1' +const VERSION = '4.3.1' const DATA_KEY = 'bs.popover' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/scrollspy.js twitter-bootstrap4-4.3.1+dfsg2/js/src/scrollspy.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/scrollspy.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/scrollspy.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): scrollspy.js + * Bootstrap (v4.3.1): scrollspy.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ */ const NAME = 'scrollspy' -const VERSION = '4.2.1' +const VERSION = '4.3.1' const DATA_KEY = 'bs.scrollspy' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/tab.js twitter-bootstrap4-4.3.1+dfsg2/js/src/tab.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/tab.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/tab.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): tab.js + * Bootstrap (v4.3.1): tab.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ */ const NAME = 'tab' -const VERSION = '4.2.1' +const VERSION = '4.3.1' const DATA_KEY = 'bs.tab' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' @@ -188,7 +188,10 @@ } Util.reflow(element) - $(element).addClass(ClassName.SHOW) + + if (element.classList.contains(ClassName.FADE)) { + element.classList.add(ClassName.SHOW) + } if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) { const dropdownElement = $(element).closest(Selector.DROPDOWN)[0] diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/toast.js twitter-bootstrap4-4.3.1+dfsg2/js/src/toast.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/toast.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/toast.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): toast.js + * Bootstrap (v4.3.1): toast.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ */ const NAME = 'toast' -const VERSION = '4.2.1' +const VERSION = '4.3.1' const DATA_KEY = 'bs.toast' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] @@ -75,6 +75,10 @@ return DefaultType } + static get Default() { + return Default + } + // Public show() { diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/tools/sanitizer.js twitter-bootstrap4-4.3.1+dfsg2/js/src/tools/sanitizer.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/tools/sanitizer.js 1970-01-01 00:00:00.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/tools/sanitizer.js 2019-02-13 16:01:40.000000000 +0000 @@ -0,0 +1,127 @@ +/** + * -------------------------------------------------------------------------- + * Bootstrap (v4.3.1): tools/sanitizer.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * -------------------------------------------------------------------------- + */ + +const uriAttrs = [ + 'background', + 'cite', + 'href', + 'itemtype', + 'longdesc', + 'poster', + 'src', + 'xlink:href' +] + +const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i + +export const 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 + */ +const 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 + */ +const 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) { + const 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 + } + + const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp) + + // Check if a regular expression validates the attribute. + for (let i = 0, l = regExp.length; i < l; i++) { + if (attrName.match(regExp[i])) { + return true + } + } + + return false +} + +export function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { + if (unsafeHtml.length === 0) { + return unsafeHtml + } + + if (sanitizeFn && typeof sanitizeFn === 'function') { + return sanitizeFn(unsafeHtml) + } + + const domParser = new window.DOMParser() + const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html') + const whitelistKeys = Object.keys(whiteList) + const elements = [].slice.call(createdDocument.body.querySelectorAll('*')) + + for (let i = 0, len = elements.length; i < len; i++) { + const el = elements[i] + const elName = el.nodeName.toLowerCase() + + if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) { + el.parentNode.removeChild(el) + + continue + } + + const attributeList = [].slice.call(el.attributes) + const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []) + + attributeList.forEach((attr) => { + if (!allowedAttribute(attr, whitelistedAttributes)) { + el.removeAttribute(attr.nodeName) + } + }) + } + + return createdDocument.body.innerHTML +} diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/tooltip.js twitter-bootstrap4-4.3.1+dfsg2/js/src/tooltip.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/tooltip.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/tooltip.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,10 +1,14 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): tooltip.js + * Bootstrap (v4.3.1): tooltip.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ +import { + DefaultWhitelist, + sanitizeHtml +} from './tools/sanitizer' import $ from 'jquery' import Popper from 'popper.js' import Util from './util' @@ -15,13 +19,14 @@ * ------------------------------------------------------------------------ */ -const NAME = 'tooltip' -const VERSION = '4.2.1' -const DATA_KEY = 'bs.tooltip' -const EVENT_KEY = `.${DATA_KEY}` -const JQUERY_NO_CONFLICT = $.fn[NAME] -const CLASS_PREFIX = 'bs-tooltip' -const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') +const NAME = 'tooltip' +const VERSION = '4.3.1' +const DATA_KEY = 'bs.tooltip' +const EVENT_KEY = `.${DATA_KEY}` +const JQUERY_NO_CONFLICT = $.fn[NAME] +const CLASS_PREFIX = 'bs-tooltip' +const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') +const DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'] const DefaultType = { animation : 'boolean', @@ -32,10 +37,13 @@ html : 'boolean', selector : '(string|boolean)', placement : '(string|function)', - offset : '(number|string)', + offset : '(number|string|function)', container : '(string|element|boolean)', fallbackPlacement : '(string|array)', - boundary : '(string|element)' + boundary : '(string|element)', + sanitize : 'boolean', + sanitizeFn : '(null|function)', + whiteList : 'object' } const AttachmentMap = { @@ -60,7 +68,10 @@ offset : 0, container : false, fallbackPlacement : 'flip', - boundary : 'scrollParent' + boundary : 'scrollParent', + sanitize : true, + sanitizeFn : null, + whiteList : DefaultWhitelist } const HoverState = { @@ -285,9 +296,7 @@ this._popper = new Popper(this.element, tip, { placement: attachment, modifiers: { - offset: { - offset: this.config.offset - }, + offset: this._getOffset(), flip: { behavior: this.config.fallbackPlacement }, @@ -421,18 +430,27 @@ } setElementContent($element, content) { - const html = this.config.html if (typeof content === 'object' && (content.nodeType || content.jquery)) { // Content is a DOM node or a jQuery - if (html) { + if (this.config.html) { if (!$(content).parent().is($element)) { $element.empty().append(content) } } else { $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 { - $element[html ? 'html' : 'text'](content) + $element.text(content) } } @@ -450,6 +468,25 @@ // Private + _getOffset() { + const offset = {} + + if (typeof this.config.offset === 'function') { + offset.fn = (data) => { + data.offsets = { + ...data.offsets, + ...this.config.offset(data.offsets, this.element) || {} + } + + return data + } + } else { + offset.offset = this.config.offset + } + + return offset + } + _getContainer() { if (this.config.container === false) { return document.body @@ -619,9 +656,18 @@ } _getConfig(config) { + const dataAttributes = $(this.element).data() + + Object.keys(dataAttributes) + .forEach((dataAttr) => { + if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { + delete dataAttributes[dataAttr] + } + }) + config = { ...this.constructor.Default, - ...$(this.element).data(), + ...dataAttributes, ...typeof config === 'object' && config ? config : {} } @@ -646,6 +692,10 @@ this.constructor.DefaultType ) + if (config.sanitize) { + config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn) + } + return config } diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/src/util.js twitter-bootstrap4-4.3.1+dfsg2/js/src/util.js --- twitter-bootstrap4-4.2.1+dfsg2/js/src/util.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/src/util.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,6 +1,6 @@ /** * -------------------------------------------------------------------------- - * Bootstrap (v4.2.1): util.js + * Bootstrap (v4.3.1): util.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -82,7 +82,11 @@ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '' } - return selector && document.querySelector(selector) ? selector : null + try { + return document.querySelector(selector) ? selector : null + } catch (err) { + return null + } }, getTransitionDurationFromElement(element) { diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/tests/index.html twitter-bootstrap4-4.3.1+dfsg2/js/tests/index.html --- twitter-bootstrap4-4.2.1+dfsg2/js/tests/index.html 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/tests/index.html 2019-02-13 16:01:40.000000000 +0000 @@ -6,19 +6,7 @@ Bootstrap Plugin Test Suite - + diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/tests/karma.conf.js twitter-bootstrap4-4.3.1+dfsg2/js/tests/karma.conf.js --- twitter-bootstrap4-4.2.1+dfsg2/js/tests/karma.conf.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/tests/karma.conf.js 2019-02-13 16:01:40.000000000 +0000 @@ -1,16 +1,14 @@ /* eslint-env node */ /* eslint no-process-env: 0 */ +const path = require('path') const ip = require('ip') -const pkg = require('../../package.json') const { browsers, browsersKeys } = require('./browsers') -const path = require('path') -const jsCoveragePath = path.resolve(__dirname, '../coverage') -const jqueryFile = process.env.USE_OLD_JQUERY ? 'https://code.jquery.com/jquery-1.9.1.min.js' : `site/docs/${pkg.version_short}/assets/js/vendor/jquery-slim.min.js` +const jqueryFile = process.env.USE_OLD_JQUERY ? 'https://code.jquery.com/jquery-1.9.1.min.js' : 'node_modules/jquery/dist/jquery.slim.min.js' const bundle = process.env.BUNDLE === 'true' const browserStack = process.env.BROWSER === 'true' @@ -94,7 +92,7 @@ conf.browsers = browsersKeys reporters.push('BrowserStack') files = files.concat([ - `site/docs/${pkg.version_short}/assets/js/vendor/jquery-slim.min.js`, + 'node_modules/jquery/dist/jquery.slim.min.js', 'js/dist/util.js', 'js/dist/tooltip.js', 'js/dist/!(util|index|tooltip).js' // include all of our js/dist files except util.js, index.js and tooltip.js @@ -117,7 +115,7 @@ conf.customLaunchers = customLaunchers conf.detectBrowsers = detectBrowsers conf.coverageIstanbulReporter = { - dir: jsCoveragePath, + dir: path.resolve(__dirname, '../coverage/'), reports: ['lcov', 'text-summary'], thresholds: { emitWarning: false, diff -Nru twitter-bootstrap4-4.2.1+dfsg2/js/tests/unit/carousel.js twitter-bootstrap4-4.3.1+dfsg2/js/tests/unit/carousel.js --- twitter-bootstrap4-4.2.1+dfsg2/js/tests/unit/carousel.js 2018-12-21 18:55:28.000000000 +0000 +++ twitter-bootstrap4-4.3.1+dfsg2/js/tests/unit/carousel.js 2019-02-13 16:01:40.000000000 +0000 @@ -948,7 +948,7 @@ $textArea.trigger(eventKeyDown) }) - QUnit.test('Should not go to the next item when the carousel is not visible', function (assert) { + QUnit.test('should not go to the next item when the carousel is not visible', function (assert) { assert.expect(2) var done = assert.async() var html = '