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/)
1 line
3.7 KiB
JavaScript
1 line
3.7 KiB
JavaScript
import{a as r,j as s}from"./vendor-react-yWUy5XPk.js";import{D as b}from"./dropdown-CA3EXRNb.js";import{c as u,z as g}from"./index-CYK_b1Uz.js";import{C as w,ah as y}from"./vendor-icons-DJFb1Tiw.js";const c=r.forwardRef(({className:o,children:t,asChild:e,...n},i)=>e&&r.isValidElement(t)?r.cloneElement(t,{ref:i,className:u(o,t.props.className),...n}):s.jsx("button",{ref:i,type:"button",className:u("outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",o),...n,children:t}));c.displayName="DropdownMenuTrigger";const p=r.forwardRef(({className:o,align:t="start",sideOffset:e=4,children:n,style:i,...a},f)=>s.jsx("div",{ref:f,className:u("z-50 min-w-32 overflow-hidden rounded-xl border border-border bg-card p-1 text-foreground shadow-lg","animate-fadeIn",o),style:{marginTop:`${e}px`,...i},...a,children:n}));p.displayName="DropdownMenuContent";const E=({open:o,onOpenChange:t,children:e})=>{const[n,i]=r.useState(!1),a=o!==void 0,f=d=>{a||i(d),t?.(d)},l=r.Children.toArray(e).find(d=>r.isValidElement(d)&&d.type===c),m=r.Children.toArray(e).find(d=>r.isValidElement(d)&&d.type===p);if(!l||!m)return s.jsx(s.Fragment,{children:e});const x=a?o:n;return s.jsx(b,{trigger:l,open:x,onOpenChange:f,children:r.isValidElement(m)?m.props.children:m})},v=r.forwardRef(({className:o,inset:t,onKeyDown:e,onClick:n,...i},a)=>{const f=l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),n&&!i.disabled&&n(l)),e?.(l)};return s.jsx("button",{ref:a,type:"button",role:"menuitem",className:u("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none","transition-colors duration-[var(--duration-fast)] focus-visible:bg-white/5 focus-visible:text-foreground focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-inset disabled:pointer-events-none disabled:opacity-50","text-foreground hover:bg-muted/50 w-full text-left",t&&"pl-8",o),onKeyDown:f,onClick:n,...i})});v.displayName="DropdownMenuItem";const h=r.forwardRef(({className:o,children:t,checked:e,onCheckedChange:n,...i},a)=>s.jsxs("button",{ref:a,type:"button",role:"menuitemcheckbox","aria-checked":e,onClick:()=>n?.(!e),className:u("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","transition-colors focus:bg-white/5 focus:text-foreground disabled:pointer-events-none disabled:opacity-50","text-foreground hover:bg-muted/50 w-full text-left",o),...i,children:[s.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e?s.jsx(w,{className:"h-4 w-4 text-primary"}):null}),t]}));h.displayName="DropdownMenuCheckboxItem";const D=r.forwardRef(({className:o,children:t,checked:e,...n},i)=>s.jsxs("button",{ref:i,type:"button",role:"menuitemradio","aria-checked":e,className:u("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","transition-colors focus:bg-white/5 focus:text-foreground disabled:pointer-events-none disabled:opacity-50","text-foreground hover:bg-muted/50 w-full text-left",o),...n,children:[s.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e?s.jsx(y,{className:"h-2 w-2 fill-current text-primary"}):null}),t]}));D.displayName="DropdownMenuRadioItem";const N=r.forwardRef(({className:o,inset:t,...e},n)=>s.jsx("div",{ref:n,className:u("px-2 py-1.5 text-sm font-semibold text-muted-foreground",t&&"pl-8",o),...e}));N.displayName="DropdownMenuLabel";const j=r.forwardRef(({className:o,...t},e)=>s.jsx("div",{ref:e,className:u("-mx-1 my-1 h-px bg-border",o),...t}));j.displayName="DropdownMenuSeparator";function L(){return g(t=>t.isLimited)}export{E as D,c as a,p as b,v as c,L as u};
|