Grille : colonnes par créneau (pas par heure), largeur adaptative

- `buildLattice` (frontend/src/lib/planning.ts) identifie une colonne par
  (date, heure de début, heure de fin) et non plus par la seule heure de
  début : deux créneaux qui démarrent en même temps mais durent
  différemment ont désormais chacun leur colonne, avec un en-tête « début
  → fin » au lieu du seul début.
- Largeur adaptative par jour (`columnWidthPx`) : peu de créneaux dans une
  journée ⇒ colonnes larges, beaucoup de créneaux ⇒ largeur compacte
  (défilement horizontal) — fini les colonnes étroites par défaut.
- `VolunteerViewPage` mis à jour pour rester synchronisé avec la nouvelle
  clé de colonne (fonction `buildLattice` partagée).
- CLAUDE.md à jour.

Corrige au passage `bg-hatch-mauve` (case en sureffectif) : la classe était
utilisée depuis le commit précédent mais l'utilitaire Tailwind
correspondant n'avait jamais été ajouté à `backgroundImage` — la case
retombait silencieusement sur un fond uni.

typecheck + lint + build + smoke OK.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017uUsRg7XzopkCPWimwg9ZM
This commit is contained in:
AdamThomas
2026-09-11 20:28:41 +02:00
co-authored by Claude Sonnet 5
parent 55f634e25b
commit 367dfe42eb
5 changed files with 56 additions and 14 deletions
+2
View File
@@ -37,6 +37,8 @@ export default {
// Hachures « sous-effectif critique »
'hatch-orange':
'repeating-linear-gradient(45deg,#FF5C39 0 6px,#E0421F 6px 12px)',
'hatch-mauve':
'repeating-linear-gradient(45deg,#CBA6E3 0 6px,#BE93D9 6px 12px)',
// Hachures « brouillon »
'hatch-ink':
'repeating-linear-gradient(45deg,#14110E 0 8px,#2A2520 8px 16px)',