Port the color picker popover to a Rust-defined layout (#4102)

* Break out VisualColorPickersInput.svelte

* Break out ColorComparisonInput.svelte and ColorPresetsInput.svelte

* Add backend definitions and plumbing for the 4 new widgets

* Port the ColorPicker.svelte layout and business logic to Rust

* Port more ColorComparisonInput.svelte logic to Rust

* Port more SpectrumInput.svelte logic to Rust

* Port more frontend logic to Rust

* Code review

* Code review

* Fix some CSS
This commit is contained in:
Keavon Chambers
2026-05-05 02:47:53 -07:00
committed by GitHub
parent 62203cb171
commit e59612c4ce
31 changed files with 2260 additions and 1333 deletions
+3
View File
@@ -9,6 +9,7 @@
import { createPanicManager, destroyPanicManager } from "/src/managers/panic";
import { createPersistenceManager, destroyPersistenceManager } from "/src/managers/persistence";
import { createAppWindowStore, destroyAppWindowStore } from "/src/stores/app-window";
import { createColorPickerStore, destroyColorPickerStore } from "/src/stores/color-picker";
import { createDialogStore, destroyDialogStore } from "/src/stores/dialog";
import { createDocumentStore, destroyDocumentStore } from "/src/stores/document";
import { createFullscreenStore, destroyFullscreenStore } from "/src/stores/fullscreen";
@@ -32,6 +33,7 @@
nodeGraph: createNodeGraphStore(subscriptions),
portfolio: createPortfolioStore(subscriptions, editor),
appWindow: createAppWindowStore(subscriptions),
colorPicker: createColorPickerStore(subscriptions),
};
Object.entries(stores).forEach(([key, store]) => setContext(key, store));
@@ -61,6 +63,7 @@
destroyNodeGraphStore();
destroyPortfolioStore();
destroyAppWindowStore();
destroyColorPickerStore();
// Managers
destroyClipboardManager();