Phase 2 stabilisation: code mort, Modal→Dialog, feature flags, tests, router split, Rust legacy
Bloc A - Code mort:
- Suppression Studio (components, views, features)
- Suppression gamification + services mock (projectService, storageService, gamificationService)
- Mise à jour Sidebar, Navbar, locales
Bloc B - Frontend:
- Suppression modal.tsx deprecated, Modal.stories (doublon Dialog)
- Feature flags: PLAYLIST_SEARCH, PLAYLIST_RECOMMENDATIONS, ROLE_MANAGEMENT = true
- Suppression 19 tests orphelins, retrait exclusions vitest.config
Bloc C - Backend:
- Extraction routes_auth.go depuis router.go
Bloc D - Rust:
- Suppression security_legacy.rs (code mort, patterns déjà dans security/)
2026-02-14 16:23:32 +00:00
|
|
|
import{a as i,j as e}from"./vendor-react-yWUy5XPk.js";import{c as p}from"./index-CYK_b1Uz.js";import{C as f}from"./vendor-icons-DJFb1Tiw.js";const x=i.forwardRef(({label:r,className:n="",onCheckedChange:t,id:c,...a},d)=>{const l=i.useId(),o=c||l,s=`${o}-label`,b=u=>{t&&t(u.target.checked)};return e.jsxs("label",{htmlFor:o,id:s,className:p("inline-flex items-center gap-4 cursor-pointer group",a.disabled?"opacity-50 cursor-not-allowed":"",n),children:[e.jsxs("div",{className:"relative",children:[e.jsx("input",{ref:d,id:o,type:"checkbox",className:"peer sr-only",onChange:b,"aria-label":!r&&!a["aria-label"]&&!a["aria-labelledby"]?"Checkbox":void 0,"aria-labelledby":r?s:void 0,...a}),e.jsx("div",{className:`
|