From 37dbe0f526bb3767e4a5fde6f1baa117b975ff90 Mon Sep 17 00:00:00 2001
From: Takashi Kato <tohosaku@users.osdn.me>
Date: Wed, 24 Jul 2024 13:54:46 +0000
Subject: [PATCH 1/4] Add SVG Icons

---
 app/assets/images/icons/3-bullets.svg               | 4 ++++
 app/assets/images/icons/add.svg                     | 4 ++++
 app/assets/images/icons/angle-down.svg              | 4 ++++
 app/assets/images/icons/angle-right.svg             | 4 ++++
 app/assets/images/icons/angle-up.svg                | 4 ++++
 app/assets/images/icons/arrow-right.svg             | 4 ++++
 app/assets/images/icons/atom.svg                    | 4 ++++
 app/assets/images/icons/attachment.svg              | 4 ++++
 app/assets/images/icons/bg-angle-down.svg           | 4 ++++
 app/assets/images/icons/bg-angle-left.svg           | 4 ++++
 app/assets/images/icons/bg-angle-right.svg          | 4 ++++
 app/assets/images/icons/bg-angle-up.svg             | 4 ++++
 app/assets/images/icons/bg-magnifier.svg            | 4 ++++
 app/assets/images/icons/bullet-end.svg              | 4 ++++
 app/assets/images/icons/bullet-go-end.svg           | 4 ++++
 app/assets/images/icons/bullet-go.svg               | 4 ++++
 app/assets/images/icons/cancel.svg                  | 4 ++++
 app/assets/images/icons/changeset.svg               | 4 ++++
 app/assets/images/icons/checked.svg                 | 4 ++++
 app/assets/images/icons/clear-query.svg             | 4 ++++
 app/assets/images/icons/close.svg                   | 4 ++++
 app/assets/images/icons/comment.svg                 | 4 ++++
 app/assets/images/icons/comments.svg                | 4 ++++
 app/assets/images/icons/copy-link.svg               | 4 ++++
 app/assets/images/icons/copy.svg                    | 4 ++++
 app/assets/images/icons/del.svg                     | 4 ++++
 app/assets/images/icons/document.svg                | 4 ++++
 app/assets/images/icons/download.svg                | 4 ++++
 app/assets/images/icons/duplicate.svg               | 4 ++++
 app/assets/images/icons/edit.svg                    | 4 ++++
 app/assets/images/icons/email-disabled.svg          | 4 ++++
 app/assets/images/icons/email.svg                   | 4 ++++
 app/assets/images/icons/error.svg                   | 4 ++++
 app/assets/images/icons/external.svg                | 4 ++++
 app/assets/images/icons/false.svg                   | 4 ++++
 app/assets/images/icons/fav-off.svg                 | 4 ++++
 app/assets/images/icons/fav.svg                     | 4 ++++
 app/assets/images/icons/file.svg                    | 4 ++++
 app/assets/images/icons/file/application-pdf.svg    | 4 ++++
 app/assets/images/icons/file/application-x-gzip.svg | 4 ++++
 app/assets/images/icons/file/application-zip.svg    | 4 ++++
 app/assets/images/icons/file/image-gif.svg          | 4 ++++
 app/assets/images/icons/file/image-jpeg.svg         | 4 ++++
 app/assets/images/icons/file/image-png.svg          | 4 ++++
 app/assets/images/icons/file/image-tiff.svg         | 4 ++++
 app/assets/images/icons/file/text-css.svg           | 4 ++++
 app/assets/images/icons/file/text-html.svg          | 4 ++++
 app/assets/images/icons/file/text-plain.svg         | 4 ++++
 app/assets/images/icons/file/text-x-c.svg           | 4 ++++
 app/assets/images/icons/file/text-x-csharp.svg      | 4 ++++
 app/assets/images/icons/file/text-x-java.svg        | 4 ++++
 app/assets/images/icons/file/text-x-javascript.svg  | 4 ++++
 app/assets/images/icons/file/text-x-php.svg         | 4 ++++
 app/assets/images/icons/file/text-x-ruby.svg        | 4 ++++
 app/assets/images/icons/file/text-xml.svg           | 4 ++++
 app/assets/images/icons/folder-open.svg             | 4 ++++
 app/assets/images/icons/folder.svg                  | 4 ++++
 app/assets/images/icons/group.svg                   | 4 ++++
 app/assets/images/icons/help.svg                    | 4 ++++
 app/assets/images/icons/history.svg                 | 4 ++++
 app/assets/images/icons/hourglass.svg               | 4 ++++
 app/assets/images/icons/import.svg                  | 4 ++++
 app/assets/images/icons/issue-closed.svg            | 4 ++++
 app/assets/images/icons/issue-edit.svg              | 4 ++++
 app/assets/images/icons/issue.svg                   | 4 ++++
 app/assets/images/icons/jstoolbar/bq.svg            | 4 ++++
 app/assets/images/icons/jstoolbar/del.svg           | 4 ++++
 app/assets/images/icons/jstoolbar/em.svg            | 4 ++++
 app/assets/images/icons/jstoolbar/help.svg          | 4 ++++
 app/assets/images/icons/jstoolbar/img.svg           | 4 ++++
 app/assets/images/icons/jstoolbar/ins.svg           | 4 ++++
 app/assets/images/icons/jstoolbar/link.svg          | 4 ++++
 app/assets/images/icons/jstoolbar/ol.svg            | 4 ++++
 app/assets/images/icons/jstoolbar/precode.svg       | 4 ++++
 app/assets/images/icons/jstoolbar/strong.svg        | 4 ++++
 app/assets/images/icons/jstoolbar/table.svg         | 4 ++++
 app/assets/images/icons/jstoolbar/tl.svg            | 4 ++++
 app/assets/images/icons/jstoolbar/ul.svg            | 4 ++++
 app/assets/images/icons/jstoolbar/unbq.svg          | 4 ++++
 app/assets/images/icons/link-break.svg              | 4 ++++
 app/assets/images/icons/link.svg                    | 4 ++++
 app/assets/images/icons/lock.svg                    | 4 ++++
 app/assets/images/icons/magnifier.svg               | 4 ++++
 app/assets/images/icons/move.svg                    | 4 ++++
 app/assets/images/icons/news.svg                    | 4 ++++
 app/assets/images/icons/package.svg                 | 4 ++++
 app/assets/images/icons/plugin.svg                  | 4 ++++
 app/assets/images/icons/projects.svg                | 4 ++++
 app/assets/images/icons/reload.svg                  | 4 ++++
 app/assets/images/icons/reorder.svg                 | 4 ++++
 app/assets/images/icons/report.svg                  | 4 ++++
 app/assets/images/icons/roles.svg                   | 4 ++++
 app/assets/images/icons/save.svg                    | 4 ++++
 app/assets/images/icons/scm-change.svg              | 4 ++++
 app/assets/images/icons/scm-move.svg                | 4 ++++
 app/assets/images/icons/server-authentication.svg   | 4 ++++
 app/assets/images/icons/settings.svg                | 4 ++++
 app/assets/images/icons/stats.svg                   | 4 ++++
 app/assets/images/icons/summary.svg                 | 4 ++++
 app/assets/images/icons/table-multiple.svg          | 4 ++++
 app/assets/images/icons/tag-blue-add.svg            | 4 ++++
 app/assets/images/icons/tag-blue-delete.svg         | 4 ++++
 app/assets/images/icons/text-list-bullets.svg       | 4 ++++
 app/assets/images/icons/textfield-key.svg           | 4 ++++
 app/assets/images/icons/textfield.svg               | 4 ++++
 app/assets/images/icons/time.svg                    | 4 ++++
 app/assets/images/icons/toggle-minus.svg            | 4 ++++
 app/assets/images/icons/toggle-plus.svg             | 4 ++++
 app/assets/images/icons/true.svg                    | 4 ++++
 app/assets/images/icons/unlock.svg                  | 4 ++++
 app/assets/images/icons/user.svg                    | 4 ++++
 app/assets/images/icons/warning.svg                 | 4 ++++
 app/assets/images/icons/wiki-edit.svg               | 4 ++++
 app/assets/images/icons/workflows.svg               | 4 ++++
 app/assets/images/icons/zoom-in.svg                 | 4 ++++
 app/assets/images/icons/zoom-out.svg                | 4 ++++
 116 files changed, 464 insertions(+)
 create mode 100644 app/assets/images/icons/3-bullets.svg
 create mode 100644 app/assets/images/icons/add.svg
 create mode 100644 app/assets/images/icons/angle-down.svg
 create mode 100644 app/assets/images/icons/angle-right.svg
 create mode 100644 app/assets/images/icons/angle-up.svg
 create mode 100644 app/assets/images/icons/arrow-right.svg
 create mode 100644 app/assets/images/icons/atom.svg
 create mode 100644 app/assets/images/icons/attachment.svg
 create mode 100644 app/assets/images/icons/bg-angle-down.svg
 create mode 100644 app/assets/images/icons/bg-angle-left.svg
 create mode 100644 app/assets/images/icons/bg-angle-right.svg
 create mode 100644 app/assets/images/icons/bg-angle-up.svg
 create mode 100644 app/assets/images/icons/bg-magnifier.svg
 create mode 100644 app/assets/images/icons/bullet-end.svg
 create mode 100644 app/assets/images/icons/bullet-go-end.svg
 create mode 100644 app/assets/images/icons/bullet-go.svg
 create mode 100644 app/assets/images/icons/cancel.svg
 create mode 100644 app/assets/images/icons/changeset.svg
 create mode 100644 app/assets/images/icons/checked.svg
 create mode 100644 app/assets/images/icons/clear-query.svg
 create mode 100644 app/assets/images/icons/close.svg
 create mode 100644 app/assets/images/icons/comment.svg
 create mode 100644 app/assets/images/icons/comments.svg
 create mode 100644 app/assets/images/icons/copy-link.svg
 create mode 100644 app/assets/images/icons/copy.svg
 create mode 100644 app/assets/images/icons/del.svg
 create mode 100644 app/assets/images/icons/document.svg
 create mode 100644 app/assets/images/icons/download.svg
 create mode 100644 app/assets/images/icons/duplicate.svg
 create mode 100644 app/assets/images/icons/edit.svg
 create mode 100644 app/assets/images/icons/email-disabled.svg
 create mode 100644 app/assets/images/icons/email.svg
 create mode 100644 app/assets/images/icons/error.svg
 create mode 100644 app/assets/images/icons/external.svg
 create mode 100644 app/assets/images/icons/false.svg
 create mode 100644 app/assets/images/icons/fav-off.svg
 create mode 100644 app/assets/images/icons/fav.svg
 create mode 100644 app/assets/images/icons/file.svg
 create mode 100644 app/assets/images/icons/file/application-pdf.svg
 create mode 100644 app/assets/images/icons/file/application-x-gzip.svg
 create mode 100644 app/assets/images/icons/file/application-zip.svg
 create mode 100644 app/assets/images/icons/file/image-gif.svg
 create mode 100644 app/assets/images/icons/file/image-jpeg.svg
 create mode 100644 app/assets/images/icons/file/image-png.svg
 create mode 100644 app/assets/images/icons/file/image-tiff.svg
 create mode 100644 app/assets/images/icons/file/text-css.svg
 create mode 100644 app/assets/images/icons/file/text-html.svg
 create mode 100644 app/assets/images/icons/file/text-plain.svg
 create mode 100644 app/assets/images/icons/file/text-x-c.svg
 create mode 100644 app/assets/images/icons/file/text-x-csharp.svg
 create mode 100644 app/assets/images/icons/file/text-x-java.svg
 create mode 100644 app/assets/images/icons/file/text-x-javascript.svg
 create mode 100644 app/assets/images/icons/file/text-x-php.svg
 create mode 100644 app/assets/images/icons/file/text-x-ruby.svg
 create mode 100644 app/assets/images/icons/file/text-xml.svg
 create mode 100644 app/assets/images/icons/folder-open.svg
 create mode 100644 app/assets/images/icons/folder.svg
 create mode 100644 app/assets/images/icons/group.svg
 create mode 100644 app/assets/images/icons/help.svg
 create mode 100644 app/assets/images/icons/history.svg
 create mode 100644 app/assets/images/icons/hourglass.svg
 create mode 100644 app/assets/images/icons/import.svg
 create mode 100644 app/assets/images/icons/issue-closed.svg
 create mode 100644 app/assets/images/icons/issue-edit.svg
 create mode 100644 app/assets/images/icons/issue.svg
 create mode 100644 app/assets/images/icons/jstoolbar/bq.svg
 create mode 100644 app/assets/images/icons/jstoolbar/del.svg
 create mode 100644 app/assets/images/icons/jstoolbar/em.svg
 create mode 100644 app/assets/images/icons/jstoolbar/help.svg
 create mode 100644 app/assets/images/icons/jstoolbar/img.svg
 create mode 100644 app/assets/images/icons/jstoolbar/ins.svg
 create mode 100644 app/assets/images/icons/jstoolbar/link.svg
 create mode 100644 app/assets/images/icons/jstoolbar/ol.svg
 create mode 100644 app/assets/images/icons/jstoolbar/precode.svg
 create mode 100644 app/assets/images/icons/jstoolbar/strong.svg
 create mode 100644 app/assets/images/icons/jstoolbar/table.svg
 create mode 100644 app/assets/images/icons/jstoolbar/tl.svg
 create mode 100644 app/assets/images/icons/jstoolbar/ul.svg
 create mode 100644 app/assets/images/icons/jstoolbar/unbq.svg
 create mode 100644 app/assets/images/icons/link-break.svg
 create mode 100644 app/assets/images/icons/link.svg
 create mode 100644 app/assets/images/icons/lock.svg
 create mode 100644 app/assets/images/icons/magnifier.svg
 create mode 100644 app/assets/images/icons/move.svg
 create mode 100644 app/assets/images/icons/news.svg
 create mode 100644 app/assets/images/icons/package.svg
 create mode 100644 app/assets/images/icons/plugin.svg
 create mode 100644 app/assets/images/icons/projects.svg
 create mode 100644 app/assets/images/icons/reload.svg
 create mode 100644 app/assets/images/icons/reorder.svg
 create mode 100644 app/assets/images/icons/report.svg
 create mode 100644 app/assets/images/icons/roles.svg
 create mode 100644 app/assets/images/icons/save.svg
 create mode 100644 app/assets/images/icons/scm-change.svg
 create mode 100644 app/assets/images/icons/scm-move.svg
 create mode 100644 app/assets/images/icons/server-authentication.svg
 create mode 100644 app/assets/images/icons/settings.svg
 create mode 100644 app/assets/images/icons/stats.svg
 create mode 100644 app/assets/images/icons/summary.svg
 create mode 100644 app/assets/images/icons/table-multiple.svg
 create mode 100644 app/assets/images/icons/tag-blue-add.svg
 create mode 100644 app/assets/images/icons/tag-blue-delete.svg
 create mode 100644 app/assets/images/icons/text-list-bullets.svg
 create mode 100644 app/assets/images/icons/textfield-key.svg
 create mode 100644 app/assets/images/icons/textfield.svg
 create mode 100644 app/assets/images/icons/time.svg
 create mode 100644 app/assets/images/icons/toggle-minus.svg
 create mode 100644 app/assets/images/icons/toggle-plus.svg
 create mode 100644 app/assets/images/icons/true.svg
 create mode 100644 app/assets/images/icons/unlock.svg
 create mode 100644 app/assets/images/icons/user.svg
 create mode 100644 app/assets/images/icons/warning.svg
 create mode 100644 app/assets/images/icons/wiki-edit.svg
 create mode 100644 app/assets/images/icons/workflows.svg
 create mode 100644 app/assets/images/icons/zoom-in.svg
 create mode 100644 app/assets/images/icons/zoom-out.svg

diff --git a/app/assets/images/icons/3-bullets.svg b/app/assets/images/icons/3-bullets.svg
new file mode 100644
index 000000000..6a01e391e
--- /dev/null
+++ b/app/assets/images/icons/3-bullets.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: ellipsis.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M8 256a56 56 0 1 1 112 0a56 56 0 1 1-112 0m160 0a56 56 0 1 1 112 0a56 56 0 1 1-112 0m216-56a56 56 0 1 1 0 112a56 56 0 1 1 0-112"/>
+</svg>
diff --git a/app/assets/images/icons/add.svg b/app/assets/images/icons/add.svg
new file mode 100644
index 000000000..aecc0ecfc
--- /dev/null
+++ b/app/assets/images/icons/add.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: circle-plus.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M256 512a256 256 0 1 0 0-512a256 256 0 1 0 0 512m-24-168v-64h-64c-13.3 0-24-10.7-24-24s10.7-24 24-24h64v-64c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24h-64v64c0 13.3-10.7 24-24 24s-24-10.7-24-24"/>
+</svg>
diff --git a/app/assets/images/icons/angle-down.svg b/app/assets/images/icons/angle-down.svg
new file mode 100644
index 000000000..d3851a3b1
--- /dev/null
+++ b/app/assets/images/icons/angle-down.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: angle-down.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7L86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"/>
+</svg>
diff --git a/app/assets/images/icons/angle-right.svg b/app/assets/images/icons/angle-right.svg
new file mode 100644
index 000000000..412f61505
--- /dev/null
+++ b/app/assets/images/icons/angle-right.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: angle-right.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
+  <path fill="currentColor" d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256L73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/>
+</svg>
diff --git a/app/assets/images/icons/angle-up.svg b/app/assets/images/icons/angle-up.svg
new file mode 100644
index 000000000..2f125ba6e
--- /dev/null
+++ b/app/assets/images/icons/angle-up.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: angle-up.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3L86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"/>
+</svg>
diff --git a/app/assets/images/icons/arrow-right.svg b/app/assets/images/icons/arrow-right.svg
new file mode 100644
index 000000000..f661177b5
--- /dev/null
+++ b/app/assets/images/icons/arrow-right.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: arrow-right.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h306.7L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/>
+</svg>
diff --git a/app/assets/images/icons/atom.svg b/app/assets/images/icons/atom.svg
new file mode 100644
index 000000000..3999de584
--- /dev/null
+++ b/app/assets/images/icons/atom.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: square-rss.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm32 104c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24m0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24m0 120a32 32 0 1 1 64 0a32 32 0 1 1-64 0"/>
+</svg>
diff --git a/app/assets/images/icons/attachment.svg b/app/assets/images/icons/attachment.svg
new file mode 100644
index 000000000..2b3a7bf7d
--- /dev/null
+++ b/app/assets/images/icons/attachment.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: paperclip.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4"/>
+</svg>
diff --git a/app/assets/images/icons/bg-angle-down.svg b/app/assets/images/icons/bg-angle-down.svg
new file mode 100644
index 000000000..50fb5598a
--- /dev/null
+++ b/app/assets/images/icons/bg-angle-down.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: angle-down.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="#999" d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7L86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"/>
+</svg>
diff --git a/app/assets/images/icons/bg-angle-left.svg b/app/assets/images/icons/bg-angle-left.svg
new file mode 100644
index 000000000..b41043e13
--- /dev/null
+++ b/app/assets/images/icons/bg-angle-left.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: angle-left.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
+  <path fill="#999" d="M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256l137.3-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/>
+</svg>
diff --git a/app/assets/images/icons/bg-angle-right.svg b/app/assets/images/icons/bg-angle-right.svg
new file mode 100644
index 000000000..9cfd0f883
--- /dev/null
+++ b/app/assets/images/icons/bg-angle-right.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: angle-right.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
+  <path fill="#999" d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256L73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/>
+</svg>
diff --git a/app/assets/images/icons/bg-angle-up.svg b/app/assets/images/icons/bg-angle-up.svg
new file mode 100644
index 000000000..fa3b6c232
--- /dev/null
+++ b/app/assets/images/icons/bg-angle-up.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: angle-up.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="#999" d="M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3L86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"/>
+</svg>
diff --git a/app/assets/images/icons/bg-magnifier.svg b/app/assets/images/icons/bg-magnifier.svg
new file mode 100644
index 000000000..914b46aa6
--- /dev/null
+++ b/app/assets/images/icons/bg-magnifier.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: magnifying-glass.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="#999" d="M416 208c0 45.9-14.9 88.3-40 122.7l126.6 126.7c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208M208 352a144 144 0 1 0 0-288a144 144 0 1 0 0 288"/>
+</svg>
diff --git a/app/assets/images/icons/bullet-end.svg b/app/assets/images/icons/bullet-end.svg
new file mode 100644
index 000000000..a27908808
--- /dev/null
+++ b/app/assets/images/icons/bullet-end.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: arrow-left-bold.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M20 9v6h-8v4.84L4.16 12L12 4.16V9z"/>
+</svg>
diff --git a/app/assets/images/icons/bullet-go-end.svg b/app/assets/images/icons/bullet-go-end.svg
new file mode 100644
index 000000000..ab024931a
--- /dev/null
+++ b/app/assets/images/icons/bullet-go-end.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: arrow-left-right-bold.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M8 14v4l-6-6l6-6v4h8V6l6 6l-6 6v-4z"/>
+</svg>
diff --git a/app/assets/images/icons/bullet-go.svg b/app/assets/images/icons/bullet-go.svg
new file mode 100644
index 000000000..5eca013ba
--- /dev/null
+++ b/app/assets/images/icons/bullet-go.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: arrow-right-bold.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M4 15V9h8V4.16L19.84 12L12 19.84V15z"/>
+</svg>
diff --git a/app/assets/images/icons/cancel.svg b/app/assets/images/icons/cancel.svg
new file mode 100644
index 000000000..024be0974
--- /dev/null
+++ b/app/assets/images/icons/cancel.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: reply.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M205 34.8c11.5 5.1 19 16.6 19 29.2v64h112c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96h-96v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4"/>
+</svg>
diff --git a/app/assets/images/icons/changeset.svg b/app/assets/images/icons/changeset.svg
new file mode 100644
index 000000000..eb2a43169
--- /dev/null
+++ b/app/assets/images/icons/changeset.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: code.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
+  <path fill="currentColor" d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6m80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3l89.3 89.4l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3"/>
+</svg>
diff --git a/app/assets/images/icons/checked.svg b/app/assets/images/icons/checked.svg
new file mode 100644
index 000000000..723796fae
--- /dev/null
+++ b/app/assets/images/icons/checked.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: check.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7l233.4-233.3c12.5-12.5 32.8-12.5 45.3 0z"/>
+</svg>
diff --git a/app/assets/images/icons/clear-query.svg b/app/assets/images/icons/clear-query.svg
new file mode 100644
index 000000000..bc601da99
--- /dev/null
+++ b/app/assets/images/icons/clear-query.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: circle-xmark.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M256 512a256 256 0 1 0 0-512a256 256 0 1 0 0 512m-81-337c9.4-9.4 24.6-9.4 33.9 0l47 47l47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47l-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47l-47-47c-9.4-9.4-9.4-24.6 0-33.9"/>
+</svg>
diff --git a/app/assets/images/icons/close.svg b/app/assets/images/icons/close.svg
new file mode 100644
index 000000000..dd58b34c1
--- /dev/null
+++ b/app/assets/images/icons/close.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: square-xmark.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M64 32C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47l47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47l-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47l-47-47c-9.4-9.4-9.4-24.6 0-33.9"/>
+</svg>
diff --git a/app/assets/images/icons/comment.svg b/app/assets/images/icons/comment.svg
new file mode 100644
index 000000000..fedc6153b
--- /dev/null
+++ b/app/assets/images/icons/comment.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: comment.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160S380.7 80 256 80S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9q2.7-4.05 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8.2-1.6.3-2.4.5c-4.4.8-8.7 1.5-13.2 1.9c-.2 0-.5.1-.7.1c-5.1.5-10.2.8-15.3.8c-6.5 0-12.3-3.9-14.8-9.9S0 457.4 4.5 452.8c4.1-4.2 7.8-8.7 11.3-13.5q2.55-3.45 4.8-6.9l.3-.5z"/>
+</svg>
diff --git a/app/assets/images/icons/comments.svg b/app/assets/images/icons/comments.svg
new file mode 100644
index 000000000..128d1b2b9
--- /dev/null
+++ b/app/assets/images/icons/comments.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: comments.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
+  <path fill="currentColor" d="M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2q-6.15 3.15-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5m224 128c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5s2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1c28.8-30.3 46-68.6 46-110.4c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8v.6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18q-6.45-2.85-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.8 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480"/>
+</svg>
diff --git a/app/assets/images/icons/copy-link.svg b/app/assets/images/icons/copy-link.svg
new file mode 100644
index 000000000..45425a004
--- /dev/null
+++ b/app/assets/images/icons/copy-link.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: clipboard.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M280 64h40c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128c0-35.3 28.7-64 64-64h49.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64zM64 112c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h256c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16h-16v24c0 13.3-10.7 24-24 24H104c-13.3 0-24-10.7-24-24v-24zm128-8a24 24 0 1 0 0-48a24 24 0 1 0 0 48"/>
+</svg>
diff --git a/app/assets/images/icons/copy.svg b/app/assets/images/icons/copy.svg
new file mode 100644
index 000000000..660690855
--- /dev/null
+++ b/app/assets/images/icons/copy.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: clone.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M288 448H64V224h64v-64H64c-35.3 0-64 28.7-64 64v224c0 35.3 28.7 64 64 64h224c35.3 0 64-28.7 64-64v-64h-64zm-64-96h224c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64v224c0 35.3 28.7 64 64 64"/>
+</svg>
diff --git a/app/assets/images/icons/del.svg b/app/assets/images/icons/del.svg
new file mode 100644
index 000000000..8ecff25a2
--- /dev/null
+++ b/app/assets/images/icons/del.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: trash-can.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="m170.5 51.6l-19 28.4h145l-19-28.4c-1.5-2.2-4-3.6-6.7-3.6h-93.7c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6l36.7 55H424c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v304c0 44.2-35.8 80-80 80H112c-44.2 0-80-35.8-80-80V128h-8c-13.3 0-24-10.7-24-24s10.7-24 24-24h69.8l36.7-55.1C140.9 9.4 158.4 0 177.1 0h93.7c18.7 0 36.2 9.4 46.6 24.9zM80 128v304c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32V128zm80 64v208c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16m80 0v208c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16m80 0v208c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16"/>
+</svg>
diff --git a/app/assets/images/icons/document.svg b/app/assets/images/icons/document.svg
new file mode 100644
index 000000000..3cc8e9b19
--- /dev/null
+++ b/app/assets/images/icons/document.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: file.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M320 464c8.8 0 16-7.2 16-16V160h-80c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16v384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0h165.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z"/>
+</svg>
diff --git a/app/assets/images/icons/download.svg b/app/assets/images/icons/download.svg
new file mode 100644
index 000000000..c47b00fae
--- /dev/null
+++ b/app/assets/images/icons/download.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: download.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32v242.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64v-32c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352zm368 56a24 24 0 1 1 0 48a24 24 0 1 1 0-48"/>
+</svg>
diff --git a/app/assets/images/icons/duplicate.svg b/app/assets/images/icons/duplicate.svg
new file mode 100644
index 000000000..2b0b670a0
--- /dev/null
+++ b/app/assets/images/icons/duplicate.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: file-circle-plus.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
+  <path fill="currentColor" d="M0 64C0 28.7 28.7 0 64 0h160v128c0 17.7 14.3 32 32 32h128v38.6c-73.9 20.9-128 88.8-128 169.4c0 59.1 29.1 111.3 73.7 143.3c-3.2.5-6.4.7-9.7.7H64c-35.3 0-64-28.7-64-64zm384 64H256V0zm48 96a144 144 0 1 1 0 288a144 144 0 1 1 0-288m16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48h-48c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16v-48h48c8.8 0 16-7.2 16-16s-7.2-16-16-16h-48z"/>
+</svg>
diff --git a/app/assets/images/icons/edit.svg b/app/assets/images/icons/edit.svg
new file mode 100644
index 000000000..ca678214e
--- /dev/null
+++ b/app/assets/images/icons/edit.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: pencil.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="m410.3 231l11.3-11.3l-33.9-33.9l-62.1-62.1l-33.9-33.9l-11.3 11.3l-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2l199.2-199.2zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9l-78.2 23l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7l-14.4 14.5l-22.6 22.6l-11.4 11.3l33.9 33.9l62.1 62.1l33.9 33.9l11.3-11.3l22.6-22.6l14.5-14.5c25-25 25-65.5 0-90.5l-39.3-39.4c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6"/>
+</svg>
diff --git a/app/assets/images/icons/email-disabled.svg b/app/assets/images/icons/email-disabled.svg
new file mode 100644
index 000000000..998e9b0d0
--- /dev/null
+++ b/app/assets/images/icons/email-disabled.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: envelope.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4l217.6 163.2c11.4 8.5 27 8.5 38.4 0l217.6-163.2c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48zM0 176v208c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64V176L294.4 339.2a63.9 63.9 0 0 1-76.8 0z"/>
+</svg>
diff --git a/app/assets/images/icons/email.svg b/app/assets/images/icons/email.svg
new file mode 100644
index 000000000..4b339c8a8
--- /dev/null
+++ b/app/assets/images/icons/email.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: envelope.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M64 112c-8.8 0-16 7.2-16 16v22.1l172.5 141.6c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16zM48 212.2V384c0 8.8 7.2 16 16 16h384c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0zM0 128c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v256c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z"/>
+</svg>
diff --git a/app/assets/images/icons/error.svg b/app/assets/images/icons/error.svg
new file mode 100644
index 000000000..10b5f67b7
--- /dev/null
+++ b/app/assets/images/icons/error.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: circle-exclamation.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M256 512a256 256 0 1 0 0-512a256 256 0 1 0 0 512m0-384c13.3 0 24 10.7 24 24v112c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24m-32 224a32 32 0 1 1 64 0a32 32 0 1 1-64 0"/>
+</svg>
diff --git a/app/assets/images/icons/external.svg b/app/assets/images/icons/external.svg
new file mode 100644
index 000000000..ee38f0f0f
--- /dev/null
+++ b/app/assets/images/icons/external.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: arrow-up-right-from-square.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32zM80 32C35.8 32 0 67.8 0 112v320c0 44.2 35.8 80 80 80h320c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v112c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16h112c17.7 0 32-14.3 32-32s-14.3-32-32-32z"/>
+</svg>
diff --git a/app/assets/images/icons/false.svg b/app/assets/images/icons/false.svg
new file mode 100644
index 000000000..6636b9c3e
--- /dev/null
+++ b/app/assets/images/icons/false.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: xmark.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7L86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256L41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3l105.4 105.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256z"/>
+</svg>
diff --git a/app/assets/images/icons/fav-off.svg b/app/assets/images/icons/fav-off.svg
new file mode 100644
index 000000000..e7276c634
--- /dev/null
+++ b/app/assets/images/icons/fav-off.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: star.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
+  <path fill="currentColor" d="M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3l153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4L459.8 484c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6l68.6-141.3C270.4 5.2 278.7 0 287.9 0m0 79l-52.5 108.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9l85.9 85.1c5.5 5.5 8.1 13.3 6.8 21l-20.3 119.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2l-20.2-119.6c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1l-118.3-17.5c-7.8-1.2-14.6-6.1-18.1-13.3z"/>
+</svg>
diff --git a/app/assets/images/icons/fav.svg b/app/assets/images/icons/fav.svg
new file mode 100644
index 000000000..ab9f71a30
--- /dev/null
+++ b/app/assets/images/icons/fav.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: star.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
+  <path fill="currentColor" d="M316.9 18c-5.3-11-16.5-18-28.8-18s-23.4 7-28.8 18L195 150.3L51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329l-24.6 145.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5l128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329l104.2-103.1c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7l-143.7-21.2z"/>
+</svg>
diff --git a/app/assets/images/icons/file.svg b/app/assets/images/icons/file.svg
new file mode 100644
index 000000000..3cc8e9b19
--- /dev/null
+++ b/app/assets/images/icons/file.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: file.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M320 464c8.8 0 16-7.2 16-16V160h-80c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16v384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0h165.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z"/>
+</svg>
diff --git a/app/assets/images/icons/file/application-pdf.svg b/app/assets/images/icons/file/application-pdf.svg
new file mode 100644
index 000000000..be0a25a9f
--- /dev/null
+++ b/app/assets/images/icons/file/application-pdf.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: file-pdf-box.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-9.5 8.5c0 .8-.7 1.5-1.5 1.5H7v2H5.5V9H8c.8 0 1.5.7 1.5 1.5zm5 2c0 .8-.7 1.5-1.5 1.5h-2.5V9H13c.8 0 1.5.7 1.5 1.5zm4-3H17v1h1.5V13H17v2h-1.5V9h3zm-6.5 0h1v3h-1zm-5 0h1v1H7z"/>
+</svg>
diff --git a/app/assets/images/icons/file/application-x-gzip.svg b/app/assets/images/icons/file/application-x-gzip.svg
new file mode 100644
index 000000000..ebfcba959
--- /dev/null
+++ b/app/assets/images/icons/file/application-x-gzip.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: zip-box-outline.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M12 17v-2h2v2zm2-4v-2h-2v2zm0-4V7h-2v2zm-4 2h2V9h-2zm0 4h2v-2h-2zM21 5v14c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2m-2 0h-7v2h-2V5H5v14h14z"/>
+</svg>
diff --git a/app/assets/images/icons/file/application-zip.svg b/app/assets/images/icons/file/application-zip.svg
new file mode 100644
index 000000000..ebfcba959
--- /dev/null
+++ b/app/assets/images/icons/file/application-zip.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: zip-box-outline.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M12 17v-2h2v2zm2-4v-2h-2v2zm0-4V7h-2v2zm-4 2h2V9h-2zm0 4h2v-2h-2zM21 5v14c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2m-2 0h-7v2h-2V5H5v14h14z"/>
+</svg>
diff --git a/app/assets/images/icons/file/image-gif.svg b/app/assets/images/icons/file/image-gif.svg
new file mode 100644
index 000000000..c9fafc45a
--- /dev/null
+++ b/app/assets/images/icons/file/image-gif.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: file-gif-box.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-9 7.5H7.5v3h1V12H10v1.7c0 .7-.5 1.3-1.3 1.3H7.3c-.8 0-1.3-.7-1.3-1.3v-3.3C6 9.7 6.5 9 7.3 9h1.3c.9 0 1.4.7 1.4 1.3zm3 4.5h-1.5V9H13zm4.5-4.5H16v1h1.5V13H16v2h-1.5V9h3z"/>
+</svg>
diff --git a/app/assets/images/icons/file/image-jpeg.svg b/app/assets/images/icons/file/image-jpeg.svg
new file mode 100644
index 000000000..aa995a567
--- /dev/null
+++ b/app/assets/images/icons/file/image-jpeg.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: file-jpg-box.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M9 13.5c0 1.1-.9 1.5-2 1.5s-2-.4-2-1.5V12h1.5v1.5h1V9H9zm5-2c0 .8-.7 1.5-1.5 1.5h-1v2H10V9h2.5c.8 0 1.5.7 1.5 1.5zm5-1h-2.5v3h1V12H19v1.7c0 .7-.5 1.3-1.3 1.3h-1.3c-.8 0-1.3-.7-1.3-1.3v-3.3c-.1-.7.4-1.4 1.2-1.4h1.3c.8 0 1.3.7 1.3 1.3v.2m-7.4 0h1v1h-1z"/>
+</svg>
diff --git a/app/assets/images/icons/file/image-png.svg b/app/assets/images/icons/file/image-png.svg
new file mode 100644
index 000000000..e62039d07
--- /dev/null
+++ b/app/assets/images/icons/file/image-png.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: file-png-box.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M9 11.5c0 .8-.7 1.5-1.5 1.5h-1v2H5V9h2.5c.8 0 1.5.7 1.5 1.5zm5 3.5h-1.5l-1-2.5V15H10V9h1.5l1 2.5V9H14zm5-4.5h-2.5v3h1V12H19v1.7c0 .7-.5 1.3-1.3 1.3h-1.3c-.8 0-1.3-.7-1.3-1.3v-3.3c-.1-.7.4-1.4 1.2-1.4h1.3c.8 0 1.3.7 1.3 1.3v.2zm-12.5 0h1v1h-1z"/>
+</svg>
diff --git a/app/assets/images/icons/file/image-tiff.svg b/app/assets/images/icons/file/image-tiff.svg
new file mode 100644
index 000000000..fb585adf2
--- /dev/null
+++ b/app/assets/images/icons/file/image-tiff.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: file-image-outline.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="m14 2l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm4 18V9h-5V4H6v16zm-1-7v6H7l5-5l2 2m-4-5.5A1.5 1.5 0 0 1 8.5 12A1.5 1.5 0 0 1 7 10.5A1.5 1.5 0 0 1 8.5 9a1.5 1.5 0 0 1 1.5 1.5"/>
+</svg>
diff --git a/app/assets/images/icons/file/text-css.svg b/app/assets/images/icons/file/text-css.svg
new file mode 100644
index 000000000..e00710fcb
--- /dev/null
+++ b/app/assets/images/icons/file/text-css.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: language-css3.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="m5 3l-.65 3.34h13.59L17.5 8.5H3.92l-.66 3.33h13.59l-.76 3.81l-5.48 1.81l-4.75-1.81l.33-1.64H2.85l-.79 4l7.85 3l9.05-3l1.2-6.03l.24-1.21L21.94 3z"/>
+</svg>
diff --git a/app/assets/images/icons/file/text-html.svg b/app/assets/images/icons/file/text-html.svg
new file mode 100644
index 000000000..0d24f6870
--- /dev/null
+++ b/app/assets/images/icons/file/text-html.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: xml.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="m12.89 3l1.96.4L11.11 21l-1.96-.4zm6.7 9L16 8.41V5.58L22.42 12L16 18.41v-2.83zM1.58 12L8 5.58v2.83L4.41 12L8 15.58v2.83z"/>
+</svg>
diff --git a/app/assets/images/icons/file/text-plain.svg b/app/assets/images/icons/file/text-plain.svg
new file mode 100644
index 000000000..91c5f26ff
--- /dev/null
+++ b/app/assets/images/icons/file/text-plain.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: file-document-outline.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm0 2h7v5h5v11H6zm2 8v2h8v-2zm0 4v2h5v-2z"/>
+</svg>
diff --git a/app/assets/images/icons/file/text-x-c.svg b/app/assets/images/icons/file/text-x-c.svg
new file mode 100644
index 000000000..21047319d
--- /dev/null
+++ b/app/assets/images/icons/file/text-x-c.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: language-c.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="m15.45 15.97l.42 2.44c-.26.14-.68.27-1.24.39c-.57.13-1.24.2-2.01.2c-2.21-.04-3.87-.7-4.98-1.96c-1.14-1.27-1.68-2.88-1.68-4.83C6 9.9 6.68 8.13 8 6.89C9.28 5.64 10.92 5 12.9 5c.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.6 2.49l-1.04-.34c-.4-.1-.87-.15-1.4-.15c-1.15-.01-2.11.36-2.86 1.1c-.76.73-1.14 1.85-1.18 3.34c.01 1.36.37 2.42 1.08 3.2c.71.77 1.7 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.09-.32"/>
+</svg>
diff --git a/app/assets/images/icons/file/text-x-csharp.svg b/app/assets/images/icons/file/text-x-csharp.svg
new file mode 100644
index 000000000..8f66a32cb
--- /dev/null
+++ b/app/assets/images/icons/file/text-x-csharp.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: language-csharp.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="m11.5 15.97l.41 2.44c-.26.14-.68.27-1.24.39c-.57.13-1.24.2-2.01.2c-2.21-.04-3.87-.7-4.98-1.96Q2 15.135 2 12.21c.05-2.31.72-4.08 2-5.32C5.32 5.64 6.96 5 8.94 5c.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.58 2.49l-1.06-.34c-.4-.1-.86-.15-1.39-.15c-1.16-.01-2.12.36-2.87 1.1c-.76.73-1.15 1.85-1.18 3.34c0 1.36.37 2.42 1.08 3.2c.71.77 1.71 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.1-.32M13.89 19l.61-4H13l.34-2h1.5l.32-2h-1.5L14 9h1.5l.61-4h2l-.61 4h1l.61-4h2l-.61 4H22l-.34 2h-1.5l-.32 2h1.5L21 15h-1.5l-.61 4h-2l.61-4h-1l-.61 4zm2.95-6h1l.32-2h-1z"/>
+</svg>
diff --git a/app/assets/images/icons/file/text-x-java.svg b/app/assets/images/icons/file/text-x-java.svg
new file mode 100644
index 000000000..c37fb6804
--- /dev/null
+++ b/app/assets/images/icons/file/text-x-java.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: language-java.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M16.5 6.08s-6.84 1.71-3.56 5.48c.97 1.11-.25 2.11-.25 2.11s2.45-1.25 1.31-2.85c-1.06-1.47-1.86-2.2 2.5-4.74m-4.47 1.2C16.08 4.08 14 2 14 2c.84 3.3-2.96 4.3-4.33 6.36c-.94 1.4.46 2.91 2.33 4.64c-.71-1.7-3.22-3.16.03-5.72M9.37 17.47c-3.08.86 1.88 2.63 5.79.96c-.38-.15-.75-.33-1.1-.54c-1.36.31-2.76.37-4.14.18c-1.31-.16-.55-.6-.55-.6m5.32-1.68c-1.75.38-3.56.47-5.34.26c-1.31-.13-.45-.77-.45-.77c-3.4 1.13 1.88 2.4 6.6 1.02c-.29-.11-.57-.3-.81-.51m3.42 3.3s.57.47-.61.83c-2.28.68-9.43.89-11.41.03c-.71-.31.63-.74 1.05-.83c.23-.06.46-.08.69-.08c-.79-.54-5.13 1.1-2.19 1.56c7.97 1.3 14.54-.6 12.47-1.51m-2.74-4.86c.29-.19.6-.35.92-.49c0 0-1.51.26-3.02.4c-1.6.16-3.21.18-4.81.06c-2.35-.31 1.29-1.2 1.29-1.2c-1.1 0-2.18.26-3.16.75c-2.05 1 5.1 1.45 8.78.48m.9 2.42c-.02.04-.04.07-.08.1c5.01-1.31 3.17-4.64.77-3.81c-.13.06-.24.14-.31.25c.14-.05.28-.09.43-.12c1.2-.24 2.92 1.63-.81 3.58m.13 4.61c-3.01.52-6.09.56-9.12.14c0 0 .46.38 2.81.53c3.6.23 9.13-.13 9.26-1.83c.03.01-.23.65-2.95 1.16"/>
+</svg>
diff --git a/app/assets/images/icons/file/text-x-javascript.svg b/app/assets/images/icons/file/text-x-javascript.svg
new file mode 100644
index 000000000..9fff12110
--- /dev/null
+++ b/app/assets/images/icons/file/text-x-javascript.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: language-javascript.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M3 3h18v18H3zm4.73 15.04c.4.85 1.19 1.55 2.54 1.55c1.5 0 2.53-.8 2.53-2.55v-5.78h-1.7V17c0 .86-.35 1.08-.9 1.08c-.58 0-.82-.4-1.09-.87zm5.98-.18c.5.98 1.51 1.73 3.09 1.73c1.6 0 2.8-.83 2.8-2.36c0-1.41-.81-2.04-2.25-2.66l-.42-.18c-.73-.31-1.04-.52-1.04-1.02c0-.41.31-.73.81-.73c.48 0 .8.21 1.09.73l1.31-.87c-.55-.96-1.33-1.33-2.4-1.33c-1.51 0-2.48.96-2.48 2.23c0 1.38.81 2.03 2.03 2.55l.42.18c.78.34 1.24.55 1.24 1.13c0 .48-.45.83-1.15.83c-.83 0-1.31-.43-1.67-1.03z"/>
+</svg>
diff --git a/app/assets/images/icons/file/text-x-php.svg b/app/assets/images/icons/file/text-x-php.svg
new file mode 100644
index 000000000..312f757e0
--- /dev/null
+++ b/app/assets/images/icons/file/text-x-php.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: language-php.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M12 18.08c-6.63 0-12-2.72-12-6.08s5.37-6.08 12-6.08S24 8.64 24 12s-5.37 6.08-12 6.08m-5.19-7.95c.54 0 .91.1 1.09.31c.18.2.22.56.13 1.03c-.1.53-.29.87-.58 1.09q-.42.33-1.29.33h-.87l.53-2.76zm-3.5 5.55h1.44l.34-1.75h1.23c.54 0 .98-.06 1.33-.17c.35-.12.67-.31.96-.58c.24-.22.43-.46.58-.73c.15-.26.26-.56.31-.88c.16-.78.05-1.39-.33-1.82c-.39-.44-.99-.65-1.82-.65H4.59zm7.25-8.33l-1.28 6.58h1.42l.74-3.77h1.14c.36 0 .6.06.71.18s.13.34.07.66l-.57 2.93h1.45l.59-3.07c.13-.62.03-1.07-.27-1.36c-.3-.27-.85-.4-1.65-.4h-1.27L12 7.35zM18 10.13c.55 0 .91.1 1.09.31c.18.2.22.56.13 1.03c-.1.53-.29.87-.57 1.09c-.29.22-.72.33-1.3.33h-.85l.5-2.76zm-3.5 5.55h1.44l.34-1.75h1.22c.55 0 1-.06 1.35-.17c.35-.12.65-.31.95-.58c.24-.22.44-.46.58-.73c.15-.26.26-.56.32-.88c.15-.78.04-1.39-.34-1.82c-.36-.44-.99-.65-1.82-.65h-2.75z"/>
+</svg>
diff --git a/app/assets/images/icons/file/text-x-ruby.svg b/app/assets/images/icons/file/text-x-ruby.svg
new file mode 100644
index 000000000..84693b451
--- /dev/null
+++ b/app/assets/images/icons/file/text-x-ruby.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: language-ruby.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M18.8 2.07c2.52.43 3.24 2.16 3.2 3.97V6l-1.14 14.93l-14.78 1.01h.01c-1.23-.05-3.96-.17-4.09-3.99l1.37-2.5l2.77 6.46l2.36-7.62l-.05.01l.02-.02l7.71 2.46l-1.99-7.78l7.35-.46l-5.79-4.74l3.05-1.7zM2 17.91v.02zM6.28 6.23c2.96-2.95 6.79-4.69 8.26-3.2c1.46 1.47-.08 5.09-3.04 8.03c-3 2.94-6.77 4.78-8.24 3.3c-1.47-1.49.04-5.19 3.01-8.13z"/>
+</svg>
diff --git a/app/assets/images/icons/file/text-xml.svg b/app/assets/images/icons/file/text-xml.svg
new file mode 100644
index 000000000..0d24f6870
--- /dev/null
+++ b/app/assets/images/icons/file/text-xml.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: xml.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="m12.89 3l1.96.4L11.11 21l-1.96-.4zm6.7 9L16 8.41V5.58L22.42 12L16 18.41v-2.83zM1.58 12L8 5.58v2.83L4.41 12L8 15.58v2.83z"/>
+</svg>
diff --git a/app/assets/images/icons/folder-open.svg b/app/assets/images/icons/folder-open.svg
new file mode 100644
index 000000000..27faea063
--- /dev/null
+++ b/app/assets/images/icons/folder-open.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: folder-open.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
+  <path fill="currentColor" d="M88.7 223.8L0 375.8V96c0-35.3 28.7-64 64-64h117.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8m27.6 16.1c5.8-9.9 16.3-15.9 27.7-15.9h400c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2.1-32.1l112-192z"/>
+</svg>
diff --git a/app/assets/images/icons/folder.svg b/app/assets/images/icons/folder.svg
new file mode 100644
index 000000000..a3c006467
--- /dev/null
+++ b/app/assets/images/icons/folder.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: folder.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M0 96c0-35.3 28.7-64 64-64h132.1c19.1 0 37.4 7.6 50.9 21.1L289.9 96H448c35.3 0 64 28.7 64 64v256c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm64-16c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h384c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16H286.6c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7z"/>
+</svg>
diff --git a/app/assets/images/icons/group.svg b/app/assets/images/icons/group.svg
new file mode 100644
index 000000000..eece4e6b9
--- /dev/null
+++ b/app/assets/images/icons/group.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: user-group.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
+  <path fill="currentColor" d="M96 128a128 128 0 1 1 256 0a128 128 0 1 1-256 0M0 482.3C0 383.8 79.8 304 178.3 304h91.4c98.5 0 178.3 79.8 178.3 178.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3M609.3 512H471.5c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4c89 0 161.2 72.2 161.2 161.3c0 17-13.8 30.7-30.7 30.7M432 256c-31 0-59-12.6-79.3-32.9c19.7-26.6 31.3-59.5 31.3-95.1c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112"/>
+</svg>
diff --git a/app/assets/images/icons/help.svg b/app/assets/images/icons/help.svg
new file mode 100644
index 000000000..ae54ebab3
--- /dev/null
+++ b/app/assets/images/icons/help.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: circle-info.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M256 512a256 256 0 1 0 0-512a256 256 0 1 0 0 512m-40-176h24v-64h-24c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-80c-13.3 0-24-10.7-24-24s10.7-24 24-24m40-208a32 32 0 1 1 0 64a32 32 0 1 1 0-64"/>
+</svg>
diff --git a/app/assets/images/icons/history.svg b/app/assets/images/icons/history.svg
new file mode 100644
index 000000000..5c16072b6
--- /dev/null
+++ b/app/assets/images/icons/history.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: clock-rotate-left.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24h110.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75m181 53c-13.3 0-24 10.7-24 24v104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z"/>
+</svg>
diff --git a/app/assets/images/icons/hourglass.svg b/app/assets/images/icons/hourglass.svg
new file mode 100644
index 000000000..1c3dba9cf
--- /dev/null
+++ b/app/assets/images/icons/hourglass.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: hourglass.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M0 32C0 14.3 14.3 0 32 0h320c17.7 0 32 14.3 32 32s-14.3 32-32 32v11c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32v-11c0-42.4 16.9-83.1 46.9-113.1l67.8-67.9l-67.8-67.9C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32m96 32v11c0 25.5 10.1 49.9 28.1 67.9l67.9 67.8l67.9-67.9c18-18 28.1-42.4 28.1-67.9v-11zm0 384h192v-11c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z"/>
+</svg>
diff --git a/app/assets/images/icons/import.svg b/app/assets/images/icons/import.svg
new file mode 100644
index 000000000..9014be94c
--- /dev/null
+++ b/app/assets/images/icons/import.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: file-import.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M128 64c0-35.3 28.7-64 64-64h160v128c0 17.7 14.3 32 32 32h128v288c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336h174.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39l-174.1.1zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm384-160H384V0z"/>
+</svg>
diff --git a/app/assets/images/icons/issue-closed.svg b/app/assets/images/icons/issue-closed.svg
new file mode 100644
index 000000000..578b70492
--- /dev/null
+++ b/app/assets/images/icons/issue-closed.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: square-check.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M64 80c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16zM0 96c0-35.3 28.7-64 64-64h320c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm337 113L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"/>
+</svg>
diff --git a/app/assets/images/icons/issue-edit.svg b/app/assets/images/icons/issue-edit.svg
new file mode 100644
index 000000000..3c6aa8beb
--- /dev/null
+++ b/app/assets/images/icons/issue-edit.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: pen-to-square.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0l-30.1 30l97.9 97.9l30.1-30.1c21.9-21.9 21.9-57.3 0-79.2zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5l167.3-167.4l-98-98zM96 64c-53 0-96 43-96 96v256c0 53 43 96 96 96h256c53 0 96-43 96-96v-96c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32z"/>
+</svg>
diff --git a/app/assets/images/icons/issue.svg b/app/assets/images/icons/issue.svg
new file mode 100644
index 000000000..a9d14ab0a
--- /dev/null
+++ b/app/assets/images/icons/issue.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: note-sticky.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M64 80c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h224v-80c0-17.7 14.3-32 32-32h80V96c0-8.8-7.2-16-16-16zm224 400H64c-35.3 0-64-28.7-64-64V96c0-35.3 28.7-64 64-64h320c35.3 0 64 28.7 64 64v229.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7z"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/bq.svg b/app/assets/images/icons/jstoolbar/bq.svg
new file mode 100644
index 000000000..6caf52820
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/bq.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: indent.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M0 64c0-17.7 14.3-32 32-32h384c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64m192 128c0-17.7 14.3-32 32-32h192c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32m32 96h192c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32M0 448c0-17.7 14.3-32 32-32h384c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32m127.8-179.4l-102 79.3c-10.5 8.2-25.8.7-25.8-12.6V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/del.svg b/app/assets/images/icons/jstoolbar/del.svg
new file mode 100644
index 000000000..6b83d8f29
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/del.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: strikethrough.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1.6-.2 1.1-.2 1.7c-2.8 23.9.5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h448c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1l-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zm187.6 193.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3c24.9 8.5 63.6 21.7 87.6 25.6h.2c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1h-75.7c7 5.6 11.4 11.2 13.9 17.2z"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/em.svg b/app/assets/images/icons/jstoolbar/em.svg
new file mode 100644
index 000000000..6c777d582
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/em.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: italic.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M128 64c0-17.7 14.3-32 32-32h192c17.7 0 32 14.3 32 32s-14.3 32-32 32h-58.7L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h58.7L224 96h-64c-17.7 0-32-14.3-32-32"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/help.svg b/app/assets/images/icons/jstoolbar/help.svg
new file mode 100644
index 000000000..6fd1fabdb
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/help.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: circle-question.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M464 256a208 208 0 1 0-416 0a208 208 0 1 0 416 0M0 256a256 256 0 1 1 512 0a256 256 0 1 1-512 0m169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24v-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1h-58.3c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0a32 32 0 1 1-64 0"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/img.svg b/app/assets/images/icons/jstoolbar/img.svg
new file mode 100644
index 000000000..ae9a15375
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/img.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: image.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M0 96c0-35.3 28.7-64 64-64h384c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm323.8 106.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6l-26.5-33.1c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S78.8 416 88 416h336c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7zM112 192a48 48 0 1 0 0-96a48 48 0 1 0 0 96"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/ins.svg b/app/assets/images/icons/jstoolbar/ins.svg
new file mode 100644
index 000000000..575772e1e
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/ins.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: underline.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v128c0 53 43 96 96 96s96-43 96-96V96h-16c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v128c0 88.4-71.6 160-160 160S64 312.4 64 224V96H48c-17.7 0-32-14.3-32-32M0 448c0-17.7 14.3-32 32-32h384c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/link.svg b/app/assets/images/icons/jstoolbar/link.svg
new file mode 100644
index 000000000..92b8d8e4a
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/link.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: link.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
+  <path fill="currentColor" d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l112.2-112.3c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0z"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/ol.svg b/app/assets/images/icons/jstoolbar/ol.svg
new file mode 100644
index 000000000..5de0bc156
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/ol.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: list-ol.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M24 56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v120h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V80h-8c-13.3 0-24-10.7-24-24m62.7 285.2c-6.5-7.4-18.3-6.9-24 1.2l-11.2 15.5c-7.7 10.8-22.7 13.3-33.5 5.6S4.7 340.8 12.4 330l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6.3-20.5zM224 64h256c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32m0 160h256c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32m0 160h256c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/precode.svg b/app/assets/images/icons/jstoolbar/precode.svg
new file mode 100644
index 000000000..eb2a43169
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/precode.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: code.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
+  <path fill="currentColor" d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6m80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3l89.3 89.4l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/strong.svg b/app/assets/images/icons/jstoolbar/strong.svg
new file mode 100644
index 000000000..dbbdd9753
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/strong.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: bold.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M0 64c0-17.7 14.3-32 32-32h192c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H32C14.3 96 0 81.7 0 64m224 160c35.3 0 64-28.7 64-64s-28.7-64-64-64H112v128zm-112 64v128h144c35.3 0 64-28.7 64-64s-28.7-64-64-64z"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/table.svg b/app/assets/images/icons/jstoolbar/table.svg
new file mode 100644
index 000000000..f543df9bd
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/table.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: table.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M64 256v-96h160v96zm0 64h160v96H64zm224 96v-96h160v96zm160-160H288v-96h160zM64 32C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64z"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/tl.svg b/app/assets/images/icons/jstoolbar/tl.svg
new file mode 100644
index 000000000..8e1b1570d
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/tl.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: list-check.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113c-9.3-9.4-9.3-24.6 0-34s24.6-9.4 33.9 0L63 101.1l55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L63 261.2l55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32h224c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32m0 160c0-17.7 14.3-32 32-32h224c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32m-64 160c0-17.7 14.3-32 32-32h288c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32M48 368a48 48 0 1 1 0 96a48 48 0 1 1 0-96"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/ul.svg b/app/assets/images/icons/jstoolbar/ul.svg
new file mode 100644
index 000000000..23d06b028
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/ul.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: list-ul.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M64 144a48 48 0 1 0 0-96a48 48 0 1 0 0 96m128-80c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 464a48 48 0 1 0 0-96a48 48 0 1 0 0 96m48-208a48 48 0 1 0-96 0a48 48 0 1 0 96 0"/>
+</svg>
diff --git a/app/assets/images/icons/jstoolbar/unbq.svg b/app/assets/images/icons/jstoolbar/unbq.svg
new file mode 100644
index 000000000..6b4978c96
--- /dev/null
+++ b/app/assets/images/icons/jstoolbar/unbq.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: outdent.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M0 64c0-17.7 14.3-32 32-32h384c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64m192 128c0-17.7 14.3-32 32-32h192c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32m32 96h192c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32M0 448c0-17.7 14.3-32 32-32h384c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32m.2-179.4c-8.2-6.4-8.2-18.9 0-25.3L102.1 164c10.5-8.2 25.8-.7 25.8 12.6v158.6c0 13.3-15.3 20.8-25.8 12.6z"/>
+</svg>
diff --git a/app/assets/images/icons/link-break.svg b/app/assets/images/icons/link-break.svg
new file mode 100644
index 000000000..63d6e84b8
--- /dev/null
+++ b/app/assets/images/icons/link-break.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: link-slash.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
+  <path fill="currentColor" d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2s-6.3 25.5 4.1 33.7l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96l-31.9-25c24.3-53.8 13.5-118.3-29.6-161.4c-52.2-52.3-134.5-56.2-191.3-11.7zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5zm167.6 254.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5l-56.4 56.4c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8l-50.6-39.9z"/>
+</svg>
diff --git a/app/assets/images/icons/link.svg b/app/assets/images/icons/link.svg
new file mode 100644
index 000000000..92b8d8e4a
--- /dev/null
+++ b/app/assets/images/icons/link.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: link.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
+  <path fill="currentColor" d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l112.2-112.3c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0z"/>
+</svg>
diff --git a/app/assets/images/icons/lock.svg b/app/assets/images/icons/lock.svg
new file mode 100644
index 000000000..0ac69d086
--- /dev/null
+++ b/app/assets/images/icons/lock.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: lock.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M144 144v48h160v-48c0-44.2-35.8-80-80-80s-80 35.8-80 80m-64 48v-48C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64v192c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64z"/>
+</svg>
diff --git a/app/assets/images/icons/magnifier.svg b/app/assets/images/icons/magnifier.svg
new file mode 100644
index 000000000..4caa1b0d0
--- /dev/null
+++ b/app/assets/images/icons/magnifier.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: magnifying-glass.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M416 208c0 45.9-14.9 88.3-40 122.7l126.6 126.7c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208M208 352a144 144 0 1 0 0-288a144 144 0 1 0 0 288"/>
+</svg>
diff --git a/app/assets/images/icons/move.svg b/app/assets/images/icons/move.svg
new file mode 100644
index 000000000..f66356488
--- /dev/null
+++ b/app/assets/images/icons/move.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: share.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304c0 113.3 81.5 163.9 100.2 174.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5c-9.4-8.9-22.2-26.4-22.2-56.8c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144a31.76 31.76 0 0 0-34.4-5.4"/>
+</svg>
diff --git a/app/assets/images/icons/news.svg b/app/assets/images/icons/news.svg
new file mode 100644
index 000000000..286e84b5f
--- /dev/null
+++ b/app/assets/images/icons/news.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: newspaper.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M168 80c-13.3 0-24 10.7-24 24v304c0 8.4-1.4 16.5-4.1 24H440c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24zM72 480c-39.8 0-72-32.2-72-72V112c0-13.3 10.7-24 24-24s24 10.7 24 24v296c0 13.3 10.7 24 24 24s24-10.7 24-24V104c0-39.8 32.2-72 72-72h272c39.8 0 72 32.2 72 72v304c0 39.8-32.2 72-72 72zm104-344c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24v80c0 13.3-10.7 24-24 24h-96c-13.3 0-24-10.7-24-24zm200-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24s10.7-24 24-24m0 80h32c13.3 0 24 10.7 24 24s-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24s10.7-24 24-24m-176 80h208c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24m0 80h208c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24"/>
+</svg>
diff --git a/app/assets/images/icons/package.svg b/app/assets/images/icons/package.svg
new file mode 100644
index 000000000..125c3f1a6
--- /dev/null
+++ b/app/assets/images/icons/package.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: cube.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6c25.4 9.1 42.4 33.2 42.4 60.3v242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3zM256 66L82.3 128L256 190l173.7-62zm32 368.6l160-57.1v-188l-160 57.1z"/>
+</svg>
diff --git a/app/assets/images/icons/plugin.svg b/app/assets/images/icons/plugin.svg
new file mode 100644
index 000000000..c71a43e9b
--- /dev/null
+++ b/app/assets/images/icons/plugin.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: puzzle-piece.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M192 104.8c0-9.2-5.8-17.3-13.2-22.8c-11.6-8.7-18.8-20.7-18.8-34c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48h-56.8c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2c8.7 11.6 20.7 18.8 34 18.8c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8c-5.5 7.4-13.6 13.2-22.8 13.2C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48h120.8c12.8 0 23.2-10.4 23.2-23.2"/>
+</svg>
diff --git a/app/assets/images/icons/projects.svg b/app/assets/images/icons/projects.svg
new file mode 100644
index 000000000..174c3e22b
--- /dev/null
+++ b/app/assets/images/icons/projects.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: cubes.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
+  <path fill="currentColor" d="m290.8 48.6l78.4 29.7l-81.2 31.2l-81.2-31.2l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5v112.2c-1.3.4-2.6.8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7v119.2c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.8c0-23.3-14.4-44.1-36.1-52.4L444 206c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4L308 3.7c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5m256 118.1l-82.4 31.2v-89.2L392 121zm-237.2 40.3l78.4 29.7l-81.2 31.1l-81.2-31.1l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8l82.4-31.6v95.9zm247.6-204.4c1.8-.7 3.8-.7 5.7 0l78.4 29.7l-81.3 31.1l-81.2-31.1zm102 170.3l-77.6 34.1V354.8l82.4-31.6v90.7c0 3.2-1.9 6-4.8 7.3"/>
+</svg>
diff --git a/app/assets/images/icons/reload.svg b/app/assets/images/icons/reload.svg
new file mode 100644
index 000000000..acf2befd5
--- /dev/null
+++ b/app/assets/images/icons/reload.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome 5 Solid icon: sync.svg version: 5.15.4 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="m440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26a175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57M255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432"/>
+</svg>
diff --git a/app/assets/images/icons/reorder.svg b/app/assets/images/icons/reorder.svg
new file mode 100644
index 000000000..29a0cf46e
--- /dev/null
+++ b/app/assets/images/icons/reorder.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: arrows-up-down.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
+  <path fill="currentColor" d="M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l41.4-41.4v293.5l-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.2l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z"/>
+</svg>
diff --git a/app/assets/images/icons/report.svg b/app/assets/images/icons/report.svg
new file mode 100644
index 000000000..5e1d32b5a
--- /dev/null
+++ b/app/assets/images/icons/report.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Fluent UI System Icons icon: document-lightning-32-regular.svg version: 1.1.249 license: MIT url: https://github.com/microsoft/fluentui-system-icons -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
+  <path fill="currentColor" d="M8 2a3 3 0 0 0-3 3v8.763c.34-.17.721-.263 1.117-.263H7V5a1 1 0 0 1 1-1h9v5a3 3 0 0 0 3 3h5v15a1 1 0 0 1-1 1H10.982l-2.076 2H24a3 3 0 0 0 3-3V10.828a3 3 0 0 0-.879-2.12l-5.828-5.83A3 3 0 0 0 18.172 2zm16.586 8H20a1 1 0 0 1-1-1V4.414zM6.119 15h8.382a.5.5 0 0 1 .427.76L11.748 21h2.491a.75.75 0 0 1 .52 1.29l-8.746 8.427c-.758.73-1.985-.055-1.639-1.05L6 25H1.748a.75.75 0 0 1-.672-1.083l4.147-8.361A1 1 0 0 1 6.12 15"/>
+</svg>
diff --git a/app/assets/images/icons/roles.svg b/app/assets/images/icons/roles.svg
new file mode 100644
index 000000000..b31f1397d
--- /dev/null
+++ b/app/assets/images/icons/roles.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: eye.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
+  <path fill="currentColor" d="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32M144 256a144 144 0 1 1 288 0a144 144 0 1 1-288 0m144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3"/>
+</svg>
diff --git a/app/assets/images/icons/save.svg b/app/assets/images/icons/save.svg
new file mode 100644
index 000000000..e79aa2b62
--- /dev/null
+++ b/app/assets/images/icons/save.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: floppy-disk.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M48 96v320c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V170.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96c0-35.3 28.7-64 64-64h245.5c17 0 33.3 6.7 45.3 18.7l74.5 74.5l-33.9 33.9l-74.6-74.4l-.8-.8V184c0 13.3-10.7 24-24 24H104c-13.3 0-24-10.7-24-24V80H64c-8.8 0-16 7.2-16 16m80-16v80h144V80zm32 240a64 64 0 1 1 128 0a64 64 0 1 1-128 0"/>
+</svg>
diff --git a/app/assets/images/icons/scm-change.svg b/app/assets/images/icons/scm-change.svg
new file mode 100644
index 000000000..7c83e95b4
--- /dev/null
+++ b/app/assets/images/icons/scm-change.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Material Design Icons icon: pencil-circle.svg license: Apache 2.0 url: https://github.com/Templarian/MaterialDesign -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+  <path fill="currentColor" d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2m3.1 5.07c.14 0 .28.05.4.16l1.27 1.27c.23.22.23.57 0 .78l-1 1l-2.05-2.05l1-1c.1-.11.24-.16.38-.16m-1.97 1.74l2.06 2.06l-6.06 6.06H7.07v-2.06z"/>
+</svg>
diff --git a/app/assets/images/icons/scm-move.svg b/app/assets/images/icons/scm-move.svg
new file mode 100644
index 000000000..15fe6a89c
--- /dev/null
+++ b/app/assets/images/icons/scm-move.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: circle-arrow-right.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M0 256a256 256 0 1 0 512 0a256 256 0 1 0-512 0m297 129c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24h214.1l-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9z"/>
+</svg>
diff --git a/app/assets/images/icons/server-authentication.svg b/app/assets/images/icons/server-authentication.svg
new file mode 100644
index 000000000..05536f800
--- /dev/null
+++ b/app/assets/images/icons/server-authentication.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: key.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24v-40h40c13.3 0 24-10.7 24-24v-40h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3m40-256a40 40 0 1 1 0 80a40 40 0 1 1 0-80"/>
+</svg>
diff --git a/app/assets/images/icons/settings.svg b/app/assets/images/icons/settings.svg
new file mode 100644
index 000000000..ce664209d
--- /dev/null
+++ b/app/assets/images/icons/settings.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: gear.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M495.9 166.6c3.2 8.7.5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4l-55.6 17.8c-8.8 2.8-18.6.3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4c-1.1-8.4-1.7-16.9-1.7-25.5s.6-17.1 1.7-25.4l-43.3-39.4c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160a80 80 0 1 0 0 160"/>
+</svg>
diff --git a/app/assets/images/icons/stats.svg b/app/assets/images/icons/stats.svg
new file mode 100644
index 000000000..0571e968e
--- /dev/null
+++ b/app/assets/images/icons/stats.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: chart-bar.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M24 32c13.3 0 24 10.7 24 24v352c0 13.3 10.7 24 24 24h416c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-39.8 0-72-32.2-72-72V56c0-13.3 10.7-24 24-24m104 104c0-13.3 10.7-24 24-24h208c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24m24 72h144c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24m0 96h272c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24"/>
+</svg>
diff --git a/app/assets/images/icons/summary.svg b/app/assets/images/icons/summary.svg
new file mode 100644
index 000000000..8902fab70
--- /dev/null
+++ b/app/assets/images/icons/summary.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: bolt-lightning.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M0 256L28.5 28c2-16 15.6-28 31.8-28h168.6c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160h139.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5q0-3.45.9-6.9L176 288H32c-17.7 0-32-14.3-32-32"/>
+</svg>
diff --git a/app/assets/images/icons/table-multiple.svg b/app/assets/images/icons/table-multiple.svg
new file mode 100644
index 000000000..58404f39a
--- /dev/null
+++ b/app/assets/images/icons/table-multiple.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome 5 Solid icon: sync-alt.svg version: 5.15.4 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85c-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28c77.418-.07 144.315-53.144 162.787-126.849c1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24"/>
+</svg>
diff --git a/app/assets/images/icons/tag-blue-add.svg b/app/assets/images/icons/tag-blue-add.svg
new file mode 100644
index 000000000..5c056e196
--- /dev/null
+++ b/app/assets/images/icons/tag-blue-add.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: bookmark.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M0 48C0 21.5 21.5 0 48 0v441.4l130.1-92.9c8.3-6 19.6-6 27.9 0l130 92.9V48H48V0h288c26.5 0 48 21.5 48 48v440c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5l-154.1 110c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488z"/>
+</svg>
diff --git a/app/assets/images/icons/tag-blue-delete.svg b/app/assets/images/icons/tag-blue-delete.svg
new file mode 100644
index 000000000..4abf027d8
--- /dev/null
+++ b/app/assets/images/icons/tag-blue-delete.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: bookmark.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M0 48v439.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400l153.7 107.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48"/>
+</svg>
diff --git a/app/assets/images/icons/text-list-bullets.svg b/app/assets/images/icons/text-list-bullets.svg
new file mode 100644
index 000000000..23d06b028
--- /dev/null
+++ b/app/assets/images/icons/text-list-bullets.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: list-ul.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M64 144a48 48 0 1 0 0-96a48 48 0 1 0 0 96m128-80c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32h288c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 464a48 48 0 1 0 0-96a48 48 0 1 0 0 96m48-208a48 48 0 1 0-96 0a48 48 0 1 0 96 0"/>
+</svg>
diff --git a/app/assets/images/icons/textfield-key.svg b/app/assets/images/icons/textfield-key.svg
new file mode 100644
index 000000000..05536f800
--- /dev/null
+++ b/app/assets/images/icons/textfield-key.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: key.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24v-40h40c13.3 0 24-10.7 24-24v-40h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3m40-256a40 40 0 1 1 0 80a40 40 0 1 1 0-80"/>
+</svg>
diff --git a/app/assets/images/icons/textfield.svg b/app/assets/images/icons/textfield.svg
new file mode 100644
index 000000000..b1bbddd87
--- /dev/null
+++ b/app/assets/images/icons/textfield.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: file-lines.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512">
+  <path fill="currentColor" d="M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h160v80c0 17.7 14.3 32 32 32h80v288c0 8.8-7.2 16-16 16zM64 0C28.7 0 0 28.7 0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3l-90.6-90.5C262.7 6.7 246.5 0 229.5 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24h144c13.3 0 24-10.7 24-24s-10.7-24-24-24zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h144c13.3 0 24-10.7 24-24s-10.7-24-24-24z"/>
+</svg>
diff --git a/app/assets/images/icons/time.svg b/app/assets/images/icons/time.svg
new file mode 100644
index 000000000..3e0adb853
--- /dev/null
+++ b/app/assets/images/icons/time.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: clock.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M464 256a208 208 0 1 1-416 0a208 208 0 1 1 416 0M0 256a256 256 0 1 0 512 0a256 256 0 1 0-512 0m232-136v136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24"/>
+</svg>
diff --git a/app/assets/images/icons/toggle-minus.svg b/app/assets/images/icons/toggle-minus.svg
new file mode 100644
index 000000000..a85884bfb
--- /dev/null
+++ b/app/assets/images/icons/toggle-minus.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: square-minus.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M64 80c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16zM0 96c0-35.3 28.7-64 64-64h320c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm152 136h144c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24"/>
+</svg>
diff --git a/app/assets/images/icons/toggle-plus.svg b/app/assets/images/icons/toggle-plus.svg
new file mode 100644
index 000000000..069fa3add
--- /dev/null
+++ b/app/assets/images/icons/toggle-plus.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Regular icon: square-plus.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M64 80c-8.8 0-16 7.2-16 16v320c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16zM0 96c0-35.3 28.7-64 64-64h320c35.3 0 64 28.7 64 64v320c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64zm200 248v-64h-64c-13.3 0-24-10.7-24-24s10.7-24 24-24h64v-64c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24h-64v64c0 13.3-10.7 24-24 24s-24-10.7-24-24"/>
+</svg>
diff --git a/app/assets/images/icons/true.svg b/app/assets/images/icons/true.svg
new file mode 100644
index 000000000..723796fae
--- /dev/null
+++ b/app/assets/images/icons/true.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: check.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7l233.4-233.3c12.5-12.5 32.8-12.5 45.3 0z"/>
+</svg>
diff --git a/app/assets/images/icons/unlock.svg b/app/assets/images/icons/unlock.svg
new file mode 100644
index 000000000..d0166e70f
--- /dev/null
+++ b/app/assets/images/icons/unlock.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: unlock.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64v192c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144z"/>
+</svg>
diff --git a/app/assets/images/icons/user.svg b/app/assets/images/icons/user.svg
new file mode 100644
index 000000000..641b7188b
--- /dev/null
+++ b/app/assets/images/icons/user.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: user.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M224 256a128 128 0 1 0 0-256a128 128 0 1 0 0 256m-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512h388.6c16.4 0 29.7-13.3 29.7-29.7c0-98.5-79.8-178.3-178.3-178.3z"/>
+</svg>
diff --git a/app/assets/images/icons/warning.svg b/app/assets/images/icons/warning.svg
new file mode 100644
index 000000000..4edb05695
--- /dev/null
+++ b/app/assets/images/icons/warning.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: triangle-exclamation.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7.2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8.2-40.1l216-368C228.7 39.5 241.8 32 256 32m0 128c-13.3 0-24 10.7-24 24v112c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24m32 224a32 32 0 1 0-64 0a32 32 0 1 0 64 0"/>
+</svg>
diff --git a/app/assets/images/icons/wiki-edit.svg b/app/assets/images/icons/wiki-edit.svg
new file mode 100644
index 000000000..38c4bf5e1
--- /dev/null
+++ b/app/assets/images/icons/wiki-edit.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: book.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
+  <path fill="currentColor" d="M96 0C43 0 0 43 0 96v320c0 53 43 96 96 96h320c17.7 0 32-14.3 32-32s-14.3-32-32-32v-64c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32zm0 384h256v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32m32-240c0-8.8 7.2-16 16-16h192c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16m16 48h192c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16"/>
+</svg>
diff --git a/app/assets/images/icons/workflows.svg b/app/assets/images/icons/workflows.svg
new file mode 100644
index 000000000..1db2db537
--- /dev/null
+++ b/app/assets/images/icons/workflows.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome Solid icon: gears.svg version: 6.6.0 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
+  <path fill="currentColor" d="M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5l-3.1-5.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1L241.3 77c-10.7-8.8-23-16-36.2-20.9l-6.1-29c-1.9-9.3-9.1-16.7-18.5-17.8c-6.6-.9-13.3-1.3-20.1-1.3h-.7q-10.2 0-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9l-28.3-9.2c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8c-1.1 6.7-1.7 13.7-1.7 20.8s.6 14.1 1.7 20.9l-22.2 19.8c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8q10.05 1.2 20.4 1.2c10.35 0 13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7.9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0a48 48 0 1 1-96 0m392.7 324.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2L613 391c9.3-1.9 16.7-9.1 17.8-18.5q1.2-10.05 1.2-20.4c0-10.35-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5l-29.1-6.2c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1.6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2l-29.1 6c-9.3 1.9-16.7 9.1-17.8 18.5q-1.2 10.05-1.2 20.4c0 10.35.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6.9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96a48 48 0 1 1 0-96"/>
+</svg>
diff --git a/app/assets/images/icons/zoom-in.svg b/app/assets/images/icons/zoom-in.svg
new file mode 100644
index 000000000..2a12a46ed
--- /dev/null
+++ b/app/assets/images/icons/zoom-in.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome 5 Solid icon: search-plus.svg version: 5.15.4 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12m201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34M344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136s136-60.8 136-136"/>
+</svg>
diff --git a/app/assets/images/icons/zoom-out.svg b/app/assets/images/icons/zoom-out.svg
new file mode 100644
index 000000000..2eec9cfcf
--- /dev/null
+++ b/app/assets/images/icons/zoom-out.svg
@@ -0,0 +1,4 @@
+<!-- iconset: Font Awesome 5 Solid icon: search-minus.svg version: 5.15.4 license: CC BY 4.0 url: https://github.com/FortAwesome/Font-Awesome -->
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
+  <path fill="currentColor" d="M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12m201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34M344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136s136-60.8 136-136"/>
+</svg>
-- 
2.39.2

