|
|
@@ -4,12 +4,15 @@ Sélecteur de dates, à placer dans un composant `UiForm`
|
|
|
|
|
|
<template>
|
|
|
<main>
|
|
|
- <div class="d-flex flex-column">
|
|
|
- <span>{{ $t(fieldLabel) }}</span>
|
|
|
+ <div class="d-flex flex-column container">
|
|
|
+ <span class="label">
|
|
|
+ {{ $t(fieldLabel) }}
|
|
|
+ </span>
|
|
|
|
|
|
<UiDatePicker
|
|
|
:model-value="date"
|
|
|
:readonly="readonly"
|
|
|
+ class="date-picker"
|
|
|
@update:model-value="onUpdate($event)"
|
|
|
/>
|
|
|
|
|
|
@@ -105,4 +108,44 @@ const onUpdate = (event: string) => {
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style scoped></style>
|
|
|
+<style scoped lang="scss">
|
|
|
+
|
|
|
+.container {
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+
|
|
|
+.label {
|
|
|
+ position: absolute;
|
|
|
+ color: #8e8e8e;
|
|
|
+ top: -0.7rem; /* Ajustez la valeur pour que le label chevauche la bordure */
|
|
|
+ left: 0.75rem; /* Assurez-vous qu'il est légèrement à l'intérieur */
|
|
|
+ background-color: white; /* Assurez-vous que la couleur de fond corresponde au fond du composant */
|
|
|
+ padding: 0 0.3rem; /* Ajoute un peu d'espace autour du texte */
|
|
|
+ font-size: 0.8rem; /* Réduisez légèrement la taille du texte */
|
|
|
+ z-index: 1; /* Assurez-vous que le label est au premier plan */
|
|
|
+ transition: color 0.2s, font-size 0.2s, top 0.2s; /* Pour donner un effet lors de l'interaction */
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+.date-picker:hover {
|
|
|
+ :deep(.dp__input) {
|
|
|
+ border-color: #333333;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.container:focus-within {
|
|
|
+ .label {
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+
|
|
|
+ :deep(.dp__input_focus) {
|
|
|
+ border: solid 2px #333333;
|
|
|
+ }
|
|
|
+
|
|
|
+ :deep(.dp__input_icon) {
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+</style>
|