Replace sonner toasts with one top-centre notification stack

The app said things in two places: sonner's bottom-right toasts and the
custom top-centre chrome. This is the second of those, generalised — a
module-level store anyone can call, drawn as a stack of frosted cards that go
on their own unless raised as persistent, with room for buttons and for a
message longer than a line.

useCustomToast keeps its signatures, so the forty-odd call sites behind it and
handleError are untouched. The component and its store are byte-identical with
the portal's copy and checked by `make design-check`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-27 16:00:47 +02:00
co-authored by Claude Opus 5
parent 121cb2e8f0
commit 44c8825927
7 changed files with 249 additions and 60 deletions
-2
View File
@@ -48,7 +48,6 @@
"lucide-react": "^0.562.0",
"monaco-editor": "^0.56.0",
"motion": "^13.0.0",
"next-themes": "^0.4.6",
"radix-ui": "^1.6.7",
"react": "^19.1.1",
"react-dom": "^19.2.3",
@@ -56,7 +55,6 @@
"react-grid-layout": "^2.2.4",
"react-hook-form": "^7.68.0",
"react-icons": "^5.5.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.4.0",
"tailwindcss": "^4.1.17",
"uplot": "^1.6.32",