-
+
Offcanvas
Build a toggleable off-canvas navigation menu for use with Bootstrap.
diff --git a/docs/4.0/examples/navbar-bottom/index.html b/docs/4.0/examples/navbar-bottom/index.html
new file mode 100644
index 0000000000..3046f9b9ba
--- /dev/null
+++ b/docs/4.0/examples/navbar-bottom/index.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
Bottom navbar example for Bootstrap
+
+
+
+
+
+
+
+
+
Bottom Navbar example
+
This example is a quick exercise to illustrate how the bottom navbar works.
+
View navbar docs »
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/4.0/examples/screenshots/navbar-bottom.jpg b/docs/4.0/examples/screenshots/navbar-bottom.jpg
new file mode 100644
index 0000000000..c25c2f89cf
Binary files /dev/null and b/docs/4.0/examples/screenshots/navbar-bottom.jpg differ
diff --git a/js/src/alert.js b/js/src/alert.js
index 9fcf088b12..9d6c498b94 100644
--- a/js/src/alert.js
+++ b/js/src/alert.js
@@ -189,6 +189,6 @@ const Alert = (() => {
return Alert
-})(jQuery)
+})($)
export default Alert
diff --git a/js/src/button.js b/js/src/button.js
index a121b8e13a..7bf5e87dd7 100644
--- a/js/src/button.js
+++ b/js/src/button.js
@@ -182,6 +182,6 @@ const Button = (() => {
return Button
-})(jQuery)
+})($)
export default Button
diff --git a/js/src/carousel.js b/js/src/carousel.js
index a5ad02541a..3a6d7a4bc5 100644
--- a/js/src/carousel.js
+++ b/js/src/carousel.js
@@ -519,6 +519,6 @@ const Carousel = (() => {
return Carousel
-})(jQuery)
+})($)
export default Carousel
diff --git a/js/src/collapse.js b/js/src/collapse.js
index fa082f1333..d29e487228 100644
--- a/js/src/collapse.js
+++ b/js/src/collapse.js
@@ -404,6 +404,6 @@ const Collapse = (() => {
return Collapse
-})(jQuery)
+})($)
export default Collapse
diff --git a/js/src/dropdown.js b/js/src/dropdown.js
index 6681df668c..3a910996b0 100644
--- a/js/src/dropdown.js
+++ b/js/src/dropdown.js
@@ -445,6 +445,6 @@ const Dropdown = (() => {
return Dropdown
-})(jQuery, Popper)
+})($, Popper)
export default Dropdown
diff --git a/js/src/index.js b/js/src/index.js
index 84a27880e9..2629e507fc 100644
--- a/js/src/index.js
+++ b/js/src/index.js
@@ -19,7 +19,7 @@ import Util from './util'
*/
(() => {
- if (typeof jQuery === 'undefined') {
+ if (typeof $ === 'undefined') {
throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.')
}
@@ -29,7 +29,7 @@ import Util from './util'
if (version[0] < min || version[0] >= max) {
throw new Error('Bootstrap\'s JavaScript requires at least jQuery v3.0.0 but less than v4.0.0')
}
-})(jQuery)
+})($)
export {
Util,
diff --git a/js/src/modal.js b/js/src/modal.js
index 689e93bc15..fb787208d8 100644
--- a/js/src/modal.js
+++ b/js/src/modal.js
@@ -585,6 +585,6 @@ const Modal = (() => {
return Modal
-})(jQuery)
+})($)
export default Modal
diff --git a/js/src/popover.js b/js/src/popover.js
index aeccdf7501..89c78f4fee 100644
--- a/js/src/popover.js
+++ b/js/src/popover.js
@@ -189,6 +189,6 @@ const Popover = (() => {
return Popover
-})(jQuery)
+})($)
export default Popover
diff --git a/js/src/scrollspy.js b/js/src/scrollspy.js
index e8f0d3101b..c844bd5304 100644
--- a/js/src/scrollspy.js
+++ b/js/src/scrollspy.js
@@ -335,6 +335,6 @@ const ScrollSpy = (() => {
return ScrollSpy
-})(jQuery)
+})($)
export default ScrollSpy
diff --git a/js/src/tab.js b/js/src/tab.js
index 2a554c287d..17699dfbe4 100644
--- a/js/src/tab.js
+++ b/js/src/tab.js
@@ -282,6 +282,6 @@ const Tab = (() => {
return Tab
-})(jQuery)
+})($)
export default Tab
diff --git a/js/src/tooltip.js b/js/src/tooltip.js
index ca7e52b14b..8d262f4ad6 100644
--- a/js/src/tooltip.js
+++ b/js/src/tooltip.js
@@ -728,6 +728,6 @@ const Tooltip = (() => {
return Tooltip
-})(jQuery, Popper)
+})($, Popper)
export default Tooltip
diff --git a/js/src/util.js b/js/src/util.js
index 7eb25de558..a756600144 100644
--- a/js/src/util.js
+++ b/js/src/util.js
@@ -161,6 +161,6 @@ const Util = (() => {
return Util
-})(jQuery)
+})($)
export default Util
diff --git a/package-lock.json b/package-lock.json
index 7bcfbf507b..4fec5a068c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,9 +5,9 @@
"requires": true,
"dependencies": {
"abbrev": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
- "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true
},
"acorn": {
@@ -243,7 +243,7 @@
"dev": true,
"requires": {
"browserslist": "2.4.0",
- "caniuse-lite": "1.0.30000738",
+ "caniuse-lite": "1.0.30000743",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
"postcss": "6.0.12",
@@ -1221,8 +1221,8 @@
"integrity": "sha512-aM2Gt4x9bVlCUteADBS6JP0F+2tMWKM1jQzUulVROtdFWFIcIVvY76AJbr7GDqy0eDhn+PcnpzzivGxY4qiaKQ==",
"dev": true,
"requires": {
- "caniuse-lite": "1.0.30000738",
- "electron-to-chromium": "1.3.22"
+ "caniuse-lite": "1.0.30000743",
+ "electron-to-chromium": "1.3.24"
}
},
"builtin-modules": {
@@ -1255,56 +1255,6 @@
"gzip-size": "3.0.0",
"prettycli": "1.4.3",
"read-pkg-up": "2.0.0"
- },
- "dependencies": {
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "strip-bom": "3.0.0"
- }
- },
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "dev": true,
- "requires": {
- "pify": "2.3.0"
- }
- },
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "dev": true,
- "requires": {
- "load-json-file": "2.0.0",
- "normalize-package-data": "2.4.0",
- "path-type": "2.0.0"
- }
- },
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "dev": true,
- "requires": {
- "find-up": "2.1.0",
- "read-pkg": "2.0.0"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- }
}
},
"bytes": {
@@ -1329,9 +1279,9 @@
"dev": true
},
"camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
"dev": true
},
"camelcase-keys": {
@@ -1342,6 +1292,14 @@
"requires": {
"camelcase": "2.1.1",
"map-obj": "1.0.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ }
}
},
"caniuse-db": {
@@ -1351,9 +1309,9 @@
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30000738",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000738.tgz",
- "integrity": "sha1-GCDDya25oRfjEaW9yh0lvDQojro=",
+ "version": "1.0.30000743",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000743.tgz",
+ "integrity": "sha1-9PXGdQZ2/49hROpARWw3KdU0F2k=",
"dev": true
},
"capture-stack-trace": {
@@ -1879,9 +1837,9 @@
}
},
"electron-to-chromium": {
- "version": "1.3.22",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.22.tgz",
- "integrity": "sha1-QyLVLBUUBuPq73StAmdog+hBZBg=",
+ "version": "1.3.24",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.24.tgz",
+ "integrity": "sha1-m3uIuwXOufoBahd4M8wt3jiPIbY=",
"dev": true
},
"ensure-posix-path": {
@@ -1906,9 +1864,9 @@
}
},
"es-abstract": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz",
- "integrity": "sha512-dvhwFL3yjQxNNsOWx6exMlaDrRHCRGMQlnx5lsXDCZ/J7G/frgIIl94zhZSp/galVAYp7VzPi1OrAHta89/yGQ==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz",
+ "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==",
"dev": true,
"requires": {
"es-to-primitive": "1.1.1",
@@ -1948,9 +1906,9 @@
"dev": true
},
"eslint": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.7.2.tgz",
- "integrity": "sha1-/29fUZOEiifum2J74+c/ucteZi4=",
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.8.0.tgz",
+ "integrity": "sha1-Ip7w41Tg5h2DfHqA/fuoJeGZgV4=",
"dev": true,
"requires": {
"ajv": "5.2.3",
@@ -2065,8 +2023,8 @@
"integrity": "sha1-zFJq9KExK30uBWU+VtDIq3DA4FM=",
"dev": true,
"requires": {
- "caniuse-lite": "1.0.30000738",
- "electron-to-chromium": "1.3.22"
+ "caniuse-lite": "1.0.30000743",
+ "electron-to-chromium": "1.3.24"
}
}
}
@@ -2366,6 +2324,18 @@
"locate-path": "2.0.0"
}
},
+ "findup-sync": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
+ "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=",
+ "dev": true,
+ "requires": {
+ "detect-file": "0.1.0",
+ "is-glob": "2.0.1",
+ "micromatch": "2.3.11",
+ "resolve-dir": "0.1.1"
+ }
+ },
"fined": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz",
@@ -3556,9 +3526,9 @@
}
},
"jsunitsaucelabs": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/jsunitsaucelabs/-/jsunitsaucelabs-1.2.0.tgz",
- "integrity": "sha512-Jgqe0+XRvnkF4r6fmfwsEC8DC38EgsCU7XCGGJ8Y+G1ze38isLmzTlCSNwyG/NNJuYivbABauwCk53KAne1cLQ==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/jsunitsaucelabs/-/jsunitsaucelabs-1.2.1.tgz",
+ "integrity": "sha512-CvNOB5PFg1EMmBjd1EeLSDjq+YLhn6v6n2BUtqWnh0l/ivAbbbBGQQ0mxgz0TJdMQHJGhmtACLHIFXKPSKKg4A==",
"dev": true,
"requires": {
"sauce-tunnel": "2.5.0"
@@ -3637,33 +3607,18 @@
"lodash.mapvalues": "4.6.0",
"rechoir": "0.6.2",
"resolve": "1.4.0"
- },
- "dependencies": {
- "findup-sync": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
- "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=",
- "dev": true,
- "requires": {
- "detect-file": "0.1.0",
- "is-glob": "2.0.1",
- "micromatch": "2.3.11",
- "resolve-dir": "0.1.1"
- }
- }
}
},
"load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
"parse-json": "2.2.0",
"pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
+ "strip-bom": "3.0.0"
}
},
"locate-path": {
@@ -4024,11 +3979,84 @@
"trim-newlines": "1.0.0"
},
"dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
}
}
},
@@ -4264,7 +4292,7 @@
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"dev": true,
"requires": {
- "abbrev": "1.1.0"
+ "abbrev": "1.1.1"
}
},
"normalize-package-data": {
@@ -4315,46 +4343,6 @@
"read-pkg": "2.0.0",
"shell-quote": "1.6.1",
"string.prototype.padend": "3.0.0"
- },
- "dependencies": {
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "strip-bom": "3.0.0"
- }
- },
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "dev": true,
- "requires": {
- "pify": "2.3.0"
- }
- },
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "dev": true,
- "requires": {
- "load-json-file": "2.0.0",
- "normalize-package-data": "2.4.0",
- "path-type": "2.0.0"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- }
}
},
"npm-run-path": {
@@ -4703,14 +4691,12 @@
"dev": true
},
"path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
+ "pify": "2.3.0"
}
},
"pause-stream": {
@@ -5049,18 +5035,6 @@
"graceful-fs": "4.1.11"
}
},
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "strip-bom": "3.0.0"
- }
- },
"os-locale": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
@@ -5072,42 +5046,6 @@
"mem": "1.1.0"
}
},
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "dev": true,
- "requires": {
- "pify": "2.3.0"
- }
- },
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "dev": true,
- "requires": {
- "load-json-file": "2.0.0",
- "normalize-package-data": "2.4.0",
- "path-type": "2.0.0"
- }
- },
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "dev": true,
- "requires": {
- "find-up": "2.1.0",
- "read-pkg": "2.0.0"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- },
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
@@ -5147,9 +5085,9 @@
}
},
"postcss-less": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-1.1.0.tgz",
- "integrity": "sha1-vcx2vmTEMk2HP7xc2foueZ5DBfo=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-1.1.1.tgz",
+ "integrity": "sha512-zl0EEqq8Urh37Ppdv9zzhpZpLHrgkxmt6e3O4ftRa7/b8Uq2LV+/KBVM8/KuzmHNu+mthhOArg1lxbfqQ3NUdg==",
"dev": true,
"requires": {
"postcss": "5.2.17"
@@ -5465,18 +5403,6 @@
"graceful-readlink": "1.0.1"
}
},
- "findup-sync": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
- "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=",
- "dev": true,
- "requires": {
- "detect-file": "0.1.0",
- "is-glob": "2.0.1",
- "micromatch": "2.3.11",
- "resolve-dir": "0.1.1"
- }
- },
"resolve": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.2.tgz",
@@ -5559,45 +5485,24 @@
}
},
"read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
"dev": true,
"requires": {
- "load-json-file": "1.1.0",
+ "load-json-file": "2.0.0",
"normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
+ "path-type": "2.0.0"
}
},
"read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
"dev": true,
"requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
- },
- "dependencies": {
- "find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "dev": true,
- "requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "dev": true,
- "requires": {
- "pinkie-promise": "2.0.1"
- }
- }
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
}
},
"readable-stream": {
@@ -5986,11 +5891,15 @@
"yargs": "7.1.0"
},
"dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
},
"is-fullwidth-code-point": {
"version": "1.0.0",
@@ -6001,6 +5910,60 @@
"number-is-nan": "1.0.1"
}
},
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -6021,6 +5984,15 @@
"ansi-regex": "2.1.1"
}
},
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
+ },
"yargs": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
@@ -6352,7 +6324,7 @@
"dev": true,
"requires": {
"define-properties": "1.1.2",
- "es-abstract": "1.8.2",
+ "es-abstract": "1.9.0",
"function-bind": "1.1.1"
}
},
@@ -6380,13 +6352,10 @@
}
},
"strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "dev": true,
- "requires": {
- "is-utf8": "0.2.1"
- }
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
},
"strip-eof": {
"version": "1.0.0",
@@ -6443,7 +6412,7 @@
"normalize-selector": "0.2.0",
"pify": "3.0.0",
"postcss": "6.0.12",
- "postcss-less": "1.1.0",
+ "postcss-less": "1.1.1",
"postcss-media-query-parser": "0.2.3",
"postcss-reporter": "5.0.0",
"postcss-resolve-nested-selector": "0.1.1",
@@ -6669,7 +6638,7 @@
"integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
"dev": true,
"requires": {
- "abbrev": "1.1.0"
+ "abbrev": "1.1.1"
}
}
}
@@ -6733,9 +6702,9 @@
"dev": true
},
"uglify-js": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.2.tgz",
- "integrity": "sha512-kKJ8zg7Ivw3DG9Ytgp4+iiSHq3HaHjEQMvyT2x2Bs8kSUwVemj6bPGFp6YWL81f5NAIOLVUKPxBSvqLRGXMpdw==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.3.tgz",
+ "integrity": "sha512-5ZUOgufCHjN2mBBLfz63UtWTP6va2sSzBpNCM+/iqI6RnPzEhANmB0EKiKBYdQbc3v7KeomXJ2DJx0Xq9gvUvA==",
"dev": true,
"requires": {
"commander": "2.11.0",
@@ -7196,11 +7165,15 @@
"yargs-parser": "4.2.1"
},
"dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
},
"is-fullwidth-code-point": {
"version": "1.0.0",
@@ -7211,6 +7184,60 @@
"number-is-nan": "1.0.1"
}
},
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -7230,6 +7257,15 @@
"requires": {
"ansi-regex": "2.1.1"
}
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
}
}
},
@@ -7240,14 +7276,6 @@
"dev": true,
"requires": {
"camelcase": "3.0.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true
- }
}
},
"yauzl": {
diff --git a/scss/_navbar.scss b/scss/_navbar.scss
index 1398400c03..a0ccc06fb7 100644
--- a/scss/_navbar.scss
+++ b/scss/_navbar.scss
@@ -74,6 +74,13 @@
position: static;
float: none;
}
+
+ .dropdown-toggle {
+ &::after {
+ border-top: $caret-width solid;
+ border-bottom: 0;
+ }
+ }
}
@@ -144,6 +151,18 @@
padding-right: 0;
padding-left: 0;
}
+
+ .dropup {
+ .dropdown-menu {
+ position: absolute;
+ top: auto;
+ bottom: 100%;
+ }
+
+ .dropdown-toggle {
+ @include caret(up);
+ }
+ }
}
@include media-breakpoint-up($next) {