veza/apps/web/dist_verification/assets/PasswordStrengthIndicator-DAS5SCbo.js
senke 203cb5d5e5 refactor: Phase 8 — Update docs, ESLint, Storybook config for SUMI
- DESIGN_TOKENS.md: Complete rewrite to document --sumi-* token system
- APP_SHELL.md: Update layout shell docs (glass bg, backdrop-blur, z-index)
- DESIGN_DIRECTION.md: Update aesthetic direction to SUMI philosophy
- .storybook/preview.tsx: Remove deleted CSS imports, update bg colors
- eslint.config.js: Update color rule message from Kodo to SUMI tokens
- tailwind.config.ts: Fix comment referencing deleted design-tokens.css

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 02:15:11 +01:00

1 line
2 KiB
JavaScript

import{j as s}from"./vendor-react-Dkpvlwai.js";import{d}from"./index-jE2AGx2y.js";import{i as x,X as m}from"./vendor-icons-CbmLcMl-.js";function h(a){const r=[];let t=0;const o=a.length>=12;o&&t++,r.push({text:`Au moins 12 caractères (${a.length}/12)`,met:o});const c=/[a-z]/.test(a)&&/[A-Z]/.test(a);c&&t++,r.push({text:"Majuscule et minuscule",met:c});const u=/\d/.test(a);u&&t++,r.push({text:"Un chiffre",met:u});const e=/[^a-zA-Z\d]/.test(a);e&&t++,r.push({text:"Un caractère spécial (!@#$%^&*...)",met:e});let i,l,n;return t<=1?(i="Weak",l="bg-destructive",n="text-destructive"):t===2?(i="Fair",l="bg-warning",n="text-warning"):t===3?(i="Good",l="bg-warning",n="text-warning"):(i="Strong",l="bg-success",n="text-success"),{level:t,label:i,color:l,textColor:n,requirements:r}}function p({password:a}){if(!a)return null;const{level:r,label:t,color:o,textColor:c,requirements:u}=h(a);return s.jsxs("div",{className:"mt-3 space-y-2.5 animate-fade-in",role:"status","aria-live":"polite","aria-atomic":"true",children:[s.jsxs("div",{children:[s.jsx("div",{className:"flex gap-1.5 mb-1.5",children:[1,2,3,4].map(e=>s.jsx("div",{className:"h-1.5 flex-1 rounded-full bg-muted overflow-hidden",role:e===1?"progressbar":void 0,"aria-valuenow":e===1?r:void 0,"aria-valuemin":e===1?0:void 0,"aria-valuemax":e===1?4:void 0,"aria-label":e===1?`Force du mot de passe: ${t}`:void 0,children:s.jsx("div",{className:d("h-full rounded-full transition-all duration-[var(--sumi-duration-normal)] ease-out",r>=e?o:"bg-transparent")})},e))}),s.jsx("p",{className:d("text-xs font-medium transition-colors duration-[var(--duration-fast)]",c),children:t})]}),s.jsx("ul",{className:"space-y-1",children:u.map(e=>s.jsxs("li",{className:d("flex items-center gap-2 text-xs transition-colors duration-[var(--duration-fast)]",e.met?"text-success":"text-muted-foreground"),children:[e.met?s.jsx(x,{className:"h-3 w-3 flex-shrink-0"}):s.jsx(m,{className:"h-3 w-3 flex-shrink-0"}),s.jsx("span",{children:e.text})]},e.text))})]})}export{p as P};