ultisuite-client/out/_next/static/chunks/6304.82938d7033063c7a.js
R3D347HR4Y d6d18f911b
Some checks failed
E2E / Playwright e2e (push) Has been cancelled
Lots of stuff and mobile app
2026-06-17 00:13:28 +02:00

1 line
24 KiB
JavaScript

"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6304],{3964:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(43200).A)("container",[["path",{d:"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z",key:"1t2lqe"}],["path",{d:"M10 21.9V14L2.1 9.1",key:"o7czzq"}],["path",{d:"m10 14 11.9-6.9",key:"zm5e20"}],["path",{d:"M14 19.8v-8.1",key:"159ecu"}],["path",{d:"M18 17.5V9.4",key:"11uown"}]])},4761:(e,t,s)=>{s.d(t,{Kn:()=>i,NQ:()=>n,Vj:()=>o,ji:()=>l});let a="/drive/mounts/oauth/callback";function n(e){let t=(e??window.location.origin).replace(/\/$/,"");return t?`${t}${a}`:a}let r={googledrive:"google",google:"google",dropbox:"dropbox",onedrive:"microsoft",microsoft:"microsoft"};function i(e){return r[e.toLowerCase()]??null}function o(e,t){let s=i(e);return!s||(t?.includes(s)??!1)}function l(e,t){let s=window.screenX+(window.outerWidth-600)/2,a=window.screenY+(window.outerHeight-720)/2,n=encodeURIComponent(t),r=e.includes("state=")?e:`${e}${e.includes("?")?"&":"?"}state=${n}`;window.open(r,"drive-mount-oauth",`width=600,height=720,left=${s},top=${a},noopener,noreferrer`)}},12772:(e,t,s)=>{s.d(t,{MG:()=>o,Sq:()=>d,iV:()=>u,zB:()=>c});var a=s(4208),n=s(57542),r=s(58113);s(61554);var i=s(13746);function o({className:e,...t}){return(0,a.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,r.cn)("group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none","h-9 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]","has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",e),...t})}s(84956);let l=(0,n.F)("text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5","block-end":"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5"}},defaultVariants:{align:"inline-start"}});function d({className:e,align:t="inline-start",...s}){return(0,a.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":t,className:(0,r.cn)(l({align:t}),e),onClick:e=>{e.target.closest("button")||e.currentTarget.parentElement?.querySelector("input")?.focus()},...s})}function c({className:e,...t}){return(0,a.jsx)("span",{className:(0,r.cn)("text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",e),...t})}function u({className:e,...t}){return(0,a.jsx)(i.p,{"data-slot":"input-group-control",className:(0,r.cn)("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",e),...t})}(0,n.F)("text-sm shadow-none flex gap-2 items-center",{variants:{size:{xs:"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2",sm:"h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}})},18584:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(43200).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},26159:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(43200).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},31316:(e,t,s)=>{s.r(t),s.d(t,{FilePoliciesSection:()=>D});var a=s(4208),n=s(91356),r=s(58564),i=s(25729),o=s(4023),l=s(37820),d=s(13746),c=s(12772),u=s(84956),p=s(89342),m=s(61554),h=s(98306),x=s(39927),g=s(17745),v=s(94927),b=s(18747);function f({embedded:e=!1}){let t,s,r,o,l=function(){let{ready:e,authenticated:t}=(0,b.v)();return(0,h.I)({queryKey:["admin","drive","org-folders"],enabled:e&&t,queryFn:async()=>(await v.uE.get("/admin/drive/org-folders")).folders??[]})}(),{create:c,remove:u,sync:p}=(t=(0,x.jE)(),s=()=>t.invalidateQueries({queryKey:["admin","drive","org-folders"]}),r=(0,g.n)({mutationFn:e=>v.uE.post("/admin/drive/org-folders",e),onSuccess:s}),o=(0,g.n)({mutationFn:e=>v.uE.put(`/admin/drive/org-folders/${encodeURIComponent(e.id)}`,{mount_point:e.mount_point,quota_bytes:e.quota_bytes}),onSuccess:s}),{create:r,update:o,remove:(0,g.n)({mutationFn:e=>v.uE.delete(`/admin/drive/org-folders/${encodeURIComponent(e)}`),onSuccess:s}),sync:(0,g.n)({mutationFn:e=>v.uE.post("/admin/drive/org-folders/sync",{org_slugs:e}),onSuccess:s})}),[j,y]=(0,n.useState)(""),[w,N]=(0,n.useState)(""),[_,k]=(0,n.useState)(""),C=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(i.wB,{columns:1,children:[(0,a.jsx)(i.u8,{label:"Slug organisation",htmlFor:"org-slug",children:(0,a.jsx)(d.p,{id:"org-slug",className:"h-9",value:j,onChange:e=>y(e.target.value),placeholder:"acme"})}),(0,a.jsx)(i.u8,{label:"Nom du dossier",htmlFor:"org-mount",children:(0,a.jsx)(d.p,{id:"org-mount",className:"h-9",value:w,onChange:e=>N(e.target.value),placeholder:"Acme Corp"})})]}),(0,a.jsx)(m.$,{size:"sm",disabled:!j.trim()||!w.trim()||c.isPending,onClick:()=>void c.mutateAsync({org_slug:j.trim(),mount_point:w.trim()}),children:"Cr\xe9er le dossier"}),(0,a.jsxs)(i.u8,{label:"Provisionnement automatique",htmlFor:"sync-orgs",hint:"Cr\xe9e un dossier d'organisation pour chaque slug list\xe9, s'il n'existe pas encore. Les slugs correspondent aux organisations Authentik.",children:[(0,a.jsx)(d.p,{id:"sync-orgs",className:"h-9",value:_,onChange:e=>k(e.target.value),placeholder:"acme, beta"}),(0,a.jsx)(m.$,{size:"sm",variant:"outline",className:"mt-2",disabled:!_.trim()||p.isPending,onClick:()=>void p.mutateAsync(_.split(",").map(e=>e.trim()).filter(Boolean)),children:"Provisionner les dossiers"})]}),(0,a.jsxs)("ul",{className:"divide-y divide-mail-border rounded-md border border-mail-border text-sm",children:[(l.data??[]).map(e=>(0,a.jsxs)("li",{className:"flex items-center justify-between gap-3 px-3 py-2",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"truncate font-medium",children:e.mount_point}),(0,a.jsx)("p",{className:"truncate text-xs text-muted-foreground",children:e.org_slug})]}),(0,a.jsx)(m.$,{size:"sm",variant:"ghost",className:"shrink-0 text-destructive",disabled:u.isPending,onClick:()=>void u.mutateAsync(e.id),children:"Supprimer"})]},e.id)),l.data?.length===0?(0,a.jsx)("li",{className:"px-3 py-4 text-center text-muted-foreground",children:"Aucun dossier d'organisation"}):null]})]});return e?(0,a.jsx)("div",{className:"space-y-4",children:C}):(0,a.jsx)(i.KT,{title:"Dossiers d'organisation",description:"Espaces de stockage internes (group folders Nextcloud) li\xe9s aux organisations Authentik.",children:C})}var j=s(51355);function y({embedded:e=!1}){let t,s,r=function(){let{ready:e,authenticated:t}=(0,b.v)();return(0,h.I)({queryKey:["admin","drive","org-mounts"],enabled:e&&t,queryFn:async()=>(await v.uE.get("/admin/drive/org-mounts")).mounts??[]})}(),{create:o,remove:l}=(t=(0,x.jE)(),s=()=>{t.invalidateQueries({queryKey:["admin","drive","org-mounts"]}),t.invalidateQueries({queryKey:["drive","mounts"]})},{create:(0,g.n)({mutationFn:e=>v.uE.post("/admin/drive/org-mounts",e),onSuccess:s}),remove:(0,g.n)({mutationFn:e=>v.uE.delete(`/admin/drive/org-mounts/${encodeURIComponent(e)}`),onSuccess:s})}),[c,u]=(0,n.useState)(""),[p,f]=(0,n.useState)(""),[w,N]=(0,n.useState)(""),[_,k]=(0,n.useState)("/"),[C,A]=(0,n.useState)(""),[z,S]=(0,n.useState)(""),[D,q]=(0,n.useState)(!0),F=c.trim()&&p.trim()&&w.trim()&&C.trim()&&z.trim(),E=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Le slug d'organisation sert au rattachement administratif. Le volume est mont\xe9 globalement dans Nextcloud et appara\xeet dans UltiDrive pour tous les utilisateurs."}),(0,a.jsxs)(i.wB,{columns:2,children:[(0,a.jsx)(i.u8,{label:"Slug organisation",htmlFor:"webdav-org-slug",children:(0,a.jsx)(d.p,{id:"webdav-org-slug",className:"h-9",value:c,onChange:e=>u(e.target.value),placeholder:"acme"})}),(0,a.jsx)(i.u8,{label:"Nom affich\xe9",htmlFor:"webdav-display-name",children:(0,a.jsx)(d.p,{id:"webdav-display-name",className:"h-9",value:p,onChange:e=>f(e.target.value),placeholder:"NAS partag\xe9"})}),(0,a.jsx)(i.u8,{label:"H\xf4te",htmlFor:"webdav-host",children:(0,a.jsx)(d.p,{id:"webdav-host",className:"h-9",value:w,onChange:e=>N(e.target.value),placeholder:"nas.example.com"})}),(0,a.jsx)(i.u8,{label:"Chemin racine",htmlFor:"webdav-root",children:(0,a.jsx)(d.p,{id:"webdav-root",className:"h-9",value:_,onChange:e=>k(e.target.value),placeholder:"/remote.php/dav/files/user"})}),(0,a.jsx)(i.u8,{label:"Utilisateur",htmlFor:"webdav-user",children:(0,a.jsx)(d.p,{id:"webdav-user",className:"h-9",value:C,onChange:e=>A(e.target.value)})}),(0,a.jsx)(i.u8,{label:"Mot de passe",htmlFor:"webdav-pass",children:(0,a.jsx)(d.p,{id:"webdav-pass",className:"h-9",type:"password",value:z,onChange:e=>S(e.target.value),autoComplete:"new-password"})})]}),(0,a.jsx)(i.XE,{title:"Connexion HTTPS",checked:D,onCheckedChange:q}),(0,a.jsx)(m.$,{size:"sm",disabled:!F||o.isPending,onClick:()=>void o.mutateAsync({org_slug:c.trim(),display_name:p.trim(),webdav:{host:w.trim(),root:_.trim()||"/",user:C.trim(),password:z,secure:D}}).then(()=>{u(""),f(""),N(""),k("/"),A(""),S(""),q(!0)}),children:"Ajouter le montage"}),(0,a.jsxs)("ul",{className:"divide-y divide-mail-border rounded-md border border-mail-border text-sm",children:[(r.data??[]).map(e=>(0,a.jsxs)("li",{className:"flex items-start justify-between gap-3 px-3 py-2",children:[(0,a.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("p",{className:"truncate font-medium",children:e.display_name}),(0,a.jsx)(j.E,{variant:"active"===e.status?"secondary":"destructive",className:"text-[10px]",children:function(e){switch(e){case"active":return"Actif";case"error":return"Erreur";case"pending":return"En attente";default:return e}}(e.status)})]}),(0,a.jsxs)("p",{className:"truncate text-xs text-muted-foreground",children:[e.org_slug??"—"," \xb7 WebDAV \xb7 ",e.mount_point]}),e.last_error?(0,a.jsx)("p",{className:"text-xs text-destructive",children:e.last_error}):null]}),(0,a.jsx)(m.$,{size:"sm",variant:"ghost",className:"shrink-0 text-destructive",disabled:l.isPending,onClick:()=>void l.mutateAsync(e.id),children:"Supprimer"})]},e.id)),r.data?.length===0?(0,a.jsx)("li",{className:"px-3 py-4 text-center text-muted-foreground",children:"Aucun montage WebDAV d'organisation"}):null]})]});return e?(0,a.jsx)("div",{className:"space-y-4",children:E}):(0,a.jsx)(i.KT,{title:"Montages WebDAV d'organisation",description:"Connecte un serveur WebDAV partag\xe9 (NAS, Nextcloud externe, etc.) visible par tous les utilisateurs UltiDrive.",children:E})}var w=s(35019),N=s(18584),_=s(89032),k=s(66987),C=s(4761);let A=[{id:"google",label:"Google Drive",hint:"Console Google Cloud — API Drive, redirect URI ci-dessous",icon:"logos:google-drive"},{id:"dropbox",label:"Dropbox",hint:"App Dropbox — permissions files.metadata.read, files.content.read/write",icon:"logos:dropbox"},{id:"microsoft",label:"Microsoft OneDrive",hint:"Azure AD — Microsoft Graph Files.ReadWrite",icon:"logos:microsoft-onedrive"}],z={google:"mount_oauth_google",dropbox:"mount_oauth_dropbox",microsoft:"mount_oauth_microsoft"};function S({draft:e,onChange:t,embedded:s=!1}){let r=(0,l.U)(e=>e.meta?.secrets),[o,c]=(0,n.useState)(""),[u,p]=(0,n.useState)(!1);(0,n.useEffect)(()=>{c((0,C.NQ)())},[]);let h=(s,a)=>{t({...e,[s]:{...e[s],...a}})},x=async()=>{let e=o||(0,C.NQ)();try{await navigator.clipboard.writeText(e),p(!0),_.oR.success("URI de redirection copi\xe9e"),window.setTimeout(()=>p(!1),2e3)}catch{_.oR.error("Impossible de copier l'URI")}},g=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.u8,{label:"URI de redirection OAuth",hint:"Bas\xe9e sur l'URL actuelle du navigateur. Enregistrez-la chez chaque fournisseur OAuth (Google, Dropbox, Microsoft).",children:(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(d.p,{className:"h-9 flex-1 font-mono text-xs",readOnly:!0,value:o,placeholder:"Chargement…"}),(0,a.jsxs)(m.$,{type:"button",variant:"outline",size:"sm",className:"h-9 shrink-0 gap-1.5 px-3",onClick:()=>void x(),disabled:!o,children:[u?(0,a.jsx)(w.A,{className:"h-4 w-4"}):(0,a.jsx)(N.A,{className:"h-4 w-4"}),"Copier"]})]})}),(0,a.jsx)("div",{className:"space-y-4",children:A.map(({id:t,label:s,hint:n,icon:o})=>{let l=e[t],c=!!r?.[z[t]]?.configured;return(0,a.jsxs)("div",{className:"space-y-3 rounded-md border border-mail-border bg-mail-surface-muted/40 p-3",children:[(0,a.jsx)(i.Kk,{variant:"plain",title:(0,a.jsx)(k.c,{icon:o,className:"text-sm font-medium",children:s}),description:n,checked:l.enabled,onCheckedChange:e=>h(t,{enabled:e})}),l.enabled?(0,a.jsxs)(i.wB,{columns:1,children:[(0,a.jsx)(i.u8,{label:"Client ID",children:(0,a.jsx)(d.p,{className:"h-9 font-mono text-xs",value:l.client_id,onChange:e=>h(t,{client_id:e.target.value}),autoComplete:"off"})}),(0,a.jsx)(i.u8,{label:"Client secret",hint:c&&!l.client_secret.trim()?(0,a.jsx)(i.hY,{children:"Secret configur\xe9"}):void 0,children:(0,a.jsx)(d.p,{className:"h-9 font-mono text-xs",type:"password",value:l.client_secret,onChange:e=>h(t,{client_secret:e.target.value}),placeholder:c?"•••••••• (laisser vide pour conserver)":"Coller le secret",autoComplete:"off"})})]}):null]},t)})})]});return s?(0,a.jsx)("div",{className:"space-y-4",children:g}):(0,a.jsx)(i.KT,{title:"Connexion cloud (OAuth)",description:"Permet aux utilisateurs de monter Google Drive, Dropbox ou OneDrive depuis UltiDrive.",children:g})}function D(){let e=(0,l.U)(e=>e.filePolicies),t=(0,l.U)(e=>e.setFilePolicies),[s,m]=(0,n.useState)(e.mount_oauth),h=(0,l.U)(e=>e.meta?.secrets?.virustotal_api_key?.configured??!1),x=e.virus_scan_enabled&&!h&&!(e.virustotal_api_key??"").trim();return(0,n.useEffect)(()=>{m(e.mount_oauth)},[e.mount_oauth]),(0,a.jsx)(r.f,{title:"Politiques fichiers",description:"R\xe8gles d'upload, partage externe et r\xe9tention pour UltiDrive.",policySection:"file_policies",beforeSave:()=>t({mount_oauth:s}),children:(0,a.jsxs)(o.I,{columns:2,children:[(0,a.jsxs)(i.KT,{title:"Politiques UltiDrive",description:"Limites d'upload, partage externe, extensions et analyse antivirus.",children:[(0,a.jsxs)(i.wB,{columns:1,className:"space-y-4",children:[(0,a.jsxs)(i.wB,{columns:2,className:"sm:grid-cols-3",children:[(0,a.jsx)(i.u8,{label:"Taille max upload",children:(0,a.jsxs)(c.MG,{children:[(0,a.jsx)(c.iV,{type:"number",min:1,value:e.max_upload_mib,onChange:e=>t({max_upload_mib:Number(e.target.value)||1})}),(0,a.jsx)(c.Sq,{align:"inline-end",children:(0,a.jsx)(c.zB,{children:"Mo"})})]})}),(0,a.jsx)(i.u8,{label:"Expiration liens par d\xe9faut",children:(0,a.jsxs)(c.MG,{children:[(0,a.jsx)(c.iV,{type:"number",min:1,value:e.default_link_expiry_days,onChange:e=>t({default_link_expiry_days:Number(e.target.value)||1})}),(0,a.jsx)(c.Sq,{align:"inline-end",children:(0,a.jsx)(c.zB,{children:"jours"})})]})}),(0,a.jsx)(i.u8,{label:"R\xe9tention corbeille",children:(0,a.jsxs)(c.MG,{children:[(0,a.jsx)(c.iV,{type:"number",min:1,value:e.retention_trash_days,onChange:e=>t({retention_trash_days:Number(e.target.value)||1})}),(0,a.jsx)(c.Sq,{align:"inline-end",children:(0,a.jsx)(c.zB,{children:"jours"})})]})})]}),(0,a.jsx)(i.u8,{label:"Partage externe",children:(0,a.jsxs)(p.l6,{value:e.external_sharing,onValueChange:e=>t({external_sharing:e}),children:[(0,a.jsx)(p.bq,{className:"h-9 w-full min-w-0",children:(0,a.jsx)(p.yv,{})}),(0,a.jsxs)(p.gC,{children:[(0,a.jsx)(p.eb,{value:"disabled",children:"D\xe9sactiv\xe9"}),(0,a.jsx)(p.eb,{value:"authenticated",children:"Utilisateurs authentifi\xe9s"}),(0,a.jsx)(p.eb,{value:"public_link",children:"Liens publics autoris\xe9s"})]})]})}),(0,a.jsx)(i.u8,{label:"Extensions autoris\xe9es (vide = toutes)",children:(0,a.jsx)(u.T,{className:"min-h-[80px] font-mono text-xs",value:e.allowed_extensions,onChange:e=>t({allowed_extensions:e.target.value}),placeholder:"pdf, docx, png, jpg"})})]}),(0,a.jsx)(i.Kk,{title:"Bloquer les ex\xe9cutables",description:"exe, bat, sh, app, etc.",checked:e.block_executable,onCheckedChange:e=>t({block_executable:e})}),(0,a.jsx)(i.Kk,{title:"Analyse antivirus \xe0 l'upload",description:"VirusTotal — scan synchrone \xe0 l'upload Drive et pi\xe8ces jointes mail",checked:e.virus_scan_enabled,onCheckedChange:e=>t({virus_scan_enabled:e})}),e.virus_scan_enabled?(0,a.jsxs)(i.u8,{label:"Cl\xe9 API VirusTotal",children:[(0,a.jsx)(d.p,{className:"h-9",type:"password",autoComplete:"off",value:e.virustotal_api_key??"",onChange:e=>t({virustotal_api_key:e.target.value}),placeholder:h?"•••••••• (laisser vide pour conserver)":"Coller la cl\xe9 API"}),h&&!(e.virustotal_api_key??"").trim()?(0,a.jsx)(i.hY,{children:"Cl\xe9 configur\xe9e"}):null,x?(0,a.jsx)(i.hY,{tone:"warning",children:"Analyse activ\xe9e sans cl\xe9 API — les uploads ne seront pas scann\xe9s."}):null]}):null]}),(0,a.jsx)(i.KT,{title:"Connexion cloud (OAuth)",description:"Permet aux utilisateurs de monter Google Drive, Dropbox ou OneDrive depuis UltiDrive.",children:(0,a.jsx)(S,{draft:s,onChange:m,embedded:!0})}),(0,a.jsx)(i.KT,{title:"Montages WebDAV d'organisation",description:"Serveur WebDAV partag\xe9 (NAS, Nextcloud externe) visible par tous les utilisateurs UltiDrive.",children:(0,a.jsx)(y,{embedded:!0})}),(0,a.jsx)(i.KT,{title:"Dossiers d'organisation",description:"Espaces de stockage internes (group folders Nextcloud) li\xe9s aux organisations Authentik.",children:(0,a.jsx)(f,{embedded:!0})})]})})}},66987:(e,t,s)=>{s.d(t,{c:()=>o});var a=s(4208),n=s(84834),r=s(47391),i=s(58113);function o({brand:e,icon:t,children:s,className:l,iconClassName:d,suffix:c}){let u=t??(e?(0,r.r)(e):void 0);return(0,a.jsxs)("span",{className:(0,i.cn)("inline-flex min-w-0 items-center gap-2",l),children:[u?(0,a.jsx)(n.In,{icon:u,className:(0,i.cn)("size-4 shrink-0",d),"aria-hidden":!0}):null,(0,a.jsxs)("span",{className:"truncate",children:[s,c]})]})}},77510:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(43200).A)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]])},84956:(e,t,s)=>{s.d(t,{T:()=>r});var a=s(4208);s(91356);var n=s(58113);function r({className:e,...t}){return(0,a.jsx)("textarea",{"data-slot":"textarea",className:(0,n.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),...t})}},89342:(e,t,s)=>{s.d(t,{TR:()=>h,bq:()=>p,eb:()=>x,gC:()=>m,l6:()=>d,mi:()=>g,s3:()=>c,yv:()=>u});var a=s(4208);s(91356);var n=s(29477),r=s(9519),i=s(35019),o=s(30758),l=s(58113);function d({...e}){return(0,a.jsx)(n.bL,{"data-slot":"select",...e})}function c({...e}){return(0,a.jsx)(n.YJ,{"data-slot":"select-group",...e})}function u({...e}){return(0,a.jsx)(n.WT,{"data-slot":"select-value",...e})}function p({className:e,size:t="default",variant:s="default",children:i,...o}){return(0,a.jsxs)(n.l9,{"data-slot":"select-trigger","data-size":t,"data-variant":s,className:(0,l.cn)("data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex w-fit cursor-pointer items-center justify-between gap-2 rounded-md bg-transparent text-sm whitespace-nowrap transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","default"===s&&"border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 border px-3 py-2 shadow-xs focus-visible:ring-[3px]","ghost"===s&&"border-0 shadow-none hover:bg-transparent focus-visible:ring-0 dark:bg-transparent dark:hover:bg-transparent dark:data-[state=open]:bg-transparent",e),...o,children:[i,(0,a.jsx)(n.In,{asChild:!0,children:(0,a.jsx)(r.A,{className:"size-4 opacity-50"})})]})}function m({className:e,children:t,position:s="popper",...r}){return(0,a.jsx)(n.ZL,{children:(0,a.jsxs)(n.UC,{"data-slot":"select-content",className:(0,l.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===s&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:s,...r,children:[(0,a.jsx)(v,{}),(0,a.jsx)(n.LM,{className:(0,l.cn)("p-1","popper"===s&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:t}),(0,a.jsx)(b,{})]})})}function h({className:e,...t}){return(0,a.jsx)(n.JU,{"data-slot":"select-label",className:(0,l.cn)("text-muted-foreground px-2 py-1.5 text-xs",e),...t})}function x({className:e,children:t,...s}){return(0,a.jsxs)(n.q7,{"data-slot":"select-item",className:(0,l.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...s,children:[(0,a.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,a.jsx)(n.VF,{children:(0,a.jsx)(i.A,{className:"size-4"})})}),(0,a.jsx)(n.p4,{children:t})]})}function g({className:e,...t}){return(0,a.jsx)(n.wv,{"data-slot":"select-separator",className:(0,l.cn)("bg-border pointer-events-none -mx-1 my-1 h-px",e),...t})}function v({className:e,...t}){return(0,a.jsx)(n.PP,{"data-slot":"select-scroll-up-button",className:(0,l.cn)("flex cursor-pointer items-center justify-center py-1",e),...t,children:(0,a.jsx)(o.A,{className:"size-4"})})}function b({className:e,...t}){return(0,a.jsx)(n.wn,{"data-slot":"select-scroll-down-button",className:(0,l.cn)("flex cursor-pointer items-center justify-center py-1",e),...t,children:(0,a.jsx)(r.A,{className:"size-4"})})}}}]);