# Header-unifikasjon, tema og panel-forbedringer

Diskusjonsnotat fra 2025-03-19. Grunnlag for neste implementeringsplan.

## Problemstilling

Headeren er inkonsistent mellom "Min arbeidsflate" (`+page.svelte`) og
samlinger (`/collection/[id]` med `ContextHeader.svelte`). Bruker mister
kontekst og verktøy ved kontekstbytte. Innstillinger finnes bare på
personlig flate. Fargevelgeren er for begrenset.

## Beslutninger

### 1. Én header-komponent overalt

ContextHeader brukes på alle sider — personlig flate og samlinger.
Inneholder alltid:

- **Kontekst-velger** (venstre): dropdown med arbeidsflater, rename,
  ny, slett. Alltid tilgjengelig uansett hvilken flate du er på.
- **Verktøymeny** (midten-høyre): legge til paneler.
- **Tilkoblingsstatus** (før innstillinger, konsekvent plassert)
- **Innstillinger** (lengst til høyre): tema for *denne* flaten, logg ut.

### 2. Tema per arbeidsflate med arv

Tre lag (som layout):
1. **Flate-spesifikt** — lagret i samlingens/workspace-nodens metadata.preferences.theme
2. **Personlig default** — fra "Min arbeidsflate" sin tema
3. **Plattform-default** — nøytral mørk (#0a0a0b / #1c1c20 / #6366f1)

Arving: ny flate arver fra personlig. Endring lagres på flaten.

### 3. Fargevelger

Ikke tre hue-slidere med bare gråtoner. I stedet:
- HSL-basert: hue-stripe + saturation/lightness
- Eller: forhåndsdefinerte paletter + egendefinert modus
- Full fargepalett tilgjengelig, ikke begrenset til nøytrale toner

### 4. Traits vs verktøymeny

Verktøymenyen viser paneler som kan legges til:
- Aktiverte traits vises som standard (med ikon)
- Andre traits vises som "legg til" (grå, med forklaring)
- "Administrer traits" er en admin-handling (f.eks. ⚙️ nederst i menyen)

Brukeren trenger ikke forstå trait-konseptet — de ser verktøy.

### 5. Slett arbeidsflate

Bekreftelsesdialog som teller innhold:
- "Denne arbeidsflaten inneholder X noder."
- Innhold forblir tilgjengelig i andre kontekster (edges).
- Sletting fjerner samlingsnoden og tilhørende edges.

### 6. Panel-resize (BlockShell)

Paneler (BlockShell-bokser) bør ha synlige resize-handles på alle kanter,
ikke bare hjørner. Fritt resize i begge retninger. Sjekk nåværende
implementasjon — kanskje bare UI-forbedring, kanskje logikk-endring.

### 7. Tilkoblingsstatus

Flyttes til konsekvent posisjon: like før innstillinger-ikonet
(nest sist til høyre), eller helt til venstre i header-right.
Viktigst: alltid på samme sted.

## Filer som berøres

- `frontend/src/lib/components/ContextHeader.svelte` — hovedkomponent, utvides
- `frontend/src/routes/+page.svelte` — erstatt inline header med ContextHeader
- `frontend/src/routes/collection/[id]/+page.svelte` — allerede bruker ContextHeader
- `frontend/src/lib/components/blockshell/BlockShell.svelte` — resize-handles
- `frontend/src/app.css` — CSS custom properties for tema
- `frontend/src/lib/workspace/types.ts` — evt. tema-typer
