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;