feat(playground): page Filtres (drawer droite + accordéons + dates + footer fixe) [#MUI-37]
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,88 @@
|
|||||||
|
<template>
|
||||||
|
<div class="flex justify-center">
|
||||||
|
<div class="w-[1348px]">
|
||||||
|
<div class="flex items-center justify-between mt-[46px]">
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<MalioButtonIcon
|
||||||
|
icon="mdi:arrow-left-bold"
|
||||||
|
icon-size="24"
|
||||||
|
aria-label="Précédent"
|
||||||
|
variant="ghost"
|
||||||
|
/>
|
||||||
|
<h1 class="text-[32px] text-m-primary font-bold">Filtres</h1>
|
||||||
|
</div>
|
||||||
|
<MalioButton
|
||||||
|
label="Filtres"
|
||||||
|
variant="tertiary"
|
||||||
|
icon-name="mdi:tune"
|
||||||
|
icon-position="left"
|
||||||
|
button-class="w-[184px] px-2 py-2 justify-start text-black gap-4"
|
||||||
|
@click="drawerOpen = true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<MalioDrawer
|
||||||
|
v-model="drawerOpen"
|
||||||
|
side="right"
|
||||||
|
drawer-class="max-w-[450px]"
|
||||||
|
body-class="p-0"
|
||||||
|
footer-class="sticky bottom-0 flex justify-between gap-4 bg-white px-5 py-7"
|
||||||
|
>
|
||||||
|
<template #header>
|
||||||
|
<h2 class="text-[24px] font-bold uppercase">Filtres</h2>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<MalioAccordion>
|
||||||
|
<MalioAccordionItem title="Type de camion" value="camion">
|
||||||
|
<div class="flex flex-col gap-6">
|
||||||
|
<MalioCheckbox v-model="semiBenne" label="Semi Benne" />
|
||||||
|
<MalioCheckbox v-model="benne" label="Benne" />
|
||||||
|
</div>
|
||||||
|
</MalioAccordionItem>
|
||||||
|
|
||||||
|
<MalioAccordionItem title="Date à Date" value="date">
|
||||||
|
<div class="grid grid-cols-[auto_1fr] items-center gap-x-3 gap-y-4">
|
||||||
|
<span>Du</span>
|
||||||
|
<MalioDate v-model="dateDebut"/>
|
||||||
|
<span>Au</span>
|
||||||
|
<MalioDate v-model="dateFin"/>
|
||||||
|
</div>
|
||||||
|
</MalioAccordionItem>
|
||||||
|
</MalioAccordion>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<MalioButton
|
||||||
|
label="Réinitialiser"
|
||||||
|
variant="tertiary"
|
||||||
|
button-class="w-[150px]"
|
||||||
|
@click="resetFiltres"
|
||||||
|
/>
|
||||||
|
<MalioButton
|
||||||
|
label="Voir les résultats"
|
||||||
|
variant="primary"
|
||||||
|
button-class="w-[170px]"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</MalioDrawer>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import {ref} from 'vue'
|
||||||
|
|
||||||
|
const drawerOpen = ref(false)
|
||||||
|
|
||||||
|
const semiBenne = ref(false)
|
||||||
|
const benne = ref(false)
|
||||||
|
|
||||||
|
const dateDebut = ref<string | null>(null)
|
||||||
|
const dateFin = ref<string | null>(null)
|
||||||
|
|
||||||
|
function resetFiltres() {
|
||||||
|
semiBenne.value = false
|
||||||
|
benne.value = false
|
||||||
|
dateDebut.value = null
|
||||||
|
dateFin.value = null
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -71,6 +71,7 @@ export const navSections: SidebarSection[] = [
|
|||||||
{label: 'Heure', to: '/composant/time/time'},
|
{label: 'Heure', to: '/composant/time/time'},
|
||||||
{label: 'Sélecteur de site', to: '/composant/site/siteSelector'},
|
{label: 'Sélecteur de site', to: '/composant/site/siteSelector'},
|
||||||
{label: 'Formulaire client', to: '/composant/form/client'},
|
{label: 'Formulaire client', to: '/composant/form/client'},
|
||||||
|
{label: 'Filtres', to: '/composant/filtre/filtres'},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user