feat(ui) : MalioDate — markedDates (statut par jour) + event month-change (#MUI-45) #76

Merged
tristan merged 1 commits from feature/mui-45-marked-dates into develop 2026-06-16 09:40:29 +00:00
Owner

MUI-45 — MalioDate : statut par jour (markedDates) + event @month-change

Étend la famille date du layer de façon générique (aucune logique métier dans le layer) pour marquer des jours et exposer le mois affiché. Bloquant pour le ticket SIRH « Heures (vue Jour) : calendrier avec jours validés en vert ».

Changements

  • MonthGrid.vue : prop markedDates?: Record<string /* ISO yyyy-mm-dd */, 'success' | 'danger'>. Fond tokenisé par jour (bg-m-success/15 / bg-m-danger/15, par opacité — pas de nouveau token). Précédence : sélection (primary) > variante marquée ; le jour courant (today) garde sa bordure ET reçoit le fond marqué.
  • CalendarField.vue : emit month-change { month: 0-11, year } à l'ouverture du popover et à chaque navigation de mois.
  • Date.vue : expose markedDates (passée à MonthGrid via le slot) et réémet month-change.

success et danger suffisent dans un premier temps (pas de warning).
month est 0-11 (état brut de useCalendarView).

Tests

  • MonthGrid.test.ts (nouveau) : variantes success/danger, précédence sélection, today marqué (bordure + fond) / non marqué.
  • Date.test.ts (+5) : month-change à l'ouverture (mois courant / mois de la valeur), à chaque nav, non ré-émis après fermeture, passthrough markedDates.
  • Suite complète : 998/998 verts, lint clean.

Doc / démo

  • COMPONENTS.md (section MalioDate) + CHANGELOG.md ([#MUI-45]).
  • Story app/story/date/datePicker.story.vue + playground .playground/pages/composant/date/date.vue.

Reste à faire (hors PR)

  • Publier une version du layer > 1.4.6 incluant la famille date (débloque SIRH).

🤖 Generated with Claude Code

## MUI-45 — MalioDate : statut par jour (`markedDates`) + event `@month-change` Étend la famille `date` du layer de façon **générique** (aucune logique métier dans le layer) pour marquer des jours et exposer le mois affiché. **Bloquant** pour le ticket SIRH « Heures (vue Jour) : calendrier avec jours validés en vert ». ### Changements - **`MonthGrid.vue`** : prop `markedDates?: Record<string /* ISO yyyy-mm-dd */, 'success' | 'danger'>`. Fond tokenisé par jour (`bg-m-success/15` / `bg-m-danger/15`, par opacité — pas de nouveau token). **Précédence** : sélection (primary) > variante marquée ; le jour courant (`today`) **garde sa bordure ET reçoit le fond marqué**. - **`CalendarField.vue`** : emit `month-change { month: 0-11, year }` à l'ouverture du popover **et** à chaque navigation de mois. - **`Date.vue`** : expose `markedDates` (passée à `MonthGrid` via le slot) et réémet `month-change`. > `success` et `danger` suffisent dans un premier temps (pas de `warning`). > `month` est **0-11** (état brut de `useCalendarView`). ### Tests - `MonthGrid.test.ts` (nouveau) : variantes success/danger, précédence sélection, today marqué (bordure + fond) / non marqué. - `Date.test.ts` (+5) : `month-change` à l'ouverture (mois courant / mois de la valeur), à chaque nav, non ré-émis après fermeture, passthrough `markedDates`. - Suite complète : **998/998** verts, lint clean. ### Doc / démo - `COMPONENTS.md` (section MalioDate) + `CHANGELOG.md` (`[#MUI-45]`). - Story `app/story/date/datePicker.story.vue` + playground `.playground/pages/composant/date/date.vue`. ### Reste à faire (hors PR) - Publier une version du layer **> 1.4.6** incluant la famille `date` (débloque SIRH). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
tristan added 1 commit 2026-06-16 09:39:42 +00:00
MonthGrid : prop markedDates (Record<ISO, 'success'|'danger'>) appliquant un fond
tokenisé par jour (bg-m-success/15 / bg-m-danger/15). Précédence : sélection (primary)
> variante marquée ; today garde sa bordure ET reçoit le fond marqué.

CalendarField : emit month-change { month: 0-11, year } à l'ouverture du popover et
à chaque navigation de mois (watch sur isOpen + currentMonth/currentYear).

Date : expose markedDates (passée à MonthGrid via le slot) et réémet month-change.

Tests MonthGrid (variantes + précédence today/sélection) et Date (month-change à
l'ouverture/nav + passthrough markedDates). Doc COMPONENTS.md + CHANGELOG + story +
playground. Sert l'écran Heures de SIRH (jours validés en vert, chargement du mois visible).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tristan merged commit b4841f40ed into develop 2026-06-16 09:40:29 +00:00
tristan deleted branch feature/mui-45-marked-dates 2026-06-16 09:40:29 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MALIO-DEV/malio-layer-ui#76