diff --git a/build/svgo-inline.yml b/build/svgo-inline.yml new file mode 100644 index 000000000000..63bfe6f8bbe0 --- /dev/null +++ b/build/svgo-inline.yml @@ -0,0 +1,50 @@ +# Usage: +# install svgo globally: `npm i -g svgo` +# svgo --config=build/svgo.yml --input=foo.svg + +# https://github.com/svg/svgo/blob/master/docs/how-it-works/en.md +# replace default config + +multipass: true +#full: true + +# https://github.com/svg/svgo/blob/master/lib/svgo/js2svg.js#L6 for more config options + +plugins: + - cleanupAttrs: true + - cleanupEnableBackground: true + - cleanupIDs: true + - cleanupListOfValues: true + - cleanupNumericValues: true + - collapseGroups: true + - convertColors: true + - convertPathData: true + - convertShapeToPath: true + - convertStyleToAttrs: true + - convertTransform: true + - inlineStyles: true + - mergePaths: true + - minifyStyles: true + - moveElemsAttrsToGroup: true + - moveGroupAttrsToElems: true + - removeAttrs: + attrs: + - "data-name" + - removeComments: true + - removeDesc: true + - removeDoctype: true + - removeEditorsNSData: true + - removeEmptyAttrs: true + - removeEmptyContainers: true + - removeEmptyText: true + - removeHiddenElems: true + - removeMetadata: true + - removeNonInheritableGroupAttrs: true + - removeTitle: true + - removeUnusedNS: true + - removeUselessDefs: true + - removeUselessStrokeAndFill: true + - removeViewBox: false + - removeXMLNS: false + - removeXMLProcInst: true + - sortAttrs: true diff --git a/dist/icons/arrow-clockwise.svg b/dist/icons/arrow-clockwise.svg new file mode 100644 index 000000000000..d5da5795f991 --- /dev/null +++ b/dist/icons/arrow-clockwise.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/arrow-counter-clockwise.svg b/dist/icons/arrow-counter-clockwise.svg new file mode 100644 index 000000000000..01bb0a2bac48 --- /dev/null +++ b/dist/icons/arrow-counter-clockwise.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/arrow-down.svg b/dist/icons/arrow-down.svg new file mode 100644 index 000000000000..703bb29ee733 --- /dev/null +++ b/dist/icons/arrow-down.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/arrow-left-right.svg b/dist/icons/arrow-left-right.svg new file mode 100644 index 000000000000..b90842d2689c --- /dev/null +++ b/dist/icons/arrow-left-right.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/dist/icons/arrow-left.svg b/dist/icons/arrow-left.svg new file mode 100644 index 000000000000..8799440813de --- /dev/null +++ b/dist/icons/arrow-left.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/arrow-repeat.svg b/dist/icons/arrow-repeat.svg new file mode 100644 index 000000000000..dd9df8a3558f --- /dev/null +++ b/dist/icons/arrow-repeat.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/dist/icons/arrow-right.svg b/dist/icons/arrow-right.svg new file mode 100644 index 000000000000..adbddb822304 --- /dev/null +++ b/dist/icons/arrow-right.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/arrow-up-down.svg b/dist/icons/arrow-up-down.svg new file mode 100644 index 000000000000..4e22eccf0630 --- /dev/null +++ b/dist/icons/arrow-up-down.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/dist/icons/arrow-up.svg b/dist/icons/arrow-up.svg new file mode 100644 index 000000000000..a1f84eaf61be --- /dev/null +++ b/dist/icons/arrow-up.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/bold.svg b/dist/icons/bold.svg new file mode 100644 index 000000000000..258ebbc214a1 --- /dev/null +++ b/dist/icons/bold.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/bookmark-fill.svg b/dist/icons/bookmark-fill.svg new file mode 100644 index 000000000000..01c7467ce6ce --- /dev/null +++ b/dist/icons/bookmark-fill.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/bookmark.svg b/dist/icons/bookmark.svg new file mode 100644 index 000000000000..1e31686815cf --- /dev/null +++ b/dist/icons/bookmark.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/bootstrap-fill.svg b/dist/icons/bootstrap-fill.svg new file mode 100644 index 000000000000..556ccbb48cf4 --- /dev/null +++ b/dist/icons/bootstrap-fill.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/bootstrap.svg b/dist/icons/bootstrap.svg new file mode 100644 index 000000000000..44ce97c6d08f --- /dev/null +++ b/dist/icons/bootstrap.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/calendar.svg b/dist/icons/calendar.svg new file mode 100644 index 000000000000..57964c3c330a --- /dev/null +++ b/dist/icons/calendar.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/dist/icons/check.svg b/dist/icons/check.svg new file mode 100644 index 000000000000..d31ef6d928ad --- /dev/null +++ b/dist/icons/check.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/chevron-compact-left.svg b/dist/icons/chevron-compact-left.svg new file mode 100644 index 000000000000..d876976e5c45 --- /dev/null +++ b/dist/icons/chevron-compact-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/chevron-compact-right.svg b/dist/icons/chevron-compact-right.svg new file mode 100644 index 000000000000..3a36d0eb1d93 --- /dev/null +++ b/dist/icons/chevron-compact-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/chevron-down.svg b/dist/icons/chevron-down.svg new file mode 100644 index 000000000000..bf0ef6ec4975 --- /dev/null +++ b/dist/icons/chevron-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/chevron-left.svg b/dist/icons/chevron-left.svg new file mode 100644 index 000000000000..00ac592de610 --- /dev/null +++ b/dist/icons/chevron-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/chevron-right.svg b/dist/icons/chevron-right.svg new file mode 100644 index 000000000000..af8336f47745 --- /dev/null +++ b/dist/icons/chevron-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/chevron-up.svg b/dist/icons/chevron-up.svg new file mode 100644 index 000000000000..d11baf165e81 --- /dev/null +++ b/dist/icons/chevron-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/circle-slash.svg b/dist/icons/circle-slash.svg new file mode 100644 index 000000000000..eb5b5191a021 --- /dev/null +++ b/dist/icons/circle-slash.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/circle.svg b/dist/icons/circle.svg new file mode 100644 index 000000000000..d28e168b9a12 --- /dev/null +++ b/dist/icons/circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/clock-fill.svg b/dist/icons/clock-fill.svg new file mode 100644 index 000000000000..683d6ad0f245 --- /dev/null +++ b/dist/icons/clock-fill.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/clock.svg b/dist/icons/clock.svg new file mode 100644 index 000000000000..1a84777fa6cf --- /dev/null +++ b/dist/icons/clock.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/dist/icons/code.svg b/dist/icons/code.svg new file mode 100644 index 000000000000..a8bfd2414ee9 --- /dev/null +++ b/dist/icons/code.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/credit-card.svg b/dist/icons/credit-card.svg new file mode 100644 index 000000000000..062a5923a3a7 --- /dev/null +++ b/dist/icons/credit-card.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dist/icons/dash.svg b/dist/icons/dash.svg new file mode 100644 index 000000000000..774ce1b92400 --- /dev/null +++ b/dist/icons/dash.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/diff.svg b/dist/icons/diff.svg new file mode 100644 index 000000000000..b8a4461f1c98 --- /dev/null +++ b/dist/icons/diff.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/display.svg b/dist/icons/display.svg new file mode 100644 index 000000000000..91d8b797f727 --- /dev/null +++ b/dist/icons/display.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/dot.svg b/dist/icons/dot.svg new file mode 100644 index 000000000000..f8f8ca16ee5a --- /dev/null +++ b/dist/icons/dot.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/ellipsis.svg b/dist/icons/ellipsis.svg new file mode 100644 index 000000000000..b59b5ec5837f --- /dev/null +++ b/dist/icons/ellipsis.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/envelope.svg b/dist/icons/envelope.svg new file mode 100644 index 000000000000..8f7840d67d69 --- /dev/null +++ b/dist/icons/envelope.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/fullscreen.svg b/dist/icons/fullscreen.svg new file mode 100644 index 000000000000..a397818df171 --- /dev/null +++ b/dist/icons/fullscreen.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/gear-fill.svg b/dist/icons/gear-fill.svg new file mode 100644 index 000000000000..21c9b69ff424 --- /dev/null +++ b/dist/icons/gear-fill.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/gear.svg b/dist/icons/gear.svg new file mode 100644 index 000000000000..1d1fbc688708 --- /dev/null +++ b/dist/icons/gear.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/heart-filled.svg b/dist/icons/heart-filled.svg new file mode 100644 index 000000000000..c239969e27f2 --- /dev/null +++ b/dist/icons/heart-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/heart-outline.svg b/dist/icons/heart-outline.svg new file mode 100644 index 000000000000..dbbf35b7bd06 --- /dev/null +++ b/dist/icons/heart-outline.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/house-fill.svg b/dist/icons/house-fill.svg new file mode 100644 index 000000000000..543cadc6d70e --- /dev/null +++ b/dist/icons/house-fill.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/house.svg b/dist/icons/house.svg new file mode 100644 index 000000000000..bf87aa13bea1 --- /dev/null +++ b/dist/icons/house.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/image.svg b/dist/icons/image.svg new file mode 100644 index 000000000000..464eaf6ec242 --- /dev/null +++ b/dist/icons/image.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dist/icons/italic.svg b/dist/icons/italic.svg new file mode 100644 index 000000000000..0ad0d532a3c3 --- /dev/null +++ b/dist/icons/italic.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/justify-left.svg b/dist/icons/justify-left.svg new file mode 100644 index 000000000000..2fb7fe6fd651 --- /dev/null +++ b/dist/icons/justify-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/justify-right.svg b/dist/icons/justify-right.svg new file mode 100644 index 000000000000..9f48a3266474 --- /dev/null +++ b/dist/icons/justify-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/justify.svg b/dist/icons/justify.svg new file mode 100644 index 000000000000..e93c2bec02e4 --- /dev/null +++ b/dist/icons/justify.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/list-numbered.svg b/dist/icons/list-numbered.svg new file mode 100644 index 000000000000..8061beff1038 --- /dev/null +++ b/dist/icons/list-numbered.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/list-unordered.svg b/dist/icons/list-unordered.svg new file mode 100644 index 000000000000..5ed706b34b00 --- /dev/null +++ b/dist/icons/list-unordered.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/list.svg b/dist/icons/list.svg new file mode 100644 index 000000000000..baddf95ef74e --- /dev/null +++ b/dist/icons/list.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/lock-fill.svg b/dist/icons/lock-fill.svg new file mode 100644 index 000000000000..81f551b012e8 --- /dev/null +++ b/dist/icons/lock-fill.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/lock.svg b/dist/icons/lock.svg new file mode 100644 index 000000000000..527187760136 --- /dev/null +++ b/dist/icons/lock.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/move.svg b/dist/icons/move.svg new file mode 100644 index 000000000000..7862deaae54f --- /dev/null +++ b/dist/icons/move.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/pause-fill.svg b/dist/icons/pause-fill.svg new file mode 100644 index 000000000000..cf3c29e99627 --- /dev/null +++ b/dist/icons/pause-fill.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/pause.svg b/dist/icons/pause.svg new file mode 100644 index 000000000000..11873e5def74 --- /dev/null +++ b/dist/icons/pause.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/people.svg b/dist/icons/people.svg new file mode 100644 index 000000000000..91583fd55b73 --- /dev/null +++ b/dist/icons/people.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/person.svg b/dist/icons/person.svg new file mode 100644 index 000000000000..0f510c6dd192 --- /dev/null +++ b/dist/icons/person.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/play-fill.svg b/dist/icons/play-fill.svg new file mode 100644 index 000000000000..0d212d769867 --- /dev/null +++ b/dist/icons/play-fill.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/play.svg b/dist/icons/play.svg new file mode 100644 index 000000000000..41fd6273eaf6 --- /dev/null +++ b/dist/icons/play.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/plus.svg b/dist/icons/plus.svg new file mode 100644 index 000000000000..94ecaf430e49 --- /dev/null +++ b/dist/icons/plus.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/reboot.svg b/dist/icons/reboot.svg new file mode 100644 index 000000000000..5ad6dd5276bb --- /dev/null +++ b/dist/icons/reboot.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/resize.svg b/dist/icons/resize.svg new file mode 100644 index 000000000000..3240554c0ff4 --- /dev/null +++ b/dist/icons/resize.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/search.svg b/dist/icons/search.svg new file mode 100644 index 000000000000..92b994c07a98 --- /dev/null +++ b/dist/icons/search.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/skip-backward-fill.svg b/dist/icons/skip-backward-fill.svg new file mode 100644 index 000000000000..d180be08003f --- /dev/null +++ b/dist/icons/skip-backward-fill.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dist/icons/skip-backward.svg b/dist/icons/skip-backward.svg new file mode 100644 index 000000000000..c9ada1078639 --- /dev/null +++ b/dist/icons/skip-backward.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/skip-end-fill.svg b/dist/icons/skip-end-fill.svg new file mode 100644 index 000000000000..9467f0aaf22c --- /dev/null +++ b/dist/icons/skip-end-fill.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/skip-end.svg b/dist/icons/skip-end.svg new file mode 100644 index 000000000000..2991ceabf46f --- /dev/null +++ b/dist/icons/skip-end.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/skip-forward-fill.svg b/dist/icons/skip-forward-fill.svg new file mode 100644 index 000000000000..ac5ed5e5a5be --- /dev/null +++ b/dist/icons/skip-forward-fill.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dist/icons/skip-forward.svg b/dist/icons/skip-forward.svg new file mode 100644 index 000000000000..9591fd3c40d7 --- /dev/null +++ b/dist/icons/skip-forward.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/skip-start-fill.svg b/dist/icons/skip-start-fill.svg new file mode 100644 index 000000000000..b8c6d024d9ca --- /dev/null +++ b/dist/icons/skip-start-fill.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/skip-start.svg b/dist/icons/skip-start.svg new file mode 100644 index 000000000000..37b6aba1f1fb --- /dev/null +++ b/dist/icons/skip-start.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/star-filled.svg b/dist/icons/star-filled.svg new file mode 100644 index 000000000000..babe7a8d79a5 --- /dev/null +++ b/dist/icons/star-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/star-outline.svg b/dist/icons/star-outline.svg new file mode 100644 index 000000000000..0c701b224810 --- /dev/null +++ b/dist/icons/star-outline.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/stop-fill.svg b/dist/icons/stop-fill.svg new file mode 100644 index 000000000000..f88de4b2c2ee --- /dev/null +++ b/dist/icons/stop-fill.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/stop.svg b/dist/icons/stop.svg new file mode 100644 index 000000000000..78430d6cb5fe --- /dev/null +++ b/dist/icons/stop.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/tag.svg b/dist/icons/tag.svg new file mode 100644 index 000000000000..0e7f6a3e517e --- /dev/null +++ b/dist/icons/tag.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/terminal-fill.svg b/dist/icons/terminal-fill.svg new file mode 100644 index 000000000000..8d8d1cb2679c --- /dev/null +++ b/dist/icons/terminal-fill.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/terminal.svg b/dist/icons/terminal.svg new file mode 100644 index 000000000000..48711b0076b9 --- /dev/null +++ b/dist/icons/terminal.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/text-center.svg b/dist/icons/text-center.svg new file mode 100644 index 000000000000..9ad0a7a1dfb8 --- /dev/null +++ b/dist/icons/text-center.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/text-indent.svg b/dist/icons/text-indent.svg new file mode 100644 index 000000000000..66832a7a2741 --- /dev/null +++ b/dist/icons/text-indent.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/text-left.svg b/dist/icons/text-left.svg new file mode 100644 index 000000000000..4aad99bbd293 --- /dev/null +++ b/dist/icons/text-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/text-right.svg b/dist/icons/text-right.svg new file mode 100644 index 000000000000..cfbd63b8f7c2 --- /dev/null +++ b/dist/icons/text-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/tv.svg b/dist/icons/tv.svg new file mode 100644 index 000000000000..7fbcedfacde9 --- /dev/null +++ b/dist/icons/tv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/type.svg b/dist/icons/type.svg new file mode 100644 index 000000000000..c3208aad044d --- /dev/null +++ b/dist/icons/type.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/underline.svg b/dist/icons/underline.svg new file mode 100644 index 000000000000..7585c076d3d2 --- /dev/null +++ b/dist/icons/underline.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/unlock-fill.svg b/dist/icons/unlock-fill.svg new file mode 100644 index 000000000000..59e0dd4ea8d2 --- /dev/null +++ b/dist/icons/unlock-fill.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/dist/icons/unlock.svg b/dist/icons/unlock.svg new file mode 100644 index 000000000000..736de73c6b97 --- /dev/null +++ b/dist/icons/unlock.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/warning.svg b/dist/icons/warning.svg new file mode 100644 index 000000000000..1d486d04a476 --- /dev/null +++ b/dist/icons/warning.svg @@ -0,0 +1,3 @@ + + + diff --git a/dist/icons/wifi.svg b/dist/icons/wifi.svg new file mode 100644 index 000000000000..5de021d12754 --- /dev/null +++ b/dist/icons/wifi.svg @@ -0,0 +1 @@ + diff --git a/dist/icons/x.svg b/dist/icons/x.svg new file mode 100644 index 000000000000..9db405d62105 --- /dev/null +++ b/dist/icons/x.svg @@ -0,0 +1,3 @@ + + + diff --git a/package-lock.json b/package-lock.json index 8b14c812fbdb..a5fc2939a746 100644 --- a/package-lock.json +++ b/package-lock.json @@ -898,6 +898,12 @@ "integrity": "sha512-+YB9FtyxXGyD54p8rXwWaN1EWEyar5L58GlGWgtH2I9rGmLGBQcw63+0jw+ujqVavNuO47S1ByAjm9zdHMnskw==", "dev": true }, + "@types/q": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", + "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", + "dev": true + }, "@types/resolve": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", @@ -2451,6 +2457,17 @@ "mimic-response": "^1.0.0" } }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -2776,6 +2793,22 @@ "nth-check": "~1.0.1" } }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-tree": { + "version": "1.0.0-alpha.33", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz", + "integrity": "sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.5.3" + } + }, "css-what": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", @@ -2788,6 +2821,33 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, + "csso": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", + "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.29" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + } + }, + "mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", + "dev": true + } + } + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -7074,6 +7134,12 @@ "unist-util-visit": "^1.1.0" } }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -8088,6 +8154,16 @@ "object-keys": "^1.0.11" } }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -9785,6 +9861,12 @@ "yargs": "^7.0.0" } }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, "scss-tokenizer": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", @@ -10617,6 +10699,12 @@ "tweetnacl": "~0.14.0" } }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, "state-toggle": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz", @@ -11097,6 +11185,51 @@ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, + "svgo": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz", + "integrity": "sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.33", + "csso": "^3.5.1", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "css-select": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", + "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^2.1.2", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } + } + }, "table": { "version": "5.4.5", "resolved": "https://registry.npmjs.org/table/-/table-5.4.5.tgz", @@ -11656,6 +11789,12 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -11844,6 +11983,16 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", diff --git a/package.json b/package.json index 4f273231edf1..23edea2a970f 100644 --- a/package.json +++ b/package.json @@ -61,17 +61,19 @@ "js-test-karma": "karma start js/tests/karma.conf.js", "js-test-integration": "rollup --config js/tests/integration/rollup.bundle.js", "js-test-cloud": "cross-env BROWSER=true npm run js-test-karma", + "icons-prep": "svgo --config=build/svgo.yml --input=dist/icons/", + "icons-copy": "cross-env-shell shx mkdir -p site/static/docs/$npm_package_version_short/dist/ && cross-env-shell shx cp -r dist/icons/ site/static/docs/$npm_package_version_short/dist/", "lint": "npm-run-all --parallel js-lint css-lint", "coveralls": "shx cat js/coverage/lcov.info | coveralls", "docs": "npm-run-all css-docs js-docs docs-build docs-lint", - "predocs-build": "npm-run-all css-copy js-copy", + "predocs-build": "npm-run-all css-copy js-copy icons-copy", "docs-build": "hugo --cleanDestinationDir", "docs-compile": "npm run docs-build", "docs-production": "cross-env HUGO_ENV=production npm run docs-build", "docs-linkinator": "linkinator _gh_pages --recurse --silent --skip \"^(?!http://localhost)\"", "docs-vnu": "node build/vnu-jar.js", "docs-lint": "npm-run-all --parallel docs-vnu docs-linkinator", - "predocs-serve": "npm-run-all css-copy js-copy", + "predocs-serve": "npm-run-all css-copy js-copy icons-copy", "docs-serve": "hugo server --port 9001 --disableFastRender", "docs-serve-only": "serve _gh_pages --listen 9001", "update-deps": "ncu -a -x karma-browserstack-launcher && npm update && cross-env-shell echo Manually update \\\"site/static/docs/$npm_package_version_short/assets/js/vendor/\\\"", @@ -150,6 +152,7 @@ "shx": "^0.3.2", "stylelint": "^10.1.0", "stylelint-config-twbs-bootstrap": "^0.4.0", + "svgo": "^1.3.0", "terser": "^4.1.2", "vnu-jar": "19.6.7" }, diff --git a/scss/_icons.scss b/scss/_icons.scss new file mode 100644 index 000000000000..d6d7519246e1 --- /dev/null +++ b/scss/_icons.scss @@ -0,0 +1,13 @@ +.bi { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} + +.bi-light path { + stroke-width: 1px; +} + +.bi-bold path { + stroke-width: 3px; +} diff --git a/scss/_variables.scss b/scss/_variables.scss index cd8997e75581..fa75c980cd35 100644 --- a/scss/_variables.scss +++ b/scss/_variables.scss @@ -1072,10 +1072,10 @@ $carousel-indicator-transition: opacity .6s ease !default; $carousel-caption-width: 70% !default; $carousel-caption-color: $white !default; -$carousel-control-icon-width: 20px !default; +$carousel-control-icon-width: 32px !default; -$carousel-control-prev-icon-bg: url("data:image/svg+xml,") !default; -$carousel-control-next-icon-bg: url("data:image/svg+xml,") !default; +$carousel-control-prev-icon-bg: url("data:image/svg+xml,") !default; +$carousel-control-next-icon-bg: url("data:image/svg+xml,") !default; $carousel-transition-duration: .6s !default; $carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`) diff --git a/scss/bootstrap.scss b/scss/bootstrap.scss index 84745b5d19ee..4343aca47423 100644 --- a/scss/bootstrap.scss +++ b/scss/bootstrap.scss @@ -42,6 +42,7 @@ @import "popover"; @import "carousel"; @import "spinners"; +@import "icons"; // Helpers diff --git a/site/content/docs/4.3/components/icons.md b/site/content/docs/4.3/components/icons.md index 8790dbadba9f..00b44ae6d268 100644 --- a/site/content/docs/4.3/components/icons.md +++ b/site/content/docs/4.3/components/icons.md @@ -1,21 +1,104 @@ --- layout: docs title: Icons -description: Custom icons for Bootstrap components. +description: For the first time ever, Bootstrap features its own icon library, custom designed and built for our components and documentation. group: components toc: true --- -
- - - - - - - - - - - +## Bootstrap icons + +Meet the Bootstrap icons, a limited set of icons designed first and foremost to work with Bootstrap's components. From form controls to navigation, these icons are the perfect complement to our toolkit. They're SVGs, so they'll scale quickly and easily to any size, they can be easily recolored with CSS, and more. They're also included in Bootstrap under the MIT license. + +
+{{< bootstrapIcons.inline >}} +{{- range .Site.Data.icons }} +
+
+ {{ humanize .name }} +
+
{{ humanize .name }}
+
+{{- end }} +{{< /bootstrapIcons.inline >}} +
+ +## How to use + +Bootstrap icons are SVGs, so you can include them into your HTML in a few ways depending on how your project is setup. + +### Embedded + +For example, you can use the SVG as HTML (remember to specify a `width` and `height`). + +{{< example >}} + +{{< /example >}} + +### External image + +Copy the Bootstrap icons SVGs to your directory of choice and reference them like normal images with the `` element. + +{{< highlight html >}} + +{{< /highlight >}} + +### CSS + +You can also use the SVG within your CSS (**be sure to escape any characters**, such as `#` to `%23` when specifying hex color values): + +{{< highlight css >}} +.bi::before { + display: inline-block; + content: ""; + background-image: url("data:image/svg+xml,"); + background-repeat: no-repeat; + background-size: 1rem 1rem; +} +{{< /highlight >}} + +### Customizing + +Depending on the icon, you may add `.bi-light` (`1px`) or `.bi-bold` (`3px`) to make an icon's `stroke-width` lighter or bold. Most Bootstrap icons have a `2px` stroke. + +{{< example >}} + + + + + +{{< /example >}} + +Color can be changed by setting a `.text-*` class or custom CSS: + +{{< example >}} +
+
+{{< /example >}} + +## Additional libraries + +Need or want something else? Check out these recommended icon libraries. While most icon sets include multiple file formats, we prefer SVG implementations for their improved accessibility and vector support. + +### Preferred + +We've tested and used these icon sets ourselves. + +{{< markdown >}} +{{< icons.inline >}} +{{- $type := .Get "type" | default "preferred" -}} + +{{- range (index .Site.Data "icon-libraries" $type) }} +- [{{ .name }}]({{ .website }}) +{{- end }} +{{< /icons.inline >}} +{{< /markdown >}} + +### More options + +While we haven't tried these out, they do look promising and provide multiple formats—including SVG. + +{{< markdown >}} +{{< icons.inline type="more" />}} +{{< /markdown >}} diff --git a/site/content/docs/4.3/extend/icons.md b/site/content/docs/4.3/extend/icons.md deleted file mode 100644 index 1be21c38e827..000000000000 --- a/site/content/docs/4.3/extend/icons.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: docs -title: Icons -description: Guidance and suggestions for using external icon libraries with Bootstrap. -group: extend ---- - -Bootstrap doesn't include an icon library by default, but we have a handful of recommendations for you to choose from. While most icon sets include multiple file formats, we prefer SVG implementations for their improved accessibility and vector support. - -## Preferred - -We've tested and used these icon sets ourselves. - -{{< markdown >}} -{{< icons.inline >}} -{{- $type := .Get "type" | default "preferred" -}} - -{{- range (index .Site.Data.icons $type) }} -- [{{ .name }}]({{ .website }}) -{{- end }} -{{< /icons.inline >}} -{{< /markdown >}} - -## More options - -While we haven't tried these out, they do look promising and provide multiple formats—including SVG. - -{{< markdown >}} -{{< icons.inline type="more" />}} -{{< /markdown >}} diff --git a/site/content/docs/4.3/extend/approach.md b/site/content/docs/4.3/getting-started/approach.md similarity index 99% rename from site/content/docs/4.3/extend/approach.md rename to site/content/docs/4.3/getting-started/approach.md index 3c4d1dae8474..91227186e59e 100644 --- a/site/content/docs/4.3/extend/approach.md +++ b/site/content/docs/4.3/getting-started/approach.md @@ -2,7 +2,7 @@ layout: docs title: Approach description: Learn about the guiding principles, strategies, and techniques used to build and maintain Bootstrap so you can more easily customize and extend it yourself. -group: extend +group: getting-started aliases: - "/docs/4.3/extend/" --- diff --git a/site/data/icon-libraries.yml b/site/data/icon-libraries.yml new file mode 100644 index 000000000000..bdda9e4dc994 --- /dev/null +++ b/site/data/icon-libraries.yml @@ -0,0 +1,23 @@ +preferred: + - name: Font Awesome + website: https://fontawesome.com/ + - name: Feather + website: https://feathericons.com/ + - name: Octicons + website: https://octicons.github.com/ + +more: + - name: Bytesize + website: https://github.com/danklammer/bytesize-icons + - name: Google Material icons + website: https://material.io/tools/icons/ + - name: Ionicons + website: https://ionicons.com/ + - name: Dripicons + website: http://demo.amitjakhu.com/dripicons/ + - name: Ikons + website: http://ikons.piotrkwiatkowski.co.uk/ + - name: Icons8 + website: https://icons8.com/ + - name: icofont + website: https://icofont.com/ diff --git a/site/data/icons.yml b/site/data/icons.yml index bdda9e4dc994..45641b985cd1 100644 --- a/site/data/icons.yml +++ b/site/data/icons.yml @@ -1,23 +1,97 @@ -preferred: - - name: Font Awesome - website: https://fontawesome.com/ - - name: Feather - website: https://feathericons.com/ - - name: Octicons - website: https://octicons.github.com/ - -more: - - name: Bytesize - website: https://github.com/danklammer/bytesize-icons - - name: Google Material icons - website: https://material.io/tools/icons/ - - name: Ionicons - website: https://ionicons.com/ - - name: Dripicons - website: http://demo.amitjakhu.com/dripicons/ - - name: Ikons - website: http://ikons.piotrkwiatkowski.co.uk/ - - name: Icons8 - website: https://icons8.com/ - - name: icofont - website: https://icofont.com/ +- name: bootstrap +- name: bootstrap-fill +- name: reboot + +- name: x +- name: check +- name: dash +- name: plus +- name: dot +- name: circle +- name: warning + +- name: arrow-up +- name: arrow-down +- name: arrow-left +- name: arrow-right +- name: arrow-left-right +- name: arrow-up-down +- name: arrow-clockwise +- name: arrow-counter-clockwise +- name: arrow-repeat +- name: resize +- name: fullscreen +- name: move + +- name: chevron-up +- name: chevron-down +- name: chevron-left +- name: chevron-right +- name: chevron-compact-left +- name: chevron-compact-right + +- name: circle-slash +- name: code +- name: credit-card +- name: diff +- name: ellipsis +- name: envelope +- name: calendar +- name: image + +- name: clock-fill +- name: clock +- name: gear-fill +- name: gear +- name: heart-filled +- name: heart-outline +- name: house-fill +- name: house +- name: bookmark-fill +- name: bookmark +- name: lock-fill +- name: lock +- name: unlock-fill +- name: unlock +- name: star-filled +- name: star-outline +- name: terminal-fill +- name: terminal + +- name: bold +- name: italic +- name: underline +- name: type +- name: text-center +- name: text-indent +- name: text-left +- name: text-right +- name: justify-left +- name: justify-right +- name: justify +- name: list-numbered +- name: list-unordered +- name: list + +- name: play-fill +- name: play +- name: pause-fill +- name: pause +- name: stop-fill +- name: stop +- name: skip-backward-fill +- name: skip-backward +- name: skip-end-fill +- name: skip-end +- name: skip-forward-fill +- name: skip-forward +- name: skip-start-fill +- name: skip-start + +- name: person +- name: people +- name: search +- name: display +- name: tv +- name: tag +- name: wifi diff --git a/site/data/sidebar.yml b/site/data/sidebar.yml index 205b95d7a35b..cf7b1c019c19 100644 --- a/site/data/sidebar.yml +++ b/site/data/sidebar.yml @@ -10,6 +10,7 @@ # - title: Best practices # TODO: Write this content - title: Webpack - title: Accessibility + - title: Approach - title: Layout pages: @@ -90,11 +91,6 @@ - title: Vertical align - title: Visibility -- title: Extend - pages: - - title: Approach - - title: Icons - - title: About pages: - title: Overview diff --git a/site/static/docs/4.3/assets/scss/_component-examples.scss b/site/static/docs/4.3/assets/scss/_component-examples.scss index 41aa04fb7156..b0c7458e743c 100644 --- a/site/static/docs/4.3/assets/scss/_component-examples.scss +++ b/site/static/docs/4.3/assets/scss/_component-examples.scss @@ -313,3 +313,20 @@ color: $gray-900; // Effectively the base text color } } + +.bd-bi-grid > * { + flex: 0 0 calc(100% / 3); + @include font-size(.8125rem); + + @include media-breakpoint-up(sm) { + flex: 0 0 calc(100% / 4); + } + + @include media-breakpoint-up(lg) { + flex: 0 0 calc(100% / 5); + } + + @include media-breakpoint-up(xl) { + flex: 0 0 calc(100% / 6); + } +} diff --git a/site/static/docs/4.3/assets/scss/_subnav.scss b/site/static/docs/4.3/assets/scss/_subnav.scss index b82107ee97e7..7dabb9d50604 100644 --- a/site/static/docs/4.3/assets/scss/_subnav.scss +++ b/site/static/docs/4.3/assets/scss/_subnav.scss @@ -3,7 +3,7 @@ backdrop-filter: blur(1rem); box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .05), inset 0 -1px 0 rgba(0, 0, 0, .15); - .booticon { + .bi { opacity: .25; } diff --git a/site/static/docs/4.3/assets/scss/docs.scss b/site/static/docs/4.3/assets/scss/docs.scss index e811b0a0e3ff..348672ce28c7 100644 --- a/site/static/docs/4.3/assets/scss/docs.scss +++ b/site/static/docs/4.3/assets/scss/docs.scss @@ -52,17 +52,3 @@ @import "syntax"; @import "anchor"; @import "algolia"; - -// Temp -.booticons-list { - .booticon { - display: inline; - width: 4rem; - padding: 1rem; - margin-right: 1rem; - margin-bottom: 1rem; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, .1); - @include border-radius(.25rem); - } -}