merisia-password

<merisia-password>

Champ de mot de passe avec bouton d'affichage/masquage accessible et règles de complexité configurables.

Import

import '@merisia-inc/merisia-components/password';

Extension

Vous pouvez sous-classer ce composant pour ajouter ou redéfinir des propriétés, méthodes ou styles :

import { customElement } from 'lit/decorators.js';
import { MerisiaPassword } from '@merisia-inc/merisia-components';

@customElement('my-password')
export class MyPassword extends MerisiaPassword {
  // Ajoutez ou redéfinissez des propriétés, méthodes ou styles ici.
}

Démos

Basique (mot de passe courant)

<merisia-password
  label="Mot de passe"
  name="password"
  hint="Au moins 8 caractères."
  autocomplete="current-password"
></merisia-password>

Nouveau mot de passe avec règles de complexité

<merisia-password id="pwd" label="Nouveau mot de passe" name="new-password"
  autocomplete="new-password"></merisia-password>
<script>
  document.getElementById('pwd').rules = [
    { label: 'Au moins 8 caractères', test: (v) => v.length >= 8 },
    { label: 'Au moins une majuscule (A–Z)', test: (v) => /[A-Z]/.test(v) },
    { label: 'Au moins une minuscule (a–z)', test: (v) => /[a-z]/.test(v) },
    { label: 'Au moins un chiffre (0–9)', test: (v) => /[0-9]/.test(v) },
    { label: 'Au moins un caractère spécial (!@#$…)', test: (v) => /[^A-Za-z0-9]/.test(v) },
  ];
</script>

Avec erreur

const el = document.querySelector('merisia-password');
el.errors = ["Le mot de passe est requis."];

Propriétés

Propriété Attribut Type Défaut Description
MerisiaPassword (propres)
autocomplete autocomplete string 'current-password' Attribut HTML autocomplete
autocorrect autocorrect boolean false Correction automatique (Safari/iOS)
autocapitalize autocapitalize string 'off' Capitalisation automatique
minlength minlength number Longueur minimale
showText show-text string 'Afficher' Libellé du bouton quand le mot de passe est masqué (i18n)
hideText hide-text string 'Masquer' Libellé du bouton quand le mot de passe est visible (i18n)
toggleSuffix toggle-suffix string 'le mot de passe' Suffixe de l'aria-label du bouton toggle (i18n)
rules PasswordRule[] [] Règles de complexité : { label, test: (v) => boolean } (propriété JS uniquement)
MerisiaTextFieldBase (hérités)
label label string '' Texte du libellé
hint hint string '' Aide contextuelle affichée sous le libellé
errors string[] [] Liste de messages d'erreur (propriété JS uniquement)
errorPrefix error-prefix string 'Erreur :' Préfixe des messages d'erreur (i18n, visuellement masqué)
placeholder placeholder string '' Texte indicatif dans le champ vide
readonly readonly boolean false Rend le champ non modifiable
invalid invalid boolean false État d'erreur (synchronisé automatiquement avec errors)
maxlength maxlength number Longueur maximale ; active le compteur (saisie au-delà permise)
MerisiaFormElement (hérités)
name name string '' Nom du champ dans le formulaire
value value string '' Valeur actuelle
required required boolean false Rend le champ obligatoire
disabled disabled boolean false Désactive le champ
MerisiaElement (hérités)
id id string auto-généré Identifiant unique du composant
lang lang string 'fr' Langue pour les messages internes (i18n)
width width number Largeur maximale en caractères : max-width: calc(N ch + 1.5rem)