From 7ea1292e2abba9c3de17d8a8791684cd4942204f Mon Sep 17 00:00:00 2001 From: tristan Date: Mon, 22 Jun 2026 09:52:13 +0200 Subject: [PATCH] =?UTF-8?q?docs=20:=20plan=20d'impl=C3=A9mentation=20s?= =?UTF-8?q?=C3=A9lecteur=20d'ann=C3=A9e=20(#date-year-picker)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- .../plans/2026-06-22-date-year-picker.md | 934 ++++++++++++++++++ 1 file changed, 934 insertions(+) create mode 100644 docs/superpowers/plans/2026-06-22-date-year-picker.md diff --git a/docs/superpowers/plans/2026-06-22-date-year-picker.md b/docs/superpowers/plans/2026-06-22-date-year-picker.md new file mode 100644 index 0000000..06f38bf --- /dev/null +++ b/docs/superpowers/plans/2026-06-22-date-year-picker.md @@ -0,0 +1,934 @@ +# Sélecteur d'année dans le calendrier — Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Ajouter un 3ᵉ niveau de navigation au calendrier de la famille `date/` : depuis la vue mois, recliquer sur le header ouvre un sélecteur d'année calqué sur le sélecteur de mois, avec respect des bornes `min`/`max`. + +**Architecture:** Le shell partagé `internal/CalendarField.vue` orchestre l'input, le popover, le header (`CalendarHeader`) et la commutation entre les vues `days` / `months` / `years`. `MonthPicker` et le nouveau `YearPicker` sont rendus dans `CalendarField` ; la grille de jours reste fournie par chaque consommateur via slot scoped. La logique d'état vit dans deux composables (`useCalendarPopover`, `useCalendarView`) et les bornes dans des helpers purs (`dateFormat.ts`). + +**Tech Stack:** Nuxt 4 layer, Vue 3 ` +``` + +> Note : `@click` émet toujours, mais un `