Skip to content

PasswordInput

Le composant PasswordInput est une évolution du TextInput spécialisée pour les champs de mot de passe. Il propose :

  • Une icône pour afficher/masquer le mot de passe (Eye / EyeOff)
  • Une gestion d’erreur identique à TextInput
  • Un v-model synchronisé avec une valeur interne
  • Une option facultative "Mot de passe oublié ?", reliée à une route

Props

PropTypeDefaultDescription
idString, Number'password-input'Identifiant du champ.
modelValueString''Valeur du champ (utilisé avec v-model).
labelString''Label du champ.
nameString''Attribut name du champ.
placeholderString''Placeholder affiché dans le champ.
requiredBooleanfalseRend le champ obligatoire.
helperTextString''Texte d’aide (s'affiche uniquement si aucune erreur).
errorString''Message d’erreur (active le style rouge).
showToggleBooleantrueAffiche ou masque l’icône de visibilité du mot de passe.
forgotPasswordBooleanfalseAffiche le lien “Mot de passe oublié ?”.
forgotPasswordLinkString, Object'/'

Fonctionnalités

FonctionDescription
Afficher/Masquer le mot de passeGéré via showPassword et changé avec un bouton toggle.
Gestion d’erreurStyles rouges + message d'erreur.
Valeur internelocalValue permet de synchroniser proprement le v-model.
AnimationL’icône bascule avec une transition fade.

Slots

Aucun slot n’est utilisé. Le composant rend tout son contenu à partir des props.


Utilisation

Champ mot de passe simple

vue
<PasswordInput v-model="password" label="Mot de passe" />

Toggle visible/invisible désactivé

vue
<PasswordInput v-model="password" label="Mot de passe" :showToggle="false" />

Avec lien “Mot de passe oublié ?”

vue
<PasswordInput
    v-model="password"
    label="Mot de passe"
    forgotPassword
    :forgotPasswordLink="{ name: 'forgot' }"
/>

Avec gestion d’erreur

vue
<PasswordInput v-model="password" label="Mot de passe" error="Mot de passe incorrect." />

Avec texte d’aide

vue
<PasswordInput
    v-model="password"
    label="Mot de passe"
    helperText="Doit contenir au moins 8 caractères."
/>

Fonctionnement interne

  • Icônes dynamiques :
    • Affichage conditionnel entre Eye et EyeOff.
    • Transition fade pour une animation douce.