# Feature: Artikkelverktøyet — langform-editor på arbeidsflaten

## 1. Konsept

Artikkelverktøyet er et verktøy-panel på arbeidsflaten med en TipTap-editor
optimalisert for langform-skriving. Det aksepterer drag-and-drop fra andre
paneler og oppretter innholdsnoder med `source_material`-edges tilbake
til kildene.

Ref: [arbeidsflaten](../retninger/arbeidsflaten.md),
[publisering](../concepts/publisering.md)

## 2. Opprettelse

Når artikkelverktøyet åpnes, opprettes en ny innholdsnode:

```
node_kind: "content"
metadata.document: { "type": "doc", "content": [] }  // Tom TipTap-doc
visibility: "hidden"  // Privat til forfatteren deler
```

Noden er en artikkel fra fødsel — ingen "konvertering" fra annet innhold.

## 3. Drag-and-drop mottak

Artikkelverktøyet implementerer `BlockReceiver`-interfacet og aksepterer:

| Kilde | Handling | Edge |
|-------|----------|------|
| **Chatboble** | Sett inn sitert tekst i editoren | `source_material` (context: "quoted") |
| **Transkripsjon** | Sett inn tekstblokk fra segment | `source_material` (context: "quoted") |
| **Bilde** | Sett inn inline-bilde | `has_media` |
| **Lydfil** | Sett inn lydavspiller (embed) | `has_media` |
| **Tekst/notat** | Sett inn innhold | `source_material` (context: "referenced") |
| **Annen artikkel** | Sett inn utdrag | `source_material` (context: "quoted") |

Ved drop:
1. Ny `source_material`-edge fra artikkel → kilde
2. Innhold settes inn i editoren på markørposisjon
3. Visuell indikator i editoren viser at teksten har en kilde
   (subtil venstrekant-markering, klikkbar for å se originalen)

## 4. Editor-konfigurasjon

TipTap med fulle extensions for langform:

- Overskrifter (h2, h3, h4)
- Blockquotes, kodeblokker
- Bilder (inline, refererer CAS-noder via `has_media`)
- Lister (ordnet, uordnet, sjekklister)
- Tabeller
- Lenker
- Embeds (lyd, video)

Forenklede presets tilgjengelig:
- **Artikkel** (default): alle extensions
- **Show notes**: lister, tidskoder, lenker
- **Notat**: tekst, sjekklister

## 5. Publiseringsintegrasjon

Artikkelen følger publiseringsreisen via edge-progresjon:

```
intended_for → submitted_to → belongs_to
(arbeidsfase)   (vurdering)    (publisert)
```

Publiseringspanelet vises ved siden av editoren når `intended_for`-edge
finnes. Forfatteren fyller ut presentasjonselementer (tittel, ingress,
forsidebilde) som egne noder med edges til artikkelen.

## 6. Kildesporbarhet

Artikkelens `source_material`-edges gir komplett lineage:

```
Artikkel "Trikken kan bli gratis"
  ←source_material── Chatboble i #redaksjon (sitert)
  ←source_material── Transkripsjonssegment fra episode 42 (sitert)
  ←source_material── Notat fra dagboken (referert)
  ←has_media──────── Bilde av trikken (CAS-media)
```

UI viser en "Kilder"-panel i editoren med alle koblede noder.
Klikk → naviger til originalen.

## 7. Bygger på

- [Universell input](../retninger/universell_input.md) — TipTap-editor, dokumentlagring
- [Publisering](../concepts/publisering.md) — publiseringsreise via edges
- [Arbeidsflaten](../retninger/arbeidsflaten.md) — drag-and-drop, verktøy-panel
- [Universell overføring](universell_overfoering.md) — mottaker-interface

## 8. Responsivt

- **Desktop:** Side ved side med andre paneler, full editor
- **Tablet:** Fullskjerm-editor med "Send til..."-meny for kilder
- **Mobil:** Forenklet editor, ingen drag-and-drop (bruk meny)
