diff --git a/Cargo.lock b/Cargo.lock
index 39f2ebf..e8c597d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2206,7 +2206,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
[[package]]
-name = "nomina-app"
+name = "nomina"
version = "0.1.0"
dependencies = [
"anyhow",
diff --git a/Cargo.toml b/Cargo.toml
index aff5f12..266eb5a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,3 +1,3 @@
[workspace]
-members = ["crates/nomina-core", "crates/nomina-app"]
+members = ["crates/nomina-core", "crates/nomina"]
resolver = "2"
diff --git a/crates/nomina-app/icons/128x128.png b/crates/nomina-app/icons/128x128.png
deleted file mode 100644
index 0bd3733..0000000
Binary files a/crates/nomina-app/icons/128x128.png and /dev/null differ
diff --git a/crates/nomina-app/icons/128x128@2x.png b/crates/nomina-app/icons/128x128@2x.png
deleted file mode 100644
index a4f0b13..0000000
Binary files a/crates/nomina-app/icons/128x128@2x.png and /dev/null differ
diff --git a/crates/nomina-app/icons/32x32.png b/crates/nomina-app/icons/32x32.png
deleted file mode 100644
index 56babec..0000000
Binary files a/crates/nomina-app/icons/32x32.png and /dev/null differ
diff --git a/crates/nomina-app/icons/icon.ico b/crates/nomina-app/icons/icon.ico
deleted file mode 100644
index eb4783b..0000000
Binary files a/crates/nomina-app/icons/icon.ico and /dev/null differ
diff --git a/crates/nomina-app/Cargo.toml b/crates/nomina/Cargo.toml
similarity index 96%
rename from crates/nomina-app/Cargo.toml
rename to crates/nomina/Cargo.toml
index 6e49cdc..e987479 100644
--- a/crates/nomina-app/Cargo.toml
+++ b/crates/nomina/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "nomina-app"
+name = "nomina"
version = "0.1.0"
edition = "2021"
license = "CC0-1.0"
diff --git a/crates/nomina-app/build.rs b/crates/nomina/build.rs
similarity index 100%
rename from crates/nomina-app/build.rs
rename to crates/nomina/build.rs
diff --git a/crates/nomina-app/capabilities/default.json b/crates/nomina/capabilities/default.json
similarity index 100%
rename from crates/nomina-app/capabilities/default.json
rename to crates/nomina/capabilities/default.json
diff --git a/crates/nomina-app/gen/schemas/acl-manifests.json b/crates/nomina/gen/schemas/acl-manifests.json
similarity index 100%
rename from crates/nomina-app/gen/schemas/acl-manifests.json
rename to crates/nomina/gen/schemas/acl-manifests.json
diff --git a/crates/nomina-app/gen/schemas/capabilities.json b/crates/nomina/gen/schemas/capabilities.json
similarity index 100%
rename from crates/nomina-app/gen/schemas/capabilities.json
rename to crates/nomina/gen/schemas/capabilities.json
diff --git a/crates/nomina-app/gen/schemas/desktop-schema.json b/crates/nomina/gen/schemas/desktop-schema.json
similarity index 100%
rename from crates/nomina-app/gen/schemas/desktop-schema.json
rename to crates/nomina/gen/schemas/desktop-schema.json
diff --git a/crates/nomina-app/gen/schemas/windows-schema.json b/crates/nomina/gen/schemas/windows-schema.json
similarity index 100%
rename from crates/nomina-app/gen/schemas/windows-schema.json
rename to crates/nomina/gen/schemas/windows-schema.json
diff --git a/crates/nomina/icons/128x128.png b/crates/nomina/icons/128x128.png
new file mode 100644
index 0000000..548c0b8
Binary files /dev/null and b/crates/nomina/icons/128x128.png differ
diff --git a/crates/nomina/icons/128x128@2x.png b/crates/nomina/icons/128x128@2x.png
new file mode 100644
index 0000000..1e9bae4
Binary files /dev/null and b/crates/nomina/icons/128x128@2x.png differ
diff --git a/crates/nomina/icons/32x32.png b/crates/nomina/icons/32x32.png
new file mode 100644
index 0000000..d2eaf22
Binary files /dev/null and b/crates/nomina/icons/32x32.png differ
diff --git a/crates/nomina/icons/icon-512.png b/crates/nomina/icons/icon-512.png
new file mode 100644
index 0000000..4cee890
Binary files /dev/null and b/crates/nomina/icons/icon-512.png differ
diff --git a/crates/nomina-app/icons/icon.icns b/crates/nomina/icons/icon.icns
similarity index 100%
rename from crates/nomina-app/icons/icon.icns
rename to crates/nomina/icons/icon.icns
diff --git a/crates/nomina/icons/icon.ico b/crates/nomina/icons/icon.ico
new file mode 100644
index 0000000..5ed4cf4
Binary files /dev/null and b/crates/nomina/icons/icon.ico differ
diff --git a/crates/nomina/icons/icon.svg b/crates/nomina/icons/icon.svg
new file mode 100644
index 0000000..b62d693
--- /dev/null
+++ b/crates/nomina/icons/icon.svg
@@ -0,0 +1,96 @@
+
diff --git a/crates/nomina-app/src/commands/context_menu.rs b/crates/nomina/src/commands/context_menu.rs
similarity index 100%
rename from crates/nomina-app/src/commands/context_menu.rs
rename to crates/nomina/src/commands/context_menu.rs
diff --git a/crates/nomina-app/src/commands/files.rs b/crates/nomina/src/commands/files.rs
similarity index 100%
rename from crates/nomina-app/src/commands/files.rs
rename to crates/nomina/src/commands/files.rs
diff --git a/crates/nomina-app/src/commands/mod.rs b/crates/nomina/src/commands/mod.rs
similarity index 100%
rename from crates/nomina-app/src/commands/mod.rs
rename to crates/nomina/src/commands/mod.rs
diff --git a/crates/nomina-app/src/commands/presets.rs b/crates/nomina/src/commands/presets.rs
similarity index 100%
rename from crates/nomina-app/src/commands/presets.rs
rename to crates/nomina/src/commands/presets.rs
diff --git a/crates/nomina-app/src/commands/rename.rs b/crates/nomina/src/commands/rename.rs
similarity index 100%
rename from crates/nomina-app/src/commands/rename.rs
rename to crates/nomina/src/commands/rename.rs
diff --git a/crates/nomina-app/src/commands/state.rs b/crates/nomina/src/commands/state.rs
similarity index 100%
rename from crates/nomina-app/src/commands/state.rs
rename to crates/nomina/src/commands/state.rs
diff --git a/crates/nomina-app/src/commands/undo.rs b/crates/nomina/src/commands/undo.rs
similarity index 100%
rename from crates/nomina-app/src/commands/undo.rs
rename to crates/nomina/src/commands/undo.rs
diff --git a/crates/nomina-app/src/commands/updates.rs b/crates/nomina/src/commands/updates.rs
similarity index 100%
rename from crates/nomina-app/src/commands/updates.rs
rename to crates/nomina/src/commands/updates.rs
diff --git a/crates/nomina-app/src/main.rs b/crates/nomina/src/main.rs
similarity index 100%
rename from crates/nomina-app/src/main.rs
rename to crates/nomina/src/main.rs
diff --git a/crates/nomina-app/src/portable.rs b/crates/nomina/src/portable.rs
similarity index 100%
rename from crates/nomina-app/src/portable.rs
rename to crates/nomina/src/portable.rs
diff --git a/crates/nomina-app/tauri.conf.json b/crates/nomina/tauri.conf.json
similarity index 100%
rename from crates/nomina-app/tauri.conf.json
rename to crates/nomina/tauri.conf.json
diff --git a/ui/src/components/layout/AppShell.tsx b/ui/src/components/layout/AppShell.tsx
index 7da3bda..e861b47 100644
--- a/ui/src/components/layout/AppShell.tsx
+++ b/ui/src/components/layout/AppShell.tsx
@@ -159,9 +159,9 @@ export function AppShell() {
+
-
);
}
diff --git a/ui/src/components/ui/sonner.tsx b/ui/src/components/ui/sonner.tsx
index 57d5d9f..269c800 100644
--- a/ui/src/components/ui/sonner.tsx
+++ b/ui/src/components/ui/sonner.tsx
@@ -1,19 +1,37 @@
import { Toaster as Sonner } from "sonner";
+import { useEffect, useState } from "react";
+
+function useResolvedTheme() {
+ const [dark, setDark] = useState(() =>
+ document.documentElement.classList.contains("dark")
+ );
+ useEffect(() => {
+ const observer = new MutationObserver(() => {
+ setDark(document.documentElement.classList.contains("dark"));
+ });
+ observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
+ return () => observer.disconnect();
+ }, []);
+ return dark ? "dark" as const : "light" as const;
+}
export function Toaster() {
+ const theme = useResolvedTheme();
return (
);
diff --git a/ui/src/index.css b/ui/src/index.css
index d3fff76..5ed31dd 100644
--- a/ui/src/index.css
+++ b/ui/src/index.css
@@ -414,6 +414,25 @@ button:not([data-no-target-expand])::after,
overscroll-behavior: contain;
}
+/* Sonner toast overrides */
+[data-sonner-toaster] {
+ pointer-events: auto;
+}
+[data-sonner-toaster] .toast-themed {
+ background: oklch(0.30 0 0) !important;
+ color: var(--foreground) !important;
+}
+:root:not(.dark) [data-sonner-toaster] .toast-themed {
+ background: oklch(0.95 0 0) !important;
+}
+[data-sonner-toaster] [data-close-button] {
+ pointer-events: auto !important;
+ cursor: pointer !important;
+ background: var(--muted) !important;
+ color: var(--foreground) !important;
+ border-color: var(--border) !important;
+}
+
/* OverlayScrollbars theme */
.os-scrollbar {
--os-size: 8px;