diff --git a/ts/editor-toolbar/BUILD.bazel b/ts/editor-toolbar/BUILD.bazel index 3d92ec0c5..8b1962116 100644 --- a/ts/editor-toolbar/BUILD.bazel +++ b/ts/editor-toolbar/BUILD.bazel @@ -3,7 +3,7 @@ load("//ts/svelte:svelte.bzl", "compile_svelte", "svelte_check") load("//ts:prettier.bzl", "prettier_test") load("//ts:eslint.bzl", "eslint_test") load("//ts:esbuild.bzl", "esbuild") -load("//ts:vendor.bzl", "copy_bootstrap_icons") +load("//ts:vendor.bzl", "copy_bootstrap_icons", "copy_mdi_icons") svelte_files = glob(["*.svelte"]) @@ -45,6 +45,20 @@ copy_bootstrap_icons( "type-bold.svg", "type-italic.svg", "type-underline.svg", + "eraser.svg", + "square-fill.svg", + "paperclip.svg", + "mic.svg", + "three-dots.svg", + ], +) + +copy_mdi_icons( + name = "mdi-icons", + icons = [ + "format-superscript.svg", + "format-subscript.svg", + "code-brackets.svg", ], ) @@ -71,6 +85,7 @@ esbuild( "//ts/sass:core_css", "//ts:image_module_support", "bootstrap-icons", + "mdi-icons", ] + svelte_names, ) diff --git a/ts/editor-toolbar/EditorToolbar.svelte b/ts/editor-toolbar/EditorToolbar.svelte index de2bfb3fb..f355e9e4e 100644 --- a/ts/editor-toolbar/EditorToolbar.svelte +++ b/ts/editor-toolbar/EditorToolbar.svelte @@ -9,6 +9,16 @@ import italicIcon from "./type-italic.svg"; import underlineIcon from "./type-underline.svg"; + import superscriptIcon from "./format-superscript.svg"; + import subscriptIcon from "./format-subscript.svg"; + import bracketsIcon from "./code-brackets.svg"; + + import eraserIcon from "./eraser.svg"; + import squareFillIcon from "./square-fill.svg"; + import paperclipIcon from "./paperclip.svg"; + import micIcon from "./mic.svg"; + import threeDotsIcon from "./three-dots.svg"; + export let leftButtons = [ { component: LabelButton, label: "Fields..." }, { component: LabelButton, label: "Cards..." }, @@ -18,6 +28,18 @@ { component: IconButton, icon: boldIcon }, { component: IconButton, icon: italicIcon }, { component: IconButton, icon: underlineIcon }, + + { component: IconButton, icon: superscriptIcon }, + { component: IconButton, icon: subscriptIcon }, + + { component: IconButton, icon: eraserIcon }, + { component: IconButton, icon: squareFillIcon }, + { component: IconButton, icon: squareFillIcon }, + + { component: IconButton, icon: bracketsIcon }, + { component: IconButton, icon: paperclipIcon }, + { component: IconButton, icon: micIcon }, + { component: IconButton, icon: threeDotsIcon }, ]; export let nightMode: boolean; diff --git a/ts/licenses.json b/ts/licenses.json index 90aa38b59..3c74d8774 100644 --- a/ts/licenses.json +++ b/ts/licenses.json @@ -7,14 +7,12 @@ "path": "node_modules/@fluent/bundle", "licenseFile": "node_modules/@fluent/bundle/README.md" }, - "@fortawesome/fontawesome-free@5.15.3": { - "licenses": "(CC-BY-4.0 AND OFL-1.1 AND MIT)", - "repository": "https://github.com/FortAwesome/Font-Awesome", - "publisher": "Dave Gandy", - "email": "dave@fontawesome.com", - "url": "http://twitter.com/davegandy", - "path": "node_modules/@fortawesome/fontawesome-free", - "licenseFile": "node_modules/@fortawesome/fontawesome-free/LICENSE.txt" + "@mdi/svg@5.9.55": { + "licenses": "Apache-2.0", + "repository": "https://github.com/Templarian/MaterialDesign-SVG", + "publisher": "Austin Andrews", + "path": "node_modules/@mdi/svg", + "licenseFile": "node_modules/@mdi/svg/LICENSE" }, "@protobufjs/aspromise@1.1.2": { "licenses": "BSD-3-Clause", diff --git a/ts/package.json b/ts/package.json index 6e6addf2a..7df6203cc 100644 --- a/ts/package.json +++ b/ts/package.json @@ -54,7 +54,7 @@ }, "dependencies": { "@fluent/bundle": "^0.15.1", - "@fortawesome/fontawesome-free": "^5.15.3", + "@mdi/svg": "^5.9.55", "bootstrap": "^5.0.0-beta2", "bootstrap-icons": "^1.4.0", "css-browser-selector": "^0.6.5", diff --git a/ts/vendor.bzl b/ts/vendor.bzl index 265c5b912..b2b3972c8 100644 --- a/ts/vendor.bzl +++ b/ts/vendor.bzl @@ -131,13 +131,13 @@ def copy_bootstrap_icons(name = "bootstrap-icons", icons = [], visibility = ["// visibility = visibility, ) - -def copy_fontawesome_icons(name = "fontawesome-icons", icons = [], visibility = ["//visibility:public"]): +def copy_mdi_icons(name = "mdi-icons", icons = [], visibility = ["//visibility:public"]): vendor_js_lib( name = name, - pkg = _pkg_from_name("@fortawesome/fontawesome-free"), - base = _npm_base_from_name("@fortawesome/fontawesome-free"), - include = ["svgs/{}".format(icon) for icon in icons], - strip_prefix = "svgs/solid/", + pkg = _pkg_from_name("@mdi/svg"), + base = _npm_base_from_name("@mdi/svg"), + include = ["svg/{}".format(icon) for icon in icons], + strip_prefix = "svg/", visibility = visibility, ) + diff --git a/ts/yarn.lock b/ts/yarn.lock index 2b5ed0fa5..69c07b3b3 100644 --- a/ts/yarn.lock +++ b/ts/yarn.lock @@ -502,10 +502,11 @@ "@types/node" "*" "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@fortawesome/fontawesome-free@^5.15.3": - version "5.15.3" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.3.tgz#c36ffa64a2a239bf948541a97b6ae8d729e09a9a" - integrity sha512-rFnSUN/QOtnOAgqFRooTA3H57JLDm0QEG/jPdk+tLQNL/eWd+Aok8g3qCI+Q1xuDPWpGW/i9JySpJVsq8Q0s9w== + +"@mdi/svg@^5.9.55": + version "5.9.55" + resolved "https://registry.yarnpkg.com/@mdi/svg/-/svg-5.9.55.tgz#7cba058135afd5d8a3da977f51b71ffc6a3a3699" + integrity sha512-gO0ZpKIeCn9vFg46QduK9MM+n1fuCNwSdcdlBTtbafnnuvwLveK2uj+byhdLtg/8VJGXDhp+DJ35QUMbeWeULA== "@jest/types@^27.0.0-next.8": version "27.0.0-next.8"