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)
|