Files
Nathan Panchout 92bea3fd96 📝(docs) archive calendar-central-design change
Archive completed OpenSpec change with all artifacts:
- proposal.md: Initial design requirements
- design.md: Architecture decisions
- specs/: calendar-theme and scheduler-toolbar specifications
- tasks.md: 34/34 tasks completed

Sync delta specs to main specs:
- openspec/specs/calendar-theme/spec.md
- openspec/specs/scheduler-toolbar/spec.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 13:00:21 +01:00

116 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## ADDED Requirements
### Requirement: Layout de la toolbar
La toolbar DOIT afficher les éléments de navigation et de sélection de vue.
#### Scenario: Structure de la toolbar
- **WHEN** la toolbar est affichée
- **THEN** elle contient à gauche : bouton "Aujourd'hui", boutons de navigation (précédent/suivant)
- **AND** elle contient au centre : le titre de la période (ex: "janv. févr. 2026")
- **AND** elle contient à droite : un dropdown pour sélectionner la vue
---
### Requirement: Bouton Aujourd'hui
Le bouton "Aujourd'hui" DOIT permettre de revenir à la date du jour.
#### Scenario: Clic sur Aujourd'hui
- **WHEN** l'utilisateur clique sur "Aujourd'hui"
- **THEN** le calendrier navigue vers la date actuelle
- **AND** la vue reste inchangée
#### Scenario: Style du bouton
- **WHEN** le bouton "Aujourd'hui" est affiché
- **THEN** il a un style "pill" (bordure arrondie)
- **AND** il utilise les styles Cunningham
---
### Requirement: Navigation précédent/suivant
Les boutons de navigation DOIVENT permettre de naviguer dans le temps.
#### Scenario: Clic sur précédent
- **WHEN** l'utilisateur clique sur le bouton précédent (◀)
- **THEN** le calendrier navigue vers la période précédente
#### Scenario: Clic sur suivant
- **WHEN** l'utilisateur clique sur le bouton suivant (▶)
- **THEN** le calendrier navigue vers la période suivante
#### Scenario: Style des boutons de navigation
- **WHEN** les boutons de navigation sont affichés
- **THEN** ils sont des IconButtons avec flèches
- **AND** ils utilisent les styles Cunningham
---
### Requirement: Titre de la période
Le titre DOIT afficher la période actuellement visible.
#### Scenario: Affichage du titre
- **WHEN** la vue est en mode semaine ou jour
- **THEN** le titre affiche le mois et l'année (ex: "janv. févr. 2026")
#### Scenario: Mise à jour du titre
- **WHEN** l'utilisateur navigue vers une autre période
- **THEN** le titre se met à jour pour refléter la nouvelle période
---
### Requirement: Sélecteur de vue
Le dropdown DOIT permettre de changer de vue via un menu déroulant custom.
#### Scenario: Options disponibles
- **WHEN** l'utilisateur clique sur le bouton trigger
- **THEN** un menu déroulant s'ouvre avec les options : Jour, Semaine, Mois, Liste
- **AND** l'option sélectionnée est mise en évidence avec un checkmark
#### Scenario: Changement de vue
- **WHEN** l'utilisateur sélectionne une vue différente
- **THEN** le calendrier change pour afficher cette vue
- **AND** le menu se ferme
- **AND** le bouton trigger affiche la vue sélectionnée
#### Scenario: Vue par défaut
- **WHEN** le calendrier est chargé
- **THEN** la vue "Semaine" est sélectionnée par défaut
#### Scenario: Fermeture du menu
- **WHEN** l'utilisateur clique en dehors du menu
- **THEN** le menu se ferme
---
### Requirement: Accessibilité clavier
Le sélecteur de vue DOIT être accessible au clavier.
#### Scenario: Navigation clavier
- **WHEN** le menu est ouvert
- **THEN** les touches ArrowUp/ArrowDown permettent de naviguer entre les options
- **AND** la touche Enter sélectionne l'option focalisée
- **AND** la touche Escape ferme le menu
#### Scenario: Focus visible
- **WHEN** une option est focalisée par le clavier
- **THEN** elle a un style visuel distinct (outline)
---
### Requirement: Synchronisation avec le calendrier
La toolbar DOIT rester synchronisée avec l'état du calendrier.
#### Scenario: Sync après navigation
- **WHEN** le calendrier change de période (via drag ou autre)
- **THEN** le titre de la toolbar se met à jour
#### Scenario: Sync après changement de vue externe
- **WHEN** la vue du calendrier change par un autre moyen
- **THEN** le dropdown affiche la vue correcte