diff --git a/.branding b/.branding
new file mode 100644
index 00000000..2c4bb8aa
--- /dev/null
+++ b/.branding
@@ -0,0 +1,2 @@
+https://github.com/Keavon/graphite-branded-assets/archive/f8b02e68c92f5bbd27626bdd7a51102303b70a40.tar.gz
+d06fd7b79fa9b7509c23072fa56745415fdc6eb98575d15214b0acc47ea4dd42
diff --git a/.github/workflows/build-dev-and-ci.yml b/.github/workflows/build-dev-and-ci.yml
index 52beaa02..e0aa8437 100644
--- a/.github/workflows/build-dev-and-ci.yml
+++ b/.github/workflows/build-dev-and-ci.yml
@@ -34,10 +34,10 @@ jobs:
with:
node-version: "latest"
- - name: 🚧 Install Node dependencies
+ - name: 🚧 Install build dependencies
run: |
cd frontend
- npm ci
+ npm run setup
- name: 🦀 Install the latest Rust
run: |
diff --git a/.github/workflows/build-production.yml b/.github/workflows/build-production.yml
index fa58e186..6f37a42f 100644
--- a/.github/workflows/build-production.yml
+++ b/.github/workflows/build-production.yml
@@ -32,10 +32,10 @@ jobs:
with:
node-version: "latest"
- - name: 🚧 Install Node dependencies
+ - name: 🚧 Install build dependencies
run: |
cd frontend
- npm ci
+ npm run setup
- name: 🦀 Install the latest Rust
run: |
diff --git a/.github/workflows/comment-!build-commands.yml b/.github/workflows/comment-!build-commands.yml
index 8d8a0ae0..87b8581b 100644
--- a/.github/workflows/comment-!build-commands.yml
+++ b/.github/workflows/comment-!build-commands.yml
@@ -59,10 +59,10 @@ jobs:
with:
node-version: "latest"
- - name: 🚧 Install Node dependencies
+ - name: 🚧 Install build dependencies
run: |
cd frontend
- npm ci
+ npm run setup
- name: 🦀 Install the latest Rust
run: |
diff --git a/.gitignore b/.gitignore
index 92eb3381..8f569654 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+branding/
target/
result/
*.spv
diff --git a/.nix/pkgs/graphite.nix b/.nix/pkgs/graphite.nix
index 99647b8b..31fd5072 100644
--- a/.nix/pkgs/graphite.nix
+++ b/.nix/pkgs/graphite.nix
@@ -14,6 +14,22 @@
}:
let
+ brandingTar = pkgs.fetchurl (
+ let
+ lockContent = builtins.readFile "${info.src}/.branding";
+ lines = builtins.filter (s: s != [ ]) (builtins.split "\n" lockContent);
+ url = builtins.elemAt lines 0;
+ hash = builtins.elemAt lines 1;
+ in
+ {
+ url = url;
+ sha256 = hash;
+ }
+ );
+ branding = pkgs.runCommand "${info.pname}-branding" { } ''
+ mkdir -p $out
+ tar -xvf ${brandingTar} -C $out --strip-components 1
+ '';
resourcesCommon = {
pname = "${info.pname}-resources";
inherit (info) version src;
@@ -32,7 +48,7 @@ let
npmDeps = pkgs.fetchNpmDeps {
inherit (info) pname version;
src = "${info.src}/frontend";
- hash = "sha256-UWuJpKNYj2Xn34rpMDZ75pzMYUOLQjPeGuJ/QlPbX9A=";
+ hash = "sha256-D8VCNK+Ca3gxO+5wriBn8FszG8/x8n/zM6/MPo9E2j4=";
};
npmRoot = "frontend";
@@ -41,11 +57,17 @@ let
nativeBuildInputs = tools.frontend ++ [ pkgs.npmHooks.npmConfigHook ];
+ prePatch = ''
+ mkdir branding
+ cp -r ${branding}/* branding
+ cp ${info.src}/.branding branding/.branding
+ '';
+
buildPhase = ''
export HOME="$TMPDIR"
pushd frontend
- npm run build-native${if dev then "-dev" else ""}
+ npm run native:build-${if dev then "dev" else "production"}
popd
'';
@@ -89,6 +111,11 @@ deps.crane.lib.buildPackage (
{ }
);
+ postUnpack = ''
+ mkdir ./branding
+ cp -r ${branding}/* ./branding
+ '';
+
installPhase = ''
mkdir -p $out/bin
cp target/${if dev then "debug" else "release"}/graphite $out/bin/graphite
@@ -97,7 +124,7 @@ deps.crane.lib.buildPackage (
cp $src/desktop/assets/*.desktop $out/share/applications/
mkdir -p $out/share/icons/hicolor/scalable/apps
- cp $src/desktop/assets/graphite-icon-color.svg $out/share/icons/hicolor/scalable/apps/
+ cp ${branding}/app-icons/graphite.svg $out/share/icons/hicolor/scalable/apps/
'';
postFixup = ''
diff --git a/desktop/assets/graphite-icon-color.ico b/desktop/assets/graphite-icon-color.ico
deleted file mode 100644
index d8005273..00000000
Binary files a/desktop/assets/graphite-icon-color.ico and /dev/null differ
diff --git a/desktop/assets/graphite-icon-color.png b/desktop/assets/graphite-icon-color.png
deleted file mode 100644
index f4e2047c..00000000
Binary files a/desktop/assets/graphite-icon-color.png and /dev/null differ
diff --git a/desktop/assets/graphite-icon-color.svg b/desktop/assets/graphite-icon-color.svg
deleted file mode 100644
index 00166c61..00000000
--- a/desktop/assets/graphite-icon-color.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/desktop/assets/rs.graphite.GraphiteEditor.desktop b/desktop/assets/rs.graphite.Graphite.desktop
similarity index 83%
rename from desktop/assets/rs.graphite.GraphiteEditor.desktop
rename to desktop/assets/rs.graphite.Graphite.desktop
index 4080cac6..c0cf4ef0 100644
--- a/desktop/assets/rs.graphite.GraphiteEditor.desktop
+++ b/desktop/assets/rs.graphite.Graphite.desktop
@@ -5,7 +5,7 @@ Comment=Open-source vector & raster graphics editor. Featuring node based proced
Exec=graphite
Terminal=false
Type=Application
-Icon=graphite-icon-color
+Icon=graphite
Categories=Graphics;VectorGraphics;RasterGraphics;
Keywords=graphite;editor;vector;raster;procedural;design;
-StartupWMClass=rs.graphite.GraphiteEditor
+StartupWMClass=rs.graphite.Graphite
diff --git a/desktop/bundle/src/mac.rs b/desktop/bundle/src/mac.rs
index 08a5279c..b393b57f 100644
--- a/desktop/bundle/src/mac.rs
+++ b/desktop/bundle/src/mac.rs
@@ -5,7 +5,7 @@ use std::path::{Path, PathBuf};
use crate::common::*;
-const APP_ID: &str = "rs.graphite.GraphiteEditor";
+const APP_ID: &str = "rs.graphite.Graphite";
const PACKAGE: &str = "graphite-desktop-platform-mac";
const HELPER_BIN: &str = "graphite-desktop-platform-mac-helper";
diff --git a/desktop/platform/win/build.rs b/desktop/platform/win/build.rs
index d52ffbed..dc979a12 100644
--- a/desktop/platform/win/build.rs
+++ b/desktop/platform/win/build.rs
@@ -2,7 +2,7 @@ fn main() {
#[cfg(target_os = "windows")]
{
let mut res = winres::WindowsResource::new();
- res.set_icon("../../assets/graphite-icon-color.ico");
+ res.set_icon("../../../branding/app-icons/graphite.ico");
res.compile().expect("Failed to compile Windows resources");
}
}
diff --git a/desktop/src/consts.rs b/desktop/src/consts.rs
index 21e76001..431f2733 100644
--- a/desktop/src/consts.rs
+++ b/desktop/src/consts.rs
@@ -1,5 +1,5 @@
pub(crate) const APP_NAME: &str = "Graphite";
-pub(crate) const APP_ID: &str = "rs.graphite.GraphiteEditor";
+pub(crate) const APP_ID: &str = "rs.graphite.Graphite";
pub(crate) const APP_DIRECTORY_NAME: &str = "graphite-editor";
pub(crate) const APP_STATE_FILE_NAME: &str = "state.ron";
diff --git a/frontend/assets/LICENSE.md b/frontend/assets/LICENSE.md
deleted file mode 100644
index 0d2e4c34..00000000
--- a/frontend/assets/LICENSE.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Copyright (c) 2021-2025 Graphite Labs, LLC.
-
-The design assets in this directory (including SVG code for icons and logos) are NOT licensed under the Apache 2.0 license terms applied to other Graphite source code files. This directory and its entire contents are excluded from the Apache 2.0 source code license, and full copyright is held by the rightsholder for the creative works contained as files herein.
-
-Parties interested in using Graphite source code in a capacity that deploys the Graphite editor reference frontend are advised to substitute all assets and "Graphite" branding or otherwise arrange written permission from the rightsholder (see https://graphite.rs/contact/ for contact info). The recommended use case for adopting Graphite open source code is to develop one's own unique frontend user interface implementation that integrates Graphite's backend technology.
diff --git a/frontend/assets/graphics/graphite-logotype-solid.svg b/frontend/assets/graphics/graphite-logotype-solid.svg
deleted file mode 100644
index a7ef01b4..00000000
--- a/frontend/assets/graphics/graphite-logotype-solid.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/add.svg b/frontend/assets/icon-12px-solid/add.svg
deleted file mode 100644
index 4fb9442e..00000000
--- a/frontend/assets/icon-12px-solid/add.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/checkmark.svg b/frontend/assets/icon-12px-solid/checkmark.svg
deleted file mode 100644
index 83f0568c..00000000
--- a/frontend/assets/icon-12px-solid/checkmark.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/clipped.svg b/frontend/assets/icon-12px-solid/clipped.svg
deleted file mode 100644
index 76c2e894..00000000
--- a/frontend/assets/icon-12px-solid/clipped.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/close-x.svg b/frontend/assets/icon-12px-solid/close-x.svg
deleted file mode 100644
index d40d2973..00000000
--- a/frontend/assets/icon-12px-solid/close-x.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/delay.svg b/frontend/assets/icon-12px-solid/delay.svg
deleted file mode 100644
index 1767c89e..00000000
--- a/frontend/assets/icon-12px-solid/delay.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/dot.svg b/frontend/assets/icon-12px-solid/dot.svg
deleted file mode 100644
index 63f4a4e0..00000000
--- a/frontend/assets/icon-12px-solid/dot.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/dropdown-arrow.svg b/frontend/assets/icon-12px-solid/dropdown-arrow.svg
deleted file mode 100644
index 7fb5f15b..00000000
--- a/frontend/assets/icon-12px-solid/dropdown-arrow.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/edit-12px.svg b/frontend/assets/icon-12px-solid/edit-12px.svg
deleted file mode 100644
index 074f7614..00000000
--- a/frontend/assets/icon-12px-solid/edit-12px.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/empty-12px.svg b/frontend/assets/icon-12px-solid/empty-12px.svg
deleted file mode 100644
index ed62aab1..00000000
--- a/frontend/assets/icon-12px-solid/empty-12px.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/failure.svg b/frontend/assets/icon-12px-solid/failure.svg
deleted file mode 100644
index c43014bc..00000000
--- a/frontend/assets/icon-12px-solid/failure.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/fullscreen-enter.svg b/frontend/assets/icon-12px-solid/fullscreen-enter.svg
deleted file mode 100644
index 87111c99..00000000
--- a/frontend/assets/icon-12px-solid/fullscreen-enter.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/fullscreen-exit.svg b/frontend/assets/icon-12px-solid/fullscreen-exit.svg
deleted file mode 100644
index c9d36c93..00000000
--- a/frontend/assets/icon-12px-solid/fullscreen-exit.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/grid-dotted.svg b/frontend/assets/icon-12px-solid/grid-dotted.svg
deleted file mode 100644
index 551300be..00000000
--- a/frontend/assets/icon-12px-solid/grid-dotted.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/grid.svg b/frontend/assets/icon-12px-solid/grid.svg
deleted file mode 100644
index 0a783514..00000000
--- a/frontend/assets/icon-12px-solid/grid.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/info.svg b/frontend/assets/icon-12px-solid/info.svg
deleted file mode 100644
index 6d28348e..00000000
--- a/frontend/assets/icon-12px-solid/info.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-arrow-down.svg b/frontend/assets/icon-12px-solid/keyboard-arrow-down.svg
deleted file mode 100644
index 8f269dba..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-arrow-down.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-arrow-left.svg b/frontend/assets/icon-12px-solid/keyboard-arrow-left.svg
deleted file mode 100644
index 3d090c9f..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-arrow-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-arrow-right.svg b/frontend/assets/icon-12px-solid/keyboard-arrow-right.svg
deleted file mode 100644
index 8614c82f..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-arrow-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-arrow-up.svg b/frontend/assets/icon-12px-solid/keyboard-arrow-up.svg
deleted file mode 100644
index c9611e55..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-arrow-up.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-backspace.svg b/frontend/assets/icon-12px-solid/keyboard-backspace.svg
deleted file mode 100644
index e4ae8848..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-backspace.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-command.svg b/frontend/assets/icon-12px-solid/keyboard-command.svg
deleted file mode 100644
index e2ea25c3..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-command.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-control.svg b/frontend/assets/icon-12px-solid/keyboard-control.svg
deleted file mode 100644
index 591d2c0b..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-control.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-enter.svg b/frontend/assets/icon-12px-solid/keyboard-enter.svg
deleted file mode 100644
index c9e25d54..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-enter.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-option.svg b/frontend/assets/icon-12px-solid/keyboard-option.svg
deleted file mode 100644
index 9d6c246b..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-option.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-shift.svg b/frontend/assets/icon-12px-solid/keyboard-shift.svg
deleted file mode 100644
index 4e8b732a..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-shift.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-space.svg b/frontend/assets/icon-12px-solid/keyboard-space.svg
deleted file mode 100644
index 1bcb73ea..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-space.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/keyboard-tab.svg b/frontend/assets/icon-12px-solid/keyboard-tab.svg
deleted file mode 100644
index 77888255..00000000
--- a/frontend/assets/icon-12px-solid/keyboard-tab.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/license-12px.svg b/frontend/assets/icon-12px-solid/license-12px.svg
deleted file mode 100644
index 18b4d69b..00000000
--- a/frontend/assets/icon-12px-solid/license-12px.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/link.svg b/frontend/assets/icon-12px-solid/link.svg
deleted file mode 100644
index a29d1ccc..00000000
--- a/frontend/assets/icon-12px-solid/link.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/overlays.svg b/frontend/assets/icon-12px-solid/overlays.svg
deleted file mode 100644
index 848b2c26..00000000
--- a/frontend/assets/icon-12px-solid/overlays.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/remove.svg b/frontend/assets/icon-12px-solid/remove.svg
deleted file mode 100644
index 08da921f..00000000
--- a/frontend/assets/icon-12px-solid/remove.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/render-mode-normal.svg b/frontend/assets/icon-12px-solid/render-mode-normal.svg
deleted file mode 100644
index 2b7cec52..00000000
--- a/frontend/assets/icon-12px-solid/render-mode-normal.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/render-mode-outline.svg b/frontend/assets/icon-12px-solid/render-mode-outline.svg
deleted file mode 100644
index 7fba189a..00000000
--- a/frontend/assets/icon-12px-solid/render-mode-outline.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/render-mode-pixels.svg b/frontend/assets/icon-12px-solid/render-mode-pixels.svg
deleted file mode 100644
index 877c31af..00000000
--- a/frontend/assets/icon-12px-solid/render-mode-pixels.svg
+++ /dev/null
@@ -1,54 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/render-mode-svg.svg b/frontend/assets/icon-12px-solid/render-mode-svg.svg
deleted file mode 100644
index a3ea018b..00000000
--- a/frontend/assets/icon-12px-solid/render-mode-svg.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/snapping.svg b/frontend/assets/icon-12px-solid/snapping.svg
deleted file mode 100644
index 2a84016d..00000000
--- a/frontend/assets/icon-12px-solid/snapping.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/swap-horizontal.svg b/frontend/assets/icon-12px-solid/swap-horizontal.svg
deleted file mode 100644
index 97c89497..00000000
--- a/frontend/assets/icon-12px-solid/swap-horizontal.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/swap-vertical.svg b/frontend/assets/icon-12px-solid/swap-vertical.svg
deleted file mode 100644
index 0a7742f2..00000000
--- a/frontend/assets/icon-12px-solid/swap-vertical.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/vertical-ellipsis.svg b/frontend/assets/icon-12px-solid/vertical-ellipsis.svg
deleted file mode 100644
index 1a5ff3e1..00000000
--- a/frontend/assets/icon-12px-solid/vertical-ellipsis.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/warning.svg b/frontend/assets/icon-12px-solid/warning.svg
deleted file mode 100644
index 977a8ba2..00000000
--- a/frontend/assets/icon-12px-solid/warning.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/window-button-win-close.svg b/frontend/assets/icon-12px-solid/window-button-win-close.svg
deleted file mode 100644
index cbbd7b56..00000000
--- a/frontend/assets/icon-12px-solid/window-button-win-close.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/window-button-win-maximize.svg b/frontend/assets/icon-12px-solid/window-button-win-maximize.svg
deleted file mode 100644
index 0ffb0e88..00000000
--- a/frontend/assets/icon-12px-solid/window-button-win-maximize.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/window-button-win-minimize.svg b/frontend/assets/icon-12px-solid/window-button-win-minimize.svg
deleted file mode 100644
index 28c5d66b..00000000
--- a/frontend/assets/icon-12px-solid/window-button-win-minimize.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/window-button-win-restore-down.svg b/frontend/assets/icon-12px-solid/window-button-win-restore-down.svg
deleted file mode 100644
index c0363e68..00000000
--- a/frontend/assets/icon-12px-solid/window-button-win-restore-down.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-12px-solid/working-colors.svg b/frontend/assets/icon-12px-solid/working-colors.svg
deleted file mode 100644
index 58988cbe..00000000
--- a/frontend/assets/icon-12px-solid/working-colors.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/align-bottom.svg b/frontend/assets/icon-16px-solid/align-bottom.svg
deleted file mode 100644
index 8b60abb6..00000000
--- a/frontend/assets/icon-16px-solid/align-bottom.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/align-horizontal-center.svg b/frontend/assets/icon-16px-solid/align-horizontal-center.svg
deleted file mode 100644
index 273d1515..00000000
--- a/frontend/assets/icon-16px-solid/align-horizontal-center.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/align-left.svg b/frontend/assets/icon-16px-solid/align-left.svg
deleted file mode 100644
index 25228e4b..00000000
--- a/frontend/assets/icon-16px-solid/align-left.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/align-right.svg b/frontend/assets/icon-16px-solid/align-right.svg
deleted file mode 100644
index 4f86e831..00000000
--- a/frontend/assets/icon-16px-solid/align-right.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/align-top.svg b/frontend/assets/icon-16px-solid/align-top.svg
deleted file mode 100644
index 4e624636..00000000
--- a/frontend/assets/icon-16px-solid/align-top.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/align-vertical-center.svg b/frontend/assets/icon-16px-solid/align-vertical-center.svg
deleted file mode 100644
index 70299a7a..00000000
--- a/frontend/assets/icon-16px-solid/align-vertical-center.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/artboard.svg b/frontend/assets/icon-16px-solid/artboard.svg
deleted file mode 100644
index 9dd62aed..00000000
--- a/frontend/assets/icon-16px-solid/artboard.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/boolean-difference.svg b/frontend/assets/icon-16px-solid/boolean-difference.svg
deleted file mode 100644
index 2a07895c..00000000
--- a/frontend/assets/icon-16px-solid/boolean-difference.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/boolean-divide.svg b/frontend/assets/icon-16px-solid/boolean-divide.svg
deleted file mode 100644
index fca2f12b..00000000
--- a/frontend/assets/icon-16px-solid/boolean-divide.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/boolean-intersect.svg b/frontend/assets/icon-16px-solid/boolean-intersect.svg
deleted file mode 100644
index 97afc740..00000000
--- a/frontend/assets/icon-16px-solid/boolean-intersect.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/boolean-subtract-back.svg b/frontend/assets/icon-16px-solid/boolean-subtract-back.svg
deleted file mode 100644
index 1a96a198..00000000
--- a/frontend/assets/icon-16px-solid/boolean-subtract-back.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/boolean-subtract-front.svg b/frontend/assets/icon-16px-solid/boolean-subtract-front.svg
deleted file mode 100644
index 97046a39..00000000
--- a/frontend/assets/icon-16px-solid/boolean-subtract-front.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/boolean-union.svg b/frontend/assets/icon-16px-solid/boolean-union.svg
deleted file mode 100644
index 22da4add..00000000
--- a/frontend/assets/icon-16px-solid/boolean-union.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/bug.svg b/frontend/assets/icon-16px-solid/bug.svg
deleted file mode 100644
index 89f7e52f..00000000
--- a/frontend/assets/icon-16px-solid/bug.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/checkbox-checked.svg b/frontend/assets/icon-16px-solid/checkbox-checked.svg
deleted file mode 100644
index 37923220..00000000
--- a/frontend/assets/icon-16px-solid/checkbox-checked.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/checkbox-unchecked.svg b/frontend/assets/icon-16px-solid/checkbox-unchecked.svg
deleted file mode 100644
index 92b7087b..00000000
--- a/frontend/assets/icon-16px-solid/checkbox-unchecked.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/close-all.svg b/frontend/assets/icon-16px-solid/close-all.svg
deleted file mode 100644
index dfd44fe0..00000000
--- a/frontend/assets/icon-16px-solid/close-all.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/close.svg b/frontend/assets/icon-16px-solid/close.svg
deleted file mode 100644
index 469fa062..00000000
--- a/frontend/assets/icon-16px-solid/close.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/code.svg b/frontend/assets/icon-16px-solid/code.svg
deleted file mode 100644
index 700a53b4..00000000
--- a/frontend/assets/icon-16px-solid/code.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/copy.svg b/frontend/assets/icon-16px-solid/copy.svg
deleted file mode 100644
index b8e5d45c..00000000
--- a/frontend/assets/icon-16px-solid/copy.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/credits.svg b/frontend/assets/icon-16px-solid/credits.svg
deleted file mode 100644
index b5e7a987..00000000
--- a/frontend/assets/icon-16px-solid/credits.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/custom-color.svg b/frontend/assets/icon-16px-solid/custom-color.svg
deleted file mode 100644
index 949bfdae..00000000
--- a/frontend/assets/icon-16px-solid/custom-color.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/cut.svg b/frontend/assets/icon-16px-solid/cut.svg
deleted file mode 100644
index 4381c828..00000000
--- a/frontend/assets/icon-16px-solid/cut.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/deselect-all.svg b/frontend/assets/icon-16px-solid/deselect-all.svg
deleted file mode 100644
index d80a5b80..00000000
--- a/frontend/assets/icon-16px-solid/deselect-all.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/edit.svg b/frontend/assets/icon-16px-solid/edit.svg
deleted file mode 100644
index 92cf2d56..00000000
--- a/frontend/assets/icon-16px-solid/edit.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/empty.svg b/frontend/assets/icon-16px-solid/empty.svg
deleted file mode 100644
index 9e8f62c7..00000000
--- a/frontend/assets/icon-16px-solid/empty.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/eye-hidden.svg b/frontend/assets/icon-16px-solid/eye-hidden.svg
deleted file mode 100644
index 960def4e..00000000
--- a/frontend/assets/icon-16px-solid/eye-hidden.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/eye-hide.svg b/frontend/assets/icon-16px-solid/eye-hide.svg
deleted file mode 100644
index 805c7e5b..00000000
--- a/frontend/assets/icon-16px-solid/eye-hide.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/eye-show.svg b/frontend/assets/icon-16px-solid/eye-show.svg
deleted file mode 100644
index b34115eb..00000000
--- a/frontend/assets/icon-16px-solid/eye-show.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/eye-visible.svg b/frontend/assets/icon-16px-solid/eye-visible.svg
deleted file mode 100644
index 6fbb87df..00000000
--- a/frontend/assets/icon-16px-solid/eye-visible.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/eyedropper.svg b/frontend/assets/icon-16px-solid/eyedropper.svg
deleted file mode 100644
index 9da1b902..00000000
--- a/frontend/assets/icon-16px-solid/eyedropper.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/file-export.svg b/frontend/assets/icon-16px-solid/file-export.svg
deleted file mode 100644
index 827a59c3..00000000
--- a/frontend/assets/icon-16px-solid/file-export.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/file-import.svg b/frontend/assets/icon-16px-solid/file-import.svg
deleted file mode 100644
index be504dad..00000000
--- a/frontend/assets/icon-16px-solid/file-import.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/file.svg b/frontend/assets/icon-16px-solid/file.svg
deleted file mode 100644
index ac6e7b8a..00000000
--- a/frontend/assets/icon-16px-solid/file.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/flip-horizontal.svg b/frontend/assets/icon-16px-solid/flip-horizontal.svg
deleted file mode 100644
index 30774c4b..00000000
--- a/frontend/assets/icon-16px-solid/flip-horizontal.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/flip-vertical.svg b/frontend/assets/icon-16px-solid/flip-vertical.svg
deleted file mode 100644
index 8ea93799..00000000
--- a/frontend/assets/icon-16px-solid/flip-vertical.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/folder-open.svg b/frontend/assets/icon-16px-solid/folder-open.svg
deleted file mode 100644
index bbad2de6..00000000
--- a/frontend/assets/icon-16px-solid/folder-open.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/folder.svg b/frontend/assets/icon-16px-solid/folder.svg
deleted file mode 100644
index 7c6a8cc0..00000000
--- a/frontend/assets/icon-16px-solid/folder.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/frame-all.svg b/frontend/assets/icon-16px-solid/frame-all.svg
deleted file mode 100644
index 0f547eef..00000000
--- a/frontend/assets/icon-16px-solid/frame-all.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/frame-selected.svg b/frontend/assets/icon-16px-solid/frame-selected.svg
deleted file mode 100644
index 664df646..00000000
--- a/frontend/assets/icon-16px-solid/frame-selected.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/graph-view-closed.svg b/frontend/assets/icon-16px-solid/graph-view-closed.svg
deleted file mode 100644
index b84b9bbe..00000000
--- a/frontend/assets/icon-16px-solid/graph-view-closed.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/graph-view-open.svg b/frontend/assets/icon-16px-solid/graph-view-open.svg
deleted file mode 100644
index 73b4385f..00000000
--- a/frontend/assets/icon-16px-solid/graph-view-open.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/graphite-logo.svg b/frontend/assets/icon-16px-solid/graphite-logo.svg
deleted file mode 100644
index 477fca57..00000000
--- a/frontend/assets/icon-16px-solid/graphite-logo.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/handle-visibility-all.svg b/frontend/assets/icon-16px-solid/handle-visibility-all.svg
deleted file mode 100644
index d7ef73c3..00000000
--- a/frontend/assets/icon-16px-solid/handle-visibility-all.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/handle-visibility-frontier.svg b/frontend/assets/icon-16px-solid/handle-visibility-frontier.svg
deleted file mode 100644
index 3c7fb0b1..00000000
--- a/frontend/assets/icon-16px-solid/handle-visibility-frontier.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/handle-visibility-selected.svg b/frontend/assets/icon-16px-solid/handle-visibility-selected.svg
deleted file mode 100644
index 7609920b..00000000
--- a/frontend/assets/icon-16px-solid/handle-visibility-selected.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/heart.svg b/frontend/assets/icon-16px-solid/heart.svg
deleted file mode 100644
index dd859a60..00000000
--- a/frontend/assets/icon-16px-solid/heart.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/history-redo.svg b/frontend/assets/icon-16px-solid/history-redo.svg
deleted file mode 100644
index 407561cd..00000000
--- a/frontend/assets/icon-16px-solid/history-redo.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/history-undo.svg b/frontend/assets/icon-16px-solid/history-undo.svg
deleted file mode 100644
index ad767868..00000000
--- a/frontend/assets/icon-16px-solid/history-undo.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/icons-grid.svg b/frontend/assets/icon-16px-solid/icons-grid.svg
deleted file mode 100644
index 52452d6a..00000000
--- a/frontend/assets/icon-16px-solid/icons-grid.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/image.svg b/frontend/assets/icon-16px-solid/image.svg
deleted file mode 100644
index b2faba4b..00000000
--- a/frontend/assets/icon-16px-solid/image.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/layer.svg b/frontend/assets/icon-16px-solid/layer.svg
deleted file mode 100644
index 156da171..00000000
--- a/frontend/assets/icon-16px-solid/layer.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/license.svg b/frontend/assets/icon-16px-solid/license.svg
deleted file mode 100644
index 44fbfa6b..00000000
--- a/frontend/assets/icon-16px-solid/license.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/new-layer.svg b/frontend/assets/icon-16px-solid/new-layer.svg
deleted file mode 100644
index 4042cbcb..00000000
--- a/frontend/assets/icon-16px-solid/new-layer.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-blur.svg b/frontend/assets/icon-16px-solid/node-blur.svg
deleted file mode 100644
index 82f7d64d..00000000
--- a/frontend/assets/icon-16px-solid/node-blur.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-brushwork.svg b/frontend/assets/icon-16px-solid/node-brushwork.svg
deleted file mode 100644
index dbf0b536..00000000
--- a/frontend/assets/icon-16px-solid/node-brushwork.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-color-correction.svg b/frontend/assets/icon-16px-solid/node-color-correction.svg
deleted file mode 100644
index eebffffd..00000000
--- a/frontend/assets/icon-16px-solid/node-color-correction.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-gradient.svg b/frontend/assets/icon-16px-solid/node-gradient.svg
deleted file mode 100644
index 10b07199..00000000
--- a/frontend/assets/icon-16px-solid/node-gradient.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-imaginate.svg b/frontend/assets/icon-16px-solid/node-imaginate.svg
deleted file mode 100644
index aacd8b7a..00000000
--- a/frontend/assets/icon-16px-solid/node-imaginate.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-magic-wand.svg b/frontend/assets/icon-16px-solid/node-magic-wand.svg
deleted file mode 100644
index cac734c8..00000000
--- a/frontend/assets/icon-16px-solid/node-magic-wand.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-mask.svg b/frontend/assets/icon-16px-solid/node-mask.svg
deleted file mode 100644
index dfd8ae63..00000000
--- a/frontend/assets/icon-16px-solid/node-mask.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-motion-blur.svg b/frontend/assets/icon-16px-solid/node-motion-blur.svg
deleted file mode 100644
index c5678019..00000000
--- a/frontend/assets/icon-16px-solid/node-motion-blur.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-nodes.svg b/frontend/assets/icon-16px-solid/node-nodes.svg
deleted file mode 100644
index 1d41de77..00000000
--- a/frontend/assets/icon-16px-solid/node-nodes.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-output.svg b/frontend/assets/icon-16px-solid/node-output.svg
deleted file mode 100644
index 512037df..00000000
--- a/frontend/assets/icon-16px-solid/node-output.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-shape.svg b/frontend/assets/icon-16px-solid/node-shape.svg
deleted file mode 100644
index 07b8b3f1..00000000
--- a/frontend/assets/icon-16px-solid/node-shape.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-text.svg b/frontend/assets/icon-16px-solid/node-text.svg
deleted file mode 100644
index d636fe6c..00000000
--- a/frontend/assets/icon-16px-solid/node-text.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node-transform.svg b/frontend/assets/icon-16px-solid/node-transform.svg
deleted file mode 100644
index b4c21e0d..00000000
--- a/frontend/assets/icon-16px-solid/node-transform.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/node.svg b/frontend/assets/icon-16px-solid/node.svg
deleted file mode 100644
index 872396a4..00000000
--- a/frontend/assets/icon-16px-solid/node.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/padlock-locked.svg b/frontend/assets/icon-16px-solid/padlock-locked.svg
deleted file mode 100644
index 440e2337..00000000
--- a/frontend/assets/icon-16px-solid/padlock-locked.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/padlock-unlocked.svg b/frontend/assets/icon-16px-solid/padlock-unlocked.svg
deleted file mode 100644
index 006fecd0..00000000
--- a/frontend/assets/icon-16px-solid/padlock-unlocked.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/paste.svg b/frontend/assets/icon-16px-solid/paste.svg
deleted file mode 100644
index fa211a58..00000000
--- a/frontend/assets/icon-16px-solid/paste.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/pin-active.svg b/frontend/assets/icon-16px-solid/pin-active.svg
deleted file mode 100644
index 169a6cc6..00000000
--- a/frontend/assets/icon-16px-solid/pin-active.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/pin-inactive.svg b/frontend/assets/icon-16px-solid/pin-inactive.svg
deleted file mode 100644
index 21fe58d3..00000000
--- a/frontend/assets/icon-16px-solid/pin-inactive.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/playback-pause.svg b/frontend/assets/icon-16px-solid/playback-pause.svg
deleted file mode 100644
index 797ad55f..00000000
--- a/frontend/assets/icon-16px-solid/playback-pause.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/playback-play.svg b/frontend/assets/icon-16px-solid/playback-play.svg
deleted file mode 100644
index 2db27a90..00000000
--- a/frontend/assets/icon-16px-solid/playback-play.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/playback-to-end.svg b/frontend/assets/icon-16px-solid/playback-to-end.svg
deleted file mode 100644
index 79ce81f6..00000000
--- a/frontend/assets/icon-16px-solid/playback-to-end.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/playback-to-start.svg b/frontend/assets/icon-16px-solid/playback-to-start.svg
deleted file mode 100644
index a697311f..00000000
--- a/frontend/assets/icon-16px-solid/playback-to-start.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/random.svg b/frontend/assets/icon-16px-solid/random.svg
deleted file mode 100644
index 635cb1b6..00000000
--- a/frontend/assets/icon-16px-solid/random.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/reload.svg b/frontend/assets/icon-16px-solid/reload.svg
deleted file mode 100644
index 01f83b2a..00000000
--- a/frontend/assets/icon-16px-solid/reload.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/reset.svg b/frontend/assets/icon-16px-solid/reset.svg
deleted file mode 100644
index fc72ad23..00000000
--- a/frontend/assets/icon-16px-solid/reset.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/resync.svg b/frontend/assets/icon-16px-solid/resync.svg
deleted file mode 100644
index 62555a17..00000000
--- a/frontend/assets/icon-16px-solid/resync.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/reverse-radial-gradient-to-left.svg b/frontend/assets/icon-16px-solid/reverse-radial-gradient-to-left.svg
deleted file mode 100644
index c3a16b09..00000000
--- a/frontend/assets/icon-16px-solid/reverse-radial-gradient-to-left.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/reverse-radial-gradient-to-right.svg b/frontend/assets/icon-16px-solid/reverse-radial-gradient-to-right.svg
deleted file mode 100644
index 7fde22c2..00000000
--- a/frontend/assets/icon-16px-solid/reverse-radial-gradient-to-right.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/reverse.svg b/frontend/assets/icon-16px-solid/reverse.svg
deleted file mode 100644
index 1fc2aec0..00000000
--- a/frontend/assets/icon-16px-solid/reverse.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/save.svg b/frontend/assets/icon-16px-solid/save.svg
deleted file mode 100644
index 7f87bcc3..00000000
--- a/frontend/assets/icon-16px-solid/save.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/select-all.svg b/frontend/assets/icon-16px-solid/select-all.svg
deleted file mode 100644
index b1bc15e7..00000000
--- a/frontend/assets/icon-16px-solid/select-all.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/select-parent.svg b/frontend/assets/icon-16px-solid/select-parent.svg
deleted file mode 100644
index d42c5b58..00000000
--- a/frontend/assets/icon-16px-solid/select-parent.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/settings.svg b/frontend/assets/icon-16px-solid/settings.svg
deleted file mode 100644
index 938ea819..00000000
--- a/frontend/assets/icon-16px-solid/settings.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/small-dot.svg b/frontend/assets/icon-16px-solid/small-dot.svg
deleted file mode 100644
index 6f472d38..00000000
--- a/frontend/assets/icon-16px-solid/small-dot.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/stack-bottom.svg b/frontend/assets/icon-16px-solid/stack-bottom.svg
deleted file mode 100644
index a69bf649..00000000
--- a/frontend/assets/icon-16px-solid/stack-bottom.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/stack-hollow.svg b/frontend/assets/icon-16px-solid/stack-hollow.svg
deleted file mode 100644
index 27209816..00000000
--- a/frontend/assets/icon-16px-solid/stack-hollow.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/stack-lower.svg b/frontend/assets/icon-16px-solid/stack-lower.svg
deleted file mode 100644
index 421ff3a8..00000000
--- a/frontend/assets/icon-16px-solid/stack-lower.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/stack-raise.svg b/frontend/assets/icon-16px-solid/stack-raise.svg
deleted file mode 100644
index 5419c3de..00000000
--- a/frontend/assets/icon-16px-solid/stack-raise.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/stack-reverse.svg b/frontend/assets/icon-16px-solid/stack-reverse.svg
deleted file mode 100644
index 640b7ee5..00000000
--- a/frontend/assets/icon-16px-solid/stack-reverse.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/stack.svg b/frontend/assets/icon-16px-solid/stack.svg
deleted file mode 100644
index 8f421fd3..00000000
--- a/frontend/assets/icon-16px-solid/stack.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/tilt-reset.svg b/frontend/assets/icon-16px-solid/tilt-reset.svg
deleted file mode 100644
index 42d9f445..00000000
--- a/frontend/assets/icon-16px-solid/tilt-reset.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/tilt.svg b/frontend/assets/icon-16px-solid/tilt.svg
deleted file mode 100644
index fb885ab5..00000000
--- a/frontend/assets/icon-16px-solid/tilt.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/transformation-grab.svg b/frontend/assets/icon-16px-solid/transformation-grab.svg
deleted file mode 100644
index ce0bf878..00000000
--- a/frontend/assets/icon-16px-solid/transformation-grab.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/transformation-rotate.svg b/frontend/assets/icon-16px-solid/transformation-rotate.svg
deleted file mode 100644
index 0ed8ff75..00000000
--- a/frontend/assets/icon-16px-solid/transformation-rotate.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/transformation-scale.svg b/frontend/assets/icon-16px-solid/transformation-scale.svg
deleted file mode 100644
index 29b5a67f..00000000
--- a/frontend/assets/icon-16px-solid/transformation-scale.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/trash.svg b/frontend/assets/icon-16px-solid/trash.svg
deleted file mode 100644
index 1ae1bd26..00000000
--- a/frontend/assets/icon-16px-solid/trash.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/turn-negative-90.svg b/frontend/assets/icon-16px-solid/turn-negative-90.svg
deleted file mode 100644
index 8e676791..00000000
--- a/frontend/assets/icon-16px-solid/turn-negative-90.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/turn-positive-90.svg b/frontend/assets/icon-16px-solid/turn-positive-90.svg
deleted file mode 100644
index 567d6ee0..00000000
--- a/frontend/assets/icon-16px-solid/turn-positive-90.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/user-manual.svg b/frontend/assets/icon-16px-solid/user-manual.svg
deleted file mode 100644
index f156bd45..00000000
--- a/frontend/assets/icon-16px-solid/user-manual.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/viewport-design-mode.svg b/frontend/assets/icon-16px-solid/viewport-design-mode.svg
deleted file mode 100644
index 0e33e837..00000000
--- a/frontend/assets/icon-16px-solid/viewport-design-mode.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/viewport-guide-mode.svg b/frontend/assets/icon-16px-solid/viewport-guide-mode.svg
deleted file mode 100644
index d78860e9..00000000
--- a/frontend/assets/icon-16px-solid/viewport-guide-mode.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/viewport-select-mode.svg b/frontend/assets/icon-16px-solid/viewport-select-mode.svg
deleted file mode 100644
index b34fa0b7..00000000
--- a/frontend/assets/icon-16px-solid/viewport-select-mode.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/volunteer.svg b/frontend/assets/icon-16px-solid/volunteer.svg
deleted file mode 100644
index 4e178c78..00000000
--- a/frontend/assets/icon-16px-solid/volunteer.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/website.svg b/frontend/assets/icon-16px-solid/website.svg
deleted file mode 100644
index 521db204..00000000
--- a/frontend/assets/icon-16px-solid/website.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/working-colors-primary.svg b/frontend/assets/icon-16px-solid/working-colors-primary.svg
deleted file mode 100644
index 24707a96..00000000
--- a/frontend/assets/icon-16px-solid/working-colors-primary.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/working-colors-secondary.svg b/frontend/assets/icon-16px-solid/working-colors-secondary.svg
deleted file mode 100644
index 2a69afac..00000000
--- a/frontend/assets/icon-16px-solid/working-colors-secondary.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/zoom-1x.svg b/frontend/assets/icon-16px-solid/zoom-1x.svg
deleted file mode 100644
index 56d0dbba..00000000
--- a/frontend/assets/icon-16px-solid/zoom-1x.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/zoom-2x.svg b/frontend/assets/icon-16px-solid/zoom-2x.svg
deleted file mode 100644
index 74aa887c..00000000
--- a/frontend/assets/icon-16px-solid/zoom-2x.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/zoom-in.svg b/frontend/assets/icon-16px-solid/zoom-in.svg
deleted file mode 100644
index e904fbda..00000000
--- a/frontend/assets/icon-16px-solid/zoom-in.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/zoom-out.svg b/frontend/assets/icon-16px-solid/zoom-out.svg
deleted file mode 100644
index 9e2378de..00000000
--- a/frontend/assets/icon-16px-solid/zoom-out.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-solid/zoom-reset.svg b/frontend/assets/icon-16px-solid/zoom-reset.svg
deleted file mode 100644
index 3740486f..00000000
--- a/frontend/assets/icon-16px-solid/zoom-reset.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-drag.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-drag.svg
deleted file mode 100644
index c92c6322..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-drag.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-lmb-double.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-lmb-double.svg
deleted file mode 100644
index 7b13e4d0..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-lmb-double.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-lmb-drag.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-lmb-drag.svg
deleted file mode 100644
index 7845ddcf..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-lmb-drag.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-lmb.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-lmb.svg
deleted file mode 100644
index 5a7c2546..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-lmb.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
\ No newline at end of file
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-mmb-drag.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-mmb-drag.svg
deleted file mode 100644
index 65a0af7c..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-mmb-drag.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-mmb.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-mmb.svg
deleted file mode 100644
index b957d7da..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-mmb.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
\ No newline at end of file
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-none.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-none.svg
deleted file mode 100644
index e878396b..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-none.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
\ No newline at end of file
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-rmb-double.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-rmb-double.svg
deleted file mode 100644
index ba32a899..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-rmb-double.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-rmb-drag.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-rmb-drag.svg
deleted file mode 100644
index d15da0a6..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-rmb-drag.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-rmb.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-rmb.svg
deleted file mode 100644
index 9cf95a94..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-rmb.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-scroll-down.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-scroll-down.svg
deleted file mode 100644
index 41df7149..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-scroll-down.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
\ No newline at end of file
diff --git a/frontend/assets/icon-16px-two-tone/mouse-hint-scroll-up.svg b/frontend/assets/icon-16px-two-tone/mouse-hint-scroll-up.svg
deleted file mode 100644
index 1f9286b4..00000000
--- a/frontend/assets/icon-16px-two-tone/mouse-hint-scroll-up.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
\ No newline at end of file
diff --git a/frontend/assets/icon-24px-two-tone/general-artboard-tool.svg b/frontend/assets/icon-24px-two-tone/general-artboard-tool.svg
deleted file mode 100644
index 22b2e3f7..00000000
--- a/frontend/assets/icon-24px-two-tone/general-artboard-tool.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/general-eyedropper-tool.svg b/frontend/assets/icon-24px-two-tone/general-eyedropper-tool.svg
deleted file mode 100644
index 9202b219..00000000
--- a/frontend/assets/icon-24px-two-tone/general-eyedropper-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/general-fill-tool.svg b/frontend/assets/icon-24px-two-tone/general-fill-tool.svg
deleted file mode 100644
index 6e0206ae..00000000
--- a/frontend/assets/icon-24px-two-tone/general-fill-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/general-gradient-tool.svg b/frontend/assets/icon-24px-two-tone/general-gradient-tool.svg
deleted file mode 100644
index f303752e..00000000
--- a/frontend/assets/icon-24px-two-tone/general-gradient-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/general-navigate-tool.svg b/frontend/assets/icon-24px-two-tone/general-navigate-tool.svg
deleted file mode 100644
index ebd18db1..00000000
--- a/frontend/assets/icon-24px-two-tone/general-navigate-tool.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/general-select-tool.svg b/frontend/assets/icon-24px-two-tone/general-select-tool.svg
deleted file mode 100644
index 7f0d12d6..00000000
--- a/frontend/assets/icon-24px-two-tone/general-select-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/raster-brush-tool.svg b/frontend/assets/icon-24px-two-tone/raster-brush-tool.svg
deleted file mode 100644
index 20c92c1c..00000000
--- a/frontend/assets/icon-24px-two-tone/raster-brush-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/raster-clone-tool.svg b/frontend/assets/icon-24px-two-tone/raster-clone-tool.svg
deleted file mode 100644
index 56a10bf2..00000000
--- a/frontend/assets/icon-24px-two-tone/raster-clone-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/raster-detail-tool.svg b/frontend/assets/icon-24px-two-tone/raster-detail-tool.svg
deleted file mode 100644
index ad506293..00000000
--- a/frontend/assets/icon-24px-two-tone/raster-detail-tool.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/raster-heal-tool.svg b/frontend/assets/icon-24px-two-tone/raster-heal-tool.svg
deleted file mode 100644
index 31892716..00000000
--- a/frontend/assets/icon-24px-two-tone/raster-heal-tool.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/raster-imaginate-tool.svg b/frontend/assets/icon-24px-two-tone/raster-imaginate-tool.svg
deleted file mode 100644
index 659de162..00000000
--- a/frontend/assets/icon-24px-two-tone/raster-imaginate-tool.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/raster-patch-tool.svg b/frontend/assets/icon-24px-two-tone/raster-patch-tool.svg
deleted file mode 100644
index c3edd00b..00000000
--- a/frontend/assets/icon-24px-two-tone/raster-patch-tool.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/raster-relight-tool.svg b/frontend/assets/icon-24px-two-tone/raster-relight-tool.svg
deleted file mode 100644
index 93872ecd..00000000
--- a/frontend/assets/icon-24px-two-tone/raster-relight-tool.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/vector-ellipse-tool.svg b/frontend/assets/icon-24px-two-tone/vector-ellipse-tool.svg
deleted file mode 100644
index 7c03d090..00000000
--- a/frontend/assets/icon-24px-two-tone/vector-ellipse-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/vector-freehand-tool.svg b/frontend/assets/icon-24px-two-tone/vector-freehand-tool.svg
deleted file mode 100644
index df67abc6..00000000
--- a/frontend/assets/icon-24px-two-tone/vector-freehand-tool.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/vector-line-tool.svg b/frontend/assets/icon-24px-two-tone/vector-line-tool.svg
deleted file mode 100644
index b16d130e..00000000
--- a/frontend/assets/icon-24px-two-tone/vector-line-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/vector-path-tool.svg b/frontend/assets/icon-24px-two-tone/vector-path-tool.svg
deleted file mode 100644
index 08d38ca2..00000000
--- a/frontend/assets/icon-24px-two-tone/vector-path-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/vector-pen-tool.svg b/frontend/assets/icon-24px-two-tone/vector-pen-tool.svg
deleted file mode 100644
index 718e3cf5..00000000
--- a/frontend/assets/icon-24px-two-tone/vector-pen-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/vector-polygon-tool.svg b/frontend/assets/icon-24px-two-tone/vector-polygon-tool.svg
deleted file mode 100644
index 93d9cb07..00000000
--- a/frontend/assets/icon-24px-two-tone/vector-polygon-tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/vector-rectangle-tool.svg b/frontend/assets/icon-24px-two-tone/vector-rectangle-tool.svg
deleted file mode 100644
index 2c7055cc..00000000
--- a/frontend/assets/icon-24px-two-tone/vector-rectangle-tool.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/vector-spline-tool.svg b/frontend/assets/icon-24px-two-tone/vector-spline-tool.svg
deleted file mode 100644
index 359fd35e..00000000
--- a/frontend/assets/icon-24px-two-tone/vector-spline-tool.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/frontend/assets/icon-24px-two-tone/vector-text-tool.svg b/frontend/assets/icon-24px-two-tone/vector-text-tool.svg
deleted file mode 100644
index 2e300368..00000000
--- a/frontend/assets/icon-24px-two-tone/vector-text-tool.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/frontend/assets/images/demo-artwork/thumbnail-changing-seasons.png b/frontend/assets/thumbnail-changing-seasons.png
similarity index 100%
rename from frontend/assets/images/demo-artwork/thumbnail-changing-seasons.png
rename to frontend/assets/thumbnail-changing-seasons.png
diff --git a/frontend/assets/images/demo-artwork/thumbnail-isometric-fountain.png b/frontend/assets/thumbnail-isometric-fountain.png
similarity index 100%
rename from frontend/assets/images/demo-artwork/thumbnail-isometric-fountain.png
rename to frontend/assets/thumbnail-isometric-fountain.png
diff --git a/frontend/assets/images/demo-artwork/thumbnail-painted-dreams.png b/frontend/assets/thumbnail-painted-dreams.png
similarity index 100%
rename from frontend/assets/images/demo-artwork/thumbnail-painted-dreams.png
rename to frontend/assets/thumbnail-painted-dreams.png
diff --git a/frontend/assets/images/demo-artwork/thumbnail-parametric-dunescape.png b/frontend/assets/thumbnail-parametric-dunescape.png
similarity index 100%
rename from frontend/assets/images/demo-artwork/thumbnail-parametric-dunescape.png
rename to frontend/assets/thumbnail-parametric-dunescape.png
diff --git a/frontend/assets/images/demo-artwork/thumbnail-procedural-string-lights.png b/frontend/assets/thumbnail-procedural-string-lights.png
similarity index 100%
rename from frontend/assets/images/demo-artwork/thumbnail-procedural-string-lights.png
rename to frontend/assets/thumbnail-procedural-string-lights.png
diff --git a/frontend/assets/images/demo-artwork/thumbnail-red-dress.png b/frontend/assets/thumbnail-red-dress.png
similarity index 100%
rename from frontend/assets/images/demo-artwork/thumbnail-red-dress.png
rename to frontend/assets/thumbnail-red-dress.png
diff --git a/frontend/assets/images/demo-artwork/thumbnail-valley-of-spires.png b/frontend/assets/thumbnail-valley-of-spires.png
similarity index 100%
rename from frontend/assets/images/demo-artwork/thumbnail-valley-of-spires.png
rename to frontend/assets/thumbnail-valley-of-spires.png
diff --git a/frontend/branding-installer.js b/frontend/branding-installer.js
new file mode 100644
index 00000000..c38caa8e
--- /dev/null
+++ b/frontend/branding-installer.js
@@ -0,0 +1,148 @@
+/* eslint-disable no-console */
+
+import crypto from "crypto";
+import fs from "fs";
+import http from "http";
+import https from "https";
+import path from "path";
+import { fileURLToPath } from "url";
+import zlib from "zlib";
+
+import * as tar from "tar";
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+
+const BRANDING_INFO_FILE = path.join(__dirname, "../.branding");
+const BRANDING_DIR = path.join(__dirname, "../branding");
+const INSTALLED_BRANDING_INFO_FILE = path.join(BRANDING_DIR, ".branding");
+const TEMP_FILE = path.join(__dirname, "branding_download.tar.gz");
+
+function downloadFile(url, dest) {
+ return new Promise((resolve, reject) => {
+ const file = fs.createWriteStream(dest);
+ const protocol = url.startsWith("https") ? https : http;
+
+ const request = protocol.get(url, (response) => {
+ if (response.statusCode === 301 || response.statusCode === 302 || response.statusCode === 307) {
+ file.close();
+ fs.unlink(dest, () => {});
+ if (response.headers.location) {
+ downloadFile(response.headers.location, dest).then(resolve).catch(reject);
+ } else {
+ reject(new Error("Redirect location missing"));
+ }
+ return;
+ }
+
+ if (response.statusCode !== 200) {
+ file.close();
+ fs.unlink(dest, () => {});
+ reject(new Error(`Failed to download: ${response.statusCode}`));
+ return;
+ }
+
+ response.pipe(file);
+ file.on("finish", () => {
+ file.close(resolve);
+ });
+ });
+
+ request.on("error", (err) => {
+ fs.unlink(dest, () => {});
+ reject(err);
+ });
+ });
+}
+
+async function main() {
+ if (!fs.existsSync(BRANDING_INFO_FILE)) {
+ console.error(`Branding info file not found at ${BRANDING_INFO_FILE}`);
+ process.exit(1);
+ }
+
+ const content = fs.readFileSync(BRANDING_INFO_FILE, "utf8");
+
+ if (fs.existsSync(INSTALLED_BRANDING_INFO_FILE)) {
+ const installedContent = fs.readFileSync(INSTALLED_BRANDING_INFO_FILE, "utf8");
+ if (content === installedContent) {
+ console.log("Branding assets are up to date.");
+ return;
+ }
+ }
+
+ const lines = content
+ .split("\n")
+ .map((l) => l.trim())
+ .filter((l) => l.length > 0);
+
+ if (lines.length < 2) {
+ console.error("Branding file must contain at least two lines: URL and Hash");
+ process.exit(1);
+ }
+
+ const url = lines[0];
+ const expectedHash = lines[1];
+
+ console.log(`Downloading branding assets from ${url}...`);
+
+ try {
+ await downloadFile(url, TEMP_FILE);
+ } catch (err) {
+ console.error("Download failed:", err);
+ process.exit(1);
+ }
+
+ console.log("Download complete. Verifying hash...");
+
+ const fileBuffer = fs.readFileSync(TEMP_FILE);
+ const hashSum = crypto.createHash("sha256");
+ hashSum.update(fileBuffer);
+ const hex = hashSum.digest("hex");
+
+ if (hex !== expectedHash) {
+ console.error("Hash mismatch!");
+ console.error(`Expected: ${expectedHash}`);
+ console.error(`Actual: ${hex}`);
+ if (fs.existsSync(TEMP_FILE)) fs.unlinkSync(TEMP_FILE);
+ process.exit(1);
+ }
+
+ console.log("Hash verified. Extracting...");
+
+ if (fs.existsSync(BRANDING_DIR)) {
+ fs.rmSync(BRANDING_DIR, { recursive: true, force: true });
+ }
+ fs.mkdirSync(BRANDING_DIR, { recursive: true });
+
+ try {
+ // Extract the tar.gz file
+ await new Promise((resolve, reject) => {
+ fs.createReadStream(TEMP_FILE)
+ .pipe(zlib.createGunzip())
+ .pipe(
+ tar.x({
+ cwd: BRANDING_DIR,
+ strip: 1,
+ }),
+ )
+ .on("error", reject)
+ .on("finish", resolve);
+ });
+ fs.copyFileSync(BRANDING_INFO_FILE, INSTALLED_BRANDING_INFO_FILE);
+ console.log("Extraction complete.");
+ } catch (error) {
+ console.error("Failed to extract archive:", error);
+ } finally {
+ if (fs.existsSync(TEMP_FILE)) {
+ fs.unlinkSync(TEMP_FILE);
+ }
+ }
+}
+
+main()
+ .then(() => process.exit(0))
+ .catch((err) => {
+ console.error("An error occurred:", err);
+ process.exit(1);
+ });
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 550ec9e4..0508b22f 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -5,6 +5,7 @@
"packages": {
"": {
"name": "graphite-web-frontend",
+ "hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
"class-transformer": "^0.5.1",
@@ -34,6 +35,7 @@
"sass": "^1.91.0",
"svelte": "4.2.20",
"svelte-preprocess": "^6.0.3",
+ "tar": "^7.5.2",
"ts-node": "^10.9.2",
"typescript": "^5.9.2",
"typescript-eslint": "^8.41.0",
@@ -752,6 +754,19 @@
"url": "https://github.com/sponsors/nzakas"
}
},
+ "node_modules/@isaacs/fs-minipass": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
+ "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.4"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
@@ -2572,6 +2587,16 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/chownr": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
+ "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/class-transformer": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
@@ -4787,6 +4812,29 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/minizlib": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
+ "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
"node_modules/moment": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
@@ -6201,6 +6249,23 @@
"url": "https://opencollective.com/synckit"
}
},
+ "node_modules/tar": {
+ "version": "7.5.2",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz",
+ "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/fs-minipass": "^4.0.0",
+ "chownr": "^3.0.0",
+ "minipass": "^7.1.2",
+ "minizlib": "^3.1.0",
+ "yallist": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/tinyglobby": {
"version": "0.2.14",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
@@ -6784,6 +6849,16 @@
"node": ">=10"
}
},
+ "node_modules/yallist": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
+ "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index e3864588..46853830 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -11,18 +11,18 @@
"profiling": "npm run setup && npm run wasm:build-profiling && concurrently -k -n \"VITE,RUST\" \"vite\" \"npm run wasm:watch-profiling\"",
"production": "npm run setup && npm run wasm:build-production && concurrently -k -n \"VITE,RUST\" \"vite\" \"npm run wasm:watch-production\"",
"---------- BUILDS ----------": "",
- "build": "npm run wasm:build-production && vite build",
- "build-dev": "npm run wasm:build-dev && vite build",
- "build-native": "npm run native:build-production && vite build",
- "build-native-dev": "npm run native:build-dev && vite build",
- "build-profiling": "npm run wasm:build-profiling && vite build",
+ "build": "npm run setup && npm run wasm:build-production && vite build",
+ "build-dev": "npm run setup && npm run wasm:build-dev && vite build --mode dev",
+ "build-profiling": "npm run setup && npm run wasm:build-profiling && vite build --mode dev",
+ "build-native": "npm run setup && npm run native:build-production",
+ "build-native-dev": "npm run setup && npm run native:build-dev",
"---------- UTILITIES ----------": "",
"lint": "eslint . && tsc --noEmit",
"lint-fix": "eslint . --fix && tsc --noEmit",
"---------- INTERNAL ----------": "",
- "setup": "node package-installer.js",
- "native:build-dev": "wasm-pack build ./wasm --dev --target=web --no-default-features --features native",
- "native:build-production": "wasm-pack build ./wasm --release --target=web --no-default-features --features native",
+ "setup": "node package-installer.js && node branding-installer.js",
+ "native:build-dev": "wasm-pack build ./wasm --dev --target=web --no-default-features --features native && vite build --mode dev",
+ "native:build-production": "wasm-pack build ./wasm --release --target=web --no-default-features --features native && vite build",
"wasm:build-dev": "wasm-pack build ./wasm --dev --target=web",
"wasm:build-profiling": "wasm-pack build ./wasm --profiling --target=web",
"wasm:build-production": "wasm-pack build ./wasm --release --target=web",
@@ -51,18 +51,19 @@
"eslint-plugin-svelte": "^3.11.0",
"globals": "^16.3.0",
"postcss": "^8.5.6",
- "prettier-plugin-svelte": "^3.4.0",
"prettier": "^3.6.2",
+ "prettier-plugin-svelte": "^3.4.0",
"process": "^0.11.10",
"rollup-plugin-license": "^3.6.0",
"sass": "^1.91.0",
- "svelte-preprocess": "^6.0.3",
"svelte": "4.2.20",
+ "svelte-preprocess": "^6.0.3",
+ "tar": "^7.5.2",
"ts-node": "^10.9.2",
- "typescript-eslint": "^8.41.0",
"typescript": "^5.9.2",
- "vite-multiple-assets": "2.2.5",
- "vite": "^5.4.19"
+ "typescript-eslint": "^8.41.0",
+ "vite": "^5.4.19",
+ "vite-multiple-assets": "2.2.5"
},
"homepage": "https://graphite.rs",
"license": "Apache-2.0",
diff --git a/frontend/public/android-chrome-192x192.png b/frontend/public/android-chrome-192x192.png
deleted file mode 100644
index 9e3f315c..00000000
Binary files a/frontend/public/android-chrome-192x192.png and /dev/null differ
diff --git a/frontend/public/android-chrome-512x512.png b/frontend/public/android-chrome-512x512.png
deleted file mode 100644
index c02e22a2..00000000
Binary files a/frontend/public/android-chrome-512x512.png and /dev/null differ
diff --git a/frontend/public/apple-touch-icon.png b/frontend/public/apple-touch-icon.png
deleted file mode 100644
index a2c512dd..00000000
Binary files a/frontend/public/apple-touch-icon.png and /dev/null differ
diff --git a/frontend/public/browserconfig.xml b/frontend/public/browserconfig.xml
deleted file mode 100644
index 3ec377f7..00000000
--- a/frontend/public/browserconfig.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
- #ffffff
-
-
-
diff --git a/frontend/public/favicon-16x16.png b/frontend/public/favicon-16x16.png
deleted file mode 100644
index fe415500..00000000
Binary files a/frontend/public/favicon-16x16.png and /dev/null differ
diff --git a/frontend/public/favicon-32x32.png b/frontend/public/favicon-32x32.png
deleted file mode 100644
index e94d3fba..00000000
Binary files a/frontend/public/favicon-32x32.png and /dev/null differ
diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico
deleted file mode 100644
index 484a28f3..00000000
Binary files a/frontend/public/favicon.ico and /dev/null differ
diff --git a/frontend/public/mstile-144x144.png b/frontend/public/mstile-144x144.png
deleted file mode 100644
index 44f54fd1..00000000
Binary files a/frontend/public/mstile-144x144.png and /dev/null differ
diff --git a/frontend/public/mstile-150x150.png b/frontend/public/mstile-150x150.png
deleted file mode 100644
index 30bebbdc..00000000
Binary files a/frontend/public/mstile-150x150.png and /dev/null differ
diff --git a/frontend/public/mstile-310x150.png b/frontend/public/mstile-310x150.png
deleted file mode 100644
index 4b08b270..00000000
Binary files a/frontend/public/mstile-310x150.png and /dev/null differ
diff --git a/frontend/public/mstile-310x310.png b/frontend/public/mstile-310x310.png
deleted file mode 100644
index 5df1a3b7..00000000
Binary files a/frontend/public/mstile-310x310.png and /dev/null differ
diff --git a/frontend/public/mstile-70x70.png b/frontend/public/mstile-70x70.png
deleted file mode 100644
index e6c25628..00000000
Binary files a/frontend/public/mstile-70x70.png and /dev/null differ
diff --git a/frontend/public/safari-pinned-tab.svg b/frontend/public/safari-pinned-tab.svg
deleted file mode 100644
index 1aa9c242..00000000
--- a/frontend/public/safari-pinned-tab.svg
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
diff --git a/frontend/public/site.webmanifest b/frontend/public/site.webmanifest
deleted file mode 100644
index a54dec1f..00000000
--- a/frontend/public/site.webmanifest
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "Graphite",
- "short_name": "Graphite",
- "start_url": "/",
- "id": "/",
- "icons": [
- {
- "src": "./android-chrome-192x192.png",
- "sizes": "192x192",
- "type": "image/png"
- },
- {
- "src": "./android-chrome-512x512.png",
- "sizes": "512x512",
- "type": "image/png"
- }
- ],
- "theme_color": "#ffffff",
- "background_color": "#222222",
- "display": "standalone"
-}
diff --git a/frontend/src/components/views/Graph.svelte b/frontend/src/components/views/Graph.svelte
index 509dfbd9..819d3092 100644
--- a/frontend/src/components/views/Graph.svelte
+++ b/frontend/src/components/views/Graph.svelte
@@ -4,9 +4,9 @@
import { fade } from "svelte/transition";
import type { Editor } from "@graphite/editor";
+ import type { IconName } from "@graphite/icons";
import type { FrontendGraphInput, FrontendGraphOutput } from "@graphite/messages";
import type { NodeGraphState } from "@graphite/state-providers/node-graph";
- import type { IconName } from "@graphite/utility-functions/icons";
import NodeCatalog from "@graphite/components/floating-menus/NodeCatalog.svelte";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
diff --git a/frontend/src/components/widgets/buttons/IconButton.svelte b/frontend/src/components/widgets/buttons/IconButton.svelte
index 97fbc2c8..81ab288a 100644
--- a/frontend/src/components/widgets/buttons/IconButton.svelte
+++ b/frontend/src/components/widgets/buttons/IconButton.svelte
@@ -1,5 +1,5 @@