- nouveau token couleur m-primary-light (#EFEFFD) - popover en largeur du champ, shadow au lieu de bordure, collé au champ - frames semaine (35x45) et jours alignés à 45px, cercle centré, font-medium - colonne semaine étroite + marge, numéros en black/60 (semaine courante en black) - vue mois en toutes lettres sur 3 colonnes, blocs 45px - label bleu et grossissement calibré du champ à l'ouverture - header sans hover, chevrons et titre plaqués en haut Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
37 lines
988 B
Vue
37 lines
988 B
Vue
<template>
|
|
<div
|
|
data-test="month-picker"
|
|
class="grid grid-cols-3 gap-3"
|
|
>
|
|
<button
|
|
v-for="(name, index) in months"
|
|
:key="name"
|
|
type="button"
|
|
data-test="month"
|
|
:data-month="index"
|
|
class="flex h-[45px] w-full items-center justify-center"
|
|
@click="emit('select', index)"
|
|
>
|
|
<span
|
|
class="flex h-[30px] w-full items-center justify-center rounded text-sm transition-colors duration-100"
|
|
:class="index === selectedMonth
|
|
? 'bg-m-primary text-white'
|
|
: 'text-black hover:bg-m-primary/10'"
|
|
>
|
|
{{ name }}
|
|
</span>
|
|
</button>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
defineOptions({name: 'MalioDateMonthPicker'})
|
|
|
|
defineProps<{selectedMonth?: number}>()
|
|
|
|
const emit = defineEmits<{(e: 'select', month: number): void}>()
|
|
|
|
const months = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
|
|
'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']
|
|
</script>
|