# UI Directory Selection Parity v1

## 1. Haalbaarheid
De huidige advanced selection logica is grotendeels generiek genoeg om ook directories te dragen.

Wat al generiek werkt:

- `selectedItems` bevat zowel files als directories
- `currentRowIndex` is niet typegebonden
- `selectionAnchorIndex` is niet typegebonden
- `Shift + ArrowUp/ArrowDown` werkt op `visibleItems` en kan daardoor in principe zowel files als directories meenemen
- checkbox-toggle gebruikt al `{ path, name, kind }` en werkt daarmee voor beide itemtypes
- `Cmd/Ctrl + klik` toggle-logica is ook type-onafhankelijk opgezet

Wat expliciet aandacht vraagt:

- directorynaam heeft een aparte open-semantiek en moet dus buiten selectieclicks blijven vallen
- rij-click en naam-click moeten scherp gescheiden blijven, anders ontstaat onbedoelde navigatie of onbedoelde selectie
- parent-entry `..` mag niet in gewone selectie terechtkomen

Conclusie: directory selection parity is technisch goed haalbaar binnen het huidige model. Er is geen nieuw state-model nodig.

## 2. Gewenst Gedrag Voor Directories
Voor directories moet exact dit gelden:

- gewone rij-click op een directory, buiten de naam:
  - single-select van die directory
- checkbox-click op een directory:
  - toggle selectie van die directory
- `Cmd + klik` op Mac / `Ctrl + klik` op niet-Mac op een directoryrij, buiten de naam:
  - toggle die directory zonder andere selectie te wissen
- `Shift + ArrowUp/ArrowDown`:
  - directories mogen normaal onderdeel zijn van een range
- klik op directorynaam:
  - opent de directory
  - selecteert niet

Dit sluit aan op het bestaande uitgangspunt dat de directorynaam een navigatie-affordance is en de rest van de rij een selectie-affordance.

## 3. Gemengde Selectie
Gemengde selectie van files en directories in dezelfde selectie of range is logisch en veilig binnen de huidige UI, mits dezelfde regels blijven gelden:

- range-selectie volgt de zichtbare volgorde in de lijst, ongeacht itemtype
- `selectedItems` mag dus een mix bevatten van files en directories
- vervolgacties bepalen daarna zelf of de selectie geldig is voor die actie

Dat past al bij de huidige UI:

- delete accepteert gemengde selectie al functioneel volgens backendmogelijkheden
- move/copy tonen of blokkeren al op basis van inhoud en scope
- rename/view/edit blijven enkel- of typegebonden

Conclusie: gemengde selectie is in de huidige UI logisch en hoeft niet apart verboden te worden.

## 4. Regressierisico
Belangrijkste risico's:

- botsing tussen directorynaam = openen en rij-click = selecteren
- modifier-click op of rond de directorynaam die per ongeluk navigeert in plaats van togglet
- inconsistentie waarbij file-naam single-select doet, maar directorynaam opent

Dit risico is beheersbaar zolang de scheiding expliciet blijft:

- directorynaam is alleen navigatie
- checkbox is alleen toggle
- rij buiten de naam is selectie

Het grootste praktische regressierisico zit niet in range-selectie, maar in click-targets binnen de directoryrij. Als event bubbling of target-selectie daar niet scherp genoeg is, voelt directory-selectie inconsistent.

## 5. Aanbeveling
Aanbevolen conclusie voor v1:

- directory selection parity vraagt waarschijnlijk geen herontwerp
- er is waarschijnlijk hooguit een kleine frontend-correctiestap nodig als bij handmatige verificatie blijkt dat modifier-click of row-click rond directorynamen nog niet overal exact hetzelfde aanvoelt als bij files

Concreet advies:

- eerst handmatig valideren of directoryrijen zich nu al correct gedragen voor:
  - gewone rij-click
  - checkbox-toggle
  - `Cmd/Ctrl + klik`
  - `Shift + Arrow` range
- alleen als daar inconsistentie blijkt, een kleine gerichte frontend-fix doen in `app.js`

Kort oordeel:

- het huidige model is sterk genoeg voor directory parity
- waarschijnlijk is geen grote codewijziging nodig
- mogelijk is alleen een kleine frontend-correctiestap nodig rond click-target gedrag
